From 5c1d0d86b24c5bef7fb1889c111b539aad089d59 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 12 May 2022 16:34:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20There=20is=20no=20way=20the,=E7=A6=8F?= =?UTF-8?q?=E7=94=B0=E6=A0=87=E5=87=86=E8=87=AA=E5=8A=A8=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E9=80=BB=E8=BE=91=20100%=20=E6=9A=82=E5=AE=9A=E9=9C=80?= =?UTF-8?q?=E6=B1=82=20=E4=B8=8D=E8=AE=BE=E7=BD=AE=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E5=91=A8=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/UpdateStateBussSync.java | 47 ++++++- .../server/UpdateStateStandSync.java | 122 +++++++++++++++++- .../entity/SarStandardsInfo.java | 2 + 3 files changed, 164 insertions(+), 7 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateBussSync.java b/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateBussSync.java index 1bcf73d2..40d9b683 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateBussSync.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateBussSync.java @@ -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 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 getStateScheduledList = sarBussionessStandDao.getStateScheduledList(wrapper); + if(!getStateScheduledList.isEmpty()){ + + // 需要更新为作废状态的集合 + List invalidList = getStateScheduledList.stream().filter(info -> { + if(StringUtils.isNotBlank(info.getBDTQBBHBUSS())){ + List bdtList = Arrays.stream(info.getBDTQBBHBUSS().split(",")).map(String::trim).collect(Collectors.toList()); + // 现行有效、作废 + List 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 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()); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateStandSync.java b/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateStandSync.java index 5187481d..c6b7a081 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateStandSync.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduledState/server/UpdateStateStandSync.java @@ -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 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 getStateScheduledList = sarStandardsInfoDao.getStateScheduledList(wrapper); + List getStateStandScheduledList = sarStandardsInfoDao.getStateScheduledList(wrapper); + + if(!getStateStandScheduledList.isEmpty()){ + + List invalidStandToGBList = new ArrayList<>(); + List bdtStandToGBList = new ArrayList<>(); + + // 当前标准的标准类别是否是GB类 GB集合逻辑 + getStateStandScheduledList.forEach(info -> { + if(StringUtils.isNotBlank(info.getBDTBZH())){ + List 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 queryGBList = sarStandardsInfoDao.selectList(wrapperGB); + + if(!queryGBList.isEmpty()){ + int queryGbCount = queryGBList.size(); + + //被代替标准号中所有有效标准的状态都是现行有效状态 + List yxList = queryGBList.stream().filter(info1 -> + "vsaga7nwub".equals(info1.getTextStatus())).collect(Collectors.toList()); + + //被代替标准号中所有有效标准的状态都是被代替状态 + List bdtStateList = queryGBList.stream().filter(info1 -> + "qke0ckro2p".equals(info1.getTextStatus())).collect(Collectors.toList()); + + //被代替标准号中所有有效标准的状态都是废止状态 + List 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 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 bdtStandToNotGBList = getStateStandScheduledList.stream().filter(info -> { + if(StringUtils.isNotBlank(info.getBDTBZH())){ + List bdtList = Arrays.stream(info.getBDTBZH().split(",")).map( + s -> s.replace(" ","").trim()).collect(Collectors.toList()); + + //发布、即将实施、现行有效、被代替 + List 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 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){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfo.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfo.java index ac30740c..a1d27dfd 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfo.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfo.java @@ -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;