From d4ca3871c18474768c924fcbfd6e8d3178040092 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 15 九月 2025 01:19:56 +0800
Subject: [PATCH] 性能优化

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java |   36 ++++++++++++++++++++++++++++++------
 1 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java
index 1234ca2..eb2908a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java
@@ -1,8 +1,17 @@
 package org.springblade.mdm.program.service.programannotation;
 
+import com.qiniu.util.IOUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.springblade.mdm.program.service.ProgramAnnotationService;
+import org.springblade.mdm.utils.FileContentUtil;
+import org.springblade.system.pojo.entity.DictBiz;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
 
 
 @Component("defaultProcessor")
@@ -11,17 +20,32 @@
 	@Autowired
 	private ProgramAnnotationService programAnnotationService;
 	private String controlSystem;
-	private AnnotationProperties annotationPropreties;
 
+
+	@Override
+	public InputStream setAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException {
+		List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList();
+		ByteArrayInputStream bais = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
+
+		String line = FileContentUtil.readLineAt(bais, annotationProperties.getProgramNameLineIndex());
+		bais.reset();
+		boolean isAnnotation = AnnotationUtil.isAnnotation(line,controlSystem,annoDicts);
+		InputStream insAfter;
+		//鍔犲叆绋嬪簭鍚嶆敞閲婅
+		String proNameLine =  AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(annoData.getFilename()),getControlSystem(),annoDicts);
+		if(isAnnotation){
+			insAfter = FileContentUtil.replaceAtLine(bais, annotationProperties.getProgramNameLineIndex(),proNameLine);
+		}else{
+			insAfter = FileContentUtil.insertLine(bais, annotationProperties.getProgramNameLineIndex(),proNameLine);
+		}
+
+		return super.setAnnotation(annoData, insAfter);
+
+	}
 
 	@Override
 	public void setControlSystem(String controlSystemDictVal) {
 		this.controlSystem = controlSystemDictVal;
-	}
-
-	@Override
-	public void setAnnotationProperties(AnnotationProperties annotationProperties) {
-		this.annotationPropreties= annotationProperties;
 	}
 
 	@Override

--
Gitblit v1.9.3