From fe5370f0b107736fd41de699612f021969bc954f Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 20 九月 2025 02:10:10 +0800
Subject: [PATCH] 优化程序注释

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java |   42 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java
index dbaaab2..ba05c3c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java
@@ -1,8 +1,10 @@
 package org.springblade.mdm.machinefile.service;
 
+import com.qiniu.util.IOUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
 import org.springblade.mdm.basesetting.machine.service.MachineService;
 import org.springblade.mdm.commons.contants.RegExpConstants;
@@ -10,9 +12,10 @@
 import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
 import org.springblade.mdm.machinefile.entity.FileSendRecord;
 import org.springblade.mdm.machinefile.entity.MachineFile;
+import org.springblade.mdm.program.entity.ProgramOnMachine;
 import org.springblade.mdm.program.service.ProgramAnnotationService;
 import org.springblade.mdm.program.service.ProgramOnMachineService;
-import org.springblade.mdm.program.service.programannotation.AnnotationUtil;
+import org.springblade.mdm.program.service.programannotation.*;
 import org.springblade.mdm.utils.FileContentUtil;
 import org.springblade.mdm.utils.ProgramFileNameParser;
 import org.springblade.system.pojo.entity.DictBiz;
@@ -21,10 +24,7 @@
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -46,6 +46,11 @@
 	private ProgramOnMachineService programOnMachineService;
 	@Autowired
 	private FileSendRecordService fileSendRecordService;
+	@Autowired
+	private AnnotationProcessorHelper annoProcessHelper;
+	@Autowired
+	private ProgramAnnotationService programAnnotationService;
+
 	/**
 	 * 鏂囦欢鍚堟硶鎬ф鏌�
 	 * @param machineFile
@@ -59,9 +64,12 @@
 		if(!checkFilePath.toFile().exists()){
 			return;
 		}
+
+		AnnotationProperties annoProps = AnnotationProperties.getDefault();
 		try(InputStream fileIns = Files.newInputStream(checkFilePath);) {
 			int excepType = MachineFile.EXCEPTION_OK;
-			if(!FileContentUtil.isTextFile(fileIns)){
+			ByteArrayInputStream byteStream = new ByteArrayInputStream(IOUtils.toByteArray(fileIns));
+			if(!FileContentUtil.isTextFile(byteStream)){
 				//闈炴枃鏈�
 				excepType = MachineFile.EXCEPTION_NOT_TEXT;
 			}else{
@@ -94,6 +102,28 @@
 								excepType = MachineFile.EXCEPTION_NOT_MATCH_SEND;
 							}
 						}
+
+						if(excepType == MachineFile.EXCEPTION_NOT_MATCH_SEND){
+							//濡傛灉鏂囦欢鏈笅鍙戣繃锛屾煡鐪嬫槸鍚︽湁鐜板満缂栫▼璁板綍
+							byteStream.reset();
+
+							//AnnotationProcessor processor = annoProcessHelper.getProcessor(machine.getControlSystem());
+							String lgLine = FileContentUtil.readLineAt(byteStream,annoProps.getDeviationLineIndex());
+							String textWithoutAnno = AnnotationUtil.removeAnnotation(machine.getControlSystem(),lgLine,programAnnotationService.getAnnotionDictList());
+							String[] strArr = Func.split(textWithoutAnno,":");//涓存椂鏇存敼鍗曟槸鍐掑彿鍒嗛殧锛屽悗闈㈡槸鍗曞彿
+							long progOnMachineCount = programOnMachineService.lambdaQuery()
+								.eq(ProgramOnMachine::getDrawingNo,progNameVO.getDrawingNo())
+								.eq(ProgramOnMachine::getProcessNo,progNameVO.getProcessNo())
+								.eq(ProgramOnMachine::getProcessEdition,progNameVO.getProcessEdition())
+								.eq(strArr.length==2,ProgramOnMachine::getDeviation,strArr[1])//涓存椂鏇存敼鍗曞尮閰�
+
+								.eq(ProgramOnMachine::getMachineCode,machineFile.getMachineCode()).count();
+
+							if(progOnMachineCount > 0){//鏈夌幇鍦虹紪绋嬭褰曪紝妫�鏌ラ�氳繃
+								excepType = MachineFile.EXCEPTION_OK;
+							}
+
+						}
 					}
 				}
 			}

--
Gitblit v1.9.3