fix: 修复数据分析页面设计师绩效排行榜部门筛选不包含子部门的问题
This commit is contained in:
parent
c01d915539
commit
d9d8c24e2c
@ -843,9 +843,11 @@ public class AnalyticsService {
|
||||
LambdaQueryWrapper<User> userQuery = new LambdaQueryWrapper<User>()
|
||||
.eq(User::getStatus, 1);
|
||||
|
||||
// 如果指定了部门ID,则按部门过滤
|
||||
// 如果指定了部门ID,获取该部门及其所有子部门
|
||||
if (deptId != null) {
|
||||
userQuery.eq(User::getDeptId, deptId);
|
||||
List<Long> targetDeptIds = getDeptAndChildIds(deptId);
|
||||
log.debug("筛选部门: deptId={}, targetDeptIds={}", deptId, targetDeptIds);
|
||||
userQuery.in(User::getDeptId, targetDeptIds);
|
||||
}
|
||||
|
||||
List<User> allUsers = userMapper.selectList(userQuery);
|
||||
@ -867,6 +869,25 @@ public class AnalyticsService {
|
||||
return designers;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归获取部门及其所有子部门ID
|
||||
*/
|
||||
private List<Long> getDeptAndChildIds(Long deptId) {
|
||||
List<Long> deptIds = new ArrayList<>();
|
||||
deptIds.add(deptId);
|
||||
|
||||
List<Department> children = departmentMapper.selectList(
|
||||
new LambdaQueryWrapper<Department>()
|
||||
.eq(Department::getParentId, deptId)
|
||||
.eq(Department::getStatus, 1)
|
||||
);
|
||||
|
||||
for (Department child : children) {
|
||||
deptIds.addAll(getDeptAndChildIds(child.getId()));
|
||||
}
|
||||
return deptIds;
|
||||
}
|
||||
|
||||
// ==================== 流程效率统计 ====================
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user