From b7da34655eba68a1d837cffbbd43319d88971fac Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 19 八月 2025 13:00:54 +0800
Subject: [PATCH] 调整日志配置

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java |   91 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 87 insertions(+), 4 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 a3cf2ea..21fc1f7 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
@@ -5,6 +5,8 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.mp.base.BizServiceImpl;
 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.program.entity.NcNode;
 import org.springblade.mdm.program.mapper.NcNodeMapper;
 import org.springblade.mdm.program.vo.*;
@@ -27,6 +29,7 @@
 @AllArgsConstructor
 public class NcNodeService extends BizServiceImpl<NcNodeMapper, NcNode> {
 
+	private final MachineService machineService;
 
 	public void saveNcCode(NcNodeVO vo) {
 		NcNode ncNode = new NcNode();
@@ -73,7 +76,7 @@
 	 * @return
 	 */
 	public List<NcNodeVO> lazyList(Long parentId) {
-// 鍒ゆ柇鐐瑰嚮鎼滅储浣嗘槸娌℃湁鏌ヨ鏉′欢鐨勬儏鍐�
+		// 鍒ゆ柇鐐瑰嚮鎼滅储浣嗘槸娌℃湁鏌ヨ鏉′欢鐨勬儏鍐�
 		if (Func.isEmpty(parentId)) {
 			parentId = 0L;
 		}
@@ -158,7 +161,9 @@
 	 * @return 绋嬪簭鎶ュ寘鍚嶇殑鑺傜偣
 	 */
 	public NcNode getProgramPackageByName(String programName) {
-		List<NcNode> pkgs = this.lambdaQuery().eq(NcNode::getName, programName).eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE).list();
+		List<NcNode> pkgs = this.lambdaQuery().eq(NcNode::getName, programName)
+			.eq(NcNode::getIsLastEdition,1)
+			.eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE).list();
 		if(pkgs.isEmpty()){
 			return null;
 		}else{
@@ -222,7 +227,7 @@
 	 */
     public List<NcNode> getNodeHistory(NcNode pkgNode) {
 		return this.lambdaQuery().eq(NcNode::getParentId,pkgNode.getParentId())
-			.eq(NcNode::getName,pkgNode.getName()).list();
+			.eq(NcNode::getName,pkgNode.getName()).list();//.ne(NcNode::getId,pkgNode.getId())
     }
 
 	/**
@@ -242,7 +247,46 @@
 	 */
 	public NcNode getLastEditionCuredProgramPackage(String programPkgName) {
 		List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
-			.eq(NcNode::getName, programPkgName).eq(NcNode::getIsCured,1)
+			.eq(NcNode::getName, programPkgName).likeRight(NcNode::getParentIds,"0,2,").eq(NcNode::getIsCured,1)
+			.eq(NcNode::getIsLastEdition,1).list();
+
+		if(nodes.isEmpty()){
+			return null;
+		}else {
+			return nodes.get(0);
+		}
+	}
+
+	/**
+	 * 鑾峰彇鏈�鏂扮増鏈殑 宸插浐鍖栬妭鐐�
+	 * @param programPkgName 绋嬪簭鍖呭悕
+	 * @param machineCode 鏈哄簥缂栧彿
+	 * @return
+	 */
+	public NcNode getCuredProgramPackage(String programPkgName,String machineCode) {
+		Machine machine = machineService.getByCode(machineCode);
+		List<Machine> sameGroupMachines = machineService.lambdaQuery().eq(Machine::getMachineGroupCode,machine.getMachineGroupCode()).list();
+		List<String> machineCodesInGroup = sameGroupMachines.stream().map(Machine::getCode).toList();
+		List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
+			.eq(NcNode::getName, programPkgName).likeRight(NcNode::getParentIds,"0,2,").eq(NcNode::getIsCured,1)
+			.in(!machineCodesInGroup.isEmpty(),NcNode::getMachineCode,machineCodesInGroup)
+			.eq(NcNode::getIsLastEdition,1).list();
+
+		if(nodes.isEmpty()){
+			return null;
+		}else {
+			return nodes.get(0);
+		}
+	}
+
+	/**
+	 * 鑾峰彇鏈�鏂扮増鏈殑 鍋忕鑺傜偣
+	 * @param programPkgName 绋嬪簭鍖呭悕
+	 * @return 鍋忕鐨勭▼搴忚妭鐐�
+	 */
+	public NcNode getLastEditionDeviationProgramPackage(String programPkgName) {
+		List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
+			.eq(NcNode::getName, programPkgName).likeRight(NcNode::getParentIds,"0,3,")
 			.eq(NcNode::getIsLastEdition,1).list();
 
 		if(nodes.isEmpty()){
@@ -269,4 +313,43 @@
 	public void deleteSubNodes(Long nodeId) {
 		this.baseMapper.deleteSubNodes(nodeId);
 	}
+
+	/**
+	 * 鑾峰彇绋嬪簭鍖呬笅鎵�鏈夊眰搴忔枃浠惰妭鐐�
+	 * @param packageNodeId 绋嬪簭鍖呭悕 鑺傜偣id
+	 * @return 鍖呬笅灞炵殑绋嬪簭鏂囦欢
+	 */
+	public List<NcNode> getProgramFilesByPackageId(Long packageNodeId) {
+		return this.lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_FILE)
+			.eq(NcNode::getParentId,packageNodeId).eq(NcNode::getIsLastEdition,1).list();
+	}
+
+	/**
+	 * 鍗囩骇鐗堟湰鍙凤紙+1锛�
+	 * @param nodeId 鑺傜偣id
+	 */
+	@Transactional
+	public void upgradeVersionNumber(Long nodeId) {
+		NcNode node = this.getById(nodeId);
+		node.upgradeVersionNumber();
+		this.updateById(node);
+
+	}
+
+	/**
+	 * 閿佸畾鑺傜偣
+	 * @param id 绋嬪簭鍖呰妭鐐筰d
+	 */
+	@Transactional
+    public void lock(Long id) {
+		NcNode node = this.getById(id);
+		node.lock();
+		this.updateById(node);
+    }
+	@Transactional
+	public void unlock(Long id) {
+		NcNode node = this.getById(id);
+		node.unlock();
+		this.updateById(node);
+	}
 }

--
Gitblit v1.9.3