From 8fd0ad7a95d85cd09c5bf98bc0c05235a162a8af Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 16 十一月 2023 16:40:34 +0800
Subject: [PATCH] bug列表:180(分类上增加关键属性查重校验字段当前分类是否参与校验,历史数据导入代码逻辑中关键属性校验增加过滤条件)

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java        |   10 +++-
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java         |    9 ++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml                          |   25 ++++++++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java |   18 +++++++++
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java     |    2 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java            |    9 ++++
 6 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
index 6c03a06..d0b93e0 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
@@ -174,4 +174,13 @@
 	 * @return
 	 */
 	List<CodeClassify> selectAllClassifyByOid(@Param("oid") String oid,@Param("fieldInPath")String fieldInPath,@Param("tenantId") String tenantId);
+
+	/**
+	 * 鏍规嵁椤跺眰鑺傜偣oid鏌ヨ鎵�鏈夐櫎褰撳墠鑺傜偣浠ュ鎵�鏈変笉鍙備笌鏍¢獙鐨勫垎绫籵id
+	 * @param topOid
+	 * @param currentOid
+	 * @return
+	 */
+	List<CodeClassify> selectLeafByParentClassifyOid(@Param("topOid") String topOid,@Param("currentOid")String currentOid);
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
index 01d750c..54cc68f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
@@ -11,6 +11,7 @@
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 import com.vci.ubcs.starter.web.pagemodel.DataGrid;import com.vci.ubcs.starter.web.pagemodel.Tree;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.api.R;
 import java.io.File;
@@ -296,4 +297,12 @@
 	 */
 	List<CodeClassifyVO> selectAllClassifyByOid(String oid, String fieldInPath);
 
+	/**
+	 * 鏍规嵁椤跺眰鑺傜偣oid鏌ヨ鎵�鏈夐櫎褰撳墠鑺傜偣浠ュ鎵�鏈変笉鍙備笌鏍¢獙鐨勫垎绫籵id
+	 * @param topOid
+	 * @param currentOid
+	 * @return
+	 */
+	String selectLeafByParentClassifyOid(String topOid, String currentOid);
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
index 1f2aa7f..ae01ddd 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -662,6 +662,22 @@
 
 	}
 
+	/**
+	 * 鏍规嵁椤跺眰鑺傜偣oid鏌ヨ鎵�鏈夐櫎褰撳墠鑺傜偣浠ュ鎵�鏈変笉鍙備笌鏍¢獙鐨勫垎绫籵id
+	 * @param topOid
+	 * @param currentOid
+	 * @return
+	 */
+	@Override
+	public String selectLeafByParentClassifyOid(String topOid, String currentOid) {
+		List<CodeClassify> codeClassifies = codeClassifyMapper.selectLeafByParentClassifyOid(topOid, currentOid);
+		if(codeClassifies.isEmpty()){
+			return "";
+		}
+		String oids = codeClassifies.stream().map(CodeClassify::getOid).collect(Collectors.joining(","));
+		return oids;
+	}
+
 	/***
 	 * 鏍规嵁鍒嗙被鎻忚堪澶囨敞鍜屽簱鑺傜偣鏌ヨ鍒嗙被淇℃伅
 	 * @param desc
@@ -1373,4 +1389,6 @@
 		return codeClassifyMapper.selectCount(wrapper).intValue();
 	}
 
+
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index b9b6cd4..4935984 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -3819,7 +3819,9 @@
 		//2.鍒ゆ柇鍏抽敭灞炴�у湪绯荤粺閲屾槸鍚﹂噸澶�
 		//鍥犱负鏁版嵁閲忓緢澶э紝鎵�浠ュ緱鎯冲姙娉曞苟琛�
 		//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
-		Map<String,List<BaseModel>> indexTODataMap=new HashMap<>();
+		Map<String,List<BaseModel>> indexTODataMap=new ConcurrentHashMap<>();
+		// 鏌ヨ涓嶉渶瑕佸弬涓庡叧閿睘鎬ф牎楠岀殑闄よ嚜宸变互澶栫殑鎵�鏈夊垎绫籵id
+		String isParticipateCheckOids = classifyService.selectLeafByParentClassifyOid(classifyFullInfo.getTopClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO().getOid());
 		List<ClientBusinessObject> repeatDataMap = cboList.parallelStream().filter(cbo -> {
 			//姣忚閮藉緱鏌ヨ.濡傛灉鍏朵腑鍑虹幇浜嗛敊璇紝鎴戜滑灏辩洿鎺ユ姏鍑哄紓甯革紝鍏朵綑鐨勬樉绀�
 			//VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
@@ -3832,9 +3834,11 @@
 				value= value.replace(REQUIRED_CHAR,SPECIAL_CHAR);
 				engineService.wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap);
 			});
-			// 娣诲姞鏄惁鍙備笌鍏抽敭灞炴�ф牎楠屾潯浠�
-			conditionMap.put("t.isparticipatecheck","1");
 			if (!CollectionUtils.isEmpty(ketAttrMap)) {
+				// 娣诲姞涓嶅弬涓庡叧閿睘鎬ф牎楠岀殑鍒嗙被oid鍒ゆ柇
+				if(Func.isNotBlank(isParticipateCheckOids)){
+					conditionMap.put("t.codeclsfid",QueryOptionConstant.NOTIN+isParticipateCheckOids);
+				}
 				CodeTemplateAttrSqlBO sqlBO = engineService.getSqlByTemplateVO(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), templateVO, conditionMap, null);
 				boolean isKeyCheck= commonsMapper.queryCountBySql(sqlBO.getSqlCount()) > 0;
 				if(isKeyCheck){
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
index afa5b73..dd22b32 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -113,7 +113,6 @@
         order by lastmodifytime asc
     </select>
 
-    <!--codeclassify0.parentCodeClassifyOid = '${oid}'-->
     <select id="selectAllLevelChildHasPath" resultMap="plCodeClassifyResultMap">
         select codeclassify0.OWNER as owner,
                codeclassify0.BTMTYPEID as btmtypeid,
@@ -585,4 +584,28 @@
         connect by p.oid = prior p.PARENTCODECLASSIFYOID
     </select>
 
+    <select id="selectLeafByParentClassifyOid" resultType="com.vci.ubcs.code.entity.CodeClassify">
+        select *
+            from (
+                select
+                    oid,
+                    name,
+                    id,
+                    level lvl,
+                    isparticipatecheck,
+                    nvl((select 'N'
+                        from PL_CODE_CLASSIFY pcc1
+                        where pcc.oid = pcc1.PARENTCODECLASSIFYOID
+                            and rownum &lt; 2),'Y') is_leaf
+                from PL_CODE_CLASSIFY pcc
+                start with pcc.PARENTCODECLASSIFYOID = #{topOid}
+                connect by pcc.PARENTCODECLASSIFYOID = prior oid
+            ) plcls
+        where
+        is_leaf = 'Y'
+        and isparticipatecheck = 0
+        and oid != #{currentOid}
+    </select>
+
+
 </mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
index 5b01b14..e06b155 100644
--- a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/MenuServiceImpl.java
@@ -74,7 +74,7 @@
 
 	@Override
 	public List<MenuVO> lazyList(Long parentId, Map<String, Object> param) {
-		int i = 1 / 0;
+		//int i = 1 / 0;
 		if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) {
 			parentId = null;
 		}

--
Gitblit v1.9.3