From 529b40cc4cd049ae3e96d3aedae3142e0effea60 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期四, 30 十一月 2023 11:46:15 +0800 Subject: [PATCH] 标准申请集成接口添加 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java | 173 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 122 insertions(+), 51 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 56d77fd..a51667b 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 @@ -8,6 +8,7 @@ import com.thoughtworks.xstream.io.xml.DomDriver; import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; import com.vci.ubcs.code.constant.MdmDuckingConstant; +import com.vci.ubcs.code.dto.CodeBZApplyDTO; import com.vci.ubcs.code.dto.CodeOrderDTO; import com.vci.ubcs.code.dto.CodeOrderSecDTO; import com.vci.ubcs.code.entity.*; @@ -37,7 +38,6 @@ import com.vci.ubcs.code.webService.annotation.VciWebservice; import com.vci.ubcs.code.webService.config.AttributeMapConfig; import com.vci.ubcs.code.webService.config.PersonAndDeptConfig; -import com.vci.ubcs.code.wrapper.CodeClassifyWrapper; import com.vci.ubcs.omd.feign.IBtmTypeClient; import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.starter.exception.VciBaseException; @@ -54,7 +54,6 @@ import com.vci.ubcs.system.vo.DeptVO; import com.vci.ubcs.system.vo.RoleVO; import lombok.extern.slf4j.Slf4j; -import org.apache.http.auth.AuthenticationException; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; @@ -72,6 +71,7 @@ import java.util.*; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Function; import java.util.stream.Collectors; import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; @@ -84,6 +84,50 @@ @Slf4j @VciWebservice(path = "/universalInterface") public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI { + + /*** + * 鎿嶄綔绫诲瀷 + */ + @Value("${bzApply.operationType:operationType}") + private String operationType; + /*** + * 鏄惁绯诲垪 + */ + @Value("${bzApply.isSeries:isSeries}") + private String isSeries; + /*** + *鍙戝竷鏃堕棿 + */ + @Value("${bzApply.releaseTime:releaseTime}") + private String releaseTime; + /*** + * 婧愭爣鍑嗗彿 + */ + @Value("${bzApply.oldCode:oldCode}") + private String oldCode; + + /*** + * 绯诲垪娴佹按 + */ + @Value("${bzApply.seriesFlow:seriesFlow}") + private String seriesFlow; + /*** + * 鏄惁鍙樻洿绯诲垪 + */ + @Value("${bzApply.isEditSeries:isEditSeries}") + private String isEditSeries; + /*** + * 鎺у埗鏄惁鍐欏叆鍊肩殑鐮佹鍚嶇О + */ + @Value("${bzApply.secName:绯诲垪鍙穧") + private String secName; + + /*** + * 鎺у埗鏄惁鍐欏叆鍊肩殑鐮佹鍚嶇О + */ + @Value("${bzApply.yearSecName:骞翠唬鍙穧") + private String yearSecName; + @Value("${code.universalinterface.checkSystemConfig:true}") public boolean CODE_CHECKCONFIG; @@ -858,6 +902,7 @@ 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 "); sqlsb.append(tableName); @@ -1982,7 +2027,7 @@ try { if ("xml".equals(dataType)) { XStream xStream = new XStream(new DomDriver()); - xStream.processAnnotations(RootDataVO.class); + xStream.processAnnotations(ApplyBZVO.class); xStream.autodetectAnnotations(true); ApplyBZVO rootDataVO = (ApplyBZVO) xStream.fromXML(data); applyBZParamVO.setData(rootDataVO); @@ -1999,18 +2044,15 @@ //鍏嶅瘑鐧诲綍鐢宠token锛宺equest涓坊鍔犵敤鎴蜂俊鎭� //passwordFreeLoginService.pwdFreeLoginByBoolean(userVo.getUserName(), this.getRequest()); passwordFreeLoginService.pwdFreeLoginByBoolean(systemId.toLowerCase(),this.getRequest()); - AuthUtil.getUser(); //杩欐槸璐﹀彿淇℃伅 SessionInfo sessionInfo = new SessionInfo(); sessionInfo.setUserId(userVo.getUserName()); sessionInfo.setUserName(userVo.getTrueName()); sessionInfo.setIp(userVo.getIp()); VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); -// List<XMLResultDataObjectDetailDO> allResultDataObjectDetailDOS=new ArrayList<>(); String finalSystemId = systemId; String libray=""; boolean isCodeOrGroupCode=false; - libray = classfyBZVO.getLibrary(); CodeClassifyVO codeClassifyVO = getClassfy(classfyBZVO,libray); log.info("end锛氬垎绫绘煡璇㈠畬姣�"); @@ -2032,8 +2074,8 @@ } CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid()); if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){ - objerrorCode="1"; - throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�"); + objerrorCode="100"; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栫郴缁熶腑瀵瑰簲妯℃澘"); } log.info("end锛氭ā鏉挎煡璇㈠畬姣�"); ApplyBZDatasVO applyBZDatasVO = classfyBZVO.getObjects(); @@ -2041,54 +2083,76 @@ List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag()) ).collect(Collectors.toList()); List<ApplyBZDataVO> applyBZDataVOList= applyBZDatasVO.getObject(); + if(applyBZDataVOList.size()>1){ + objerrorCode="1"; + throw new Throwable ("鏍囧噯鐢宠鍙敮鎸佷竴鏉℃暟鎹敵璇�"); + } String finalLibray = libray; ClassfyBZVO finalClassfyBZVO = classfyBZVO; + //瑙勫垯鐨勪富閿渶瑕佸幓鑾峰彇 + CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); + if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ + objerrorCode="1"; + log.info("classifyFullInfo:"+"鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); + } + CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); + if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){ + objerrorCode="102"; + throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旇鍒�"); + } + log.info("end锛氳鍒欒幏鍙栧畬姣�"); + List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classfyBZVO.getSections().getSection(), ruleVO,classifyFullInfo); + log.info("end锛氱爜娈佃幏鍙栧畬姣�"); + CodeBZApplyDTO codeBZApplyDTO=new CodeBZApplyDTO(); + codeBZApplyDTO.setSecDTOList(codeOrderSecDTOList);//鍒嗙被鐮佹 applyBZDataVOList.stream().forEach(applyBZDataVO -> { + String code=""; + String id=applyBZDataVO.getId(); try { - this.getConfigDatas(finalSystemId, finalLibray, applyBZDatasVO, attrVOS, dataObjectVO); + List<ProppertyVO> proppertyVOList=applyBZDataVO.getProp(); + String oldCodeValue=applyBZDataVO.getOldCode(); + setPropertyValue(oldCode,oldCodeValue,proppertyVOList);//婧愭爣鍑嗗彿 + boolean editSeriesFlag= applyBZDataVO.isEditSeriesFlag(); + setPropertyValue(isEditSeries,String.valueOf(editSeriesFlag),proppertyVOList);//鏄惁鏇翠负绯诲垪 + boolean seriesFlag=applyBZDataVO.isSeriesFlag(); + setPropertyValue(isSeries,String.valueOf(seriesFlag),proppertyVOList);//婧愭爣鍑嗙被鍨� + String operationTypeValue=applyBZDataVO.getOperationType(); + setPropertyValue(operationType,operationTypeValue,proppertyVOList);//鎿嶄綔绫诲瀷1:鍒跺畾锛�2:淇 + String releaseTimeValue= applyBZDataVO.getReleaseTime(); + setPropertyValue(releaseTime,releaseTimeValue,proppertyVOList);//鍙戝竷鏃堕棿 + String seriesFlow=applyBZDataVO.getSeriesFlow();//绯诲垪娴佹按 + codeBZApplyDTO.setOldCode(oldCodeValue); + codeBZApplyDTO.setReleaseTime(releaseTimeValue); + codeBZApplyDTO.setEditSeries(editSeriesFlag); + codeBZApplyDTO.setSeries(seriesFlag); + codeBZApplyDTO.setOperationType(operationTypeValue); + codeBZApplyDTO.setSeriesFlow(seriesFlow); + codeBZApplyDTO.setCodeClassifyOid(codeClassifyVO.getOid()); + codeBZApplyDTO.setCodeRuleOid(ruleVO.getOid()); + codeBZApplyDTO.setTemplateOid(templateVO.getOid()); + codeBZApplyDTO.setCreator(applyBZDataVO.getCreator()); + codeBZApplyDTO.setLastModifier(applyBZDataVO.getEditor()); + codeBZApplyDTO.setLcStatus(applyBZDataVO.getStatus()); + ApplyBZDatasVO newApplyBZDatasVO=new ApplyBZDatasVO(); + newApplyBZDatasVO.setObject(Arrays.asList(applyBZDataVO)); log.info("end锛氭暟鎹粍缁囧畬姣�"); - //瑙勫垯鐨勪富閿渶瑕佸幓鑾峰彇 - CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid()); - if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){ - objerrorCode="1"; - log.info("classifyFullInfo:"+"鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); - throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧垎绫荤浉鍏充俊鎭�"); - } - CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo); - if(ruleVO==null||StringUtils.isBlank(ruleVO.getOid())){ - objerrorCode="102"; - throw new Throwable ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旇鍒�"); - } - log.info("end锛氳鍒欒幏鍙栧畬姣�"); - //List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(ruleVO,classifyFullInfo); - log.info("end锛氱爜娈佃幏鍙栧畬姣�"); - CodeOrderDTO orderDTO = new CodeOrderDTO(); - orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭 - //orderDTO.setSecDTOList(codeOrderSecDTOList);//鍒嗙被鐮佹 - //mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs,isCodeOrGroupCode); - //allResultDataObjectDetailDOS.add(resultDataObjectDetailDOs); - log.info("end锛氱敵璇疯幏鍙栧畬姣�"); + this.getConfigDatas(finalSystemId, finalLibray, newApplyBZDatasVO, attrVOS, dataObjectVO); + log.info("end锛氭暟鎹粍缁囧畬姣�"); + codeBZApplyDTO.setData(dataObjectVO.getRowData().get(0).getFiledValue()); + code=engineService.addSaveBZCodeNotauthUser(codeBZApplyDTO,false); + msg="缂栫爜鐢宠鎴愬姛:缂栫爜涓猴細"+code; } catch (Throwable e) { - List<ApplyBZDataVO> applyDataVOList = finalClassfyBZVO.getObjects().getObject(); objerrorCode = "1"; - if (!CollectionUtils.isEmpty(applyDataVOList)) { - applyDataVOList.stream().forEach(applyDataVO -> { - XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); - xmlResultDataObjectDetailDO.setCode(""); - xmlResultDataObjectDetailDO.setId(applyDataVO.getId()); - xmlResultDataObjectDetailDO.setErrorid(objerrorCode); - xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:" + e.getMessage()); - resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); - }); - } else { - XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); - xmlResultDataObjectDetailDO.setCode(""); - xmlResultDataObjectDetailDO.setId(""); - xmlResultDataObjectDetailDO.setErrorid(objerrorCode); - xmlResultDataObjectDetailDO.setMsg("缂栫爜鐢宠澶辫触:" + e.getMessage()); - resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); - } + msg="缂栫爜鐢宠澶辫触:" +e.getMessage(); e.printStackTrace(); + }finally { + XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); + xmlResultDataObjectDetailDO.setCode(code); + xmlResultDataObjectDetailDO.setId(id); + xmlResultDataObjectDetailDO.setErrorid(objerrorCode); + xmlResultDataObjectDetailDO.setMsg(msg); + resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); } }); XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO(); @@ -2106,7 +2170,6 @@ e.printStackTrace(); msg="鐢宠缂栫爜澶辫触:"+e.getMessage(); }finally { - XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO(); xmlResultSystemVO.setClassifys(resultClassfyVOList); xmlResultSystemVO.setMsg(msg); @@ -2137,6 +2200,13 @@ log.info("杩斿洖鍙傛暟:"+resultStr); //璋冪敤闆嗗洟鐢宠鎺ュ彛鐢宠闆嗗洟鐮� return resultStr; + } + private void setPropertyValue(String key,String value,List<ProppertyVO> proppertyVOList){ + ProppertyVO proppertyVO=new ProppertyVO(); + proppertyVO.setKey(key); + proppertyVO.setValue(StringUtils.isBlank(value)?"":value); + proppertyVOList.add(proppertyVO); + } /*** * 鏌ヨ鏍¢獙鍒嗙被淇℃伅 @@ -2265,6 +2335,7 @@ Map<String,String> errorMap=new HashMap<>(); for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) { String sectype = codeBasicSecVO.getSecType(); + String newSecName=codeBasicSecVO.getName(); String classifySecOid= codeBasicSecVO.getOid(); String message=""; if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) { @@ -2294,7 +2365,7 @@ } } } - if(StringUtils.isBlank(sectypeValue)){ + if(StringUtils.isBlank(sectypeValue)&&!newSecName.equals(secName)){ message="浼犲叆鐨勫垎绫荤爜娈碉細銆�" + name + " 銆戠殑鍊间笉鍏佽涓虹┖"; errorMap.put("error",errorMap.getOrDefault("error","")+";"+message); } @@ -2384,7 +2455,7 @@ LinkedHashMap<Integer, String> integerValueMap = new LinkedHashMap<>(); Map<String, String> filedValueMap = new HashMap<>(); if (!CollectionUtils.isEmpty(proppertyVOList)) { - Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2)); + Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2)); Map<String, String> keyValueMap = new HashMap<>(); //鍒ゆ柇attrMapConfigMap鏄惁鏈夊�硷紝濡傛灉娌℃湁鍒欒鏄庡熀纭�榛樿鐨勬槸缂栫爜绯荤粺瀛楁 if (!CollectionUtils.isEmpty(attrMapConfigMap)) { -- Gitblit v1.9.3