From fc4d1e17b9ed87e34835316d0e8b89feebe32be6 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期一, 11 九月 2023 17:54:29 +0800 Subject: [PATCH] 人员组织结构申请接口开发 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 292 ++++++++++++++++++++++++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java | 8 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 2 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java | 37 +++ Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java | 12 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/DMS.xml | 12 + Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json | 152 +++++++------- Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java | 42 ++++ Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java | 16 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java | 9 10 files changed, 473 insertions(+), 109 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/DMS.xml b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/DMS.xml new file mode 100644 index 0000000..b63b345 --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/DMS.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<clsfs> + <clsf library="renyuan"> + <prop sourceKey="id" sourceName="缂栫爜" targetKey="lm_code" targetName="缂栫爜"/> + <prop sourceKey="group_code" sourceName="闆嗗洟鐮�" targetKey="ordernum" targetName="闆嗗洟鐮�"/> + <prop sourceKey="name" sourceName="鍚嶇О" targetKey="name" targetName="鍚嶇О"/> + <prop sourceKey="creator" sourceName="鍒涘缓浜�" targetKey=" creator " targetName="鍒涘缓浜�"/> + <prop sourceKey="createtime" sourceName="鍒涘缓鏃堕棿" targetKey="createtime" targetName="鍒涘缓鏃堕棿"/> + <prop sourceKey="modifier" sourceName="鏈�鍚庝慨鏀逛汉" targetKey="modifier" targetName="鏈�鍚庝慨鏀逛汉"/> + <prop sourceKey="modifytime" sourceName="鏈�鍚庝慨鏀规椂闂�" targetKey="modifytime" targetName="鏈�鍚庝慨鏀规椂闂�"/> + </clsf> +</clsfs> diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java index c96f200..a255829 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java @@ -17,4 +17,46 @@ * 鎻忚堪 */ private String descript; + + public String getMdm_code() { + return mdm_code; + } + + public void setMdm_code(String mdm_code) { + this.mdm_code = mdm_code; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescript() { + return descript; + } + + public void setDescript(String descript) { + this.descript = descript; + } + + @Override + public String toString() { + return "EnumerableData{" + + "mdm_code='" + mdm_code + '\'' + + ", code='" + code + '\'' + + ", name='" + name + '\'' + + ", descript='" + descript + '\'' + + '}'; + } } diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java index 9d0edef..4ee33f1 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java @@ -106,7 +106,7 @@ private String link_fieldvalue; private String floy_middatastatus; private String originalcode; - private String pk_mdn; + private String pk_mdm; private String mdm_duplicate; private String mdm_code; private String mdm_version; @@ -366,12 +366,12 @@ this.originalcode = originalcode; } - public String getPk_mdn() { - return pk_mdn; + public String getPk_mdm() { + return pk_mdm; } - public void setPk_mdn(String pk_mdn) { - this.pk_mdn = pk_mdn; + public void setPk_mdm(String pk_mdn) { + this.pk_mdm = pk_mdn; } public String getMdm_duplicate() { @@ -464,7 +464,7 @@ ", link_fieldvalue='" + link_fieldvalue + '\'' + ", floy_middatastatus='" + floy_middatastatus + '\'' + ", originalcode='" + originalcode + '\'' + - ", pk_mdn='" + pk_mdn + '\'' + + ", pk_mdm='" + pk_mdm + '\'' + ", mdm_duplicate='" + mdm_duplicate + '\'' + ", mdm_code='" + mdm_code + '\'' + ", mdm_version='" + mdm_version + '\'' + diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java index d75d269..7c200d0 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java @@ -187,7 +187,7 @@ private String flow_middatastatus; private String employer; private int mdm_duplicate; - private EnumerableData gerder_entity; + private EnumerableData gender_entity; private EnumerableData employment_type_entity; private String gerder; private String employment_type; @@ -561,12 +561,12 @@ this.mdm_duplicate = mdm_duplicate; } - public EnumerableData getGerder_entity() { - return gerder_entity; + public EnumerableData getGender_entity() { + return gender_entity; } - public void setGerder_entity(EnumerableData gerder_entity) { - this.gerder_entity = gerder_entity; + public void setGender_entity(EnumerableData gender_entity) { + this.gender_entity = gender_entity; } public EnumerableData getEmployment_type_entity() { @@ -659,7 +659,7 @@ @Override public String toString() { - return "MasterData{" + + return "PersonMasterData{" + "id='" + id + '\'' + ", lm_code='" + lm_code + '\'' + ", group_code='" + group_code + '\'' + @@ -705,8 +705,8 @@ ", flow_middatastatus='" + flow_middatastatus + '\'' + ", employer='" + employer + '\'' + ", mdm_duplicate=" + mdm_duplicate + - ", gerder_entity='" + gerder_entity + '\'' + - ", employment_type_entity='" + employment_type_entity + '\'' + + ", gender_entity=" + gender_entity + + ", employment_type_entity=" + employment_type_entity + ", gerder='" + gerder + '\'' + ", employment_type='" + employment_type + '\'' + ", employment_type_nane='" + employment_type_nane + '\'' + diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json index 78ec2df..1fbbea3 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json @@ -1,79 +1,77 @@ { - msg:null, - masterData:[ - { - "departnent_code": "108040", - "is_virtual": 0, - "id_route": "2843121148743936]2843121413050624]", - "departnent_type": "1", - "nodifytime": "2023-06-1510:34:37", - "mdm_workflow_status":l, - "modifier":"鐜嬬", - "telephone_nunber":null, - "mdm_datastatus":3, - "parent_departnent_nane":鈥滆储鍔$鐞嗛儴", - "ndn_cleanstatus": "VAITING", + "msg": null, + "masterData": [{ + "country": "涓浗澶ч檰", + "education": "澶у鏈", + "mdm_workflow_status": 0, + "worker_category": "鍦ㄥ矖", + "modifier": "涓绘暟鎹郴缁�", + "mdm_datastatus": 3, "link_fieldvalue": null, - "dr:0," - dr_ndm_code - ":" - 0, - "enable_status :3," - ndn_parentcode - ";null," - departent - head - ":null," - floy_middatastatus - ":null," - originalcode - ":null," - node - type - ":" - 閮�, - "company_code": "20220423,department_level" - : - "2", - "nane_route": null, - "sort_order": "81鈥濓紝" - pk_mdn - ":" - 1720683591179436130 - ",display_status": "涓嶆樉绀�," - parent_department - _code - ":" - 108000 - ",creator:" - 鐜嬬憺娉� - 鈥�, - "createtine": 2023-05-08 - 10: 45 - : - 33 - 锛� - "departnent nane": 闆嗗洟璐㈠姟澶�6666 - 鈥� - . - "ndm duplicate": 0, - ndn - code - ? - : - "99", - /dcpartment_status - ":" - 浣滃簾 - 鈥� - 锛� - ndm_version - ":4,company name :涓浗鑸彂榛庢槑" - original - nane: null, - "departnent head code": null, - "ts :" - 2023-06-1510: 34 - : - 37.451 - "]], distributeToken=, code=0, systemCode=nhdept,ndType=departnent_basic, action=distribute_manual} + "dr": 0, + "flow_middatastatus": null, + "employer": "棰嗙剨鍔犲伐鍘�", + "parent_dept_code": "403000", + "politiccountenance": null, + "outer_email": null, + "id_number": "210104198806062312", + "worker_level": "鍒濈骇宸ャ�婂熀鏈敓浜с��", + "admin_division_code": null, + "work_title": null, + "mdm_duplicate":0, + "employer_code":"403000", + "birthplace": "杈藉畞鐪佹矆闃冲競鈥濓紝", + "nationality": "姹夋棌", + "gender_entity":{ + "mdm_code":"1", + "code":"5", + "name":"鐢锋��", + "descript":"鐢峰コ锛岄泦鍥㈡爣鍑嗚姹�: 鐢锋�� 1鍜�5锛屽コ鎬�2鍜�6" + }, + "name":"鐢拌嫍", + "position":"椋炴満鍙戝姩鏈洪閲戝伐", + "employment_type_entity":{ + "mdm_code":"1", + "code":"1,", + "name":"閮ㄩ棬涓昏亴", + "descript":"1銆侀儴闂ㄧ帇鑱� 2銆侀儴闂ㄥ吋鑱�" + }, + "parent_dept_name":"棰嗙剨鍔犲伐鍘�", + "brithday": "1988-06-06", + "employment_type": "1", + "employment_type_nane":"閮ㄩ棬涓昏亴", + "group_code":"19885013", + "gender":1, + "admin_division":null, + "modifytime" :"2023-08-29", + "worker_security_level":null, + "mdm_cleanstatus":"WAITINC", + "dr_mdm_code": "0", + "mdm_parentcode":null, + "mobile_phone":"15140256567", + "id_type":"韬唤璇�", + "dept_type":"鏈哄專鐏劙绛掑伐娈�", + "worker_email":null, + "pk_mdm":"1723S7091785C804868", + "employment_form":"姝e紡鍦ㄥ矖浜哄憳", + "lm_code":"19885013", + "creator":"涓绘暟鎹郴缁�" , + "createtime":"2023-06-1201:39:40", + "office_telephone":null, + "citizenship":"杈藉箍鐪佹矆闃冲競", + "dept_name":"403002", + "mdm_code":"16305", + "gender_name":"鐢锋�р��,", + "is_keyposion":"鏄�", + "worker_duty":"椋炴満鍙嬪姩鏈洪挘閲戝伐", + "marital_status":"鏈", + "mdm_version":"75,", + "ts":"2025-08-t9 17:52:19.026" + + }], + "distributeToken":"", + "code":0, + "systemCode":"mhperson", + "mdType": "person_basic", + "action": "distribute_subscribe" +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java index 695023c..5b7d4d4 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java @@ -7,10 +7,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 鐢宠浜哄憳閮ㄩ棬鎺у埗鍣� @@ -37,7 +34,7 @@ * @throws Throwable */ @PostMapping("/syncDataForPerson") - public ResultOrgData syncDataForPerson(@RequestParam PersonData personData) { + public ResultOrgData syncDataForPerson(@RequestBody PersonData personData) { String result=""; try { return universalInterfaceI.syncDataForPerson(personData); @@ -55,7 +52,7 @@ * @throws Throwable */ @PostMapping("/syncDataForOrg") - public ResultOrgData syncDataForOrg(@RequestParam OrgData orgData) { + public ResultOrgData syncDataForOrg(@RequestBody OrgData orgData) { String result=""; try { return universalInterfaceI.syncDataForOrg(orgData); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java index d8aaf65..a5bd305 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java @@ -111,4 +111,12 @@ * @return 鏈夐敊璇俊鎭殑excel */ void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode); + + /*** + * 鐢宠闆嗗洟鐮佹帴鍙� + * @param idList 鏁版嵁oid + * @param btmName 涓氬姟绫诲瀷 + * @param operationType + */ + void sendApplyGroupcode(List<String> idList,String btmName,String operationType); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java index 17b4f7c..d83fddc 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java @@ -4455,7 +4455,7 @@ * @param idList * @param btmName */ - private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){ + public void sendApplyGroupcode(List<String> idList,String btmName,String operationType){ String oids=VciBaseUtil.array2String(idList.toArray(new String[]{})); if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) { mdmInterJtClient.applyGroupCode(oids,btmName); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java index fd19302..58a119c 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java @@ -352,14 +352,23 @@ */ @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("浼犲叆鍙傛暟涓簄ull"); + } + masterDataList = personData.getMasterData(); String personLibrary = personAndDeptConfig.getPersonLibrary(); if (StringUtils.isBlank(personLibrary)) { success=false; @@ -400,15 +409,31 @@ 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");//鎿嶄綔绫诲瀷 @@ -470,7 +495,7 @@ 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); @@ -478,7 +503,7 @@ } 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); @@ -492,6 +517,7 @@ 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")) {//瑙勫垯涔嬪畾涔変负鍙彉鐮佹瀛樺偍涓绘暟鎹紶閫掕繃鏉ョ殑鏁版嵁 @@ -503,6 +529,7 @@ } }); } + orderDTO.setCodeRuleOid(ruleVO.getOid()); orderDTO.setSecDTOList(codeOrderSecDTOList);//瀛樺偍缂栫爜 orderDTO.setData(rowData.getFiledValue()); engineService.addSaveCode(orderDTO); @@ -533,6 +560,11 @@ 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; @@ -554,10 +586,17 @@ 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; } /**** @@ -568,7 +607,246 @@ */ @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("浼犲叆鍙傛暟涓簄ull"); + } + 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 ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�"); + } + + 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; } /*** * 缁熶竴鏇存柊鎺ュ彛锛堟洿鏀圭姸鎬侊紝鏇存敼灞炴�т俊鎭級鎺ュ彛 diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java index 2156249..c14292b 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java @@ -3,6 +3,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; +import java.util.List; + @ConfigurationProperties(prefix="org.applypersonanddept") @Component public class PersonAndDeptConfig { @@ -34,7 +36,16 @@ /*** * 鏄惁寮�鍚� */ - private boolean isUsedFlag; + private boolean usedFlag; + /*** + * 浜哄憳鎺ュ彛鏋氫妇鍊煎瓧娈� + */ + private String personFields; + + /*** + * 缁勭粐鎺ュ彛鏋氫妇鍊煎瓧娈� + */ + private String deptFields; public String getPersonLibrary() { return personLibrary; @@ -69,11 +80,11 @@ } public boolean isUsedFlag() { - return isUsedFlag; + return usedFlag; } public void setUsedFlag(boolean usedFlag) { - isUsedFlag = usedFlag; + this.usedFlag = usedFlag; } public boolean isPersonApplyGroupCode() { @@ -92,6 +103,22 @@ this.deptApplyGroupCode = deptApplyGroupCode; } + public String getPersonFields() { + return personFields; + } + + public void setPersonFields(String personFields) { + this.personFields = personFields; + } + + public String getDeptFields() { + return deptFields; + } + + public void setDeptFields(String deptFields) { + this.deptFields = deptFields; + } + @Override public String toString() { return "PersonAndDeptConfig{" + @@ -101,7 +128,9 @@ ", deptClassCode='" + deptClassCode + '\'' + ", personApplyGroupCode=" + personApplyGroupCode + ", deptApplyGroupCode=" + deptApplyGroupCode + - ", isUsedFlag=" + isUsedFlag + + ", usedFlag=" + usedFlag + + ", personFields='" + personFields + '\'' + + ", deptFields='" + deptFields + '\'' + '}'; } } -- Gitblit v1.9.3