diff --git a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java index 6664c6bb..879088f3 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java +++ b/adc-da-slrs/src/main/java/com/adc/da/scheduled/ScheduledJob.java @@ -13,6 +13,7 @@ import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; import com.adc.da.util.UUIDUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; @@ -21,9 +22,9 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.time.LocalDate; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; @EnableScheduling @Component @@ -173,8 +174,8 @@ public class ScheduledJob { /** * 定时更新文本状态 */ - @Scheduled(cron = "0 0 0 * * ?") //每天的凌晨0点执行 -// @Scheduled(cron="*/5 * * * * ?") +// @Scheduled(cron = "0 0 0 * * ?") //每天的凌晨0点执行 + @Scheduled(cron="*/5 * * * * ?") @Async public void TextStatusSchedulingTasks() { QueryWrapper wrapper = new QueryWrapper<>(); @@ -205,37 +206,56 @@ public class ScheduledJob { /** - * 被多个标准代替的标准变为“被代替”,只有一个被代替的自动变为“废止” + * 被多个标准代替的标准变为“被代替”,只被一个标准代替的自动变为“废止” */ - QueryWrapper columns = new QueryWrapper<>(); - columns.select("DTBJH","STAND_ID"); - List> mapsDTBZH = sarStandAttrInfoDao.selectMaps(columns); + QueryWrapper columns = new QueryWrapper<>(); - mapsDTBZH.forEach(item->{ - if (item.get("DTBJH")!=null && !item.get("DTBJH").toString().equals("")){ - String dtbzh = item.get("DTBJH").toString(); - String[] split = dtbzh.split(","); - SarStandardsInfo sarStandardsInfo = new SarStandardsInfo(); - sarStandardsInfo.setId(item.get("STAND_ID").toString()); + columns.select("REPLACE_STAND_NUM"); + //查询代替标准字段得到一个 被代替了的标准的id的键值对列表 + List> replaceStandIdMaps = sarStandardsInfoDao.selectMaps(columns); + HashMap replaceIdCountMap = new HashMap<>(); - //一个被代替标准号时,文本状态更新为废止状态,两个及以上时更新为被代替状态 - switch (split.length){ - case 0 : - break; - case 1 : - sarStandardsInfo.setTextStatus("chblaarg77");//废止状态 - break; - default: - sarStandardsInfo.setTextStatus("qke0ckro2p");//被代替状态 - } - try { - sarStandardsInfoDao.updateById(sarStandardsInfo); - }catch (Exception e){ - System.out.println("代替标准状态更新:id为"+item.get("STAND_ID").toString()+"文本状态更新失败"); - } + replaceStandIdMaps.forEach(item->{ + if (item!=null){ + //此标准代替的标准的id数组 + String[] standIds = item.get("REPLACE_STAND_NUM").toString().split(","); + for (String standId : standIds) { + + //如果代替标准id已存在则映射为2不存在则添加并映射为1 + if (replaceIdCountMap.containsKey(standId)) { + replaceIdCountMap.replace(standId,2); + }else { + replaceIdCountMap.put(standId, 1); + } + } + + } + + }); + + + //一个被代替标准号时,文本状态更新为废止状态,两个及以上时更新为被代替状态 + SarStandardsInfo sarStandardsInfo = new SarStandardsInfo(); + for (String key : replaceIdCountMap.keySet()) { + switch (replaceIdCountMap.get(key)){ + case 1 : + sarStandardsInfo.setTextStatus("chblaarg77");//废止状态 + sarStandardsInfo.setId(key); + break; + default : + sarStandardsInfo.setTextStatus("qke0ckro2p");//被代替状态 + sarStandardsInfo.setId(key); + break; } - }); + + try { + sarStandardsInfoDao.updateById(sarStandardsInfo); + }catch (Exception e){ + System.out.println("代替标准状态更新:id为"+key+"文本状态更新失败"); + } + } + } }