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 | 172 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 136 insertions(+), 36 deletions(-)
diff --git a/src/main/java/com/gs/xky/task/ScheduledTasks.java b/src/main/java/com/gs/xky/task/ScheduledTasks.java
index 410dee3..aa13b7a 100644
--- a/src/main/java/com/gs/xky/task/ScheduledTasks.java
+++ b/src/main/java/com/gs/xky/task/ScheduledTasks.java
@@ -1,57 +1,157 @@
package com.gs.xky.task;
-import cn.hutool.core.collection.ListUtil;
-import com.gs.xky.config.DingTalkParam;
-import com.gs.xky.config.DingTalkResponse;
-import com.gs.xky.dto.EmployeeInfo;
-import com.gs.xky.service.ApiService;
-import com.gs.xky.service.MesStaffService;
-import com.gs.xky.service.XkyService;
+import com.gs.xky.service.VwCjScSjTsBbService;
import lombok.RequiredArgsConstructor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import java.io.IOException;
-import java.util.List;
-import java.util.stream.Collectors;
+import java.util.concurrent.atomic.AtomicBoolean;
@Component
@RequiredArgsConstructor
public class ScheduledTasks {
+ private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);
- private final XkyService xkyService;
+ private final VwCjScSjTsBbService vwCjScSjTsBbService;
- private final ApiService apiService;
+ private final AtomicBoolean exportTaskRunning = new AtomicBoolean(false);
- private final MesStaffService staffService;
+// 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);
/**
- * 姣忎簲鍒嗛挓鎵ц涓�娆�
- * 鑾峰彇璁惧鏈�杩戠殑涓�鏉¤褰�
- *
- * @return void
- * @author tjx
- * @description TODO
- * @date 2024/9/27 21:48
+ * 姣忓ぉ涓婂崍9鐐规墽琛�
+ * 瀵煎嚭鐢熶骇鏁版嵁骞跺彂閫侀拤閽夋秷鎭�
*/
- @Scheduled(cron = "0 0/5 * * * ?")
- public void getDeviceRealTimeData() throws IOException {
- xkyService.GetSaveDetail();
+ @Async("taskExecutor")
+ @Scheduled(cron = "0 0 8,16 * * ?")
+ public void exportAndSendProductionDataTask() {
+ if (!exportTaskRunning.compareAndSet(false, true)) {
+ log.warn("鐢熶骇鏁版嵁瀵煎嚭浠诲姟姝e湪鎵ц涓紝璺宠繃鏈鎵ц");
+ return;
+ }
+
+ try {
+ log.info("寮�濮嬫墽琛岀敓浜ф暟鎹鍑哄苟鍙戦�侀拤閽変换鍔�");
+ boolean result = vwCjScSjTsBbService.exportAndSendToDingtalk();
+
+ if (result) {
+ log.info("鐢熶骇鏁版嵁瀵煎嚭骞跺彂閫侀拤閽変换鍔℃墽琛屾垚鍔�");
+ } else {
+ log.error("鐢熶骇鏁版嵁瀵煎嚭骞跺彂閫侀拤閽変换鍔℃墽琛屽け璐�");
+ }
+ } catch (Exception e) {
+ log.error("鐢熶骇鏁版嵁瀵煎嚭骞跺彂閫侀拤閽変换鍔℃墽琛屽紓甯�", e);
+ } finally {
+ exportTaskRunning.set(false);
+ }
}
- @Scheduled(cron = "0 0/53 * * * ?")
- public void getDinTalkData() throws IOException {
- DingTalkParam dingTalkParam = new DingTalkParam(1);
+// /**
+// * 姣忎簲鍒嗛挓鎵ц涓�娆�
+// * 鑾峰彇鍗忓浜戞渶杩戠殑涓�鏉¤褰�
+// */
+// @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);
+// }
- 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());
- System.out.println(collect.size());
-
- List<List<EmployeeInfo>> partition = ListUtil.partition(collect, 100);
-
- partition.forEach(staffService::UpdateStaff);
- }
}
--
Gitblit v1.9.3