From 181e6ff0a115f56ae05f54806ecc309d43120b41 Mon Sep 17 00:00:00 2001
From: Administrator <2856754968@qq.com>
Date: 星期二, 18 十一月 2025 16:52:38 +0800
Subject: [PATCH] 111

---
 src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java |   91 +++++++++++++++++++++++++--------------------
 1 files changed, 50 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java b/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java
index 5a8befe..e8654a0 100644
--- a/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java
+++ b/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java
@@ -5,8 +5,10 @@
 import cn.hutool.poi.excel.ExcelWriter;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gs.xky.entity.VwCjScSjTsBb;
+import com.gs.xky.entity.VwCjScSjTsBbMonth;
 import com.gs.xky.mapper.VwCjScSjTsBbMapper;
 import com.gs.xky.service.DingtalkInfoService;
+import com.gs.xky.service.VwCjScSjTsBbMonthService;
 import com.gs.xky.service.VwCjScSjTsBbService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -17,7 +19,6 @@
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * @author Administrator
@@ -31,21 +32,12 @@
         implements VwCjScSjTsBbService {
 
     private final DingtalkInfoService dingtalkInfoService;
+    private final VwCjScSjTsBbMonthService vwCjScSjTsBbMonthService;
 
     @Override
     public boolean exportAndSendToDingtalk() throws Exception {
         String exportFilePath = null;
         try {
-            // 1. 鏌ヨ鎵�鏈夋暟鎹�
-            log.info("寮�濮嬫煡璇㈢敓浜ф暟鎹�...");
-            List<VwCjScSjTsBb> dataList = list();
-
-            if (dataList == null || dataList.isEmpty()) {
-                log.warn("娌℃湁鏁版嵁闇�瑕佸鍑�");
-                return false;
-            }
-
-            log.info("鏌ヨ鍒� {} 鏉℃暟鎹�", dataList.size());
 
             // 2. 鍑嗗瀵煎嚭鏂囦欢璺緞
             String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
@@ -57,7 +49,7 @@
 
             // 3. 瀵煎嚭鍒癊xcel
             log.info("寮�濮嬪鍑篍xcel鏂囦欢: {}", exportFilePath);
-            exportToExcel(dataList, exportFilePath);
+            exportToExcel(exportFilePath);
             log.info("Excel鏂囦欢瀵煎嚭鎴愬姛");
 
             // 4. 鍙戦�侀拤閽夋秷鎭�
@@ -87,10 +79,9 @@
     /**
      * 瀵煎嚭鏁版嵁鍒癊xcel锛堜袱涓猻heet椤碉級
      *
-     * @param dataList 鏁版嵁鍒楄〃
      * @param filePath 鏂囦欢璺緞
      */
-    private void exportToExcel(List<VwCjScSjTsBb> dataList, String filePath) {
+    private void exportToExcel(String filePath) {
         // 璁$畻鏄ㄥぉ鐨勬棩鏈�
         LocalDate yesterday = LocalDate.now().minusDays(1);
         String yesterdayStr = yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
@@ -106,35 +97,25 @@
         log.info("鏈湀鑼冨洿: {} 鑷� {}", firstDayStr, lastDayStr);
 
         // 杩囨护鏁版嵁锛氶璁″紑宸ュ湪鏄ㄥぉ鐨勬暟鎹�
-        List<VwCjScSjTsBb> yesterdayData = dataList.stream()
-                .filter(item -> item.getYjkg() != null && item.getYjkg().startsWith(yesterdayStr))
-                .collect(Collectors.toList());
+        List<VwCjScSjTsBb> yesterdayData = list();
 
         // 杩囨护鏁版嵁锛氶璁″紑宸ュ湪鏈湀鐨勬暟鎹�
-        List<VwCjScSjTsBb> thisMonthData = dataList.stream()
-                .filter(item -> {
-                    if (item.getYjkg() == null || item.getYjkg().trim().isEmpty()) {
-                        return false;
-                    }
-                    String yjkg = item.getYjkg().substring(0, Math.min(10, item.getYjkg().length()));
-                    return yjkg.compareTo(firstDayStr) >= 0 && yjkg.compareTo(lastDayStr) <= 0;
-                })
-                .collect(Collectors.toList());
+        List<VwCjScSjTsBbMonth> thisMonthData = vwCjScSjTsBbMonthService.list();
 
         log.info("鏄ㄥぉ鏁版嵁: {} 鏉�", yesterdayData.size());
         log.info("鏈湀鏁版嵁: {} 鏉�", thisMonthData.size());
 
         // 鍒涘缓Excel鍐欏叆鍣紙绗竴涓猻heet锛�
-        ExcelWriter writer = ExcelUtil.getWriter(filePath, "鏄ㄥぉ棰勮寮�宸�");
+        ExcelWriter writer = ExcelUtil.getWriter(filePath, "鏄ㄥぉ鍏ュ簱宸ュ崟鐢宠");
 
         // 鍐欏叆绗竴涓猻heet锛氭槰澶╅璁″紑宸ョ殑鏁版嵁
-        writeSheetData(writer, yesterdayData, "鏄ㄥぉ棰勮寮�宸ユ暟鎹紙" + yesterdayStr + "锛�");
+        writeSheetData(writer, "鏄ㄥぉ鍏ュ簱宸ュ崟鐢宠鏁版嵁锛�" + yesterdayStr + "锛�", yesterdayData);
 
         // 鍒涘缓绗簩涓猻heet
-        writer.setSheet("鏈湀棰勮寮�宸�");
+        writer.setSheet("鏈湀鍏ュ簱宸ュ崟鐢宠");
 
         // 鍐欏叆绗簩涓猻heet锛氭湰鏈堥璁″紑宸ョ殑鏁版嵁
-        writeSheetData(writer, thisMonthData, "鏈湀棰勮寮�宸ユ暟鎹紙" + firstDayStr + " 鑷� " + lastDayStr + "锛�");
+        writeSheetData(writer, thisMonthData, "鏈湀鍏ュ簱宸ュ崟鐢宠鏁版嵁锛�" + firstDayStr + " 鑷� " + lastDayStr + "锛�");
 
         // 鍏抽棴writer锛岄噴鏀惧唴瀛�
         writer.close();
@@ -147,26 +128,54 @@
      * @param dataList 鏁版嵁鍒楄〃
      * @param title    鏍囬
      */
-    private void writeSheetData(ExcelWriter writer, List<VwCjScSjTsBb> dataList, String title) {
+    private void writeSheetData(ExcelWriter writer, String title, List<VwCjScSjTsBb> dataList) {
         // 娓呯┖涔嬪墠鐨勫埆鍚嶈缃�
         writer.clearHeaderAlias();
 
         // 璁剧疆琛ㄥご鍒悕锛堜腑鏂囧垪鍚嶏級
-        writer.addHeaderAlias("daa001", "宸ュ崟鍙�");
-        writer.addHeaderAlias("itemNo", "鐗╂枡缂栫爜");
-        writer.addHeaderAlias("itemName", "鐗╂枡鍚嶇О");
-        writer.addHeaderAlias("departmentname", "杞﹂棿鍚嶇О");
+        writer.addHeaderAlias("departmentname", "杞﹂棿");
         writer.addHeaderAlias("lineName", "绾夸綋鍚嶇О");
-        writer.addHeaderAlias("departmentcode", "杞﹂棿缂栫爜");
-        writer.addHeaderAlias("lineNo", "绾夸綋缂栫爜");
-        writer.addHeaderAlias("daa008", "宸ュ崟鏁伴噺");
-        writer.addHeaderAlias("yjkg", "棰勮寮�宸�");
-        writer.addHeaderAlias("sjkg", "瀹為檯寮�宸�");
-        writer.addHeaderAlias("sq", "鐢宠鍏ュ簱鏁�");
+        writer.addHeaderAlias("itemNo", "浜у搧缂栫爜");
+        writer.addHeaderAlias("itemName", "浜у搧鍚嶇О");
+        writer.addHeaderAlias("daa001", "宸ュ崟鍙�");
+        writer.addHeaderAlias("daa008", "宸ュ崟鏁�");
+        writer.addHeaderAlias("sq", "鐢宠鏁�");
         writer.addHeaderAlias("rk", "鍏ュ簱鏁�");
         writer.addHeaderAlias("sqwwg", "鐢宠鏈畬宸ユ暟");
         writer.addHeaderAlias("rkwwg", "鍏ュ簱鏈畬宸�");
         writer.addHeaderAlias("sqwrk", "鐢宠鏈叆搴�");
+        writer.addHeaderAlias("yjkg", "棰勮寮�宸�");
+        writer.addHeaderAlias("sjkg", "瀹為檯寮�宸�");
+
+        // 鍚堝苟鍗曞厓鏍间綔涓烘爣棰樿
+        writer.merge(14, title);
+
+        // 鍐欏叆鏁版嵁锛岄粯璁や細浣跨敤鍒悕浣滀负琛ㄥご
+        writer.write(dataList, true);
+
+        // 璁剧疆鍒楀鑷�傚簲
+        writer.autoSizeColumnAll();
+    }
+
+
+    private void writeSheetData(ExcelWriter writer, List<VwCjScSjTsBbMonth> dataList, String title) {
+        // 娓呯┖涔嬪墠鐨勫埆鍚嶈缃�
+        writer.clearHeaderAlias();
+
+        // 璁剧疆琛ㄥご鍒悕锛堜腑鏂囧垪鍚嶏級
+        writer.addHeaderAlias("departmentname", "杞﹂棿");
+        writer.addHeaderAlias("lineName", "绾夸綋鍚嶇О");
+        writer.addHeaderAlias("itemNo", "浜у搧缂栫爜");
+        writer.addHeaderAlias("itemName", "浜у搧鍚嶇О");
+        writer.addHeaderAlias("daa001", "宸ュ崟鍙�");
+        writer.addHeaderAlias("daa008", "宸ュ崟鏁�");
+        writer.addHeaderAlias("sq", "鐢宠鏁�");
+        writer.addHeaderAlias("rk", "鍏ュ簱鏁�");
+        writer.addHeaderAlias("sqwwg", "鐢宠鏈畬宸ユ暟");
+        writer.addHeaderAlias("rkwwg", "鍏ュ簱鏈畬宸�");
+        writer.addHeaderAlias("sqwrk", "鐢宠鏈叆搴�");
+        writer.addHeaderAlias("yjkg", "棰勮寮�宸�");
+        writer.addHeaderAlias("sjkg", "瀹為檯寮�宸�");
 
         // 鍚堝苟鍗曞厓鏍间綔涓烘爣棰樿
         writer.merge(14, title);

--
Gitblit v1.9.3