fix: 设计师列表支持递归查询子部门成员
问题: - 部门负责人指定设计师时,只能看到直属部门成员 - 如果设计师在2级或3级部门,无法被上级部门负责人看到 修改: - UserService.getDesignersWithWorkload: - 增加 getAllSubDepartmentIds 递归查询方法 - 使用 IN 查询获取该部门及其所有子部门下的成员
This commit is contained in:
parent
d08f0a3d47
commit
64f3e25714
@ -1213,7 +1213,9 @@ public class UserService {
|
||||
queryWrapper.eq(User::getStatus, 1); // 只查询启用的用户
|
||||
queryWrapper.eq(User::getDeleted, 0); // 未删除
|
||||
if (deptId != null) {
|
||||
queryWrapper.eq(User::getDeptId, deptId);
|
||||
// 递归获取所有子部门ID(包含自身)
|
||||
List<Long> allDeptIds = getAllSubDepartmentIds(deptId);
|
||||
queryWrapper.in(User::getDeptId, allDeptIds);
|
||||
}
|
||||
queryWrapper.orderByAsc(User::getRealName);
|
||||
|
||||
@ -1280,6 +1282,28 @@ public class UserService {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归获取所有子部门ID(包括自身)
|
||||
*/
|
||||
private List<Long> getAllSubDepartmentIds(Long deptId) {
|
||||
List<Long> deptIds = new ArrayList<>();
|
||||
deptIds.add(deptId);
|
||||
|
||||
// 查询直接子部门
|
||||
List<Department> subDepts = departmentMapper.selectList(
|
||||
new LambdaQueryWrapper<Department>()
|
||||
.eq(Department::getParentId, deptId)
|
||||
.eq(Department::getStatus, 1)
|
||||
.eq(Department::getDeleted, 0)
|
||||
);
|
||||
|
||||
for (Department subDept : subDepts) {
|
||||
deptIds.addAll(getAllSubDepartmentIds(subDept.getId()));
|
||||
}
|
||||
|
||||
return deptIds;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置/取消管理员
|
||||
*/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user