Blame view

项目文档相关/sql/添加消耗功能加班字段.sql 5.22 KB
d8035736   “wangming”   Refactor project ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  -- ============================================
  -- 为消耗功能添加加班相关字段
  -- ============================================
  -- 说明:此脚本为消耗功能添加加班标识、加班系数以及原始值、加班值、最终值的字段
  -- 执行顺序:按照表的主从关系依次执行
  
  -- ============================================
  -- 1. lq_xh_hyhk(耗卡主表) - 添加加班相关字段
  -- ============================================
  -- 说明:F_OvertimeCoefficient  NULL  0 表示非加班单,大于 0 表示加班单
  ALTER TABLE lq_xh_hyhk 
  ADD COLUMN F_OvertimeCoefficient DECIMAL(18,2) NULL DEFAULT NULL COMMENT '加班系数(NULL或0表示非加班单,大于0表示加班单,如 0.5、1、1.5)' AFTER F_CancelRemark,
  ADD COLUMN F_OriginalSgfy DECIMAL(18,2) NULL COMMENT '原始手工费(用户输入的原始值)' AFTER F_OvertimeCoefficient,
  ADD COLUMN F_OvertimeSgfy DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班手工费(加班计算后的增量值)' AFTER F_OriginalSgfy;
  
  -- 为现有数据设置默认值
  UPDATE lq_xh_hyhk 
  SET F_OvertimeCoefficient = NULL,
      F_OriginalSgfy = COALESCE(sgfy, 0),
      F_OvertimeSgfy = 0
  WHERE F_OvertimeCoefficient IS NULL;
  
  -- ============================================
  -- 2. lq_xh_pxmx(耗卡品项明细表) - 添加加班相关字段
  -- ============================================
  ALTER TABLE lq_xh_pxmx 
  ADD COLUMN F_OriginalProjectNumber DECIMAL(18,2)  NULL COMMENT '原始项目次数(用户输入的原始值)' AFTER F_ProjectNumber,
  ADD COLUMN F_OvertimeProjectNumber DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班项目次数(加班计算后的增量值)' AFTER F_OriginalProjectNumber;
  
  -- 为现有数据设置默认值
  UPDATE lq_xh_pxmx 
  SET F_OriginalProjectNumber = COALESCE(F_ProjectNumber, 0),
      F_OvertimeProjectNumber = 0
  WHERE F_OriginalProjectNumber IS NULL;
  
  -- ============================================
  -- 3. lq_xh_jksyj(耗卡健康师业绩表) - 添加加班相关字段
  -- ============================================
  ALTER TABLE lq_xh_jksyj 
  ADD COLUMN F_OriginalKdpxNumber DECIMAL(18,2) NULL COMMENT '原始耗卡品项次数(原始值)' AFTER F_kdpxNumber,
  ADD COLUMN F_OvertimeKdpxNumber DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班耗卡品项次数(加班计算后的增量值)' AFTER F_OriginalKdpxNumber,
  ADD COLUMN F_OriginalLaborCost DECIMAL(18,2) NULL COMMENT '原始手工费(原始值)' AFTER F_LaborCost,
  ADD COLUMN F_OvertimeLaborCost DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班手工费(加班计算后的增量值)' AFTER F_OriginalLaborCost;
  
  -- 为现有数据设置默认值
  UPDATE lq_xh_jksyj 
  SET F_OriginalKdpxNumber = COALESCE(F_kdpxNumber, 0),
      F_OvertimeKdpxNumber = 0,
      F_OriginalLaborCost = COALESCE(F_LaborCost, 0),
      F_OvertimeLaborCost = 0
  WHERE F_OriginalKdpxNumber IS NULL;
  
  -- ============================================
  -- 4. lq_xh_kjbsyj(耗卡科技部老师业绩表) - 添加加班相关字段
  -- ============================================
  ALTER TABLE lq_xh_kjbsyj 
  ADD COLUMN F_OriginalHdpxNumber DECIMAL(18,2) NULL COMMENT '原始耗卡品相次数(原始值)' AFTER F_hdpxNumber,
  ADD COLUMN F_OvertimeHdpxNumber DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班耗卡品相次数(加班计算后的增量值)' AFTER F_OriginalHdpxNumber,
  ADD COLUMN F_OriginalLaborCost DECIMAL(18,2) NULL COMMENT '原始手工费(原始值)' AFTER F_LaborCost,
  ADD COLUMN F_OvertimeLaborCost DECIMAL(18,2) NULL DEFAULT 0 COMMENT '加班手工费(加班计算后的增量值)' AFTER F_OriginalLaborCost;
  
  -- 为现有数据设置默认值
  UPDATE lq_xh_kjbsyj 
  SET F_OriginalHdpxNumber = COALESCE(F_hdpxNumber, 0),
      F_OvertimeHdpxNumber = 0,
      F_OriginalLaborCost = COALESCE(F_LaborCost, 0),
      F_OvertimeLaborCost = 0
  WHERE F_OriginalHdpxNumber IS NULL;
  
  -- ============================================
  -- 5. 创建索引(可选,用于优化查询)
  -- ============================================
  -- 为加班系数创建索引,方便查询加班单(系数大于0的记录)
  CREATE INDEX idx_xh_hyhk_overtime_coefficient ON lq_xh_hyhk(F_OvertimeCoefficient);
  
  -- ============================================
  -- 6. 验证字段创建
  -- ============================================
  -- 验证 lq_xh_hyhk 
  -- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT 
  -- FROM INFORMATION_SCHEMA.COLUMNS 
  -- WHERE TABLE_NAME = 'lq_xh_hyhk' 
  --   AND (COLUMN_NAME LIKE 'F_%Overtime%' OR COLUMN_NAME LIKE 'F_Original%');
  
  -- 验证 lq_xh_pxmx 
  -- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT 
  -- FROM INFORMATION_SCHEMA.COLUMNS 
  -- WHERE TABLE_NAME = 'lq_xh_pxmx' 
  --   AND (COLUMN_NAME LIKE 'F_%Overtime%' OR COLUMN_NAME LIKE 'F_Original%');
  
  -- 验证 lq_xh_jksyj 
  -- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT 
  -- FROM INFORMATION_SCHEMA.COLUMNS 
  -- WHERE TABLE_NAME = 'lq_xh_jksyj' 
  --   AND (COLUMN_NAME LIKE 'F_%Overtime%' OR COLUMN_NAME LIKE 'F_Original%');
  
  -- 验证 lq_xh_kjbsyj 
  -- SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT 
  -- FROM INFORMATION_SCHEMA.COLUMNS 
  -- WHERE TABLE_NAME = 'lq_xh_kjbsyj' 
  --   AND (COLUMN_NAME LIKE 'F_%Overtime%' OR COLUMN_NAME LIKE 'F_Original%');