From 292d4c382386e90412a29e3f2abd26f259984127 Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Thu, 9 Sep 2021 17:25:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=A0=87=E5=87=86=E5=8F=B7=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=AD=A3=E5=88=99=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/adc/da/scheduled/ScheduledJob.java | 74 ++-- .../service/impl/ImportExcelServiceImpl.java | 375 +++++++++--------- .../impl/SarLawsDetailedListServiceImpl.java | 5 + 3 files changed, 236 insertions(+), 218 deletions(-) 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 81d65903..79a0bb79 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 @@ -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> replaceStandIdMaps = sarStandAttrInfoDao.selectMaps(columnForDTBJH); HashMap 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 infoWrapper = new QueryWrapper<>(); - infoWrapper.select("ID") - .eq("STAND_SORT",sort) - .eq("STAND_NUMBER",number) - .eq("STAND_YEAR",year); - - - List> 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 infoWrapper = new QueryWrapper<>(); + infoWrapper.select("ID") + .eq("STAND_SORT", sort) + .eq("STAND_NUMBER", number) + .eq("STAND_YEAR", year); + + + List> 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); + } + } + + } } - - - - } }); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java index b5db3b55..ab9b75b9 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/ImportExcelDatas/service/impl/ImportExcelServiceImpl.java @@ -34,7 +34,9 @@ import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.InputStream; +import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Pattern; @Service public class ImportExcelServiceImpl extends ServiceImpl implements ImportExcelService { @@ -285,6 +287,8 @@ public class ImportExcelServiceImpl extends ServiceImpl error=new ArrayList<>(); + + private List fileError=new ArrayList<>(); @Override public List storageExclData(Map> importListMap) { @@ -302,44 +306,44 @@ public class ImportExcelServiceImpl extends ServiceImpl standSaveWrapper = new QueryWrapper<>(); -// standSaveWrapper -// .eq("STAND_SORT",sarStandardsInfo.getStandSort()) -// .eq("STAND_NUMBER",sarStandardsInfo.getStandNumber()) -// .eq("STAND_YEAR",sarStandardsInfo.getStandYear()); -// -// SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); -// if (one!=null){ -// sarStandardsInfo.setId(one.getId()); -// -// sarStandardsInfoService.update(sarStandardsInfo,standSaveWrapper); -// QueryWrapper standAttrWrapper = new QueryWrapper<>(); -// standAttrWrapper.eq("STAND_ID",one.getId()); -// -// sarStandAttrInfo.setStandId(one.getId()); -// sarStandAttrInfoService.update(sarStandAttrInfo,standAttrWrapper); -// }else { -// sarStandardsInfoService.save(sarStandardsInfo); -// String field="ID,STAND_ID,VALID_FLAG,DTBJH,SSRQ"; -// String value="\'"+sarStandAttrInfo.getId()+"\'"+","+ "\'"+sarStandAttrInfo.getStandId()+"\'"+","+"\'"+"0"+"\'"; -// -// -// if (sarStandAttrInfo.getDtbjh()!=null){ -// value+=","+"\'"+sarStandAttrInfo.getDtbjh()+"\'"; -// } -// -// if (sarStandAttrInfo.getSsrq()!=null){ -// value+=","+"\'"+sarStandAttrInfo.getSsrq()+"\'"; -// } -// sarStandAttrInfoDao.insertStandAttr(field,value); -// -// -// -// } + SarStandAttrInfo sarStandAttrInfo = parseImportDtoToStandAttrInfo(item, standID); + + sarStandardsInfo.setValidFlag("0"); + sarStandardsInfo.setStandType("FOREIGN"); + QueryWrapper standSaveWrapper = new QueryWrapper<>(); + standSaveWrapper + .eq("STAND_SORT",sarStandardsInfo.getStandSort()) + .eq("STAND_NUMBER",sarStandardsInfo.getStandNumber()) + .eq("STAND_YEAR",sarStandardsInfo.getStandYear()); + + SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); + if (one!=null){ + sarStandardsInfo.setId(one.getId()); + + sarStandardsInfoService.update(sarStandardsInfo,standSaveWrapper); + QueryWrapper standAttrWrapper = new QueryWrapper<>(); + standAttrWrapper.eq("STAND_ID",one.getId()); + + sarStandAttrInfo.setStandId(one.getId()); + sarStandAttrInfoService.update(sarStandAttrInfo,standAttrWrapper); + }else { + sarStandardsInfoService.save(sarStandardsInfo); + String field="ID,STAND_ID,VALID_FLAG,DTBJH,SSRQ"; + String value="\'"+sarStandAttrInfo.getId()+"\'"+","+ "\'"+sarStandAttrInfo.getStandId()+"\'"+","+"\'"+"0"+"\'"; + + + if (sarStandAttrInfo.getDtbjh()!=null){ + value+=","+"\'"+sarStandAttrInfo.getDtbjh()+"\'"; + } + + if (sarStandAttrInfo.getSsrq()!=null){ + value+=","+"\'"+sarStandAttrInfo.getSsrq()+"\'"; + } + sarStandAttrInfoDao.insertStandAttr(field,value); + + + + } }else{ @@ -362,48 +366,48 @@ public class ImportExcelServiceImpl extends ServiceImpl standSaveWrapper = new QueryWrapper<>(); -// standSaveWrapper -// .eq("STAND_SORT",sarStandardsInfo.getStandSort()) -// .eq("STAND_NUMBER",sarStandardsInfo.getStandNumber()) -// .eq("STAND_YEAR",sarStandardsInfo.getStandYear()); -// -// -// SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); -// if (one!=null){ -// sarStandardsInfo.setId(one.getId()); -// sarStandardsInfoService.update(sarStandardsInfo,standSaveWrapper); -// -// QueryWrapper standAttrWrapper = new QueryWrapper<>(); -// standAttrWrapper.eq("STAND_ID",one.getId()); -// sarStandAttrInfo.setStandId(one.getId()); -// sarStandAttrInfoService.update(sarStandAttrInfo,standAttrWrapper); -// }else { -// -// -// sarStandardsInfoService.save(sarStandardsInfo); -// -// -// String field="ID,STAND_ID,VALID_FLAG,DTBJH,SSRQ"; -// String value="\'"+sarStandAttrInfo.getId()+"\'"+","+"\'"+sarStandAttrInfo.getStandId()+"\'"+","+"\'"+"0"+"\'"; -// -// -// if (sarStandAttrInfo.getDtbjh()!=null){ -// value+=","+"\'"+sarStandAttrInfo.getDtbjh()+"\'"; -// } -// -// if (sarStandAttrInfo.getSsrq()!=null){ -// value+=","+"\'"+sarStandAttrInfo.getSsrq()+"\'"; -// } -// sarStandAttrInfoDao.insertStandAttr(field,value); -// -// } + SarStandAttrInfo sarStandAttrInfo = parseImportDtoToStandAttrInfo(item, standID); + + sarStandardsInfo.setValidFlag("0"); + sarStandardsInfo.setStandType("INLAND"); + + + QueryWrapper standSaveWrapper = new QueryWrapper<>(); + standSaveWrapper + .eq("STAND_SORT",sarStandardsInfo.getStandSort()) + .eq("STAND_NUMBER",sarStandardsInfo.getStandNumber()) + .eq("STAND_YEAR",sarStandardsInfo.getStandYear()); + + + SarStandardsInfo one = sarStandardsInfoService.getOne(standSaveWrapper); + if (one!=null){ + sarStandardsInfo.setId(one.getId()); + sarStandardsInfoService.update(sarStandardsInfo,standSaveWrapper); + + QueryWrapper standAttrWrapper = new QueryWrapper<>(); + standAttrWrapper.eq("STAND_ID",one.getId()); + sarStandAttrInfo.setStandId(one.getId()); + sarStandAttrInfoService.update(sarStandAttrInfo,standAttrWrapper); + }else { + + + sarStandardsInfoService.save(sarStandardsInfo); + + + String field="ID,STAND_ID,VALID_FLAG,DTBJH,SSRQ"; + String value="\'"+sarStandAttrInfo.getId()+"\'"+","+"\'"+sarStandAttrInfo.getStandId()+"\'"+","+"\'"+"0"+"\'"; + + + if (sarStandAttrInfo.getDtbjh()!=null){ + value+=","+"\'"+sarStandAttrInfo.getDtbjh()+"\'"; + } + + if (sarStandAttrInfo.getSsrq()!=null){ + value+=","+"\'"+sarStandAttrInfo.getSsrq()+"\'"; + } + sarStandAttrInfoDao.insertStandAttr(field,value); + + } }else { item.setErrorStr("标准号无法解析"); error.add(item); @@ -424,45 +428,39 @@ public class ImportExcelServiceImpl extends ServiceImpl saveWrapper = new QueryWrapper<>(); -// saveWrapper.eq("STAND_CODE", item.getStandId()); -// SarBussionessStand one = sarBussionessStandService.getOne(saveWrapper); -// if (one != null) { -// sarBussionessStand.setId(one.getId()); -// sarBussionessStandService.update(sarBussionessStand, saveWrapper); -// -// QueryWrapper bussAttrWrapper = new QueryWrapper<>(); -// bussAttrWrapper.eq("STAND_ID", one.getId()); -// sarBussStandAttrInfo.setStandId(one.getId()); -// sarBussStandAttrInfoService.update(sarBussStandAttrInfo, bussAttrWrapper); -// sarBussStandAttrInfoDao.updateStandInfo(one.getId(), "GLWJBUSS", sarBussStandAttrInfo.getGlwj()); -// -// } else { -// sarBussionessStandService.save(sarBussionessStand); -// sarBussStandAttrInfoService.save(sarBussStandAttrInfo); -// -// sarBussStandAttrInfoDao.updateStandInfo(sarBussStandAttrInfo.getStandId(), "GLWJBUSS", sarBussStandAttrInfo.getGlwj()); -// } + QueryWrapper saveWrapper = new QueryWrapper<>(); + saveWrapper.eq("STAND_CODE", item.getStandId()); + SarBussionessStand one = sarBussionessStandService.getOne(saveWrapper); + if (one != null) { + sarBussionessStand.setId(one.getId()); + sarBussionessStandService.update(sarBussionessStand, saveWrapper); + + QueryWrapper bussAttrWrapper = new QueryWrapper<>(); + bussAttrWrapper.eq("STAND_ID", one.getId()); + sarBussStandAttrInfo.setStandId(one.getId()); + sarBussStandAttrInfoService.update(sarBussStandAttrInfo, bussAttrWrapper); + sarBussStandAttrInfoDao.updateStandInfo(one.getId(), "GLWJBUSS", sarBussStandAttrInfo.getGlwj()); + + } else { + sarBussionessStandService.save(sarBussionessStand); + sarBussStandAttrInfoService.save(sarBussStandAttrInfo); + + sarBussStandAttrInfoDao.updateStandInfo(sarBussStandAttrInfo.getStandId(), "GLWJBUSS", sarBussStandAttrInfo.getGlwj()); + } } catch (Exception e) { item.setErrorStr("数据格式错误"); error.add(item); - importListMap.replace("error",error); - System.out.println("issueTime====Hello======" + sarBussionessStand.getIssueTime() + "===hello=====" + item); + e.printStackTrace(); } - }else { - item.setErrorStr("标准号无法解析"); - error.add(item); - importListMap.replace("error",error); } }); @@ -472,8 +470,7 @@ public class ImportExcelServiceImpl extends ServiceImpl analysis = analysisStandId(importDto); + if (analysis==null){ + return null; + }else { - System.out.println("id为"+importDto.getStandId()+"格式无法解析"); -// return null; + SarStandardsInfo sarStandardsInfo = new SarStandardsInfo(); + sarStandardsInfo.setId(standId); + + + sarStandardsInfo.setStandSort(analysis.get("sort")); + sarStandardsInfo.setStandNumber(analysis.get("number")); + sarStandardsInfo.setStandYear(analysis.get("year")); + + sarStandardsInfo.setStandName(importDto.getStandName()); + sarStandardsInfo.setStandEnName(importDto.getStandNameEN()); + + String issueDate = importDto.getPublishTime().substring(0, 9); + sarStandardsInfo.setIssueTime(issueDate);//标准发布日期 + + String standStatus = importDto.getStandStatus(); + if ("有效".equals(standStatus)) { + sarStandardsInfo.setTextStatus("vsaga7nwub");//现行有效 + } + + return sarStandardsInfo; } - - SarStandardsInfo sarStandardsInfo = new SarStandardsInfo(); - sarStandardsInfo.setId(standId); - - - sarStandardsInfo.setStandSort(sort); - sarStandardsInfo.setStandNumber(number); - sarStandardsInfo.setStandYear(year); - - sarStandardsInfo.setStandName(importDto.getStandName()); - sarStandardsInfo.setStandEnName(importDto.getStandNameEN()); - sarStandardsInfo.setIssueTime(importDto.getPublishTime());//标准发布日期 - - String standStatus = importDto.getStandStatus(); - if ("有效".equals(standStatus)){ - sarStandardsInfo.setTextStatus("vsaga7nwub");//现行有效 - } - - return sarStandardsInfo; } @@ -531,7 +521,9 @@ public class ImportExcelServiceImpl extends ServiceImpl analysis = analysisStandId(importDto); + if (analysis==null){ return null; + }else { + SarBussionessStand sarBussionessStand = new SarBussionessStand(); + sarBussionessStand.setId(standId); + sarBussionessStand.setStandSort(analysis.get("sort")); + sarBussionessStand.setStandYear(analysis.get("year")); + sarBussionessStand.setStandCode(importDto.getStandId()); + sarBussionessStand.setStandName(importDto.getStandName()); + sarBussionessStand.setStandEnName(importDto.getStandNameEN()); + sarBussionessStand.setIssueTime(importDto.getPublishTime()); + sarBussionessStand.setPutTime(importDto.getImplementedTime()); + sarBussionessStand.setReplacedStandNum(importDto.getReplaceId()); + sarBussionessStand.setValidFlag(0); + if ("有效".equals(importDto.getStandStatus())){ + sarBussionessStand.setTextStatusBuss("vsaga7nwub"); + } + return sarBussionessStand; } - String sort=""; - String number=""; - String year=""; - try { - String[] sortAndNumberAndYear = importDto.getStandId().split("\\s+"); - sort = sortAndNumberAndYear[0]; - String[] numberAndYear = sortAndNumberAndYear[1].split("\\-"); - number=numberAndYear[0]; - year=numberAndYear[1]; - }catch (Exception e){ - System.out.println("id为"+importDto.getStandId()+"格式无法解析"); -// return null; - } - - SarBussionessStand sarBussionessStand = new SarBussionessStand(); - sarBussionessStand.setId(standId); - sarBussionessStand.setStandSort(sort); - sarBussionessStand.setStandYear(year); - sarBussionessStand.setStandCode(importDto.getStandId()); - sarBussionessStand.setStandName(importDto.getStandName()); - sarBussionessStand.setStandEnName(importDto.getStandNameEN()); - sarBussionessStand.setIssueTime(importDto.getPublishTime()); - sarBussionessStand.setPutTime(importDto.getImplementedTime()); - sarBussionessStand.setReplacedStandNum(importDto.getReplaceId()); - sarBussionessStand.setValidFlag(0); - if ("有效".equals(importDto.getStandStatus())){ - sarBussionessStand.setTextStatusBuss("vsaga7nwub"); - } - return sarBussionessStand; } @@ -674,7 +654,7 @@ public class ImportExcelServiceImpl extends ServiceImpl analysisStandId(ImportDto importDto){ + HashMap result = new HashMap<>(); + if(importDto.getStandId()==null){ + importDto.setErrorStr("标准号为空"); + error.add(importDto); + return null; + }else { + String standId = importDto.getStandId(); + //格式 非空格字符+空格+非空格字符+‘-’或‘—’或空格+年份 如Q/FT F003—2001 + Pattern pattern = Pattern.compile("^\\S*\\s\\S*[\\u2014\\u002d\\s]\\d{4}$"); + if (!pattern.matcher(standId).matches()){ + importDto.setErrorStr("标准号无法解析"); + error.add(importDto); + return null; + } + + String sort=""; + String number=""; + String year=""; + String[] split = importDto.getStandId().split("[\\u2014\\u002d\\s]");//以空格或'-'或'—'分割 + +// 多种格式(╯‵□′)╯︵┻━┻ Q-FL T015-2021 Q/ FL T015-2021 Q/FL T015-2021 + int length = split.length; + number=split[length-2]; + year=split[length-1]; + for (int i = 0; i < length-2; i++) { + sort+=split[i]; + } + + result.put("sort",sort); + result.put("number",number); + result.put("year",year); + return result; + } + + + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java index c5939bdb..15092f35 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java @@ -599,6 +599,11 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl Date: Thu, 9 Sep 2021 17:56:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A0=87=E5=87=86=E5=B7=A6=E4=BE=A7?= =?UTF-8?q?=E6=95=B0=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/slrs/sarResource/service/impl/TsResourceServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java index 45327104..d1e8776f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarResource/service/impl/TsResourceServiceImpl.java @@ -291,6 +291,7 @@ public class TsResourceServiceImpl extends ServiceImpl TsResourceQueryWrapper=new QueryWrapper<>(); TsResourceQueryWrapper.eq("PARENT_ID",parent.getId()); TsResourceQueryWrapper.in("ID",getMenuIdList); + TsResourceQueryWrapper.orderByAsc("DISPLAY_SEQ"); List children=dao.selectList(TsResourceQueryWrapper); for(TsResource TsResource:children){ TsResource.setChildren(recursionGetListChildren((TsResource),(getMenuIdList)));