From d6c07c838abeabdd23c4fdcfc69e08a9aaa9725f Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 02 三月 2026 17:52:04 +0800
Subject: [PATCH] yys 劳保报表开发

---
 src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java |   96 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 96 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java b/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java
index 9e66121..ef94325 100644
--- a/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java
+++ b/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java
@@ -93,6 +93,102 @@
         return records;
     }
 
+    @Override
+    public Map<String, Object> progressTotal(LaborIssue req) {
+        StartAndEndDateDto startAndEndDateDto = getStartAndEndDateDto(req.getSeason(), req.getIssueDate());
+        req.setStartDate(startAndEndDateDto.getStartDate());
+        req.setEndDate(startAndEndDateDto.getEndDate());
+        List<LaborIssue> laborIssueIPage = lavorIssueMapper.list(req);
+        Map<String, Object> map = new HashMap<>();
+        map.put("total", 0); // 鍙戞斁鎬绘暟閲�
+        // 棰嗗彇鏁伴噺
+        map.put("adopted", 0);
+        // 鏈鍙栨暟閲�
+        map.put("notAdopted", 0);
+        // 棰嗗彇瀹屾垚鐜�
+        map.put("adoptedPercent", 0);
+        if(!CollectionUtils.isEmpty(laborIssueIPage)){
+            long sum = laborIssueIPage.stream().mapToLong(LaborIssue::getNum).sum();
+            map.put("total", sum);
+            long sum1 = laborIssueIPage
+                    .stream()
+                    .filter(laborIssue -> laborIssue.getAdoptedDate() != null)
+                    .mapToLong(LaborIssue::getNum)
+                    .sum();
+            map.put("adopted", sum1);
+            map.put("notAdopted", sum - sum1);
+            map.put("adoptedPercent", sum1 * 100.0 / sum);
+        }
+        return map;
+    }
+
+    @Override
+    public Map<String, Object> progressPercent(LaborIssue req) {
+        StartAndEndDateDto startAndEndDateDto = getStartAndEndDateDto(req.getSeason(), req.getIssueDate());
+        req.setStartDate(startAndEndDateDto.getStartDate());
+        req.setEndDate(startAndEndDateDto.getEndDate());
+        List<LaborIssue> laborIssueIPage = lavorIssueMapper.list(req);
+        Map<String, Object> map = new HashMap<>();
+        // 棰嗗彇鏁伴噺
+        map.put("adopted", 0);
+        // 鏈鍙栨暟閲�
+        map.put("notAdopted", 0);
+        if(!CollectionUtils.isEmpty(laborIssueIPage)){
+            long sum = laborIssueIPage.stream().mapToLong(LaborIssue::getNum).sum();
+            long sum1 = laborIssueIPage
+                    .stream()
+                    .filter(laborIssue -> laborIssue.getAdoptedDate() != null)
+                    .mapToLong(LaborIssue::getNum)
+                    .sum();
+            map.put("adopted", sum1);
+            map.put("notAdopted", sum - sum1);
+        }
+        return map;
+    }
+
+    @Override
+    public Map<String, Object> progressDistribution(LaborIssue req) {
+        StartAndEndDateDto startAndEndDateDto = getStartAndEndDateDto(req.getSeason(), req.getIssueDate());
+        req.setStartDate(startAndEndDateDto.getStartDate());
+        req.setEndDate(startAndEndDateDto.getEndDate());
+        List<LaborIssue> laborIssueIPage = lavorIssueMapper.list(req);
+        Map<String, Object> map = new HashMap<>();
+        if(!CollectionUtils.isEmpty(laborIssueIPage)){
+            // 鏍规嵁鍙戞斁鏃ユ湡锛岄鐢ㄦ棩鏈熻绠楀強鏃跺凡棰嗗彇锛屽強鏃舵湭棰嗗彇锛岃秴鏃跺凡棰嗗彇锛岃秴鏃舵湭棰嗗彇鏁版嵁
+            // 鍙婃椂宸查鍙�
+            List<List<Long>> list = new ArrayList<>();
+            List<Long> sumList = new ArrayList<>();
+            long sum = laborIssueIPage.stream()
+                    .filter(laborIssue -> laborIssue.getAdoptedDate() != null && laborIssue.getAdoptedDate().getTime() <= laborIssue.getIssueDate().getTime())
+                    .mapToLong(LaborIssue::getNum)
+                    .sum();
+            // 鍙婃椂鏈鍙�
+            long sum1 = laborIssueIPage.stream()
+                    .filter(laborIssue -> laborIssue.getAdoptedDate() == null && laborIssue.getIssueDate().getTime() <= new Date().getTime())
+                    .mapToLong(LaborIssue::getNum)
+                    .sum();
+            sumList.add(sum);
+            sumList.add(sum1);
+            list.add(sumList);
+            List<Long> sumList1 = new ArrayList<>();
+            // 瓒呮椂宸查鍙�
+            long sum2 = laborIssueIPage.stream()
+                    .filter(laborIssue -> laborIssue.getAdoptedDate() != null && laborIssue.getAdoptedDate().getTime() > laborIssue.getIssueDate().getTime())
+                    .mapToLong(LaborIssue::getNum)
+                    .sum();
+            // 瓒呮椂鏈鍙�
+            long sum3 = laborIssueIPage.stream()
+                    .filter(laborIssue -> laborIssue.getAdoptedDate() == null && laborIssue.getIssueDate().getTime() > new Date().getTime())
+                    .mapToLong(LaborIssue::getNum)
+                    .sum();
+            sumList1.add(sum2);
+            sumList1.add(sum3);
+            list.add(sumList1);
+            map.put("series", list);
+        }
+        return map;
+    }
+
     public StartAndEndDateDto getStartAndEndDateDto(Integer season,Date payDate){
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         StartAndEndDateDto startAndEndDateDto = new StartAndEndDateDto();

--
Gitblit v1.9.3