feat(hrm): 同步新疆中亿装配的人力资源模块到北方科技
代码来源:dev_新疆_中亿装配 分支的 yudao-module-hrm / yudao-module-hrm-api,
带来加班工资配置、合同文档生成、员工类别、社保大病/长期护理比例、
考勤规则生效日期区间、APP 打卡状态接口、薪资计算增强等能力。
配套 SQL(必须同步执行,否则 HRM 功能不可用):
- sql/mysql/hrm_sync_from_zyjc_20261024.sql
新建 hrm_overtime_wage_config;hrm_employee 增加 employee_category(默认 1-普通员工);
hrm_attendance_rule 增加生效日期区间;社保方案增加大病医疗/长期护理比例;
放开 hrm_attendance_holiday.start_date/end_date 非空约束
- sql/mysql/hrm_menu_sync_from_zyjc_20261024.sql
补 35 条菜单与按钮权限(HRM 权限点 72 → 106),默认不自动授权给角色
同时修复两个问题:
1) 打卡提示文案失效:EMPLOYEE_NOT_EXISTS 的错误码文案不含 {} 占位符,
原写法 exception(code, 长文案) 被 ServiceExceptionUtil 判为「参数过多」并丢弃
自定义文案,前端只能看到「员工不存在」。改用 ServiceException 直接构造。
2) 节假日配置不可用:北方库的 start_date/end_date 为 NOT NULL,而中亿版 DO 只写
单日 date 字段,新增节假日会抛 Field 'start_date' doesn't have a default value。
通过 DDL 放宽为可空解决。
已知差异(相对北方科技原有实现,本次未保留):
- 操作日志(LogRecordConstants 已无任何引用)
- 全局免审批
- 节假日时间段配置(回退为单日 date)