From d9fb787c2eb0bc4058087b81bc5f01abbaf2ba65 Mon Sep 17 00:00:00 2001
From: ludc <pUXmgxCf6A>
Date: 星期六, 27 五月 2023 11:41:09 +0800
Subject: [PATCH] 集团集成从code服务里提出来,改造成服务

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 71 insertions(+), 20 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 5bc3366..f5be509 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
@@ -2,6 +2,7 @@
 
 import com.alibaba.nacos.common.utils.StringUtils;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
@@ -33,6 +34,7 @@
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.BladeTreeQueryObject;
 import com.vci.ubcs.starter.util.LocalFileUtil;
 import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
 import com.vci.ubcs.starter.web.pagemodel.DataGrid;
@@ -48,6 +50,7 @@
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -73,10 +76,14 @@
 
 	@Resource
 	private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
+
 	@Resource
-	CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper;
+	private CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper;
+
 	@Resource
-	ICodeRuleService ICodeRuleService;
+	private IBtmTypeClient btmTypeClient;
+
+
 
 	/**
 	 * 鏃ュ織
@@ -254,7 +261,7 @@
 		if(StringUtils.isBlank(oid)){
 			throw new ServiceException("oid涓嶈兘涓虹┖锛�");
 		}
-		return !codeClassifyMapper.checkHasChild(oid.trim());
+		return codeClassifyMapper.checkHasChild(oid.trim());
 	}
 
 
@@ -468,6 +475,19 @@
 		}
 		return tree;
 	}
+
+	/**
+	 * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞�
+	 *
+	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+	 * @return 鏌ヨ缁撴灉,鏁版嵁瀵硅薄
+	 */
+	@Override
+	public List<CodeClassifyVO> selectCodeClassifyDOByTree(TreeQueryObject treeQueryObject) {
+		List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
+		List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
+		return voList;
+	}
 	/**
 	 * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞�
 	 *
@@ -476,9 +496,12 @@
 	 */
 	@Override
 	public CodeClassifyVO getObjectByClsfNamePath(String fieldPath){
-
-		CodeClassify classify = (CodeClassify) codeClassifyMapper.selectByFieldNamePath(fieldPath, "name");
-		return codeClassifyDO2VO(classify);
+		CodeClassifyVO codeClassifyVO=new CodeClassifyVO();
+		List<CodeClassify> classifyList = codeClassifyMapper.selectByFieldNamePath(fieldPath,"name");
+		if(classifyList.size()>0){
+			codeClassifyVO=codeClassifyDO2VO(classifyList.get(0));
+		}
+		return codeClassifyVO;
 	}
 	/***
 	 * 鏍规嵁涓婄骇鑺傜偣鑾峰彇涓嬬骇鑺傜偣浠e彿璺緞鍜屽悕绉拌矾寰�
@@ -491,8 +514,7 @@
 		return null;
 	}
 
-
-//	/**
+	//	/**
 //	 * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞�
 //	 *
 //	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
@@ -983,7 +1005,7 @@
 	 * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父
 	 */
 	@Override
-	public  CodeClassifyVO getObjectByOid(String oid) throws VciBaseException{
+	public CodeClassifyVO getObjectByOid(String oid) throws VciBaseException{
 		return codeClassifyDO2VO(selectByOid(oid));
 	}
 
@@ -1004,7 +1026,7 @@
 	}
 
 	/**
-	 * 涓婚搴撶殑鏍�
+	 * 涓婚搴撶殑鏍�,宸茬粡鑱旇皟涓氬姟绫诲瀷鏌ヨ
 	 *
 	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
 	 * @return 涓婚搴撴樉绀烘爲
@@ -1015,10 +1037,20 @@
 			treeQueryObject = new TreeQueryObject();
 		}
 		if(treeQueryObject.getConditionMap() == null){
-			treeQueryObject.setConditionMap(new HashMap<>());
+			treeQueryObject.setConditionMap(new HashMap<String,String>());
 		}
 		treeQueryObject.getConditionMap().put(PARENT_FIELD_NAME, "=null");
-		return treeCodeClassify(treeQueryObject);
+		List<Tree> trees = treeCodeClassify(treeQueryObject);
+		treeQueryObject.getConditionMap().put("domain", AppConstant.APPLICATION_NAME_CODE);
+		BaseQueryObject baseQueryObject = new BaseQueryObject();
+		baseQueryObject.setConditionMap(treeQueryObject.getConditionMap());
+		List<BtmTypeVO> btmTypeVOS = btmTypeClient.getRef(baseQueryObject).getData();
+		if(Func.isEmpty(btmTypeVOS) || Func.isEmpty(trees)){
+			return null;
+		}
+		List<Tree> treeList = trees.stream().filter(tree -> btmTypeVOS.stream().
+			anyMatch(btmType -> Objects.equals(tree.getAttributes().get("id"), btmType.getId()))).collect(Collectors.toList());
+		return treeList;
 	}
 
 	/**
@@ -1072,18 +1104,37 @@
 		CodeClassify classifyDO = selectByOid(codeClassifyOid);
 		//鏌ヨ涓婄骇
 		fullInfo.setCurrentClassifyVO(codeClassifyDO2VO(classifyDO));
-		List<Map<String, Object>> maps = codeClassifyMapper.selectAllLevelParentByOid(codeClassifyOid);
-		List<CodeClassify> codeClassifyList = new ArrayList<>();
-		for (Map<String, Object> map : maps) {
-			CodeClassify codeClassify = new CodeClassify();
-			codeClassify.setOid(String.valueOf(map.get("OID")));
-			codeClassify.setOid(String.valueOf(map.get("LEVEL")));
-			codeClassifyList.add(codeClassify);
-		}
+//		List<Map<String, Object>> maps = codeClassifyMapper.selectAllLevelParentByOid(codeClassifyOid);
+//		List<Map<String, Object>> maps = selectAllLevelParentByOid(codeClassifyOid);
+		List<CodeClassify> codeClassifyList = selectAllLevelParentByOid(codeClassifyOid);
+//		for (Map<String, Object> map : maps) {
+//			CodeClassify codeClassify = new CodeClassify();
+//			codeClassify.setOid(String.valueOf(map.get("OID")));
+//			codeClassify.setDataLevel((Integer) map.get("LEVEL"));
+//			codeClassifyList.add(codeClassify);
+//		}
+
 		fullInfo.setParentClassifyVOs(codeClassifyDO2VOs(codeClassifyList));
 		if(!CollectionUtils.isEmpty(fullInfo.getParentClassifyVOs())){
 			fullInfo.setTopClassifyVO(fullInfo.getParentClassifyVOs().stream().filter(s->StringUtils.isBlank(s.getParentcodeclassifyoid())).findFirst().orElseGet(()->null));
 		}
 		return fullInfo;
 	}
+
+
+	/**
+	 * 缁熻瀛愯妭鐐圭殑涓暟
+	 *
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @return 涓暟
+	 */
+	@Override
+	public int countChildrenByClassifyOid(String codeClassifyOid) {
+//		Map<String,String> conditionMap = new HashMap<>();
+//		conditionMap.put("parentCodeClassifyOid",codeClassifyOid);
+		QueryWrapper<CodeClassify> wrapper = new QueryWrapper<>();
+		wrapper.eq("parentCodeClassifyOid",codeClassifyOid);
+		return codeClassifyMapper.selectCount(wrapper).intValue();
+	}
+
 }

--
Gitblit v1.9.3