From 6043e2e1c832db2bf7bb1868ae9ca727f7b988b3 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 14 八月 2025 15:10:52 +0800
Subject: [PATCH] 固化流程1

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java |   49 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 41 insertions(+), 8 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..1819d08 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,9 +11,13 @@
 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.flow.service.FlowProgramProperties;
+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;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Map;
 
@@ -23,12 +28,14 @@
 public class TryFlowCompleteService extends AbstractFlowCompleteService {
 	@Autowired
 	private FlowProgramFileService flowProgramFileService;
-
+	@Autowired
+	private NcNodeService ncNodeService;
 	@Autowired
 	private NcNodeAutoCreateService ncNodeAutoCreateService;
 	@Autowired
 	private FlowCommonService flowCommonService;
 
+	@Transactional
 	@Override
 	public void completeTask(String taskId, String processInstanceId, String comment, Map<String, Object> variables) {
 		Task task = currentTask(taskId);
@@ -52,15 +59,41 @@
 		addApproveRecord(taskId,comment,variables);
 
 		//鍦ㄧ紪鍒朵换鍔℃椂锛屽垱寤鸿妭鐐癸紙娌℃湁鑺傜偣鍒欏垱寤猴紝鏈夊氨鐩存帴浣跨敤
-		if(task.getTaskDefinitionKey().equals("programmingTask") && "Y".equals(operateResult)) {
-			ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
-		}
-		if(!"confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
-			variables.remove(FlowContants.PROCESS_EDITION);//TODO 涓存椂閿欒鏄紝缁勯暱鎻愪氦鐨勬椂鍊欎細鎻愪氦涓�涓┖涓诧紝娓呯┖浜嗗唴閮ㄦ暟鎹�
-		}else{
-			//鍗囩増
+		/*
+		if(task.getTaskDefinitionKey().equals("programmingTask") && FlowContants.Y.equals(operateResult)) {
+			FlowProgramProperties progProperties = flowCommonService.getProgramProperties(processInstanceId);
+			ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);
+			//鍘熸潵鐗堟鐨勭▼搴忥紝姝ゆ椂搴旇娓呴櫎锛屾槸涓嶆槸瑕佹尓杩囨潵鍛紵鐗堟宸茬粡涓嶅浜�
+			//TODO 鑰佽妭鐐规竻闄ゅ悧
 
+			//璧板埌缂栧埗鑺傜偣锛屽鏋滄槸鏈夊浐鍖栫▼搴忎笖閫氳繃浜嗭紝璇存槑闇�瑕佸崌鐗堬紙閲嶆柊缂栧啓锛夛紝灏嗗浐鍖栫殑鍘熸潵鐨勭▼搴忚缃甽astEdition=0
+			if(FlowContants.Y.equals(progProperties.getHasCuredProgram())) {
+				NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
+				curedProgramPackage.setIsLastEdition(0);
+				curedProgramPackage.setIsLocked(1);
+				ncNodeService.updateById(curedProgramPackage);
+			}
+
+		}*/
+		if(task.getTaskDefinitionKey().equals("approveTask") && FlowContants.Y.equals(operateResult)) {
+			//璇曞垏娴佺▼锛屾垨鑰� 鍋忕娴佺▼ 楂樺笀閫氳繃鐨勬椂鍊欏垱寤鸿妭鐐�
+			//createProgramNodes(processInstanceId);
+		}
+		variables.remove(FlowContants.PROCESS_EDITION);//涓嶈鍗囩増浜�
+		//if(!"confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
+		if("confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
+			//宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級鏄紝鎵嶆洿鏂颁负鏂扮殑versionNumber
+			FlowProgramProperties progProperties = flowCommonService.getProgramProperties(processInstanceId);
+			variables.put(FlowContants.CURE_PROGRAM_USEABLE,operateResult);
+
+			if(FlowContants.Y.equals(operateResult) && FlowContants.N.equals(progProperties.getIsProcessEditionSame())) {
+				//纭绋嬪簭鍙敤 涓� 宸ュ簭鐗堟涓嶄竴鑷达紝杩涘叆鏍″銆傝繖閲岄渶瑕佸崌绾х▼搴忕殑鐗堟湰鍙�
+				Long curedNodeId = progProperties.getCuredNodeId();
+				ncNodeService.upgradeVersionNumber(curedNodeId);
+			}
 		}
 		taskService.complete(taskId, variables);
 	}
+
+
 }

--
Gitblit v1.9.3