tuqin
23 小时以前 1466672f09a4fc1037c78cc2bb096fca551c1683
分支
用户 tuqin <tuqin@tuqin.cn>
星期三, 十月 28, 2026 09:46 +0800
提交者 tuqin <tuqin@tuqin.cn>
星期三, 十月 28, 2026 09:46 +0800
提交1466672f09a4fc1037c78cc2bb096fca551c1683
目录 0769dc5ea6a0fe55de02951ced0d5bfead54fda0 目录 | zip | gz
上一版本 531b50cab6e42e6146a419bc71c5b494fff774b2 查看 | 对比
feat(hrm): 薪酬核算新增全勤奖与实出天数,修正实发工资口径

需求:
1. 核算单新增「全勤奖」,与其他津贴一致人工维护,计入应发与实发
2. 「出勤天数」更名为「应出天数」(语义不变,仍是按排班累计的应出勤天数)
3. 「排班工时」改为「实出天数」,取自考勤汇总 hrm_attendance_summary.actual_days;
原 total_work_hours 列保留但不再参与业务(历史数据不删除)

同时修复 3 处会导致实发工资算错的既有缺陷(新建核算正确、但改一次核算单实发就变少):
- 后端 calcActualSalary 收入项漏掉 postSalary / senioritySalary
- 前端 calculateActualSalary 同样漏掉 postSalary / senioritySalary
- HrmSalaryCalculationSaveReqVO.CalculationItem 未声明 postSalary / senioritySalary,
预览保存时这两个金额会被丢弃
并显式对齐 totalIncome 与 calcActualSalary 的收入项口径,两者今后必须一致。

另修复既有隐患:
- HrmAttendanceSummaryDO.yearMonth 未转义,year_month 是 MySQL 保留字,
MyBatis-Plus 生成的 SQL 语法错误(该 Mapper 方法此前从未被调用,本次核算取实出天数时暴露)

SQL:hrm_salary_add_full_attendance_bonus.sql(幂等,含历史数据回填实出天数)

自测(mom-zyjc 实测):
- 核算:应出 22 / 实出 21(取自考勤汇总)/ 全勤奖默认 0 / 实发 = 收入 - 扣除 ✔
- 修改核算单:基本 9000 + 岗位 1000 + 工龄 500 + 全勤奖 500 - 社保 550.83 = 10449.17 ✔
已修改5个文件
已添加1个文件
129 ■■■■■ 文件已修改
sql/mysql/hrm_salary_add_full_attendance_bonus.sql 49 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/vo/HrmSalaryCalculationRespVO.java 12 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/salary/vo/HrmSalaryCalculationSaveReqVO.java 14 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/attendance/HrmAttendanceSummaryDO.java 5 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/salary/HrmSalaryCalculationDO.java 16 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/salary/HrmSalaryCalculationServiceImpl.java 33 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史