From ffec90c897e9bd78e88b9fa590a5dd75d26b82c8 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@local>
Date: 星期五, 06 十一月 2026 11:38:23 +0800
Subject: [PATCH] fix(hrm): 修复员工导入失败(日期格式 + 部门/岗位/角色不存在)
---
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java | 32 ++++++++++++++++++++++++--------
1 files changed, 24 insertions(+), 8 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 eefe7a7..157ad60 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
@@ -3,6 +3,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
+import lombok.extern.slf4j.Slf4j;
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -62,6 +63,7 @@
*/
@Service
@Validated
+@Slf4j
public class HrmEmployeeServiceImpl implements HrmEmployeeService {
@Resource
@@ -470,11 +472,18 @@
if (StrUtil.isBlank(deptName)) {
throw exception(EMPLOYEE_IMPORT_FIELD_REQUIRED, "閮ㄩ棬鍚嶇О");
}
- DeptRespDTO dept = deptMap.get(deptName.trim());
- if (dept == null) {
- throw exception(EMPLOYEE_DEPT_NAME_NOT_EXISTS, deptName.trim());
+ String trimmed = deptName.trim();
+ DeptRespDTO dept = deptMap.get(trimmed);
+ if (dept != null) {
+ return dept.getId();
}
- return dept.getId();
+ // 瀹㈡埛琛ㄦ牸閲岀殑閮ㄩ棬鍚嶅彲鑳藉皻鏈湪绯荤粺涓缓绔嬶紙濡傘�岀患鍚堣溅闂淬�嶏級锛�
+ // 閮ㄩ棬鏄憳宸ョ殑蹇呭~椤癸紝鐩存帴鎶ラ敊浼氳鏁存壒瀵煎叆鍏ㄩ儴澶辫触锛岃繖閲岃嚜鍔ㄨˉ寤哄埌鏍归儴闂ㄤ笅
+ Long deptId = deptApi.getOrCreateDeptByName(trimmed);
+ if (deptId == null) {
+ throw exception(EMPLOYEE_DEPT_NAME_NOT_EXISTS, trimmed);
+ }
+ return deptId;
}
private Set<Long> parsePostIds(String postNames, Map<String, PostRespDTO> postMap) {
@@ -488,10 +497,15 @@
continue;
}
PostRespDTO post = postMap.get(trimmed);
- if (post == null) {
- throw exception(EMPLOYEE_POST_NAME_NOT_EXISTS, trimmed);
+ if (post != null) {
+ postIds.add(post.getId());
+ continue;
}
- postIds.add(post.getId());
+ // 宀椾綅鏈缓绔嬫椂鑷姩琛ュ缓锛岄伩鍏嶆暣鎵瑰鍏ュけ璐�
+ Long postId = postApi.getOrCreatePostByName(trimmed);
+ if (postId != null) {
+ postIds.add(postId);
+ }
}
if (CollUtil.isEmpty(postIds)) {
throw exception(EMPLOYEE_IMPORT_FIELD_REQUIRED, "宀椾綅鍚嶇О");
@@ -511,7 +525,9 @@
}
RoleRespDTO role = roleMap.get(trimmed);
if (role == null) {
- throw exception(EMPLOYEE_ROLE_NAME_NOT_EXISTS, trimmed);
+ // 瑙掕壊瀵瑰憳宸ュ鍏ユ槸鍙�夐」锛岃〃鏍奸噷濉簡绯荤粺娌℃湁鐨勮鑹插悕锛堝父瑙佹槸鎶婇儴闂ㄥ悕璇~鍒拌鑹插垪锛夋椂璺宠繃锛屼笉闃诲瀵煎叆
+ log.warn("[parseRoleIds][瑙掕壊({}) 涓嶅瓨鍦紝宸茶烦杩嘳", trimmed);
+ continue;
}
roleIds.add(role.getId());
}
--
Gitblit v1.9.3