From e60607fbdc127d7c622f2a20fb15fd9b04b0faac Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期五, 16 十月 2026 14:53:46 +0800
Subject: [PATCH] fix(system): 岗位导入补充必填校验,修复编码为空时的「系统异常」
---
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java | 33 ++++++++++++++++++++++++++++-----
1 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java
index 04ae90f..29e640a 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java
@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.system.service.dept;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -174,7 +175,29 @@
}
PostImportRespVO respVO = PostImportRespVO.builder().createPostNames(new ArrayList<>())
.updatePostNames(new ArrayList<>()).failurePostNames(new LinkedHashMap<>()).build();
- importPosts.forEach(importPost -> {
+ // 浣跨敤 for 涓嬫爣閬嶅巻锛屼究浜庢妸銆岀┖鍊笺�嶅け璐ュ師鍥犲畾浣嶅埌 Excel 鐨勫叿浣撹鍙凤紙琛ㄥご鍗犵 1 琛岋紝鏁版嵁浠庣 2 琛屽紑濮嬶級
+ for (int i = 0; i < importPosts.size(); i++) {
+ PostImportExcelVO importPost = importPosts.get(i);
+ // 蹇呭~鏍¢獙锛欵xcel 涓搴斿垪缂哄け鎴栨湭濉啓鏃讹紝鑻ユ斁浠荤┖鍊艰惤搴擄紝浼氳Е鍙� system_post 鐨勯潪绌虹害鏉�
+ // 锛坈ode銆乶ame銆乻ort銆乻tatus 鍧囦负 NOT NULL 涓旀棤榛樿鍊硷級锛屾暣鎵瑰鍏ョ洿鎺ユ姏銆岀郴缁熷紓甯搞��
+ String name = importPost.getName();
+ if (StrUtil.isBlank(name)) {
+ respVO.getFailurePostNames().put(StrUtil.format("绗� {} 琛�", i + 2), "宀椾綅鍚嶇О涓嶈兘涓虹┖");
+ continue;
+ }
+ if (StrUtil.isBlank(importPost.getCode())) {
+ respVO.getFailurePostNames().put(name, "宀椾綅缂栫爜涓嶈兘涓虹┖");
+ continue;
+ }
+ if (importPost.getSort() == null) {
+ respVO.getFailurePostNames().put(name, "宀椾綅鎺掑簭涓嶈兘涓虹┖");
+ continue;
+ }
+ if (importPost.getStatus() == null) {
+ respVO.getFailurePostNames().put(name, "鐘舵�佷笉鑳戒负绌猴紝涓斿彧鑳藉~鍐欍�屽紑鍚�嶆垨銆屽仠鐢ㄣ��");
+ continue;
+ }
+
// 鏍¢獙锛屽垽鏂槸鍚︽湁涓嶇鍚堢殑鍘熷洜
try {
validatePostForCreateOrUpdate(null, importPost.getName(), importPost.getCode());
@@ -184,7 +207,7 @@
// ignore
} else {
respVO.getFailurePostNames().put(importPost.getName(), ex.getMessage());
- return;
+ continue;
}
}
@@ -197,13 +220,13 @@
PostDO post = BeanUtils.toBean(importPost, PostDO.class);
postMapper.insert(post);
respVO.getCreatePostNames().add(importPost.getName());
- return;
+ continue;
}
// 濡傛灉瀛樺湪锛屽垽鏂槸鍚﹀厑璁告洿鏂�
if (!isUpdateSupport) {
respVO.getFailurePostNames().put(importPost.getName(), "宀椾綅鍚嶆垨缂栫爜宸茬粡瀛樺湪");
- return;
+ continue;
}
// 鏇存柊宀椾綅
@@ -211,7 +234,7 @@
updatePost.setId(existPost.getId());
postMapper.updateById(updatePost);
respVO.getUpdatePostNames().add(importPost.getName());
- });
+ }
// 璁板綍瀵煎叆缁撴灉姹囨�伙紝渚� @LogRecord 鐨� success 鏂囨寮曠敤
OperateLogUtils.putImportSummary(respVO.getCreatePostNames(), respVO.getUpdatePostNames(),
respVO.getFailurePostNames());
--
Gitblit v1.9.3