tuqin
2 天以前 1d372d5e4916eaecf9b773e52e0d887d4fd0e47a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- ============================================================
-- 薪酬核算:actual_days(实出天数)允许为空
--
-- 背景:
--   原字段是 INT NOT NULL DEFAULT 0,导致「该月还没有考勤汇总」和
--   「实出 0 天」在数据库里都存成 0,无法区分。
--   缺勤扣款逻辑于是把「未录考勤」当成「实出 0 天」,把整月工资扣光。
--
-- 语义约定(与 HrmSalaryCalculationServiceImpl#calculateAttendanceDeduction 对应):
--   actual_days IS NULL  → 该月未生成考勤汇总,视为满勤,不做旷工扣款
--   actual_days = 0      → 实出 0 天(人工填写),按 100% 扣旷工
--   actual_days = N      → 按 应出 - N 计算旷工天数(超出请假单覆盖的部分)
-- ============================================================
 
ALTER TABLE hrm_salary_calculation
    MODIFY COLUMN actual_days INT NULL DEFAULT NULL
    COMMENT '实出天数(null=该月未生成考勤汇总,不扣旷工)';