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/MachineFileScanService.java |   85 +++++++++---------------------------------
 1 files changed, 19 insertions(+), 66 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
index f12198e..6fcc498 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
@@ -8,9 +8,14 @@
 import org.springblade.mdm.commons.service.ParamService;
 import org.springblade.mdm.machinefile.entity.MachineFile;
 import org.springblade.mdm.program.service.ProgramAnnotationService;
+import org.springblade.mdm.program.service.programannotation.AnnotationProcessor;
+import org.springblade.mdm.program.service.programannotation.AnnotationUtil;
+import org.springblade.mdm.program.service.programannotation.MachineAnnotationConfig;
+import org.springblade.mdm.program.service.programannotation.ProcessorHelper;
 import org.springblade.mdm.utils.FileContentUtil;
 import org.springblade.system.pojo.entity.DictBiz;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
 import java.io.BufferedInputStream;
@@ -35,11 +40,13 @@
 	private ParamService paramService;
 	@Autowired
 	private ProgramAnnotationService programAnnotationService;
-
+	@Autowired
+	private MachineAnnotationConfig annoConfig;
 
 	/**
 	 * 鎵弿鎵�鏈夋満搴婄殑閰嶇疆鐩綍
 	 */
+	@Async
 	public void scanMachineFile() {
 		List<Machine> machines = machineService.getEnableMachines();
 		for (Machine machine : machines) {
@@ -103,71 +110,15 @@
 		List<Path> files = Files.list(dirPath)
 			.filter(Files::isRegularFile).toList();
 
-		byte[] buffer = new byte[2048];
-
-		//MachineFile existFileInDb;
+		//byte[] buffer = new byte[2048];
 		List<DictBiz> annotatiionList = programAnnotationService.getAnnotionDictList();
 		//boolean exists;//鏂囦欢鏄惁瀛樺湪浜庢暟鎹簱涓�
 		for (Path filePath : files) {
-			//existFileInDb = null;
-			//exists = false;
-
-			/*MachineFile mf = new MachineFile();
-			mf.setTenantId("000000");
-			mf.setName(filePath.toFile().getName());
-			mf.setDirType(dirType);
-			mf.setMachineCode(machine.getCode());*/
-
 			try {
-				//璇诲彇鍐呭锛岀‘瀹氱▼搴忕姸鎬�
-				/*int pstatus = readProgramStatus(filePath,machine.getMachineGroupCode(),annotatiionList);
-				mf.setProgramStatus(pstatus);
-				BasicFileAttributes attrs = Files.readAttributes(
-					filePath,
-					BasicFileAttributes.class
-				);
-
-				FileTime creationTime = attrs.creationTime();
-				Date creationDate = new Date(creationTime.toMillis());
-				mf.setFileCreateTime(creationDate);
-
-				FileTime modifyTime = attrs.lastModifiedTime();
-				mf.setFileModifyTime(new Date(modifyTime.toMillis()));
-				mf.setFileSize(Files.size(filePath));
-				try (InputStream inputStream = Files.newInputStream(filePath)) {
-					// 浣跨敤杈撳叆娴佽鍙栨枃浠跺唴瀹�
-					int bytesRead = inputStream.read(buffer);
-					mf.setMd5(DigestUtils.md5Hex(buffer));
-				} catch (IOException e) {
-					log.error("璇诲彇鏂囦欢md5澶辫触",e);
-					continue;//鏈夐敊璇�,鎺犺繃
-				}*/
-
 				MachineFile mf = readFileToMachineFile(filePath,machine,dirType,annotatiionList);
 
 				machineFileService.refreshFileData(mf);
-				/*
-				existFileInDb = machineFileService.getExistsFile(mf.getName(),dirType,machine.getCode());
-				System.out.println("鏂囦欢鍒涘缓鏃堕棿: " + mf.getFileCreateTime());
 
-				if(existFileInDb == null) {
-					machineFileService.save(mf);
-				}else{
-					log.info("鏂囦欢宸插瓨鍦�:{}",filePath.getFileName());
-
-					existFileInDb.setFileSize(mf.getFileSize());
-					existFileInDb.setProgramStatus(mf.getProgramStatus());
-					existFileInDb.setFileCreateTime(mf.getFileCreateTime());
-					existFileInDb.setFileModifyTime(mf.getFileModifyTime());
-					if(!StringUtils.equals(existFileInDb.getMd5(),mf.getMd5())){
-						//鏂囦欢鍐呭鍙戠敓鍙樺寲浜�,璁剧疆鐘舵�佷负鍒濆鐘舵��
-						existFileInDb.setStatus(MachineFile.STATUS_NORMAL);
-					}
-					existFileInDb.setMd5(mf.getMd5());
-
-					machineFileService.updateById(existFileInDb);
-
-				}*/
 			} catch (IOException e) {
 				log.error("璇诲彇鏂囦欢淇℃伅澶辫触",e);
 			}
@@ -221,12 +172,12 @@
 	/**
 	 * 璇诲彇鏂囦欢涓殑绋嬪簭鐘舵��
 	 * @param filePath 鏂囦欢璺緞
-	 * @param machineGroupCode
+	 * @param controlSystem
 	 * @param annotatiionList 娉ㄩ噴閰嶇疆瀛楀吀
 	 * @return 鐘舵�佺殑鏁存暟涔嬪拰
 	 * @throws IOException
 	 */
-	int readProgramStatus(Path filePath,String machineGroupCode,List<DictBiz> annotatiionList) throws IOException {
+	public int readProgramStatus(Path filePath,String controlSystem,List<DictBiz> annotatiionList) throws IOException {
 		int programStatus = MachineFile.PROGRAM_STATUS_UNKNOWN;
 		try(InputStream ins = Files.newInputStream(filePath);
 			BufferedInputStream bis = new BufferedInputStream(ins)){
@@ -236,14 +187,16 @@
 				return MachineFile.PROGRAM_STATUS_UNKNOWN;
 			}
 			bis.reset();
-			String statusLine = FileContentUtil.readLineAt(ins,ProgramAnnotationService.STATUS_LINE_INDEX);
-			if(programAnnotationService.isAnnotation(statusLine,machineGroupCode,annotatiionList)){
-				String progStatusTxt = programAnnotationService.removeAnnotation(machineGroupCode,statusLine,annotatiionList);
-				if(ProgramAnnotationService.SQ.equals(progStatusTxt)){
+
+			AnnotationProcessor annoProcessor = ProcessorHelper.getProcessor(controlSystem,annoConfig);
+			String statusLine = FileContentUtil.readLineAt(ins, annoProcessor.getAnnotationProperties().getStatusLineIndex());
+			if(AnnotationUtil.isAnnotation(statusLine,controlSystem,annotatiionList)){
+				String progStatusTxt = AnnotationUtil.removeAnnotation(controlSystem,statusLine,annotatiionList);
+				if(AnnotationUtil.SQ.equals(progStatusTxt)){
 					programStatus = MachineFile.PROGRAM_STATUS_TRY;
-				}else if(ProgramAnnotationService.GH.equals(progStatusTxt)){
+				}else if(AnnotationUtil.GH.equals(progStatusTxt)){
 					programStatus = MachineFile.PROGRAM_STATUS_CURED;
-				}else if(ProgramAnnotationService.PL.equals(progStatusTxt)){
+				}else if(AnnotationUtil.LG.equals(progStatusTxt)){
 					programStatus = MachineFile.PROGRAM_STATUS_DIVIASTION;
 				}
 			}

--
Gitblit v1.9.3