From 3849263b31a16a91ff08acaa42786ecfde76f33c Mon Sep 17 00:00:00 2001
From: zhangback <zhangback@163.com>
Date: 星期四, 27 十一月 2025 20:18:08 +0800
Subject: [PATCH] 提交
---
tms/src/main/java/com/ruoyi/tms/task/ContractExpireNotifyTask.java | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 105 insertions(+), 0 deletions(-)
diff --git a/tms/src/main/java/com/ruoyi/tms/task/ContractExpireNotifyTask.java b/tms/src/main/java/com/ruoyi/tms/task/ContractExpireNotifyTask.java
new file mode 100644
index 0000000..3845f5c
--- /dev/null
+++ b/tms/src/main/java/com/ruoyi/tms/task/ContractExpireNotifyTask.java
@@ -0,0 +1,105 @@
+package com.ruoyi.tms.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.ruoyi.tms.domain.TmsContract;
+import com.ruoyi.tms.domain.TmsMessageNotify;
+import com.ruoyi.tms.service.ITmsContractService;
+import com.ruoyi.tms.service.ITmsMessageNotifyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.util.List;
+import java.util.stream.Collectors;
+@Slf4j
+@Component("contractExpireNotifyTask")
+public class ContractExpireNotifyTask {
+
+ @Autowired
+ ITmsContractService tmsContractService;
+
+ @Autowired
+ ITmsMessageNotifyService tmsMessageNotifyService;
+
+ /**
+ * 妫�鏌ュ悎鍚屽嵆灏嗗埌鏈�
+ */
+ public void checkContractExpire() {
+ LocalDate today = LocalDate.now();
+ LocalDate targetDate = today.plusDays(90);
+
+ List<TmsContract> tmsContracts = tmsContractService.getBaseMapper().selectList(new LambdaQueryWrapper<TmsContract>()
+ .eq(TmsContract::getContractStatus, 0)
+ .between(TmsContract::getContractEndDate, today, targetDate)
+ );
+ if (tmsContracts.isEmpty()){
+ return;
+ }
+ log.info("鍗冲皢鍒版湡鐨勫悎鍚屾湁{}涓�", tmsContracts.size());
+ // 鎻愬彇鍚堝悓ID
+ List<Integer> ids = tmsContracts.stream()
+ .map(TmsContract::getId)
+ .collect(Collectors.toList());
+
+ // 鎵归噺鏇存柊涓衡�滀复鏈熲��
+ tmsContractService.getBaseMapper().update(
+ new LambdaUpdateWrapper<TmsContract>()
+ .in(TmsContract::getId, ids)
+ .set(TmsContract::getContractStatus, 1) // 1 = 涓存湡
+ );
+
+ List<TmsMessageNotify> messageNotifies = tmsContracts.stream().map(item -> {
+ TmsMessageNotify notify = new TmsMessageNotify();
+ notify.setTitle("鍚堝悓鍒版湡鎻愰啋");
+ notify.setContent("銆愬悎鍚岀紪鍙�" + item.getContractCode() + "銆戝嵆灏嗗埌鏈�");
+ notify.setType(0);
+ notify.setStatus(0);
+ notify.setReadStatus(0);
+ notify.setExtraData("{\"contactStatus\":1,\"contractId\":\"" + item.getId() + "\"}");
+ return notify;
+ }).collect(Collectors.toList());
+ tmsMessageNotifyService.insertTmsMessageNotifyBatch(messageNotifies);
+ }
+ /**
+ * 妫�鏌ュ悎鍚屽凡鍒版湡
+ */
+ public void handleExpiredContracts() {
+ LocalDate today = LocalDate.now();
+
+ List<TmsContract> tmsContracts = tmsContractService.getBaseMapper().selectList(new LambdaQueryWrapper<TmsContract>()
+ .ne(TmsContract::getContractStatus, 2)
+ .le(TmsContract::getContractEndDate, today)
+ );
+ if (tmsContracts.isEmpty()){
+ return;
+ }
+ log.info("宸插埌鏈熺殑鍚堝悓鏈墈}涓�", tmsContracts.size());
+ // 鎻愬彇鍚堝悓ID
+ List<Integer> ids = tmsContracts.stream()
+ .map(TmsContract::getId)
+ .collect(Collectors.toList());
+
+ // 鎵归噺鏇存柊涓衡�滀复鏈熲��
+ tmsContractService.getBaseMapper().update(
+ new LambdaUpdateWrapper<TmsContract>()
+ .in(TmsContract::getId, ids)
+ .set(TmsContract::getContractStatus, 2) // 1 = 涓存湡
+ );
+
+ List<TmsMessageNotify> messageNotifies = tmsContracts.stream().map(item -> {
+ TmsMessageNotify notify = new TmsMessageNotify();
+ notify.setTitle("鍚堝悓鍒版湡鎻愰啋");
+ notify.setContent("銆愬悎鍚岀紪鍙�" + item.getContractCode() + "銆戝凡鍒版湡");
+ notify.setType(0);
+ notify.setStatus(0);
+ notify.setReadStatus(0);
+ notify.setExtraData("{\"contactStatus\":2, \"contractId\":\"" + item.getId() + "\"}");
+ return notify;
+ }).collect(Collectors.toList());
+ tmsMessageNotifyService.insertTmsMessageNotifyBatch(messageNotifies);
+ }
+
+
+}
--
Gitblit v1.8.0