From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:22:45 +0800
Subject: [PATCH] 描述
---
src/main/java/com/gk/firework/Scheduls/WarningTask/TransportWarnTask.java | 95 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/firework/Scheduls/WarningTask/TransportWarnTask.java b/src/main/java/com/gk/firework/Scheduls/WarningTask/TransportWarnTask.java
new file mode 100644
index 0000000..f1e5bc8
--- /dev/null
+++ b/src/main/java/com/gk/firework/Scheduls/WarningTask/TransportWarnTask.java
@@ -0,0 +1,95 @@
+package com.gk.firework.Scheduls.WarningTask;
+
+import com.gk.firework.Domain.*;
+import com.gk.firework.Domain.Enum.CertificateStatus;
+import com.gk.firework.Service.*;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author : jingjy
+ * @date : 2021/6/11 14:16
+ */
+@Configuration
+@EnableScheduling
+@ConditionalOnProperty(prefix = "scheduling",name = "enabled",havingValue = "true")
+public class TransportWarnTask {
+ private Logger logger = LogManager.getLogger(StockWarnTask.class);
+ private static final String WARN_TYPE = "运输证超期";
+ private static final String WARN_LEVEL = "预警";
+ private static final Integer WARN_PERIOD = 30;
+ @Autowired
+ private TransportCertService transportCertService;
+ @Autowired
+ private TransportCertificateService transportCertificateService;
+ @Autowired
+ private EnterpriseService enterpriseService;
+ @Autowired
+ private WarnContentService warnContentService;
+ @Autowired
+ private EntryService entryService;
+
+ @Scheduled(cron = "0 0 2 * * ?") //每天凌晨两点执行一次
+ private void transportWarn(){
+ Calendar calendar = Calendar.getInstance();
+ Date date = new Date();
+ calendar.setTime(date);
+ calendar.set(Calendar.DATE,calendar.get(Calendar.DATE) - 15);
+ try {
+ List<TransportCert> transportCerts = transportCertService.selectWarnList(calendar.getTime(),date);
+ for (TransportCert transportCert : transportCerts){
+ Boolean isEntry = entryService.isTransportCertEntry(transportCert.getCode());
+ if (!isEntry && transportCert.getprocesstime().getTime() < date.getTime()){
+ insertWarnContent(transportCert.getEnterprisenumber(),transportCert.getCreatebyname(),transportCert.getCode(),
+ transportCert.getprocesstime(),date);
+ }
+ }
+
+ List<TransportCertificate> certificates = transportCertificateService.selectWarnList(calendar.getTime(),date);
+ for (TransportCertificate certificate : certificates){
+ Boolean isEntry = entryService.isTransportCertEntry(certificate.getCode());
+ if (!isEntry && certificate.getDeadline().getTime() < date.getTime()){
+ insertWarnContent(certificate.getEnterprisenumber(),certificate.getCreatebyname(),
+ certificate.getCode(),certificate.getDeadline(),date);
+ }
+ }
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void insertWarnContent(String enterpriseNumber, String createByName, String code, Date deadline, Date date) {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss");
+ String deadlineStr = dateFormat.format(deadline);
+ Enterprise enterprise = enterpriseService.selectEnterpriseByNumber(enterpriseNumber);
+ WarnContentInfo warnContentInfo = new WarnContentInfo();
+ warnContentInfo.setWarntype(WARN_TYPE);
+ warnContentInfo.setPeriod(WARN_PERIOD);
+ warnContentInfo.setEnterpriseid(enterprise.getId());
+ warnContentInfo.setWarnlevel(WARN_LEVEL);
+ warnContentInfo.setCreateddate(date);
+ warnContentInfo.setModifieddate(date);
+ warnContentInfo.setModifiedby("系统生成");
+ String content = createByName+"申请的运输证:"
+ +code+"预计送达时间:"+deadlineStr+",超期未入库!";
+ warnContentInfo.setWarncontent(content);
+
+ WarnContentInfo warnContentInfoExist = warnContentService.selectByWarn(WARN_TYPE,WARN_LEVEL,null,content);
+ if (warnContentInfoExist == null){
+ warnContentService.save(warnContentInfo);
+ }
+ }
+
+
+}
--
Gitblit v1.9.2