From ec407e8676f6245d88da3d9f729ad545ae3218c0 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 18 七月 2023 15:20:03 +0800 Subject: [PATCH] 代码提交 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java | 113 +++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 71 insertions(+), 42 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java index b0bb55c..57abd45 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java @@ -38,6 +38,7 @@ import com.vci.ubcs.code.service.ICodeRuleService; import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; +import com.vci.ubcs.code.vo.pagemodel.CodeFixedValueVO; import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO; import com.vci.ubcs.code.wrapper.CodeClassifyWrapper; import com.vci.ubcs.code.wrapper.CodeRuleWrapper; @@ -443,8 +444,7 @@ } // 鍙戝竷鏃跺皢鐮佹绫诲瀷鎸夌収瀛楃涓插垎闅旂殑褰㈠紡鎷兼帴骞跺瓨鍌� String secTypeStr = codeBasicSecService.listCodeBasicSecByRuleOid(codeRuleDO.getOid()).stream().map(CodeBasicSecVO::getSecType).collect(Collectors.joining(",")); - codeRuleDO.setBasicSecTypes(secTypeStr); - count = codeRuleMapper.update(null,wrapper.set(CodeRule::getLcStatus, CodeRuleLC.RELEASED.getValue())); + count = codeRuleMapper.update(null,wrapper.set(CodeRule::getLcStatus, CodeRuleLC.RELEASED.getValue()).set(CodeRule::getBasicSecTypes,secTypeStr)); } else { return R.fail("鏆備笉鏀寔鐨勬搷浣滅被鍨�"); } @@ -507,76 +507,105 @@ @Override public R checkLikeCodeRule(String oid) throws VciBaseException { // 1銆佹煡璇㈠嚭褰撳墠瑕佸彂甯冪殑瑙勫垯 - CodeRuleVO codeRuleVO = getObjectHasSecByOid(oid); - // 褰撳墠鍙戝竷鐨勮鍒欎笉瀛樺湪鐮佹淇℃伅 - if(Func.isEmpty(codeRuleVO.getSecVOList())){ - return R.data(null); + CodeRuleVO releaseCodeRule = getObjectHasSecByOid(oid); + // 褰撳墠鍙戝竷鐨勮鍒欎笉瀛樺湪鐮佹淇℃伅锛岀洿鎺ョ┖淇℃伅杩斿洖 + if(Func.isEmpty(releaseCodeRule.getSecVOList())){ + return R.success(""); } // 2銆佹壘鍑轰笌褰撳墠鍙戝竷鐨勮鍒欑爜娈甸『搴忎竴鑷寸殑瑙勫垯 - String secTypes = codeRuleVO.getSecVOList().stream().map(CodeBasicSecVO::getSecType).collect(Collectors.joining(",")); - //鍏堟煡璇㈠嚭鎵�鏈夊凡鍙戝竷鐨勭紪鐮佽鍒� - List<CodeRule> codeRuleList = codeRuleMapper.selectList(Wrappers.<CodeRule>query().lambda().eq(CodeRule::getLcStatus, FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED)); + String secTypes = releaseCodeRule.getSecVOList().stream().map(CodeBasicSecVO::getSecType).collect(Collectors.joining(",")); + // 鏌ヨ鍑烘墍鏈夊凡鍙戝竷鐨勭紪鐮佽鍒欎腑鐮佹绫诲瀷椤哄簭涓庡綋鍓嶈鍙戝竷鐨勮鍒欓『搴忎竴鑷寸殑缂栫爜瑙勫垯锛屾鏃跺凡杩戣繃婊ゆ帀澶ч儴鍒嗚鍒欙紝杩愮畻閲忓噺灏� + List<CodeRule> codeRuleList = codeRuleMapper.selectList(Wrappers.<CodeRule>query().lambda() + .eq(CodeRule::getLcStatus, FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED) + .eq(CodeRule::getBasicSecTypes,secTypes) + ); + // 涓虹┖锛岃瘉鏄庝笉瀛樺湪绫诲悓鐨勭紪鐮佽鍒欑洿鎺ヨ繑鍥� + if(Func.isEmpty(codeRuleList)){ + return R.success(""); + } + // 鏌ヨ鍑哄熀纭�鐮佹鍒楄〃锛堟寜鐓rderNum鍗囧簭鎺掑簭锛� List<CodeRuleVO> codeRuleVOS = codeRuleDO2VOs(codeRuleList, true); - // 婊¤冻鐮佹绫诲瀷椤哄簭涓�鑷寸殑瑕佹眰鐨勭紪鐮佽鍒欙紝鍙互杩涘叆涓嬩竴姝ユ瘮杈冭鍒� - List<CodeRuleVO> codeRuleVOStream = codeRuleVOS.parallelStream().filter(item -> { - // 瀵笲asicSec浣跨敤orderNum鎺掑簭(鏌ヨ鐨勬椂鍊欏叾瀹炲凡缁忔帓杩囦竴娆″簭浜�)锛屽苟灏唖ecType鐢ㄩ�楀彿鍒嗛殧鎷兼帴鎴愪竴涓瓧绗︿覆 - String itemSecTypes = item.getSecVOList().parallelStream().sorted(Comparator.comparing(CodeBasicSecVO::getOrderNum)).map(CodeBasicSecVO::getSecType).collect(Collectors.joining(",")); - if (secTypes.equals(itemSecTypes)) { - return true; - } - return false; - }).collect(Collectors.toList()); // 3銆佸悇绫荤爜娈靛垎鍒繘琛屾瘮瀵� - codeRuleVOStream.parallelStream().filter(item->{ - item.getSecVOList().stream().filter(basicSec->{ - switch (basicSec.getSecType()){ + List<CodeRuleVO> lastCodeRule = new ArrayList<>(); + codeRuleVOS.stream().forEach(item->{ + List<CodeBasicSecVO> secVOList = item.getSecVOList(); + boolean flag = true; + for (int index = 0; index < secVOList.size(); index++) { + // 褰撳墠瑕佸彂甯冪殑瑙勫垯鍖呭惈鐨勭爜娈典俊鎭� + CodeBasicSecVO releaseBasicSec = releaseCodeRule.getSecVOList().get(index); + // 宸插彂甯冪殑瑙勫垯鍖呭惈鐨勭爜娈典俊鎭� + CodeBasicSecVO releasedBasicSec = secVOList.get(index); + // 鍥犱负鐮佹椤哄簭閮芥槸鎸夌収OrderNum鎺掑簭鐨勶紝鎵�浠ョ洿鎺ユ寜鐓т笅鏍囦袱涓ゆ瘮杈冨氨鍙互浜� + switch (releasedBasicSec.getSecType()){ // 灞炴�х爜娈碉紝姣斿灞炴�у拰灞炴�ф墍鍦ㄥ垎绫�(referCodeClassifyOid) case "codeattrsec": - List<CodeBasicSecVO> codeattrsec = this.getBasicSecBySecType("codeattrsec", codeRuleVO); - + if(!releasedBasicSec.getReferCodeClassifyOid().equals(releaseBasicSec.getReferCodeClassifyOid())){ + flag = false; + } break; // 鍙彉鐮佹锛屾瘮瀵圭爜娈甸暱搴︼紝缂栫爜琛ヤ綅鏂瑰紡鍜岃ˉ浣嶆椂鐨勫瓧绗� case "codevariablesec": + if(!(releasedBasicSec.getCodeSecLength().equals(releaseBasicSec.getCodeSecLength()) + && releasedBasicSec.getCodeFillType().equals(releaseBasicSec.getCodeFillType()) + && releasedBasicSec.getCodeFillSeparator().equals(releaseBasicSec.getCodeFillSeparator()))){ + flag = false; + } break; // 鍥哄畾鐮佹姣斿鎸夊崌搴忔帓搴忕殑鐮佸�硷紝 case "codefixedsec": + if(Func.isNotEmpty(releasedBasicSec.getFixedValueVOList()) && Func.isNotEmpty(releaseBasicSec.getFixedValueVOList())){ + // 灏唂ixedValue鎸夌収閫楀彿鍒嗛殧鎷兼帴璧锋潵锛屼互渚挎瘮杈冿紝鐢变簬鏌ヨ鏃跺凡鎸夌収orderNum鎺掕繃搴忎簡锛屾墍浠ヤ笉闇�瑕佸啀娆℃帓搴� + String reledFixedValues = releasedBasicSec.getFixedValueVOList().stream().map(CodeFixedValueVO::getId).collect(Collectors.joining(",")); + String releFixedValues = releaseBasicSec.getFixedValueVOList().stream().map(CodeFixedValueVO::getId).collect(Collectors.joining(",")); + if(reledFixedValues.equals(releFixedValues)){ + flag = false; + } + } break; // 鍒嗙被鐮佹姣斿鎸夊崌搴忔帓搴忕爜鍊� case "codeclassifysec": + if(!releasedBasicSec.getReferCodeClassifyOid().equals(releaseBasicSec.getReferCodeClassifyOid())){ + flag = false; + } break; // 鏃ユ湡鐮佹姣斿鏃ユ湡鏍煎紡 case "codedatesec": + if(!releasedBasicSec.getCodeDateFormatStr().equals(releaseBasicSec.getCodeDateFormatStr())){ + flag = false; + } break; - // 寮曠敤鐮佹锛屾瘮瀵瑰弬鐓у簲鐢ㄧ殑涓氬姟绫诲瀷 + // 寮曠敤鐮佹锛屾瘮瀵瑰弬鐓у紩鐢ㄧ殑涓氬姟绫诲瀷 case "coderefersec": + if(!releasedBasicSec.getReferBtmId().equals(releaseBasicSec.getReferBtmId())){ + flag = false; + } break; // 灞傜骇鐮佹锛屾瘮瀵瑰眰绾х被鍨嬨�佸眰绾х殑鍊笺�佸瓧绗︽埅鍙栫被鍨嬨�佸彇鍊肩被鍨� case "codelevelsec": + if(!(releasedBasicSec.getCodeLevelType().equals(releaseBasicSec.getCodeLevelType()) + && releasedBasicSec.getCodeLevelValue().equals(releaseBasicSec.getCodeLevelValue()) + && releasedBasicSec.getValueCutType().equals(releaseBasicSec.getValueCutType()) + && releasedBasicSec.getCodeGetValueType().equals(releaseBasicSec.getCodeGetValueType()))){ + flag = false; + } break; - case "codeserialsec": // 娴佹按鐮佹姣斿鐮佹鐨勯暱搴� - + case "codeserialsec": + if(!releasedBasicSec.getCodeFillLength().equals(releaseBasicSec.getCodeFillLength())){ + flag = false; + } break; - default: - return false; } - return false; - }); - return false; + } + // 婊¤冻鎵�鏈夌爜娈电被鍨嬫瘮瀵规潯浠剁殑瑙勫垯 + if (flag) { + lastCodeRule.add(item); + } }); - // 鏈�鍚庡皢缁撴灉杩涜杩斿洖 + // 鏈�鍚庡皢缁撴灉杩涜澶勭悊骞惰繑鍥� + return null; - } - - private List<CodeBasicSecVO> getBasicSecBySecType(String secType,CodeRuleVO codeRuleVO){ - List<CodeBasicSecVO> codeBasicSecVOList = codeRuleVO.getSecVOList().parallelStream().filter(item -> { - if (item.getSecType().equals(secType)) { - return true; - } - return false; - }).collect(Collectors.toList()); - return codeBasicSecVOList; } /** -- Gitblit v1.9.3