From 31ecdb8c700529a59dd762f0c47f0ed9c66d5092 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 25 九月 2025 20:40:07 +0800
Subject: [PATCH] 工控网任务
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java | 32 ++++++++++++++++++++------------
1 files changed, 20 insertions(+), 12 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 6fcc498..d4877d2 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
@@ -1,18 +1,18 @@
package org.springblade.mdm.machinefile.service;
+import com.alibaba.excel.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.commons.service.ParamService;
+import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
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.program.service.programannotation.*;
import org.springblade.mdm.utils.FileContentUtil;
+import org.springblade.mdm.utils.ProgramFileNameParser;
import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
@@ -37,12 +37,11 @@
@Autowired
private MachineService machineService;
@Autowired
- private ParamService paramService;
- @Autowired
private ProgramAnnotationService programAnnotationService;
@Autowired
private MachineAnnotationConfig annoConfig;
-
+ @Autowired
+ private AnnotationProcessorHelper annotationProcessorHelper;
/**
* 鎵弿鎵�鏈夋満搴婄殑閰嶇疆鐩綍
*/
@@ -142,7 +141,7 @@
mf.setName(filePath.toFile().getName());
mf.setDirType(dirType);
mf.setMachineCode(machine.getCode());
- mf.setProgramStatus(readProgramStatus(filePath,machine.getMachineGroupCode(),annotatiionList));
+
BasicFileAttributes attrs = Files.readAttributes(
filePath,
@@ -166,7 +165,16 @@
log.error("璇诲彇鏂囦欢md5澶辫触",e);
throw new ServiceException("璇诲彇鏂囦欢md5澶辫触"+e.getMessage());
}
+ try (InputStream inputStream = Files.newInputStream(filePath)) {
+ AnnotationProcessor annoProcessor = annotationProcessorHelper.getProcessor(machine.getMachineGroupCode());
+ AnnotationData annoData = annoProcessor.readAnnotationData(inputStream);
+ mf.setProgramStatus(annoData.getProgramStatus());
+ ProgramNameVO progVO = ProgramFileNameParser.parseProgramName(mf.getName());
+ if(StringUtils.isNotBlank(progVO.getLgPart())) {
+ mf.setDeviation(annoData.getDeviation());
+ }
+ }
return mf;
}
/**
@@ -180,16 +188,16 @@
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)){
+ BufferedInputStream byteInsStream = new BufferedInputStream(ins)){
- boolean isText= FileContentUtil.isTextFile(bis);
+ boolean isText= FileContentUtil.isTextFile(byteInsStream);
if(!isText){
return MachineFile.PROGRAM_STATUS_UNKNOWN;
}
- bis.reset();
+ byteInsStream.reset();
AnnotationProcessor annoProcessor = ProcessorHelper.getProcessor(controlSystem,annoConfig);
- String statusLine = FileContentUtil.readLineAt(ins, annoProcessor.getAnnotationProperties().getStatusLineIndex());
+ String statusLine = FileContentUtil.readLineAt(byteInsStream, annoProcessor.getAnnotationProperties().getStatusLineIndex());
if(AnnotationUtil.isAnnotation(statusLine,controlSystem,annotatiionList)){
String progStatusTxt = AnnotationUtil.removeAnnotation(controlSystem,statusLine,annotatiionList);
if(AnnotationUtil.SQ.equals(progStatusTxt)){
--
Gitblit v1.9.3