Files
foton-slrs-system-rest/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java
T

137 lines
4.8 KiB
Java

package com.adc.da.scheduled;
import com.adc.da.scheduled.dao.SarStandardInfoDao;
import com.adc.da.scheduled.dao.SarStandardItemDao;
import com.adc.da.scheduled.dao.SarStandardWarningDao;
import com.adc.da.scheduled.entity.DataDTO;
import com.adc.da.scheduled.entity.WarningEO;
import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO;
import com.adc.da.util.UUIDUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.util.LinkedList;
import java.util.List;
@EnableScheduling
@Component
@Slf4j
public class ScheduledJob {
/**
* 根据配置文件设置是否开启定时器
*/
@Value("${isNotScheduled}")
private boolean isNotScheduled; //是否开启定时器
//
// @Scheduled(cron="*/5 * * * * ?")
// @Async
// public void StandScheduledJob(){
// System.out.println("hello");
//// if(isNotScheduled){
//// System.out.println(Thread.currentThread().getName() + " cron=0 0 1 1 * ? --- " + new Date()+"---START-01");
//// System.out.println(Thread.currentThread().getName() + " cron=0 0 1 1 * ? --- " + new Date()+"---End-01");
//// try{
//// Thread.sleep(2000);
//// }catch(Exception e){
//// }
//// }
// }
@Autowired
private SarStandardWarningDao sarStandardWarningDao;
@Autowired
private SarStandardItemDao sarStandardItemDao;
@Autowired
private SarStandardInfoDao sarStandardInfoDao;
@Scheduled(cron = "0 0 0 * * ?") //每天的凌晨0点执行
// @Scheduled(cron="*/5 * * * * ?")
@Async
public void schedulingTasks() {
/**
* 1.查询标准属性字段表(sar_stand_attr_info) XCXSSEQ ZCCSSRQ ZRGCS
* 联接标准信息表sar_standards_info表的STAND_NAME
* 2.查询分解单(条款表)
* 3.查询预警表
* 4.去掉预警表中已存在的的数据
* 5.插入预警表
*/
/**
mark:标识预警的种类
3:新车标准预警
4:在产车标准预警
1:新车条款预警
2:在产车条款预警
*/
System.out.println("开始执行预警!!!");
//预警期限
DataDTO term = new DataDTO();
LinkedList<WarningEO> warningList = new LinkedList<>();
//分解单(条款) 新车型 mark=1
List<WarningEO> itemForXCXSSRQ = sarStandardItemDao.select(term, "XCXSSRQ");
for (WarningEO warningEO : itemForXCXSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1")
.setMark("1")
.setPutTime(warningEO.getXCXSSRQ());
}
warningList.addAll(itemForXCXSSRQ);
//分解单(条款) 在产车型 mark=2
List<WarningEO> itemForZCCSSRQ = sarStandardItemDao.select(term, "ZCCSSRQ");
for (WarningEO warningEO : itemForZCCSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1")
.setMark("2")
.setPutTime(warningEO.getZCCSSRQ());
}
warningList.addAll(itemForZCCSSRQ);
//标准 新车型 预警 mark=3
List<WarningEO> standInfoXCXSSRQ = sarStandardInfoDao.select(term, "XCXSSRQ");
for (WarningEO warningEO : standInfoXCXSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1")
.setMark("3")
.setPutTime(warningEO.getXCXSSRQ())
.setStandCode(warningEO.getStandSort()+" "+warningEO.getStandNum()+"-"+warningEO.getStandYear());
}
warningList.addAll(standInfoXCXSSRQ);
//标准 在产车型 mark=4
List<WarningEO> standInfoZCCSSRQ = sarStandardInfoDao.select(term, "ZCCSSRQ");
for (WarningEO warningEO : standInfoZCCSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1")
.setMark("4")
.setPutTime(warningEO.getZCCSSRQ())
.setStandCode(warningEO.getStandSort()+" "+warningEO.getStandNum()+"-"+warningEO.getStandYear());
}
warningList.addAll(standInfoZCCSSRQ);
//持久化至预警表 忽略标准id和标志位都一样的数据
if (warningList.size()!=0){
//此表的STAND_CODE和MARK字段需建立唯一性约束
int count = sarStandardWarningDao.ignoreInsert(warningList);
System.out.println("已预警 " + count + " 条标准或条款!!");
}
}
}