From 4c7296d45efe849dc70a3b2e2240c905481a91c9 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 29 九月 2025 17:44:46 +0800
Subject: [PATCH] 工控网涉密网联调

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

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java
index 76e468e..b9b522e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java
@@ -19,27 +19,39 @@
 	@Autowired
 	private ProgramAnnotationService programAnnotationService;
 	private String controlSystem;
-	private Pattern PATTERN = Pattern.compile("^[oO]\\d{4}");
-	private final int O_LINE = 1;
+	static final Pattern PATTERN = Pattern.compile("^[oO]\\d{4}.*");
+	//private final int O_LINE = 1;
 	@Override
 	public InputStream putAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException {
 		//鍦∣0001 杩欑鏂囧瓧鍚庨潰澧炲姞鏂囦欢鍚嶏紙涓嶅甫鎵╁睍鍚嶏級
-		ByteArrayInputStream bais = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
-		String line = FileContentUtil.readLineAt(bais,O_LINE);
-		bais.reset();
+		ByteArrayInputStream byteStream = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
+		//String line = FileContentUtil.readLineAt(byteStream,O_LINE);
+		String line = FileContentUtil.readLineAt(byteStream,getAnnotationProperties().getProgramNameLineIndex());
+
+		byteStream.reset();
 		boolean oMatched = PATTERN.matcher(line).matches();
 		InputStream ins1;
 		if(oMatched){
 			List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList();
-			String newline =  line + AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(annoData.getFilename()),getControlSystem(),annoDicts);
-			ins1 = FileContentUtil.replaceAtLine(bais,O_LINE,newline);
+
+			String programAnno =  AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(annoData.getFilename()),getControlSystem(),annoDicts);
+
+			ins1 = FileContentUtil.replaceAtLine(byteStream,getAnnotationProperties().getProgramNameLineIndex(),genProgramNameLine(line,programAnno));
 		}else{
-			ins1 = bais;
+			ins1 = byteStream;
 		}
 		return super.putAnnotation(annoData, ins1);
-
 	}
 
+	/**
+	 * 鐢熸垚绋嬪簭鍚嶇О娉ㄩ噴琛岋紝O[4浣嶆暟瀛梋(绋嬪簭鍚�) 锛岄渶瑕佸皢鐢ㄦ埛鑷繁鐨勭▼搴忓悕鍘绘垨鍏朵粬娉ㄩ噴鎺夋斁鍚庨潰
+	 * @param oriLine 鍘熷琛屾枃鏈�
+	 * @param programNameAnno 绋嬪簭娉ㄩ噴鏂囨湰锛�(绋嬪簭鍚�)
+	 * @return Oxxxx+绋嬪簭娉ㄩ噴鏂囨湰
+	 */
+	String genProgramNameLine(String oriLine,String programNameAnno){
+		return oriLine.substring(0,5)+programNameAnno;
+	}
 
 	@Override
 	public void setControlSystem(String controlSystemDictVal) {

--
Gitblit v1.9.3