From 3f8a3446f843fb542add1cfb775afed27915286a Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 17 Jan 2026 10:21:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=A5=E5=8D=95=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E5=88=86=E6=9E=90=E6=98=BE=E7=A4=BA=E6=89=80=E6=9C=89=E6=8E=A5?= =?UTF-8?q?=E5=8D=95=E9=83=A8=E9=97=A8=EF=BC=88=E5=8C=85=E6=8B=AC=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E4=BB=BB=E5=8A=A1=E7=9A=84=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designhub/service/AnalyticsService.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/AnalyticsService.java b/backend/src/main/java/com/designhub/service/AnalyticsService.java index bb0d974..3c2a8d1 100644 --- a/backend/src/main/java/com/designhub/service/AnalyticsService.java +++ b/backend/src/main/java/com/designhub/service/AnalyticsService.java @@ -2092,9 +2092,15 @@ public class AnalyticsService { Map deptParentIds = departments.stream() .collect(Collectors.toMap(d -> d.getId(), d -> d.getParentId() != null ? d.getParentId() : 0L, (a, b) -> a)); - // πŸ”₯ θŽ·ε–ζ―δΈͺιƒ¨ι—¨ηš„δΊΊζ•°οΌˆεŒ…ε«ιƒ¨ι—¨θ΄Ÿθ΄£δΊΊοΌ‰ + // πŸ”₯ θŽ·ε–ζ‰€ζœ‰ζŽ₯ε•η±»εž‹ηš„ιƒ¨ι—¨οΌˆεŒ…ζ‹¬ζ²‘ζœ‰δ»»εŠ‘ηš„οΌ‰ + List receivingDepts = departments.stream() + .filter(d -> "receiving".equals(d.getDeptType()) && d.getStatus() != null && d.getStatus() == 1) + .collect(Collectors.toList()); + + // πŸ”₯ θŽ·ε–ζ―δΈͺζŽ₯ε•ιƒ¨ι—¨ηš„δΊΊζ•°οΌˆεŒ…ε«ιƒ¨ι—¨θ΄Ÿθ΄£δΊΊοΌ‰ Map deptMemberCounts = new HashMap<>(); - for (Long deptId : tasksByDept.keySet()) { + for (Department dept : receivingDepts) { + Long deptId = dept.getId(); // ζŸ₯θ―’θ―₯ιƒ¨ι—¨εŠε…Άε­ιƒ¨ι—¨ηš„ζ‰€ζœ‰η”¨ζˆ·ζ•°ι‡ List deptAndChildIds = getDeptAndChildIds(deptId); Long memberCount = userMapper.selectCount(new LambdaQueryWrapper() @@ -2106,9 +2112,10 @@ public class AnalyticsService { deptMemberCounts.put(deptId, memberCount.intValue() + leaderCount); } - for (Map.Entry> entry : tasksByDept.entrySet()) { - Long deptId = entry.getKey(); - List deptTasks = entry.getValue(); + // πŸ”₯ ιεŽ†ζ‰€ζœ‰ζŽ₯ε•ιƒ¨ι—¨οΌˆεŒ…ζ‹¬ζ²‘ζœ‰δ»»εŠ‘ηš„οΌ‰ + for (Department dept : receivingDepts) { + Long deptId = dept.getId(); + List deptTasks = tasksByDept.getOrDefault(deptId, Collections.emptyList()); DimensionAnalysisVO.ReceivingDeptAnalysis analysis = new DimensionAnalysisVO.ReceivingDeptAnalysis(); analysis.setDeptId(deptId); @@ -2194,7 +2201,7 @@ public class AnalyticsService { result.add(analysis); } - // ζŒ‰δ»»εŠ‘ζ•°ι‡ι™εΊζŽ’εΊ + // ζŒ‰δ»»εŠ‘ζ•°ι‡ι™εΊζŽ’εΊοΌˆζœ‰δ»»εŠ‘ηš„ζŽ’ε‰ι’οΌ‰ result.sort((a, b) -> Integer.compare(b.getTotalTasks(), a.getTotalTasks())); return result;