Parcourir la source

Merge remote-tracking branch 'origin/master'

lipenghui il y a 1 mois
Parent
commit
911f11d8f9

+ 1 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/iotprojecttask/IotProjectTaskMapper.xml

@@ -59,6 +59,7 @@
                 #{deptId}
             </foreach>
         </if>
+        ORDER BY a.id DESC
     </select>
 
 </mapper>

+ 13 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java

@@ -153,6 +153,19 @@ public class UserController {
         return success(UserConvert.INSTANCE.convertSimpleList(list, deptMap.get()));
     }
 
+    @GetMapping("/selectedDeptsEmployee")
+    @Operation(summary = "获取选择的部门包含的子部门下的所有人员", description = "获取选择的部门包含的子部门下的所有人员")
+    public CommonResult<List<UserSimpleRespVO>> selectedDeptsEmployee(UserPageReqVO reqVO) {
+        List<AdminUserDO> list = userService.selectedDeptsEmployee(reqVO);
+        // 拼接数据
+        AtomicReference<Map<Long, DeptDO>> deptMap = new AtomicReference<>(new HashMap<>());
+        DataPermissionUtils.executeIgnore(() -> {
+            deptMap.set(deptService.getDeptMap(
+                    convertList(list, AdminUserDO::getDeptId)));
+        });
+        return success(UserConvert.INSTANCE.convertSimpleList(list, deptMap.get()));
+    }
+
     @GetMapping("/get")
     @Operation(summary = "获得用户详情")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")

+ 9 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java

@@ -126,8 +126,16 @@ public interface DeptService {
     /**
      * 查询所有公司级别部门及子部门
      *
-     * @param id 父部门编号
+     * @param deptListReqVO 请求参数
      * @return 子部门列表
      */
     List<DeptDO> companyLevelChildrenDepts(DeptListReqVO deptListReqVO);
+
+    /**
+     * 查询所选部门及子部门
+     *
+     * @param deptListReqVO 请求参数
+     * @return 子部门列表
+     */
+    List<Long> selectedDepts(DeptListReqVO deptListReqVO);
 }

+ 17 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java

@@ -399,6 +399,7 @@ public class DeptServiceImpl implements DeptService {
                 DataPermissionUtils.executeIgnore(() -> {
                     // 查询当前部门dept的所有子部门
                     Set<Long> tempDeptIds = getChildDeptIdListFromCache(dept.getId());
+                    allDeptIds.add(dept.getId());
                     allDeptIds.addAll(tempDeptIds);
                 });
             });
@@ -415,4 +416,20 @@ public class DeptServiceImpl implements DeptService {
         return resultDepts;
     }
 
+    @Override
+    public List<Long> selectedDepts(DeptListReqVO deptListReqVO) {
+        Set<Long> allDeptIds = new HashSet<>();
+        if (CollUtil.isNotEmpty(deptListReqVO.getDeptIds())) {
+            deptListReqVO.getDeptIds().forEach(deptId -> {
+                DataPermissionUtils.executeIgnore(() -> {
+                    // 查询当前部门dept的所有子部门
+                    Set<Long> tempDeptIds = getChildDeptIdListFromCache(deptId);
+                    allDeptIds.add(deptId);
+                    allDeptIds.addAll(tempDeptIds);
+                });
+            });
+        }
+        return new ArrayList<>(allDeptIds);
+    }
+
 }

+ 8 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java

@@ -249,4 +249,12 @@ public interface AdminUserService {
      * @return 用户列表
      */
     List<AdminUserDO> companyDeptsEmployee(UserPageReqVO reqVO);
+
+    /**
+     * 获取选择的部门包含的子部门下的所有人员
+     *
+     * @param reqVO 部门id集合
+     * @return 用户列表
+     */
+    List<AdminUserDO> selectedDeptsEmployee(UserPageReqVO reqVO);
 }

+ 29 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@@ -669,6 +669,35 @@ public class AdminUserServiceImpl implements AdminUserService {
         return resultUsers.get();
     }
 
+    @Override
+    public List<AdminUserDO> selectedDeptsEmployee(UserPageReqVO reqVO) {
+        AtomicReference<List<AdminUserDO>> resultUsers = new AtomicReference<>(new ArrayList<>());
+        if (CollUtil.isNotEmpty(reqVO.getUserIds())) {
+            // 如果传参中有 userIds 则不需要根据部门查询用户 直接查询指定 userIds 对应的用户即可
+            DataPermissionUtils.executeIgnore(() -> {
+                List<AdminUserDO> users = userMapper.selectList(reqVO);
+                resultUsers.set(users);
+            });
+            return resultUsers.get();
+        }
+        if (CollUtil.isEmpty(reqVO.getDeptIds())) {
+            throw exception(DEPT_NOT_FOUND);
+        }
+        DeptListReqVO deptListReqVO = new DeptListReqVO();
+        deptListReqVO.setDeptIds(reqVO.getDeptIds());
+        List<Long> deptIds = deptService.selectedDepts(deptListReqVO);
+        if (CollUtil.isNotEmpty(deptIds)) {
+            // 查询部门下所有人员
+            DataPermissionUtils.executeIgnore(() -> {
+                List<AdminUserDO> users = userMapper.selectSimpleList(deptIds);
+                if (CollUtil.isNotEmpty(users)) {
+                    resultUsers.set(users);
+                }
+            });
+        }
+        return resultUsers.get();
+    }
+
     /**
      * 对密码进行加密
      *