diff --git a/backend/src/main/java/com/designhub/controller/UserController.java b/backend/src/main/java/com/designhub/controller/UserController.java index 3076b5f..85369b4 100644 --- a/backend/src/main/java/com/designhub/controller/UserController.java +++ b/backend/src/main/java/com/designhub/controller/UserController.java @@ -34,9 +34,10 @@ public class UserController { @RequestParam(defaultValue = "10") int pageSize, @RequestParam(required = false) String keyword, @RequestParam(required = false) Long deptId, - @RequestParam(required = false) Integer status + @RequestParam(required = false) Integer status, + @RequestParam(required = false, defaultValue = "false") Boolean includeChildren ) { - return Result.success(userService.getUserList(pageNum, pageSize, keyword, deptId, status)); + return Result.success(userService.getUserList(pageNum, pageSize, keyword, deptId, status, includeChildren)); } @Operation(summary = "获取全部用户列表") diff --git a/backend/src/main/java/com/designhub/service/UserService.java b/backend/src/main/java/com/designhub/service/UserService.java index 94fdc8b..c194b36 100644 --- a/backend/src/main/java/com/designhub/service/UserService.java +++ b/backend/src/main/java/com/designhub/service/UserService.java @@ -75,6 +75,13 @@ public class UserService { * 分页查询用户列表 */ public Page getUserList(int pageNum, int pageSize, String keyword, Long deptId, Integer status) { + return getUserList(pageNum, pageSize, keyword, deptId, status, false); + } + + /** + * 分页查询用户列表(支持包含子部门) + */ + public Page getUserList(int pageNum, int pageSize, String keyword, Long deptId, Integer status, Boolean includeChildren) { Page page = new Page<>(pageNum, pageSize); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -90,7 +97,16 @@ public class UserService { ); } if (deptId != null) { - queryWrapper.eq(User::getDeptId, deptId); + if (includeChildren != null && includeChildren) { + // 包含子部门:获取当前部门及所有子部门的ID列表 + List deptIds = departmentService.getAllChildDeptIds(deptId); + deptIds.add(deptId); // 包含当前部门 + queryWrapper.in(User::getDeptId, deptIds); + log.info("查询用户列表,包含子部门: deptId={}, 所有部门IDs={}", deptId, deptIds); + } else { + // 只查询当前部门 + queryWrapper.eq(User::getDeptId, deptId); + } } if (status != null) { queryWrapper.eq(User::getStatus, status); diff --git a/frontend/src/api/user.ts b/frontend/src/api/user.ts index cf21a95..ff23873 100644 --- a/frontend/src/api/user.ts +++ b/frontend/src/api/user.ts @@ -32,12 +32,14 @@ export const getUserList = async ( pageSize: number = 10, keyword?: string, deptId?: number, - status?: number + status?: number, + includeChildren?: boolean ): Promise> => { const params: any = { pageNum, pageSize }; if (keyword) params.keyword = keyword; if (deptId) params.deptId = deptId; if (status !== undefined) params.status = status; + if (includeChildren !== undefined) params.includeChildren = includeChildren; const response = await request.get('/users', { params }); return response.data; diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index f839436..6acc76f 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -5434,14 +5434,16 @@ const handleApprovePrimaryTask = async (task: Task) => { return } - // 获取部门成员 - const response = await userApi.getUserList(1, 100, undefined, deptId, 1) + // 获取部门成员(包含所有子部门) + const response = await userApi.getUserList(1, 1000, undefined, deptId, 1, true) deptMembersList.value = (response.records || []).map(u => ({ id: u.id!, realName: u.realName || u.username, username: u.username })) + console.log(`获取到${deptMembersList.value.length}个部门成员(含子部门)`) + primaryApproveTaskData.value = task primaryApproveCompleterId.value = undefined primaryApproveComment.value = ''