From a0881c9a8dbff2bf7f3e10255b998b9529c7aef3 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 07 八月 2025 13:46:36 +0800
Subject: [PATCH] 优化代码

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
index 33e04e5..832a3c7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
@@ -1,5 +1,6 @@
 package org.springblade.mdm.flow.service.execute;
 
+import org.apache.commons.lang3.StringUtils;
 import org.flowable.task.api.Task;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -10,7 +11,9 @@
 import org.springblade.mdm.flow.constants.FlowContants;
 import org.springblade.mdm.flow.service.FlowCommonService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
+import org.springblade.mdm.program.entity.NcNode;
 import org.springblade.mdm.program.service.NcNodeAutoCreateService;
+import org.springblade.mdm.program.service.NcNodeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,7 +26,8 @@
 public class TryFlowCompleteService extends AbstractFlowCompleteService {
 	@Autowired
 	private FlowProgramFileService flowProgramFileService;
-
+	@Autowired
+	private NcNodeService ncNodeService;
 	@Autowired
 	private NcNodeAutoCreateService ncNodeAutoCreateService;
 	@Autowired
@@ -58,8 +62,28 @@
 		if(!"confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
 			variables.remove(FlowContants.PROCESS_EDITION);//TODO 涓存椂閿欒鏄紝缁勯暱鎻愪氦鐨勬椂鍊欎細鎻愪氦涓�涓┖涓诧紝娓呯┖浜嗗唴閮ㄦ暟鎹�
 		}else{
-			//鍗囩増
+			//宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級鏄紝鎵嶆洿鏂颁负鏂扮殑宸ュ簭鐗堟鍙�
+			Map<String, Object> currentVars = task.getProcessVariables();
+			if(StringUtils.equals(String.valueOf(currentVars.getOrDefault(FlowContants.IS_PROCESS_EDITION_SAME, FlowContants.Y)),FlowContants.N) && operateResult.equals(FlowContants.Y)){
+				//宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級 鍗囩増,鏇存柊涓烘柊鐨勫伐搴忕増鏈紝鍚庣画杩涘叆 鏍″ 鑺傜偣
+				Object objProcessEdition = variables.get(FlowContants.PROCESS_EDITION);
+				if(objProcessEdition == null){
+					//搴旇鍗囩増锛屼絾鍓嶇娌℃湁浼犻�掕鍙傛暟
+					throw new ServiceException("璇峰綍鍏ユ柊鐨勫伐搴忕増鏈彿");
+				}
+				String newProcessEdition = String.valueOf(objProcessEdition);
+				NcNode programPkgNode= ncNodeService.getByProcessInstanceId(processInstanceId);
+				programPkgNode.setProcessEdition(newProcessEdition);
+				ncNodeService.updateById(programPkgNode);
 
+				//鍒涘缓绋嬪簭鏍�
+				//鑺傜偣鍦ㄨ瘯鍒囦笅杩樻槸鍥哄寲涓嬮潰锛熺‘璁や簡锛岃妭鐐瑰缓绔嬪湪璇曞垏涓嬶紝鏈�缁堣蛋鍥哄寲娴佺▼鍚庢墠杩涘叆鍥哄寲
+				//纭绋嬪簭鍙敤浜嗭紝杩涘叆鏍″銆傝繖閲岀洿鎺ュ缓绔嬭妭鐐癸紝鍥犱负鍙兘涓嶈蛋缂栫▼鑺傜偣浜�
+				this.ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
+			}else{
+				//宸ュ簭鐗堟涓�鑷达紝浣嗘槸鎷掔粷浜嗭紝鍚庣画浼氳繘鍏ョ紪鍒惰妭鐐�
+				variables.remove(FlowContants.PROCESS_EDITION);
+			}
 		}
 		taskService.complete(taskId, variables);
 	}

--
Gitblit v1.9.3