From ac891b014f5110e01fd19bc537f208ae9e7c689c Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期二, 25 十一月 2025 09:49:11 +0800
Subject: [PATCH] 新增企业微信的接口

---
 src/main/java/com/gs/xky/task/ScheduledTasks.java |  111 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 104 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/gs/xky/task/ScheduledTasks.java b/src/main/java/com/gs/xky/task/ScheduledTasks.java
index 54567d8..aa13b7a 100644
--- a/src/main/java/com/gs/xky/task/ScheduledTasks.java
+++ b/src/main/java/com/gs/xky/task/ScheduledTasks.java
@@ -20,14 +20,17 @@
 
     private final AtomicBoolean exportTaskRunning = new AtomicBoolean(false);
 
-    /**
-     * 姣忎簲鍒嗛挓鎵ц涓�娆�
-     * 鑾峰彇璁惧鏈�杩戠殑涓�鏉¤褰�
-     */
-    @Scheduled(cron = "0 0/5 * * * ?")
-    public void getDeviceRealTimeData() {
+//    private final XkyService xkyService;
+//    private final ApiService apiService;
+//    private final MesStaffService staffService;
+//    private final DeliveryNoticeService deliveryNoticeService;
+//    private final MesInvItemArnService invItemArnService;
+//    private final Executor taskExecutor; // 娉ㄥ叆閫氱敤绾跨▼姹�
 
-    }
+    // 鐢ㄤ簬鏍囪鍚勪换鍔℃槸鍚︽鍦ㄦ墽琛�
+//    private final AtomicBoolean isDeviceDataRunning = new AtomicBoolean(false);
+//    private final AtomicBoolean isCompensateRunning = new AtomicBoolean(false);
+//    private final AtomicBoolean isDingTalkRunning = new AtomicBoolean(false);
 
     /**
      * 姣忓ぉ涓婂崍9鐐规墽琛�
@@ -57,4 +60,98 @@
         }
     }
 
+//    /**
+//     * 姣忎簲鍒嗛挓鎵ц涓�娆�
+//     * 鑾峰彇鍗忓浜戞渶杩戠殑涓�鏉¤褰�
+//     */
+//    @Scheduled(cron = "0 0/5 * * * ?")
+//    public void getDeviceRealTimeData() {
+//        // 濡傛灉浠诲姟宸茬粡鍦ㄨ繍琛岋紝鍒欒烦杩囨湰娆℃墽琛�
+//        if (!isDeviceDataRunning.compareAndSet(false, true)) {
+//            log.info("銆恎etDeviceRealTimeData銆戜笂涓�娆′换鍔¤繕鍦ㄦ墽琛屼腑锛岃烦杩囨湰娆℃墽琛�");
+//            return;
+//        }
+//
+//        log.info("銆恎etDeviceRealTimeData銆戝紑濮嬭幏鍙栬澶囧疄鏃舵暟鎹�");
+//
+//        // 浣跨敤寮傛鎵ц锛岄伩鍏嶉樆濉炶皟搴︾嚎绋�
+//        CompletableFuture.runAsync(() -> {
+//            try {
+//                xkyService.GetSaveDetail();
+//                log.info("銆恎etDeviceRealTimeData銆戣幏鍙栬澶囧疄鏃舵暟鎹垚鍔�");
+//            } catch (IOException e) {
+//                log.error("銆恎etDeviceRealTimeData銆戣幏鍙栬澶囧疄鏃舵暟鎹紓甯�: {}", e.getMessage(), e);
+//            } finally {
+//                isDeviceDataRunning.set(false);
+//            }
+//        }, taskExecutor);
+//    }
+//
+//    /**
+//     * 瀹氭椂鎵ц琛ュ伩閫昏緫
+//     */
+//    @Scheduled(cron = "10 3,8,13,18,23,28,33,38,43,48,53,58 * * * ?")
+//    public void compensateMethod() {
+//        // 濡傛灉浠诲姟宸茬粡鍦ㄨ繍琛岋紝鍒欒烦杩囨湰娆℃墽琛�
+//        if (!isCompensateRunning.compareAndSet(false, true)) {
+//            log.info("銆恈ompensateMethod銆戜笂涓�娆′换鍔¤繕鍦ㄦ墽琛屼腑锛岃烦杩囨湰娆℃墽琛�");
+//            return;
+//        }
+//
+//        log.info("銆恈ompensateMethod銆戝紑濮嬫墽琛岃ˉ鍋块�昏緫");
+//
+//        // 浣跨敤寮傛鎵ц锛岄伩鍏嶉樆濉炶皟搴︾嚎绋�
+//        CompletableFuture.runAsync(() -> {
+//            try {
+//                // 琛ュ伩閫昏緫
+//                List<MesInvItemArn> itemArnMinus = invItemArnService.getItemArnMinus();
+//                deliveryNoticeService.processMesInvItemArnStatusAsync(itemArnMinus);
+//                log.info("銆恈ompensateMethod銆戣ˉ鍋块�昏緫鎵ц鎴愬姛");
+//            } catch (Exception e) {
+//                log.error("銆恈ompensateMethod銆戣ˉ鍋块�昏緫鎵ц寮傚父: {}", e.getMessage(), e);
+//            } finally {
+//                isCompensateRunning.set(false);
+//            }
+//        }, taskExecutor);
+//    }
+//
+//    /**
+//     * 瀹氭椂鑾峰彇閽夐拤鏁版嵁
+//     */
+//    @Scheduled(cron = "0 0/53 * * * ?")
+//    public void getDinTalkData() {
+//        // 濡傛灉浠诲姟宸茬粡鍦ㄨ繍琛岋紝鍒欒烦杩囨湰娆℃墽琛�
+//        if (!isDingTalkRunning.compareAndSet(false, true)) {
+//            log.info("銆恎etDinTalkData銆戜笂涓�娆′换鍔¤繕鍦ㄦ墽琛屼腑锛岃烦杩囨湰娆℃墽琛�");
+//            return;
+//        }
+//
+//        log.info("銆恎etDinTalkData銆戝紑濮嬭幏鍙栭拤閽夋暟鎹�");
+//
+//        // 浣跨敤寮傛鎵ц锛岄伩鍏嶉樆濉炶皟搴︾嚎绋�
+//        CompletableFuture.runAsync(() -> {
+//            try {
+//                DingTalkParam dingTalkParam = new DingTalkParam(1);
+//                DingTalkResponse<EmployeeInfo> employeeInfoDingTalkResponse =
+//                        apiService.sendListRequest(dingTalkParam, EmployeeInfo.class,
+//                                "http://192.168.1.64/eHR/eHRExternalService/Service.ashx");
+//
+//                List<EmployeeInfo> collect = employeeInfoDingTalkResponse.getData().stream()
+//                        .filter(s -> "閫犳ⅵ鑰咃紙娴欐睙锛夌鎶�鏈夐檺鍏徃".equals(s.getCUnitName()))
+//                        .collect(Collectors.toList());
+//
+//                log.info("銆恎etDinTalkData銆戣幏鍙栧埌{}鏉″憳宸ユ暟鎹�", collect.size());
+//
+//                List<List<EmployeeInfo>> partition = ListUtil.partition(collect, 100);
+//                partition.forEach(staffService::UpdateStaff);
+//
+//                log.info("銆恎etDinTalkData銆戦拤閽夋暟鎹鐞嗗畬鎴�");
+//            } catch (IOException e) {
+//                log.error("銆恎etDinTalkData銆戣幏鍙栭拤閽夋暟鎹紓甯�: {}", e.getMessage(), e);
+//            } finally {
+//                isDingTalkRunning.set(false);
+//            }
+//        }, taskExecutor);
+//    }
+
 }

--
Gitblit v1.9.3