From 86c8efdb19a2f4be79a947650ef62ed79382011b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 30 八月 2025 20:55:31 +0800
Subject: [PATCH] 重构机床回传文件;撤回后禁用撤回按钮

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java |  123 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 118 insertions(+), 5 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java
index 488dcaf..f1c5a49 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java
@@ -4,18 +4,23 @@
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.mp.base.BizServiceImpl;
+import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.machine.MachineService;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.commons.contants.ParamConstants;
+import org.springblade.mdm.commons.service.ParamService;
+import org.springblade.mdm.machinefile.entity.MachineFile;
 import org.springblade.mdm.gkw.programnode.entity.ProgramNode;
+import org.springblade.mdm.gkw.programnode.entity.TreeDept;
 import org.springblade.mdm.gkw.programnode.mapper.ProgramNodeMapper;
 import org.springblade.mdm.gkw.programnode.vo.ProgramNodeVO;
+import org.springblade.system.feign.ISysClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * 绋嬪簭鑺傜偣
@@ -27,7 +32,10 @@
 @AllArgsConstructor
 public class ProgramNodeService extends BizServiceImpl<ProgramNodeMapper, ProgramNode> {
 
-
+	private final ParamService paramService;
+	private final TreeDeptService treeDeptService;
+	private final MachineService machineService;
+	private static final String DEFAULT_WORKSHOP_VALUE = "4";
 	/**
 	/**
 	 * 鎳掑姞杞藉垪琛�
@@ -43,4 +51,109 @@
 		return baseMapper.lazyList(parentId);
 	}
 
+	/**
+	 * 鐢熸垚宸ユ帶缃戞爲
+	 * @return 鏍戞牴鑺傜偣闆嗗悎
+	 */
+	public List<ProgramNodeVO> loadTree(String includeSend) {
+
+		Integer workshoptDictVal = Func.toInt(paramService.getParamValue(ParamConstants.WORKSHOP_DICT_KEY,DEFAULT_WORKSHOP_VALUE));
+		Long rootDeptId = Func.toLong(paramService.rootDetpId());
+		TreeDept root =  treeDeptService.getById(rootDeptId);
+		List<ProgramNodeVO> roots = new ArrayList<>();
+		ProgramNodeVO rootVO = new ProgramNodeVO();
+		rootVO.setNodeType("factory");
+		rootVO.setName(root.getDeptName());
+		rootVO.setId(rootVO.getId());
+		roots.add(rootVO);
+
+		List<TreeDept> workshops = treeDeptService.lambdaQuery().eq(TreeDept::getDeptCategory,workshoptDictVal)
+			.orderByAsc(TreeDept::getSort).list();
+
+		List<ProgramNodeVO> workshopsVOList = new ArrayList<>();
+		for(TreeDept workshop : workshops) {
+			ProgramNodeVO node = new ProgramNodeVO();
+			node.setId(String.valueOf(workshop.getId()));
+			node.setName(workshop.getDeptName());
+			node.setNodeType("workshop");
+		//	roots.add(node);
+			workshopsVOList.add(node);
+			//鍔犲叆杞﹂棿涓嬬殑宸ユ
+			List<TreeDept> gongduanList = treeDeptService.lambdaQuery().eq(TreeDept::getParentId,workshop.getId())
+				.orderByAsc(TreeDept::getSort).list();
+			for(TreeDept gd : gongduanList){
+				ProgramNodeVO nodeGd = new ProgramNodeVO();
+				nodeGd.setId(String.valueOf(gd.getId()));
+				nodeGd.setName(gd.getDeptName());
+				nodeGd.setParentId(gd.getParentId());
+				nodeGd.setNodeType("seg");
+				node.addChildren(nodeGd);
+
+				//鍔犲叆宸ユ涓嬬殑鏈哄簥
+				machineService.lambdaQuery().eq(Machine::getOwnerDept,gd.getId()).list().forEach(machine -> {
+					ProgramNodeVO nodeMachine = new ProgramNodeVO();
+					nodeMachine.setName(machine.getCode());
+					nodeMachine.setId(String.valueOf(machine.getId()));
+					nodeMachine.setMachineCode(machine.getCode());
+					nodeMachine.setNodeType("machine");
+					addFolderNodes(nodeMachine,includeSend);
+
+					nodeGd.addChildren(nodeMachine);
+				});
+			}
+		}
+
+		rootVO.setChildren(workshopsVOList);
+
+		return roots;
+	}
+
+	/**
+	 * 鍔犲叆3涓枃浠跺す鑺傜偣
+	 * @param nodeMachine 鏈哄簥鑺傜偣
+	 */
+	void addFolderNodes(ProgramNodeVO nodeMachine,String includeSend){
+
+		List<ProgramNodeVO> dirNodes = new ArrayList<>();
+		if(!"0".equals(includeSend)){
+			ProgramNodeVO sendNode = new ProgramNodeVO();
+			sendNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_SEND);
+			sendNode.setName("SEND");
+			sendNode.setMachineCode(nodeMachine.getMachineCode());
+			sendNode.setDirType(MachineFile.DIR_TYPE_SEND);
+			sendNode.setNodeType("dir");
+
+			dirNodes.add(sendNode);
+		}
+
+
+		ProgramNodeVO recNode = new ProgramNodeVO();
+		recNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_REC);
+		recNode.setName("REC");
+		recNode.setMachineCode(nodeMachine.getMachineCode());
+		recNode.setDirType(MachineFile.DIR_TYPE_REC);
+		recNode.setNodeType("dir");
+		dirNodes.add(recNode);
+
+		ProgramNodeVO tempNode = new ProgramNodeVO();
+		tempNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_TEMP);
+		tempNode.setName("TEMP");
+		tempNode.setMachineCode(nodeMachine.getMachineCode());
+		tempNode.setDirType(MachineFile.DIR_TYPE_TEMP);
+		tempNode.setNodeType("dir");
+		dirNodes.add(tempNode);
+
+		nodeMachine.setChildren(dirNodes);
+	}
+
+	/**
+	 * 鏍戞煡璇�
+	 * @param keyword 鍏抽敭瀛�
+	 * @return 鎼滅储閬撳痉鏈哄櫒鍒楄〃
+	 */
+	public List<String> treeSearch(String keyword) {
+		return machineService.lambdaQuery()
+			.like(Machine::getCode,keyword)
+			.list().stream().map(m -> {return Func.toStr(m.getId());}).toList();
+	}
 }

--
Gitblit v1.9.3