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/ProgramAnnotationService.java |   40 ++++++++++++++++++++++++++++++++--------
 1 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
index 8a1f63f..ff19e03 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
@@ -4,6 +4,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springblade.core.tool.api.R;
 import org.springblade.mdm.utils.FileContentUtil;
 import org.springblade.system.feign.IDictBizClient;
@@ -41,6 +42,11 @@
 	 * 鐘舵�佽绱㈠紩锛堢涓夎锛� 0 based
 	 */
 	public static final int STATUS_LINE_INDEX = 2;
+
+	/**
+	 * 鍋忕鍗曟敞閲婅绱㈠紩鍙� 0 based
+	 */
+	public static final int STATUS_DEVIATION_INDEX = 3;
 
 	public static final String SQ = "SQ";
 	public static final String GH = "GH";
@@ -152,33 +158,51 @@
 	 * 璁剧疆鍥哄寲娉ㄩ噴琛�
 	 * @param inputStream
 	 * @param machineGroup
-	 * @param annoDicts
+	 * @param annoDictList
 	 * @return
 	 * @throws IOException
 	 */
-	public InputStream setGHAnnotation(InputStream inputStream, String machineGroup,List<DictBiz> annoDicts) throws IOException {
+	public InputStream setGHAnnotation(InputStream inputStream, String machineGroup,List<DictBiz> annoDictList) throws IOException {
+
+		return setAnnotationAndGetInputStream(inputStream, machineGroup, annoDictList, GH, STATUS_LINE_INDEX);
+	}
+
+	/**
+	 * 璁剧疆鍋忕鍗曟敞閲�
+	 * @param inputStream
+	 * @param machineGroup
+	 * @param annoDictList
+	 * @return
+	 * @throws IOException
+	 */
+	public InputStream setPldAnnotation(String deviation,InputStream inputStream,String machineGroup,List<DictBiz> annoDictList) throws IOException {
 		//
+		return setAnnotationAndGetInputStream(inputStream, machineGroup, annoDictList, deviation, STATUS_DEVIATION_INDEX);
+	}
+
+	@NotNull
+	private InputStream setAnnotationAndGetInputStream(InputStream inputStream, String machineGroup, List<DictBiz> annoDictList, String text, int lineIndex) throws IOException {
 		InputStream finishedStream;
 		try(inputStream){
 			ByteArrayInputStream byteInputStream =  new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
 
-			String annoTxt = generateAnnotation(GH,machineGroup,annoDicts);//鍔犱簡娉ㄩ噴涔嬪悗鐨勬枃鏈�
+			String annoTxt = generateAnnotation(text,machineGroup,annoDictList);//鍔犱簡娉ㄩ噴涔嬪悗鐨勬枃鏈�
 
-			String lineText = FileContentUtil.readLineAt(byteInputStream,STATUS_LINE_INDEX);//绗笁琛屽簲璇ユ槸鐘舵�佹敞閲�
+			String lineText = FileContentUtil.readLineAt(byteInputStream, lineIndex);
 			byteInputStream.reset();
 
-			if(isAnnotation(lineText,machineGroup,annoDicts)){
-				finishedStream = FileContentUtil.replaceAtLine(byteInputStream,STATUS_LINE_INDEX,annoTxt);
+			if(isAnnotation(lineText,machineGroup,annoDictList)){
+				finishedStream = FileContentUtil.replaceAtLine(byteInputStream, lineIndex,annoTxt);
 			}else{
-				finishedStream = FileContentUtil.insertLine(byteInputStream,STATUS_LINE_INDEX,annoTxt);
+				finishedStream = FileContentUtil.insertLine(byteInputStream, lineIndex,annoTxt);
 			}
 			finishedStream.reset();
-
 		}
 
 		return finishedStream;
 	}
 
+
 	/**
 	 * 涓鸿緭鍏ユ祦璁剧疆鍙戦�佺洰褰�(绗簩琛�)鍜岀姸鎬侊紙绗笁琛岋級
 	 * @param sendPath 鍙戦�佽矾寰�

--
Gitblit v1.9.3