fix:修复国内标准中GB和非GB类在自动变更状态时查询逻辑错误的BUG
This commit is contained in:
+15
-66
@@ -110,45 +110,28 @@ public class UpdateStateStandSyncFz implements Runnable {
|
|||||||
|
|
||||||
List<SarStandardsInfo> invalidStandToGBList = new ArrayList<>();
|
List<SarStandardsInfo> invalidStandToGBList = new ArrayList<>();
|
||||||
List<SarStandardsInfo> bdtStandToGBList = new ArrayList<>();
|
List<SarStandardsInfo> bdtStandToGBList = new ArrayList<>();
|
||||||
|
List<SarStandardsInfo> bdtStandToNotGBList = new ArrayList<>();
|
||||||
// 当前标准的标准类别是否是GB类 GB集合逻辑
|
// 当前标准的标准类别是否是GB类 GB集合逻辑
|
||||||
getStateStandScheduledList.forEach(info -> {
|
getStateStandScheduledList.forEach(info -> {
|
||||||
if(StringUtils.isNotBlank(info.getBDTBZH())){
|
if(StringUtils.isNotBlank(info.getBDTBZH())){
|
||||||
List<String> bdtList = Arrays.stream(info.getBDTBZH().split(",")).map(
|
List<String> bdtList = Arrays.stream(info.getBDTBZH().split(",")).map(
|
||||||
s -> s.replace(" ","").trim()).collect(Collectors.toList());
|
s -> s.replace(" ","").trim()).collect(Collectors.toList());
|
||||||
// 查询等于GB的国内标准
|
int bdtStandNumCount = bdtList.size();
|
||||||
QueryWrapper wrapperGB = new QueryWrapper();
|
QueryWrapper wrapperGB = new QueryWrapper();
|
||||||
wrapperGB.eq("SAR_STANDARDS_INFO.VALID_FLAG","0");
|
wrapperGB.eq("SAR_STANDARDS_INFO.VALID_FLAG","0");
|
||||||
wrapperGB.eq("SAR_STANDARDS_INFO.STAND_SORT","GB");
|
// wrapperGB.eq("SAR_STANDARDS_INFO.STAND_SORT","GB");
|
||||||
wrapperGB.in("trim(replace(concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-'," +
|
wrapperGB.in("trim(replace(concat(SAR_STANDARDS_INFO.STAND_SORT,' ',SAR_STANDARDS_INFO.STAND_NUMBER,'-'," +
|
||||||
"SAR_STANDARDS_INFO.STAND_YEAR),' ',''))",bdtList);
|
"SAR_STANDARDS_INFO.STAND_YEAR),' ',''))",bdtList);
|
||||||
List<SarStandardsInfo> queryGBList = sarStandardsInfoDao.selectList(wrapperGB);
|
List<SarStandardsInfo> queryGBList = sarStandardsInfoDao.selectList(wrapperGB);
|
||||||
|
//被代替标准号中所有有效标准的状态都是现行有效状态
|
||||||
if(!queryGBList.isEmpty()){
|
List<SarStandardsInfo> fzList = queryGBList.stream().filter(info1 ->
|
||||||
int queryGbCount = queryGBList.size();
|
"vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())
|
||||||
|
|| "chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList());
|
||||||
//被代替标准号中所有有效标准的状态都是现行有效状态
|
// 检查当前标准是否为GB类
|
||||||
List<SarStandardsInfo> fzList = queryGBList.stream().filter(info1 ->
|
if(StringUtils.equals(info.getStandSort(),"GB")){
|
||||||
"vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())
|
if(fzList.size() == bdtStandNumCount){//当所有标准都是现行有效状态时
|
||||||
|| "chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList());
|
|
||||||
|
|
||||||
List<SarStandardsInfo> fzList2 = queryGBList.stream().filter(info1 ->
|
|
||||||
!"vsaga7nwub".equals(info1.getTextStatus()) && !"qke0ckro2p".equals(info1.getTextStatus())
|
|
||||||
&& !"chblaarg77".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(!fzList.isEmpty() && fzList2.isEmpty()){
|
|
||||||
invalidStandToGBList.add(info);
|
invalidStandToGBList.add(info);
|
||||||
}else {
|
}else{//其中被代替标准号中存在
|
||||||
// 被代替标准号中的有效标准的标准状态中有一个是发布、即将实施、现行有效、被代替状态的
|
|
||||||
List<SarStandardsInfo> singleList = queryGBList.stream().filter(info1 -> {
|
List<SarStandardsInfo> singleList = queryGBList.stream().filter(info1 -> {
|
||||||
if("hc99551723c".equals(info1.getTextStatus()) || "hb0iy9z23c".equals(info1.getTextStatus())
|
if("hc99551723c".equals(info1.getTextStatus()) || "hb0iy9z23c".equals(info1.getTextStatus())
|
||||||
|| "vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())){
|
|| "vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())){
|
||||||
@@ -156,50 +139,19 @@ public class UpdateStateStandSyncFz implements Runnable {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
// 满足其上存入更新被代替逻辑
|
// 满足其上存入更新被代替逻辑
|
||||||
if(!singleList.isEmpty()){
|
if(!singleList.isEmpty()){
|
||||||
bdtStandToGBList.add(info);
|
bdtStandToGBList.add(info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}else{//非GB类
|
||||||
|
if(fzList.size()>0){
|
||||||
|
bdtStandToNotGBList.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",bdtStateList);
|
|
||||||
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()){
|
if(!invalidStandToGBList.isEmpty()){
|
||||||
logger.info("=============被代替标准号中所有有效标准的状态都是现行有效、被代替、废止状态 执行============");
|
logger.info("=============被代替标准号中所有有效标准的状态都是现行有效、被代替、废止状态 执行============");
|
||||||
// 文本状态更为废止状态
|
// 文本状态更为废止状态
|
||||||
@@ -217,9 +169,6 @@ public class UpdateStateStandSyncFz implements Runnable {
|
|||||||
// 文本状态更为被代替
|
// 文本状态更为被代替
|
||||||
execStandDate(bdtStandToNotGBList,"qke0ckro2p");
|
execStandDate(bdtStandToNotGBList,"qke0ckro2p");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info("每天0点1分执行 国内标准文本状态被代替逻辑 标准自动变更废止:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---End-01");
|
logger.info("每天0点1分执行 国内标准文本状态被代替逻辑 标准自动变更废止:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---End-01");
|
||||||
|
|||||||
Reference in New Issue
Block a user