From b9e71660ca35e947ccac8079d3033b88ece5190e Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 22 五月 2026 16:01:21 +0800
Subject: [PATCH] fix(approve): 修复审批流程中空节点ID列表导致的异常

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java |    1 +
 src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java            |   10 +++-------
 src/main/resources/mapper/system/SysUserMapper.xml                          |   18 +++++++++++-------
 3 files changed, 15 insertions(+), 14 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 219fa6f..c152605 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -72,6 +72,7 @@
         List<Long> nodeIds = list.stream()
                 .map(ApproveProcessConfigNodeVo::getApproverId)
                 .collect(Collectors.toList());
+        if (nodeIds.isEmpty()) throw new RuntimeException("娣诲姞瀹℃壒鑺傜偣鍜屼汉鍛�");
         List<SysUser> sysUsers = sysUserMapper.selectUserByIds(nodeIds);
         if (CollectionUtils.isEmpty(sysUsers)) throw new RuntimeException("瀹℃牳鐢ㄦ埛涓嶅瓨鍦�");
         if (sysDept == null) throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
diff --git a/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java b/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
index 5507b3f..831f1b5 100644
--- a/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
+++ b/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
@@ -1,15 +1,11 @@
 package com.ruoyi.project.system.mapper;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.collaborativeApproval.pojo.MeetingMinutes;
+import com.ruoyi.project.system.domain.SysUser;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
-import com.ruoyi.project.system.domain.SysUser;
-import org.springframework.beans.PropertyValues;
+import java.util.List;
 
 /**
  * 鐢ㄦ埛琛� 鏁版嵁灞�
@@ -149,7 +145,7 @@
      */
     public SysUser checkEmailUnique(String email);
 
-    List<SysUser> selectRegistrantIds(List<Long> registrantIds);
+    List<SysUser> selectRegistrantIds(@Param("registrantIds") List<Long> registrantIds);
 
     List<SysUser> selectUsersByIds(@Param("userIds") List<Long> userIds);
 
diff --git a/src/main/resources/mapper/system/SysUserMapper.xml b/src/main/resources/mapper/system/SysUserMapper.xml
index 9d799bf..16b0d40 100644
--- a/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/src/main/resources/mapper/system/SysUserMapper.xml
@@ -161,21 +161,25 @@
 	</select>
 	<select id="selectUserByIds" resultType="com.ruoyi.project.system.domain.SysUser">
 		<include refid="selectUserVo"/>
-		where u.user_id in <foreach collection="userIds" item="item" open="(" separator="," close=")">
- 			#{item}
-        </foreach>
-		and u.del_flag = '0'
+		<where>
+			u.del_flag = '0'
+			<if test="userIds != null and userIds.size() > 0">
+			and	u.user_id in <foreach collection="userIds" item="item" open="(" separator="," close=")">
+				#{item}
+			</foreach>
+			</if>
+		</where>
 	</select>
 	<select id="selectRegistrantIds" resultType="com.ruoyi.project.system.domain.SysUser">
 		SELECT user_id, nick_name FROM sys_user
 		<where>
-			<if test="list != null and list.size() > 0">
+			<if test="registrantIds != null and registrantIds.size() > 0">
 				user_id IN
-				<foreach item="id" collection="list" open="(" separator="," close=")">
+				<foreach item="id" collection="registrantIds" open="(" separator="," close=")">
 					#{id}
 				</foreach>
 			</if>
-			<if test="list == null or list.size() == 0">
+			<if test="registrantIds == null or registrantIds.size() == 0">
 				1=0  <!-- 绌哄垪琛ㄦ椂杩斿洖绌虹粨鏋� -->
 			</if>
 		</where>

--
Gitblit v1.9.3