From d9d8c24e2c04f7b5242ce7afc5ea205d23999799 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 13 Jan 2026 16:31:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=88=86=E6=9E=90=E9=A1=B5=E9=9D=A2=E8=AE=BE=E8=AE=A1=E5=B8=88?= =?UTF-8?q?=E7=BB=A9=E6=95=88=E6=8E=92=E8=A1=8C=E6=A6=9C=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E4=B8=8D=E5=8C=85=E5=90=AB=E5=AD=90=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designhub/service/AnalyticsService.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/AnalyticsService.java b/backend/src/main/java/com/designhub/service/AnalyticsService.java index 7dc6f32..e193f09 100644 --- a/backend/src/main/java/com/designhub/service/AnalyticsService.java +++ b/backend/src/main/java/com/designhub/service/AnalyticsService.java @@ -843,9 +843,11 @@ public class AnalyticsService { LambdaQueryWrapper userQuery = new LambdaQueryWrapper() .eq(User::getStatus, 1); - // 如果指定了部门ID,则按部门过滤 + // 如果指定了部门ID,获取该部门及其所有子部门 if (deptId != null) { - userQuery.eq(User::getDeptId, deptId); + List targetDeptIds = getDeptAndChildIds(deptId); + log.debug("筛选部门: deptId={}, targetDeptIds={}", deptId, targetDeptIds); + userQuery.in(User::getDeptId, targetDeptIds); } List allUsers = userMapper.selectList(userQuery); @@ -867,6 +869,25 @@ public class AnalyticsService { return designers; } + /** + * 递归获取部门及其所有子部门ID + */ + private List getDeptAndChildIds(Long deptId) { + List deptIds = new ArrayList<>(); + deptIds.add(deptId); + + List children = departmentMapper.selectList( + new LambdaQueryWrapper() + .eq(Department::getParentId, deptId) + .eq(Department::getStatus, 1) + ); + + for (Department child : children) { + deptIds.addAll(getDeptAndChildIds(child.getId())); + } + return deptIds; + } + // ==================== 流程效率统计 ==================== /**