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;