添加消耗功能加班字段.sql
5.22 KB
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
102
-- ============================================
-- 为消耗功能添加加班相关字段
-- ============================================
-- 说明:此脚本为消耗功能添加加班标识、加班系数以及原始值、加班值、最终值的字段
-- 执行顺序:按照表的主从关系依次执行
-- ============================================
-- 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%');