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> bdtStandToGBList = new ArrayList<>();
|
||||
|
||||
List<SarStandardsInfo> bdtStandToNotGBList = 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的国内标准
|
||||
int bdtStandNumCount = bdtList.size();
|
||||
QueryWrapper wrapperGB = new QueryWrapper();
|
||||
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,'-'," +
|
||||
"SAR_STANDARDS_INFO.STAND_YEAR),' ',''))",bdtList);
|
||||
List<SarStandardsInfo> queryGBList = sarStandardsInfoDao.selectList(wrapperGB);
|
||||
|
||||
if(!queryGBList.isEmpty()){
|
||||
int queryGbCount = queryGBList.size();
|
||||
|
||||
//被代替标准号中所有有效标准的状态都是现行有效状态
|
||||
List<SarStandardsInfo> fzList = queryGBList.stream().filter(info1 ->
|
||||
"vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())
|
||||
|| "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()){
|
||||
//被代替标准号中所有有效标准的状态都是现行有效状态
|
||||
List<SarStandardsInfo> fzList = queryGBList.stream().filter(info1 ->
|
||||
"vsaga7nwub".equals(info1.getTextStatus()) || "qke0ckro2p".equals(info1.getTextStatus())
|
||||
|| "chblaarg77".equals(info1.getTextStatus())).collect(Collectors.toList());
|
||||
// 检查当前标准是否为GB类
|
||||
if(StringUtils.equals(info.getStandSort(),"GB")){
|
||||
if(fzList.size() == bdtStandNumCount){//当所有标准都是现行有效状态时
|
||||
invalidStandToGBList.add(info);
|
||||
}else {
|
||||
// 被代替标准号中的有效标准的标准状态中有一个是发布、即将实施、现行有效、被代替状态的
|
||||
}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())){
|
||||
@@ -156,50 +139,19 @@ public class UpdateStateStandSyncFz implements Runnable {
|
||||
}
|
||||
return false;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
// 满足其上存入更新被代替逻辑
|
||||
if(!singleList.isEmpty()){
|
||||
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()){
|
||||
logger.info("=============被代替标准号中所有有效标准的状态都是现行有效、被代替、废止状态 执行============");
|
||||
// 文本状态更为废止状态
|
||||
@@ -217,9 +169,6 @@ public class UpdateStateStandSyncFz implements Runnable {
|
||||
// 文本状态更为被代替
|
||||
execStandDate(bdtStandToNotGBList,"qke0ckro2p");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
logger.info("每天0点1分执行 国内标准文本状态被代替逻辑 标准自动变更废止:"+Thread.currentThread().getName() + " cron=0 1 0 * * ? --- " + new Date()+"---End-01");
|
||||
|
||||
Reference in New Issue
Block a user