From 5abd278b2f0a896e97532a99cef735cee9593565 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 29 八月 2023 19:21:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 165 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 111 insertions(+), 54 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 d62a822..d6f327b 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 @@ -27,6 +27,7 @@ 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.data.ResultDataVO; import com.vci.ubcs.code.vo.webserviceModel.result.json.*; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultClassfyVO; import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO; @@ -58,7 +59,8 @@ import javax.annotation.Resource; import java.util.*; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; @@ -128,6 +130,7 @@ @Autowired private ICodeClassifyValueService codeClassifyValueService; + /*** * 闆嗘垚鎺ュ彛鏃ュ織鏈嶅姟鐨勯厤缃� */ @@ -149,7 +152,7 @@ @Override public String applyCode(String data, String dataType) throws Throwable { String resultStr = ""; - String errorid="0"; + final String[] errorid = {"0"}; msg="鎴愬姛"; objerrorCode="0"; objerrorMsg="鎴愬姛"; @@ -159,7 +162,7 @@ List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>(); try { if(StringUtils.isBlank(data)) { - errorid="101"; + errorid[0] ="101"; throw new Throwable("鎺ュ彛鍙傛暟锛氫紶閫掍负绌�"); } InterParameterVO interParameterVO =new InterParameterVO(); @@ -175,17 +178,11 @@ interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class); } }catch (Throwable e){ - errorid="101"; + errorid[0] ="101"; throw new Throwable("鎺ュ彛鍙傛暟锛氫紶鍏ユ暟鎹弬鏁拌В鏋愬け璐�"); } ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); systemId = interParameterVO.getData().getSystemId(); - //鏍¢獙鏄惁閰嶇疆 - boolean checkPass= checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue()); - if(!checkPass){ - errorid="101"; - throw new Throwable("绯荤粺鏍囪瘑涓恒��"+systemId+"銆�,"+sysIntegrationPushTypeEnum.ACCPET_APPCODE.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒"); - } UserVO userVo = interParameterVO.getData().getUser(); List<ClassfyVO> classVOList = classfysVO.getClassify(); InterParameterVO finalInterParameterVO = interParameterVO; @@ -196,20 +193,32 @@ sessionInfo.setUserName(userVo.getTrueName()); sessionInfo.setIp(userVo.getIp()); VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); - +// List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>(); String finalSystemId = systemId; classVOList.stream().forEach(classVO -> { log.info("鍙傛暟锛氬垎绫籆Ode:" + classVO.getClassCode()); + boolean isCodeOrGroupCode=false; LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); + String libray =""; //鑾峰彇鍒嗙被淇℃伅 try { - String libray = classVO.getLibrary(); - CodeClassifyVO codeClassifyVO = getClassfy(classVO); + libray = classVO.getLibrary(); + CodeClassifyVO codeClassifyVO = getClassfy(classVO,libray); log.info("end锛氬垎绫绘煡璇㈠畬姣�"); //鑾峰彇鍒嗙被妯℃澘淇℃伅 if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ objerrorCode="100"; throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧埌鍒嗙被淇℃伅"); + } + String operation=""; + if(CODE_CHECKCONFIG) { + //鏍¢獙鏄惁閰嶇疆 + DockingSystemConfig dockingSystemConfig= checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue(),codeClassifyVO.getOid()); + if(dockingSystemConfig==null){ + errorid[0] ="101"; + throw new Throwable("绯荤粺鏍囪瘑涓恒��"+ finalSystemId +"銆戯紝闆嗘垚鍒嗙被涓恒��"+codeClassifyVO.getName()+"銆戜互涓婂垎绫伙紝"+sysIntegrationPushTypeEnum.ACCPET_APPCODE.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒"); + } + isCodeOrGroupCode="true".equals(dockingSystemConfig.getIsGroupCodeFlag())?true:false; } CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ @@ -241,15 +250,30 @@ CodeOrderDTO orderDTO = new CodeOrderDTO(); orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭 orderDTO.setSecDTOList(codeOrderSecDTOList);//鍒嗙被鐮佹 - mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs); + mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode); + //allResultDataObjectDetailDOS.add(resultDataObjectDetailDOs); log.info("end锛氱敵璇疯幏鍙栧畬姣�"); } catch (Throwable e) { - XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); - xmlResultDataObjectDetailDO.setCode(""); - xmlResultDataObjectDetailDO.setId(""); - xmlResultDataObjectDetailDO.setErrorid(objerrorCode); - xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:"+e.getMessage()); - resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); + List<ApplyDataVO> applyDataVOList= classVO.getObjects().getObject(); + objerrorCode="1"; + if(!CollectionUtils.isEmpty(applyDataVOList)) { + applyDataVOList.stream().forEach(applyDataVO -> { + XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); + xmlResultDataObjectDetailDO.setCode(""); + xmlResultDataObjectDetailDO.setId(applyDataVO.getId()); + xmlResultDataObjectDetailDO.setErrorid(objerrorCode); + xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:" + e.getMessage()); + resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); + }); + }else{ + + XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); + xmlResultDataObjectDetailDO.setCode(""); + xmlResultDataObjectDetailDO.setId(""); + xmlResultDataObjectDetailDO.setErrorid(objerrorCode); + xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:" + e.getMessage()); + resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); + } e.printStackTrace(); }finally { XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO(); @@ -260,13 +284,14 @@ resultClassfyVOList.add(resultClassfyVO); } }); + XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); xmlResultSystemVO.setClassifys(resultClassfyVOList); xmlResultSystemVO.setMsg(msg); - xmlResultSystemVO.setErrorid(errorid); + xmlResultSystemVO.setErrorid(errorid[0]); resultStr= transferResultXMl(xmlResultSystemVO,dataType); }catch (Throwable e){ - e.printStackTrace();; + e.printStackTrace(); msg="鐢宠缂栫爜澶辫触:"+e.getMessage(); /* XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO(); XMLResultSystemVO.setErrorid(errorid); @@ -280,10 +305,10 @@ XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); xmlResultSystemVO.setClassifys(resultClassfyVOList); xmlResultSystemVO.setMsg(msg); - xmlResultSystemVO.setErrorid(errorid); + xmlResultSystemVO.setErrorid(errorid[0]); resultStr= transferResultXMl(xmlResultSystemVO,dataType); final boolean[] issucess = {true}; - if(!errorid.equals("0")) { + if(!errorid[0].equals("0")) { issucess[0] = false; }else { if(!CollectionUtils.isEmpty(resultClassfyVOList)) { @@ -306,9 +331,10 @@ } } log.info("杩斿洖鍙傛暟:"+resultStr); - + //璋冪敤闆嗗洟鐢宠鎺ュ彛鐢宠闆嗗洟鐮� return resultStr; } + /*** * 缁熶竴鏇存柊鎺ュ彛锛堟洿鏀圭姸鎬侊紝鏇存敼灞炴�т俊鎭級鎺ュ彛 @@ -353,13 +379,6 @@ } ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); systemId = interParameterVO.getData().getSystemId(); - - //鏍¢獙鏄惁閰嶇疆 - boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue()); - if (!checkPass) { - errorid = "101"; - throw new Throwable("绯荤粺鏍囪瘑涓恒��" + systemId + "銆�," + sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getText() + "鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒"); - } UserVO userVo = interParameterVO.getData().getUser(); List<ClassfyVO> classVOList = classfysVO.getClassify(); InterParameterVO finalInterParameterVO = interParameterVO; @@ -372,16 +391,30 @@ String finalSystemId = systemId; classVOList.stream().forEach(classVO->{ log.info("鍙傛暟锛氬垎绫籆Ode:" + classVO.getClassCode()); + boolean isCodeOrGroupCode=false; LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); + String libray =""; //鑾峰彇鍒嗙被淇℃伅 try { - String libray = classVO.getLibrary(); - CodeClassifyVO codeClassifyVO = getClassfy(classVO); + libray = classVO.getLibrary(); + CodeClassifyVO codeClassifyVO = getClassfy(classVO,libray); if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ objerrorCode="100"; throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧埌鍒嗙被淇℃伅"); } log.info("end锛氬垎绫绘煡璇㈠畬姣�"); + + String operation=""; + if(CODE_CHECKCONFIG) { + //鏍¢獙鏄惁閰嶇疆 + DockingSystemConfig dockingSystemConfig= checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue(),codeClassifyVO.getOid()); + if(dockingSystemConfig==null){ + objerrorCode ="101"; + throw new Throwable("绯荤粺鏍囪瘑涓恒��"+ finalSystemId +"銆戯紝闆嗘垚鍒嗙被涓恒��"+codeClassifyVO.getName()+"銆戜互涓婂垎绫伙紝"+sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒"); + } + isCodeOrGroupCode="true".equals(dockingSystemConfig.getIsGroupCodeFlag())?true:false; + } + //鑾峰彇鍒嗙被妯℃澘淇℃伅 CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ @@ -397,7 +430,7 @@ this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO); log.info("end锛氭暟鎹瀯寤哄畬姣�"); log.info("start锛氫慨鏀规暟鎹墽琛屽畬姣�"); - mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs); + mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode); log.info("end锛氫慨鏀规暟鎹墽琛屽畬姣�"); } catch (Throwable e) { XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); @@ -415,7 +448,6 @@ resultClassfyVO.setObjects(resultDataObjectDetailDOs); resultClassfyVOList.add(resultClassfyVO); } - }); }catch (Throwable e){ e.printStackTrace();; @@ -716,18 +748,6 @@ Map<String, CodeClassifyVO> oidCodeclassifyDOMap = dataCodeClassifyVOList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); List<PropertyVO> propertyVOS=condtionVO.getPro(); - /*Map<String,String> condtionMap=new HashMap<>(); - propertyVOS.stream().forEach(propertyVO -> { - condtionMap.put(propertyVO.getFiledName(),propertyVO.getFiledValue()); - }); - condtionMap.put("codeclsfid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) + ")"); - List<String>statusList=new ArrayList<>(); - statusList.add(CodeDefaultLC.RELEASED.getValue()); - statusList.add(CodeDefaultLC.DISABLE.getValue()); - statusList.add(CodeDefaultLC.TASK_BACK.getValue()); - condtionMap.put("Lcstatus", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(statusList.toArray(new String[]{})) + ")" ); - condtionMap.put("islastr", "1"); - condtionMap.put("islastv", "1");*/ List<String>statusList=new ArrayList<>(); statusList.add(CodeDefaultLC.RELEASED.getValue()); statusList.add(CodeDefaultLC.DISABLE.getValue()); @@ -1282,7 +1302,7 @@ * 鏌ヨ鏍¢獙鍒嗙被淇℃伅 * @param classfyVO */ - private CodeClassifyVO getClassfy(ClassfyVO classfyVO) throws Throwable{ + private CodeClassifyVO getClassfy(ClassfyVO classfyVO,String libray) throws Throwable{ CodeClassifyVO classifyVO = new CodeClassifyVO(); try { String classCode = classfyVO.getClassCode(); @@ -1291,13 +1311,19 @@ if (StringUtils.isNotBlank(classfyVO.getClassCode())) { Map<String, String> conditionMap = new HashMap<>(); List<CodeClassify> codeClassifyList = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, classCode)); + final CodeClassify[] newCodeClassify = {new CodeClassify()}; if (!CollectionUtils.isEmpty(codeClassifyList)) { - CodeClassify classifyDO = codeClassifyList.get(0); - //灏咲TO杞崲涓篋O + codeClassifyList.stream().forEach(codeClassify -> { + CodeClassifyVO codeClassifyVO= classifyService.getTopClassifyVO(codeClassify.getOid()); + if(codeClassifyVO.getId().equals(libray)){ + newCodeClassify[0] =codeClassify; + } + }); classifyVO = new CodeClassifyVO(); - BeanUtilForVCI.copyPropertiesIgnoreCase(classifyDO, classifyVO); + BeanUtilForVCI.copyPropertiesIgnoreCase(newCodeClassify[0], classifyVO); + //灏咲TO杞崲涓篋O if(StringUtils.isBlank(classifyVO.getOid())){ - throw new Throwable("鏍规嵁鍒嗙被浠e彿鏈煡璇㈠埌鐩稿簲鐨勫垎绫讳俊鎭�"); + throw new Throwable("鐢宠缂栫爜鐨勫垎绫伙細銆�"+classCode+"銆戜笉灞炰簬搴撹妭鐐广��"+libray+"銆戯紝璇锋鏌ュ弬鏁板垎绫昏妭鐐�/搴撹妭鐐逛俊鎭槸鍚﹀尮閰�"); } }else{ throw new Throwable("鏍规嵁鍒嗙被浠e彿鏈煡璇㈠埌鐩稿簲鐨勫垎绫讳俊鎭�"); @@ -1310,7 +1336,7 @@ } }catch (Throwable e){ objerrorCode="100"; - new Throwable("鑾峰彇鍒嗙被淇℃伅澶辫触:"+e.getMessage()); + throw new Throwable("鑾峰彇鍒嗙被淇℃伅澶辫触:"+e.getMessage()); } return classifyVO; } @@ -1598,4 +1624,35 @@ queryWrapper.eq(DockingSystemConfig::getPushType,operationType); return dockingSystemConfigService.count(queryWrapper)>0?true:false; } + + /*** + * 鏍¢獙鏄惁鍋氫簡閰嶇疆 + * @param systemId,绯荤粺鏍囪瘑 + * @param type:鎺ュ彛绫诲瀷 + * @param operationType:鎺ュ彛鎿嶄綔绫诲瀷 + * @return + */ + private DockingSystemConfig checkIspass(String systemId,String type,String operationType,String classOid){ + DockingSystemConfig dockingSystemConfig=new DockingSystemConfig(); + CodeClassifyVO codeClassifyVO= classifyService.getObjectByOid(classOid); + classOid=codeClassifyVO.getOid(); + //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹� + LambdaQueryWrapper<DockingSystemConfig> queryWrapper = Wrappers.<DockingSystemConfig>lambdaQuery(); + queryWrapper.eq(DockingSystemConfig::getUsedFlag, MdmDuckingConstant.SEND_FLAG_TRUE); + queryWrapper.eq(DockingSystemConfig::getSysBaseId,systemId); + queryWrapper.eq(DockingSystemConfig::getDataFlowType,type); + queryWrapper.eq(DockingSystemConfig::getPushType,operationType); + if(StringUtils.isNotBlank(classOid)){ + queryWrapper.in(DockingSystemConfig::getClassifyId,classOid); + } + List<DockingSystemConfig> dockingSystemConfigList= dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper); + if(!CollectionUtils.isEmpty(dockingSystemConfigList)){ + dockingSystemConfig=dockingSystemConfigList.get(0); + }else{ + if(StringUtils.isNotBlank(codeClassifyVO.getParentCodeClassifyOid())) { + checkIspass(systemId, type, operationType, codeClassifyVO.getOid()); + } + } + return dockingSystemConfig; + } } -- Gitblit v1.9.3