From 256acffffd45af74181fc96d7090cd42563c72ca Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期五, 19 十二月 2025 16:56:06 +0800
Subject: [PATCH] 111

---
 src/main/java/com/gs/dingtalk/task/ScheduledTasks.java |   96 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 66 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/gs/dingtalk/task/ScheduledTasks.java b/src/main/java/com/gs/dingtalk/task/ScheduledTasks.java
index 84636de..0da632c 100644
--- a/src/main/java/com/gs/dingtalk/task/ScheduledTasks.java
+++ b/src/main/java/com/gs/dingtalk/task/ScheduledTasks.java
@@ -2,54 +2,90 @@
 
 
 import com.gs.dingtalk.service.SendDingtalkService;
+import com.gs.dingtalk.service.VwCjScSjTsBbService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+
+import java.util.concurrent.atomic.AtomicBoolean;
 
 @Component
 @RequiredArgsConstructor
 @Slf4j
 public class ScheduledTasks {
 
-    private final SendDingtalkService sendDingtalkService;
+//    private final SendDingtalkService sendDingtalkService;
+
+    private final VwCjScSjTsBbService vwCjScSjTsBbService;
+
+    private final AtomicBoolean exportTaskRunning = new AtomicBoolean(false);
+
+//    /**
+//     * 姣忎袱鍒嗛挓鎵ц涓�娆�
+//     * 鑾峰彇璁惧鏈�杩戠殑涓�鏉¤褰�
+//     *
+//     * @return void
+//     * @author tjx
+//     * @description TODO
+//     * @date 2024/9/27 21:48
+//     */
+//    @Scheduled(cron = "0 0/2 * * * ?")
+//    public void getDeviceRealTimeData() {
+//        try {
+//            sendDingtalkService.sendDingTalkFiveMinute();
+//            log.info("瀹氭椂浠诲姟 getDeviceRealTimeData 鎵ц鎴愬姛");
+//        } catch (Exception e) {
+//            log.error("瀹氭椂浠诲姟 getDeviceRealTimeData 鎵ц澶辫触: ", e);
+//        }
+//    }
+//
+//    @Scheduled(cron = "0 0/3 * * * ?")
+//    public void sendDingTalkFifteenMinute() {
+//        try {
+//            sendDingtalkService.sendDingTalkFifteenMinute();
+//            log.info("瀹氭椂浠诲姟 sendDingTalkFifteenMinute 鎵ц鎴愬姛");
+//        } catch (Exception e) {
+//            log.error("瀹氭椂浠诲姟 sendDingTalkFifteenMinute 鎵ц澶辫触: ", e);
+//        }
+//    }
+//
+//    @Scheduled(cron = "0 0/4 * * * ?")
+//    public void sendDingTalkThirtyMinute() {
+//        try {
+//            sendDingtalkService.sendDingTalkthirtyMinute();
+//            log.info("瀹氭椂浠诲姟 sendDingTalkThirtyMinute 鎵ц鎴愬姛");
+//        } catch (Exception e) {
+//            log.error("瀹氭椂浠诲姟 sendDingTalkThirtyMinute 鎵ц澶辫触: ", e);
+//        }
+//    }
 
     /**
-     * 姣忎袱鍒嗛挓鎵ц涓�娆�
-     * 鑾峰彇璁惧鏈�杩戠殑涓�鏉¤褰�
-     *
-     * @return void
-     * @author tjx
-     * @description TODO
-     * @date 2024/9/27 21:48
+     * 姣忓ぉ涓婂崍9鐐规墽琛�
+     * 瀵煎嚭鐢熶骇鏁版嵁骞跺彂閫侀拤閽夋秷鎭�
      */
-    @Scheduled(cron = "0 0/2 * * * ?")
-    public void getDeviceRealTimeData() {
-        try {
-            sendDingtalkService.sendDingTalkFiveMinute();
-            log.info("瀹氭椂浠诲姟 getDeviceRealTimeData 鎵ц鎴愬姛");
-        } catch (Exception e) {
-            log.error("瀹氭椂浠诲姟 getDeviceRealTimeData 鎵ц澶辫触: ", e);
+    @Async("taskExecutor")
+    @Scheduled(cron = "0 0 12,16 * * ?")
+    public void exportAndSendProductionDataTask() {
+        if (!exportTaskRunning.compareAndSet(false, true)) {
+            log.warn("鐢熶骇鏁版嵁瀵煎嚭浠诲姟姝e湪鎵ц涓紝璺宠繃鏈鎵ц");
+            return;
         }
-    }
 
-    @Scheduled(cron = "0 0/3 * * * ?")
-    public void sendDingTalkFifteenMinute() {
         try {
-            sendDingtalkService.sendDingTalkFifteenMinute();
-            log.info("瀹氭椂浠诲姟 sendDingTalkFifteenMinute 鎵ц鎴愬姛");
-        } catch (Exception e) {
-            log.error("瀹氭椂浠诲姟 sendDingTalkFifteenMinute 鎵ц澶辫触: ", e);
-        }
-    }
+            log.info("寮�濮嬫墽琛岀敓浜ф暟鎹鍑哄苟鍙戦�侀拤閽変换鍔�");
+            boolean result = vwCjScSjTsBbService.exportAndSendToDingtalk();
 
-    @Scheduled(cron = "0 0/4 * * * ?")
-    public void sendDingTalkThirtyMinute() {
-        try {
-            sendDingtalkService.sendDingTalkthirtyMinute();
-            log.info("瀹氭椂浠诲姟 sendDingTalkThirtyMinute 鎵ц鎴愬姛");
+            if (result) {
+                log.info("鐢熶骇鏁版嵁瀵煎嚭骞跺彂閫侀拤閽変换鍔℃墽琛屾垚鍔�");
+            } else {
+                log.error("鐢熶骇鏁版嵁瀵煎嚭骞跺彂閫侀拤閽変换鍔℃墽琛屽け璐�");
+            }
         } catch (Exception e) {
-            log.error("瀹氭椂浠诲姟 sendDingTalkThirtyMinute 鎵ц澶辫触: ", e);
+            log.error("鐢熶骇鏁版嵁瀵煎嚭骞跺彂閫侀拤閽変换鍔℃墽琛屽紓甯�", e);
+        } finally {
+            exportTaskRunning.set(false);
         }
     }
 }

--
Gitblit v1.9.3