From 51054f0da5dd4718212064510fff045815388b90 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 20 八月 2025 16:31:03 +0800
Subject: [PATCH] 增加临时流程处理

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java |   29 ++++++++++++++++++++---------
 1 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
index 6965f41..dbc7384 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
@@ -22,6 +22,7 @@
 import org.springblade.mdm.utils.FileContentUtil;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.pojo.entity.Dict;
+import org.springblade.system.pojo.entity.DictBiz;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -45,7 +46,6 @@
 	private final OssTemplate ossTemplate;
 	private final ProgramAnnotationService programAnnotationService;
 	private final MachineService machineService;
-
 
 	/**
 	 * 榛樿鏈夋晥鏈熼棿锛堟湀鏁帮級,2骞�
@@ -118,16 +118,24 @@
 
 			//澶勭悊绋嬪簭鍖呬笅灞傜殑绋嬪簭鑺傜偣111
 			List<NcNode> programNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
+			FlowProgramFile pfile;
 			for(NcNode programNode : programNodes){
-				programNode.setIsLastEdition(0);
 				programNode.setParentIds(hisPackageNode.getParentIds()+","+hisPackageNode.getId());
+				programNode.setIsLastEdition(0);
+
+				pfile = flowProgramFileService.getById(programNode.getFlowProgramFileId());
+				if(programNode.getParentId().equals(pkgNode.getId()) && !pfile.isProgram()){
+					//褰撳墠鍥哄寲绋嬪簭鍖呭悕涓嬬殑鈥滃叾浠栨枃浠垛�濋潪绋嬪簭鏂囦欢銆備笉璁剧疆涓鸿�佺増鏈紝鐩存帴鎸埌鍥哄寲鏍戜笅,涓や釜缃戠粶涔嬮棿鍙氦鎹㈢▼搴忔枃浠讹紝鍏朵粬鏂囦欢鍙兘淇濈暀
+					programNode.setIsLastEdition(1);
+				}
+
 			}
 			nodeService.updateBatchById(programNodes);
 		}
 		nodeService.updateBatchById(historyProgramPackageNodes);
 
 		Machine machine = machineService.getByCode(pkgNode.getMachineCode());
-		List<Dict> annoDicts = programAnnotationService.getAnnotionList();
+		List<DictBiz> annoDicts = programAnnotationService.getAnnotionList();
 		//鏂扮殑娴佺▼鏂囦欢锛岄渶瑕佸湪鍖呰妭鐐逛笅鏂板缓锛屼笉鑳界敤鑰佺殑
 		List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,pkgNode.getProcessInstanceId()).list();
 		for(FlowProgramFile flowProgramFile : files){
@@ -156,28 +164,31 @@
 		}
 	}
 
+
 	/**
 	 * 璁剧疆鍥哄寲娉ㄩ噴,瀹炵幇鏂瑰紡锛岃幏鍙栨枃浠跺瓧鑺備笅锛屼慨鏀瑰悗鏇挎崲鏂囦欢
 	 * @param flowProgramFile oss 鏂囦欢
 	 *
 	 */
-	void setGhAnnotation(FlowProgramFile flowProgramFile,String machineGroup,List<Dict> annoDicts) throws IOException {
+	void setGhAnnotation(FlowProgramFile flowProgramFile,String machineGroup,List<DictBiz> annoDicts) throws IOException {
 		String ossName = flowProgramFile.getOssName();
 		//
 		try(InputStream ins = ossTemplate.statFileStream(ossName);){
 			byte[] bytes = IOUtils.toByteArray(ins);
 			ByteArrayInputStream byteInputStream =  new ByteArrayInputStream(bytes);
 
+			InputStream finishedStream = programAnnotationService.setGHAnnotation(byteInputStream,machineGroup,annoDicts);
+			/*
 			String annoTxt = programAnnotationService.generateAnnotation("GH",machineGroup,annoDicts);
-			int statusLineIndex = 2;
-			String line2 = FileContentUtil.readLineAt(byteInputStream,statusLineIndex);//绗笁琛屽簲璇ユ槸鐘舵�佹敞閲�
+			//int statusLineIndex = 2;
+			String line2 = FileContentUtil.readLineAt(byteInputStream,ProgramAnnotationService.STATUS_LINE_INDEX);//绗笁琛屽簲璇ユ槸鐘舵�佹敞閲�
 			byteInputStream.reset();
 			InputStream finishedStream;
 			if(programAnnotationService.isAnnotation(line2,machineGroup,annoDicts)){
-				finishedStream = FileContentUtil.replaceAtLine(byteInputStream,statusLineIndex,annoTxt);
+				finishedStream = FileContentUtil.replaceAtLine(byteInputStream,ProgramAnnotationService.STATUS_LINE_INDEX,annoTxt);
 			}else{
-				finishedStream = FileContentUtil.insertLine(byteInputStream,statusLineIndex,annoTxt);
-			}
+				finishedStream = FileContentUtil.insertLine(byteInputStream,ProgramAnnotationService.STATUS_LINE_INDEX,annoTxt);
+			}*/
 			try(finishedStream) {
 				finishedStream.reset();
 				BladeFile bfile = ossTemplate.putFile(flowProgramFile.getName(), finishedStream);

--
Gitblit v1.9.3