| | |
| | | import javax.annotation.Resource; |
| | | import java.util.*; |
| | | import java.util.concurrent.CopyOnWriteArrayList; |
| | | import java.util.concurrent.atomic.AtomicBoolean; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; |
| | | import static com.vci.ubcs.code.constant.MdmEngineConstant.IMPORT_ROW_INDEX; |
| | | import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC; |
| | | |
| | | /*** |
| | |
| | | boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode(); |
| | | String systemCode=personData.getSystemCode(); |
| | | List<ResultMdMapping> resultMdMappingList=new ArrayList<>(); |
| | | boolean success=true; |
| | | String message=""; |
| | | if(isUsedFlag){ |
| | | AtomicBoolean success= new AtomicBoolean(true); |
| | | List<PersonMasterData> masterDataList=new ArrayList<>(); |
| | | List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields()); |
| | | try { |
| | |
| | | masterDataList = personData.getMasterData(); |
| | | String personLibrary = personAndDeptConfig.getPersonLibrary(); |
| | | if (StringUtils.isBlank(personLibrary)) { |
| | | success=false; |
| | | success.set(false); |
| | | log.info("集成配置缺少人员库节点信息,personLibrary->" + personLibrary); |
| | | throw new Throwable("集成配置缺少人员库节点信息,personLibrary->" + personLibrary); |
| | | } |
| | |
| | | log.info("end:分类查询完毕"); |
| | | //获取分类模板信息 |
| | | if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ |
| | | success=false; |
| | | success.set(false); |
| | | throw new Throwable ("根据配置分类的分类编号,未获取到分类信息"); |
| | | } |
| | | CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); |
| | | if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ |
| | | success=false; |
| | | success.set(false); |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板"); |
| | | } |
| | | |
| | |
| | | deleteDataVOList.add(object); |
| | | }else{ |
| | | String worker_category=personMasterData.getWorker_category(); |
| | | codeList.add(personMasterData.getLm_code()); |
| | | |
| | | object.setOperate("create"); |
| | | applyDataVOList.add(object); |
| | | } |
| | | codeList.add(personMasterData.getLm_code()); |
| | | }); |
| | | |
| | | R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); |
| | |
| | | orderDTO.setCodeRuleOid(ruleVO.getOid()); |
| | | orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码 |
| | | orderDTO.setData(rowData.getFiledValue()); |
| | | engineService.addSaveCode(orderDTO); |
| | | String code=engineService.addSaveCode(orderDTO); |
| | | if(StringUtils.isNotBlank(code)) { |
| | | StringBuffer sqlsb = new StringBuffer(); |
| | | sqlsb.append(" select * from "); |
| | | sqlsb.append(tableName); |
| | | sqlsb.append(" where 1=1 "); |
| | | sqlsb.append(" and lastr=1 and lastv=1"); |
| | | sqlsb.append(" and id in ("); |
| | | sqlsb.append(VciBaseUtil.toInSql(code)); |
| | | sqlsb.append(")"); |
| | | List<Map<String, String>> newDataMapList = commonsMapper.queryByOnlySqlForMap(sqlsb.toString()); |
| | | if (!CollectionUtils.isEmpty(newDataMapList)) { |
| | | String oid = StringUtils.isBlank(newDataMapList.get(0).get("OID")) ? "" : newDataMapList.get(0).get("OID"); |
| | | List<String> oidList = new ArrayList<>(); |
| | | oidList.add(oid); |
| | | //如果有申请就去调用申请集团码 |
| | | if (isPersonApplyGroupCode) { |
| | | mdmIOService.sendApplyGroupcode(oidList, templateVO.getBtmTypeId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue()); |
| | | success.set(true); |
| | | mesg = "数据保存成功,等待申请集团码"; |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | mesg=e.getMessage(); |
| | | e.getMessage(); |
| | | e.printStackTrace(); |
| | | }finally { |
| | | XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO(); |
| | |
| | | } |
| | | }); |
| | | resultDataObjectDetailDOs.addAll(xDOs); |
| | | boolean finalSuccess1 = success; |
| | | boolean finalSuccess1 = success.get(); |
| | | String finalMessage1 = message; |
| | | resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ |
| | | ResultMdMapping resultMdMapping=new ResultMdMapping(); |
| | |
| | | resultMdMappingList.add(resultMdMapping); |
| | | }); |
| | | log.info("end:申请获取完毕"); |
| | | //如果有申请就去调用申请集团码 |
| | | if(isPersonApplyGroupCode){ |
| | | List<String> oidList=new ArrayList<>(); |
| | | mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue()); |
| | | } |
| | | } |
| | | }catch (Throwable e){ |
| | | success=false; |
| | | success.set(false); |
| | | message="人员数据接受失败:"+e.getMessage(); |
| | | //组织返回结果 |
| | | boolean finalSuccess = success; |
| | | boolean finalSuccess = success.get(); |
| | | String finalMessage = message; |
| | | masterDataList.stream().forEach(masterData -> { |
| | | ResultMdMapping resultMdMapping=new ResultMdMapping(); |
| | |
| | | }); |
| | | }finally { |
| | | resultOrgData.setMessage(message); |
| | | resultOrgData.setSuccess(success); |
| | | resultOrgData.setSuccess(success.get()); |
| | | resultOrgData.setMdMappings(resultMdMappingList); |
| | | Object object = JSONObject.toJSON(resultOrgData); |
| | | } |
| | |
| | | String data = JSONObject.toJSONString(personData); |
| | | try { |
| | | //记录日志 |
| | | this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForPerson"); |
| | | this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForPerson"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | public ResultOrgData syncDataForOrg(OrgData orgData) { |
| | | boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); |
| | | ResultOrgData resultOrgData=new ResultOrgData(); |
| | | |
| | | boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode(); |
| | | List<ResultMdMapping> resultMdMappingList=new ArrayList<>(); |
| | | boolean success=true; |
| | | AtomicBoolean success= new AtomicBoolean(true); |
| | | String message=""; |
| | | String systemCode=""; |
| | | if(isUsedFlag){ |
| | |
| | | orgMasterDataList = orgData.getMasterData(); |
| | | String personLibrary = personAndDeptConfig.getPersonLibrary(); |
| | | if (StringUtils.isBlank(personLibrary)) { |
| | | success=false; |
| | | success.set(false); |
| | | log.info("集成配置缺少人员库节点信息,personLibrary->" + personLibrary); |
| | | throw new Throwable("集成配置缺少人员库节点信息,personLibrary->" + personLibrary); |
| | | } |
| | |
| | | log.info("end:分类查询完毕"); |
| | | //获取分类模板信息 |
| | | if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ |
| | | success=false; |
| | | success.set(false); |
| | | throw new Throwable ("根据配置分类的分类编号,未获取到分类信息"); |
| | | } |
| | | CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); |
| | | if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ |
| | | success=false; |
| | | success.set(false); |
| | | throw new Throwable ("根据传输的分类,未获取MDM系统中对应模板"); |
| | | } |
| | | |
| | |
| | | List<String> codeList=new ArrayList<>(); |
| | | List<ApplyDataVO> applyDataVOList=new ArrayList<>(); |
| | | List<ApplyDataVO> deleteDataVOList=new ArrayList<>(); |
| | | orgMasterDataList.stream().forEach(personMasterData -> { |
| | | orgMasterDataList.stream().forEach(orgMasterData -> { |
| | | ApplyDataVO object=new ApplyDataVO(); |
| | | object.setCode(personMasterData.getMdm_code());//编码 |
| | | object.setCreator(personMasterData.getCreator());//创建者 |
| | | object.setEditor(personMasterData.getModifier());//修改者 |
| | | object.setId(personMasterData.getPk_mdm());//主键 |
| | | object.setCode(orgMasterData.getMdm_code());//编码 |
| | | object.setCreator(orgMasterData.getCreator());//创建者 |
| | | object.setEditor(orgMasterData.getModifier());//修改者 |
| | | object.setId(orgMasterData.getPk_mdm());//主键 |
| | | object.setStatus(CodeDefaultLC.RELEASED.getValue());//状态则需要判断 |
| | | Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData); |
| | | Map<String,String> dataMap= VciBaseUtil.objectToMapString(orgMasterData); |
| | | List<ProppertyVO> proppertyVOList=new ArrayList<>(); |
| | | /*** |
| | | * 根据配置文件获取枚举值 |
| | |
| | | }); |
| | | |
| | | object.setProp(proppertyVOList); |
| | | if(personMasterData.getDr()==1){ |
| | | if(orgMasterData.getDr()==1){ |
| | | object.setOperate("delete");//操作类型 |
| | | deleteDataVOList.add(object); |
| | | }else{ |
| | | codeList.add(personMasterData.getMdm_code()); |
| | | |
| | | object.setOperate("create"); |
| | | applyDataVOList.add(object); |
| | | } |
| | | codeList.add(orgMasterData.getMdm_code()); |
| | | }); |
| | | |
| | | R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); |
| | |
| | | orderDTO.setCodeRuleOid(ruleVO.getOid()); |
| | | orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码 |
| | | orderDTO.setData(rowData.getFiledValue()); |
| | | engineService.addSaveCode(orderDTO); |
| | | String code=engineService.addSaveCode(orderDTO); |
| | | if(StringUtils.isNotBlank(code)) { |
| | | StringBuffer sqlsb = new StringBuffer(); |
| | | sqlsb.append(" select * from "); |
| | | sqlsb.append(tableName); |
| | | sqlsb.append(" where 1=1 "); |
| | | sqlsb.append(" and lastr=1 and lastv=1"); |
| | | sqlsb.append(" and id in ("); |
| | | sqlsb.append(VciBaseUtil.toInSql(code)); |
| | | sqlsb.append(")"); |
| | | List<Map<String, String>> newDataMapList = commonsMapper.queryByOnlySqlForMap(sqlsb.toString()); |
| | | if (!CollectionUtils.isEmpty(newDataMapList)) { |
| | | String oid = StringUtils.isBlank(newDataMapList.get(0).get("OID")) ? "" : newDataMapList.get(0).get("OID"); |
| | | List<String> oidList = new ArrayList<>(); |
| | | oidList.add(oid); |
| | | //如果有申请就去调用申请集团码 |
| | | if (isPersonApplyGroupCode) { |
| | | mdmIOService.sendApplyGroupcode(oidList, templateVO.getBtmTypeId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue()); |
| | | success.set(true); |
| | | mesg = "数据保存成功,等待申请集团码"; |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | mesg=e.getMessage(); |
| | | e.getMessage(); |
| | |
| | | } |
| | | }); |
| | | resultDataObjectDetailDOs.addAll(xDOs); |
| | | boolean finalSuccess1 = success; |
| | | boolean finalSuccess1 = success.get(); |
| | | String finalMessage1 = message; |
| | | resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ |
| | | ResultMdMapping resultMdMapping=new ResultMdMapping(); |
| | |
| | | resultMdMappingList.add(resultMdMapping); |
| | | }); |
| | | log.info("end:申请获取完毕"); |
| | | //如果有申请就去调用申请集团码 |
| | | if(isPersonApplyGroupCode){ |
| | | List<String> oidList=new ArrayList<>(); |
| | | mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue()); |
| | | } |
| | | } |
| | | }catch (Throwable e){ |
| | | success=false; |
| | | success.set(false); |
| | | message="人员数据接受失败:"+e.getMessage(); |
| | | //组织返回结果 |
| | | boolean finalSuccess = success; |
| | | boolean finalSuccess = success.get(); |
| | | String finalMessage = message; |
| | | orgMasterDataList.stream().forEach(masterData -> { |
| | | ResultMdMapping resultMdMapping=new ResultMdMapping(); |
| | |
| | | }); |
| | | }finally { |
| | | resultOrgData.setMessage(message); |
| | | resultOrgData.setSuccess(success); |
| | | resultOrgData.setSuccess(success.get()); |
| | | resultOrgData.setMdMappings(resultMdMappingList); |
| | | Object object = JSONObject.toJSON(resultOrgData); |
| | | } |
| | |
| | | String data = JSONObject.toJSONString(orgData); |
| | | try { |
| | | //记录日志 |
| | | this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForOrg"); |
| | | this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForOrg"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | } |
| | | log.info(libId); |
| | | }else if(secType.equals("codelevelsec")) {//层级码段 |
| | | int level = codeBasicSecVO.getCodeLevelValue(); |
| | | CodeClassifyVO levelCodeClassifyVO = new CodeClassifyVO(); |
| | | CodeClassifyFullInfoBO classifyFullInfoBO = this.classifyService.getClassifyFullInfo(codeClassifyDO.getOid()); |
| | | if(codeBasicSecVO.getCodeLevelType().equals("code_level_special")){//指定层级 |
| | | int level = codeBasicSecVO.getCodeLevelValue(); |
| | | List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList()); |
| | | if (classifyVOS.size() >= level && level > 0) { |
| | | levelCodeClassifyVO = classifyVOS.get(level - 1); |