From 32f4bb41c82ded759e7db18c9fa449b1442f15c8 Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期三, 21 六月 2023 16:39:12 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java |  110 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 80 insertions(+), 30 deletions(-)

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 24ae819..42cad8e 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
@@ -57,9 +57,11 @@
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.awt.event.ItemEvent;
 import java.io.File;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.*;
 
@@ -103,6 +105,20 @@
 	public List<CodeClassify> selectByWrapper(Wrapper wrapper) {
 		return codeClassifyMapper.selectList(wrapper);
 	}
+
+	/**
+	 * 鏌ヨ
+	 * @param wrapper 鏌ヨ灏佽鍣�
+	 * @return
+	 */
+	@Override
+	public List<String> select1(Wrapper wrapper) {
+
+		return codeClassifyMapper.selectObjs(wrapper);
+	}
+
+
+
 
 	@Override
 	public IPage<CodeClassifyVO> selectPlCodeClassifyPage(IPage<CodeClassifyVO> page, CodeClassifyVO plCodeClassify) {
@@ -438,13 +454,43 @@
 	}
 
 	/**
+	 * 涓婚敭鏌ヨ鏁版嵁瀵硅薄,鍏宠仈鏌ヨ
+	 * @param oid 涓婚敭
+	 * @return  鏁版嵁瀵硅薄
+	 */
+	private CodeClassify selectByOidRel(String oid){
+
+		List<CodeClassify> codeClassifyList = codeClassifyMapper.selectClassifyByKeyAndReseRel("'"+oid.trim()+"'");
+//		CodeClassify codeClassifyEntity = (CodeClassify) codeClassifyList;
+		if(codeClassifyList.size() == 0 ){
+			throw new ServiceException("dataNotExist");//鏍规嵁涓婚敭id鏈煡鍒扮浉鍏虫暟鎹�
+		}
+//		if(codeClassifyEntity == null || StringUtils.isBlank(codeClassifyEntity.getOid())){
+//			throw new ServiceException("dataOidNotExist");//鏍规嵁涓婚敭id鏈煡鍒扮浉鍏虫暟鎹�
+//		}
+		return codeClassifyList.get(0);
+	}
+
+	/**
 	 * 鏌ヨ涓婚搴撳垎绫� 鏍�
 	 * @param treeQueryObject 鏍戞煡璇㈠璞�
 	 * @return 涓婚搴撳垎绫� 鏄剧ず鏍�
 	 */
 	@Override
 	public List<Tree> treeCodeClassify(TreeQueryObject treeQueryObject) {
-		List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
+		List<CodeClassify> doList = null;
+		String id = null;
+		String lcStatus = null;
+		if(!Objects.isNull(treeQueryObject.getConditionMap())){
+			id = treeQueryObject.getConditionMap().getOrDefault("id",null);
+			lcStatus = treeQueryObject.getConditionMap().getOrDefault("lcStatus",null);
+		}
+		if(StringUtils.isNotBlank(id) || StringUtils.isNotBlank(lcStatus) ){
+			doList = codeClassifyMapper
+				.selectCodeClassifyDOByTree(treeQueryObject.getConditionMap().get("id"),treeQueryObject.getConditionMap().get("lcStatus"),treeQueryObject.getParentOid());
+		}else{
+			doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
+		}
 		List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
 		TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME.toLowerCase(Locale.ROOT));
 		treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
@@ -501,8 +547,9 @@
 	 */
 	@Override
 	public List<CodeClassifyVO> getIdPathToNamePathByParentId(String classifyId, boolean enable) {
-		return null;
+		return codeClassifyMapper.getIdPathToNamePathByParentId(classifyId);
 	}
+
 
 	//	/**
 //	 * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞�
@@ -615,7 +662,7 @@
 	@Override
 	public List<CodeClassifyVO> listChildrenClassify(String codeClassifyOid, boolean allLevel, String fieldInPath, boolean enable) {
 		if(allLevel){
-			List<CodeClassify> classifyDOS = codeClassifyMapper.selectAllLevelChildHasPath(codeClassifyOid);
+			List<CodeClassify> classifyDOS = codeClassifyMapper.selectAllLevelChildHasPath(codeClassifyOid,fieldInPath);
 			if(!CollectionUtils.isEmpty(classifyDOS)){
 				classifyDOS = classifyDOS.stream().filter(s->FRAMEWORK_DATA_ENABLED.equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList());
 			}
@@ -735,7 +782,7 @@
 		Map<String/**璺緞**/,String/**涓婚敭**/> oidPathMap = new HashMap<>();
 
 		//鎴戜滑闇�瑕佹煡璇㈡墍鏈夊凡缁忓瓨鍦ㄧ殑鍒嗙被锛屼富瑕佹槸璺緞锛岀敤鏉ュ垽鏂垎绫荤殑鏁版嵁
-		List<CodeClassify> existClassifyDOs = codeClassifyMapper.selectAllLevelChildHasPath("");
+		List<CodeClassify> existClassifyDOs = codeClassifyMapper.selectAllLevelChildHasPath("",null);
 		Map<String/**璺緞**/, CodeClassify/**宸茬粡瀛樺湪鐨勬暟鎹�**/> pathDOMap = Optional.ofNullable(existClassifyDOs).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> {
 			String path = s.getPath();
 			if(StringUtils.isNotBlank(path) && path.startsWith("#")){
@@ -912,12 +959,12 @@
 				attributeVO.setAttributeLength(attr.getAttributeLength());
 				attributeVO.setBtmTypeId(btmTypeDetail.getData().getId());
 				attributeVO.setBtmname(btmTypeDetail.getData().getName());
-				attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCO_FIELD_TYPE,attr.getAttrDataType()));
+				attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCI_FIELD_TYPE,attr.getAttrDataType()));
 				boolean add = true;
 				if(StringUtils.isNotBlank(id) && !attributeVO.getId().contains(id.replace("*",""))){
 					add = false;
 				}
-				if(StringUtils.isNotBlank(name) && !attributeVO.getId().contains(name.replace("*",""))){
+				if(StringUtils.isNotBlank(name) && !attributeVO.getName().contains(name.replace("*",""))){
 					add = false;
 				}
 				if(add){
@@ -930,20 +977,31 @@
 			throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤鍑洪敊");
 		}
 		List<BtmTypeAttributeVO> defaultAttrVOS = btmTypeVOR.getData().getAttributes();
-		if(!CollectionUtils.isEmpty(defaultAttrVOS)){
-			defaultAttrVOS.stream().forEach(attr->{
+
+		// 鍙栦袱涓泦鍚堝樊闆�
+		List<String> ids = unDefaultAttributes.stream().map(BtmTypeAttributeVO::getId).collect(Collectors.toList());
+		defaultAttrVOS.forEach(item->{
+			if(!ids.contains(item.getId())){
+				BtmTypeAttributeVO attributeVO = new BtmTypeAttributeVO();
+				BeanUtils.copyProperties(item,attributeVO);
+				attributeVO.setAttrDataType(item.getAttrDataType());
+				attributeVO.setAttributeLength(item.getAttributeLength());
+				attributeVO.setBtmTypeId(btmTypeDetail.getData().getId());
+				attributeVO.setBtmname(btmTypeDetail.getData().getName());
+				attributeVO.setAttrDataTypeText(EnumCache.getValue(EnumEnum.VCI_FIELD_TYPE,item.getAttrDataType()));
 				boolean add = true;
-				if(StringUtils.isNotBlank(id) && !attr.getId().contains(id.replace("*",""))){
+				if(StringUtils.isNotBlank(id) && !item.getId().contains(id.replace("*",""))){
 					add = false;
 				}
-				if(StringUtils.isNotBlank(name) && !attr.getId().contains(name.replace("*",""))){
+				if(StringUtils.isNotBlank(name) && !item.getName().contains(name.replace("*",""))){
 					add = false;
 				}
 				if(add){
-					attributeVOS.add(attr);
+					attributeVOS.add(attributeVO);
 				}
-			});
-		}
+			}
+		});
+
 		DataGrid<BtmTypeAttributeVO> dataGrid = new DataGrid<>();
 		dataGrid.setData(attributeVOS);
 		dataGrid.setTotal(attributeVOS.size());
@@ -993,10 +1051,15 @@
 		}
 
 		//浣跨敤涓婚敭鏌ヨ涓�涓�
-		List<CodeClassify> classifyDOS = codeClassifyMapper.selectBatchIds(oidLevelMap.keySet());
+		String oids = "";
+		for (String s : oidLevelMap.keySet()) {
+			oids += "'"+s+"',";
+		}
+		List<CodeClassify> classifyDOS = codeClassifyMapper.selectClassifyByKeyAndReseRel(oids.substring(0,oids.length()-1));
 		if(!CollectionUtils.isEmpty(classifyDOS)){
 			classifyDOS.stream().forEach(classifyDO->{
 				classifyDO.setDataLevel(VciBaseUtil.getInt(oidLevelMap.getOrDefault(classifyDO.getOid(),"0")));
+				classifyDO.setLcStatusText(EnumCache.getValue("codeLcstatus",classifyDO.getLcStatus()));
 			});
 		}
 		return classifyDOS;
@@ -1021,29 +1084,16 @@
 	 */
 	@Override
 	public CodeClassifyVO getObjectByIdPath(String idPath) {
-		List<Map<String, Object>> idPathValues = codeClassifyMapper.selectByFieldPath("/" + idPath);
+		List<Map<String, Object>> idPathValues = codeClassifyMapper.selectByFieldPath("#" + idPath);
 		CodeClassify classifyDO = null;
 		if (idPathValues != null){
-			classifyDO = codeClassifyMapper.selectById(idPathValues.get(0).get("oid").toString());
+			classifyDO = codeClassifyMapper.selectByIdRel(idPathValues.get(0).get("OID").toString());
 		}
 		return codeClassifyDO2VO(classifyDO);
 	}
 
 	/**
-<<<<<<< Updated upstream
-<<<<<<< Updated upstream
-<<<<<<< Updated upstream
 	 * 涓婚搴撶殑鏍�,宸茶仈璋冧笟鍔$被鍨嬫煡璇eign
-=======
-	 * 涓婚搴撶殑鏍�,宸茬粡鑱旇皟涓氬姟绫诲瀷鏌ヨ
->>>>>>> Stashed changes
-=======
-	 * 涓婚搴撶殑鏍�,宸茬粡鑱旇皟涓氬姟绫诲瀷鏌ヨ
->>>>>>> Stashed changes
-=======
-	 * 涓婚搴撶殑鏍�,宸茬粡鑱旇皟涓氬姟绫诲瀷鏌ヨ
->>>>>>> Stashed changes
-	 *
 	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
 	 * @return 涓婚搴撴樉绀烘爲
 	 */
@@ -1123,7 +1173,7 @@
 	public CodeClassifyFullInfoBO getClassifyFullInfo(String codeClassifyOid) {
 		VciBaseUtil.alertNotNull(codeClassifyOid,"鍒嗙被鐨勪富閿�");
 		CodeClassifyFullInfoBO fullInfo = new CodeClassifyFullInfoBO();
-		CodeClassify classifyDO = selectByOid(codeClassifyOid);
+		CodeClassify classifyDO = selectByOidRel(codeClassifyOid);
 		//鏌ヨ涓婄骇
 		fullInfo.setCurrentClassifyVO(codeClassifyDO2VO(classifyDO));
 //		List<Map<String, Object>> maps = codeClassifyMapper.selectAllLevelParentByOid(codeClassifyOid);

--
Gitblit v1.9.3