| | |
| | | import com.thoughtworks.xstream.io.xml.DomDriver; |
| | | import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; |
| | | import com.vci.ubcs.code.constant.MdmDuckingConstant; |
| | | import com.vci.ubcs.code.dto.CodeBZApplyDTO; |
| | | import com.vci.ubcs.code.dto.CodeOrderDTO; |
| | | import com.vci.ubcs.code.dto.CodeOrderSecDTO; |
| | | import com.vci.ubcs.code.entity.*; |
| | |
| | | import com.vci.ubcs.code.webService.annotation.VciWebservice; |
| | | import com.vci.ubcs.code.webService.config.AttributeMapConfig; |
| | | import com.vci.ubcs.code.webService.config.PersonAndDeptConfig; |
| | | import com.vci.ubcs.code.wrapper.CodeClassifyWrapper; |
| | | import com.vci.ubcs.omd.feign.IBtmTypeClient; |
| | | import com.vci.ubcs.omd.vo.BtmTypeVO; |
| | | import com.vci.ubcs.starter.exception.VciBaseException; |
| | |
| | | import com.vci.ubcs.system.vo.RoleVO; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.Func; |
| | |
| | | import javax.xml.ws.handler.MessageContext; |
| | | import java.util.*; |
| | | import java.util.concurrent.CopyOnWriteArrayList; |
| | | import java.util.concurrent.ForkJoinPool; |
| | | import java.util.concurrent.atomic.AtomicBoolean; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; |
| | | import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC; |
| | | import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_REFER_SEC; |
| | | |
| | | /*** |
| | | * 统一接口 |
| | |
| | | @Service |
| | | @Slf4j |
| | | @VciWebservice(path = "/universalInterface") |
| | | public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI { |
| | | public class UniversalInterfaceImpl implements UniversalInterfaceI { |
| | | |
| | | /*** |
| | | * 操作类型 |
| | | */ |
| | | @Value("${bzApply.operationType:operationType}") |
| | | private String operationType; |
| | | /*** |
| | | * 是否系列 |
| | | */ |
| | | @Value("${bzApply.isSeries:isSeries}") |
| | | private String isSeries; |
| | | /*** |
| | | *发布时间 |
| | | */ |
| | | @Value("${bzApply.releaseTime:releaseTime}") |
| | | private String releaseTime; |
| | | /*** |
| | | * 源标准号 |
| | | */ |
| | | @Value("${bzApply.oldCode:oldCode}") |
| | | private String oldCode; |
| | | |
| | | /*** |
| | | * 系列流水 |
| | | */ |
| | | @Value("${bzApply.seriesFlow:seriesFlow}") |
| | | private String seriesFlow; |
| | | |
| | | /*** |
| | | * 是否变更系列 |
| | | */ |
| | | @Value("${bzApply.isEditSeries:isEditSeries}") |
| | | private String isEditSeries; |
| | | |
| | | /*** |
| | | * 控制是否写入值的码段名称 |
| | | */ |
| | | @Value("${bzApply.secName:系列号}") |
| | | private String secName; |
| | | |
| | | /*** |
| | | * 控制是否写入值的码段名称 |
| | | */ |
| | | @Value("${bzApply.yearSecName:年代号}") |
| | | private String yearSecName; |
| | | |
| | | @Value("${code.universalinterface.checkSystemConfig:true}") |
| | | public boolean CODE_CHECKCONFIG; |
| | |
| | | */ |
| | | @Resource |
| | | private IDockingLogeService dockingLogeService; |
| | | |
| | | @Resource |
| | | private IPasswordFreeLoginService passwordFreeLoginService; |
| | | |
| | | /** |
| | | * 自定义并发ForkJoinPool |
| | | */ |
| | | private static final ForkJoinPool customForkJoinPool = new ForkJoinPool(Runtime.getRuntime().availableProcessors() - 1); |
| | | |
| | | private static String separator="##VCI##"; |
| | | private String errorid="0"; |
| | |
| | | } |
| | | }catch (Throwable e){ |
| | | errorid[0] ="101"; |
| | | log.error("接口参数:传入数据参数解析失败",e); |
| | | throw new Throwable("接口参数:传入数据参数解析失败"); |
| | | } |
| | | ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); |
| | | systemId = interParameterVO.getData().getSystemId(); |
| | | UserVO userVo = interParameterVO.getData().getUser(); |
| | | //免密登录申请token,request中添加用户信息 |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | AuthUtil.getUser(); |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(Locale.ROOT), this.getRequest()); |
| | | }catch (Throwable e){ |
| | | errorid[0] ="1"; |
| | | throw new Throwable("用户鉴权失败,原因:"+e.getMessage()); |
| | | } |
| | | List<ClassfyVO> classVOList = classfysVO.getClassify(); |
| | | InterParameterVO finalInterParameterVO = interParameterVO; |
| | | //InterParameterVO finalInterParameterVO = interParameterVO; |
| | | //这是账号信息 |
| | | SessionInfo sessionInfo = new SessionInfo(); |
| | | sessionInfo.setUserId(userVo.getUserName()); |
| | | sessionInfo.setUserName(userVo.getTrueName()); |
| | | sessionInfo.setIp(userVo.getIp()); |
| | | VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); |
| | | // List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>(); |
| | | //List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>(); |
| | | String finalSystemId = systemId; |
| | | classVOList.stream().forEach(classVO -> { |
| | | log.info("参数:分类COde:" + classVO.getClassCode()); |
| | | log.info("参数:分类Code:" + classVO.getClassCode()); |
| | | boolean isCodeOrGroupCode=false; |
| | | LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>(); |
| | | String libray =""; |
| | |
| | | //校验是否配置 |
| | | DockingSystemConfig dockingSystemConfig=null; |
| | | dockingSystemConfig=checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue(),codeClassifyVO.getOid()); |
| | | if(dockingSystemConfig==null){ |
| | | if(dockingSystemConfig==null||StringUtils.isBlank(dockingSystemConfig.getOid())){ |
| | | errorid[0] ="101"; |
| | | throw new Throwable("系统标识为【"+ finalSystemId +"】,集成分类为【"+codeClassifyVO.getName()+"】以上分类,"+sysIntegrationPushTypeEnum.ACCPET_APPCODE.getText()+"接口配置已停用或者未配置,请联系编码管理员!"); |
| | | } |
| | |
| | | log.info("end:模板查询完毕"); |
| | | ApplyDatasVO applyDatasVO = classVO.getObjects(); |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && |
| | | ((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())) |
| | | ).collect(Collectors.toList()); |
| | | this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO); |
| | | log.info("end:数据组织完毕"); |
| | |
| | | } catch (Throwable e) { |
| | | List<ApplyDataVO> applyDataVOList= classVO.getObjects().getObject(); |
| | | objerrorCode="1"; |
| | | log.error("编码申请失败:",e); |
| | | if(!CollectionUtils.isEmpty(applyDataVOList)) { |
| | | applyDataVOList.stream().forEach(applyDataVO -> { |
| | | XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); |
| | |
| | | resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); |
| | | }); |
| | | }else{ |
| | | |
| | | XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); |
| | | xmlResultDataObjectDetailDO.setCode(""); |
| | | xmlResultDataObjectDetailDO.setId(""); |
| | |
| | | resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); |
| | | } |
| | | e.printStackTrace(); |
| | | //log.error(e.getMessage()); |
| | | }finally { |
| | | XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO(); |
| | | resultClassfyVO.setClassCode(classVO.getClassCode()); |
| | |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | msg="申请编码失败:"+e.getMessage(); |
| | | //log.error(msg); |
| | | log.error("编码申请失败:",e); |
| | | /* XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO(); |
| | | XMLResultSystemVO.setErrorid(errorid); |
| | | XMLResultSystemVO.setMsg("申请编码失败:->"+e.getMessage()); |
| | |
| | | if(!CollectionUtils.isEmpty(resultClassfyVOList)) { |
| | | resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> { |
| | | xMLResultClassfyVO.getObjects().stream().forEach(objec -> { |
| | | if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) { |
| | | if (!(objec.getErrorid().equals("0")||objec.getErrorid().equals("201") ||objec.getErrorid().equals("205")|| objec.getErrorid().equals("204"))) { |
| | | issucess[0] = false; |
| | | msg=objec.getMsg(); |
| | | } |
| | | msg=objec.getMsg(); |
| | | }); |
| | | }); |
| | | } |
| | |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | //log.error(e.getMessage()); |
| | | log.error("保存日志出错,原因:",e); |
| | | } |
| | | } |
| | | log.info("返回参数:"+resultStr); |
| | |
| | | */ |
| | | @Override |
| | | public ResultOrgData syncDataForPerson(PersonData personData) { |
| | | |
| | | boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); |
| | | ResultOrgData resultOrgData=new ResultOrgData(); |
| | | |
| | |
| | | if(isUsedFlag){ |
| | | AtomicBoolean success= new AtomicBoolean(true); |
| | | List<PersonMasterData> masterDataList=new ArrayList<>(); |
| | | List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields()); |
| | | List<String> fields = Func.toStrList(personAndDeptConfig.getPersonFields()); |
| | | try { |
| | | if(personData==null){ |
| | | throw new Throwable("传入参数为null"); |
| | | } |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemCode.toLowerCase(),this.getRequest()); |
| | | }catch (Throwable e){ |
| | | log.error("用户鉴权失败:",e); |
| | | throw new Throwable("用户鉴权失败"); |
| | | } |
| | | masterDataList = personData.getMasterData(); |
| | | String personLibrary = personAndDeptConfig.getPersonLibrary(); |
| | |
| | | ClassfyVO classfyVO = new ClassfyVO(); |
| | | classfyVO.setLibrary(personLibrary); |
| | | classfyVO.setClassCode(personClassCode); |
| | | CodeClassifyVO codeClassifyVO=this.getClassfy(classfyVO,personLibrary); |
| | | CodeClassifyVO codeClassifyVO=this.getClassfy(classfyVO,personLibrary); |
| | | log.info("end:分类查询完毕"); |
| | | //获取分类模板信息 |
| | | if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ |
| | |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板"); |
| | | } |
| | | |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && |
| | | ((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())) |
| | | ).collect(Collectors.toList()); |
| | | |
| | | List<PersonMasterData> personMasterDataList= personData.getMasterData(); |
| | | List<Map> dataList=new ArrayList<>(); |
| | | |
| | | //List<Map> dataList=new ArrayList<>(); |
| | | List<String> codeList=new ArrayList<>(); |
| | | |
| | | List<ApplyDataVO> applyDataVOList=new ArrayList<>(); |
| | |
| | | */ |
| | | fields.stream().forEach(field->{ |
| | | if(dataMap.containsKey(field)){ |
| | | String enumFiled= dataMap.get(field); |
| | | String enumFiled = dataMap.get(field); |
| | | EnumerableData enumerableData=JSONObject.toJavaObject(JSONObject.parseObject(enumFiled),EnumerableData.class); |
| | | String enumCode=enumerableData.getCode(); |
| | | //String enumCodeValue=enumerableData.getName(); |
| | |
| | | |
| | | object.setProp(proppertyVOList); |
| | | if(personMasterData.getDr()==1){ |
| | | object.setOperate("delete");//操作类型 |
| | | //操作类型 |
| | | object.setOperate("delete"); |
| | | deleteDataVOList.add(object); |
| | | }else{ |
| | | String worker_category=personMasterData.getWorker_category(); |
| | | |
| | | //String worker_category=personMasterData.getWorker_category(); |
| | | object.setOperate("create"); |
| | | applyDataVOList.add(object); |
| | | } |
| | | codeList.add(personMasterData.getLm_code()); |
| | | codeList.add(object.getCode()); |
| | | }); |
| | | |
| | | R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); |
| | |
| | | sb.append(VciBaseUtil.toInSql(codeList.toArray(new String[0]))); |
| | | sb.append(")"); |
| | | List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString()); |
| | | DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true); |
| | | List<ClientBusinessObject> cboList= ChangeMapTOClientBusinessObjects(dataMapList); |
| | | ApplyDatasVO applyDatasVO=new ApplyDatasVO(); |
| | | ApplyDatasVO editDatasVO=new ApplyDatasVO(); |
| | | if(!CollectionUtils.isEmpty(cboList)){ |
| | | Map<String,ClientBusinessObject> oldpplyDataVOMap= cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); |
| | | Map<String,ClientBusinessObject> oldpplyDataVOMap = cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); |
| | | //数据库不存在的 |
| | | List<ApplyDataVO> applyApplyDataVOList = applyDataVOList.stream().filter(cbo -> { |
| | | String code =cbo.getCode(); |
| | |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO); |
| | | log.info("start:修改数据执行完毕"); |
| | | boolean personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode(); |
| | | mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode); |
| | | // boolean personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode(); |
| | | mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,isPersonApplyGroupCode); |
| | | log.info("end:修改数据执行完毕"); |
| | | } |
| | | if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) { |
| | |
| | | throw new Throwable("编码规则"); |
| | | } |
| | | List<XMLResultDataObjectDetailDO> xDOs=new CopyOnWriteArrayList<>(); |
| | | dataObjectVO.getRowData().parallelStream().forEach(rowData->{ |
| | | final List<RowDatas> rowDatas = dataObjectVO.getRowData(); |
| | | rowDatas.parallelStream().forEach(rowData->{ |
| | | String mesg=""; |
| | | try { |
| | | CodeOrderDTO orderDTO = new CodeOrderDTO(); |
| | | List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>(); |
| | | orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键 |
| | | orderDTO.setTemplateOid(templateVO.getOid()); |
| | | orderDTO.setCreator(rowData.getCreator()); |
| | | orderDTO.setLastModifier(rowData.getEditor()); |
| | | orderDTO.setLcStatus(rowData.getStatus()); |
| | | if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) { |
| | | ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> { |
| | | if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据 |
| | |
| | | orderDTO.setCodeRuleOid(ruleVO.getOid()); |
| | | orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码 |
| | | orderDTO.setData(rowData.getFiledValue()); |
| | | String code=engineService.addSaveCode(orderDTO); |
| | | String code=engineService.addSaveCodeNotauthUser(orderDTO,false); |
| | | if(StringUtils.isNotBlank(code)) { |
| | | StringBuffer sqlsb = new StringBuffer(); |
| | | sqlsb.append(" select * from "); |
| | |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("数据保存失败:",e); |
| | | mesg=e.getMessage(); |
| | | e.printStackTrace(); |
| | | // throw new ServiceException(e.getMessage()); |
| | | }finally { |
| | | XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO(); |
| | | x.setId(rowData.getOid()); |
| | |
| | | resultDataObjectDetailDOs.addAll(xDOs); |
| | | boolean finalSuccess1 = success.get(); |
| | | String finalMessage1 = message; |
| | | resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ |
| | | ResultMdMapping resultMdMapping=new ResultMdMapping(); |
| | | resultMdMapping.setBusiDataId(resultDataObjectDetailDO.getId()); |
| | | resultMdMapping.setSuccess(finalSuccess1); |
| | | resultMdMapping.setEntityCode(" "); |
| | | resultMdMapping.setMdmCode(resultDataObjectDetailDO.getCode()); |
| | | resultMdMapping.setMessage(finalMessage1); |
| | | resultMdMapping.setSubMdMappings(null); |
| | | resultMdMappingList.add(resultMdMapping); |
| | | }); |
| | | // 限制线程并行数量 |
| | | customForkJoinPool.submit(()->{ |
| | | resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ |
| | | ResultMdMapping resultMdMapping=new ResultMdMapping(); |
| | | resultMdMapping.setBusiDataId(resultDataObjectDetailDO.getId()); |
| | | resultMdMapping.setSuccess(finalSuccess1); |
| | | resultMdMapping.setEntityCode(" "); |
| | | resultMdMapping.setMdmCode(resultDataObjectDetailDO.getCode()); |
| | | resultMdMapping.setMessage(finalMessage1); |
| | | resultMdMapping.setSubMdMappings(null); |
| | | resultMdMappingList.add(resultMdMapping); |
| | | }); |
| | | }).join(); |
| | | log.info("end:申请获取完毕"); |
| | | } |
| | | }catch (Throwable e){ |
| | | success.set(false); |
| | | message="人员数据接受失败:"+e.getMessage(); |
| | | message = "人员数据接收失败:"+e.getMessage(); |
| | | msg = "人员数据接收失败:"+e.getMessage(); |
| | | log.error( "人员数据接收失败:",e); |
| | | //组织返回结果 |
| | | boolean finalSuccess = success.get(); |
| | | String finalMessage = message; |
| | |
| | | resultOrgData.setMessage(message); |
| | | resultOrgData.setSuccess(success.get()); |
| | | resultOrgData.setMdMappings(resultMdMappingList); |
| | | Object object = JSONObject.toJSON(resultOrgData); |
| | | //Object object = JSONObject.toJSON(resultOrgData); |
| | | } |
| | | String resultStr = JSONObject.toJSONString(resultOrgData); |
| | | String data = JSONObject.toJSONString(personData); |
| | |
| | | //记录日志 |
| | | this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForPerson"); |
| | | }catch (Throwable e){ |
| | | log.error( "日志保存失败:",e); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | |
| | | public ResultOrgData syncDataForOrg(OrgData orgData) { |
| | | boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); |
| | | ResultOrgData resultOrgData=new ResultOrgData(); |
| | | boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode(); |
| | | // boolean isPersonApplyGroupCode= personAndDeptConfig.isDeptApplyGroupCode(); |
| | | List<ResultMdMapping> resultMdMappingList=new ArrayList<>(); |
| | | AtomicBoolean success= new AtomicBoolean(true); |
| | | String message=""; |
| | | String systemCode=""; |
| | | if(isUsedFlag){ |
| | | List<OrgMasterData> orgMasterDataList=new ArrayList<>(); |
| | | List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields()); |
| | | List<OrgMasterData> orgMasterDataList = new ArrayList<>(); |
| | | List<String> fields = Func.toStrList(personAndDeptConfig.getDeptFields()); |
| | | try { |
| | | if(orgData==null){ |
| | | throw new Throwable("传入参数为null"); |
| | | } |
| | | systemCode=orgData.getSystemCode(); |
| | | orgMasterDataList = orgData.getMasterData(); |
| | | String personLibrary = personAndDeptConfig.getPersonLibrary(); |
| | | if (StringUtils.isBlank(personLibrary)) { |
| | | success.set(false); |
| | | log.info("集成配置缺少人员库节点信息,personLibrary->" + personLibrary); |
| | | throw new Throwable("集成配置缺少人员库节点信息,personLibrary->" + personLibrary); |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemCode.toLowerCase(),this.getRequest()); |
| | | }catch (Throwable e){ |
| | | log.error( "用户鉴权失败:",e); |
| | | throw new Throwable("用户鉴权失败"); |
| | | } |
| | | String personClassCode = personAndDeptConfig.getPersonClassCode(); |
| | | orgMasterDataList = orgData.getMasterData(); |
| | | String deptLibrary = personAndDeptConfig.getDeptLibrary(); |
| | | if (StringUtils.isBlank(deptLibrary)) { |
| | | success.set(false); |
| | | log.info("集成配置缺少部门库节点信息,deptLibrary->" + deptLibrary); |
| | | throw new Throwable("集成配置缺少部门库节点信息,deptLibrary->" + deptLibrary); |
| | | } |
| | | String deptClassCode = personAndDeptConfig.getDeptClassCode(); |
| | | ClassfyVO classfyVO = new ClassfyVO(); |
| | | classfyVO.setLibrary(personLibrary); |
| | | classfyVO.setClassCode(personClassCode); |
| | | CodeClassifyVO codeClassifyVO=this.getClassfy(classfyVO,personLibrary); |
| | | classfyVO.setLibrary(deptLibrary); |
| | | classfyVO.setClassCode(deptClassCode); |
| | | CodeClassifyVO codeClassifyVO = this.getClassfy(classfyVO,deptLibrary); |
| | | log.info("end:分类查询完毕"); |
| | | //获取分类模板信息 |
| | | if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ |
| | |
| | | CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); |
| | | if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ |
| | | success.set(false); |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板"); |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板"); |
| | | } |
| | | |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && |
| | | ((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())) |
| | | ).collect(Collectors.toList()); |
| | | List<Map> dataList=new ArrayList<>(); |
| | | List<String> codeList=new ArrayList<>(); |
| | | List<ApplyDataVO> applyDataVOList=new ArrayList<>(); |
| | | List<ApplyDataVO> deleteDataVOList=new ArrayList<>(); |
| | | orgMasterDataList.stream().forEach(orgMasterData -> { |
| | | ApplyDataVO object=new ApplyDataVO(); |
| | | object.setCode(orgMasterData.getMdm_code());//编码 |
| | | object.setCode(orgMasterData.getDepartment_code());//编码 |
| | | object.setCreator(orgMasterData.getCreator());//创建者 |
| | | object.setEditor(orgMasterData.getModifier());//修改者 |
| | | object.setId(orgMasterData.getPk_mdm());//主键 |
| | | object.setId(orgMasterData.getId());//主键 |
| | | object.setStatus(CodeDefaultLC.RELEASED.getValue());//状态则需要判断 |
| | | Map<String,String> dataMap= VciBaseUtil.objectToMapString(orgMasterData); |
| | | List<ProppertyVO> proppertyVOList=new ArrayList<>(); |
| | | List<ProppertyVO> proppertyVOList = new ArrayList<>(); |
| | | /*** |
| | | * 根据配置文件获取枚举值 |
| | | */ |
| | |
| | | object.setOperate("delete");//操作类型 |
| | | deleteDataVOList.add(object); |
| | | }else{ |
| | | |
| | | object.setOperate("create"); |
| | | applyDataVOList.add(object); |
| | | } |
| | | codeList.add(orgMasterData.getMdm_code()); |
| | | codeList.add(object.getCode()); |
| | | }); |
| | | |
| | | R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); |
| | |
| | | throw new Throwable("根据业务类型未查询到业务类型对象!"); |
| | | } |
| | | String tableName = btmTypeVO.getTableName(); |
| | | if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) { |
| | | if (StringUtils.isBlank(tableName)) { |
| | | throw new Throwable("根据业务类型未查询到业务类型相关联的表"); |
| | | } |
| | | StringBuffer sb=new StringBuffer(); |
| | | StringBuffer sb = new StringBuffer(); |
| | | sb.append(" select * from "); |
| | | sb.append(tableName); |
| | | sb.append(" where 1=1 "); |
| | |
| | | sb.append(" and id in ("); |
| | | sb.append(VciBaseUtil.toInSql(codeList.toArray(new String[0]))); |
| | | sb.append(")"); |
| | | List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString()); |
| | | List<ClientBusinessObject> cboList= ChangeMapTOClientBusinessObjects(dataMapList); |
| | | List<Map<String,String>> dataMapList = commonsMapper.queryByOnlySqlForMap(sb.toString()); |
| | | DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true); |
| | | List<ClientBusinessObject> cboList = ChangeMapTOClientBusinessObjects(dataMapList); |
| | | ApplyDatasVO applyDatasVO=new ApplyDatasVO(); |
| | | ApplyDatasVO editDatasVO=new ApplyDatasVO(); |
| | | if(!CollectionUtils.isEmpty(cboList)){ |
| | | Map<String,ClientBusinessObject> oldpplyDataVOMap= cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); |
| | | Map<String,ClientBusinessObject> oldpplyDataVOMap = cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); |
| | | //数据库不存在的 |
| | | List<ApplyDataVO> applyApplyDataVOList = applyDataVOList.stream().filter(cbo -> { |
| | | String code =cbo.getCode(); |
| | | String code = cbo.getCode(); |
| | | return !oldpplyDataVOMap.containsKey(code); |
| | | }).collect(Collectors.toList()); |
| | | applyDatasVO.setObject(applyApplyDataVOList); |
| | |
| | | LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>(); |
| | | if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){ |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO); |
| | | this.getConfigDatas(systemCode, deptLibrary, editDatasVO, attrVOS, dataObjectVO); |
| | | log.info("start:修改数据执行完毕"); |
| | | boolean personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode(); |
| | | boolean personApplyGroupCode = false;//personAndDeptConfig.isPersonApplyGroupCode(); |
| | | mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode); |
| | | log.info("end:修改数据执行完毕"); |
| | | } |
| | | if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) { |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | this.getConfigDatas(systemCode, personLibrary, applyDatasVO, attrVOS, dataObjectVO); |
| | | this.getConfigDatas(systemCode, deptLibrary, applyDatasVO, attrVOS, dataObjectVO); |
| | | |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); |
| | | CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); |
| | |
| | | throw new Throwable("编码规则"); |
| | | } |
| | | List<XMLResultDataObjectDetailDO> xDOs=new CopyOnWriteArrayList<>(); |
| | | dataObjectVO.getRowData().parallelStream().forEach(rowData->{ |
| | | String mesg=""; |
| | | try { |
| | | CodeOrderDTO orderDTO = new CodeOrderDTO(); |
| | | List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>(); |
| | | orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键 |
| | | orderDTO.setTemplateOid(templateVO.getOid()); |
| | | if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) { |
| | | ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> { |
| | | if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据 |
| | | CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO(); |
| | | CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid()); |
| | | CodeOrderSecDTO.setSecValue(rowData.getCode()); |
| | | codeOrderSecDTOList.add(CodeOrderSecDTO); |
| | | |
| | | } |
| | | }); |
| | | } |
| | | orderDTO.setCodeRuleOid(ruleVO.getOid()); |
| | | orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码 |
| | | orderDTO.setData(rowData.getFiledValue()); |
| | | String code=engineService.addSaveCode(orderDTO); |
| | | if(StringUtils.isNotBlank(code)) { |
| | | //限制线程并行数量 |
| | | //customForkJoinPool.submit(()->{ |
| | | // dataObjectVO.getRowData().parallelStream().forEach(rowData->{ |
| | | dataObjectVO.getRowData().forEach(rowData->{ |
| | | String mesg=""; |
| | | try { |
| | | CodeOrderDTO orderDTO = new CodeOrderDTO(); |
| | | List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>(); |
| | | orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键 |
| | | orderDTO.setTemplateOid(templateVO.getOid()); |
| | | orderDTO.setCreator(rowData.getCreator()); |
| | | orderDTO.setLastModifier(rowData.getEditor()); |
| | | orderDTO.setLcStatus(rowData.getStatus()); |
| | | if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) { |
| | | ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> { |
| | | if (codeBasicSecVO.getSecType().equals("codevariablesec")) { |
| | | //规则之定义为可变码段存储主数据传递过来的数据 |
| | | CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO(); |
| | | CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid()); |
| | | CodeOrderSecDTO.setSecValue(rowData.getCode()); |
| | | codeOrderSecDTOList.add(CodeOrderSecDTO); |
| | | } |
| | | }); |
| | | } |
| | | orderDTO.setCodeRuleOid(ruleVO.getOid()); |
| | | orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码 |
| | | orderDTO.setData(rowData.getFiledValue()); |
| | | String code = engineService.addSaveCodeNotauthUser(orderDTO,false); |
| | | /*if(StringUtils.isNotBlank(code)) { |
| | | //rowData.setCode(code); |
| | | StringBuffer sqlsb = new StringBuffer(); |
| | | sqlsb.append(" select * from "); |
| | | sqlsb.append(tableName); |
| | |
| | | mesg = "数据保存成功,等待申请集团码"; |
| | | } |
| | | } |
| | | }*/ |
| | | } catch (Exception e) { |
| | | log.error( "部门数据接收失败:",e); |
| | | mesg=e.getMessage(); |
| | | e.printStackTrace(); |
| | | // throw new ServiceException(e.getMessage()); |
| | | }finally { |
| | | XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO(); |
| | | x.setId(rowData.getOid()); |
| | | x.setCode(rowData.getCode()); |
| | | x.setMsg(mesg); |
| | | x.setErrorid("1"); |
| | | xDOs.add(x); |
| | | } |
| | | } catch (Exception e) { |
| | | mesg=e.getMessage(); |
| | | e.getMessage(); |
| | | e.printStackTrace(); |
| | | }finally { |
| | | XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO(); |
| | | x.setId(rowData.getOid()); |
| | | x.setCode(rowData.getCode()); |
| | | x.setMsg(mesg); |
| | | x.setErrorid("1"); |
| | | xDOs.add(x); |
| | | } |
| | | }); |
| | | }); |
| | | //}).join(); |
| | | resultDataObjectDetailDOs.addAll(xDOs); |
| | | boolean finalSuccess1 = success.get(); |
| | | String finalMessage1 = message; |
| | |
| | | } |
| | | }catch (Throwable e){ |
| | | success.set(false); |
| | | message="人员数据接受失败:"+e.getMessage(); |
| | | message = "部门数据接收失败:"+e.getMessage(); |
| | | msg = "部门数据接收失败:"+e.getMessage(); |
| | | log.error( "部门数据接收失败:",e); |
| | | //组织返回结果 |
| | | boolean finalSuccess = success.get(); |
| | | String finalMessage = message; |
| | |
| | | //记录日志 |
| | | this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForOrg"); |
| | | }catch (Throwable e){ |
| | | log.error( "保存日志失败:",e); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | |
| | | systemId = interParameterVO.getData().getSystemId(); |
| | | UserVO userVo = interParameterVO.getData().getUser(); |
| | | //免密登录申请token,request中添加用户信息 |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest()); |
| | | }catch (Throwable e){ |
| | | errorid = "1"; |
| | | log.error("用户鉴权失败",e); |
| | | throw new Throwable("用户鉴权失败"); |
| | | } |
| | | List<ClassfyVO> classVOList = classfysVO.getClassify(); |
| | | InterParameterVO finalInterParameterVO = interParameterVO; |
| | | //InterParameterVO finalInterParameterVO = interParameterVO; |
| | | //这是账号信息 |
| | | SessionInfo sessionInfo = new SessionInfo(); |
| | | sessionInfo.setUserId(userVo.getUserName()); |
| | |
| | | if(CODE_CHECKCONFIG) { |
| | | //校验是否配置 |
| | | DockingSystemConfig dockingSystemConfig= checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue(),codeClassifyVO.getOid()); |
| | | if(dockingSystemConfig==null){ |
| | | if(dockingSystemConfig==null||StringUtils.isBlank(dockingSystemConfig.getOid())){ |
| | | objerrorCode ="101"; |
| | | throw new Throwable("系统标识为【"+ finalSystemId +"】,集成分类为【"+codeClassifyVO.getName()+"】以上分类,"+sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getText()+"接口配置已停用或者未配置,请联系编码管理员!"); |
| | | } |
| | |
| | | ApplyDatasVO applyDatasVO = classVO.getObjects(); |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | //将默认的属性全部替换掉 |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && |
| | | ((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())) |
| | | ).collect(Collectors.toList()); |
| | | this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO); |
| | | log.info("end:数据构建完毕"); |
| | |
| | | mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode); |
| | | log.info("end:修改数据执行完毕"); |
| | | } catch (Throwable e) { |
| | | msg="编码更改/状态更改/删除:"; |
| | | log.error(msg,e); |
| | | List<ApplyDataVO> applyDataVOList= classVO.getObjects().getObject(); |
| | | objerrorCode="1"; |
| | | if(!CollectionUtils.isEmpty(applyDataVOList)) { |
| | |
| | | } |
| | | }); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | e.printStackTrace(); |
| | | msg="编码更改/状态更改/删除:"+e.getMessage(); |
| | | log.error(msg,e); |
| | | /* XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO(); |
| | | XMLResultSystemVO.setErrorid(errorid); |
| | | XMLResultSystemVO.setMsg("申请编码失败:->"+e.getMessage()); |
| | |
| | | if(!CollectionUtils.isEmpty(resultClassfyVOList)) { |
| | | resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> { |
| | | xMLResultClassfyVO.getObjects().stream().forEach(objec -> { |
| | | if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) { |
| | | if (!(objec.getErrorid().equals("0")||objec.getErrorid().equals("201") ||objec.getErrorid().equals("205")|| objec.getErrorid().equals("204"))) { |
| | | issucess[0] = false; |
| | | msg=objec.getMsg(); |
| | | } |
| | | msg=objec.getMsg(); |
| | | }); |
| | | }); |
| | | } |
| | |
| | | //记录日志 |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "syncEditData"); |
| | | }catch (Throwable e){ |
| | | log.error("保存日志失败",e); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | |
| | | log.info("查询分类的数据类型:->"+dataType); |
| | | ResultClassifyVO resultClassifyVO =new ResultClassifyVO(); |
| | | List<ClassifyVO> classifyVOList=new ArrayList<>(); |
| | | com.vci.ubcs.code.vo.webserviceModel.classify.ResultData resultData=new com.vci.ubcs.code.vo.webserviceModel.classify.ResultData(); |
| | | ResultData resultData=new ResultData(); |
| | | try { |
| | | if (StringUtils.isBlank(data)) { |
| | | errorid = "101"; |
| | |
| | | errorid = "101"; |
| | | msg="接口参数:传入数据参数解析失败"; |
| | | e.printStackTrace(); |
| | | log.error("接口参数:传入数据参数解析失败",e); |
| | | throw new Throwable("接口参数:传入数据参数解析失败"); |
| | | } |
| | | QueryData queryData=queryClassifyVO.getData(); |
| | | UserVO userVo=queryData.getUser(); |
| | | //免密登录申请token,request中添加用户信息 |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | systemId=queryData.getSystemId(); |
| | | //免密登录申请token,request中添加用户信息 |
| | | //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest()); |
| | | }catch (Throwable e){ |
| | | errorid = "1"; |
| | | throw new Throwable("用户鉴权失败"); |
| | | } |
| | | |
| | | QueryLibraryVO libraryVO= queryData.getLibrary(); |
| | | String libId= libraryVO.getId(); |
| | | List<String> classifyIdList= libraryVO.getClassifyid(); |
| | |
| | | throw new Throwable("接口参数:账号信息获取失败"); |
| | | } |
| | | List<CodeClassify> libIdDos =classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, libId)); |
| | | if(CollectionUtils.isEmpty(libIdDos)) { |
| | | if(!CollectionUtils.isEmpty(libIdDos)) { |
| | | CodeClassify libCodeClassify =libIdDos.get(0); |
| | | String oid=libCodeClassify.getOid(); |
| | | if (!CollectionUtils.isEmpty(classifyIdList)) { |
| | |
| | | throw new Throwable(msg); |
| | | } |
| | | } else { |
| | | TreeQueryObject treeQueryObject = new TreeQueryObject(); |
| | | /*TreeQueryObject treeQueryObject = new TreeQueryObject(); |
| | | treeQueryObject.setParentOid(oid); |
| | | treeQueryObject.setQueryAllLevel(true); |
| | | codeClassifyVOS = classifyService.selectCodeClassifyDOByTree(treeQueryObject); |
| | | treeQueryObject.setQueryAllLevel(true);*/ |
| | | codeClassifyVOS = classifyService.getIdPathToNamePathByParentId(oid,false); |
| | | } |
| | | }else{ |
| | | errorid = "101"; |
| | |
| | | classifyVO.setDescription(codeClassifyDO.getDescription()); |
| | | classifyVO.setName(codeClassifyDO.getName()); |
| | | classifyVO.setPid(codeClassifyDO.getParentCodeClassifyOid()); |
| | | classifyVO.setFullPathName(codeClassifyDO.getPath()); |
| | | classifyVO.setFullPathName(codeClassifyDO.getNamePath()); |
| | | classifyVOList.add(classifyVO); |
| | | }); |
| | | libraryVo.setClassify(classifyVOList); |
| | |
| | | issucess=true; |
| | | resultData.setLibrary(libraryVo); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | e.printStackTrace(); |
| | | |
| | | msg="查询分类失败:"+e.getMessage(); |
| | | log.error(msg,e); |
| | | }finally { |
| | | resultData.setErrorid(errorid); |
| | | resultData.setMsg(msg); |
| | |
| | | //记录日志 |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify"); |
| | | }catch (Throwable e){ |
| | | log.error("保存日志信息失败:",e); |
| | | e.printStackTrace(); |
| | | } |
| | | log.info("返回参数:"+resultStr); |
| | |
| | | boolean issucess=false; |
| | | String resultStr = ""; |
| | | String errorid="0"; |
| | | msg="成功"; |
| | | msg = "数据查询成功"; |
| | | String systemId=""; |
| | | log.info("查询分类的数据参数:->"+data); |
| | | log.info("查询分类的数据类型:->"+dataType); |
| | |
| | | errorid = "101"; |
| | | msg = "接口参数:传入数据参数解析失败"; |
| | | e.printStackTrace(); |
| | | log.error( "接口参数:传入数据参数解析失败",e); |
| | | throw new Throwable("接口参数:传入数据参数解析失败"); |
| | | } |
| | | CondtionsVO condtionsVO=dataCondtionsVO.getCondtions(); |
| | | systemId=condtionsVO.getSystemId(); |
| | | UserVO userVo=condtionsVO.getUser(); |
| | | //免密登录申请token,request中添加用户信息 |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest()); |
| | | }catch (Throwable e){ |
| | | errorid = "1"; |
| | | log.error("用户鉴权失败",e); |
| | | throw new Throwable("用户鉴权失败"); |
| | | } |
| | | CondtionVO condtionVO= condtionsVO.getCondtion(); |
| | | SessionInfo sessionInfo = new SessionInfo(); |
| | | sessionInfo.setUserId(userVo.getUserName()); |
| | |
| | | if(CODE_CHECKCONFIG) { |
| | | //校验是否配置 |
| | | DockingSystemConfig dockingSystemConfig= checkIspass(systemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getValue(),currentCodeClassify[0].getOid()); |
| | | if(dockingSystemConfig==null){ |
| | | if(dockingSystemConfig==null||StringUtils.isBlank(dockingSystemConfig.getOid())){ |
| | | errorid ="101"; |
| | | throw new Throwable("系统标识为【"+ systemId +"】,集成分类为【"+currentCodeClassify[0].getName()+"】以上分类,"+sysIntegrationPushTypeEnum.ACCPET_QUERYDATA.getText()+"接口配置已停用或者未配置,请联系编码管理员!"); |
| | | } |
| | |
| | | TreeQueryObject treeQueryObject=new TreeQueryObject(); |
| | | treeQueryObject.setParentOid(oid); |
| | | treeQueryObject.setQueryAllLevel(true); |
| | | dataCodeClassifyVOList=classifyService.selectCodeClassifyDOByTree(treeQueryObject); |
| | | dataCodeClassifyVOList.add(CodeClassifyWrapper.build().entityVO(currentCodeClassify[0])); |
| | | dataCodeClassifyVOList=classifyService.selectAllClassifyByOid(oid,"oid");//.selectCodeClassifyDOByTree(treeQueryObject); |
| | | //dataCodeClassifyVOList.add(CodeClassifyWrapper.build().entityVO(currentCodeClassify[0])); |
| | | 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(); |
| | |
| | | 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<Map<String,String>> newDataList = commonsMapper.queryByOnlySqlForMap(sb.toString()); |
| | | DefaultAttrAssimtUtil.mapToLowerCase(newDataList,true); |
| | | List<ClientBusinessObject> clientBusinessObjects= ChangeMapTOClientBusinessObjects(newDataList); |
| | | List<com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO> dataObjectVOS=new ArrayList<>(); |
| | | if(!CollectionUtils.isEmpty(clientBusinessObjects)){ |
| | |
| | | dataObjectVOS.add(dataObjectVO); |
| | | }); |
| | | resultDataVO.setObject(dataObjectVOS); |
| | | }else{ |
| | | errorid = "0"; |
| | | msg = "接口参数:classCode 未查询到对应的数据"; |
| | | } |
| | | }else{ |
| | | errorid = "101"; |
| | |
| | | errorid = "101"; |
| | | msg = "接口参数:library 未查询到对应的库节点信息"; |
| | | } |
| | | errorid = "0"; |
| | | msg = "数据查询成功"; |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | e.printStackTrace(); |
| | | |
| | | msg="查询数据失败:"+e.getMessage(); |
| | | log.error(msg,e); |
| | | }finally { |
| | | resultDataVO.setErrorid(errorid); |
| | | resultDataVO.setMsg(msg); |
| | |
| | | try { //记录日志 |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryData"); |
| | | }catch (Throwable e){ |
| | | log.error("保存日志信息失败:",e); |
| | | e.printStackTrace(); |
| | | } |
| | | log.info("返回参数:"+resultStr); |
| | |
| | | } catch (Throwable e) { |
| | | errorid = "101"; |
| | | msg = "接口参数:传入数据参数解析失败"; |
| | | log.error(msg,e); |
| | | e.printStackTrace(); |
| | | throw new Throwable("接口参数:传入数据参数解析失败"); |
| | | } |
| | | QueryData queryData=queryClassifyVO.getData(); |
| | | UserVO userVo=queryData.getUser(); |
| | | //免密登录申请token,request中添加用户信息 |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | systemId=queryData.getSystemId(); |
| | | //免密登录申请token,request中添加用户信息 |
| | | //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(),this.getRequest()); |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest()); |
| | | }catch (Throwable e){ |
| | | errorid = "1"; |
| | | log.error("用户鉴权失败",e); |
| | | throw new Throwable("用户鉴权失败"); |
| | | } |
| | | |
| | | QueryLibraryVO libraryVO= queryData.getLibrary(); |
| | | String libId= libraryVO.getId(); |
| | | List<String> classifyIdList= libraryVO.getClassifyid(); |
| | |
| | | String num=StringUtils.isBlank(codeFixedValueVO.getOrderNum()+"")?"":codeFixedValueVO.getOrderNum()+""; |
| | | String name=StringUtils.isBlank(codeFixedValueVO.getName())?"":codeFixedValueVO.getName(); |
| | | String description=StringUtils.isBlank(codeFixedValueVO.getDescription())?"":codeFixedValueVO.getDescription(); |
| | | CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id,num,value,name,"",description); |
| | | CodeSectionValueVO sectionValueVO=new CodeSectionValueVO(id,num,value,id,"",description); |
| | | codeSectionValueVOList.add(sectionValueVO); |
| | | }); |
| | | }else if(secType.equals("codeclassifysec")){//分类码段 |
| | |
| | | if (!CollectionUtils.isEmpty(ListMap)) { |
| | | ListMap.stream().forEach(map -> { |
| | | num[0]++; |
| | | String id = map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString(); |
| | | String value = map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String text = map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String description = map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString(); |
| | | CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, "", description); |
| | | String id =Func.isNull(map.getOrDefault("OID".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString(); |
| | | String value = Func.isNull(map.getOrDefault(valueField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String text =Func.isNull(map.getOrDefault(textField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String description =Func.isNull(map.getOrDefault("description".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString(); |
| | | CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, id, "", description); |
| | | codeSectionValueVOList.add(sectionValueVO); |
| | | }); |
| | | } |
| | |
| | | if (!CollectionUtils.isEmpty(ListMap)) { |
| | | ListMap.stream().forEach(map -> { |
| | | num[0]++; |
| | | String id = map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString(); |
| | | String value = map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String text = map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String description = map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString(); |
| | | String pid = map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), "").toString(); |
| | | String id =Func.isNull(map.getOrDefault("OID".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString(); |
| | | String value =Func.isNull(map.getOrDefault(valueField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String text =Func.isNull(map.getOrDefault(textField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String description =Func.isNull(map.getOrDefault("description".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString(); |
| | | String pid =Func.isNull(map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), "").toString(); |
| | | CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, pid, description); |
| | | codeSectionValueVOList.add(sectionValueVO); |
| | | }); |
| | |
| | | issucess=true; |
| | | resultClassifyRuleData.setLibrary(resultLibraryVO); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace();; |
| | | e.printStackTrace(); |
| | | msg="查询分类失败:"+e.getMessage(); |
| | | log.error("查询分类失败:",e); |
| | | }finally { |
| | | resultClassifyRuleData.setErrorid(errorid); |
| | | resultClassifyRuleData.setMsg(msg); |
| | |
| | | //记录日志 |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassifyRule"); |
| | | }catch (Throwable e){ |
| | | log.error("保存日志信息失败:",e); |
| | | e.printStackTrace(); |
| | | } |
| | | log.info("返回参数:"+resultStr); |
| | |
| | | try { |
| | | if ("xml".equals(dataType)) { |
| | | XStream xStream = new XStream(new DomDriver()); |
| | | xStream.processAnnotations(RootDataVO.class); |
| | | xStream.processAnnotations(ApplyBZVO.class); |
| | | xStream.autodetectAnnotations(true); |
| | | ApplyBZVO rootDataVO = (ApplyBZVO) xStream.fromXML(data); |
| | | applyBZParamVO.setData(rootDataVO); |
| | |
| | | } |
| | | } catch (Throwable e) { |
| | | errorid[0] = "101"; |
| | | log.error("接口参数:传入数据参数解析失败:",e); |
| | | throw new Throwable("接口参数:传入数据参数解析失败"); |
| | | } |
| | | classfyBZVO = applyBZParamVO.getData().getClassify(); |
| | | systemId = applyBZParamVO.getData().getSystemId(); |
| | | UserVO userVo = applyBZParamVO.getData().getUser(); |
| | | //免密登录申请token,request中添加用户信息 |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(), this.getRequest()); |
| | | AuthUtil.getUser(); |
| | | //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(), this.getRequest()); |
| | | try { |
| | | passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest()); |
| | | }catch (Throwable e){ |
| | | errorid[0] = "1"; |
| | | log.error("用户鉴权失败:",e); |
| | | throw new Throwable("用户鉴权失败"); |
| | | } |
| | | //这是账号信息 |
| | | SessionInfo sessionInfo = new SessionInfo(); |
| | | sessionInfo.setUserId(userVo.getUserName()); |
| | | sessionInfo.setUserName(userVo.getTrueName()); |
| | | sessionInfo.setIp(userVo.getIp()); |
| | | VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); |
| | | // List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>(); |
| | | String finalSystemId = systemId; |
| | | String libray=""; |
| | | boolean isCodeOrGroupCode=false; |
| | | |
| | | libray = classfyBZVO.getLibrary(); |
| | | CodeClassifyVO codeClassifyVO = getClassfy(classfyBZVO,libray); |
| | | log.info("end:分类查询完毕"); |
| | |
| | | //校验是否配置 |
| | | DockingSystemConfig dockingSystemConfig=null; |
| | | dockingSystemConfig=checkIspass(finalSystemId, SysIntegrationDataFlowTypeEnum.ACCEPT.getValue(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue(),codeClassifyVO.getOid()); |
| | | if(dockingSystemConfig==null){ |
| | | if(dockingSystemConfig==null||StringUtils.isBlank(dockingSystemConfig.getOid())){ |
| | | errorid[0] ="101"; |
| | | throw new Throwable("系统标识为【"+ finalSystemId +"】,集成分类为【"+codeClassifyVO.getName()+"】以上分类,"+sysIntegrationPushTypeEnum.ACCPET_APPCODE.getText()+"接口配置已停用或者未配置,请联系编码管理员!"); |
| | | } |
| | |
| | | } |
| | | CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); |
| | | if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ |
| | | objerrorCode="1"; |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板"); |
| | | objerrorCode="100"; |
| | | throw new Throwable ("根据传输的分类,未获取系统中对应模板"); |
| | | } |
| | | log.info("end:模板查询完毕"); |
| | | ApplyBZDatasVO applyBZDatasVO = classfyBZVO.getObjects(); |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && |
| | | ((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())) |
| | | ).collect(Collectors.toList()); |
| | | List<ApplyBZDataVO> applyBZDataVOList= applyBZDatasVO.getObject(); |
| | | if(applyBZDataVOList.size()>1){ |
| | | objerrorCode="1"; |
| | | throw new Throwable ("标准申请只支持一条数据申请"); |
| | | } |
| | | String finalLibray = libray; |
| | | ClassfyBZVO finalClassfyBZVO = classfyBZVO; |
| | | //规则的主键需要去获取 |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); |
| | | if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ |
| | | objerrorCode="1"; |
| | | log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息"); |
| | | throw new Throwable ("根据传输的分类,未获取分类相关信息"); |
| | | } |
| | | CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); |
| | | if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){ |
| | | objerrorCode="102"; |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应规则"); |
| | | } |
| | | log.info("end:规则获取完毕"); |
| | | List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classfyBZVO.getSections().getSection(), ruleVO,classifyFullInfo); |
| | | log.info("end:码段获取完毕"); |
| | | CodeBZApplyDTO codeBZApplyDTO=new CodeBZApplyDTO(); |
| | | codeBZApplyDTO.setSecDTOList(codeOrderSecDTOList);//分类码段 |
| | | applyBZDataVOList.stream().forEach(applyBZDataVO -> { |
| | | String code=""; |
| | | String id=applyBZDataVO.getId(); |
| | | try { |
| | | this.getConfigDatas(finalSystemId, finalLibray, applyBZDatasVO, attrVOS, dataObjectVO); |
| | | List<ProppertyVO> proppertyVOList=applyBZDataVO.getProp(); |
| | | String oldCodeValue=applyBZDataVO.getOldCode(); |
| | | setPropertyValue(oldCode,oldCodeValue,proppertyVOList);//源标准号 |
| | | boolean editSeriesFlag= applyBZDataVO.isEditSeriesFlag(); |
| | | setPropertyValue(isEditSeries,String.valueOf(editSeriesFlag),proppertyVOList);//是否更为系列 |
| | | boolean seriesFlag=applyBZDataVO.isSeriesFlag(); |
| | | setPropertyValue(isSeries,String.valueOf(seriesFlag),proppertyVOList);//源标准类型 |
| | | String operationTypeValue=applyBZDataVO.getOperationType(); |
| | | setPropertyValue(operationType,operationTypeValue,proppertyVOList);//操作类型1:制定,2:修订 |
| | | String releaseTimeValue= applyBZDataVO.getReleaseTime(); |
| | | setPropertyValue(releaseTime,releaseTimeValue,proppertyVOList);//发布时间 |
| | | String seriesFlow=applyBZDataVO.getSeriesFlow();//系列流水 |
| | | codeBZApplyDTO.setOldCode(oldCodeValue); |
| | | codeBZApplyDTO.setReleaseTime(releaseTimeValue); |
| | | codeBZApplyDTO.setEditSeries(editSeriesFlag); |
| | | codeBZApplyDTO.setSeries(seriesFlag); |
| | | codeBZApplyDTO.setOperationType(operationTypeValue); |
| | | codeBZApplyDTO.setSeriesFlow(seriesFlow); |
| | | codeBZApplyDTO.setCodeClassifyOid(codeClassifyVO.getOid()); |
| | | codeBZApplyDTO.setCodeRuleOid(ruleVO.getOid()); |
| | | codeBZApplyDTO.setTemplateOid(templateVO.getOid()); |
| | | codeBZApplyDTO.setCreator(applyBZDataVO.getCreator()); |
| | | codeBZApplyDTO.setLastModifier(applyBZDataVO.getEditor()); |
| | | codeBZApplyDTO.setLcStatus(applyBZDataVO.getStatus()); |
| | | ApplyBZDatasVO newApplyBZDatasVO=new ApplyBZDatasVO(); |
| | | applyBZDataVO.setProp(proppertyVOList); |
| | | newApplyBZDatasVO.setObject(Arrays.asList(applyBZDataVO)); |
| | | log.info("end:数据组织完毕"); |
| | | //规则的主键需要去获取 |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); |
| | | if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ |
| | | objerrorCode="1"; |
| | | log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息"); |
| | | throw new Throwable ("根据传输的分类,未获取分类相关信息"); |
| | | } |
| | | CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); |
| | | if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){ |
| | | objerrorCode="102"; |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应规则"); |
| | | } |
| | | log.info("end:规则获取完毕"); |
| | | //List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(ruleVO,classifyFullInfo); |
| | | log.info("end:码段获取完毕"); |
| | | CodeOrderDTO orderDTO = new CodeOrderDTO(); |
| | | orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键 |
| | | //orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段 |
| | | //mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode); |
| | | //allResultDataObjectDetailDOS.add(resultDataObjectDetailDOs); |
| | | log.info("end:申请获取完毕"); |
| | | this.getConfigDatas(finalSystemId, finalLibray, newApplyBZDatasVO, attrVOS, dataObjectVO); |
| | | log.info("end:数据组织完毕"); |
| | | codeBZApplyDTO.setData(dataObjectVO.getRowData().get(0).getFiledValue()); |
| | | code=engineService.addSaveBZCodeNotauthUser(codeBZApplyDTO,false); |
| | | msg="编码申请成功:编码为:"+code; |
| | | } catch (Throwable e) { |
| | | List<ApplyBZDataVO> applyDataVOList = finalClassfyBZVO.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); |
| | | } |
| | | msg="编码申请失败:" +e.getMessage(); |
| | | log.error(msg,e); |
| | | e.printStackTrace(); |
| | | }finally { |
| | | XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); |
| | | xmlResultDataObjectDetailDO.setCode(code); |
| | | xmlResultDataObjectDetailDO.setId(id); |
| | | xmlResultDataObjectDetailDO.setErrorid(objerrorCode); |
| | | xmlResultDataObjectDetailDO.setMsg(msg); |
| | | resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); |
| | | } |
| | | }); |
| | | XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO(); |
| | |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | msg="申请编码失败:"+e.getMessage(); |
| | | log.error(msg,e); |
| | | }finally { |
| | | |
| | | XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); |
| | | xmlResultSystemVO.setClassifys(resultClassfyVOList); |
| | | xmlResultSystemVO.setMsg(msg); |
| | |
| | | if(!CollectionUtils.isEmpty(resultClassfyVOList)) { |
| | | resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> { |
| | | xMLResultClassfyVO.getObjects().stream().forEach(objec -> { |
| | | if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) { |
| | | if (!(objec.getErrorid().equals("0")||objec.getErrorid().equals("201")||objec.getErrorid().equals("205") || objec.getErrorid().equals("204"))) { |
| | | issucess[0] = false; |
| | | msg=objec.getMsg(); |
| | | } |
| | | msg=objec.getMsg(); |
| | | }); |
| | | }); |
| | | } |
| | |
| | | //记录日志 |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCodeForBZ"); |
| | | }catch (Throwable e){ |
| | | log.error("保存日志信息失败:",e); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | |
| | | //调用集团申请接口申请集团码 |
| | | return resultStr; |
| | | } |
| | | |
| | | private void setPropertyValue(String key,String value,List<ProppertyVO> proppertyVOList){ |
| | | ProppertyVO proppertyVO=new ProppertyVO(); |
| | | proppertyVO.setKey(key); |
| | | proppertyVO.setValue(StringUtils.isBlank(value)?"":value); |
| | | proppertyVOList.add(proppertyVO); |
| | | |
| | | } |
| | | |
| | | /*** |
| | | * 查询校验分类信息 |
| | | * @param classfyVO |
| | |
| | | if (!CollectionUtils.isEmpty(codeClassifyList)) { |
| | | codeClassifyList.stream().forEach(codeClassify -> { |
| | | CodeClassifyVO codeClassifyVO= classifyService.getTopClassifyVO(codeClassify.getOid()); |
| | | if(codeClassifyVO.getId().equals(libray)){ |
| | | if(codeClassifyVO.getId().toUpperCase(Locale.ROOT).equals(libray.toUpperCase(Locale.ROOT))){ |
| | | newCodeClassify[0] =codeClassify; |
| | | } |
| | | }); |
| | |
| | | } |
| | | }catch (Throwable e){ |
| | | objerrorCode="100"; |
| | | log.error("获取分类信息失败:",e); |
| | | throw new Throwable("获取分类信息失败:"+e.getMessage()); |
| | | } |
| | | return classifyVO; |
| | | } |
| | | |
| | | /*** |
| | | * 查询校验分类信息 |
| | | * @param classfyVO |
| | |
| | | if (!CollectionUtils.isEmpty(codeClassifyList)) { |
| | | codeClassifyList.stream().forEach(codeClassify -> { |
| | | CodeClassifyVO codeClassifyVO= classifyService.getTopClassifyVO(codeClassify.getOid()); |
| | | if(codeClassifyVO.getId().equals(libray)){ |
| | | if(codeClassifyVO.getId().toUpperCase(Locale.ROOT).equals(libray.toUpperCase(Locale.ROOT))){ |
| | | newCodeClassify[0] =codeClassify; |
| | | } |
| | | }); |
| | |
| | | } |
| | | }catch (Throwable e){ |
| | | objerrorCode="100"; |
| | | log.error("获取分类信息失败:",e); |
| | | throw new Throwable("获取分类信息失败:"+e.getMessage()); |
| | | } |
| | | return classifyVO; |
| | |
| | | |
| | | private List<ClientBusinessObject> ChangeMapTOClientBusinessObjects(List<Map<String,String>> oldDataMap){ |
| | | List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>(); |
| | | DefaultAttrAssimtUtil.mapToLowerCase(oldDataMap,true); |
| | | final BladeUser user = AuthUtil.getUser(); |
| | | oldDataMap.stream().forEach(dataMap->{ |
| | | ClientBusinessObject clientBusinessObject=new ClientBusinessObject(); |
| | | DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject); |
| | | DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,false,user); |
| | | for (String key:dataMap.keySet()){ |
| | | Object value= dataMap.getOrDefault(key,""); |
| | | clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString()); |
| | |
| | | }); |
| | | return clientBusinessObjectList; |
| | | } |
| | | |
| | | |
| | | private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOsBZ(CodeRuleVO ruleVO,CodeClassifyFullInfoBO classifyFullInfo){ |
| | | List<CodeBasicSecVO> codeBasicSecVOS= ruleVO.getSecVOList(); |
| | |
| | | return codeOrderSecDTOList; |
| | | } |
| | | |
| | | |
| | | /*** |
| | | * 根据穿入的参数信息校验码段规则 |
| | | * 根据传入的参数信息校验码段规则 |
| | | */ |
| | | private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOs(List<SectionVO> SectionVOList,CodeRuleVO ruleVO,CodeClassifyFullInfoBO classifyFullInfo) throws Throwable{ |
| | | List<CodeBasicSecVO> codeBasicSecVOS= ruleVO.getSecVOList(); |
| | |
| | | Map<String,String> errorMap=new HashMap<>(); |
| | | for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) { |
| | | String sectype = codeBasicSecVO.getSecType(); |
| | | // String newSecName=codeBasicSecVO.getName(); |
| | | String classifySecOid= codeBasicSecVO.getOid(); |
| | | String message=""; |
| | | if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) { |
| | |
| | | CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid()); |
| | | String sectypeValue = sectionVOMap.get(name); |
| | | log.info("码段值:"+sectypeValue); |
| | | CodeSecTypeEnum secType = CodeSecTypeEnum.forValue(sectype); |
| | | if(CODE_CLASSIFY_SEC.equals(secType)) {//如果是分类的话,则需要匹配传过来的分类代号与 |
| | | // CodeSecTypeEnum secType = CodeSecTypeEnum.forValue(sectype); |
| | | if(CODE_CLASSIFY_SEC.getValue().equals(sectype)) {//如果是分类的话,则需要匹配传过来的分类代号与 |
| | | //先简称是否有关联模板,有模板要先删除 |
| | | List<CodeClassifyValue> codeClassifyValueDOList = codeClassifyValueService.list(Wrappers.<CodeClassifyValue>query().lambda().eq(CodeClassifyValue::getCodeClassifySecOid,classifySecOid)); |
| | | |
| | | if (!CollectionUtils.isEmpty(codeClassifyValueDOList)) { |
| | | Map<String, CodeClassifyValue> codeClassifyValueDOMap = codeClassifyValueDOList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t, (o1, o2) -> o2)); |
| | | if(codeClassifyValueDOMap.containsKey(sectypeValue)){ |
| | |
| | | errorMap.put("error",errorMap.getOrDefault("error","")+";"+message); |
| | | } |
| | | } |
| | | }else if(CODE_REFER_SEC.getValue().equals(sectype)){ |
| | | String referBtmId=codeBasicSecVO.getReferBtmId(); |
| | | String btmName=codeBasicSecVO.getReferBtmName(); |
| | | String referConfig= codeBasicSecVO.getReferConfig(); |
| | | CoderefersecSearchVO coderefersecSearchVO=new CoderefersecSearchVO(); |
| | | if(StringUtils.isNotBlank(referConfig)){ |
| | | coderefersecSearchVO = JSONObject.toJavaObject(JSONObject.parseObject(referConfig), CoderefersecSearchVO.class); |
| | | } |
| | | String buildSqlwhere=""; |
| | | List<CodeSectionValueVO> codeSectionValueVOList=new ArrayList<>(); |
| | | if(coderefersecSearchVO!=null) { |
| | | Map<String, Object> condtionMap = new HashMap<>(); |
| | | String valueField= coderefersecSearchVO.getValueField(); |
| | | if(StringUtils.isNotBlank(valueField)){ |
| | | condtionMap.put(valueField,sectypeValue); |
| | | } |
| | | if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.DEFAULT.getValue()) || coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.GRID.getValue())) {//默认样式/列表 |
| | | List<CodeSrchCondConfigVO> codeSrchCondConfigVOList = coderefersecSearchVO.getCodeSrchCondConfigVOS(); |
| | | if (!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) { |
| | | codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> { |
| | | condtionMap.put(codeSrchCondConfigVO.getFilterField() + codeSrchCondConfigVO.getFilterType(), codeSrchCondConfigVO.getFilterValue()); |
| | | }); |
| | | } |
| | | if(!CollectionUtils.isEmpty(condtionMap)) { |
| | | buildSqlwhere = UBCSSqlKeyword.buildSqlwhere(condtionMap); |
| | | } |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId)); |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | String referTable = listR.getData().get(0).getTableName(); |
| | | StringBuffer sb = new StringBuffer(); |
| | | sb.append(" select * from "); |
| | | sb.append(referTable); |
| | | sb.append(" where 1=1 "); |
| | | if (StringUtils.isNotBlank(buildSqlwhere)) { |
| | | sb.append(buildSqlwhere); |
| | | } |
| | | List<Map> ListMap = commonsMapper.selectBySql(sb.toString()); |
| | | //String valueField = coderefersecSearchVO.getValueField(); |
| | | String textField = coderefersecSearchVO.getTextField(); |
| | | final int[] num = {0}; |
| | | if (!CollectionUtils.isEmpty(ListMap)) { |
| | | ListMap.stream().forEach(map -> { |
| | | num[0]++; |
| | | String id = Func.isNull(map.getOrDefault("OID".toUpperCase(Locale.ROOT), "")) ? "" : map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString(); |
| | | String value = Func.isNull(map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "")) ? "" : map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String text = Func.isNull(map.getOrDefault(textField.toUpperCase(Locale.ROOT), "")) ? "" : map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String description = Func.isNull(map.getOrDefault("description".toUpperCase(Locale.ROOT), "")) ? "" : map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString(); |
| | | CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, id, "", description); |
| | | codeSectionValueVOList.add(sectionValueVO); |
| | | }); |
| | | } |
| | | }else if (coderefersecSearchVO.getType().equals(CodeReferConfigTypeEnum.TREE.getValue())) {//树形 |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referBtmId)); |
| | | if (!listR.isSuccess() || listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | String referTable = listR.getData().get(0).getTableName(); |
| | | |
| | | String oidFieldName = StringUtils.isNotBlank(coderefersecSearchVO.getParentUsedField())?coderefersecSearchVO.getParentUsedField():coderefersecSearchVO.getValueField(); |
| | | String parentValue =coderefersecSearchVO.getParentValue(); |
| | | String parentFieldName =StringUtils.isBlank(coderefersecSearchVO.getParentFieldName())?"":coderefersecSearchVO.getParentFieldName(); |
| | | List<CodeSrchCondConfigVO> codeSrchCondConfigVOList = coderefersecSearchVO.getCodeSrchCondConfigVOS(); |
| | | List<CodeShowFieldConfigVO> codeShowFieldConfigVOS=coderefersecSearchVO.getCodeShowFieldConfigVOS(); |
| | | if (!CollectionUtils.isEmpty(codeSrchCondConfigVOList)) { |
| | | codeSrchCondConfigVOList.stream().forEach(codeSrchCondConfigVO -> { |
| | | condtionMap.put(codeSrchCondConfigVO.getFilterField() + codeSrchCondConfigVO.getFilterType(), codeSrchCondConfigVO.getFilterValue()); |
| | | }); |
| | | } |
| | | if(!CollectionUtils.isEmpty(condtionMap)) { |
| | | buildSqlwhere = UBCSSqlKeyword.buildSqlwhere(condtionMap); |
| | | } |
| | | //if("all".equals(coderefersecSearchVO.getLoadType())) { |
| | | String parentOidSql = ""; |
| | | if(StringUtils.isNotBlank(parentValue)){ |
| | | String temp=parentValue; |
| | | if(temp.startsWith(QueryOptionConstant.IN)){ |
| | | temp = temp.substring((QueryOptionConstant.IN).length()).trim(); |
| | | parentOidSql = " in " + ((temp.startsWith("(") && temp.endsWith(")"))?temp:"(" + temp + ")"); |
| | | }else if(temp.startsWith(QueryOptionConstant.NOTIN)){ |
| | | parentOidSql = " not in " + ((temp.startsWith("(") && temp.endsWith(")"))?temp:"(" + temp + ")"); |
| | | }else if(temp.startsWith(QueryOptionConstant.NOTEQUAL)){ |
| | | temp = temp.substring((QueryOptionConstant.NOTEQUAL).length()).trim(); |
| | | parentOidSql = QueryOptionConstant.NOTEQUAL + " " + ((temp.startsWith("'") && temp.endsWith("'"))?temp:"'" + temp + "'"); |
| | | }else if(temp.startsWith(QueryOptionConstant.MORETHAN)){ |
| | | temp = temp.substring((QueryOptionConstant.MORETHAN).length()).trim(); |
| | | parentOidSql = QueryOptionConstant.MORETHAN + " " + ((temp.startsWith("'") && temp.endsWith("'"))?temp:"'" + temp + "'"); |
| | | }else if(temp.startsWith(QueryOptionConstant.MORE)){ |
| | | temp = temp.substring((QueryOptionConstant.MORE).length()).trim(); |
| | | parentOidSql = QueryOptionConstant.MORE + " " + ((temp.startsWith("'") && temp.endsWith("'"))?temp:"'" + temp + "'"); |
| | | }else if(temp.startsWith(QueryOptionConstant.LESSTHAN)){ |
| | | temp = temp.substring((QueryOptionConstant.LESSTHAN).length()).trim(); |
| | | parentOidSql = QueryOptionConstant.LESSTHAN + " " + ((temp.startsWith("'") && temp.endsWith("'"))?temp:"'" + temp + "'"); |
| | | }else if(temp.startsWith(QueryOptionConstant.LESS)){ |
| | | temp = temp.substring((QueryOptionConstant.LESS).length()).trim(); |
| | | parentOidSql = QueryOptionConstant.LESS + " " + ((temp.startsWith("'") && temp.endsWith("'"))?temp:"'" + temp + "'"); |
| | | }else if (temp.startsWith(QueryOptionConstant.ISNOTNULL)) { |
| | | parentOidSql = " is not null"; |
| | | } else if (temp.startsWith(QueryOptionConstant.ISNULL)) { |
| | | parentOidSql = " is null"; |
| | | } else if(temp.contains("*")){ |
| | | parentOidSql = " like " + ((temp.startsWith("'") && temp.endsWith("'"))?temp:"'" + temp + "'").replace("*","%"); |
| | | }else { |
| | | parentOidSql = " = " + ((temp.startsWith("'") && temp.endsWith("'"))?temp:"'" + temp + "'"); |
| | | } |
| | | } |
| | | //查询全部的信息 |
| | | buildSqlwhere+= " and oid in (select oid from " +referTable + " START WITH " + coderefersecSearchVO.getParentFieldName() + " "+ |
| | | parentOidSql + |
| | | " CONNECT BY PRIOR " + oidFieldName + " = " + parentFieldName + ")"; |
| | | StringBuffer sb = new StringBuffer(); |
| | | sb.append(" select * from "); |
| | | sb.append(referTable); |
| | | sb.append(" where 1=1 "); |
| | | if (StringUtils.isNotBlank(buildSqlwhere)) { |
| | | sb.append(buildSqlwhere); |
| | | } |
| | | List<Map> ListMap = commonsMapper.selectBySql(sb.toString()); |
| | | String textField = coderefersecSearchVO.getTextField(); |
| | | final int[] num = {0}; |
| | | if (!CollectionUtils.isEmpty(ListMap)) { |
| | | ListMap.stream().forEach(map -> { |
| | | num[0]++; |
| | | String id =Func.isNull(map.getOrDefault("OID".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("OID".toUpperCase(Locale.ROOT), "").toString(); |
| | | String value =Func.isNull(map.getOrDefault(valueField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(valueField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String text =Func.isNull(map.getOrDefault(textField.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(textField.toUpperCase(Locale.ROOT), "").toString(); |
| | | String description =Func.isNull(map.getOrDefault("description".toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault("description".toUpperCase(Locale.ROOT), "").toString(); |
| | | String pid =Func.isNull(map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), ""))?"":map.getOrDefault(parentFieldName.toUpperCase(Locale.ROOT), "").toString(); |
| | | CodeSectionValueVO sectionValueVO = new CodeSectionValueVO(id, num[0] + "", value, text, pid, description); |
| | | codeSectionValueVOList.add(sectionValueVO); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | if(!CollectionUtils.isEmpty(codeSectionValueVOList)){ |
| | | Map<String, CodeSectionValueVO> codeSectionValueVOMap = codeSectionValueVOList.stream().collect(Collectors.toMap(s -> s.getValue(), t -> t, (o1, o2) -> o2)); |
| | | if(!codeSectionValueVOMap.containsKey(sectypeValue)){ |
| | | message="传入的编码规则码段:【"+name+"】为"+CODE_REFER_SEC.getText()+",其对应的值【"+sectypeValue+"】,在编码系统不存在"; |
| | | errorMap.put("error",errorMap.getOrDefault("error","")+";"+message); |
| | | } |
| | | }else{ |
| | | message="传入的编码规则码段:【"+name+"】为"+CODE_REFER_SEC.getText()+",其对应的值【"+sectypeValue+"】,在编码系统不存在"; |
| | | errorMap.put("error",errorMap.getOrDefault("error","")+";"+message); |
| | | } |
| | | } |
| | | if(StringUtils.isBlank(sectypeValue)){ |
| | | message="传入的分类码段:【" + name + " 】的值不允许为空"; |
| | | |
| | | if(StringUtils.isBlank(sectypeValue)&&!name.equals(secName)){ |
| | | message="传入的码段:【" + name + " 】的值不允许为空"; |
| | | errorMap.put("error",errorMap.getOrDefault("error","")+";"+message); |
| | | } |
| | | CodeOrderSecDTO.setSecValue(sectypeValue); |
| | | codeOrderSecDTOList.add(CodeOrderSecDTO); |
| | | } else { |
| | | message="传入的码段规则缺少" + name + "码段"; |
| | | message="传入的码段规则缺少" + name; |
| | | errorMap.put("error",errorMap.getOrDefault("error","")+";"+message); |
| | | } |
| | | } |
| | |
| | | return codeOrderSecDTOList; |
| | | } |
| | | |
| | | /*** |
| | | * 读取属性映射配置信息 |
| | | * @param systemId |
| | | * @param libray |
| | | * @param applyDatasVO |
| | | * @param codeClassifyTemplateAttrVOList |
| | | * @param dataObjectVO |
| | | * @throws Throwable |
| | | */ |
| | | public void getConfigDatas(String systemId,String libray, ApplyBZDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable { |
| | | |
| | | LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>(); |
| | | // LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>(); |
| | | //如果将数据转换成所需要的数据对象 |
| | | Map<String, String> attrMapConfigMap=new HashMap<>(); |
| | | Map<String, String> propMaps=new HashMap<>(); |
| | | try { |
| | | log.info("开始读取系统配置文件 start"); |
| | | Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap(); |
| | | log.info("集成系统属性映射配置文件条目数-》"+stringStringMap.size()); |
| | | //stringStringMap.put("RLM","D:\\RLM.xml"); |
| | | if(!CollectionUtils.isEmpty(stringStringMap)) { |
| | | log.info("开始读取系统配置文件 start"); |
| | | Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap(); |
| | | log.info("集成系统属性映射配置文件条目数-》"+stringStringMap.size()); |
| | | //stringStringMap.put("RLM","D:\\RLM.xml"); |
| | | if(!CollectionUtils.isEmpty(stringStringMap)) { |
| | | List<LibraryClsfDO> libraryClsfDOList=new ArrayList<>(); |
| | | try { |
| | | log.info("info:需要读取配置文件"); |
| | | LibraryDO libraryDO = gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId, stringStringMap); |
| | | List<LibraryClsfDO> libraryClsfDOList = libraryDO.getClsf(); |
| | | if(!CollectionUtils.isEmpty(libraryClsfDOList)) { |
| | | Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2)); |
| | | log.info("根据参数:libray:-》" + libray + "从配置文件中找对应属性映射配置"); |
| | | String path=stringStringMap.get(systemId); |
| | | if (libPropMaps.containsKey(libray)) { |
| | | log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息"); |
| | | List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray); |
| | | propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2)); |
| | | log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息,属性映射条目数+" + clsfAttrMappingDOList.size()); |
| | | }else{ |
| | | throw new Throwable("根据系统标识【"+systemId+"】找到对应的配置文件:【"+path+"】,但未获取到对应的库【"+libray+"】属性映射信息配置"); |
| | | } |
| | | } |
| | | libraryClsfDOList = libraryDO.getClsf(); |
| | | } catch (Throwable e) { |
| | | objerrorCode = "1"; |
| | | e.printStackTrace(); |
| | | log.error("集成系统属性配置文件读取失败:",e); |
| | | throw new Throwable("集成系统标识为:【" + systemId + "】,分类库为:【" + libray + "】的集成属性配置文件读取失败"); |
| | | } |
| | | log.info("根据参数:libray:-》"+libray+"从配置文件中找对应属性映射配置 end "); |
| | | }catch (Throwable e){ |
| | | objerrorCode="1"; |
| | | e.printStackTrace(); |
| | | throw new Throwable("MDM集成属性配置文件读取失败"); |
| | | // String path = stringStringMap.get(systemId); |
| | | // 忽略key大小写,获取配置的映射文件路径 |
| | | String path = VciBaseUtil.getMapStrValueIgnoreCase(stringStringMap,systemId); |
| | | if (!CollectionUtils.isEmpty(libraryClsfDOList)) { |
| | | Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2)); |
| | | log.info("根据参数:libray:-》" + libray + "从配置文件中找对应属性映射配置"); |
| | | if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) { |
| | | log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息"); |
| | | List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT)); |
| | | propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2)); |
| | | log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息,属性映射条目数+" + clsfAttrMappingDOList.size()); |
| | | } else { |
| | | objerrorCode = "1"; |
| | | throw new Throwable("根据系统标识【" + systemId + "】找到对应的配置文件:【" + path + "】,但未获取到对应的库【" + libray + "】属性映射信息配置"); |
| | | } |
| | | }else{ |
| | | objerrorCode = "1"; |
| | | throw new Throwable("根据系统标识【" + systemId + "】找到对应的配置文件:【" + path + "】,但未获取到对应的库【" + libray + "】属性映射信息配置"); |
| | | } |
| | | }else{ |
| | | objerrorCode = "1"; |
| | | throw new Throwable("未获取到集成属性映射系统配置信息"); |
| | | } |
| | | log.info("根据参数:libray:-》"+libray+"从配置文件中找对应属性映射配置 end "); |
| | | LinkedList<String> rowNameList=new LinkedList<>(); |
| | | LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>(); |
| | | //根据分类模板组织数据 |
| | |
| | | LinkedHashMap<Integer, String> integerValueMap = new LinkedHashMap<>(); |
| | | Map<String, String> filedValueMap = new HashMap<>(); |
| | | if (!CollectionUtils.isEmpty(proppertyVOList)) { |
| | | Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2)); |
| | | Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2)); |
| | | Map<String, String> keyValueMap = new HashMap<>(); |
| | | //判断attrMapConfigMap是否有值,如果没有则说明基础默认的是编码系统字段 |
| | | if (!CollectionUtils.isEmpty(attrMapConfigMap)) { |
| | |
| | | String dataValue = sourceKeyValueMap.get(sourceKey); |
| | | if (attrMapConfigMap.containsKey(sourceKey)) { |
| | | String targetKey = attrMapConfigMap.get(sourceKey); |
| | | log.info("xxxxx属性映射值:sourceKey【"+sourceKey+"】——》+targetKey---》"+targetKey+":"+dataValue); |
| | | keyValueMap.put(targetKey, StringUtils.isBlank(dataValue)?"":dataValue); |
| | | } |
| | | }); |
| | |
| | | dataObjectVO.setRowData(rowDataList); |
| | | }catch (Throwable e){ |
| | | objerrorCode="1"; |
| | | throw new Throwable("组织数据映射值失败"); |
| | | log.error("组织属性映射值失败:",e); |
| | | throw new Throwable("组织属性映射值失败"); |
| | | } |
| | | } |
| | | |
| | | /*** |
| | | * 根据属性映射转换编码所需字段 |
| | | * 读取属性映射配置信息 |
| | | * @param systemId |
| | | * @param libray |
| | | * @param applyDatasVO |
| | | * @param codeClassifyTemplateAttrVOList |
| | | * @param dataObjectVO |
| | | * @throws Throwable |
| | | */ |
| | | public void getConfigDatas(String systemId,String libray, ApplyDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable { |
| | | |
| | |
| | | //如果将数据转换成所需要的数据对象 |
| | | Map<String, String> attrMapConfigMap=new HashMap<>(); |
| | | Map<String, String> propMaps=new HashMap<>(); |
| | | try { |
| | | log.info("开始读取系统配置文件 start"); |
| | | Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap(); |
| | | log.info("集成系统属性映射配置文件条目数-》"+stringStringMap.size()); |
| | | //stringStringMap.put("RLM","D:\\RLM.xml"); |
| | | if(!CollectionUtils.isEmpty(stringStringMap)) { |
| | | log.info("开始读取系统配置文件 start"); |
| | | Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap(); |
| | | log.info("集成系统属性映射配置文件条目数-》"+stringStringMap.size()); |
| | | if(!CollectionUtils.isEmpty(stringStringMap)) { |
| | | List<LibraryClsfDO> libraryClsfDOList=new ArrayList<>(); |
| | | try { |
| | | log.info("info:需要读取配置文件"); |
| | | LibraryDO libraryDO = gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId, stringStringMap); |
| | | List<LibraryClsfDO> libraryClsfDOList = libraryDO.getClsf(); |
| | | if(!CollectionUtils.isEmpty(libraryClsfDOList)) { |
| | | Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2)); |
| | | log.info("根据参数:libray:-》" + libray + "从配置文件中找对应属性映射配置"); |
| | | String path=stringStringMap.get(systemId); |
| | | if (libPropMaps.containsKey(libray)) { |
| | | log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息"); |
| | | List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray); |
| | | propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2)); |
| | | log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息,属性映射条目数+" + clsfAttrMappingDOList.size()); |
| | | }else{ |
| | | throw new Throwable("根据系统标识【"+systemId+"】找到对应的配置文件:【"+path+"】,但未获取到对应的库【"+libray+"】属性映射信息配置"); |
| | | } |
| | | } |
| | | libraryClsfDOList = libraryDO.getClsf(); |
| | | } catch (Throwable e) { |
| | | objerrorCode = "1"; |
| | | e.printStackTrace(); |
| | | log.error("集成属性配置文件读取失败:",e); |
| | | throw new Throwable("集成系统标识为:【" + systemId + "】,分类库为:【" + libray + "】的集成属性配置文件读取失败"); |
| | | } |
| | | log.info("根据参数:libray:-》"+libray+"从配置文件中找对应属性映射配置 end "); |
| | | }catch (Throwable e){ |
| | | objerrorCode="1"; |
| | | e.printStackTrace(); |
| | | throw new Throwable("MDM集成属性配置文件读取失败"); |
| | | // String path = stringStringMap.get(systemId); |
| | | // 忽略key大小写,获取配置的映射文件路径 |
| | | String path = VciBaseUtil.getMapStrValueIgnoreCase(stringStringMap,systemId); |
| | | if (!CollectionUtils.isEmpty(libraryClsfDOList)) { |
| | | Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2)); |
| | | log.info("根据参数:libray:-》" + libray + "从配置文件中找对应属性映射配置"); |
| | | if (libPropMaps.containsKey(libray.toUpperCase(Locale.ROOT))) { |
| | | log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息"); |
| | | List<ClsfAttrMappingDO> clsfAttrMappingDOList = libPropMaps.get(libray.toUpperCase(Locale.ROOT)); |
| | | propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2)); |
| | | log.info("根据参数:libray:-》" + libray + "匹配到相应的属性映射信息,属性映射条目数+" + clsfAttrMappingDOList.size()); |
| | | } else { |
| | | objerrorCode = "1"; |
| | | throw new Throwable("根据系统标识【" + systemId + "】找到对应的配置文件:【" + path + "】,但未获取到对应的库【" + libray + "】属性映射信息配置"); |
| | | } |
| | | }else{ |
| | | objerrorCode = "1"; |
| | | throw new Throwable("根据系统标识【" + systemId + "】找到对应的配置文件:【" + path + "】,但未获取到对应的库【" + libray + "】属性映射信息配置"); |
| | | } |
| | | }else{ |
| | | objerrorCode = "1"; |
| | | throw new Throwable("未获取到集成属性映射系统配置信息"); |
| | | } |
| | | log.info("根据参数:libray:-》"+libray+"从配置文件中找对应属性映射配置 end "); |
| | | LinkedList<String> rowNameList=new LinkedList<>(); |
| | | LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>(); |
| | | //根据分类模板组织数据 |
| | | final int[] index = {0}; |
| | | try { |
| | | //除去默认的属性.还有只有具有分类注入的才过滤出来 |
| | | codeClassifyTemplateAttrVOList = codeClassifyTemplateAttrVOList.stream().filter( |
| | | s ->!DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && |
| | | ((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || VciBaseUtil.getBoolean(s.getFormDisplayFlag())) |
| | | ).collect(Collectors.toList()); |
| | | codeClassifyTemplateAttrVOList.stream().forEach(codeClassifyTemplateAttrVO -> { |
| | | String attrName = codeClassifyTemplateAttrVO.getName(); |
| | | String field = codeClassifyTemplateAttrVO.getId(); |
| | |
| | | String dataValue = sourceKeyValueMap.get(sourceKey); |
| | | if (attrMapConfigMap.containsKey(sourceKey)) { |
| | | String targetKey = attrMapConfigMap.get(sourceKey); |
| | | log.info("xxxxx属性映射值:sourceKey【"+sourceKey+"】——》+targetKey---》"+targetKey+":"+dataValue); |
| | | keyValueMap.put(targetKey, StringUtils.isBlank(dataValue)?"":dataValue); |
| | | } |
| | | }); |
| | |
| | | dataObjectVO.setRowData(rowDataList); |
| | | }catch (Throwable e){ |
| | | objerrorCode="1"; |
| | | throw new Throwable("组织数据映射值失败"); |
| | | log.error("组织属性映射值失败:",e); |
| | | throw new Throwable("组织属性映射值失败"); |
| | | } |
| | | } |
| | | |
| | | /*** |
| | | * 记录日志信息 |
| | | * @param systemId |
| | |
| | | dockingLoge.setInterfaceStatus("false");//接口集成状态 |
| | | } |
| | | dockingLogeService.save(dockingLoge); |
| | | log.info("集成推送数据成功,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData); |
| | | log.info("集成推送数据,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData); |
| | | } |
| | | |
| | | /*** |
| | |
| | | */ |
| | | private DockingSystemConfig checkIspass(String systemId,String type,String operationType,String classOid){ |
| | | log.info("systemId:"+systemId+",type:"+SysIntegrationDataFlowTypeEnum.getTextByValue(type)+",operationType:"+sysIntegrationPushTypeEnum.getTextByValue(operationType)+",classOid:"+classOid); |
| | | CodeClassifyVO codeClassifyVO= classifyService.getObjectByOid(classOid); |
| | | classOid=codeClassifyVO.getOid(); |
| | | //CodeClassifyVO codeClassifyVO= classifyService.getObjectByOid(classOid); |
| | | List<CodeClassify> codeClassifyList= classifyService.selectAllLevelParentByOid(classOid); |
| | | List<String> classifyOids=new ArrayList<>(); |
| | | if(!CollectionUtils.isEmpty(codeClassifyList)) { |
| | | classifyOids = codeClassifyList.stream().map(CodeClassify::getOid).collect(Collectors.toList()); |
| | | }else{ |
| | | return null; |
| | | } |
| | | //classOid=codeClassifyVO.getOid(); |
| | | //根据类型去查询需要集成的分类或者数据 |
| | | LambdaQueryWrapper<DockingSystemConfig> queryWrapper = Wrappers.<DockingSystemConfig>lambdaQuery(); |
| | | queryWrapper.eq(DockingSystemConfig::getUsedFlag, MdmDuckingConstant.SEND_FLAG_TRUE); |
| | |
| | | queryWrapper.eq(DockingSystemConfig::getDataFlowType,type); |
| | | queryWrapper.eq(DockingSystemConfig::getPushType,operationType); |
| | | if(StringUtils.isNotBlank(classOid)){ |
| | | queryWrapper.in(DockingSystemConfig::getClassifyOid,classOid); |
| | | queryWrapper.in(DockingSystemConfig::getClassifyOid,classifyOids); |
| | | } |
| | | List<DockingSystemConfig> dockingSystemConfigList=new ArrayList<>(); |
| | | dockingSystemConfigList= dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper); |
| | | if(!CollectionUtils.isEmpty(dockingSystemConfigList)){ |
| | | return dockingSystemConfigList.get(0); |
| | | }else{ |
| | | return null; |
| | | } |
| | | /*if(!CollectionUtils.isEmpty(dockingSystemConfigList)){ |
| | | return dockingSystemConfigList.get(0); |
| | | }else{ |
| | | if(StringUtils.isNotBlank(codeClassifyVO.getParentCodeClassifyOid())) { |
| | |
| | | return dockingSystemConfigList.get(0); |
| | | }else{ |
| | | return new DockingSystemConfig(); |
| | | } |
| | | }*/ |
| | | } |
| | | } |