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/task/ReceiveDirMoveService.java | 84 ++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java | 1
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java | 130 ++++++++++++++----
blade-service/blade-mdm/src/test/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckServiceTest.java | 16 ++
doc/sql/mdm/mdm.mysql.all.create.sql | 40 +++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveTask.java | 16 -
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java | 42 +++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java | 5
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessorHelper.java | 29 ++++
9 files changed, 311 insertions(+), 52 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;
+ }
+
+ }
}
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
index 366d803..463a443 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
@@ -130,6 +130,7 @@
annoData.setProgramStatus(status);
annoData.setDeviation(programPackageNode.getDeviation());
annoData.setFilename(programFile.getName());
+
InputStream addedInsFinal = annoProcessor.putAnnotation(annoData,inputStream);
addedInsFinal.reset();
/*
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java
index efe0466..7933d98 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java
@@ -2,6 +2,7 @@
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springblade.mdm.program.service.ProgramAnnotationService;
import org.springblade.mdm.utils.FileContentUtil;
import org.springblade.system.pojo.entity.DictBiz;
@@ -31,7 +32,15 @@
byteInputStream.reset();
if(AnnotationUtil.isAnnotation(sendDirLine,getControlSystem(),annoDicts)){
- finishedStream = FileContentUtil.replaceAtLine(byteInputStream,annotationProperties.getSendPathLineIndex(),sendPathAnnotation);
+ String planText = AnnotationUtil.removeAnnotation(getControlSystem(),sendDirLine,annoDicts);
+ if(!planText.equals(sendPath)) {
+ //闈炶矾寰勭殑娉ㄩ噴锛屾彃鍏�
+ finishedStream = FileContentUtil.insertLine(byteInputStream,annotationProperties.getSendPathLineIndex(),sendPathAnnotation);
+ }else{
+ //鏄矾寰勶紝涓嶅鐞嗙洿鎺ヨ繑鍥炲師杈撳叆娴�
+ finishedStream = inputStream;
+ }
+ //finishedStream = FileContentUtil.replaceAtLine(byteInputStream,annotationProperties.getSendPathLineIndex(),sendPathAnnotation);
}else{
finishedStream = FileContentUtil.insertLine(byteInputStream,annotationProperties.getSendPathLineIndex(),sendPathAnnotation);
}
@@ -43,21 +52,37 @@
}
@Override
public InputStream putFilenameAnnotation(String fileName, InputStream inputStream) throws IOException {
- List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList();
- ByteArrayInputStream bais = new ByteArrayInputStream(com.qiniu.util.IOUtils.toByteArray(inputStream));
+ List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList();//TODO 杩欓噷搴旇涓嶇敤鍔犺浇锛屽弬鏁颁紶杩囨潵灏辫
+ ByteArrayInputStream byteStream = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
- String line = FileContentUtil.readLineAt(bais, annotationProperties.getProgramNameLineIndex());
- bais.reset();
- boolean isAnnotation = AnnotationUtil.isAnnotation(line,this.getControlSystem(),annoDicts);
- InputStream insAfter;
+ String programNameLine = FileContentUtil.readLineAt(byteStream, annotationProperties.getProgramNameLineIndex());
+ byteStream.reset();
+ boolean isAnnotation = AnnotationUtil.isAnnotation(programNameLine,this.getControlSystem(),annoDicts);
+ InputStream insAfterProgramName;
//鍔犲叆绋嬪簭鍚嶆敞閲婅
- String proNameLine = AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(fileName),getControlSystem(),annoDicts);
+ String proNameAnnotation = AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(fileName),getControlSystem(),annoDicts);
+
+ if(isAnnotation){//鏄敞閲�
+ //鎻愬彇娉ㄩ噴鍐呮枃瀛�
+ //String planText = AnnotationUtil.removeAnnotation(getControlSystem(),programNameline,annoDicts);
+ if(!StringUtils.equals(programNameLine,proNameAnnotation)) {
+ //娉ㄩ噴涓嶆槸绋嬪簭鍚嶏紙宸ヨ壓鍛樿嚜宸卞啓鐨勬敞閲婏級锛屾彃鍏�
+ insAfterProgramName = FileContentUtil.insertLine(byteStream,annotationProperties.getProgramNameLineIndex(),proNameAnnotation);
+ }else{
+ //鏄▼搴忓悕娉ㄩ噴锛屼笉澶勭悊锛岃繑鍥炲師stream
+ insAfterProgramName = byteStream;
+ }
+ }else{
+ //闈炴敞閲婏紝鎻掑叆鐘舵��
+ insAfterProgramName = FileContentUtil.insertLine(byteStream,annotationProperties.getProgramNameLineIndex(),proNameAnnotation);
+ }
+ /*
if(isAnnotation){
insAfter = FileContentUtil.replaceAtLine(bais, annotationProperties.getProgramNameLineIndex(),proNameLine);
}else{
insAfter = FileContentUtil.insertLine(bais, annotationProperties.getProgramNameLineIndex(),proNameLine);
- }
- return insAfter;
+ }*/
+ return insAfterProgramName;
}
@Override
@@ -69,41 +94,84 @@
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
//1鍔犲叆鍙戦�佽矾寰勭殑娉ㄩ噴
- /*
- String sendPathAnnotation = AnnotationUtil.generateAnnotation(annoData.getSendPath(),getControlSystem(),annoDicts);//鍔犱簡娉ㄩ噴涔嬪悗鐨勬枃鏈�
-
- String sendDirLine = FileContentUtil.readLineAt(byteInputStream,annotationProperties.getSendPathLineIndex());//绗�2琛屾槸鍙戦�佽矾寰�
- byteInputStream.reset();
- String statusLine = FileContentUtil.readLineAt(byteInputStream,annotationProperties.getStatusLineIndex());//鐘舵�佹敞閲�
- byteInputStream.reset();
-
- InputStream insAfterSetSendDir ;
- if(AnnotationUtil.isAnnotation(sendDirLine,getControlSystem(),annoDicts)){
- insAfterSetSendDir = FileContentUtil.replaceAtLine(byteInputStream,annotationProperties.getSendPathLineIndex(),sendPathAnnotation);
- }else{
- insAfterSetSendDir = FileContentUtil.insertLine(byteInputStream,annotationProperties.getSendPathLineIndex(),sendPathAnnotation);
- }
-
- insAfterSetSendDir.reset();
- */
-
InputStream insAfterSetSendDir = putSendPathAnnotation(annoData.getSendPath(),byteInputStream,annoDicts);
-
+ /*
String statusLine = FileContentUtil.readLineAt(insAfterSetSendDir,annotationProperties.getStatusLineIndex());//鐘舵�佹敞閲�
insAfterSetSendDir.reset();
//鍔犲叆鐘舵�佹敞閲婅
+ InputStream insAfterStatus;
String statusAnnotation = AnnotationUtil.generateAnnotation(annoData.getProgramStatus(),getControlSystem(),annoDicts);//娉ㄩ噴鍚庣殑鐘舵�佹枃鏈�
if(AnnotationUtil.isAnnotation(statusLine,getControlSystem(),annoDicts)){
- finishedStream = FileContentUtil.replaceAtLine(insAfterSetSendDir,annotationProperties.getStatusLineIndex(),statusAnnotation);
+ insAfterStatus = FileContentUtil.replaceAtLine(insAfterSetSendDir,annotationProperties.getStatusLineIndex(),statusAnnotation);
}else{
- finishedStream = FileContentUtil.insertLine(insAfterSetSendDir,annotationProperties.getStatusLineIndex(),statusAnnotation);
+ insAfterStatus = FileContentUtil.insertLine(insAfterSetSendDir,annotationProperties.getStatusLineIndex(),statusAnnotation);
+ }*/
+ InputStream insAfterStatus = putStatusAnnotation(annoData.getProgramStatus(),insAfterSetSendDir,annoDicts);
+
+ if(StringUtils.isNotBlank(annoData.getDeviation())){
+ finishedStream = putDeviationAnnotation(annoData.getDeviation(),insAfterStatus,annoDicts);
+ }else{
+ //鏄洿鏀瑰崟鍙凤紝涓嶅鐞嗙洿鎺ヨ繑鍥炲師杈撳叆娴�
+ finishedStream = insAfterStatus;
}
}
return finishedStream;
}
+ protected InputStream putStatusAnnotation(String status,InputStream inputStream,List<DictBiz> annoDicts) throws IOException {
+ InputStream insAfterStatus;
+ //鍔犲叆lg鍗曞彿
+
+ String statusLine = FileContentUtil.readLineAt(inputStream,annotationProperties.getStatusLineIndex());//鐘舵�佹敞閲�
+ String stationAnnotation = AnnotationUtil.generateAnnotation(status,getControlSystem(),annoDicts);
+
+ inputStream.reset();
+ if(AnnotationUtil.isAnnotation(statusLine,getControlSystem(),annoDicts) ){
+ //鏄敞閲�
+ //鎻愬彇娉ㄩ噴鍐呮枃瀛�
+ String planText = AnnotationUtil.removeAnnotation(getControlSystem(),statusLine,annoDicts);
+ if(!StringUtils.equalsAny(planText,AnnotationUtil.SQ,AnnotationUtil.GH,AnnotationUtil.LG)) {
+ //娉ㄩ噴涓嶆槸鐘舵�侊紙宸ヨ壓鍛樿嚜宸卞啓鐨勬敞閲婏級锛屾彃鍏�
+ insAfterStatus = FileContentUtil.insertLine(inputStream,annotationProperties.getStatusLineIndex(),stationAnnotation);
+ }else{
+ //鏄姸鎬佹敞閲婏紝鏇挎崲
+ insAfterStatus = FileContentUtil.replaceAtLine(inputStream,annotationProperties.getStatusLineIndex(),stationAnnotation);
+ }
+ }else{
+ //闈炴敞閲婏紝鎻掑叆鐘舵��
+ insAfterStatus = FileContentUtil.insertLine(inputStream,annotationProperties.getStatusLineIndex(),stationAnnotation);
+ }
+ return insAfterStatus;
+ }
+
+ protected InputStream putDeviationAnnotation(String deviation,InputStream inputStream,List<DictBiz> annoDicts) throws IOException {
+ InputStream insAfter1;
+ //鍔犲叆lg鍗曞彿
+ String devLine = FileContentUtil.readLineAt(inputStream,annotationProperties.getDeviationLineIndex());//鐘舵�佹敞閲�
+
+ String devAnnotation = AnnotationUtil.generateAnnotation(deviation,getControlSystem(),annoDicts);
+
+ inputStream.reset();
+ if(AnnotationUtil.isAnnotation(devLine,getControlSystem(),annoDicts) ){
+ //鏄敞閲�
+ //鎻愬彇娉ㄩ噴鍐呮枃瀛�
+ String planText = AnnotationUtil.removeAnnotation(getControlSystem(),devLine,annoDicts);
+ if(!planText.equals(deviation)) {
+ //娉ㄩ噴涓嶆槸涓存椂鏇存敼鍗曞彿锛堝伐鑹哄憳鑷繁鍐欑殑娉ㄩ噴锛夛紝鎻掑叆
+ insAfter1 = FileContentUtil.insertLine(inputStream,annotationProperties.getDeviationLineIndex(),devAnnotation);
+ }else{
+ //鏄洿鏀瑰崟鍙凤紝涓嶅鐞嗙洿鎺ヨ繑鍥炲師杈撳叆娴�
+ insAfter1 = inputStream;
+ }
+ }else{
+ //闈炴敞閲婏紝鎬庢彃鍏g鍙�
+ insAfter1 = FileContentUtil.insertLine(inputStream,annotationProperties.getDeviationLineIndex(),devAnnotation);
+ }
+ return insAfter1;
+ }
+
@Override
public abstract void setControlSystem(String controlSystemDictVal) ;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessorHelper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessorHelper.java
new file mode 100644
index 0000000..1e0d3af
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessorHelper.java
@@ -0,0 +1,29 @@
+package org.springblade.mdm.program.service.programannotation;
+
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 璐熻矗鍒囨崲鍚堥�傜殑娉ㄩ噴澶勭悊鍣�
+ */
+@Component
+public class AnnotationProcessorHelper {
+ @Autowired
+ private MachineAnnotationConfig annotationConfig;
+
+ public AnnotationProcessor getProcessor(String controlSystem){
+ AnnotationProperties props = annotationConfig.getConfigMap().get(controlSystem);
+ AnnotationProcessor processor;
+ if(props != null){
+ processor = SpringUtil.getBean(props.getBeanId());
+ processor.setAnnotationProperties(props);
+
+ }else{
+ processor = SpringUtil.getBean(DefaultProcessor.class);
+ processor.setAnnotationProperties(AnnotationProperties.getDefault());
+ }
+ processor.setControlSystem(controlSystem);
+ return processor;
+ }
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java
index 7e2529f..9238e90 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirCheckTask.java
@@ -47,6 +47,9 @@
@Autowired
private ReceiveFileCheckService receiveFileCheckService;
+ @Autowired
+ private ReceiveDirMoveService receiveDirMoveService;
+
// 姣�5绉掓墽琛屼竴娆�
//@Scheduled(fixedRate = 1000000)
//@Scheduled(cron = "0 1 0 * * ?") // 姣忓ぉ涓婂崍0鐐�1鍒嗘墽琛�
@@ -62,6 +65,8 @@
log.info("reccheckfile start");
checkFiles();
+ //妫�鏌ュ畬鎴愶紝鐩存帴绉诲姩鏃犲紓甯哥殑鏂囦欢
+ receiveDirMoveService.moveValidateFiles();
log.info("reccheckfile end");
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveService.java
new file mode 100644
index 0000000..69aec02
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveService.java
@@ -0,0 +1,84 @@
+package org.springblade.mdm.task;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
+import org.springblade.mdm.commons.service.ParamService;
+import org.springblade.mdm.machinefile.entity.MachineFile;
+import org.springblade.mdm.machinefile.service.MachineFileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 鏈哄簥鍥炰紶鏂囦欢澶箁ec锛岀洰褰曟枃浠惰秴杩囨満搴婅瀹氱殑鏃堕棿绉诲姩鍒皌emp鏂囦欢澶�
+ */
+@Slf4j
+@Component
+@EnableScheduling
+public class ReceiveDirMoveService {
+ @Autowired
+ private MachineFileService machineFileService;
+ @Autowired
+ private MachineService machineService;
+
+
+ /**
+ * 鎵弿鏁版嵁搴撹褰曪紝瓒呮椂鍒欑Щ鍔ㄦ枃浠�
+ */
+ public void moveValidateFiles() {
+ List<Machine> machines = machineService.getEnableMachines();
+ LocalDateTime now = LocalDateTime.now();
+ for (Machine machine : machines) {
+
+ //LocalDateTime earlyTime = now.minusHours(remainHours);
+ List<MachineFile> pendingFiles = this.machineFileService.lambdaQuery()
+ .eq(MachineFile::getDirType,MachineFile.DIR_TYPE_REC)
+ .eq(MachineFile::getExceptionType,MachineFile.EXCEPTION_OK)
+ .eq(MachineFile::getMachineCode,machine.getCode()).list();
+
+
+ for(MachineFile overTimeFile : pendingFiles){
+ try {
+ moveFileToTemp(overTimeFile, machine);
+ }catch(Exception e){
+ log.error("绉诲姩rec鏂囦欢澶辫触:{}",overTimeFile.getName(),e);
+ }
+ }
+
+ }
+
+ }
+
+ /**
+ * 鏂囦欢绉诲姩鍒皌emp
+ * @param overTimeFile
+ */
+ private void moveFileToTemp(MachineFile overTimeFile,Machine machine) throws IOException {
+ String srcFilepath = MachineFileService.getBasePath(machine,overTimeFile.getDirType())+ File.separator+overTimeFile.getName();
+ Path source = Paths.get(srcFilepath);
+ if(!source.toFile().exists()){
+ return;
+ }
+ String targetFilepath = MachineFileService.getBasePath(machine,MachineFile.DIR_TYPE_TEMP)+ File.separator+overTimeFile.getName();
+ Path target = Paths.get(targetFilepath);
+
+ Path targetDir = target.getParent();
+ if (targetDir != null && !Files.exists(targetDir)) {
+ Files.createDirectories(targetDir);
+ }
+
+ // 浣跨敤 REPLACE_EXISTING 閫夐」鏉ヨ鐩栧凡瀛樺湪鐨勬枃浠�
+ Files.move(source, target, StandardCopyOption.REPLACE_EXISTING);
+ }
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveTask.java
index 935f938..b8ec344 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveTask.java
@@ -38,7 +38,8 @@
*/
private static final int DEFAULT_HOUR = 0;
- @Scheduled(cron = "${task.cron.machine_rec_move:0 3 * * * ?}")
+ //@Scheduled(cron = "${task.cron.machine_rec_move:0 3 * * * ?}")
+ /*
public void execute() {
String networkType = paramService.getParamValue(ParamService.NETWORK_TYPE,ParamService.NETWORK_TYPE_SHEMI);
@@ -49,17 +50,13 @@
}
- /**
- * 鎵弿鏁版嵁搴撹褰曪紝瓒呮椂鍒欑Щ鍔ㄦ枃浠�
- */
+
public void moveValidateFiles() {
List<Machine> machines = machineService.getEnableMachines();
LocalDateTime now = LocalDateTime.now();
for (Machine machine : machines) {
int remainHours = machine.getReceiveDirExpiryHours() != null ?machine.getReceiveDirExpiryHours():DEFAULT_HOUR;
- /*if(remainHours == 0){
- continue;
- }*/
+
//LocalDateTime earlyTime = now.minusHours(remainHours);
List<MachineFile> pendingFiles = this.machineFileService.lambdaQuery()
.eq(MachineFile::getDirType,MachineFile.DIR_TYPE_REC)
@@ -79,10 +76,6 @@
}
- /**
- * 鏂囦欢绉诲姩鍒皌emp
- * @param overTimeFile
- */
private void moveFileToTemp(MachineFile overTimeFile,Machine machine) throws IOException {
String srcFilepath = MachineFileService.getBasePath(machine,overTimeFile.getDirType())+ File.separator+overTimeFile.getName();
Path source = Paths.get(srcFilepath);
@@ -100,4 +93,5 @@
// 浣跨敤 REPLACE_EXISTING 閫夐」鏉ヨ鐩栧凡瀛樺湪鐨勬枃浠�
Files.move(source, target, StandardCopyOption.REPLACE_EXISTING);
}
+ */
}
diff --git a/blade-service/blade-mdm/src/test/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckServiceTest.java b/blade-service/blade-mdm/src/test/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckServiceTest.java
new file mode 100644
index 0000000..3094aea
--- /dev/null
+++ b/blade-service/blade-mdm/src/test/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckServiceTest.java
@@ -0,0 +1,16 @@
+package org.springblade.mdm.machinefile.service;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springblade.core.tool.utils.Func;
+
+public class ReceiveFileCheckServiceTest {
+ @Test
+ public void testSplie(){
+ String[] arr = Func.split("LG",":");
+ Assertions.assertEquals(1, arr.length);
+
+ arr = Func.split(null,":");
+ Assertions.assertEquals(0, arr.length);
+ }
+}
diff --git a/doc/sql/mdm/mdm.mysql.all.create.sql b/doc/sql/mdm/mdm.mysql.all.create.sql
index 061cd61..c20ab48 100644
--- a/doc/sql/mdm/mdm.mysql.all.create.sql
+++ b/doc/sql/mdm/mdm.mysql.all.create.sql
@@ -21,7 +21,7 @@
`tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
`code` varchar(100) NOT NULL COMMENT '鏈哄簥缂栧彿',
`name` varchar(100) NOT NULL COMMENT '鏈哄簥鎻忚堪/鍨嬪彿',
- `avatar` varchar(400) DEFAULT NULL COMMENT '鍥剧墖鍦板潃',
+ `equipment_code` varchar(100) DEFAULT NULL COMMENT '璁惧缂栧彿',
`machine_group_code` varchar(255) NOT NULL COMMENT '鎵�灞炴満搴婄粍浠g爜锛�,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_group锛�',
`machine_spec` varchar(40) DEFAULT NULL COMMENT '鏈哄櫒瑙勬牸:01杞﹀簥/02閾e簥,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_spec锛�',
`operator` varchar(100) COMMENT '鎿嶄綔鍛橈紝鏂囨湰褰曞叆',
@@ -202,6 +202,7 @@
`process_name` varchar(20) NULL COMMENT '宸ュ簭鍚嶇О',
`process_no` varchar(100) NULL COMMENT '宸ュ簭鍙�',
`machine_code` varchar(100) DEFAULT NULL COMMENT '璁惧缂栧彿/鏈哄簥缂栧彿',
+ `equipment_code` varchar(100) DEFAULT NULL COMMENT '璁惧缂栧彿',
`drawing_no` varchar(100) NULL COMMENT '闆剁粍浠剁紪鍙�/鍥惧彿',
`process_edition` varchar(40) DEFAULT NULL COMMENT '宸ュ簭鐗堟锛屽崌鐗堝氨鏄彉鏇存敼璇ュ瓧娈碉紝闇�瑕佷繚鐣欏巻鍙茶褰�',
`craft_edition` varchar(40) DEFAULT NULL COMMENT '宸ヨ壓鐗堟',
@@ -211,7 +212,8 @@
`err_msg` varchar(200) NULL COMMENT '閿欒鎴栬�呮彁绀轰俊鎭�',
`process_instance_id` varchar(64) NULL COMMENT '鍏宠仈鐨勬祦绋嬪疄渚媔d锛屾祦绋嬪彂璧峰悗濉厖',
`program_no` varchar(20) NULL COMMENT '鏁版帶绋嬪簭缂栧彿锛屾祦绋嬪彂璧峰悗濉厖',
- `mes_task_id` varchar(100) NULL COMMENT 'MES浠诲姟鍞竴鏍囪瘑',
+ `operation_id` varchar(100) NULL COMMENT '宸ュ簭鍞竴鐮�(MES鍙戦��)',
+ `process_card` varchar(40) NULL COMMENT '杩囩▼鍗″彿锛坢es鎻愪緵锛�',
`inspector` varchar(40) NULL COMMENT '妫�楠屽憳锛坢es鎻愪緵锛�',
`check_time` datetime DEFAULT NULL COMMENT '妫�楠屾椂闂�',
`operator` varchar(40) NULL COMMENT '鎿嶄綔鑰咃紙mes鎻愪緵锛�',
@@ -385,8 +387,6 @@
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='宸ユ帶缃戞満搴婃枃浠朵慨鏀瑰巻鍙�';
-
-
DROP TABLE IF EXISTS `mdm_file_send_record`;
CREATE TABLE `mdm_file_send_record` (
`id` bigint NOT NULL,
@@ -420,3 +420,35 @@
PRIMARY KEY (`drawing_no`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='闆剁粍浠跺彿涓嬫媺鏁版嵁';
+
+DROP TABLE IF EXISTS `mdm_program_on_machine`;
+CREATE TABLE `mdm_program_on_machine` (
+ `id` bigint NOT NULL,
+ `tenant_id` varchar(6) DEFAULT NULL COMMENT '鎵�灞炵鎴�',
+ `drawing_no` varchar(100) NULL COMMENT '闆剁粍浠剁紪鍙�/鍥惧彿',
+ `process_no` varchar(100) NULL COMMENT '宸ュ簭鍙�',
+ `process_edition` varchar(40) DEFAULT NULL COMMENT '宸ュ簭鐗堟',
+ `machine_code` varchar(100) DEFAULT NULL COMMENT '璁惧缂栧彿/鏈哄簥缂栧彿',
+ `process_instance_id` varchar(64) DEFAULT NULL COMMENT '娴佺▼瀹炰緥id',
+ `status` int DEFAULT NULL COMMENT '涓氬姟鐘舵��',
+ `create_dept` bigint DEFAULT NULL COMMENT '鍒涘缓鍗曚綅',
+ `is_deleted` int DEFAULT NULL,
+ `create_time` datetime DEFAULT NULL COMMENT '鍒涘缓鏃堕棿',
+ `create_user` bigint DEFAULT NULL COMMENT '鍒涘缓浜�',
+ `update_time` datetime DEFAULT NULL COMMENT '鏇存柊鏃堕棿',
+ `update_user` bigint DEFAULT NULL COMMENT '鏇存柊浜�',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='鐜板満缂栫▼璁板綍';
+
+DROP TABLE IF EXISTS `mdm_mes_sync`;
+CREATE TABLE `mdm_mes_sync` (
+ `id` bigint NOT NULL,
+ `operation_id` varchar(100) NULL COMMENT '宸ュ簭鍞竴鐮�',
+ `program_no` varchar(100) NOT NULL COMMENT '绋嬪簭缂栧彿',
+ `cured_time` datetime NOT NULL COMMENT '鍥哄寲鏃堕棿',
+ `try_times` int NOT NULL DEFAULT 0 COMMENT '閲嶈瘯娆℃暟',
+ `status` int NOT NULL COMMENT '鐘舵�侊細1:鍒濆鍏ュ簱; 2:鍚屾鎴愬姛;3:鍚屾澶辫触',
+ `create_time` datetime NOT NULL COMMENT '鍒涘缓鏃堕棿',
+ `update_time` datetime NOT NULL COMMENT '鏇存柊鏃堕棿',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='鍚慚ES鍥炰紶鏁版嵁';
--
Gitblit v1.9.3