标准号使用正则判断
This commit is contained in:
@@ -24,8 +24,8 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
||||
@EnableScheduling
|
||||
@Component
|
||||
@@ -215,56 +215,50 @@ public class ScheduledJob {
|
||||
//查询代替标准字段得到一个 被代替了的标准的id的键值对列表
|
||||
List<Map<String, Object>> replaceStandIdMaps = sarStandAttrInfoDao.selectMaps(columnForDTBJH);
|
||||
HashMap<String, Integer> replaceIdCountMap = new HashMap<>();
|
||||
|
||||
|
||||
// 格式为 T/CSAE 175-2021
|
||||
Pattern pattern = Pattern.compile("^\\S*\\s\\S*[\\u2014\\u002d\\s]\\d{4}$");
|
||||
replaceStandIdMaps.forEach(item->{
|
||||
if (item!=null){
|
||||
//此标准代替的标准的标准号的数组
|
||||
String DTBJHStr = item.get("DTBJH").toString();
|
||||
|
||||
//数据格式: (GB 123-2000,GB 4233434-2021,GB 423423423-2021)
|
||||
if (!DTBJHStr.equals("")){
|
||||
try{
|
||||
String[] DTBJHArray = DTBJHStr.split(",");
|
||||
for (String DTBJH : DTBJHArray) {
|
||||
String[] sortAndNumberAndYear = DTBJH.split("\\s+");
|
||||
String sort = sortAndNumberAndYear[0];
|
||||
|
||||
String[] numberAndYear = sortAndNumberAndYear[1].split("\\-");
|
||||
String number=numberAndYear[0];
|
||||
String year=numberAndYear[1];
|
||||
|
||||
QueryWrapper<SarStandardsInfo> infoWrapper = new QueryWrapper<>();
|
||||
infoWrapper.select("ID")
|
||||
.eq("STAND_SORT",sort)
|
||||
.eq("STAND_NUMBER",number)
|
||||
.eq("STAND_YEAR",year);
|
||||
|
||||
|
||||
List<Map<String, Object>> idMaps = sarStandardsInfoDao.selectMaps(infoWrapper);
|
||||
if (idMaps.size()>0){
|
||||
String standId = idMaps.get(0).get("ID").toString();
|
||||
//如果代替标准id已存在则映射为2不存在则添加并映射为1
|
||||
if (replaceIdCountMap.containsKey(standId)) {
|
||||
replaceIdCountMap.replace(standId,2);
|
||||
}else {
|
||||
replaceIdCountMap.put(standId, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!DTBJHStr.equals("")) {
|
||||
String[] DTBJHArray = DTBJHStr.split(",");
|
||||
for (String DTBJH : DTBJHArray) {
|
||||
|
||||
if (!pattern.matcher(DTBJH).matches()){
|
||||
continue;
|
||||
}
|
||||
}catch (Exception e){
|
||||
System.out.println("=====错误===="+item+"=====错误=====");
|
||||
|
||||
String[] split = DTBJH.split("[\\u2014\\u002d\\s]");//以空格或'-'或'—'分割
|
||||
String sort = split[0];
|
||||
String number = split[1];
|
||||
String year = split[2];
|
||||
|
||||
QueryWrapper<SarStandardsInfo> infoWrapper = new QueryWrapper<>();
|
||||
infoWrapper.select("ID")
|
||||
.eq("STAND_SORT", sort)
|
||||
.eq("STAND_NUMBER", number)
|
||||
.eq("STAND_YEAR", year);
|
||||
|
||||
|
||||
List<Map<String, Object>> idMaps = sarStandardsInfoDao.selectMaps(infoWrapper);
|
||||
if (idMaps.size() > 0) {
|
||||
String standId = idMaps.get(0).get("ID").toString();
|
||||
//如果代替标准id已存在则映射为2不存在则添加并映射为1
|
||||
if (replaceIdCountMap.containsKey(standId)) {
|
||||
replaceIdCountMap.replace(standId, 2);
|
||||
} else {
|
||||
replaceIdCountMap.put(standId, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user