From f13fcaa8c4b0f413d8ee100adcb67669db183c68 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 23 八月 2025 16:47:58 +0800
Subject: [PATCH] 固化程序不可用锁定

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java |   76 +++++++++----------------------------
 1 files changed, 19 insertions(+), 57 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 9f14712..e77b85f 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,18 +45,26 @@
 		String instId = props.getProcessInstanceId();
 
 		String programPkgName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
-		createProgramNodes(props);
-		//TODO 鍋忕鍗曪紝鍜屽凡缁忓浐鍖栫殑绋嬪簭锛屾病鏈夊鐞�,:宸茬粡澶勭悊娌℃湁楠岃瘉
-		NcNode packageNode;
-		if(FlowContants.Y.equals(props.getHasCuredProgram()) && FlowContants.Y.equals(props.getCureProgramUseable())){
-			//鏈夊浐鍖栵紝涓旂▼搴忓彲鐢紝浠庡浐鍖栨爲鏌ヨ鑺傜偣
-			packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName);
-		}else if(Func.isNotBlank(props.getDeviation())){
-			//鏈夊亸绂诲崟
-			packageNode = ncNodeService.getLastEditionDeviationProgramPackage(programPkgName);
+		//NcNode packageNode =createProgramNodes(props);
+		NcNode packageNode;// = ncNodeAutoCreateService.createNodeTreeWithProgram(props);
+		if(FlowContants.Y.equals(props.getHasCuredProgram())){
+			//鏈夊浐鍖�
+			packageNode = ncNodeService.getById(props.getCuredNodeId());
+
+			if(FlowContants.N.equals(props.getCureProgramUseable())) {
+				//绋嬪簭涓嶅彲鐢�
+				//鍘熸潵鐨勫浐鍖栬妭鐐归攣瀹�
+				packageNode.lock();
+				ncNodeService.updateById(packageNode);
+
+				Integer newVersion = packageNode.genNewVersionNumber();
+				packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props);
+				packageNode.setVersionNumber(newVersion);
+				ncNodeService.updateById(packageNode);
+			}
+
 		}else{
-			//鏅�氳瘯鍒囷紝鎴栬�呮湁鍥哄寲涓嶅彲鐢�
-			packageNode = ncNodeService.getLastEditionTryingProgramPackage(programPkgName);
+			packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props);
 		}
 
 		addApproveTable(packageNode,props);
@@ -64,52 +72,6 @@
 		log.info("鏅�氭祦绋嬪凡瀹屾垚in DispatchFinishListener");
 	}
 
-	/**
-	 * 鑷姩鍒涘缓绋嬪簭鑺傜偣
-	 * @param progProperties 娴佺▼灞炴��
-	 */
-	void createProgramNodes(FlowProgramProperties progProperties){
-		if(FlowContants.N.equals(progProperties.getHasCuredProgram())) {
-			//鏃犲浐鍖�(璇曞垏鎴栬�呭亸绂�)
-			ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);
-		}else{
-			//鏈夊浐鍖栵紝绋嬪簭涓嶅彲鐢�
-			if(FlowContants.N.equals(progProperties.getCureProgramUseable())) {
-				//鍥哄寲绋嬪簭涓嶅彲鐢紝闇�瑕侀噸鏂板缓绔嬬▼搴忓寘鍚嶅拰鏂囦欢鑺傜偣;鍙敤鎯呭喌鍦ㄦ祦绋嬪鎵逛腑宸茬粡鍗囩骇杩囪妭鐐逛簡
-				NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
-
-				NcNode newCuredPkgNode = new NcNode();
-				BeanUtils.copyProperties(curedProgramPackage, newCuredPkgNode);
-				EntityUtil.clearBaseProperties(newCuredPkgNode);
-				newCuredPkgNode.setIsLastEdition(1);
-				newCuredPkgNode.setIsLocked(0);
-				newCuredPkgNode.upgradeVersionNumber();
-				ncNodeService.save(newCuredPkgNode);
-
-				//鏂扮殑娴佺▼瀵瑰簲鐨勬枃浠舵洿鏂板埌鏂拌妭鐐逛笅
-				List<FlowProgramFile> newFlowFileList = flowProgramFileService.listByProcessInstanceId(progProperties.getProcessInstanceId());
-				for (FlowProgramFile newFlowFile : newFlowFileList) {
-					NcNode newProgramNode = new NcNode();
-					BeanUtils.copyProperties(newCuredPkgNode, newProgramNode);
-					EntityUtil.clearBaseProperties(newProgramNode);
-
-					newProgramNode.setName(newFlowFile.getName());
-					newProgramNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
-					newProgramNode.setParentId(newCuredPkgNode.getId());
-					newProgramNode.setIsLastEdition(1);
-					newProgramNode.setIsLocked(0);
-					newProgramNode.setParentIds(newCuredPkgNode.getParentIds() + "," + newCuredPkgNode.getId());
-					newProgramNode.setFlowProgramFileId(newFlowFile.getId());
-					ncNodeService.save(newProgramNode);
-				}
-
-				//鍘熻妭鐐规洿鏂颁负鑰佺増鏈紝閿佸畾
-				curedProgramPackage.setIsLastEdition(0);
-				curedProgramPackage.setIsLocked(1);
-				ncNodeService.updateById(curedProgramPackage);
-			}
-		}
-	}
 
 	/**
 	 * 淇濆瓨瀹℃壒瀹屾垚鐨勮褰�

--
Gitblit v1.9.3