From c84991603548ca07bdcb589bf61ab230a6fb9f3e Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 07 九月 2023 13:57:52 +0800 Subject: [PATCH] getCodeRuleByClassifyOid接口修改 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 95 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 92 insertions(+), 3 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index 721683a..825b051 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -2739,13 +2739,102 @@ String codeRuleOid = classifyVO.getCodeRuleOid(); if (StringUtils.isBlank(codeRuleOid)) { //寰�涓婃壘 - CodeClassifyFullInfoBO fullInfo = classifyService.getClassifyFullInfo(codeClassifyOid); - return getCodeRuleByClassifyFullInfo(fullInfo); + CodeRuleVO classifyFullInfoCodeRule = getCodeRuleByClassifyFullInfo(classifyService.getClassifyFullInfo(codeClassifyOid)); + return toCodeValueApplyStatus(classifyFullInfoCodeRule); } //鏌ヨ缂栫爜瑙勫垯 - return ruleService.getObjectHasSecByOid(codeRuleOid); + CodeRuleVO objectHasSecByOid = ruleService.getObjectHasSecByOid(codeRuleOid); + return toCodeValueApplyStatus(objectHasSecByOid); } + /** + * 缂栫爜鐢宠琛ㄥ崟锛岄殣钘忋�佸彲杈撱�佸彧璇昏浆鎹� + * @param codeRuleVO + * @return + */ + private CodeRuleVO toCodeValueApplyStatus(CodeRuleVO codeRuleVO){ + if(codeRuleVO.getSecVOList().isEmpty()){ + return codeRuleVO; + } + // 鍙緭鐮佹绫诲瀷 + List<String> inputTypes = Arrays.asList( + CodeSecTypeEnum.CODE_FIXED_SEC.getValue(), + CodeSecTypeEnum.CODE_VARIABLE_SEC.getValue(), + CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue(), + CodeSecTypeEnum.CODE_REFER_SEC.getValue() + ); + // 鍙鐮佹绫诲瀷 + List<String> readOnlyTypes = Arrays.asList( + CodeSecTypeEnum.CODE_LEVEL_SEC.getValue(), + CodeSecTypeEnum.CODE_ATTR_SEC.getValue(), + CodeSecTypeEnum.CODE_DATE_SEC.getValue() + ); + // 闅愯棌鐮佹绫诲瀷 + /*List<String> hideType = Arrays.asList( + CodeSecTypeEnum.CODE_SERIAL_SEC.getValue() + );*/ + // 褰撳墠瑙勫垯鐨勬墍鏈夌被鍨嬬爜娈� + List<String> secTypeList = codeRuleVO.getSecVOList().stream().map(CodeBasicSecVO::getSecType).collect(Collectors.toList()); + // 鎯呭喌涓� 鍏ㄩ儴鏄彧璇荤殑鐮佹绫诲瀷 + boolean hasAllReadOnlyType =secTypeList.stream().allMatch(item -> readOnlyTypes.stream().anyMatch(item1-> item.equals(item1))); + // 鍏ㄩ儴鏄彧璇荤殑鐮佹绫诲瀷 + if(hasAllReadOnlyType){ + List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> { + secVO.setCodeValueApplyStatus(3); + // 鏃ユ湡鐮佹璁剧疆榛樿鍊� + if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) { + try { + secVO.setCodeDateFormatStr(Func.format(new Date(),secVO.getCodeDateFormatStr())); + }catch (Exception e){ + throw new ServiceException("鏃ユ湡鐮佹鏃ユ湡鏍煎紡閰嶇疆鏈夎锛屽鑷磋浆鎹㈠嚭閿欙細"+e.getMessage()); + } + } + return secVO; + }).collect(Collectors.toList()); + codeRuleVO.setSecVOList(basicSecVOS); + return codeRuleVO; + } + // 鎯呭喌浜� 鍏ㄩ儴閮芥槸鍙緭鍏ョ被鍨嬬殑 + boolean hasAllInputType = secTypeList.stream().allMatch(item -> inputTypes.stream().anyMatch(item1-> item.equals(item1))); + if(hasAllInputType){ + List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> { + secVO.setCodeValueApplyStatus(1); + // 鏃ユ湡鐮佹璁剧疆榛樿鍊� + if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) { + try { + secVO.setCodeDateFormatStr(Func.format(new Date(),secVO.getCodeDateFormatStr())); + }catch (Exception e){ + throw new ServiceException("鏃ユ湡鐮佹鏃ユ湡鏍煎紡閰嶇疆鏈夎锛屽鑷磋浆鎹㈠嚭閿欙細"+e.getMessage()); + } + } + return secVO; + }).collect(Collectors.toList()); + codeRuleVO.setSecVOList(basicSecVOS); + return codeRuleVO; + } + // 鎯呭喌涓夊寘鍚汉涓洪�夋嫨鐨勭爜娈碉紝鍙堟湁鍙绫诲瀷鐮佹鐨勶紝鎵�鏈夌爜娈甸兘瑕佹樉绀哄嚭鏉ワ紝鍙緭璁剧疆涓�1锛屽彧璇昏缃负2锛岄殣钘忚缃负3 + List<CodeBasicSecVO> basicSecVOS = codeRuleVO.getSecVOList().stream().map(secVO -> { + if(inputTypes.contains(secVO.getSecType())){ + secVO.setCodeValueApplyStatus(1); + }else if(readOnlyTypes.contains(secVO.getSecType())){ + secVO.setCodeValueApplyStatus(2); + }else{ + secVO.setCodeValueApplyStatus(3); + } + // 鏃ユ湡鐮佹璁剧疆榛樿鍊� + if (secVO.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())) { + try { + secVO.setCodeDateFormatStr(Func.format(new Date(),secVO.getCodeDateFormatStr())); + }catch (Exception e){ + throw new ServiceException("鏃ユ湡鐮佹鏃ユ湡鏍煎紡閰嶇疆鏈夎锛屽鑷磋浆鎹㈠嚭閿欙細"+e.getMessage()); + } + } + return secVO; + }).collect(Collectors.toList()); + codeRuleVO.setSecVOList(basicSecVOS); + return codeRuleVO; + } + /** * 浣跨敤鍒嗙被鐨勫叏閮ㄤ俊鎭幏鍙栫紪鐮佽鍒� * -- Gitblit v1.9.3