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/ReceiveFileCheckService.java | 55 ++++++++++++++++++++++++++++---------------------------
1 files changed, 28 insertions(+), 27 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 4288c15..e5fe6bc 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
@@ -3,6 +3,7 @@
import com.qiniu.util.IOUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.entity.Machine;
@@ -65,7 +66,6 @@
return;
}
- AnnotationProperties annoProps = AnnotationProperties.getDefault();
try(InputStream fileIns = Files.newInputStream(checkFilePath);) {
int excepType = MachineFile.EXCEPTION_OK;
ByteArrayInputStream byteStream = new ByteArrayInputStream(IOUtils.toByteArray(fileIns));
@@ -73,62 +73,63 @@
//闈炴枃鏈�
excepType = MachineFile.EXCEPTION_NOT_TEXT;
}else{
- Matcher matcher = RegExpConstants.PROGRAM_FILE_PATTERN.matcher(machineFile.getName());
-
- boolean filenameValid = matcher.find();
+ ProgramNameVO progNameVO = ProgramFileNameParser.parseProgramName(machineFile.getName());
+ boolean filenameValid = progNameVO.isValidFilename();
if(!filenameValid){
excepType = MachineFile.EXCEPTION_BAD_FILENAME;
}else {
- ProgramNameVO progNameVO = ProgramFileNameParser.parseProgramName(machineFile.getName());
+
String prefix = progNameVO.logicProgramName()+"-";
long matchCount = allFilesInDir.stream().filter(file -> file.getName().startsWith(prefix)).count();
if(matchCount != progNameVO.getSegmentCount()){//鏂囦欢娈垫暟缂哄け
excepType = MachineFile.EXCEPTION_LOST_FILES;
}else{
+ //妫�鏌ユ槸鍚﹀尮閰嶆満搴婂洖浼犱换鍔★紵
+
//妫�鏌ユ槸鍚﹀尮閰嶄笅鍙戣褰曠殑娈垫暟
- //姝h礋3绉掍綔涓烘煡璇㈡椂闂�
- Date beginTime = new Date(machineFile.getFileCreateTime().getTime()-3000);
- Date endTime = new Date(machineFile.getFileCreateTime().getTime()+3000);
+ String nameLikeStr;
+ if(StringUtils.isNotBlank(progNameVO.getLgPart())){
+ nameLikeStr = prefix +"%P%";
+ }else{
+ nameLikeStr = prefix;
+ }
Optional<FileSendRecord> optFile = fileSendRecordService.lambdaQuery()
.eq(FileSendRecord::getMachineCode,machineFile.getMachineCode())
- .likeRight(FileSendRecord::getName,prefix).between(FileSendRecord::getCreateTime,beginTime,endTime).oneOpt();
+ .likeRight(FileSendRecord::getName,nameLikeStr).last("limit 1")
+ .orderByDesc(FileSendRecord::getCreateTime).oneOpt();
+ boolean matchSendRecord;//鏂囦欢鏄惁鏈変笅鍙戣褰�
if(optFile.isPresent()){
+ matchSendRecord = true;
//纭疄涓嬪彂杩囷紝姣斿鎬绘鏁版槸鍚︾浉鍚�
FileSendRecord sendFile = optFile.get();
ProgramNameVO sendProgNameVO = ProgramFileNameParser.parseProgramName(sendFile.getName());
if(progNameVO.getSegmentCount() != sendProgNameVO.getSegmentCount()){
//娈垫暟涓嶅尮閰嶄笅鍙戣褰�
- excepType = MachineFile.EXCEPTION_NOT_MATCH_SEND;
+ excepType = MachineFile.EXCEPTION_NOT_MATCH_SEND_SEG_COUNT;
+ }else if(!StringUtils.equals(sendProgNameVO.getLgPart(),progNameVO.getLgPart())){
+ excepType = MachineFile.EXCEPTION_NOT_MATCH_SEND_LG;
}
+ }else{
+ matchSendRecord = false;
}
- if(excepType == MachineFile.EXCEPTION_NOT_MATCH_SEND){
- //濡傛灉鏂囦欢鏈笅鍙戣繃锛屾煡鐪嬫槸鍚︽湁鐜板満缂栫▼璁板綍
+ if(!matchSendRecord){//濡傛灉鏂囦欢鏈笅鍙戣繃锛屾煡鐪嬫槸鍚︽湁鐜板満缂栫▼璁板綍
byteStream.reset();
- //AnnotationProcessor processor = annoProcessHelper.getProcessor(machine.getControlSystem());
-
- String planStatusLine = AnnotationUtil.removeAnnotation(machine.getControlSystem(),FileContentUtil.readLineAt(byteStream,annoProps.getStatusLineIndex()),programAnnotationService.getAnnotionDictList());
-
- String lgNo;//鏇存敼鍗曞彿
- if(AnnotationUtil.LG.equals(planStatusLine)) {//鏄洿鏀瑰崟
- String lgLine = FileContentUtil.readLineAt(byteStream, annoProps.getDeviationLineIndex());
- lgNo = AnnotationUtil.removeAnnotation(machine.getControlSystem(), lgLine, programAnnotationService.getAnnotionDictList());
- }else{
- lgNo = null;
+ String devSerial = null;
+ if(StringUtils.isNotBlank(progNameVO.getLgPart())){
+ devSerial = progNameVO.getLgPart().substring(1);
}
-
long progOnMachineCount = programOnMachineService.lambdaQuery()
.eq(ProgramOnMachine::getDrawingNo,progNameVO.getDrawingNo())
.eq(ProgramOnMachine::getProcessNo,progNameVO.getProcessNo())
.eq(ProgramOnMachine::getProcessEdition,progNameVO.getProcessEdition())
- .eq(lgNo != null,ProgramOnMachine::getDeviation,lgNo)//涓存椂鏇存敼鍗曞尮閰�
-
+ .eq(devSerial != null,ProgramOnMachine::getDeviationSerial,devSerial)
.eq(ProgramOnMachine::getMachineCode,machineFile.getMachineCode()).count();
- if(progOnMachineCount > 0){//鏈夌幇鍦虹紪绋嬭褰曪紝妫�鏌ラ�氳繃
- excepType = MachineFile.EXCEPTION_OK;
+ if(progOnMachineCount == 0){//鏃犵幇鍦虹紪绋嬭褰�
+ excepType = MachineFile.EXCEPTION_NOT_MATCH_RECORD;
}
}
--
Gitblit v1.9.3