From 8ab608ce1b8425fe13b0766024554031f23289dc Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 14 八月 2025 16:34:32 +0800
Subject: [PATCH] 固化流程,结束是移动节点

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java |    2 +-
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java      |   22 ++++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
index 0963e59..c319676 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
@@ -114,7 +114,7 @@
 	 * @return
 	 */
 	Object getAutoProgrammer(String processInstanceId){
-		ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
+		ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().includeProcessVariables()
 			.processInstanceId(processInstanceId)
 			.singleResult();
 		Object programmer = processInstance.getProcessVariables().get(FlowContants.PROGRAMMER);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
index 738fe60..9d1720b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
@@ -2,11 +2,14 @@
 
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.N;
 import org.flowable.engine.delegate.DelegateExecution;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.mdm.commons.contants.ParamConstants;
+import org.springblade.mdm.flow.entity.FlowProgramFile;
 import org.springblade.mdm.flow.service.FlowCommonService;
+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.program.service.NcNodeAutoCreateService;
@@ -26,11 +29,14 @@
 	private final NcNodeService nodeService;
 	private final NcNodeAutoCreateService ncNodeAutoCreateService;
 	private final FlowCommonService flowCommonService;
+	private final FlowProgramFileService flowProgramFileService;
 	private final ISysClient sysClient;
 	/**
 	 * 榛樿鏈夋晥鏈熼棿锛堟湀鏁帮級,2骞�
 	 */
 	private static final int DEFAULT_VALID_MONTH = 24;
+	private final NcNodeService ncNodeService;
+
 	/**
 	 * 鍥哄寲瀹℃壒閫氳繃澶勭悊浠诲姟锛�
 	 * @param execution 娴佺▼execution
@@ -58,6 +64,7 @@
 			//璇曞垏鐨�
 			pkgNode.setIsCured(1);
 			//璁剧疆杩囨湡鏃ユ湡
+			pkgNode.upgradeVersionNUmber();
 			pkgNode.setExpireDate(calculateExpireDate());
 			nodeService.updateById(pkgNode);
 
@@ -90,12 +97,27 @@
 			//澶勭悊绋嬪簭鍖呬笅灞傜殑绋嬪簭鑺傜偣
 			List<NcNode> programNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
 			for(NcNode programNode : programNodes){
+				programNode.setIsLastEdition(0);
 				programNode.setParentIds(hisPackageNode.getParentIds()+","+hisPackageNode.getId());
 			}
 			nodeService.updateBatchById(programNodes);
 		}
 		nodeService.updateBatchById(historyProgramPackageNodes);
 
+		//鏂扮殑娴佺▼鏂囦欢锛岄渶瑕佸湪鍖呰妭鐐逛笅鏂板缓锛屼笉鑳界敤鑰佺殑
+		List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,pkgNode.getProcessInstanceId()).list();
+		for(FlowProgramFile flowProgramFile : files){
+			NcNode newProgNode = new NcNode();
+			newProgNode.setName(flowProgramFile.getName());
+			newProgNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
+			newProgNode.setParentId(pkgNode.getId());
+			newProgNode.setParentIds(pkgNode.getParentIds()+","+pkgNode.getId());
+			newProgNode.setIsLastEdition(1);
+			newProgNode.setVersionNumber(pkgNode.getVersionNumber());
+			newProgNode.setFlowProgramFileId(flowProgramFile.getId());
+			newProgNode.setIsCured(1);
+			ncNodeService.save(newProgNode);
+		}
 	}
 
 	/**

--
Gitblit v1.9.3