From abbb0e6fa913843bd10c5c63c6b5484c88e74e8f Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 24 八月 2026 13:34:34 +0800
Subject: [PATCH] refactor(approve): 优化部门信息加载逻辑

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index d0b0c7a..191befa 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -92,8 +92,7 @@
     public void addApprove(ApproveProcessVO approveProcessVO) throws Exception {
         SysUser sysUser = sysUserMapper.selectUserById(approveProcessVO.getApproveUser());
         List<Long> approveDeptIds = normalizeDeptIds(approveProcessVO.getApproveDeptIdArray(), approveProcessVO.getApproveDeptId());
-        List<SysDept> sysDepts = sysDeptMapper.selectBatchIds(approveDeptIds);
-        Map<Long, SysDept> deptMap = sysDepts.stream().collect(Collectors.toMap(SysDept::getDeptId, dept -> dept));
+        Map<Long, SysDept> deptMap = loadDepartments(approveDeptIds);
         if (deptMap.size() != approveDeptIds.size()) throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
         SysDept sysDept = deptMap.get(approveDeptIds.get(0));
         String[] split = approveProcessVO.getApproveUserIds().split(",");
@@ -398,8 +397,7 @@
         if (approveGetAndUpdateVo.getApproveDeptIdArray() != null || approveGetAndUpdateVo.getApproveDeptId() != null) {
             if (approve.getApproveStatus() == 1) throw new RuntimeException("瀹℃牳涓笉鍙互淇敼瀹℃壒閮ㄩ棬");
             List<Long> deptIds = normalizeDeptIds(approveGetAndUpdateVo.getApproveDeptIdArray(), approveGetAndUpdateVo.getApproveDeptId());
-            List<SysDept> departments = sysDeptMapper.selectBatchIds(deptIds);
-            Map<Long, SysDept> deptMap = departments.stream().collect(Collectors.toMap(SysDept::getDeptId, dept -> dept));
+            Map<Long, SysDept> deptMap = loadDepartments(deptIds);
             if (deptMap.size() != deptIds.size()) throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
             approve.setApproveDeptId(deptIds.get(0));
             approve.setApproveDeptName(deptIds.stream().map(deptMap::get).map(SysDept::getDeptName).collect(Collectors.joining(",")));
@@ -452,6 +450,15 @@
     }
 
 
+    private Map<Long, SysDept> loadDepartments(List<Long> deptIds) {
+        Map<Long, SysDept> deptMap = new java.util.HashMap<>();
+        for (Long deptId : deptIds) {
+            SysDept dept = sysDeptMapper.selectDeptById(deptId);
+            if (dept != null) deptMap.put(deptId, dept);
+        }
+        return deptMap;
+    }
+
     private List<Long> normalizeDeptIds(List<Long> deptIds, Long deptId) {
         List<Long> ids = deptIds == null || deptIds.isEmpty() ? (deptId == null ? new ArrayList<>() : Arrays.asList(deptId)) : deptIds;
         if (ids.isEmpty()) throw new RuntimeException("璇烽�夋嫨瀹℃壒閮ㄩ棬");

--
Gitblit v1.9.3