From 0db6d993345160e624293382a2c66aebe159c10b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 12 八月 2025 11:48:23 +0800
Subject: [PATCH] 替换流程完成后增加了审批记录,可导出;程序版本号+1

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/replace/ReplaceFinishListener.java |   32 +++++++++++++++++++++++++++-----
 1 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/replace/ReplaceFinishListener.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/replace/ReplaceFinishListener.java
index 8341502..1117d0c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/replace/ReplaceFinishListener.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/replace/ReplaceFinishListener.java
@@ -3,13 +3,17 @@
 import lombok.extern.slf4j.Slf4j;
 import org.flowable.engine.RuntimeService;
 import org.flowable.engine.delegate.DelegateExecution;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.flow.constants.FlowContants;
 import org.springblade.mdm.flow.entity.ApproveRecord;
 import org.springblade.mdm.flow.entity.FlowProgramFile;
 import org.springblade.mdm.flow.service.ApproveRecordService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
 import org.springblade.mdm.flow.service.ReplaceFlowService;
 import org.springblade.mdm.program.entity.NcNode;
+import org.springblade.mdm.program.entity.NcProgramApproved;
 import org.springblade.mdm.program.service.NcNodeService;
+import org.springblade.mdm.program.service.NcProgramApprovedService;
 import org.springblade.mdm.utils.EntityUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +33,8 @@
 	private ApproveRecordService approveRecordService;
 	@Autowired
 	private FlowProgramFileService flowProgramFileService;
-
+	@Autowired
+	private NcProgramApprovedService ncProgramApprovedService;
 	@Autowired
 	private NcNodeService ncNodeService;
 	/**
@@ -37,21 +42,37 @@
 	 * @param execution 鎵ц瀵硅薄
 	 */
 	public void handle(DelegateExecution execution) {
-		ReplaceFlowService a;
 		// 鎵ц涓氬姟閫昏緫
 		String instId = execution.getProcessInstanceId();
 		Long nodeId = runtimeService.getVariable(execution.getId(),ReplaceFlowService.NODE_ID,Long.class);
 		log.info("浜嬩欢鍚嶇О{}锛宨nstid={}" , execution.getEventName(),instId);
 		List<FlowProgramFile> programFiles =  flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, instId).list();
-		replaceProgram(nodeId,programFiles);
+		NcNode newProgramPackage = replaceProgram(nodeId,programFiles);
+
+
+		addToApproved(newProgramPackage,Func.toStr(execution.getVariables().get(FlowContants.TITLE)));
 		log.info("娴佺▼宸插畬鎴� in replaceFinishListener");
 	}
 
 	/**
+	 * 澧炲姞瀹℃壒閫氳繃璁板綍锛屼緵鐢ㄦ埛瀵煎嚭鍒板伐鎺х綉
+	 * @param newProgramPackage 鏂扮殑绋嬪簭鍖呰妭鐐�
+	 * @param title 鏍囬
+	 */
+	void addToApproved(NcNode newProgramPackage,String title){
+		NcProgramApproved approve = new NcProgramApproved();
+		approve.setProgramName(newProgramPackage.getName());
+		approve.setNcNodeId(newProgramPackage.getId());
+		approve.setTitle(title);
+
+		ncProgramApprovedService.save(approve);
+	}
+	/**
 	 * 鏇挎崲鍘熸潵绋嬪簭鐨勬枃浠�
 	 * @param programFiles 鏂扮殑鏂囦欢
+	 * @return 鏂扮殑绋嬪簭鍖呭悕鑺傜偣
 	 */
-	void replaceProgram(Long nodeId, List<FlowProgramFile> programFiles){
+	NcNode replaceProgram(Long nodeId, List<FlowProgramFile> programFiles){
 		//鍘熻妭鐐规敼涓鸿�佺増鏈�
 		NcNode oldPackageNode = ncNodeService.getById(nodeId);
 		oldPackageNode.setIsLastEdition(0);
@@ -93,13 +114,14 @@
 			node.setMachineCode(newPackageNode.getMachineCode());
 			node.setProcessName(newPackageNode.getProcessName());
 			node.setNodeType(NcNode.TYPE_PROGRAM_FILE);
-			node.setVersionNumber(1);
+			node.setVersionNumber(newPackageNode.getVersionNumber());//鏂扮増鏈紝搴斾负闇�瑕佹瘮瀵�
 			node.setCraftEdition(newPackageNode.getCraftEdition());
 			node.setIsLocked(0);
 
 			ncNodeService.save(node);
 		}
 
+		return newPackageNode;
 	}
 
 	void updateApproveRecordNodeId(NcNode pkgNode){

--
Gitblit v1.9.3