分支
用户 tuqin <tuqin@local>
星期五, 十一月 6, 2026 15:46 +0800
提交者 tuqin <tuqin@local>
星期五, 十一月 6, 2026 15:46 +0800
提交061cac2d75b9abe60cd29a5e9abae0e8e630739f
目录 7d9a6dc98e14dcb942a9e3ef1e6c9d3d1f47b5a2 目录 | zip | gz
上一版本 5821949796c829101dac56e7823712975f13f6bc 查看 | 对比
fix(hrm): 调岗提交不再强制要求 processDefinitionKey,并在审批通过后自动同步员工档案

问题1:新增调岗申请成功后点「提交」报「请求参数缺失:processDefinitionKey」。
根因:Controller 上 @RequestParam(processDefinitionKey) 是必填,而前端 submitTransfer 只传了 id。

修复:
- Controller 改为 required=false;
- Service 在 processDefinitionKey 为空时,自动取该审批分类下最新版本(version 最大)的活跃流程定义。

问题2:调岗审批通过后,员工管理里的部门/岗位没有变化。
根因:审批状态监听器只更新了调岗单状态,从来没动过员工档案。

修复:
- updateTransferApplicationAuditStatus 在状态变为「审批通过(20)」时调用 syncEmployeePosition;
- 该方法走 HrmEmployeeService.updateEmployee 把 hrm_employee 的 dept_id / post_ids 改成目标值,
同时因为 updateEmployee 内部会同步 system_users,用户管理里的部门岗位也会一起更新;
- 整段包了 try-catch:目标部门/岗位已被删除等异常只记日志,不会让审批状态落库失败。

验证(北方科技 mom-bfkj 实测):
- 新增 + 提交(只传 id)→ code=0,状态 0→10→20
- 员工档案自动更新:dept_id 130→121(采购部)、post_ids [73]→[38](库管)
- 无效目标岗位 999:审批仍正常通过(20),档案保持不变,异常只进日志
- 目标部门选成原部门:正确拦截「目标部门与原部门相同」
已修改2个文件
68 ■■■■■ 文件已修改
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/HrmTransferApplicationController.java 5 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmTransferApplicationServiceImpl.java 63 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史