| | |
| | | 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; |
| | |
| | | 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(); |
| | |
| | | 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); |
| | |
| | | msg = "接口参数:classCode 未查询到对应的分类信息"; |
| | | 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(); |
| | |
| | | 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)){ |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | 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; |
| | | } |
| | |
| | | * @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; |
| | | } |
| | |
| | | * @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); |
| | | DockingSystemConfig dockingSystemConfig=null; |
| | | CodeClassifyVO codeClassifyVO= classifyService.getObjectByOid(classOid); |
| | | classOid=codeClassifyVO.getOid(); |
| | | //根据类型去查询需要集成的分类或者数据 |
| | |
| | | dockingSystemConfig=dockingSystemConfigList.get(0); |
| | | }else{ |
| | | if(StringUtils.isNotBlank(codeClassifyVO.getParentCodeClassifyOid())) { |
| | | checkIspass(systemId, type, operationType, codeClassifyVO.getOid()); |
| | | checkIspass(systemId, type, operationType, codeClassifyVO.getParentCodeClassifyOid()); |
| | | } |
| | | } |
| | | return dockingSystemConfig; |