From b04005e136d7de620bb66660cc268f5750ca7b42 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 05 七月 2023 15:35:27 +0800 Subject: [PATCH] 集成接口保存 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 138 insertions(+), 25 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java index ef799e4..620cc28 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java @@ -20,6 +20,11 @@ import com.vci.ubcs.code.vo.webserviceModel.attrmap.*; import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO; import com.vci.ubcs.code.vo.webserviceModel.classify.*; +import com.vci.ubcs.code.vo.webserviceModel.classify.QueryClassifyVO; +import com.vci.ubcs.code.vo.webserviceModel.classify.QueryData; +import com.vci.ubcs.code.vo.webserviceModel.classify.QueryLibraryVO; +import com.vci.ubcs.code.vo.webserviceModel.classify.ResultClassifyVO; +import com.vci.ubcs.code.vo.webserviceModel.coderule.*; import com.vci.ubcs.code.vo.webserviceModel.data.*; import com.vci.ubcs.code.vo.webserviceModel.result.json.*; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultClassfyVO; @@ -48,6 +53,7 @@ import java.util.stream.Collectors; import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; +import static com.vci.ubcs.code.constant.MdmEngineConstant.IMPORT_ROW_INDEX; import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC; /*** @@ -480,17 +486,48 @@ errorid = "101"; throw new Throwable("鎺ュ彛鍙傛暟锛氳处鍙蜂俊鎭幏鍙栧け璐�"); } - if(!CollectionUtils.isEmpty(classifyIdList)){ - //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 - List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, classifyIdList)); - codeClassifyVOS=classifyService.codeClassifyDO2VOs(libIdDos); - }else { - List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, libId)); - String oid= libIdDos.get(0).getOid(); - TreeQueryObject treeQueryObject=new TreeQueryObject(); - treeQueryObject.setParentOid(oid); - treeQueryObject.setQueryAllLevel(true); - codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject); + List<CodeClassify> libIdDos =classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, libId)); + if(CollectionUtils.isEmpty(libIdDos)) { + CodeClassify libCodeClassify =libIdDos.get(0); + String oid=libCodeClassify.getOid(); + if (!CollectionUtils.isEmpty(classifyIdList)) { + //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 + List<CodeClassify> childCodeClassifyList = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, classifyIdList)); + List<CodeClassify>newchildCodeClassifyList=new ArrayList<>(); + if(!CollectionUtils.isEmpty(childCodeClassifyList)) { + Map<String,String> errorMap=new HashMap<>(); + childCodeClassifyList.stream().forEach(codeClassify -> { + CodeClassifyVO toClassifyVO= classifyService.getTopClassifyVO(codeClassify.getOid()); + if(toClassifyVO.getOid().equals(libCodeClassify.getOid())){ + newchildCodeClassifyList.add(codeClassify); + } + }); + Map<String/**鍒嗙被缂栧彿**/, CodeClassify/**鍒嗙被瀵硅薄**/> classifyfCodeMap = newchildCodeClassifyList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); + classifyIdList.stream().forEach(classifyfCode -> { + if(!classifyfCodeMap.containsKey(classifyfCode)) { + errorMap.put("error", errorMap.getOrDefault("error", "") + ";鏍规嵁classCode锛氥��" + classifyfCode + "銆戝湪library:銆�" + libCodeClassify.getId() + "銆戜笅鏈煡璇㈠埌"); + } + }); + if(errorMap.size()>0){ + errorid = "101"; + msg = errorMap.getOrDefault("error",""); + throw new Throwable(msg); + } + codeClassifyVOS = classifyService.codeClassifyDO2VOs(newchildCodeClassifyList); + }else{ + errorid = "101"; + msg = "鎺ュ彛鍙傛暟锛歝lassCode 鏈煡璇㈠埌瀵瑰簲鐨勫垎绫讳俊鎭�"; + throw new Throwable(msg); + } + } else { + TreeQueryObject treeQueryObject = new TreeQueryObject(); + treeQueryObject.setParentOid(oid); + treeQueryObject.setQueryAllLevel(true); + codeClassifyVOS = classifyService.selectCodeClassifyDOByTree(treeQueryObject); + } + }else{ + errorid = "101"; + throw new Throwable("鎺ュ彛鍙傛暟锛氳处鍙蜂俊鎭幏鍙栧け璐�"); } LibraryVO libraryVo=new LibraryVO(); libraryVo.setId(libId); @@ -750,9 +787,9 @@ String systemId=""; log.info("鏌ヨ鍒嗙被鐨勬暟鎹弬鏁�:->"+data); log.info("鏌ヨ鍒嗙被鐨勬暟鎹被鍨�:->"+dataType); - ResultClassifyVO resultClassifyVO =new ResultClassifyVO(); - List<ClassifyVO> classifyVOList=new ArrayList<>(); - ResultData resultData=new ResultData(); + ResultClassifyRuleVO resultClassifyRuleVO =new ResultClassifyRuleVO(); + List<com.vci.ubcs.code.vo.webserviceModel.coderule.ResultClassifyVO> classifyVOList=new ArrayList<>(); + ResultClassifyRuleData resultClassifyRuleData=new ResultClassifyRuleData(); try { if (StringUtils.isBlank(data)) { errorid = "101"; @@ -807,14 +844,89 @@ treeQueryObject.setQueryAllLevel(true); codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject); } - LibraryVO libraryVo=new LibraryVO(); - libraryVo.setId(libId); - libraryVo.setName(""); + ResultLibraryVO resultLibraryVO=new ResultLibraryVO(); + resultLibraryVO.setId(libId); + resultLibraryVO.setName(""); if(!CollectionUtils.isEmpty(codeClassifyVOS)){ errorid = "0"; msg="鎴愬姛!"; codeClassifyVOS.stream().forEach(codeClassifyDO -> { - ClassifyVO classifyVO=new ClassifyVO(); + //鍚庡幓鍖呭惈鐮佹鐨勭紪鐮佽鍒� + CodeRuleVO codeRuleVO= this.engineService.getCodeRuleByClassifyOid(codeClassifyDO.getOid()); + ResultCodeRuleVO resultCodeRuleVO=new ResultCodeRuleVO(); + if(codeRuleVO!=null){ + CodeRuleVO resultClassifyRuleVO1=new CodeRuleVO(); + List<CodeBasicSecVO> codeBasicSecVOS= codeRuleVO.getSecVOList(); + List<CodeSectionVO> codeSectionVOList=new CopyOnWriteArrayList<>(); + if(!CollectionUtils.isEmpty(codeBasicSecVOS)){ + codeBasicSecVOS.stream().forEach(codeBasicSecVO -> { + List<CodeSectionValueVO> codeSectionValueVOList=new ArrayList<>(); + String secType= codeBasicSecVO.getSecType(); + if(secType.equals("codevariablesec")){//鍙彉鐮佹 + CodeSectionValueVO sectionValueVO=new CodeSectionValueVO("","","","",""); + codeSectionValueVOList.add(sectionValueVO); + }else if(secType.equals("codefixedsec")){//鍥哄畾鐮佹 + List<CodeFixedValueVO> fixedValueVOList=codeBasicSecVO.getFixedValueVOList(); + fixedValueVOList.stream().forEach(codeFixedValueVO -> { + CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(codeFixedValueVO.getOid(),codeFixedValueVO.getOrderNum()+"",codeFixedValueVO.getId(),codeFixedValueVO.getName(),codeFixedValueVO.getDescription()); + codeSectionValueVOList.add(sectionValueVO); + }); + }else if(secType.equals("codeclassifysec")){//鍒嗙被鐮佹 + String secOid=codeBasicSecVO.getOid(); + String parentClassifySecOid= codeBasicSecVO.getParentClassifySecOid(); + List<CodeClassifyValueVO> codeClassifyValueVOS= this.codeClassifyValueService.listCodeClassifyValueBySecOid(secOid,parentClassifySecOid); + if(CollectionUtils.isEmpty(codeClassifyValueVOS)){ + codeClassifyValueVOS.stream().forEach(codeClassifyValueVO -> { + CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(codeClassifyValueVO.getOid(),codeClassifyValueVO.getOrderNum()+"",codeClassifyValueVO.getId(),codeClassifyValueVO.getName(),codeClassifyValueVO.getDescription()); + }); + } + }else if(secType.equals("codedatesec")){//鏃ユ湡鐮佹 + + }else if(secType.equals("coderefersec")){//寮曠敤鐮佹 + + }else if(secType.equals("codelevelsec")) {//灞傜骇鐮佹 + int level = codeBasicSecVO.getCodeLevelValue(); + CodeClassifyVO levelCodeClassifyVO = new CodeClassifyVO(); + CodeClassifyFullInfoBO classifyFullInfoBO = this.classifyService.getClassifyFullInfo(codeClassifyDO.getOid()); + if(codeBasicSecVO.getCodeLevelType().equals("code_level_special")){//鎸囧畾灞傜骇 + List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList()); + if (classifyVOS.size() >= level && level > 0) { + levelCodeClassifyVO = classifyVOS.get(level - 1); + } + }else{//鏈�灏忓眰 + levelCodeClassifyVO=codeClassifyDO; + } + CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(levelCodeClassifyVO.getOid(),"0",levelCodeClassifyVO.getId(),codeBasicSecVO.getName(),codeBasicSecVO.getDescription()); + codeSectionValueVOList.add(sectionValueVO); + }else if(secType.equals("codeattrsec")){//灞炴�х爜娈� + + }else if(secType.equals("codeserialsec")){//娴佹按鐮佹 + + } + //鏋勫缓瑙勫垯鐮佹 + CodeSectionVO codeSectionVO=new CodeSectionVO(); + codeSectionVO.setId(codeBasicSecVO.getOid());//涓婚敭 + codeSectionVO.setName(codeBasicSecVO.getName());//鐮佹鍚嶇О + codeSectionVO.setCodeSecLength(codeBasicSecVO.getCodeSecLength());//鐮佹闀垮害 + codeSectionVO.setNum(codeBasicSecVO.getId());//鐮佹缂栧彿 + codeSectionVO.setCodeDateFormatStr(codeBasicSecVO.getCodeDateFormatStr());//鏃ユ湡绫诲瀷 + codeSectionVO.setCodeSecLengthType(codeBasicSecVO.getCodeSecLengthType());//鐮佹闀垮害绫诲瀷 + codeSectionVO.setPkCodeRule(codeRuleVO.getOid()); + codeSectionVO.setSecType(codeBasicSecVO.getSecType());//鐮佹绫诲瀷 + codeSectionVO.setDescription(codeBasicSecVO.getDescription()); + codeSectionVO.setParentClassifySecOid(codeBasicSecVO.getParentClassifySecOid()); + codeSectionVO.setSectionValue(codeSectionValueVOList); + codeSectionVOList.add(codeSectionVO); + }); + } + //鏋勫缓瑙勫垯淇℃伅 + resultCodeRuleVO.setId(codeRuleVO.getOid()); + resultCodeRuleVO.setNum(codeRuleVO.getId()); + resultCodeRuleVO.setDescription(codeRuleVO.getDescription()); + resultCodeRuleVO.setCodeSection(codeSectionVOList); + } + //鏋勫缓鍒嗙被淇℃伅 + com.vci.ubcs.code.vo.webserviceModel.coderule.ResultClassifyVO classifyVO=new com.vci.ubcs.code.vo.webserviceModel.coderule.ResultClassifyVO(); classifyVO.setId(codeClassifyDO.getOid()); classifyVO.setLcStatus(codeClassifyDO.getLcStatus()); classifyVO.setClassCode(codeClassifyDO.getId()); @@ -822,32 +934,33 @@ classifyVO.setName(codeClassifyDO.getName()); classifyVO.setPid(codeClassifyDO.getParentcodeclassifyoid()); classifyVO.setFullPathName(codeClassifyDO.getPath()); + classifyVO.setCodeRule(resultCodeRuleVO); classifyVOList.add(classifyVO); }); - libraryVo.setClassify(classifyVOList); + resultLibraryVO.setClassify(classifyVOList); }else{ errorid = "100"; msg="鏈煡璇㈠埌鐩稿叧鐨勫垎绫讳俊鎭�"; } issucess=true; - resultData.setLibrary(libraryVo); + resultClassifyRuleData.setLibrary(resultLibraryVO); }catch (Throwable e){ e.printStackTrace();; msg="鏌ヨ鍒嗙被澶辫触:"+e.getMessage(); }finally { - resultData.setErrorid(errorid); - resultData.setMsg(msg); - resultClassifyVO.setResultData(resultData); + resultClassifyRuleData.setErrorid(errorid); + resultClassifyRuleData.setMsg(msg); + resultClassifyRuleVO.setData(resultClassifyRuleData); } if(dataType.equals("xml")){ //缁勭粐杩斿洖鎺ュ彛淇℃伅 XStream xStream = new XStream(new DomDriver()); xStream.processAnnotations(XMLResultSystemVO.class); xStream.autodetectAnnotations(true); - resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultData); + resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultClassifyRuleData); }else{ - Object object = JSONObject.toJSON(resultClassifyVO); + Object object = JSONObject.toJSON(resultClassifyRuleVO); resultStr = object.toString(); } try { -- Gitblit v1.9.3