feat: There is no way the,福田标准自动变更逻辑 100% 暂定需求 不设置定时周期

This commit is contained in:
super_liu
2022-05-12 16:34:49 +08:00
parent 51a2db5602
commit 5c1d0d86b2
3 changed files with 164 additions and 7 deletions
@@ -159,18 +159,59 @@ public class UpdateStateBussSync {
}
}
// 每天0点1分执行 企标标准文本状态被代替逻辑 自动变更废状态
// 每天0点1分执行 企标标准文本状态被代替逻辑 自动变更废状态
// @Scheduled(cron="0 0 1 1 * ?")
// @Scheduled(cron="*/60 * * * * ?")
// @Scheduled(cron = "0 1 0 * * ?")
@Async
public void BussScheduledToAbolish(){
if(isNotScheduled){
try{
Thread.sleep(2000);
logger.info("每天0点1分执行 企标标准文本状态被代替逻辑 自动变更废状态:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---START-01");
logger.info("每天0点1分执行 企标标准文本状态被代替逻辑 自动变更废状态:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---START-01");
// 现行有效、即将实施
List<String> list = new ArrayList<>();
// 现行有效
list.add("9z741h2m3j");
// 即将实施
list.add("rpvoxsvr60");
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("A.VALID_FLAG","0");
wrapper.in("A.TEXT_STATUS_BUSS",list);
List<SarBussionessStand> getStateScheduledList = sarBussionessStandDao.getStateScheduledList(wrapper);
if(!getStateScheduledList.isEmpty()){
// 需要更新为作废状态的集合
List<SarBussionessStand> invalidList = getStateScheduledList.stream().filter(info -> {
if(StringUtils.isNotBlank(info.getBDTQBBHBUSS())){
List<String> bdtList = Arrays.stream(info.getBDTQBBHBUSS().split(",")).map(String::trim).collect(Collectors.toList());
// 现行有效、作废
List<String> bdtStateList = new ArrayList<>();
// 现行有效
bdtStateList.add("9z741h2m3j");
// 作废
bdtStateList.add("3lqnlgmgcn");
QueryWrapper wrapperBdt = new QueryWrapper();
wrapperBdt.eq("VALID_FLAG","0");
wrapperBdt.in("STAND_CODE",bdtList);
wrapperBdt.in("TEXT_STATUS_BUSS",bdtStateList);
List<SarBussionessStand> queryBDTBussList = sarBussionessStandDao.selectList(wrapperBdt);
// 所有的被代替标准号中的有效标准中有一个标准标准状态是现行有效、作废
return !queryBDTBussList.isEmpty();
}
return false;
}).collect(Collectors.toList());
logger.info("每天0点1分执行 企标标准文本状态被代替逻辑 自动变更废止状态:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---End-01");
// 作废状态的集合 执行逻辑 更为作废
if(!invalidList.isEmpty()){
execStandDate(invalidList,"3lqnlgmgcn");
}
}
logger.info("每天0点1分执行 企标标准文本状态被代替逻辑 自动变更作废状态:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---End-01");
}catch(Exception e){
logger.info(e.getMessage());
}
@@ -168,6 +168,7 @@ public class UpdateStateStandSync {
// 每天0点1分执行 国内标准文本状态被代替逻辑 标准自动变更废止
// @Scheduled(cron="0 0 1 1 * ?")
// @Scheduled(cron="*/60 * * * * ?")
// @Scheduled(cron = "0 1 0 * * ?")
@Async
public void StandScheduledToAbolish(){
@@ -176,17 +177,130 @@ public class UpdateStateStandSync {
Thread.sleep(2000);
logger.info("每天0点1分执行 国内标准文本状态被代替逻辑 标准自动变更废止:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---START-01");
// 发布、即将实施 只查询国内标准
// 现行有效、即将实施、被代替 只查询国内标准
List<String> list = new ArrayList<>();
// 发布
list.add("hc99551723c");
// 现行有效
list.add("vsaga7nwub");
// 即将实施
list.add("hb0iy9z23c");
// 被代替
list.add("qke0ckro2p");
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("A.VALID_FLAG","0");
wrapper.eq("STAND_TYPE","INLAND");
wrapper.in("A.TEXT_STATUS",list);
List<SarStandardsInfo> getStateScheduledList = sarStandardsInfoDao.getStateScheduledList(wrapper);
List<SarStandardsInfo> getStateStandScheduledList = sarStandardsInfoDao.getStateScheduledList(wrapper);
if(!getStateStandScheduledList.isEmpty()){
List<SarStandardsInfo> invalidStandToGBList = new ArrayList<>();
List<SarStandardsInfo> bdtStandToGBList = new ArrayList<>();
// 当前标准的标准类别是否是GB类 GB集合逻辑
getStateStandScheduledList.forEach(info -> {
if(StringUtils.isNotBlank(info.getBDTBZH())){
List<String> bdtList = Arrays.stream(info.getBDTBZH().split(",")).map(
s -> s.replace(" ","").trim()).collect(Collectors.toList());
// 查询等于GB的国内标准
QueryWrapper wrapperGB = new QueryWrapper();
wrapperGB.eq("SAR_STANDARDS_INFO.VALID_FLAG","0");
wrapperGB.eq("SAR_STANDARDS_INFO.STAND_SORT","GB");
wrapperGB.in("trim(replace(concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-'," +
"SAR_STANDARDS_INFO.STAND_YEAR),' ',''))",bdtList);
List<SarStandardsInfo> queryGBList = sarStandardsInfoDao.selectList(wrapperGB);
if(!queryGBList.isEmpty()){
int queryGbCount = queryGBList.size();
//被代替标准号中所有有效标准的状态都是现行有效状态
List<SarStandardsInfo> yxList = queryGBList.stream().filter(info1 ->
"vsaga7nwub".equals(info1.getTextStatus())).collect(Collectors.toList());
//被代替标准号中所有有效标准的状态都是被代替状态
List<SarStandardsInfo> bdtStateList = queryGBList.stream().filter(info1 ->
"qke0ckro2p".equals(info1.getTextStatus())).collect(Collectors.toList());
//被代替标准号中所有有效标准的状态都是废止状态
List<SarStandardsInfo> fzList = queryGBList.stream().filter(info1 ->
"chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList());
// 满足其上存入更新废止逻辑 如果只有一个被代替标准 优先更新废止状态
if(yxList.size() == queryGbCount || bdtStateList.size() == queryGbCount || fzList.size() == queryGbCount){
invalidStandToGBList.add(info);
}else {
// 被代替标准号中的有效标准的标准状态中有一个是发布、即将实施、现行有效、被代替状态的
List<SarStandardsInfo> singleList = queryGBList.stream().filter(info1 -> {
if("hc99551723c".equals(info1.getTextStatus()) || "hb0iy9z23c".equals(info1.getTextStatus())
|| "vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())){
return true;
}
return false;
}).collect(Collectors.toList());
// 满足其上存入更新被代替逻辑
if(!singleList.isEmpty()){
bdtStandToGBList.add(info);
}
}
}
}
});
// 当前标准的标准类别是否是GB类 NOT GB集合逻辑
List<SarStandardsInfo> bdtStandToNotGBList = getStateStandScheduledList.stream().filter(info -> {
if(StringUtils.isNotBlank(info.getBDTBZH())){
List<String> bdtList = Arrays.stream(info.getBDTBZH().split(",")).map(
s -> s.replace(" ","").trim()).collect(Collectors.toList());
//发布、即将实施、现行有效、被代替
List<String> bdtStateList = new ArrayList<>();
// 发布
bdtStateList.add("hc99551723c");
// 作废
bdtStateList.add("hb0iy9z23c");
// 即将实施
bdtStateList.add("vsaga7nwub");
// 被代替
bdtStateList.add("qke0ckro2p");
// 查询不等于GB的国内标准 且 有效的被代替标准
QueryWrapper wrapperNotGB = new QueryWrapper();
wrapperNotGB.eq("VALID_FLAG","0");
wrapperNotGB.ne("STAND_SORT","GB");
wrapperNotGB.in("TEXT_STATUS",wrapperNotGB);
wrapperNotGB.in("trim(replace(concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-'," +
"SAR_STANDARDS_INFO.STAND_YEAR),' ',''))",bdtList);
List<SarStandardsInfo> queryNotGBList = sarStandardsInfoDao.selectList(wrapperNotGB);
// 被代替标准号中的有效标准的标准状态中有一个是发布、即将实施、现行有效、被代替状态的
// 满足其上过滤更新被代替数据
return !queryNotGBList.isEmpty();
}
return false;
}).collect(Collectors.toList());
if(!invalidStandToGBList.isEmpty()){
logger.info("=============被代替标准号中所有有效标准的状态都是现行有效、被代替、废止状态 执行============");
// 文本状态更为废止状态
execStandDate(invalidStandToGBList,"chblaarg77");
}
if(!bdtStandToGBList.isEmpty()){
logger.info("=============GB=======被代替标准号中的有效标准的标准状态中有一个是发布、即将实施、现行有效、被代替状态的 执行============");
// 文本状态更为被代替
execStandDate(bdtStandToGBList,"qke0ckro2p");
}
if(!bdtStandToNotGBList.isEmpty()){
logger.info("=============NOT GB ===被代替标准号中的有效标准的标准状态中有一个是发布、即将实施、现行有效、被代替状态的 执行============");
// 文本状态更为被代替
execStandDate(bdtStandToNotGBList,"qke0ckro2p");
}
}
logger.info("每天0点1分执行 国内标准文本状态被代替逻辑 标准自动变更废止:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---End-01");
}catch(Exception e){
@@ -224,6 +224,8 @@ public class SarStandardsInfo extends BaseEntity {
private String ZCCSSRQ;
@TableField(exist = false)
private String XCXSSRQ;
@TableField(exist = false)
private String BDTBZH;
@TableField(exist = false)
private String putTime2;