| | |
| | | */ |
| | | @Override |
| | | public ResultOrgData syncDataForPerson(PersonData personData) { |
| | | |
| | | boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); |
| | | ResultOrgData resultOrgData=new ResultOrgData(); |
| | | |
| | | boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode(); |
| | | String systemCode=personData.getSystemCode(); |
| | | List<ResultMdMapping> resultMdMappingList=new ArrayList<>(); |
| | | boolean success=true; |
| | | String message=""; |
| | | if(isUsedFlag){ |
| | | List<PersonMasterData> masterDataList = personData.getMasterData(); |
| | | List<PersonMasterData> masterDataList=new ArrayList<>(); |
| | | List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields()); |
| | | try { |
| | | if(personData==null){ |
| | | throw new Throwable("ä¼ å
¥åæ°ä¸ºnull"); |
| | | } |
| | | masterDataList = personData.getMasterData(); |
| | | String personLibrary = personAndDeptConfig.getPersonLibrary(); |
| | | if (StringUtils.isBlank(personLibrary)) { |
| | | success=false; |
| | |
| | | object.setEditor(personMasterData.getModifier());//ä¿®æ¹è
|
| | | object.setId(personMasterData.getId());//ä¸»é® |
| | | object.setStatus(CodeDefaultLC.RELEASED.getValue());//ç¶æåéè¦å¤æ |
| | | |
| | | Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData); |
| | | List<ProppertyVO> proppertyVOList=new ArrayList<>(); |
| | | /*** |
| | | * æ ¹æ®é
ç½®æä»¶è·åæä¸¾å¼ |
| | | */ |
| | | fields.stream().forEach(field->{ |
| | | if(dataMap.containsKey(field)){ |
| | | String enumFiled= dataMap.get(field); |
| | | EnumerableData enumerableData=JSONObject.toJavaObject(JSONObject.parseObject(enumFiled),EnumerableData.class); |
| | | String enumCode=enumerableData.getCode(); |
| | | //String enumCodeValue=enumerableData.getName(); |
| | | ProppertyVO proppertyVO=new ProppertyVO(); |
| | | proppertyVO.setKey(field); |
| | | proppertyVO.setValue(enumCode); |
| | | proppertyVOList.add(proppertyVO); |
| | | dataMap.remove(field); |
| | | } |
| | | }); |
| | | dataMap.forEach((key,vaule)->{ |
| | | ProppertyVO proppertyVO=new ProppertyVO(); |
| | | proppertyVO.setKey(key); |
| | | proppertyVO.setValue(vaule); |
| | | proppertyVOList.add(proppertyVO); |
| | | }); |
| | | |
| | | object.setProp(proppertyVOList); |
| | | if(personMasterData.getDr()==1){ |
| | | object.setOperate("delete");//æä½ç±»å |
| | |
| | | LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>(); |
| | | if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){ |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | this.getConfigDatas("ERP", personLibrary, editDatasVO, attrVOS, dataObjectVO); |
| | | this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO); |
| | | log.info("startï¼ä¿®æ¹æ°æ®æ§è¡å®æ¯"); |
| | | boolean personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode(); |
| | | mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode); |
| | |
| | | } |
| | | if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) { |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | this.getConfigDatas("ERP", personLibrary, editDatasVO, attrVOS, dataObjectVO); |
| | | this.getConfigDatas(systemCode, personLibrary, applyDatasVO, attrVOS, dataObjectVO); |
| | | |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); |
| | | CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); |
| | |
| | | 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")) {//è§åä¹å®ä¹ä¸ºå¯åç æ®µåå¨ä¸»æ°æ®ä¼ éè¿æ¥çæ°æ® |
| | |
| | | } |
| | | }); |
| | | } |
| | | orderDTO.setCodeRuleOid(ruleVO.getOid()); |
| | | orderDTO.setSecDTOList(codeOrderSecDTOList);//åå¨ç¼ç |
| | | orderDTO.setData(rowData.getFiledValue()); |
| | | engineService.addSaveCode(orderDTO); |
| | |
| | | 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; |
| | |
| | | resultOrgData.setSuccess(success); |
| | | resultOrgData.setMdMappings(resultMdMappingList); |
| | | Object object = JSONObject.toJSON(resultOrgData); |
| | | return resultOrgData; |
| | | } |
| | | String resultStr = JSONObject.toJSONString(resultOrgData); |
| | | String data = JSONObject.toJSONString(personData); |
| | | try { |
| | | //è®°å½æ¥å¿ |
| | | this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForPerson"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | Object object = JSONObject.toJSON(resultOrgData); |
| | | |
| | | return resultOrgData; |
| | | } |
| | | /**** |
| | |
| | | */ |
| | | @Override |
| | | public ResultOrgData syncDataForOrg(OrgData orgData) { |
| | | return null; |
| | | boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); |
| | | ResultOrgData resultOrgData=new ResultOrgData(); |
| | | |
| | | boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode(); |
| | | List<ResultMdMapping> resultMdMappingList=new ArrayList<>(); |
| | | boolean success=true; |
| | | String message=""; |
| | | String systemCode=""; |
| | | if(isUsedFlag){ |
| | | List<OrgMasterData> orgMasterDataList=new ArrayList<>(); |
| | | List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields()); |
| | | try { |
| | | if(orgData==null){ |
| | | throw new Throwable("ä¼ å
¥åæ°ä¸ºnull"); |
| | | } |
| | | systemCode=orgData.getSystemCode(); |
| | | orgMasterDataList = orgData.getMasterData(); |
| | | String personLibrary = personAndDeptConfig.getPersonLibrary(); |
| | | if (StringUtils.isBlank(personLibrary)) { |
| | | success=false; |
| | | log.info("éæé
置缺å°äººååºèç¹ä¿¡æ¯,personLibrary->" + personLibrary); |
| | | throw new Throwable("éæé
置缺å°äººååºèç¹ä¿¡æ¯,personLibrary->" + personLibrary); |
| | | } |
| | | String personClassCode = personAndDeptConfig.getPersonClassCode(); |
| | | ClassfyVO classfyVO = new ClassfyVO(); |
| | | classfyVO.setLibrary(personLibrary); |
| | | classfyVO.setClassCode(personClassCode); |
| | | CodeClassifyVO codeClassifyVO=this.getClassfy(classfyVO,personLibrary); |
| | | log.info("endï¼åç±»æ¥è¯¢å®æ¯"); |
| | | //è·åå类模æ¿ä¿¡æ¯ |
| | | if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){ |
| | | success=false; |
| | | throw new Throwable ("æ ¹æ®é
ç½®åç±»çåç±»ç¼å·ï¼æªè·åå°å类信æ¯"); |
| | | } |
| | | CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); |
| | | if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ |
| | | success=false; |
| | | throw new Throwable ("æ ¹æ®ä¼ è¾çåç±»ï¼æªè·åMDMç³»ç»ä¸å¯¹åºæ¨¡æ¿"); |
| | | } |
| | | |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && 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(personMasterData -> { |
| | | ApplyDataVO object=new ApplyDataVO(); |
| | | object.setCode(personMasterData.getMdm_code());//ç¼ç |
| | | object.setCreator(personMasterData.getCreator());//å建è
|
| | | object.setEditor(personMasterData.getModifier());//ä¿®æ¹è
|
| | | object.setId(personMasterData.getPk_mdm());//ä¸»é® |
| | | object.setStatus(CodeDefaultLC.RELEASED.getValue());//ç¶æåéè¦å¤æ |
| | | Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData); |
| | | List<ProppertyVO> proppertyVOList=new ArrayList<>(); |
| | | /*** |
| | | * æ ¹æ®é
ç½®æä»¶è·åæä¸¾å¼ |
| | | */ |
| | | fields.stream().forEach(field->{ |
| | | if(dataMap.containsKey(field)){ |
| | | String enumFiled= dataMap.get(field); |
| | | EnumerableData enumerableData=JSONObject.toJavaObject(JSONObject.parseObject(enumFiled),EnumerableData.class); |
| | | String enumCode=enumerableData.getCode(); |
| | | //String enumCodeValue=enumerableData.getName(); |
| | | ProppertyVO proppertyVO=new ProppertyVO(); |
| | | proppertyVO.setKey(field); |
| | | proppertyVO.setValue(enumCode); |
| | | proppertyVOList.add(proppertyVO); |
| | | dataMap.remove(field); |
| | | } |
| | | }); |
| | | dataMap.forEach((key,vaule)->{ |
| | | ProppertyVO proppertyVO=new ProppertyVO(); |
| | | proppertyVO.setKey(key); |
| | | proppertyVO.setValue(vaule); |
| | | proppertyVOList.add(proppertyVO); |
| | | }); |
| | | |
| | | object.setProp(proppertyVOList); |
| | | if(personMasterData.getDr()==1){ |
| | | object.setOperate("delete");//æä½ç±»å |
| | | deleteDataVOList.add(object); |
| | | }else{ |
| | | codeList.add(personMasterData.getMdm_code()); |
| | | object.setOperate("create"); |
| | | applyDataVOList.add(object); |
| | | } |
| | | }); |
| | | |
| | | R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); |
| | | if(!r.isSuccess()) { |
| | | throw new Throwable(r.getMsg()); |
| | | } |
| | | BtmTypeVO btmTypeVO = r.getData(); |
| | | if (btmTypeVO == null) { |
| | | throw new Throwable("æ ¹æ®ä¸å¡ç±»åæªæ¥è¯¢å°ä¸å¡ç±»å对象ï¼"); |
| | | } |
| | | String tableName = btmTypeVO.getTableName(); |
| | | if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) { |
| | | throw new Throwable("æ ¹æ®ä¸å¡ç±»åæªæ¥è¯¢å°ä¸å¡ç±»åç¸å
³èç表"); |
| | | } |
| | | StringBuffer sb=new StringBuffer(); |
| | | sb.append(" select * from "); |
| | | sb.append(tableName); |
| | | sb.append(" where 1=1 "); |
| | | sb.append(" and lastr=1 and lastv=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); |
| | | 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)); |
| | | //æ°æ®åºä¸åå¨ç |
| | | List<ApplyDataVO> applyApplyDataVOList = applyDataVOList.stream().filter(cbo -> { |
| | | String code =cbo.getCode(); |
| | | return !oldpplyDataVOMap.containsKey(code); |
| | | }).collect(Collectors.toList()); |
| | | applyDatasVO.setObject(applyApplyDataVOList); |
| | | //æ°æ®åºåå¨ç |
| | | List<ApplyDataVO> editApplyDataVOList = applyDataVOList.stream().filter(cbo -> { |
| | | String code =cbo.getCode(); |
| | | if(oldpplyDataVOMap.containsKey(code)){ |
| | | cbo.setOperate("update"); |
| | | } |
| | | return oldpplyDataVOMap.containsKey(code); |
| | | }).collect(Collectors.toList()); |
| | | editApplyDataVOList.addAll(deleteDataVOList); |
| | | editDatasVO.setObject(editApplyDataVOList); |
| | | }else{ |
| | | applyDatasVO.setObject(applyDataVOList); |
| | | } |
| | | |
| | | LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>(); |
| | | if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){ |
| | | DataObjectVO dataObjectVO = new DataObjectVO(); |
| | | this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO); |
| | | log.info("startï¼ä¿®æ¹æ°æ®æ§è¡å®æ¯"); |
| | | boolean personApplyGroupCode =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); |
| | | |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); |
| | | CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); |
| | | if(ruleVO==null||"".equals(ruleVO.getOid())){ |
| | | 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()); |
| | | engineService.addSaveCode(orderDTO); |
| | | } 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); |
| | | } |
| | | }); |
| | | resultDataObjectDetailDOs.addAll(xDOs); |
| | | boolean finalSuccess1 = success; |
| | | 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); |
| | | }); |
| | | log.info("endï¼ç³è¯·è·å宿¯"); |
| | | //妿æç³è¯·å°±å»è°ç¨ç³è¯·éå¢ç |
| | | if(isPersonApplyGroupCode){ |
| | | List<String> oidList=new ArrayList<>(); |
| | | mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue()); |
| | | } |
| | | } |
| | | }catch (Throwable e){ |
| | | success=false; |
| | | message="äººåæ°æ®æ¥å失败:"+e.getMessage(); |
| | | //ç»ç»è¿åç»æ |
| | | boolean finalSuccess = success; |
| | | String finalMessage = message; |
| | | orgMasterDataList.stream().forEach(masterData -> { |
| | | ResultMdMapping resultMdMapping=new ResultMdMapping(); |
| | | resultMdMapping.setBusiDataId(masterData.getPk_mdm()); |
| | | resultMdMapping.setSuccess(finalSuccess); |
| | | resultMdMapping.setEntityCode(" "); |
| | | resultMdMapping.setMdmCode(masterData.getMdm_code()); |
| | | resultMdMapping.setMessage(finalMessage); |
| | | resultMdMapping.setSubMdMappings(null); |
| | | }); |
| | | }finally { |
| | | resultOrgData.setMessage(message); |
| | | resultOrgData.setSuccess(success); |
| | | resultOrgData.setMdMappings(resultMdMappingList); |
| | | Object object = JSONObject.toJSON(resultOrgData); |
| | | } |
| | | String resultStr = JSONObject.toJSONString(resultOrgData); |
| | | String data = JSONObject.toJSONString(orgData); |
| | | try { |
| | | //è®°å½æ¥å¿ |
| | | this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForOrg"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return resultOrgData; |
| | | } |
| | | /*** |
| | | * ç»ä¸æ´æ°æ¥å£ï¼æ´æ¹ç¶æï¼æ´æ¹å±æ§ä¿¡æ¯ï¼æ¥å£ |