From 21b96d6a4e042df7e45dce85b3f501c142a38247 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期三, 12 十一月 2025 20:07:16 +0800
Subject: [PATCH] 更新钉钉配置

---
 src/main/java/com/gs/xky/entity/VwCjScSjTsBbMonth.java                  |  142 +++++++++-----------
 src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbMonthServiceImpl.java |   14 +-
 src/main/java/com/gs/xky/service/VwCjScSjTsBbService.java               |   18 +
 src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java      |  199 ++++++++++++++++++++++++++-
 src/main/java/com/gs/xky/service/VwCjScSjTsBbMonthService.java          |   12 
 src/main/resources/mapper/VwCjScSjTsBbMapper.xml                        |    2 
 6 files changed, 277 insertions(+), 110 deletions(-)

diff --git a/src/main/java/com/gs/xky/entity/VwCjScSjTsBbMonth.java b/src/main/java/com/gs/xky/entity/VwCjScSjTsBbMonth.java
index dcdc1e1..5ffcdfe 100644
--- a/src/main/java/com/gs/xky/entity/VwCjScSjTsBbMonth.java
+++ b/src/main/java/com/gs/xky/entity/VwCjScSjTsBbMonth.java
@@ -2,91 +2,77 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
 import lombok.Data;
 
+import java.io.Serializable;
+
 /**
- * 
+ *
  * @TableName VW_CJ_SC_SJ_TS_BB_MONTH
  */
-@TableName(value ="VW_CJ_SC_SJ_TS_BB_MONTH")
+@TableName(value = "VW_CJ_SC_SJ_TS_BB_MONTH")
 @Data
 public class VwCjScSjTsBbMonth implements Serializable {
-    /**
-     * 
-     */
-    private Object itemName;
-
-    /**
-     * 
-     */
-    private Object itemNo;
-
-    /**
-     * 
-     */
-    private Object departmentname;
-
-    /**
-     * 
-     */
-    private Object departmentcode;
-
-    /**
-     * 
-     */
-    private Object daa001;
-
-    /**
-     * 
-     */
-    private Object lineName;
-
-    /**
-     * 
-     */
-    private Object lineNo;
-
-    /**
-     * 
-     */
-    private Object daa008;
-
-    /**
-     * 
-     */
-    private Object yjkg;
-
-    /**
-     * 
-     */
-    private Object sjkg;
-
-    /**
-     * 
-     */
-    private Object sq;
-
-    /**
-     * 
-     */
-    private Object rk;
-
-    /**
-     * 
-     */
-    private Object sqwwg;
-
-    /**
-     * 
-     */
-    private Object rkwwg;
-
-    /**
-     * 
-     */
-    private Object sqwrk;
-
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
+    /**
+     *
+     */
+    private String itemName;
+    /**
+     *
+     */
+    private String itemNo;
+    /**
+     *
+     */
+    private String departmentname;
+    /**
+     *
+     */
+    private String departmentcode;
+    /**
+     *
+     */
+    private String daa001;
+    /**
+     *
+     */
+    private String lineName;
+    /**
+     *
+     */
+    private String lineNo;
+    /**
+     *
+     */
+    private String daa008;
+    /**
+     *
+     */
+    private String yjkg;
+    /**
+     *
+     */
+    private String sjkg;
+    /**
+     *
+     */
+    private String sq;
+    /**
+     *
+     */
+    private String rk;
+    /**
+     *
+     */
+    private String sqwwg;
+    /**
+     *
+     */
+    private String rkwwg;
+    /**
+     *
+     */
+    private String sqwrk;
 }
\ No newline at end of file
diff --git a/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbMonthServiceImpl.java b/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbMonthServiceImpl.java
index f8f4d5a..711cfd3 100644
--- a/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbMonthServiceImpl.java
+++ b/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbMonthServiceImpl.java
@@ -1,19 +1,19 @@
-package generator.service.impl;
+package com.gs.xky.service.Impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gs.xky.entity.VwCjScSjTsBbMonth;
-import generator.service.VwCjScSjTsBbMonthService;
 import com.gs.xky.mapper.VwCjScSjTsBbMonthMapper;
+import com.gs.xky.service.VwCjScSjTsBbMonthService;
 import org.springframework.stereotype.Service;
 
 /**
-* @author Administrator
-* @description 閽堝琛ㄣ�怴W_CJ_SC_SJ_TS_BB_MONTH銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
-* @createDate 2025-11-12 19:45:00
-*/
+ * @author Administrator
+ * @description 閽堝琛ㄣ�怴W_CJ_SC_SJ_TS_BB_MONTH銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2025-11-12 19:45:00
+ */
 @Service
 public class VwCjScSjTsBbMonthServiceImpl extends ServiceImpl<VwCjScSjTsBbMonthMapper, VwCjScSjTsBbMonth>
-    implements VwCjScSjTsBbMonthService{
+        implements VwCjScSjTsBbMonthService {
 
 }
 
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 54e862f..a0e39fd 100644
--- a/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java
+++ b/src/main/java/com/gs/xky/service/Impl/VwCjScSjTsBbServiceImpl.java
@@ -1,20 +1,195 @@
-package generator.service.impl;
+package com.gs.xky.service.Impl;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.poi.excel.ExcelUtil;
+import cn.hutool.poi.excel.ExcelWriter;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import generator.domain.VwCjScSjTsBb;
-import generator.service.VwCjScSjTsBbService;
-import generator.mapper.VwCjScSjTsBbMapper;
+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;
 
-/**
-* @author Administrator
-* @description 閽堝琛ㄣ�怴W_CJ_SC_SJ_TS_BB銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
-* @createDate 2025-11-12 19:44:46
-*/
-@Service
-public class VwCjScSjTsBbServiceImpl extends ServiceImpl<VwCjScSjTsBbMapper, VwCjScSjTsBb>
-    implements VwCjScSjTsBbService{
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.List;
 
+/**
+ * @author Administrator
+ * @description 閽堝琛ㄣ�怴W_CJ_SC_SJ_TS_BB銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2025-11-12 16:42:06
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class VwCjScSjTsBbServiceImpl extends ServiceImpl<VwCjScSjTsBbMapper, VwCjScSjTsBb>
+        implements VwCjScSjTsBbService {
+
+    private final DingtalkInfoService dingtalkInfoService;
+    private final VwCjScSjTsBbMonthService vwCjScSjTsBbMonthService;
+
+    @Override
+    public boolean exportAndSendToDingtalk() throws Exception {
+        String exportFilePath = null;
+        try {
+
+            // 2. 鍑嗗瀵煎嚭鏂囦欢璺緞
+            String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
+            String fileName = "鐢熶骇鏁版嵁鎶ヨ〃_" + timestamp + ".xlsx";
+            exportFilePath = "D:\\BIFile\\" + fileName;
+
+            // 纭繚鐩綍瀛樺湪
+            FileUtil.mkdir("D:\\BIFile");
+
+            // 3. 瀵煎嚭鍒癊xcel
+            log.info("寮�濮嬪鍑篍xcel鏂囦欢: {}", exportFilePath);
+            exportToExcel(exportFilePath);
+            log.info("Excel鏂囦欢瀵煎嚭鎴愬姛");
+
+            // 4. 鍙戦�侀拤閽夋秷鎭�
+            log.info("寮�濮嬪彂閫侀拤閽夋枃浠舵秷鎭�...");
+            boolean sendResult = dingtalkInfoService.sendFileMessage(exportFilePath);
+
+            if (sendResult) {
+                log.info("閽夐拤鏂囦欢娑堟伅鍙戦�佹垚鍔�");
+            } else {
+                log.warn("閽夐拤鏂囦欢娑堟伅鍙戦�佸け璐�");
+            }
+
+            return sendResult;
+
+        } catch (Exception e) {
+            log.error("瀵煎嚭骞跺彂閫佸け璐�", e);
+            throw e;
+        } finally {
+            // 鍙�夛細鍙戦�佸悗鍒犻櫎涓存椂鏂囦欢
+            // if (exportFilePath != null && FileUtil.exist(exportFilePath)) {
+            //     FileUtil.del(exportFilePath);
+            //     log.info("涓存椂鏂囦欢宸插垹闄�: {}", exportFilePath);
+            // }
+        }
+    }
+
+    /**
+     * 瀵煎嚭鏁版嵁鍒癊xcel锛堜袱涓猻heet椤碉級
+     *
+     * @param 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("daa001", "宸ュ崟鍙�");
+        writer.addHeaderAlias("itemNo", "鐗╂枡缂栫爜");
+        writer.addHeaderAlias("itemName", "鐗╂枡鍚嶇О");
+        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("rk", "鍏ュ簱鏁�");
+        writer.addHeaderAlias("sqwwg", "鐢宠鏈畬宸ユ暟");
+        writer.addHeaderAlias("rkwwg", "鍏ュ簱鏈畬宸�");
+        writer.addHeaderAlias("sqwrk", "鐢宠鏈叆搴�");
+
+        // 鍚堝苟鍗曞厓鏍间綔涓烘爣棰樿
+        writer.merge(14, title);
+
+        // 鍐欏叆鏁版嵁锛岄粯璁や細浣跨敤鍒悕浣滀负琛ㄥご
+        writer.write(dataList, true);
+
+        // 璁剧疆鍒楀鑷�傚簲
+        writer.autoSizeColumnAll();
+    }
+
+
+    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("departmentcode", "杞﹂棿缂栫爜");
+        writer.addHeaderAlias("lineNo", "绾夸綋缂栫爜");
+        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();
+    }
 }
 
 
diff --git a/src/main/java/com/gs/xky/service/VwCjScSjTsBbMonthService.java b/src/main/java/com/gs/xky/service/VwCjScSjTsBbMonthService.java
index 769ce0b..6d78306 100644
--- a/src/main/java/com/gs/xky/service/VwCjScSjTsBbMonthService.java
+++ b/src/main/java/com/gs/xky/service/VwCjScSjTsBbMonthService.java
@@ -1,13 +1,13 @@
-package generator.service;
+package com.gs.xky.service;
 
-import com.gs.xky.entity.VwCjScSjTsBbMonth;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.gs.xky.entity.VwCjScSjTsBbMonth;
 
 /**
-* @author Administrator
-* @description 閽堝琛ㄣ�怴W_CJ_SC_SJ_TS_BB_MONTH銆戠殑鏁版嵁搴撴搷浣淪ervice
-* @createDate 2025-11-12 19:45:00
-*/
+ * @author Administrator
+ * @description 閽堝琛ㄣ�怴W_CJ_SC_SJ_TS_BB_MONTH銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2025-11-12 19:45:00
+ */
 public interface VwCjScSjTsBbMonthService extends IService<VwCjScSjTsBbMonth> {
 
 }
diff --git a/src/main/java/com/gs/xky/service/VwCjScSjTsBbService.java b/src/main/java/com/gs/xky/service/VwCjScSjTsBbService.java
index a588e10..a468ba5 100644
--- a/src/main/java/com/gs/xky/service/VwCjScSjTsBbService.java
+++ b/src/main/java/com/gs/xky/service/VwCjScSjTsBbService.java
@@ -1,13 +1,19 @@
-package generator.service;
+package com.gs.xky.service;
 
-import generator.domain.VwCjScSjTsBb;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.gs.xky.entity.VwCjScSjTsBb;
 
 /**
-* @author Administrator
-* @description 閽堝琛ㄣ�怴W_CJ_SC_SJ_TS_BB銆戠殑鏁版嵁搴撴搷浣淪ervice
-* @createDate 2025-11-12 19:44:46
-*/
+ * @author Administrator
+ * @description 閽堝琛ㄣ�怴W_CJ_SC_SJ_TS_BB銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2025-11-12 19:44:46
+ */
 public interface VwCjScSjTsBbService extends IService<VwCjScSjTsBb> {
 
+    /**
+     * 瀵煎嚭鏁版嵁鍒癊xcel骞跺彂閫侀拤閽夋秷鎭�
+     *
+     * @return 鏄惁鎴愬姛
+     */
+    boolean exportAndSendToDingtalk() throws Exception;
 }
diff --git a/src/main/resources/mapper/VwCjScSjTsBbMapper.xml b/src/main/resources/mapper/VwCjScSjTsBbMapper.xml
index b16b985..7e72c1e 100644
--- a/src/main/resources/mapper/VwCjScSjTsBbMapper.xml
+++ b/src/main/resources/mapper/VwCjScSjTsBbMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="generator.mapper.VwCjScSjTsBbMapper">
+<mapper namespace="com.gs.xky.mapper.VwCjScSjTsBbMapper">
 
 
 </mapper>

--
Gitblit v1.9.3