From 016f6009aef19985e5e50be497651cb77795c868 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 22 八月 2025 18:26:42 +0800
Subject: [PATCH] 偏离单审批完成文件内容未更新问题修复

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java |   32 ++++++++++++++------------------
 1 files changed, 14 insertions(+), 18 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 9fe865e..c2467a8 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
@@ -2,14 +2,11 @@
 package org.springblade.mdm.program.service;
 
 import com.alibaba.csp.sentinel.util.StringUtil;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.jetbrains.annotations.NotNull;
+import org.apache.commons.lang3.StringUtils;
 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;
 import org.springblade.core.mp.support.Query;
@@ -18,7 +15,6 @@
 import org.springblade.core.tool.utils.Func;
 import org.springblade.mdm.basesetting.machine.MachineService;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
-import org.springblade.mdm.flow.entity.ApproveRecord;
 import org.springblade.mdm.flow.entity.FlowProgramFile;
 import org.springblade.mdm.flow.service.ApproveRecordService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
@@ -27,13 +23,11 @@
 import org.springblade.mdm.program.entity.NcProgramExchange;
 import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
 import org.springblade.mdm.program.vo.DncSendBackData;
-import org.springblade.mdm.utils.FileContentUtil;
 import org.springblade.system.feign.IDictClient;
-import org.springblade.system.pojo.entity.Dict;
+import org.springblade.system.pojo.entity.DictBiz;
 import org.springframework.stereotype.Service;
 
 import java.io.*;
-import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
@@ -48,18 +42,13 @@
 @AllArgsConstructor
 public class NcProgramExportDNCService extends BizServiceImpl<NcProgramExchangeMapper, NcProgramExchange> {
 
-	//private final NcProgramService progService;
 	private final IDictClient dictClient;
 	private final MachineService machineService;
 	private final NcProgramApprovedService approvedService;
-	private final ApproveRecordService approveRecordService;
 	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";
 
 	public static final String ANNOTATION_DICT = "machine_annotation";
 
@@ -100,12 +89,13 @@
 	 * @param approved
 	 */
 	private void addProgramPackageToZip(ZipOutputStream zipOut, NcProgramApproved approved) throws IOException{
-		String packageFolder = approved.getProgramName()+"/";
+		NcNode packageNode = ncNodeService.getById(approved.getNcNodeId());
+
+		String packageFolder = packageNode.getName()+"-"+packageNode.getProcessEdition()+"/";
 		ZipEntry zipEntry = new ZipEntry(packageFolder);// "/"缁撳熬琛ㄧず鏂囦欢澶�
 		zipOut.putNextEntry(zipEntry);
 		zipOut.closeEntry();
 
-		NcNode packageNode = ncNodeService.getById(approved.getNcNodeId());
 		Machine machine = machineService.getByCode(packageNode.getMachineCode());//绋嬪簭鍖呰妭鐐癸紝鑾峰彇娉ㄩ噴鐢�
 
 		List<NcNode> programNodes = ncNodeService.lambdaQuery().eq(NcNode::getIsLastEdition,1).eq(NcNode::getParentId, approved.getNcNodeId()).list();
@@ -119,16 +109,22 @@
 			status = "GH";
 		}
 
+		List<DictBiz> annotationDictList= programAnnotationService.getAnnotionList();
 		for (NcNode node : programNodes) {
 			String filePathInZip = packageFolder + node.getName();
 			programFile = this.flowProgramFileService.getById(node.getFlowProgramFileId());
 			if(programFile.isProgram()) {//绋嬪簭鏂囦欢锛屾墠浼氬姞鍏ュ帇缂╁寘
 				InputStream inputStream = ossTemplate.statFileStream(programFile.getOssName());
-				//InputStream addedIns1 = addSendDirAnnotation(inputStream, machine, annotationList);
-				//InputStream addedIns2 = addProgramStatusAnnotation(addedIns1, status, machine, annotationList);
 				String sendDir = machine.getProgSendDir()==null? StringUtil.EMPTY:machine.getProgSendDir();
+				InputStream addedInsFinal;
 				InputStream addedIns2 = programAnnotationService.setSendDirAndStatusAnnotation(sendDir,status,inputStream,machine.getMachineGroupCode());
-				this.addInputStreamToZip(zipOut, addedIns2, filePathInZip);
+				if(StringUtils.isNotBlank(programPackageNode.getDeviation())) {
+					//鍋忕鍗曪紝澧炲姞鍋忕鍗曞彿
+					addedInsFinal = programAnnotationService.setPldAnnotation(programPackageNode.getDeviation(),addedIns2, machine.getMachineGroupCode(), annotationDictList);;
+				}else{
+					addedInsFinal = addedIns2;
+				}
+				this.addInputStreamToZip(zipOut, addedInsFinal, filePathInZip);
 			}
 		}
 

--
Gitblit v1.9.3