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