From 0ef4cc755bddd87799b8bfdd65c8123df6e149d0 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 17 八月 2025 23:52:51 +0800
Subject: [PATCH] 锁定流程完成

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java |   61 ++++++++++++------------------
 1 files changed, 24 insertions(+), 37 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
index 74f6e91..7734274 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
@@ -8,6 +8,7 @@
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.jetbrains.annotations.NotNull;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BizEntity;
 import org.springblade.core.mp.base.BizServiceImpl;
 import org.springblade.core.mp.support.Condition;
@@ -33,10 +34,7 @@
 
 import java.io.*;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
@@ -58,6 +56,7 @@
 	private final NcNodeService ncNodeService;
 	private final OssTemplate ossTemplate;
 	private final FlowProgramFileService flowProgramFileService;
+	private final ProgramAnnotationService programAnnotationService;
 	//public static final String PROGRAM_JSON_FILE = "exp_mdm_nc_program.json";
 	//public static final String NODE_JSON_FILE = "exp_mdm_nc_node.json";
 	//public static final String APPROVE_RECORD_JSON_FILE = "exp_mdm_approve_record.json";
@@ -79,24 +78,24 @@
 	 */
 	public void exportDnc(Long[] approvedIdArray, OutputStream os) throws IOException {
 		//FileOutputStream fos = new FileOutputStream("d:/exportDnc.zip");
-		try (ZipOutputStream zipOut = new ZipOutputStream(os);) {//os
-
-			//ArrayList<Long> programPackageNodeIdList = new ArrayList<Long>();
+		try (ZipOutputStream zipOut = new ZipOutputStream(os);os) {//os
 
 			for (Long approvedId : approvedIdArray) {
 				NcProgramApproved approved = approvedService.getById(approvedId);
-				//programPackageNodeIdList.add(approved.getNcNodeId());
-
 				addProgramPackageToZip(zipOut,approved);
+
+				approved.setStatus(NcProgramApproved.STATUS_EXPORTED);
+				approvedService.updateById(approved);
 			}
 
 			//鐘舵�佷慨鏀逛负宸插鍑�
-			approvedService.lambdaUpdate().in(NcProgramApproved::getId, approvedIdArray)
-				.set(NcProgramApproved::getStatus,NcProgramApproved.STATUS_EXPORTED).update();
-			//addDataJson(zipOut, programPackageNodeIdList);
+			/*
+			approvedService.lambdaUpdate().in(NcProgramApproved::getId, Arrays.asList(approvedIdArray))
+				.set(NcProgramApproved::getStatus,NcProgramApproved.STATUS_EXPORTED).update();*/
+		}catch(Exception e){
+			Throwable [] err = e.getSuppressed();
+			throw new ServiceException("瀵煎嚭宸ユ帶缃戦敊璇�"+e.getMessage());
 		}
-
-		os.close();
 
 	}
 
@@ -121,35 +120,22 @@
 		}else if(programPackageNode.hasCured()){
 			status = "GH";
 		}
-		List<Dict> annotationList = getAnnotionList();
+		List<Dict> annotationList = programAnnotationService.getAnnotionList();
 		for (NcNode node : programNodes) {
 			String filePathInZip = packageFolder + node.getName();
 			programFile = this.flowProgramFileService.getById(node.getFlowProgramFileId());
-
-			InputStream inputStream = ossTemplate.statFileStream(programFile.getOssName());
-			Machine machine = machineService.getByCode(node.getMachineCode());
-			InputStream addedIns1 = addSendDirAnnotation(inputStream,machine,annotationList);
-			InputStream addedIns2 = addProgramStatusAnnotation(addedIns1,status,machine,annotationList);
-			this.addInputStreamToZip(zipOut,addedIns2,filePathInZip);
+			if(programFile.isProgram()) {//绋嬪簭鏂囦欢锛屾墠浼氬姞鍏ュ帇缂╁寘
+				InputStream inputStream = ossTemplate.statFileStream(programFile.getOssName());
+				Machine machine = machineService.getByCode(node.getMachineCode());
+				InputStream addedIns1 = addSendDirAnnotation(inputStream, machine, annotationList);
+				InputStream addedIns2 = addProgramStatusAnnotation(addedIns1, status, machine, annotationList);
+				this.addInputStreamToZip(zipOut, addedIns2, filePathInZip);
+			}
 		}
 
 	}
 
-	/**
-	 * 鑾峰彇瀛楀吀涓厤缃殑娉ㄩ噴
-	 * @return 瀛楀吀椤瑰垪琛�
-	 */
-	List<Dict> getAnnotionList(){
-		List<Dict> annotationList;
-		R<List<Dict>> dictsResult = dictClient.getList(ANNOTATION_DICT);
-		if(dictsResult.isSuccess()) {
-			annotationList = dictsResult.getData();
-		}else{
-			annotationList = Collections.emptyList();
-		}
 
-		return annotationList;
-	}
 	/**
 	 * 鍔犲叆鏈哄簥涓嬪彂璺緞鍜岀▼搴忕姸鎬佺殑娉ㄩ噴
 	 * @param inputStream
@@ -157,7 +143,7 @@
 	 */
 	InputStream addSendDirAnnotation(InputStream inputStream,Machine machine,List<Dict> annotationList) throws IOException {
 		//妫�娴嬬浜岃鏄惁鏄矾寰�
-		String annotationText = generateAnnotation(machine.getProgSendDir()==null? StringUtil.EMPTY:machine.getProgSendDir(),machine.getMachineGroupCode(),annotationList);
+		String annotationText = programAnnotationService.generateAnnotation(machine.getProgSendDir()==null? StringUtil.EMPTY:machine.getProgSendDir(),machine.getMachineGroupCode(),annotationList);
 
 		//TODO 鏀瑰垽鏂鍐呭
 		return FileContentUtil.insertLine(inputStream,1,annotationText);
@@ -173,7 +159,8 @@
 	 * @throws IOException
 	 */
 	InputStream addProgramStatusAnnotation(InputStream inputStream,String status,Machine machine,List<Dict> annotationList) throws IOException {
-		String annoText= generateAnnotation(status,machine.getMachineGroupCode(),annotationList);
+		String annoText= programAnnotationService.generateAnnotation(status,machine.getMachineGroupCode(),annotationList);
+
 		return FileContentUtil.insertLine(inputStream,2,annoText);
 	}
 

--
Gitblit v1.9.3