From 4f118b548e5bc741e372fdcc035bb23f9e0ce0bb Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 24 八月 2025 12:15:07 +0800
Subject: [PATCH] 增加异常流程的界面和处理

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 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 8eb75a3..f2ba2b4 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
@@ -11,6 +11,8 @@
 import org.springblade.mdm.flow.service.FlowProgramFileService;
 import org.springblade.mdm.flow.service.FlowProgramProperties;
 import org.springblade.mdm.program.entity.NcNode;
+import org.springblade.mdm.utils.EntityUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -42,8 +44,10 @@
 	public NcNode createNodeTreeToMachine(FlowProgramProperties programProperties) {
 		NcNode root;
 		if(programProperties.getProcessDefinitionKey().equals(FlowContants.TRY_PROCESS_KEY)){
-			if(Func.isEmpty(programProperties.getDeviation())){
-				//璇曞垏
+			if(Func.isEmpty(programProperties.getDeviation()) ||
+				(FlowContants.Y.equals(programProperties.getHasCuredProgram()) &&  FlowContants.N.equals(programProperties.getCureProgramUseable()))){
+				//鏅�氳瘯鍒囷紝鎴栬�呮湁鍥哄寲涓嶅彲鐢紝寤虹珛璇曞垏鑺傜偣
+				//璇曞垏鏍硅妭鐐�
 				root = rootNodeByName(TRY_NAME);
 				if (root == null) {
 					root = createTryNode();
@@ -79,20 +83,21 @@
 	/**
 	 * 鏍规嵁娴佺▼淇℃伅锛岃嚜鍔ㄥ垱寤哄悇涓妭鐐�,鍖呮嫭绋嬪簭鑺傜偣
 	 * @param programProperties 绋嬪簭灞炴��
+	 * @return 绋嬪簭鍖呰妭鐐瑰疄渚�
 	 */
 	@Transactional
-	public void createNodeTreeWithProgram(FlowProgramProperties programProperties) {
+	public NcNode createNodeTreeWithProgram(FlowProgramProperties programProperties) {
 		//,int rootNodeCatgory = 1:璇曞垏锛�2鍥哄寲锛�3鍋忕
 		NcNode programPkdNode = createTreeToPackage(programProperties);
 		//鍒犻櫎涔嬪墠鍒涘缓杩囩殑绋嬪簭鏂囦欢鑺傜偣(鍥犱负閲嶅鍦ㄧ紪鍒惰妭鐐瑰鎵�)锛岄伩鍏嶉噸澶嶆暟鎹�
-		//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) {
-			createProgramFileNode(programFile, programPkdNode, programProperties);
+			createProgramFileNode(programFile, programPkdNode, programProperties);//鎵�鏈夋枃浠跺寘鎷▼搴忓拰鍏朵粬锛岄兘闇�瑕佸缓绔嬭妭鐐�
 		}
 
+		return programPkdNode;
 	}
 
 	/**
@@ -105,10 +110,14 @@
 		//姝ゅ搴旈伩鍏嶉噸澶嶅垱寤�
 
 		NcNode node = new NcNode();
+		BeanUtils.copyProperties(programPkdNode, node);
+		EntityUtil.clearBaseProperties(node);
+
 		node.setNodeType(NcNode.TYPE_PROGRAM_FILE);
 		node.setName(programFile.getName());//鏂囦欢鍚嶏紝
 
 		node.setIsLastEdition(1);
+		/*
 		node.setDrawingNo(programPkdNode.getDrawingNo());
 		node.setDrawingNoEdition(programProperties.getDrawingNoEdition());
 		node.setCraftEdition(programProperties.getCraftEdition());
@@ -117,17 +126,13 @@
 		node.setProcessEdition(programProperties.getProcessEdition());
 		node.setMachineCode(programProperties.getMachineCode());
 		node.setProductModel(programProperties.getProductModel());
+
+		 */
 		node.setFlowProgramFileId(programFile.getId());
 		node.setVersionNumber(1);
 		node.setParentId(programPkdNode.getId());
 		node.setParentIds(programPkdNode.getParentIds()+","+programPkdNode.getId());
-		/*
-		if("program".equals(programFile.getFileType())){
 
-		}else{
-			//鍏朵粬鏂囦欢锛屽拰绋嬪簭鍖呭悕鍚岀骇骞跺垪
-
-		}*/
 
 		ncNodeService.save(node);
 	}

--
Gitblit v1.9.3