From 55e316d9f3ee4e3fd0ae21b193efa7b358a0ae00 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 23 八月 2025 00:17:41 +0800
Subject: [PATCH] 不可用流程修复

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java |   55 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
index 1302a04..f0efed3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -45,22 +45,44 @@
 		String instId = props.getProcessInstanceId();
 
 		String programPkgName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
-		createProgramNodes(props);
-
-		//TODO 鍋忕鍗曪紝鍜屽凡缁忓浐鍖栫殑绋嬪簭锛屾病鏈夊鐞�,:宸茬粡澶勭悊娌℃湁楠岃瘉
-		NcNode packageNode;
+		//NcNode packageNode =createProgramNodes(props);
+		NcNode packageNode;// = ncNodeAutoCreateService.createNodeTreeWithProgram(props);
 		if(FlowContants.Y.equals(props.getHasCuredProgram()) && FlowContants.Y.equals(props.getCureProgramUseable())){
-			//鏈夊浐鍖栵紝涓旂▼搴忓彲鐢紝浠庡浐鍖栨爲鏌ヨ鑺傜偣.浣跨敤娴佺▼涓繚瀛樼殑鑺傜偣
-			//packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName,props.getProcessEdition());
+			//鏈夊浐鍖栵紝涓旂▼搴忓彲鐢�
 			packageNode = ncNodeService.getById(props.getCuredNodeId());
+
+		}else{
+			packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props);
+		}
+
+		if(FlowContants.Y.equals(props.getHasCuredProgram()) && FlowContants.N.equals(props.getCureProgramUseable())){
+			//鏈夊浐鍖� 浣嗕笉鍙敤锛岃瘯鍒囪妭鐐圭殑鏂拌妭鐐� 鐗堟湰鍙蜂负 鍥哄寲鐗堟湰鍙�+1
+			NcNode curedPackageNode = ncNodeService.getById(props.getCuredNodeId());
+			packageNode.setVersionNumber(curedPackageNode.genNewVersionNumber());
+			ncNodeService.updateById(packageNode);
+		}
+		//NcNode packageNode;
+		/*
+		if(FlowContants.Y.equals(props.getHasCuredProgram())){
+			//鏈夊浐鍖栵紝涓旂▼搴忓彲鐢紝浠庡浐鍖栨爲鏌ヨ鑺傜偣.浣跨敤娴佺▼涓繚瀛樼殑鑺傜偣
+			if(FlowContants.Y.equals(props.getCureProgramUseable())) {
+				packageNode = ncNodeService.getById(props.getCuredNodeId());
+			}else{
+				//涓嶅彲鐢紝鍘昏瘯鍒囨壘鏈�鏂拌妭鐐�
+				//packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName,props.getProcessEdition());
+				packageNode = ncNodeService.getLastEditionTryingProgramPackage(programPkgName,props.getProcessEdition());
+				//涓嶅彲鐢ㄧ殑鍥哄寲绋嬪簭閿佸畾
+				packageNode.lock();
+				ncNodeService.updateById(packageNode);
+			}
 		}else if(Func.isNotBlank(props.getDeviation())){
 			//鏈夊亸绂诲崟
 			packageNode = ncNodeService.getLastEditionDeviationProgramPackage(programPkgName,props.getProcessEdition());
 		}else{
-			//鏅�氳瘯鍒囷紝鎴栬�呮湁鍥哄寲涓嶅彲鐢�
+			//鏅�氳瘯鍒�
 			packageNode = ncNodeService.getLastEditionTryingProgramPackage(programPkgName,props.getProcessEdition());
 		}
-
+		*/
 		addApproveTable(packageNode,props);
 		updateApproveRecordNodeId(instId, packageNode.getId());
 		log.info("鏅�氭祦绋嬪凡瀹屾垚in DispatchFinishListener");
@@ -70,15 +92,20 @@
 	 * 鑷姩鍒涘缓绋嬪簭鑺傜偣
 	 * @param progProperties 娴佺▼灞炴��
 	 */
-	void createProgramNodes(FlowProgramProperties progProperties){
+	NcNode createProgramNodes(FlowProgramProperties progProperties){
+		NcNode programPkgNode = null;
 		if(FlowContants.N.equals(progProperties.getHasCuredProgram())) {
 			//鏃犲浐鍖�:(璇曞垏鎴栬�呭亸绂�)
-			ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);
+			programPkgNode = ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);
 		}else{
-			//鏈夊浐鍖栵紝绋嬪簭涓嶅彲鐢�
+			if(FlowContants.N.equals(progProperties.getCureProgramUseable())) {
+				programPkgNode = ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);//鏆傛椂涓庝笂闈娇鐢ㄧ浉鍚屼唬鐮侊紝createNodeTreeWithProgram涓尯鍒嗕簡鏅�氳瘯鍒囧拰涓嶅彲鐢ㄧ殑鎯呭喌
+			}
+			//鏈夊浐鍖栵紝绋嬪簭涓嶅彲鐢�,搴旇鍘昏瘯鍒囧缓绔嬭妭鐐�
+			/*
 			if(FlowContants.N.equals(progProperties.getCureProgramUseable())) {
 				//鍥哄寲绋嬪簭涓嶅彲鐢紝闇�瑕侀噸鏂板缓绔嬬▼搴忓寘鍚嶅拰鏂囦欢鑺傜偣;鍙敤鎯呭喌鍦ㄦ祦绋嬪鎵逛腑宸茬粡鍗囩骇杩囪妭鐐逛簡
-				NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
+				NcNode curedProgramPackage = ncNodeService.getById(progProperties.getCuredNodeId());
 
 				NcNode newCuredPkgNode = new NcNode();
 				BeanUtils.copyProperties(curedProgramPackage, newCuredPkgNode);
@@ -109,8 +136,10 @@
 				curedProgramPackage.setIsLastEdition(0);
 				curedProgramPackage.setIsLocked(1);
 				ncNodeService.updateById(curedProgramPackage);
-			}
+			}*/
 		}
+
+		return programPkgNode;
 	}
 
 	/**

--
Gitblit v1.9.3