From 7d6be866a896e03fb311ba0d491a9382809c7111 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 22 一月 2026 09:43:57 +0800
Subject: [PATCH] 1.修改人员离职原因分析逻辑 2.新增离职设置原因和备注
---
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