From f445c5ba99d8ffb6d78a03af40c74b218a6d2162 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 02 八月 2025 11:27:21 +0800
Subject: [PATCH] 程序上传接口3

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java |   73 ++++++++++++++++++++++++++++++++----
 1 files changed, 65 insertions(+), 8 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
index b01834c..e3c8dc6 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
@@ -12,11 +12,14 @@
 import org.springblade.mdm.program.mapper.NcNodeMapper;
 import org.springblade.mdm.program.vo.NcNodeProgramQueryVO;
 import org.springblade.mdm.program.vo.NcNodeProgramVO;
+import org.springblade.mdm.program.vo.NcNodeQueryVO;
 import org.springblade.mdm.program.vo.NcNodeVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 绋嬪簭鑺傜偣
@@ -82,14 +85,6 @@
 		return baseMapper.lazyList(parentId);
 	}
 
-	/**
-	 * 绋嬪簭鑺傜偣
-	 * @param query
-	 * @return
-	 */
-	public IPage<NcNodeProgramVO> programPageQuery(NcNodeProgramQueryVO query) {
-		return this.getBaseMapper().programPageQuery(Condition.getPage(query),query);
-	}
 
 	/**
 	 * 鏌ヨ鐜版湁鍥哄寲鐨勭▼搴忥紝鏆傚畾鏉′欢锛氶浂缁勪欢鍙风浉鍚岋紝涓旀槸鍚屼竴鏈哄簥缁�
@@ -100,4 +95,66 @@
 	public NcNode getLastProgramNode(String name) {
 		return this.getBaseMapper().getLastProgramNode(name);
 	}
+
+
+	/**
+	 * 棣栭〉鏍戞煡璇�
+	 * @param queryVO
+	 * @return
+	 */
+	public List<NcNodeVO> searchList(NcNodeQueryVO queryVO) {
+		//1.鏍规嵁鍏宠繘瀛楀拰鑺傜偣绫诲瀷鏌ヨ鍒濆鍒楄〃,鏌ヨ鐨勫師濮嬪垪琛紝闇�瑕乭asChild瀛楁锛屾墍浠ヤ娇鐢╩apper.xml
+		List<NcNodeVO> oriList = this.getBaseMapper().searchList(queryVO);
+		//List<NcNode> list = this.lambdaQuery().eq(NcNode::getNodeType, queryVO.getNodeType()).like(NcNode::getName, queryVO.getName()).list();
+		if ("10".equals(queryVO.getNodeType())) {
+			//鎼滅储鐨勬牴绾у埆锛岀洿鎺ヨ繑鍥�
+			return oriList;
+		}
+
+		List<NcNodeVO> allVos = new ArrayList<NcNodeVO>();//宸茬粡鍔犲叆杩囩殑鑺傜偣锛岀敤浜庡幓閲�
+		List<NcNodeVO> rootVos = new ArrayList<NcNodeVO>();
+
+		//List<NcNode> rootNodes = new ArrayList<>();
+
+		for(NcNodeVO vo : oriList){
+			allVos.add(vo);
+			//涓婄骇鍚勭骇鐨勮妭鐐�
+			List<NcNodeVO> parents = this.getBaseMapper().searchListInIds(Func.toLongList(vo.getParentIds()));
+
+			for(NcNodeVO pvo : parents){
+				if(pvo.getParentId() == 0L){
+					rootVos.add(pvo);
+				}
+				allVos.add(pvo);
+			}
+		}
+		for(NcNodeVO root : rootVos){
+			addNodeChildren(root, allVos);
+
+		}
+		return rootVos;
+	}
+
+	void addNodeChildren(NcNodeVO node, List<NcNodeVO> allNodes) {
+		for(NcNodeVO vo : allNodes){
+			if(Objects.equals(vo.getParentId(), node.getId())){
+				node.addChildren(vo);
+			}
+		}
+
+		if(node.getChildren()!=null && !node.getChildren().isEmpty()){
+			for(NcNodeVO child : node.getChildren()){
+				addNodeChildren(child, allNodes);
+			}
+		}
+	}
+
+	NcNodeVO toNodeVO(NcNode node){
+		NcNodeVO vo = new NcNodeVO();
+
+		BeanUtils.copyProperties(node, vo);
+
+		return vo;
+	}
+
 }

--
Gitblit v1.9.3