From 23992364d62892baebfba878a2ea9c944d0e4763 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 15 一月 2026 13:40:51 +0800
Subject: [PATCH] fix:资源要求-人员-奖惩记录,新增无员工信息问题

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java      |   40 ++++++++++++++------
 ruoyi-admin-ztns/src/main/java/com/ruoyi/web/controller/system/UserController.java |    9 ++--
 ruoyi-system/src/main/resources/mapper/system/UserMapper.xml                       |   28 ++++++++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java               |    3 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserMapper.java                 |    7 +++
 5 files changed, 69 insertions(+), 18 deletions(-)

diff --git a/ruoyi-admin-ztns/src/main/java/com/ruoyi/web/controller/system/UserController.java b/ruoyi-admin-ztns/src/main/java/com/ruoyi/web/controller/system/UserController.java
index 0d8cac6..f8756bd 100644
--- a/ruoyi-admin-ztns/src/main/java/com/ruoyi/web/controller/system/UserController.java
+++ b/ruoyi-admin-ztns/src/main/java/com/ruoyi/web/controller/system/UserController.java
@@ -27,16 +27,15 @@
     private UserService userService;
 
     /**
-     * todo:  type : 1: 鑾峰彇妫�娴嬩汉鍛樹俊鎭�
-              type : 2: 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬涓嬬殑鎵�鏈夌敤鎴�
+     *
      * @param user
-     * @param type
+     * @param type 1: 鑾峰彇妫�娴嬩汉鍛樹俊鎭�,2: 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬涓嬬殑鎵�鏈夌敤鎴�
      * @return
      */
     @ApiOperation(value = "鏍规嵁鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃")
     @GetMapping("/selectUserCondition")
-    public Result selectUserCondition(User user, String type){
-        return Result.success(userService.selectUserCondition(user, type));
+    public Result selectUserCondition(User user, String type, Integer departmentId) {
+        return Result.success(userService.selectUserCondition(user, type, departmentId));
     }
 
     /**
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserMapper.java
index 210f2f9..518c43c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserMapper.java
@@ -59,6 +59,13 @@
      */
     List<User> selectDepartmentLimsUserList(@Param("userId") Integer userId);
 
+    /**
+     * 鑾峰彇閮ㄩ棬ID鏌ヨ瀵瑰簲鐨勯儴闂ㄤ汉鍛�
+     *
+     * @param departmentId 閮ㄩ棬ID
+     * @return
+     */
+    List<User> selectUserByDepartmentId(@Param("departmentId") Integer departmentId);
 
 }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java
index 89e6074..4960d18 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java
@@ -19,9 +19,10 @@
      * 鏍规嵁鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃
      * @param user
      * @param type
+     * @param departmentId  閮ㄩ棬ID
      * @return
      */
-    List<User> selectUserCondition(User user, String type);
+    List<User> selectUserCondition(User user, String type, Integer departmentId);
 
     /**
      * 鑾峰彇褰撳墠鐧诲綍鐨勫鎴蜂俊鎭�
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java
index 71fe3b3..557a42b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java
@@ -26,23 +26,39 @@
 
     /**
      * 鏍规嵁鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃
-     *      * todo:  type : 1: 鑾峰彇妫�娴嬩汉鍛樹俊鎭�
-     *               type : 2: 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬涓嬬殑鎵�鏈夌敤鎴�
-     * @param user
-     * @param type
+     * * todo:  type : 1: 鑾峰彇妫�娴嬩汉鍛樹俊鎭�
+     * type : 2: 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬涓嬬殑鎵�鏈夌敤鎴�
+     *
+     * @param user         鐢ㄦ埛
+     * @param type         绫诲瀷
+     * @param departmentId 閮ㄩ棬ID
      * @return
      */
     @Override
-    public List<User> selectUserCondition(User user, String type) {
-        if (StringUtils.isNotEmpty(type)) {
+    public List<User> selectUserCondition(User user, String type, Integer departmentId) {
 
-            switch (type) {
-                case "1":
-                    return baseMapper.selectQualityUserList();
-                case "2":
-                    return baseMapper.selectDepartmentLimsUserList(SecurityUtils.getUserId().intValue());
-            }
+        if (!StringUtils.isNotEmpty(type)) {
+            return baseMapper.selectUserCondition(QueryWrappers.queryWrappers(user), type);
+        }
 
+        switch (type) {
+
+            case "1":
+                // 妫�娴嬩汉鍛�
+                return baseMapper.selectQualityUserList();
+
+            case "2":
+                Long currentUserId = SecurityUtils.getUserId();
+                boolean isAdmin = SecurityUtils.isAdmin(currentUserId);
+
+                //  绠$悊鍛樺垽鏂紝浼犲叆閮ㄩ棬ID灏辨煡瀵瑰簲鐨勯儴闂ㄥ惁鍒欐煡璇㈠叏閮�
+                if (isAdmin) {
+                    if (departmentId != null) {
+                        return baseMapper.selectUserByDepartmentId(departmentId);
+                    }
+                    return baseMapper.selectUserCondition(QueryWrappers.queryWrappers(user), type);
+                }
+                return baseMapper.selectDepartmentLimsUserList(currentUserId.intValue());
         }
 
         return baseMapper.selectUserCondition(QueryWrappers.queryWrappers(user), type);
diff --git a/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
index e3a4e6e..84e48f4 100644
--- a/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
@@ -98,4 +98,32 @@
                                 where u2.id = #{userId})
     </select>
 
+    <select id="selectUserByDepartmentId" resultType="com.ruoyi.common.core.domain.entity.User"
+            parameterType="java.lang.Integer">
+        select id,
+               dept_id,
+               account,
+               name,
+               name_en,
+               user_type,
+               email,
+               phone,
+               sex,
+               age,
+               signature_url,
+               picture_url,
+               status,
+               del_flag,
+               login_ip,
+               login_date,
+               depart_lims_id,
+               company,
+               is_custom
+        from user
+        where del_flag = '0'
+          and depart_lims_id is not null
+          and depart_lims_id != ''
+          and FIND_IN_SET(#{departmentId}, depart_lims_id)
+    </select>
+
 </mapper>

--
Gitblit v1.9.3