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 +++++++++++++++++++++++++-------------- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 38 +++++++++--- 2 files changed, 104 insertions(+), 52 deletions(-) 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 d83fddc..16ee22f 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 @@ -2329,12 +2329,17 @@ sb.append(" where 1=1 "); sb.append(" and lastr=1 and lastv=1" ); if(isCodeOrGroupCode) { - sb.append(" and groupcode in ("); + sb.append(" and ( groupcode in ("); + sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); + sb.append(")"); + sb.append(" or id in ("); + sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); + sb.append("))"); }else{ sb.append(" and id in ("); + sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); + sb.append(")"); } - sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0]))); - sb.append(")"); List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString()); List<ClientBusinessObject> cboList= ChangeMapTOClientBusinessObjects(dataMapList); @@ -2424,7 +2429,7 @@ List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid())); log.info("codeCbos size:" + newCodeAllCodeList.size()); if (!CollectionUtils.isEmpty(newCodeAllCodeList)) { - CodeAllCode codeCbo = codeAllCodeList.get(0); + CodeAllCode codeCbo = newCodeAllCodeList.get(0); log.info("codeCbos code:" + codeCbo.getId()); codeCbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue()); codeAllCodeList.add(codeCbo); @@ -2616,7 +2621,21 @@ //娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙� if (!CollectionUtils.isEmpty(conditionMap)) { - final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " t where 1 = 1 "}; + String tableName=""; + R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId()); + if(r.isSuccess()) { + BtmTypeVO btmTypeVO = r.getData(); + if (btmTypeVO != null) { + tableName = btmTypeVO.getTableName(); + + } + } + if (StringUtils.isBlank(tableName)) { + String errormsg="鏍规嵁涓氬姟绫诲瀷涓烘煡璇㈠埌鐩稿叧涓氬姟琛�"; + errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg); + return; + } + final String[] sql = {"select count(*) from " + tableName + " t where 1 = 1 "}; conditionMap.forEach((key, value) -> { if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)){ sql[0] += " and " + key + " is null "; @@ -2836,6 +2855,9 @@ ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code); if(isCodeOrGroupCode){ code=sysDataObject.getAttributeValue("GROUPCODE"); + if(StringUtils.isBlank(code)){ + code=sysDataObject.getId(); + } } CodeOrderDTO orderDTO = new CodeOrderDTO(); if(codeDataMap.containsKey(code)){ @@ -2844,11 +2866,7 @@ orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭 orderDTO.setOid(sysDataObject.getOid());//鏁版嵁oid orderDTO.setLcStatus(rowDatas.getStatus());//鐘舵�� - if(isCodeOrGroupCode){ - orderDTO.setId(sysDataObject.getId()); - }else{ - orderDTO.setId(code); - } + orderDTO.setId(code); orderDTO.setTs(sysDataObject.getTs()); orderDTO.setBtmname(codeClassifyVO.getBtmname());//涓氬姟绫诲瀷 orderDTO.setDescription("闆嗘垚璋冪敤:鏇存柊");//鏁版嵁鎻忚堪 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