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