From dd82c35f5da519d344113514fda3dec62d3ce623 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期日, 17 九月 2023 21:56:30 +0800 Subject: [PATCH] 代码提交 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 152 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 106 insertions(+), 46 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..15415e2 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 @@ -53,18 +53,25 @@ import com.vci.ubcs.system.vo.DeptVO; import com.vci.ubcs.system.vo.RoleVO; import lombok.extern.slf4j.Slf4j; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.jws.WebMethod; +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Context; +import javax.xml.ws.WebServiceContext; +import javax.xml.ws.handler.MessageContext; 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; /*** @@ -142,12 +149,25 @@ */ @Resource private IDockingLogeService dockingLogeService; + @Resource + private IPasswordFreeLoginService passwordFreeLoginService; private static String separator="##VCI##"; private String errorid="0"; private String msg="鎴愬姛"; private String objerrorCode="0"; private String objerrorMsg="鎴愬姛"; + + @Resource + private WebServiceContext webServiceContext; + + @WebMethod + public HttpServletRequest getRequest() { + // 鑾峰彇HttpServletRequest瀵硅薄 + HttpServletRequest request = (HttpServletRequest) webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST); + return request; + } + /*** * 鐢宠缂栫爜鎺ュ彛 * @param data 浼犻�掔殑鏁版嵁鍙傛暟 @@ -190,9 +210,10 @@ ClassfysVO classfysVO = interParameterVO.getData().getClassifys(); systemId = interParameterVO.getData().getSystemId(); UserVO userVo = interParameterVO.getData().getUser(); + //鍏嶅瘑鐧诲綍鐢宠token锛宧eader寰�token涓坊鍔� + passwordFreeLoginService.passwordFreeLogin(userVo.getUserName(),this.getRequest()); List<ClassfyVO> classVOList = classfysVO.getClassify(); InterParameterVO finalInterParameterVO = interParameterVO; - //杩欐槸璐﹀彿淇℃伅 SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setUserId(userVo.getUserName()); @@ -359,9 +380,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 +392,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 +404,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 +461,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 +554,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 +590,7 @@ } }); resultDataObjectDetailDOs.addAll(xDOs); - boolean finalSuccess1 = success; + boolean finalSuccess1 = success.get(); String finalMessage1 = message; resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ ResultMdMapping resultMdMapping=new ResultMdMapping(); @@ -560,17 +603,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 +621,7 @@ }); }finally { resultOrgData.setMessage(message); - resultOrgData.setSuccess(success); + resultOrgData.setSuccess(success.get()); resultOrgData.setMdMappings(resultMdMappingList); Object object = JSONObject.toJSON(resultOrgData); } @@ -591,7 +629,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 +647,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 +663,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 +675,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 +690,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 +723,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 +820,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 +857,7 @@ } }); resultDataObjectDetailDOs.addAll(xDOs); - boolean finalSuccess1 = success; + boolean finalSuccess1 = success.get(); String finalMessage1 = message; resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{ ResultMdMapping resultMdMapping=new ResultMdMapping(); @@ -810,17 +870,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 +888,7 @@ }); }finally { resultOrgData.setMessage(message); - resultOrgData.setSuccess(success); + resultOrgData.setSuccess(success.get()); resultOrgData.setMdMappings(resultMdMappingList); Object object = JSONObject.toJSON(resultOrgData); } @@ -841,7 +896,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(); } @@ -1747,10 +1802,10 @@ } log.info(libId); }else if(secType.equals("codelevelsec")) {//灞傜骇鐮佹 - int level = codeBasicSecVO.getCodeLevelValue(); CodeClassifyVO levelCodeClassifyVO = new CodeClassifyVO(); CodeClassifyFullInfoBO classifyFullInfoBO = this.classifyService.getClassifyFullInfo(codeClassifyDO.getOid()); if(codeBasicSecVO.getCodeLevelType().equals("code_level_special")){//鎸囧畾灞傜骇 + int level = codeBasicSecVO.getCodeLevelValue(); List<CodeClassifyVO> classifyVOS = classifyFullInfoBO.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel()))).collect(Collectors.toList()); if (classifyVOS.size() >= level && level > 0) { levelCodeClassifyVO = classifyVOS.get(level - 1); @@ -2200,7 +2255,8 @@ if(StringUtils.isNotBlank(classOid)){ queryWrapper.in(DockingSystemConfig::getClassifyOid,classOid); } - List<DockingSystemConfig> dockingSystemConfigList= dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper); + List<DockingSystemConfig> dockingSystemConfigList=new ArrayList<>(); + dockingSystemConfigList= dockingSystemConfigList=dockingSystemConfigService.list(queryWrapper); if(!CollectionUtils.isEmpty(dockingSystemConfigList)){ return dockingSystemConfigList.get(0); }else{ @@ -2208,6 +2264,10 @@ return checkIspass(systemId, type, operationType, codeClassifyVO.getParentCodeClassifyOid()); } } - return dockingSystemConfigList.get(0); + if(dockingSystemConfigList.size()>0){ + return dockingSystemConfigList.get(0); + }else{ + return new DockingSystemConfig(); + } } } -- Gitblit v1.9.3