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