From 487bbcd45afcc288c27784962d3b40d5015bcd12 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 15 八月 2025 15:33:07 +0800
Subject: [PATCH] yys  修改导入导出

---
 src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java |   88 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 85 insertions(+), 3 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 b6a5e27..b85975f 100644
--- a/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java
+++ b/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java
@@ -5,19 +5,22 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.approve.utils.StartAndEndDateDto;
+import com.ruoyi.common.utils.excel.ExcelUtils;
 import com.ruoyi.lavorissue.dto.StatisticsLaborIssue;
 import com.ruoyi.lavorissue.mapper.LavorIssueMapper;
 import com.ruoyi.lavorissue.pojo.LaborIssue;
 import com.ruoyi.lavorissue.service.LavorIssueService;
+import com.ruoyi.project.system.domain.SysDictData;
+import com.ruoyi.project.system.domain.SysDictType;
+import com.ruoyi.project.system.mapper.SysDictDataMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -112,6 +115,85 @@
         return statisticsLaborIssue;
     }
 
+    @Autowired
+    private SysDictDataMapper sysDictDataMapper;
+
+    @Override
+    public void exportCopy(HttpServletResponse response) {
+        List<SysDictData> sys_lavor_issue = sysDictDataMapper.selectDictDataByType("sys_lavor_issue");
+        if(CollectionUtils.isEmpty(sys_lavor_issue)){
+            throw new RuntimeException("瀛楀吀鏁版嵁涓虹┖");
+        }
+        List<Object> head = new ArrayList<>();
+        head.add("閮ㄩ棬");
+        head.add(ExcelUtils.COLUMN_MERGE);
+        head.add("浼佷笟绠$悊绉�");
+        head.add(ExcelUtils.COLUMN_MERGE);
+        head.add("");
+        for (int i = 0; i < sys_lavor_issue.size(); i++) {
+            head.add(ExcelUtils.COLUMN_MERGE);
+        }
+
+        List<Object> head1 = new ArrayList<>();
+        head1.add("寮�濮嬪勾/鏈�");
+        head1.add(ExcelUtils.COLUMN_MERGE);
+        head1.add("缁撴潫骞�/鏈�");
+        head1.add(ExcelUtils.COLUMN_MERGE);
+        head1.add("");
+        for (int i = 0; i < sys_lavor_issue.size(); i++) {
+            head1.add(ExcelUtils.COLUMN_MERGE);
+        }
+
+        List<Object> head2 = new ArrayList<>();
+        head2.add("2025");
+        head2.add("1");
+        head2.add("2025");
+        head2.add("3");
+        head2.add("浼佷笟绠$悊绉�2025骞�1鏈�-2025骞�3鏈堝姵淇濆彂鏀捐鍒掕〃");
+        for (int i = 0; i < sys_lavor_issue.size(); i++) {
+            head2.add(ExcelUtils.COLUMN_MERGE);
+        }
+
+        List<Object> head3 = new ArrayList<>();
+        head3.add("閮ㄩ棬鍚嶇О");
+        head3.add(ExcelUtils.COLUMN_MERGE);
+        head3.add("濮撳悕");
+        head3.add("宸ュ彿");
+        for (SysDictData sysDictData : sys_lavor_issue) {
+            head3.add(sysDictData.getDictLabel());
+        }
+        head3.add("绛惧悕");
+
+        // 濉厖鏁版嵁
+        List<Object> head4 = new ArrayList<>();
+        List<LaborIssue> laborIssues = lavorIssueMapper.selectList(null);
+        if(CollectionUtils.isEmpty(laborIssues)){
+            throw new RuntimeException("鏁版嵁涓虹┖");
+        }
+
+        Map<String, List<LaborIssue>> collect = laborIssues.stream().collect(Collectors.groupingBy(LaborIssue::getStaffNo));
+        collect.forEach((k,v)->{
+            head4.add(v.get(0).getDeptName());
+            head4.add(ExcelUtils.COLUMN_MERGE);
+            head4.add(v.get(0).getStaffName());
+            head4.add(v.get(0).getStaffNo());
+            // 鍒ゆ柇瀛楀吀鏁版嵁
+            for (SysDictData sysDictData : sys_lavor_issue) {
+                long sum = v.stream().filter(laborIssue -> laborIssue.getDictId().equals(sysDictData.getDictValue())).mapToLong(LaborIssue::getNum).sum();
+                head4.add(sum);
+            }
+
+        });
+
+        List<List<Object>> sheetDataList = new ArrayList<>();
+        sheetDataList.add(head);
+        sheetDataList.add(head1);
+        sheetDataList.add(head2);
+        sheetDataList.add(head3);
+        sheetDataList.add(head4);
+        ExcelUtils.export(response, "鍔充繚鍙戞斁璁″垝琛�", sheetDataList);
+    }
+
     public Date getLastDayOfMonth(Date date) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date); // 璁剧疆浼犲叆鐨凞ate

--
Gitblit v1.9.3