From a638cb450abb78346ecf19754b639fc945bc486b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 10 八月 2025 19:21:16 +0800
Subject: [PATCH] zip包判断修复

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java |   56 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 36 insertions(+), 20 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
index bea9b12..a5f6008 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
@@ -3,6 +3,8 @@
 
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.mdm.flow.constants.FlowContants;
 import org.springblade.mdm.flow.entity.FlowProgramFile;
 import org.springblade.mdm.flow.service.FlowCommonService;
@@ -30,21 +32,29 @@
 	private final ProgramSeqService programSeqService;
 	public static final String TRY_NAME = "璇曞垏";
 	public static final String CURE_NAME = "鍥哄寲";
-	public static final String PIANLI_NAME = "鍋忕";
+	public static final String DEVIATION_NAME = "鍋忕";
 
 	/**
 	 * 鍒涘缓鏍戝埌鏈哄簥绾у埆
-	 * @param programProperties
+	 * @param programProperties 绋嬪簭灞炴��
 	 */
 	@Transactional
 	public NcNode createNodeTreeToMachine(FlowProgramProperties programProperties) {
 
 		NcNode root;
 		if(programProperties.getProcessDefinitionKey().equals(FlowContants.TRY_PROCESS_KEY)){
-			//璇曞垏
-			root = rootNodeByName(TRY_NAME);
-			if(root == null){
-				root = createTryNode();
+			if(Func.isEmpty(programProperties.getDeviation())){
+				//璇曞垏
+				root = rootNodeByName(TRY_NAME);
+				if (root == null) {
+					root = createTryNode();
+				}
+			}else{
+				//鏈夊亸绂�
+				root = rootNodeByName(DEVIATION_NAME);
+				if(root == null){
+					root = createDeviationNode();
+				}
 			}
 		}else if(programProperties.getProcessDefinitionKey().equals(FlowContants.CURE_PROCESS_KEY)){
 			root = rootNodeByName(CURE_NAME);
@@ -52,15 +62,9 @@
 				root = createCureNode();
 			}
 		}else{
-			root = rootNodeByName(PIANLI_NAME);
-			if(root == null){
-				root = createPianliNode();
-			}
+			throw new ServiceException("娴佺▼瀹氫箟涓嶅湪鑼冨洿鍐�");
 		}
-
-		NcNode lastNode = null;
 		//鍒涘缓浜у搧鍨嬪彿鑺傜偣
-		//NcNode productModelNode = createProductModelNode(programProperties.getProductModel(), root);
 		NcNode productModelNode = createNodeIfNotExists(programProperties.getProductModel(),NcNode.TYPE_PRODUCT_MODEL, root,programProperties);
 		//闆剁粍浠跺彿鑺傜偣
 		NcNode drawingNoNode = createNodeIfNotExists(programProperties.getDrawingNo(),NcNode.TYPE_DRAWING_NO, productModelNode,programProperties);
@@ -82,7 +86,8 @@
 		//,int rootNodeCatgory = 1:璇曞垏锛�2鍥哄寲锛�3鍋忕
 		NcNode programPkdNode = createTreeToPackage(programProperties);
 		//鍒犻櫎涔嬪墠鍒涘缓杩囩殑绋嬪簭鏂囦欢鑺傜偣(鍥犱负閲嶅鍦ㄧ紪鍒惰妭鐐瑰鎵�)锛岄伩鍏嶉噸澶嶆暟鎹�
-		this.ncNodeService.lambdaUpdate().eq(NcNode::getParentId, programPkdNode.getId()).remove();
+		//this.ncNodeService.lambdaUpdate().eq(NcNode::getParentId, programPkdNode.getId()).remove();
+		ncNodeService.deleteSubNodes(programPkdNode.getId());
 
 		List<FlowProgramFile> programFiles = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, programProperties.getProcessInstanceId()).list();
 		for (FlowProgramFile programFile : programFiles) {
@@ -91,6 +96,12 @@
 
 	}
 
+	/**
+	 * 寤虹珛绋嬪簭鏂囦欢鑺傜偣
+	 * @param programFile 娴佺▼鏂囦欢
+	 * @param programPkdNode 绋嬪簭鍖呭悕 鑺傜偣锛岀▼搴忚妭鐐圭殑 涓婄骇
+	 * @param programProperties 娴佺▼鍙戣捣鐨勭▼搴忕殑灞炴��
+	 */
 	private void createProgramFileNode(FlowProgramFile programFile, NcNode programPkdNode, FlowProgramProperties programProperties) {
 		//姝ゅ搴旈伩鍏嶉噸澶嶅垱寤�
 
@@ -105,6 +116,7 @@
 		node.setCraftEdition(programProperties.getCraftEdition());
 		node.setProcessName(programProperties.getProcessName());
 		node.setProcessNo(programProperties.getProcessNo());
+		node.setProcessEdition(programProperties.getProcessEdition());
 		node.setMachineCode(programProperties.getMachineCode());
 		node.setProductModel(programProperties.getProductModel());
 		node.setFlowProgramFileId(programFile.getId());
@@ -114,13 +126,13 @@
 
 	/**
 	 * 鍒涘缓鑺傜偣鍒扮▼搴忓寘绾у埆
-	 * @param programProperties
-	 * @param createProgramPkg
-	 * @return
+	 * @param programProperties 绋嬪簭灞炴��
+	 * @return 绋嬪簭鍖呭悕鑺傜偣锛堟渶鏈骇锛�
 	 */
+	@Transactional
 	public NcNode createTreeToPackage(FlowProgramProperties programProperties) {
 		NcNode machineCodeNode = createNodeTreeToMachine(programProperties);
-		String programPkgName = programProperties.getDrawingNo()+"-"+programProperties.getProcessNo();//闆朵欢鍙峰姞宸ュ簭鍙�
+		String programPkgName = NcNodeService.genProgramName(programProperties.getDrawingNo(),programProperties.getProcessNo());
 		return createNodeIfNotExists(programPkgName ,NcNode.TYPE_PROGRAM_PACKAGE, machineCodeNode,programProperties);
 
 	}
@@ -161,6 +173,8 @@
 				ncNode.setMachineCode(programProperties.getMachineCode());
 				ncNode.setProductModel(programProperties.getProductModel());
 
+				ncNode.setDeviation(programProperties.getDeviation());
+				//ncNode.setMachineMode(programProperties.getMachineMode());
 			}
 
 			ncNode.setIsLastEdition(1);
@@ -208,10 +222,10 @@
 		return ncNode;
 	}
 
-	NcNode createPianliNode() {
+	NcNode createDeviationNode() {
 		NcNode ncNode = new NcNode();
 		ncNode.setId(3L);
-		ncNode.setName(PIANLI_NAME);
+		ncNode.setName(DEVIATION_NAME);
 		ncNode.setParentId(0L);
 		ncNode.setParentIds("0");
 		ncNode.setNodeType("10");
@@ -220,4 +234,6 @@
 
 		return ncNode;
 	}
+
+
 }

--
Gitblit v1.9.3