From db5ed49b5473b63bf08c4e0c7ffa752ed35a3a95 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 30 八月 2023 18:46:02 +0800 Subject: [PATCH] 关于接口配置管理模块更改/统一接口涉及集团码申请功能需求bug修复 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 136 ++++++++++++++++++++++++++++----------------- 1 files changed, 84 insertions(+), 52 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 7bb2496..e3a1fe8 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 @@ -213,7 +213,8 @@ String operation=""; if(CODE_CHECKCONFIG) { //鏍¢獙鏄惁閰嶇疆 - DockingSystemConfig dockingSystemConfig= checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue(),codeClassifyVO.getOid()); + DockingSystemConfig dockingSystemConfig=null; + 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()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒"); @@ -433,12 +434,26 @@ mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode); 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(); @@ -712,15 +727,15 @@ throw new Throwable(msg); } - //鏍¢獙鏄惁閰嶇疆 + /* //鏍¢獙鏄惁閰嶇疆 boolean checkPass = checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getValue()); if (!checkPass) { errorid = "101"; throw new Throwable("绯荤粺鏍囪瘑涓恒��" + systemId + "銆�," + sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getText() + "鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒"); } - + */ //鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎 - + boolean isCodeOrGroupCode=false; List<CodeClassify> libIdDos =classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId,library)); if(!CollectionUtils.isEmpty(libIdDos)){ CodeClassify libCodeClassify=libIdDos.get(0); @@ -738,6 +753,17 @@ msg = "鎺ュ彛鍙傛暟锛歝lassCode 鏈煡璇㈠埌瀵瑰簲鐨勫垎绫讳俊鎭�"; throw new Throwable(msg); } + + String operation=""; + if(CODE_CHECKCONFIG) { + //鏍¢獙鏄惁閰嶇疆 + DockingSystemConfig dockingSystemConfig= checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getValue(),currentCodeClassify[0].getOid()); + if(dockingSystemConfig==null){ + errorid ="101"; + throw new Throwable("绯荤粺鏍囪瘑涓恒��"+ systemId +"銆戯紝闆嗘垚鍒嗙被涓恒��"+currentCodeClassify[0].getName()+"銆戜互涓婂垎绫伙紝"+sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getText()+"鎺ュ彛閰嶇疆宸插仠鐢ㄦ垨鑰呮湭閰嶇疆锛岃鑱旂郴缂栫爜绠$悊鍛橈紒"); + } + isCodeOrGroupCode="true".equals(dockingSystemConfig.getIsGroupCodeFlag())?true:false; + } List<CodeClassifyVO> dataCodeClassifyVOList =new ArrayList<>(); String oid= currentCodeClassify[0].getOid(); TreeQueryObject treeQueryObject=new TreeQueryObject(); @@ -748,52 +774,55 @@ 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()); - statusList.add(CodeDefaultLC.TASK_BACK.getValue()); - R<BtmTypeVO> r= btmTypeClient.getDetail(libCodeClassify.getBtmTypeId()); - BtmTypeVO btmTypeVO =r.getData(); - String tableName=btmTypeVO.getTableName(); - + String tableName=""; + R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(libCodeClassify.getBtmTypeId()); + if(!r.isSuccess()) { + throw new Throwable(r.getMsg()); + } + BtmTypeVO btmTypeVO = r.getData(); + if (btmTypeVO == null) { + throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷瀵硅薄锛�"); + } + tableName = btmTypeVO.getTableName(); + if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) { + throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷鐩稿叧鑱旂殑琛�"); + } StringBuffer sb=new StringBuffer(); sb.append(" select * from "); sb.append(tableName); sb.append(" where 1=1"); - propertyVOS.stream().forEach(propertyVO -> { - sb.append( " and "+propertyVO.getFiledName()+"='"+propertyVO.getFiledValue()+"'"); - }); + if(isCodeOrGroupCode){ + sb.append(" and groupcode is not null "); + } + + if(!CollectionUtils.isEmpty(propertyVOS)) { + propertyVOS.stream().forEach(propertyVO -> { + sb.append(" and " + propertyVO.getFiledName() + "='" + propertyVO.getFiledValue() + "'"); + }); + } sb.append(" and lastr=1 and lastv=1" ); sb.append(" and codeclsfid in (" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) +")"); sb.append(" and Lcstatus in (" + VciBaseUtil.toInSql(statusList.toArray(new String[]{})) +")"); List<Map<String,String>> newDataList= commonsMapper.queryByOnlySqlForMap(sb.toString()); - List<ClientBusinessObject>clientBusinessObjects=new ArrayList<>(); - newDataList.stream().forEach(stringStringMap -> { - ClientBusinessObject clientBusinessObject=new ClientBusinessObject(); - DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,clientBusinessObject); - clientBusinessObjects.add(clientBusinessObject); - }); - + List<ClientBusinessObject> clientBusinessObjects= ChangeMapTOClientBusinessObjects(newDataList); List<com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO> dataObjectVOS=new ArrayList<>(); if(!CollectionUtils.isEmpty(clientBusinessObjects)){ CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(currentCodeClassify[0].getOid()); - Map<String, CodeClassifyTemplateAttrVO> filedAttributeMap = templateVO.getAttributes().stream().filter(attribute -> attribute != null && StringUtils.isNotBlank(attribute.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); - + Map<String, CodeClassifyTemplateAttrVO> filedAttributeMap = templateVO.getAttributes().stream().filter(attribute -> attribute != null && StringUtils.isNotBlank(attribute.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); + boolean finalIsCodeOrGroupCode = isCodeOrGroupCode; clientBusinessObjects.stream().forEach(cbo -> { com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO dataObjectVO=new com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO(); - dataObjectVO.setCode(cbo.getId()); + String code=""; + if(finalIsCodeOrGroupCode){ + code= cbo.getAttributeValue("groupcode"); + }else { + code=cbo.getId(); + } + dataObjectVO.setCode(code); dataObjectVO.setStatus(cbo.getLcStatus()); String codeclsfid=cbo.getAttributeValue("codeclsfid"); if(oidCodeclassifyDOMap.containsKey(codeclsfid)){ @@ -804,9 +833,9 @@ String [] newQueryFileds=queryFileds.split(","); List<PropertyVO> propertyVOList=new ArrayList<>(); for(String filed:newQueryFileds){ - String value=cbo.getAttributeValue(filed); - if(filedAttributeMap.containsKey(filed)){ - CodeClassifyTemplateAttrVO attrVO= filedAttributeMap.get(filed); + if(filedAttributeMap.containsKey(filed.toLowerCase(Locale.ROOT))){ + String value=cbo.getAttributeValue(filed); + CodeClassifyTemplateAttrVO attrVO= filedAttributeMap.get(filed.toLowerCase(Locale.ROOT)); PropertyVO propertyVO=new PropertyVO(); propertyVO.setFiledName(filed); propertyVO.setFiledValue(value); @@ -1354,13 +1383,15 @@ } private List<ClientBusinessObject> ChangeMapTOClientBusinessObjects(List<Map<String,String>> oldDataMap){ - List<ClientBusinessObject> clientBusinessObjectList=new CopyOnWriteArrayList<>(); - oldDataMap.parallelStream().forEach(dataMap->{ + List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>(); + oldDataMap.stream().forEach(dataMap->{ ClientBusinessObject clientBusinessObject=new ClientBusinessObject(); DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject); - dataMap.forEach((key,value)->{ - clientBusinessObject.setAttributeValue(key,value); - }); + for (String key:dataMap.keySet()){ + Object value= dataMap.getOrDefault(key,""); + clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString()); + } + clientBusinessObjectList.add(clientBusinessObject); }); return clientBusinessObjectList; } @@ -1625,6 +1656,7 @@ * @return */ private boolean checkIspass(String systemId,String type,String operationType){ + log.info("systemId锛�"+systemId+",type:"+SysIntegrationDataFlowTypeEnum.getTextByValue(type)+",operationType:"+sysIntegrationPushTypeEnum.getTextByValue(operationType)); if(!CODE_CHECKCONFIG) { return true; } @@ -1645,7 +1677,7 @@ * @return */ private DockingSystemConfig checkIspass(String systemId,String type,String operationType,String classOid){ - DockingSystemConfig dockingSystemConfig=new DockingSystemConfig(); + log.info("systemId锛�"+systemId+",type:"+SysIntegrationDataFlowTypeEnum.getTextByValue(type)+",operationType:"+sysIntegrationPushTypeEnum.getTextByValue(operationType)+",classOid:"+classOid); CodeClassifyVO codeClassifyVO= classifyService.getObjectByOid(classOid); classOid=codeClassifyVO.getOid(); //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹� @@ -1655,16 +1687,16 @@ queryWrapper.eq(DockingSystemConfig::getDataFlowType,type); queryWrapper.eq(DockingSystemConfig::getPushType,operationType); if(StringUtils.isNotBlank(classOid)){ - queryWrapper.in(DockingSystemConfig::getClassifyId,classOid); + queryWrapper.in(DockingSystemConfig::getClassifyOid,classOid); } List<DockingSystemConfig> dockingSystemConfigList= dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper); if(!CollectionUtils.isEmpty(dockingSystemConfigList)){ - dockingSystemConfig=dockingSystemConfigList.get(0); + return dockingSystemConfigList.get(0); }else{ if(StringUtils.isNotBlank(codeClassifyVO.getParentCodeClassifyOid())) { - checkIspass(systemId, type, operationType, codeClassifyVO.getOid()); + return checkIspass(systemId, type, operationType, codeClassifyVO.getParentCodeClassifyOid()); } } - return dockingSystemConfig; + return dockingSystemConfigList.get(0); } } -- Gitblit v1.9.3