From ce96310177bdd6d24ac90bd6f92d8def30b680af Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期一, 26 十月 2026 13:58:23 +0800
Subject: [PATCH] fix(hrm): 修复修改员工时的「部门不存在」与「系统异常」
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
index d32b4c5..f2a01a6 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
@@ -104,9 +104,15 @@
deptApi.validateDeptList(Collections.singleton(createReqVO.getDeptId()));
// 2. 鏍¢獙宀椾綅
postApi.validPostList(createReqVO.getPostIds());
- // 3. 鏍¢獙鎵嬫満鍙锋槸鍚﹀凡瀛樺湪
- if (employeeMapper.selectByPhone(createReqVO.getPhone()) != null) {
- throw exception(EMPLOYEE_PHONE_EXISTS);
+ // 3. 鏍¢獙鎵嬫満鍙锋槸鍚﹀凡瀛樺湪锛�**鍖呭惈宸插垹闄ゆ。妗�**锛歶k_phone 鍞竴绱㈠紩涓嶅尯鍒� deleted锛�
+ // 鍙煡鏈垹闄よ褰曚細婕忓垽锛屽鑷村啓搴撴椂鎶涘敮涓�绾︽潫寮傚父锛屽墠绔樉绀衡�滅郴缁熷紓甯糕�濓級
+ if (createReqVO.getPhone() != null) {
+ HrmEmployeeDO existPhone = employeeMapper.selectByPhoneIgnoreDeleted(createReqVO.getPhone());
+ if (existPhone != null) {
+ throw existPhone.getDeleted() != null && existPhone.getDeleted()
+ ? exception(EMPLOYEE_PHONE_OCCUPIED_BY_DELETED, createReqVO.getPhone())
+ : exception(EMPLOYEE_PHONE_EXISTS);
+ }
}
// 4. 鍚屾鍒涘缓绯荤粺鐢ㄦ埛
AdminUserCreateReqDTO userCreateReqDTO = new AdminUserCreateReqDTO();
@@ -186,10 +192,14 @@
deptApi.validateDeptList(Collections.singleton(updateReqVO.getDeptId()));
// 鏍¢獙宀椾綅
postApi.validPostList(updateReqVO.getPostIds());
- // 鏍¢獙鎵嬫満鍙锋槸鍚﹀凡瀛樺湪锛堝鏋滄墜鏈哄彿鏈夊彉鏇达級
- if (!Objects.equals(employee.getPhone(), updateReqVO.getPhone())
- && employeeMapper.selectByPhone(updateReqVO.getPhone()) != null) {
- throw exception(EMPLOYEE_PHONE_EXISTS);
+ // 鏍¢獙鎵嬫満鍙锋槸鍚﹀凡瀛樺湪锛堝鏋滄墜鏈哄彿鏈夊彉鏇达紱**鍖呭惈宸插垹闄ゆ。妗�**锛屽師鍥犺 createEmployee锛�
+ if (!Objects.equals(employee.getPhone(), updateReqVO.getPhone()) && updateReqVO.getPhone() != null) {
+ HrmEmployeeDO existPhone = employeeMapper.selectByPhoneIgnoreDeleted(updateReqVO.getPhone());
+ if (existPhone != null && !Objects.equals(existPhone.getId(), updateReqVO.getId())) {
+ throw existPhone.getDeleted() != null && existPhone.getDeleted()
+ ? exception(EMPLOYEE_PHONE_OCCUPIED_BY_DELETED, updateReqVO.getPhone())
+ : exception(EMPLOYEE_PHONE_EXISTS);
+ }
}
// 鏇存柊鍛樺伐涓昏〃
HrmEmployeeDO updateObj = BeanUtils.toBean(updateReqVO, HrmEmployeeDO.class);
--
Gitblit v1.9.3