From 04a3c68a77a73e4d1fb4e68bbaf51ae4b1d31219 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 16 八月 2025 17:41:31 +0800
Subject: [PATCH] 增加锁定

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java |   90 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 85 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..80dfa5a 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.gkw.programnode.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,76 @@
 		return baseMapper.lazyList(parentId);
 	}
 
+	/**
+	 * 鐢熸垚宸ユ帶缃戞爲
+	 * @return 鏍戞牴鑺傜偣闆嗗悎
+	 */
+	public List<ProgramNodeVO> loadTree() {
+		Integer workshoptDictVal = Func.toInt(paramService.getParamValue(ParamConstants.WORKSHOP_DICT_KEY,DEFAULT_WORKSHOP_VALUE));
+
+		List<ProgramNodeVO> roots = new ArrayList<>();
+		List<TreeDept> workshops = treeDeptService.lambdaQuery().eq(TreeDept::getDeptCategory,workshoptDictVal)
+			.orderByAsc(TreeDept::getSort).list();
+
+		for(TreeDept workshop : workshops) {
+			ProgramNodeVO node = new ProgramNodeVO();
+			node.setId(String.valueOf(workshop.getId()));
+			node.setName(workshop.getDeptName());
+
+			roots.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());
+
+				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());
+					addFolderNodes(nodeMachine);
+
+					nodeGd.addChildren(nodeMachine);
+				});
+			}
+		}
+
+		return roots;
+	}
+
+	/**
+	 * 鍔犲叆3涓枃浠跺す鑺傜偣
+	 * @param nodeMachine 鏈哄簥鑺傜偣
+	 */
+	void addFolderNodes(ProgramNodeVO nodeMachine){
+
+		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.setParentId(nodeMachine.getId());
+
+		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);
+
+		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);
+
+		nodeMachine.setChildren(Arrays.asList(sendNode,recNode,tempNode));
+	}
 }

--
Gitblit v1.9.3