From 30613a5c9e36e4c60f1f77793739ac954dfbe522 Mon Sep 17 00:00:00 2001
From: Administrator <2856754968@qq.com>
Date: 星期二, 18 十一月 2025 09:02:03 +0800
Subject: [PATCH] 111
---
src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java | 116 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 91 insertions(+), 25 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 fe5f79b..17ab47e 100644
--- a/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java
+++ b/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java
@@ -5,14 +5,18 @@
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;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
@@ -28,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());
@@ -54,7 +49,7 @@
// 3. 瀵煎嚭鍒癊xcel
log.info("寮�濮嬪鍑篍xcel鏂囦欢: {}", exportFilePath);
- exportToExcel(dataList, exportFilePath);
+ exportToExcel(exportFilePath);
log.info("Excel鏂囦欢瀵煎嚭鎴愬姛");
// 4. 鍙戦�侀拤閽夋秷鎭�
@@ -82,23 +77,67 @@
}
/**
- * 瀵煎嚭鏁版嵁鍒癊xcel
+ * 瀵煎嚭鏁版嵁鍒癊xcel锛堜袱涓猻heet椤碉級
*
- * @param dataList 鏁版嵁鍒楄〃
* @param filePath 鏂囦欢璺緞
*/
- private void exportToExcel(List<VwCjScSjTsBb> dataList, String filePath) {
- // 鍒涘缓Excel鍐欏叆鍣�
- ExcelWriter writer = ExcelUtil.getWriter(filePath);
+ private void exportToExcel(String filePath) {
+ // 璁$畻鏄ㄥぉ鐨勬棩鏈�
+ LocalDate yesterday = LocalDate.now().minusDays(1);
+ String yesterdayStr = yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+
+ // 璁$畻鏈湀鐨勮捣姝㈡棩鏈�
+ LocalDate today = LocalDate.now();
+ LocalDate firstDayOfMonth = today.withDayOfMonth(1);
+ LocalDate lastDayOfMonth = today.withDayOfMonth(today.lengthOfMonth());
+ String firstDayStr = firstDayOfMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ String lastDayStr = lastDayOfMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+
+ log.info("鏄ㄥぉ鏃ユ湡: {}", yesterdayStr);
+ log.info("鏈湀鑼冨洿: {} 鑷� {}", firstDayStr, lastDayStr);
+
+ // 杩囨护鏁版嵁锛氶璁″紑宸ュ湪鏄ㄥぉ鐨勬暟鎹�
+ List<VwCjScSjTsBb> yesterdayData = list();
+
+ // 杩囨护鏁版嵁锛氶璁″紑宸ュ湪鏈湀鐨勬暟鎹�
+ List<VwCjScSjTsBbMonth> thisMonthData = vwCjScSjTsBbMonthService.list();
+
+ log.info("鏄ㄥぉ鏁版嵁: {} 鏉�", yesterdayData.size());
+ log.info("鏈湀鏁版嵁: {} 鏉�", thisMonthData.size());
+
+ // 鍒涘缓Excel鍐欏叆鍣紙绗竴涓猻heet锛�
+ ExcelWriter writer = ExcelUtil.getWriter(filePath, "鏄ㄥぉ鍏ュ簱宸ュ崟鐢宠");
+
+ // 鍐欏叆绗竴涓猻heet锛氭槰澶╅璁″紑宸ョ殑鏁版嵁
+ writeSheetData(writer, "鏄ㄥぉ鍏ュ簱宸ュ崟鐢宠鏁版嵁锛�" + yesterdayStr + "锛�", yesterdayData);
+
+ // 鍒涘缓绗簩涓猻heet
+ writer.setSheet("鏈湀鍏ュ簱宸ュ崟鐢宠");
+
+ // 鍐欏叆绗簩涓猻heet锛氭湰鏈堥璁″紑宸ョ殑鏁版嵁
+ writeSheetData(writer, thisMonthData, "鏈湀鍏ュ簱宸ュ崟鐢宠鏁版嵁锛�" + firstDayStr + " 鑷� " + lastDayStr + "锛�");
+
+ // 鍏抽棴writer锛岄噴鏀惧唴瀛�
+ writer.close();
+ }
+
+ /**
+ * 鍐欏叆鍗曚釜sheet鐨勬暟鎹�
+ *
+ * @param writer Excel鍐欏叆鍣�
+ * @param dataList 鏁版嵁鍒楄〃
+ * @param title 鏍囬
+ */
+ private void writeSheetData(ExcelWriter writer, String title, List<VwCjScSjTsBb> dataList) {
+ // 娓呯┖涔嬪墠鐨勫埆鍚嶈缃�
+ writer.clearHeaderAlias();
// 璁剧疆琛ㄥご鍒悕锛堜腑鏂囧垪鍚嶏級
- writer.addHeaderAlias("itemName", "鐗╂枡鍚嶇О");
- writer.addHeaderAlias("itemNo", "鐗╂枡缂栫爜");
- writer.addHeaderAlias("departmentname", "杞﹂棿鍚嶇О");
- writer.addHeaderAlias("departmentcode", "杞﹂棿缂栫爜");
writer.addHeaderAlias("daa001", "宸ュ崟鍙�");
+ writer.addHeaderAlias("itemNo", "鐗╂枡缂栫爜");
+ writer.addHeaderAlias("itemName", "鐗╂枡鍚嶇О");
+ writer.addHeaderAlias("departmentname", "杞﹂棿鍚嶇О");
writer.addHeaderAlias("lineName", "绾夸綋鍚嶇О");
- writer.addHeaderAlias("lineNo", "绾夸綋缂栫爜");
writer.addHeaderAlias("daa008", "宸ュ崟鏁伴噺");
writer.addHeaderAlias("yjkg", "棰勮寮�宸�");
writer.addHeaderAlias("sjkg", "瀹為檯寮�宸�");
@@ -108,17 +147,44 @@
writer.addHeaderAlias("rkwwg", "鍏ュ簱鏈畬宸�");
writer.addHeaderAlias("sqwrk", "鐢宠鏈叆搴�");
- // 鍚堝苟鍗曞厓鏍煎悗鏍囬琛�
- writer.merge(14, "杞﹂棿鐢熶骇鏁版嵁缁熻鎶ヨ〃");
+ // 鍚堝苟鍗曞厓鏍间綔涓烘爣棰樿
+ writer.merge(14, title);
// 鍐欏叆鏁版嵁锛岄粯璁や細浣跨敤鍒悕浣滀负琛ㄥご
writer.write(dataList, true);
// 璁剧疆鍒楀鑷�傚簲
writer.autoSizeColumnAll();
+ }
- // 鍏抽棴writer锛岄噴鏀惧唴瀛�
- writer.close();
+
+ private void writeSheetData(ExcelWriter writer, List<VwCjScSjTsBbMonth> dataList, String title) {
+ // 娓呯┖涔嬪墠鐨勫埆鍚嶈缃�
+ writer.clearHeaderAlias();
+
+ // 璁剧疆琛ㄥご鍒悕锛堜腑鏂囧垪鍚嶏級
+ writer.addHeaderAlias("daa001", "宸ュ崟鍙�");
+ writer.addHeaderAlias("itemNo", "鐗╂枡缂栫爜");
+ writer.addHeaderAlias("itemName", "鐗╂枡鍚嶇О");
+ writer.addHeaderAlias("departmentname", "杞﹂棿鍚嶇О");
+ writer.addHeaderAlias("lineName", "绾夸綋鍚嶇О");
+ writer.addHeaderAlias("daa008", "宸ュ崟鏁伴噺");
+ writer.addHeaderAlias("yjkg", "棰勮寮�宸�");
+ writer.addHeaderAlias("sjkg", "瀹為檯寮�宸�");
+ writer.addHeaderAlias("sq", "鐢宠鍏ュ簱鏁�");
+ writer.addHeaderAlias("rk", "鍏ュ簱鏁�");
+ writer.addHeaderAlias("sqwwg", "鐢宠鏈畬宸ユ暟");
+ writer.addHeaderAlias("rkwwg", "鍏ュ簱鏈畬宸�");
+ writer.addHeaderAlias("sqwrk", "鐢宠鏈叆搴�");
+
+ // 鍚堝苟鍗曞厓鏍间綔涓烘爣棰樿
+ writer.merge(14, title);
+
+ // 鍐欏叆鏁版嵁锛岄粯璁や細浣跨敤鍒悕浣滀负琛ㄥご
+ writer.write(dataList, true);
+
+ // 璁剧疆鍒楀鑷�傚簲
+ writer.autoSizeColumnAll();
}
}
--
Gitblit v1.9.3