From a0914318549b357ef3c438d0c2a3714f58ea3487 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期五, 23 一月 2026 14:14:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/staff/service/impl/AnalyticsServiceImpl.java |   34 ++++++++++++++++++++++++++--------
 1 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/staff/service/impl/AnalyticsServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/AnalyticsServiceImpl.java
index 13a440c..24abcfc 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/AnalyticsServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/AnalyticsServiceImpl.java
@@ -16,7 +16,9 @@
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @AllArgsConstructor
 @Service
@@ -29,16 +31,32 @@
 
     @Override
     public List<StaffLeaveDto> staffLeaveReasonAnalytics() {
-        List<StaffLeaveDto> result = staffLeaveMapper.staffLeaveReasonAnalytics();
-        result.forEach(dto -> {
+        List<StaffLeaveDto> dbResult = staffLeaveMapper.staffLeaveReasonAnalytics();
+
+        // 鍒涘缓涓�涓狹ap鐢ㄤ簬瀛樺偍鎵�鏈夋灇涓惧師鍥犵殑鏁伴噺锛岄粯璁ゅ�间负0
+        Map<String, Integer> reasonCountMap = new HashMap<>();
+        for (StaffLeaveReason reasonEnum : StaffLeaveReason.values()) {
+            reasonCountMap.put(reasonEnum.getCode(), 0);
+        }
+
+        // 灏嗘暟鎹簱鏌ヨ缁撴灉鍚堝苟鍒癕ap涓�
+        for (StaffLeaveDto dto : dbResult) {
             String reasonCode = dto.getReason();
-            StaffLeaveReason reasonEnum = StaffLeaveReason.getByCode(reasonCode);
-            if (reasonEnum != null) {
-                dto.setReasonText(reasonEnum.getInfo());
-            } else {
-                dto.setReasonText("鏈煡鍘熷洜");
+            if (reasonCountMap.containsKey(reasonCode)) {
+                reasonCountMap.put(reasonCode, dto.getCount());
             }
-        });
+        }
+
+        // 灏哅ap杞崲涓篖ist<StaffLeaveDto>
+        List<StaffLeaveDto> result = new ArrayList<>();
+        for (StaffLeaveReason reasonEnum : StaffLeaveReason.values()) {
+            StaffLeaveDto dto = new StaffLeaveDto();
+            dto.setReason(reasonEnum.getCode());
+            dto.setCount(reasonCountMap.get(reasonEnum.getCode()));
+            dto.setReasonText(reasonEnum.getInfo());
+            result.add(dto);
+        }
+
         return result;
     }
 

--
Gitblit v1.9.3