fix: 修复数据分析页面设计师绩效排行榜部门筛选不包含子部门的问题

This commit is contained in:
Your Name 2026-01-13 16:31:19 +08:00
parent c01d915539
commit d9d8c24e2c

View File

@ -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;
}
// ==================== 流程效率统计 ====================
/**