支持一级需求审核时选择子部门成员完善任务明细

This commit is contained in:
Your Name 2026-01-20 13:47:26 +08:00
parent e2a9f80648
commit c839bba7b6
4 changed files with 27 additions and 6 deletions

View File

@ -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 = "获取全部用户列表")

View File

@ -75,6 +75,13 @@ public class UserService {
* 分页查询用户列表
*/
public Page<User> getUserList(int pageNum, int pageSize, String keyword, Long deptId, Integer status) {
return getUserList(pageNum, pageSize, keyword, deptId, status, false);
}
/**
* 分页查询用户列表(支持包含子部门)
*/
public Page<User> getUserList(int pageNum, int pageSize, String keyword, Long deptId, Integer status, Boolean includeChildren) {
Page<User> page = new Page<>(pageNum, pageSize);
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
@ -90,7 +97,16 @@ public class UserService {
);
}
if (deptId != null) {
queryWrapper.eq(User::getDeptId, deptId);
if (includeChildren != null && includeChildren) {
// 包含子部门:获取当前部门及所有子部门的ID列表
List<Long> 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);

View File

@ -32,12 +32,14 @@ export const getUserList = async (
pageSize: number = 10,
keyword?: string,
deptId?: number,
status?: number
status?: number,
includeChildren?: boolean
): Promise<PageResult<User>> => {
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;

View File

@ -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 = ''