From 81edec7c3bdef059a44e7c5e7b81d35ea09a72ed Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 13 九月 2023 08:52:39 +0800 Subject: [PATCH] 人员组织结构申请接口开发 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 118 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 76 insertions(+), 42 deletions(-) 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 58a119c..8381d07 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 @@ -61,10 +61,10 @@ 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; /*** @@ -359,9 +359,9 @@ 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 { @@ -371,7 +371,7 @@ 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); } @@ -383,12 +383,12 @@ 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 ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�"); } @@ -440,10 +440,11 @@ 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()); @@ -532,10 +533,31 @@ 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(); @@ -547,7 +569,7 @@ } }); resultDataObjectDetailDOs.addAll(xDOs); - boolean finalSuccess1 = success; + boolean finalSuccess1 = success.get(); String finalMessage1 = message; resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ ResultMdMapping resultMdMapping=new ResultMdMapping(); @@ -560,17 +582,12 @@ 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(); @@ -583,7 +600,7 @@ }); }finally { resultOrgData.setMessage(message); - resultOrgData.setSuccess(success); + resultOrgData.setSuccess(success.get()); resultOrgData.setMdMappings(resultMdMappingList); Object object = JSONObject.toJSON(resultOrgData); } @@ -591,7 +608,7 @@ 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(); } @@ -609,10 +626,9 @@ 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){ @@ -626,7 +642,7 @@ 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); } @@ -638,12 +654,12 @@ 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 ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�"); } @@ -653,14 +669,14 @@ 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<>(); /*** * 鏍规嵁閰嶇疆鏂囦欢鑾峰彇鏋氫妇鍊� @@ -686,14 +702,15 @@ }); 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()); @@ -782,7 +799,29 @@ 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(); @@ -797,7 +836,7 @@ } }); resultDataObjectDetailDOs.addAll(xDOs); - boolean finalSuccess1 = success; + boolean finalSuccess1 = success.get(); String finalMessage1 = message; resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ ResultMdMapping resultMdMapping=new ResultMdMapping(); @@ -810,17 +849,12 @@ 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(); @@ -833,7 +867,7 @@ }); }finally { resultOrgData.setMessage(message); - resultOrgData.setSuccess(success); + resultOrgData.setSuccess(success.get()); resultOrgData.setMdMappings(resultMdMappingList); Object object = JSONObject.toJSON(resultOrgData); } @@ -841,7 +875,7 @@ 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(); } -- Gitblit v1.9.3