From 4f45f29e6b53f4c01b414409c5000ff4e212b3d9 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 05 六月 2026 13:36:54 +0800
Subject: [PATCH] 增加eip

---
 report-server/src/main/java/com/ruoyi/report/service/impl/DashboardServiceImpl.java |  107 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 107 insertions(+), 0 deletions(-)

diff --git a/report-server/src/main/java/com/ruoyi/report/service/impl/DashboardServiceImpl.java b/report-server/src/main/java/com/ruoyi/report/service/impl/DashboardServiceImpl.java
new file mode 100644
index 0000000..16f0406
--- /dev/null
+++ b/report-server/src/main/java/com/ruoyi/report/service/impl/DashboardServiceImpl.java
@@ -0,0 +1,107 @@
+package com.ruoyi.report.service.impl;
+
+import com.ruoyi.report.dto.DashboardDto;
+import com.ruoyi.report.mapper.DashboardMapper;
+import com.ruoyi.report.service.DashboardService;
+import com.ruoyi.report.vo.DashboardOverviewVo;
+import com.ruoyi.report.vo.RankingVo;
+import com.ruoyi.report.vo.TaskCalendarVo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+/**
+ * 鏁板瓧鍖栬闊崇湅鏉挎湇鍔″疄鐜�
+ */
+@Service
+@AllArgsConstructor
+public class DashboardServiceImpl implements DashboardService {
+
+    private DashboardMapper dashboardMapper;
+
+    @Override
+    public DashboardOverviewVo getOverview(DashboardDto dto) {
+        DashboardOverviewVo vo = new DashboardOverviewVo();
+
+        // 寰呭鐞嗙粺璁�
+        vo.setWaitReceive(dashboardMapper.getWaitReceive());
+        vo.setWaitInspection(dashboardMapper.getWaitInspection());
+        vo.setWaitAudit(dashboardMapper.getWaitAudit());
+        vo.setWaitReport(dashboardMapper.getWaitReport());
+
+        // 浠婃棩缁熻
+        vo.setTodayNewSample(dashboardMapper.getTodayNewSample());
+        vo.setTodayFinished(dashboardMapper.getTodayFinished());
+
+        // 杩�30澶╂楠岀粨鏋�
+        vo.setRawMaterialResult(dashboardMapper.getInsResultByDays(30, "1"));
+        vo.setSemiFinishedResult(dashboardMapper.getInsResultByDays(30, "2"));
+        vo.setFinishedProductResult(dashboardMapper.getInsResultByDays(30, "3"));
+
+        return vo;
+    }
+
+    @Override
+    public List<TaskCalendarVo> getHistory15Days(DashboardDto dto) {
+        return dashboardMapper.getHistoryDays(15, dto);
+    }
+
+    @Override
+    public List<TaskCalendarVo> getFuture15Days(DashboardDto dto) {
+        return dashboardMapper.getFutureDays(15, dto);
+    }
+
+    @Override
+    public List<RankingVo> getRanking(DashboardDto dto) {
+        // 鍚堝苟鍘熷璁板綍鎺掕鍜屾姤鍛婃帓琛�
+        List<RankingVo> originalRanking = dashboardMapper.getOriginalRecordRanking(dto);
+        List<RankingVo> reportRanking = dashboardMapper.getReportRanking(dto);
+
+        Map<Long, RankingVo> rankingMap = new HashMap<>();
+
+        // 澶勭悊鍘熷璁板綍鎺掕
+        for (int i = 0; i < originalRanking.size(); i++) {
+            RankingVo vo = originalRanking.get(i);
+            vo.setRank(i + 1);
+            vo.setFinishCount(vo.getSubmitCount());
+            rankingMap.put(vo.getUserId(), vo);
+        }
+
+        // 澶勭悊鎶ュ憡鎺掕
+        for (RankingVo report : reportRanking) {
+            RankingVo existing = rankingMap.get(report.getUserId());
+            if (existing != null) {
+                existing.setFinishCount(existing.getFinishCount() + report.getSubmitCount());
+            } else {
+                report.setRank(0);
+                report.setFinishCount(report.getSubmitCount());
+                rankingMap.put(report.getUserId(), report);
+            }
+        }
+
+        // 鎺掑簭骞惰缃帓鍚�
+        List<RankingVo> result = new ArrayList<>(rankingMap.values());
+        result.sort((a, b) -> b.getFinishCount().compareTo(a.getFinishCount()));
+        for (int i = 0; i < result.size(); i++) {
+            result.get(i).setRank(i + 1);
+        }
+
+        return result.size() > 10 ? result.subList(0, 10) : result;
+    }
+
+    @Override
+    public Map<String, Object> getInsResult(DashboardDto dto) {
+        Map<String, Object> result = new HashMap<>();
+        result.put("rawMaterial", dashboardMapper.getInsResultByDays(30, "1"));
+        result.put("semiFinished", dashboardMapper.getInsResultByDays(30, "2"));
+        result.put("finishedProduct", dashboardMapper.getInsResultByDays(30, "3"));
+        return result;
+    }
+
+    @Override
+    public List<Map<String, Object>> getVoiceQueue() {
+        return dashboardMapper.getVoiceQueue();
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.9.3