From f21bdede8546a348e2b16ffc3bbe292df7eeba76 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 12 四月 2024 23:24:21 +0800 Subject: [PATCH] 集成相关代码修改 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 142 ++++++++++++++++++++++++++--------------------- 1 files changed, 79 insertions(+), 63 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 e7e6129..ca3d624 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 @@ -73,6 +73,7 @@ import java.io.StringWriter; import java.util.*; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ForkJoinPool; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; import java.util.stream.Collectors; @@ -114,11 +115,13 @@ */ @Value("${bzApply.seriesFlow:seriesFlow}") private String seriesFlow; + /*** * 鏄惁鍙樻洿绯诲垪 */ @Value("${bzApply.isEditSeries:isEditSeries}") private String isEditSeries; + /*** * 鎺у埗鏄惁鍐欏叆鍊肩殑鐮佹鍚嶇О */ @@ -130,7 +133,6 @@ */ @Value("${bzApply.yearSecName:骞翠唬鍙穧") private String yearSecName; - @Value("${code.universalinterface.checkSystemConfig:true}") public boolean CODE_CHECKCONFIG; @@ -203,8 +205,14 @@ */ @Resource private IDockingLogeService dockingLogeService; + @Resource private IPasswordFreeLoginService passwordFreeLoginService; + + /** + * 鑷畾涔夊苟鍙慒orkJoinPool + */ + private static final ForkJoinPool customForkJoinPool = new ForkJoinPool(Runtime.getRuntime().availableProcessors() - 1); private static String separator="##VCI##"; private String errorid="0"; @@ -290,14 +298,14 @@ throw new Throwable("鐢ㄦ埛閴存潈澶辫触."); } List<ClassfyVO> classVOList = classfysVO.getClassify(); - InterParameterVO finalInterParameterVO = interParameterVO; + //InterParameterVO finalInterParameterVO = interParameterVO; //杩欐槸璐﹀彿淇℃伅 SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setUserId(userVo.getUserName()); sessionInfo.setUserName(userVo.getTrueName()); sessionInfo.setIp(userVo.getIp()); VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); -// List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>(); + //List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>(); String finalSystemId = systemId; classVOList.stream().forEach(classVO -> { log.info("鍙傛暟锛氬垎绫籆Ode:" + classVO.getClassCode()); @@ -451,7 +459,6 @@ */ @Override public ResultOrgData syncDataForPerson(PersonData personData) { - boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); ResultOrgData resultOrgData=new ResultOrgData(); @@ -462,7 +469,7 @@ if(isUsedFlag){ AtomicBoolean success= new AtomicBoolean(true); List<PersonMasterData> masterDataList=new ArrayList<>(); - List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields()); + List<String> fields = Func.toStrList(personAndDeptConfig.getPersonFields()); try { if(personData==null){ throw new Throwable("浼犲叆鍙傛暟涓簄ull"); @@ -618,7 +625,8 @@ throw new Throwable("缂栫爜瑙勫垯"); } List<XMLResultDataObjectDetailDO> xDOs=new CopyOnWriteArrayList<>(); - dataObjectVO.getRowData().parallelStream().forEach(rowData->{ + final List<RowDatas> rowDatas = dataObjectVO.getRowData(); + rowDatas.parallelStream().forEach(rowData->{ String mesg=""; try { CodeOrderDTO orderDTO = new CodeOrderDTO(); @@ -668,6 +676,7 @@ } catch (Exception e) { mesg=e.getMessage(); e.printStackTrace(); + throw new ServiceException(e.getMessage()); }finally { XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO(); x.setId(rowData.getOid()); @@ -680,21 +689,25 @@ resultDataObjectDetailDOs.addAll(xDOs); boolean finalSuccess1 = success.get(); 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); - }); + // 闄愬埗绾跨▼骞惰鏁伴噺 + customForkJoinPool.submit(()->{ + 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); + }); + }).join(); log.info("end锛氱敵璇疯幏鍙栧畬姣�"); } }catch (Throwable e){ success.set(false); - message="浜哄憳鏁版嵁鎺ュ彈澶辫触:"+e.getMessage(); + message = "浜哄憳鏁版嵁鎺ユ敹澶辫触:"+e.getMessage(); + msg = "浜哄憳鏁版嵁鎺ユ敹澶辫触:"+e.getMessage(); //缁勭粐杩斿洖缁撴灉 boolean finalSuccess = success.get(); String finalMessage = message; @@ -736,14 +749,14 @@ public ResultOrgData syncDataForOrg(OrgData orgData) { boolean isUsedFlag= personAndDeptConfig.isUsedFlag(); ResultOrgData resultOrgData=new ResultOrgData(); - boolean isPersonApplyGroupCode= personAndDeptConfig.isDeptApplyGroupCode(); + //boolean isPersonApplyGroupCode= personAndDeptConfig.isDeptApplyGroupCode(); List<ResultMdMapping> resultMdMappingList=new ArrayList<>(); AtomicBoolean success= new AtomicBoolean(true); String message=""; String systemCode=""; if(isUsedFlag){ List<OrgMasterData> orgMasterDataList=new ArrayList<>(); - List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getDeptFields()); + List<String> fields = Func.toStrList(personAndDeptConfig.getDeptFields()); try { if(orgData==null){ throw new Throwable("浼犲叆鍙傛暟涓簄ull"); @@ -781,7 +794,6 @@ List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && ((Func.isNotEmpty(s.getClassifyInvokeAttr()) || Func.isNotEmpty(s.getClassifyInvokeAttrName())) || 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<>(); @@ -880,7 +892,7 @@ DataObjectVO dataObjectVO = new DataObjectVO(); this.getConfigDatas(systemCode, deptLibrary, editDatasVO, attrVOS, dataObjectVO); log.info("start锛氫慨鏀规暟鎹墽琛屽畬姣�"); - boolean personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode(); + boolean personApplyGroupCode = personAndDeptConfig.isPersonApplyGroupCode(); mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode); log.info("end锛氫慨鏀规暟鎹墽琛屽畬姣�"); } @@ -894,32 +906,34 @@ 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()); - orderDTO.setCreator(rowData.getCreator()); - orderDTO.setLastModifier(rowData.getEditor()); - orderDTO.setLcStatus(rowData.getStatus()); - 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()); - String code=engineService.addSaveCodeNotauthUser(orderDTO,false); - if(StringUtils.isNotBlank(code)) { + //闄愬埗绾跨▼骞惰鏁伴噺 + customForkJoinPool.submit(()->{ + 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()); + orderDTO.setCreator(rowData.getCreator()); + orderDTO.setLastModifier(rowData.getEditor()); + orderDTO.setLcStatus(rowData.getStatus()); + 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.getOid()); + codeOrderSecDTOList.add(CodeOrderSecDTO); + } + }); + } + orderDTO.setCodeRuleOid(ruleVO.getOid()); + orderDTO.setSecDTOList(codeOrderSecDTOList);//瀛樺偍缂栫爜 + orderDTO.setData(rowData.getFiledValue()); + String code = engineService.addSaveCodeNotauthUser(orderDTO,false); + /*if(StringUtils.isNotBlank(code)) { //rowData.setCode(code); StringBuffer sqlsb = new StringBuffer(); sqlsb.append(" select * from "); @@ -941,20 +955,21 @@ mesg = "鏁版嵁淇濆瓨鎴愬姛锛岀瓑寰呯敵璇烽泦鍥㈢爜"; } } + }*/ + } catch (Exception e) { + mesg=e.getMessage(); + e.printStackTrace(); + throw new ServiceException(e.getMessage()); + }finally { + XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO(); + x.setId(rowData.getOid()); + x.setCode(rowData.getCode()); + x.setMsg(mesg); + x.setErrorid("1"); + xDOs.add(x); } - } 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); - } - }); + }); + }).join(); resultDataObjectDetailDOs.addAll(xDOs); boolean finalSuccess1 = success.get(); String finalMessage1 = message; @@ -972,7 +987,8 @@ } }catch (Throwable e){ success.set(false); - message="浜哄憳鏁版嵁鎺ュ彈澶辫触:"+e.getMessage(); + message = "閮ㄩ棬鏁版嵁鎺ユ敹澶辫触:"+e.getMessage(); + msg = "閮ㄩ棬鏁版嵁鎺ユ敹澶辫触:"+e.getMessage(); //缁勭粐杩斿洖缁撴灉 boolean finalSuccess = success.get(); String finalMessage = message; @@ -1056,7 +1072,7 @@ throw new Throwable("鐢ㄦ埛閴存潈澶辫触"); } List<ClassfyVO> classVOList = classfysVO.getClassify(); - InterParameterVO finalInterParameterVO = interParameterVO; + //InterParameterVO finalInterParameterVO = interParameterVO; //杩欐槸璐﹀彿淇℃伅 SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setUserId(userVo.getUserName()); @@ -2723,7 +2739,7 @@ dockingLoge.setInterfaceStatus("false");//鎺ュ彛闆嗘垚鐘舵�� } dockingLogeService.save(dockingLoge); - log.info("闆嗘垚鎺ㄩ�佹暟鎹垚鍔�,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData); + log.info("闆嗘垚鎺ㄩ�佹暟鎹�,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData); } /*** -- Gitblit v1.9.3