From 58e84408a3cdcd57a349fcd7faadf832361965ff Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 17 七月 2023 14:17:37 +0800
Subject: [PATCH] 代码提交

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeRuleServiceImpl.java |   83 +++++++++++++++++++++++++++++++++++------
 1 files changed, 70 insertions(+), 13 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 8bd5db7..b0bb55c 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
@@ -22,6 +22,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
 import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
 import com.vci.ubcs.code.dto.CodeBasicSecDTO;
 import com.vci.ubcs.code.dto.CodeRuleDTO;
@@ -40,6 +41,8 @@
 import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
 import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
 import com.vci.ubcs.code.wrapper.CodeRuleWrapper;
+import com.vci.ubcs.omd.cache.EnumCache;
+import com.vci.ubcs.omd.enums.EnumEnum;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
@@ -64,6 +67,7 @@
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING;
 import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST;
@@ -437,6 +441,9 @@
 			if (!CodeRuleLC.EDITING.getValue().equals(codeRuleDO.getLcStatus())) {
 				return R.fail("闈炵紪杈戠姸鎬佺殑缂栫爜瑙勫垯鏃犳硶鍙戝竷");
 			}
+			// 鍙戝竷鏃跺皢鐮佹绫诲瀷鎸夌収瀛楃涓插垎闅旂殑褰㈠紡鎷兼帴骞跺瓨鍌�
+			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()));
 		} else {
 			return R.fail("鏆備笉鏀寔鐨勬搷浣滅被鍨�");
@@ -501,27 +508,77 @@
 	public R checkLikeCodeRule(String oid) throws VciBaseException {
 		// 1銆佹煡璇㈠嚭褰撳墠瑕佸彂甯冪殑瑙勫垯
 		CodeRuleVO codeRuleVO = getObjectHasSecByOid(oid);
-		// 2銆佹壘鍑轰笌褰撳墠鍙戝竷鐨勮鍒欑爜娈甸『搴忎竴鑷寸殑瑙勫垯
-		if(Func.isNotEmpty(codeRuleVO.getSecVOList())){
-			String secType = codeRuleVO.getSecVOList().stream().map(CodeBasicSecVO::getSecType).collect(Collectors.joining(","));
-
+		// 褰撳墠鍙戝竷鐨勮鍒欎笉瀛樺湪鐮佹淇℃伅
+		if(Func.isEmpty(codeRuleVO.getSecVOList())){
+			return R.data(null);
 		}
+		// 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));
+		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()){
+					// 灞炴�х爜娈碉紝姣斿灞炴�у拰灞炴�ф墍鍦ㄥ垎绫�(referCodeClassifyOid)
+					case "codeattrsec":
+						List<CodeBasicSecVO> codeattrsec = this.getBasicSecBySecType("codeattrsec", codeRuleVO);
 
-		// TODO 寰呭畬鍠�
+						break;
+					// 鍙彉鐮佹锛屾瘮瀵圭爜娈甸暱搴︼紝缂栫爜琛ヤ綅鏂瑰紡鍜岃ˉ浣嶆椂鐨勫瓧绗�
+					case "codevariablesec":
+						break;
+					// 鍥哄畾鐮佹姣斿鎸夊崌搴忔帓搴忕殑鐮佸�硷紝
+					case "codefixedsec":
+						break;
+					// 鍒嗙被鐮佹姣斿鎸夊崌搴忔帓搴忕爜鍊�
+					case "codeclassifysec":
+						break;
+					// 鏃ユ湡鐮佹姣斿鏃ユ湡鏍煎紡
+					case "codedatesec":
+						break;
+					// 寮曠敤鐮佹锛屾瘮瀵瑰弬鐓у簲鐢ㄧ殑涓氬姟绫诲瀷
+					case "coderefersec":
+						break;
+					// 灞傜骇鐮佹锛屾瘮瀵瑰眰绾х被鍨嬨�佸眰绾х殑鍊笺�佸瓧绗︽埅鍙栫被鍨嬨�佸彇鍊肩被鍨�
+					case "codelevelsec":
+						break;
+					case "codeserialsec":
+					// 娴佹按鐮佹姣斿鐮佹鐨勯暱搴�
 
-
-		// 2銆佸湪1銆佺殑鍩虹涓婂啀姣斿鐮佹绫诲瀷鐨勯『搴忎竴鑷寸殑缂栫爜璺潃
-
-		// 3銆佸湪2銆佺殑鍩虹涓婃瘮杈冪爜娈电爜鍊奸暱搴︼紝瀵规瘮鍑洪暱搴︾浉鍚岀殑缂栫爜瑙勫垯
-
-		// 4銆佸湪3銆佺殑鍩虹涓婃瘮杈冪爜鍊兼槸鍚︾浉鍚�
-
-
+						break;
+					default:
+						return false;
+				}
+				return false;
+			});
+			return false;
+		});
 		// 鏈�鍚庡皢缁撴灉杩涜杩斿洖
 
 		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