定时标准预警(不推送)

This commit is contained in:
zhaokaiyao@91isoft.com
2021-11-29 14:15:44 +08:00
parent 8753b1ab66
commit 3117af535b
4 changed files with 148 additions and 144 deletions
@@ -4,17 +4,19 @@ import com.adc.da.scheduled.dao.SarStandardInfoDao;
import com.adc.da.scheduled.dao.SarStandardItemDao; import com.adc.da.scheduled.dao.SarStandardItemDao;
import com.adc.da.scheduled.dao.SarStandardWarningDao; import com.adc.da.scheduled.dao.SarStandardWarningDao;
import com.adc.da.scheduled.entity.DataDTO; import com.adc.da.scheduled.entity.DataDTO;
import com.adc.da.scheduled.entity.WarningEO;
import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao; import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao;
import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo; import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo;
import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO; import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO;
import com.adc.da.slrs.sarStandardsInfo.dao.SarStandardsInfoDao; import com.adc.da.slrs.sarStandardsInfo.dao.SarStandardsInfoDao;
import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo;
import com.adc.da.util.UUIDUtils; import com.adc.da.util.UUIDUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sun.corba.se.spi.ior.iiop.IIOPFactories;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
@@ -25,6 +27,7 @@ import org.springframework.stereotype.Component;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
@EnableScheduling @EnableScheduling
@@ -57,121 +60,130 @@ public class ScheduledJob {
@Scheduled(cron = "0 0 0 * * ?") //每天的凌晨0点执行 // @Scheduled(cron = "0 0 0 * * ?") //每天的凌晨0点执行
// @Scheduled(cron="*/5 * * * * ?") //// @Scheduled(cron="*/5 * * * * ?")
@Async // @Async
public void WarningSchedulingTasks() { // public void WarningSchedulingTasks() {
// Logger logger = LoggerFactory.getLogger(ScheduledJob.class);
//
/** // /**
* 1.查询标准属性字段表(sar_stand_attr_info) XCXSSEQ ZCCSSRQ ZRGCS // * 1.查询标准属性字段表(sar_stand_attr_info) XCXSSEQ ZCCSSRQ ZRGCS
* 联接标准信息表sar_standards_info表的STAND_NAME // * 联接标准信息表sar_standards_info表的STAND_NAME
* 2.查询分解单(条款表) // * 2.查询分解单(条款表)
* 3.查询预警表 // * 3.查询预警表
* 4.去掉预警表中已存在的的数据 // * 4.去掉预警表中已存在的的数据
* 5.插入预警表 // * 5.插入预警表
*/ // */
//
/** // /**
mark:标识预警的种类 // mark:标识预警的种类
3:新车标准预警 // 3:新车标准预警
4:在产车标准预警 // 4:在产车标准预警
1:新车条款预警 // 1:新车条款预警
2:在产车条款预警 // 2:在产车条款预警
*/ // */
//
//删除不在预警范围的标准 // //删除不在预警范围的标准
QueryWrapper<EarlyWarningEO> earlyWarningEOQW = new QueryWrapper<>(); // QueryWrapper<EarlyWarningEO> earlyWarningEOQW = new QueryWrapper<>();
earlyWarningEOQW.lt("PUT_TIME",LocalDate.now()); // earlyWarningEOQW.lt("PUT_TIME",LocalDate.now());
int remove = sarStandardWarningDao.delete(earlyWarningEOQW); // int remove = sarStandardWarningDao.delete(earlyWarningEOQW);
System.out.println(remove); // System.out.println(remove);
//
//
System.out.println("开始执行预警!!!"); // System.out.println("开始执行预警!!!");
//
DataDTO term = new DataDTO(); //预警期限(当前日期至3个月后) // DataDTO term = new DataDTO(); //预警期限(当前日期至3个月后)
//
LinkedList<WarningEO> warningList = new LinkedList<>();//需预警的标准和条款列表集合 // LinkedList<EarlyWarningEO> warningList = new LinkedList<>();//需预警的标准和条款列表集合
//分解单(条款) 新车型 mark=1 // //分解单(条款) 新车型 mark=1
List<WarningEO> itemForXCXSSRQ = sarStandardItemDao.selectWithinTerm(term, "XCXSSRQ"); // List<EarlyWarningEO> itemForXCXSSRQ = sarStandardItemDao.selectWithinTerm(term, "XCXSSRQ");
for (WarningEO warningEO : itemForXCXSSRQ) { // for (EarlyWarningEO warningEO : itemForXCXSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20()) // warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1") // .setPower("1")
.setMark("1") // .setMark("1");
.setPutTime(warningEO.getXCXSSRQ()) //// .setPutTime(warningEO.getXCXSSRQ());
.setStandCode(warningEO.getStandSort()+" "+ warningEO.getStandNum()+"-"+ warningEO.getStandYear()); //// .setStandCode(warningEO.getStandSort()+" "+ warningEO.getStandNum()+"-"+ warningEO.getStandYear());
} // }
warningList.addAll(itemForXCXSSRQ); // warningList.addAll(itemForXCXSSRQ);
//
//分解单(条款) 在产车型 mark=2 // //分解单(条款) 在产车型 mark=2
List<WarningEO> itemForZCCSSRQ = sarStandardItemDao.selectWithinTerm(term, "ZCCSSRQ"); // List<EarlyWarningEO> itemForZCCSSRQ = sarStandardItemDao.selectWithinTerm(term, "ZCCSSRQ");
for (WarningEO warningEO : itemForZCCSSRQ) { // for (EarlyWarningEO warningEO : itemForZCCSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20()) // warningEO.setId(UUIDUtils.randomUUID20())
.setPower("1") // .setPower("1")
.setMark("2") // .setMark("2");
.setPutTime(warningEO.getZCCSSRQ()) //// .setPutTime(warningEO.getZCCSSRQ());
.setStandCode(warningEO.getStandSort()+" "+ warningEO.getStandNum()+"-"+ warningEO.getStandYear()); //// .setStandCode(warningEO.getStandSort()+" "+ warningEO.getStandNum()+"-"+ warningEO.getStandYear());
//
} // }
warningList.addAll(itemForZCCSSRQ); // warningList.addAll(itemForZCCSSRQ);
//
//标准 新车型 预警 mark=3 // //标准 新车型 预警 mark=3
List<WarningEO> standInfoXCXSSRQ = sarStandardInfoDao.selectWithinTerm(term, "XCXSSRQ"); // List<String> standInfoXCXSSRQ = sarStandardInfoDao.selectWithinTerm(term, "XCXSSRQ");
for (WarningEO warningEO : standInfoXCXSSRQ) { // for (EarlyWarningEO warningEO : standInfoXCXSSRQ) {
warningEO.setId(UUIDUtils.randomUUID20()) // warningEO.setId(UUIDUtils.randomUUID20())
/** // /**
* //如果插入的值均为NULL,则根据索引的原理, // * //如果插入的值均为NULL,则根据索引的原理,
* 全NULL值不被记录在索引上,所以插入全NULL值时,可以有重复的 // * 全NULL值不被记录在索引上,所以插入全NULL值时,可以有重复的
* 则此处设为 '-1' // * 则此处设为 '-1'
*/ // */
.setItemsId("-1") // .setItemsId("-1")
.setPower("1") // .setPower("1")
.setMark("3") // .setMark("3");
.setStandCode(warningEO.getStandSort()+" "+ warningEO.getStandNum()+"-"+ warningEO.getStandYear()); //// .setStandCode(warningEO.getStandSort()+" "+ warningEO.getStandNum()+"-"+ warningEO.getStandYear());
//
//
//实施日期达到预警时间,但在产车实施日期不在时间内 // //实施日期达到预警时间,但在产车实施日期不在时间内
/** // /**
* 2021/9/9取消限制 // * 2021/9/9取消限制
*/ // */
// if (term.isTerm(warningEO.getXCXSSRQ())){ //// if (term.isTerm(warningEO.getXCXSSRQ())){
// warningEO.setPutTime(warningEO.getXCXSSRQ()); //// warningEO.setPutTime(warningEO.getXCXSSRQ());
// } //// }
warningEO.setPutTime(warningEO.getXCXSSRQ()); //// warningEO.setPutTime(warningEO.getXCXSSRQ());
//
} // }
warningList.addAll(standInfoXCXSSRQ); // warningList.addAll(standInfoXCXSSRQ);
//
//
//标准 在产车型 mark=4 // //标准 在产车型 mark=4
List<WarningEO> standInfoZCCSSRQ = sarStandardInfoDao.selectWithinTerm(term, "ZCCSSRQ"); // List<String> standIdZCCSSRQ = sarStandardInfoDao.selectWithinTerm(term, "ZCCSSRQ");
for (WarningEO warningEO : standInfoZCCSSRQ) { //
warningEO.setId(UUIDUtils.randomUUID20()) // List<EarlyWarningEO> standInfoZCCSSRQ = standIdZCCSSRQ.stream()
/** // .map(id -> {
* 同上 // EarlyWarningEO earlyWarningEO = new EarlyWarningEO();
*/ // earlyWarningEO.setStandId(id)
.setItemsId("-1") // .setItemsId("-1")
.setPower("1") // .setPower("1")
.setMark("4") // .setMark("4");
.setStandCode(warningEO.getStandSort()+" "+ warningEO.getStandNum()+"-"+ warningEO.getStandYear()); // return earlyWarningEO;
//实施日期达到预警时间,但在产车实施日期不在时间内 // }).collect(Collectors.toList());
/** // warningList.addAll(standInfoZCCSSRQ);
* 2021/9/9取消限制 //
*/ //
// if (term.isTerm(warningEO.getZCCSSRQ())){ //// .setStandCode(warningEO.getStandSort()+" "+ warningEO.getStandNum()+"-"+ warningEO.getStandYear());
// warningEO.setPutTime(warningEO.getZCCSSRQ()); // //实施日期达到预警时间,但在产车实施日期不在时间内
// } // /**
warningEO.setPutTime(warningEO.getZCCSSRQ()); // * 2021/9/9取消限制
} // */
warningList.addAll(standInfoZCCSSRQ); //// if (term.isTerm(warningEO.getZCCSSRQ())){
//// warningEO.setPutTime(warningEO.getZCCSSRQ());
//持久化至预警表 忽略标准id和标志位都一样的数据 //// }
if (warningList.size()!=0){ //// warningEO.setPutTime(warningEO.getZCCSSRQ());
//此表的STAND_ID和MARK字段以及ITEMS_ID字段需个建立唯一性约束 //
int count = sarStandardWarningDao.ignoreInsert(warningList); //
System.out.println("已预警 " + count + " 条标准或条款!!"); // //持久化至预警表 忽略标准id和标志位都一样的数据
} // if (warningList.size()!=0){
} // //此表的STAND_ID和MARK字段以及ITEMS_ID字段需个建立唯一性约束
// int count = sarStandardWarningDao.ignoreInsert(warningList);
// logger.info("==================================预警结束======================================");
// logger.info("==================================预警结束======================================");
// logger.info("已预警"+ count+"条标准或条款!!");
// logger.info("==================================预警结束======================================");
// logger.info("==================================预警结束======================================");
//
// }
// }
@@ -4,6 +4,7 @@ package com.adc.da.scheduled.dao;
import com.adc.da.scheduled.entity.DataDTO; import com.adc.da.scheduled.entity.DataDTO;
import com.adc.da.scheduled.entity.WarningEO; import com.adc.da.scheduled.entity.WarningEO;
import com.adc.da.slrs.sarStandWarning.entity.EarlyWarningEO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@@ -12,7 +13,7 @@ import java.util.List;
@Repository @Repository
public interface SarStandardInfoDao{ public interface SarStandardInfoDao{
public List<WarningEO> selectWithinTerm(DataDTO date, String str); public List<String> selectWithinTerm(DataDTO date, String str);
public int updateStandardInfo(@Param("id")String id, @Param("textStatus") String textStatus); public int updateStandardInfo(@Param("id")String id, @Param("textStatus") String textStatus);
@@ -13,5 +13,5 @@ import java.util.LinkedList;
@Repository @Repository
public interface SarStandardWarningDao extends BaseMapper<EarlyWarningEO> { public interface SarStandardWarningDao extends BaseMapper<EarlyWarningEO> {
public int ignoreInsert(@Param(value = "warningEOS") LinkedList<WarningEO> warningEOS); public int ignoreInsert(@Param(value = "warningEOS") LinkedList<EarlyWarningEO> warningEOS);
} }
@@ -3,33 +3,24 @@
<mapper namespace="com.adc.da.scheduled.dao.SarStandardInfoDao"> <mapper namespace="com.adc.da.scheduled.dao.SarStandardInfoDao">
<!-- Result Map--> <!-- Result Map-->
<resultMap id="resultMap" type="com.adc.da.scheduled.entity.WarningEO" > <!-- <resultMap id="resultMap" type="com.adc.da.scheduled.entity.WarningEO" >-->
<id column="ID" property="standId" /> <!-- <id column="ID" property="standId" />-->
<result column="STAND_NUMBER" property="standNum" /> <!-- <result column="STAND_NUMBER" property="standNum" />-->
<result column="STAND_NAME" property="standName" /> <!-- <result column="STAND_NAME" property="standName" />-->
<result column="STAND_SORT" property="standSort"/> <!-- <result column="STAND_SORT" property="standSort"/>-->
<result column="STAND_YEAR" property="standYear"/> <!-- <result column="STAND_YEAR" property="standYear"/>-->
<result column="XCXSSRQ" property="XCXSSRQ"/> <!-- <result column="XCXSSRQ" property="XCXSSRQ"/>-->
<result column="ZCCSSRQ" property="ZCCSSRQ"/> <!-- <result column="ZCCSSRQ" property="ZCCSSRQ"/>-->
<result column="SSRQ" property="SSRQ"/> <!-- <result column="SSRQ" property="SSRQ"/>-->
<result column="CLLX" property="applyType" /> <!-- <result column="CLLX" property="applyType" />-->
<result column="STAND_TYPE" property="standType" /> <!-- <result column="STAND_TYPE" property="standType" />-->
<result column="ZRGCS" property="dutyEngineer" /> <!-- <result column="ZRGCS" property="dutyEngineer" />-->
</resultMap> <!-- </resultMap>-->
<!-- 查询条件 --> <!-- 查询条件 -->
<select id="selectWithinTerm" resultMap="resultMap" parameterType="com.adc.da.scheduled.entity.DataDTO"> <select id="selectWithinTerm" resultType="java.lang.String" parameterType="com.adc.da.scheduled.entity.DataDTO">
SELECT SELECT
info.ID, info.ID
info.STAND_SORT,
info.STAND_YEAR,
info.STAND_NUMBER,
info.STAND_NAME,
info.STAND_TYPE,
attrInfo.CLLX,
attrInfo.ZRGCS,
attrInfo.SSRQ,
attrInfo.${str}
FROM FROM
sar_standards_info AS info sar_standards_info AS info
JOIN sar_stand_attr_info AS attrInfo ON info.id = attrinfo.stand_id JOIN sar_stand_attr_info AS attrInfo ON info.id = attrinfo.stand_id