Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
@@ -40,8 +40,8 @@ /** * nacos dev 地址 */ String NACOS_DEV_ADDR = "dev.vci-tech.com:38848"; //String NACOS_DEV_ADDR = "localhost:8848"; //String NACOS_DEV_ADDR = "dev.vci-tech.com:38848"; String NACOS_DEV_ADDR = "localhost:8848"; /** * nacos prod 地址 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/attrmap/appcode.xml
@@ -9,11 +9,14 @@ <objects> <object code="" id="0023401" status="Editing" operate="create" creator="weidy" > <prop key="name" text="名称" value="温度调节器2333"/> <prop key="use" text="规格" value="GB-002599"/> <prop key="xinghaoguige" text="型号规格" value="GB-002599"/> <prop key="tuhao" text="图号" value="TH-002599"/> </object> <object code="" id="0023402" status="Editing" operate="create" creator="weidy"> <prop key="name" text="所属结构" value="温度调节器"/> <prop key="use" text="规格" value="GB-00257"/> <prop key="xinghaoguige" text="型号规格" value="GB-00257"/> <prop key="tuhao" text="图号" value="TH-00257"/> </object> </objects> </classify> @@ -24,13 +27,15 @@ <objects> <object code="" id="0023403" status="Editing" operate="create" creator="weidy"> <prop key="name" text="名称" value="温度调节器2"/> <prop key="use" text="规格" value="GB-00255"/> <prop key="xinghaoguige" text="型号规格" value="GB-00255"/> <prop key="tuhao" text="图号" value="TH-00255"/> </object> <object code="" id="0023404" status="Editing" operate="create" creator="weidy"> <prop key="name" text="所属结构" value="qwqw"/> <prop key="use" text="规格" value="GB-0026"/> <prop key="xinghaoguige" text="型号规格" value="GB-0026"/> <prop key="tuhao" text="图号" value="TH-0026"/> </object> </objects> </classify> </classifys> </data> </data> Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
@@ -99,16 +99,22 @@ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); baseModel.setOid(dataMap.getOrDefault("OID","")); Object createTimeObj=dataMap.getOrDefault("CREATETIME",""); String createTime= createTimeObj.toString(); baseModel.setCreateTime(chageStringToDate(createTime)); if(createTimeObj!=null) { String createTime = createTimeObj.toString(); baseModel.setCreateTime(chageStringToDate(createTime)); } baseModel.setNameOid(dataMap.getOrDefault("NAMEOID","")); Object lastModifyTimeObj=dataMap.getOrDefault("LASTMODIFYTIME",""); String lastModifyTime= lastModifyTimeObj.toString(); baseModel.setLastModifyTime(chageStringToDate(lastModifyTime)); if(lastModifyTimeObj!=null) { String lastModifyTime = lastModifyTimeObj.toString(); baseModel.setLastModifyTime(chageStringToDate(lastModifyTime)); } Object tsObj=dataMap.getOrDefault("TS",""); String ts= tsObj.toString(); baseModel.setTs(chageStringToDate(ts)); if(tsObj!=null) { String ts = tsObj.toString(); baseModel.setTs(chageStringToDate(ts)); } baseModel.setRevisionOid(dataMap.getOrDefault("REVISIONOID","")); //用户id String userId = AuthUtil.getUserId().toString(); @@ -118,9 +124,18 @@ baseModel.setFirstV(dataMap.getOrDefault("FIRSTV","")); baseModel.setLastR(dataMap.getOrDefault("LASTR","")); baseModel.setLastV(dataMap.getOrDefault("LASTV","")); baseModel.setRevisionSeq(chageStringToInt(dataMap.getOrDefault("REVISIONSEQ",""))); Object revisionseq =dataMap.getOrDefault("REVISIONSEQ",""); if(revisionseq!=null){ BigDecimal b=(BigDecimal)revisionseq; baseModel.setRevisionSeq(chageStringToInt(b.toString())); } baseModel.setOwner(dataMap.getOrDefault("OWNER","")); baseModel.setVersionSeq(chageStringToInt(dataMap.getOrDefault("VERSIONSEQ",""))); Object versionseq =dataMap.getOrDefault("VERSIONSEQ",""); if(versionseq!=null){ BigDecimal b=(BigDecimal)versionseq; baseModel.setVersionSeq(chageStringToInt(b.toString())); } baseModel.setVersionRule(dataMap.getOrDefault("VERSIONRULE","")); baseModel.setVersionValue(dataMap.getOrDefault("VERSIONVALUE","")); baseModel.setRevisionOid(dataMap.getOrDefault("REVISIONOID","")); Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java
@@ -110,5 +110,5 @@ * @param resultDataObjectDetailDOs 错误信息 * @return 有错误信息的excel */ void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs); void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode); } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -764,7 +764,7 @@ boolean ignoreSpace = trim || trimAll; if (StringUtils.isBlank(value)) { //为空的时候,不能用QueryOperation.ISNULL,平台不知道啥时候不处理这种了 conditionMap.put("t." + attrId, "null"); conditionMap.put("t." + attrId, QueryOptionConstant.ISNULL); } else { if (keyRuleVO != null) { String queryKey = ""; @@ -800,8 +800,12 @@ queryValue = String.format(temp, "'" + (trim ? value.trim() : value) + "'"); conditionMap.put(queryKey, queryValue); } else { //为空的时候不代表不校验,只是不去除相关的信息 conditionMap.put("t." + attrId, "'" +value+ "'"); if(StringUtils.isNotBlank(value)) { //为空的时候不代表不校验,只是不去除相关的信息 conditionMap.put("t." + attrId, "'" + value + "'"); }else{ conditionMap.put("t." + attrId, QueryOptionConstant.ISNULL); } } } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -1899,7 +1899,7 @@ * @return 有错误信息的excel */ @Override public void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) { public void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode) { Map<String,String> errorMap=new HashMap<>(); VciBaseUtil.alertNotNull(orderDTO,"编码申请相关的数据",orderDTO.getCodeClassifyOid(),"主题库分类主键"); CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); @@ -2019,10 +2019,15 @@ sourceOid=codeOidToSystemOidMap.get(oid); } String code=""; String groupCode=""; String errorid="103"; String mes=errorMap.get(rowIndex); XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO(); resultDataObjectDetailDO.setCode(code); if(isCodeOrGroupCode){ resultDataObjectDetailDO.setCode(groupCode); }else{ resultDataObjectDetailDO.setCode(code); } resultDataObjectDetailDO.setId(sourceOid); resultDataObjectDetailDO.setErrorid(errorid); resultDataObjectDetailDO.setMsg(mes); @@ -2048,6 +2053,7 @@ String oid = cbo.getOid(); String sourceOid = oid; String code = ""; String groupCode=""; String errorid = "201"; if(codeOidToSystemOidMap.containsKey(oid)){ sourceOid=codeOidToSystemOidMap.get(oid); @@ -2058,22 +2064,35 @@ String lcstatus =newCbo.getLcStatus(); String newOid =newCbo.getOid(); Date ts =newCbo.getTs(); groupCode=newCbo.getData().get("GROUPCODE"); code=newCbo.getId(); String lastmodifier=newCbo.getLastModifier(); if (!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) { if (lcstatus!=null&&!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) { newCbo.setOid(newOid); newCbo.setLastModifier(lastmodifier); newCbo.setId(code); /*if(isCodeOrGroupCode) { newCbo.setId(code); }else{ newCbo.getData().put("groupcode",groupCode); }*/ newCbo.setTs(ts); cbo.setLastModifier(cbo.getLastModifier()); editBoList.add(newCbo); } String mes = errorKeyMap.get(rowIndex); XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); resultDataObjectDetailDO.setCode(code); if(isCodeOrGroupCode) { if(StringUtils.isBlank(groupCode)){ mes+=";等待集团编码赋值"; } resultDataObjectDetailDO.setCode(groupCode); }else{ resultDataObjectDetailDO.setCode(code); } resultDataObjectDetailDO.setId(sourceOid); resultDataObjectDetailDO.setErrorid(errorid); resultDataObjectDetailDO.setMsg(mes); resultDataObjectDetailDOs.add(resultDataObjectDetailDO); } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient; import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; import com.vci.ubcs.code.constant.MdmDuckingConstant; import com.vci.ubcs.code.dto.CodeOrderDTO; @@ -128,6 +129,9 @@ @Autowired private ICodeClassifyValueService codeClassifyValueService; @Resource private IMdmInterJtClient mdmInterJtClient; /*** * 集成接口日志服务的配置 */ @@ -149,7 +153,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 +163,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 +179,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 +194,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("参数:分类COde:" + classVO.getClassCode()); boolean isCodeOrGroupCode=false; LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); String libray =""; //获取分类信息 try { String libray = classVO.getLibrary(); libray = classVO.getLibrary(); CodeClassifyVO codeClassifyVO = getClassfy(classVO); 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 +251,29 @@ 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(); 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(); @@ -259,14 +283,22 @@ resultClassfyVO.setObjects(resultDataObjectDetailDOs); resultClassfyVOList.add(resultClassfyVO); } //是否调用集团接口申请接口 if(isCodeOrGroupCode){ List<String> IdList=resultDataObjectDetailDOs.stream().filter(xMLResultDataObjectDetailDO->StringUtils.isNotBlank(xMLResultDataObjectDetailDO.getId())).map(XMLResultDataObjectDetailDO::getId).distinct().collect(Collectors.toList()); if(!CollectionUtils.isEmpty(IdList)) { this.sendApplyGroupcode(IdList, libray,sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue()); } } }); 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 +312,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,10 +338,23 @@ } } log.info("返回参数:"+resultStr); //调用集团申请接口申请集团码 return resultStr; } /*** * 申请集团编码 * @param idList * @param btmName */ private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){ String oids=VciBaseUtil.array2String(idList.toArray(new String[]{})); if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) { mdmInterJtClient.applyGroupCode(oids,btmName); }else if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_EDITCODE)){ mdmInterJtClient.receiveEditApply(oids,btmName); } } /*** * 统一更新接口(更改状态,更改属性信息)接口 * @param data @@ -1598,4 +1643,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; } }