From 79e81a02076cdd1e828eb06029cd51eb37522f42 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 18 九月 2025 09:11:37 +0800
Subject: [PATCH] 首页下载问题修复
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeHisController.java | 14 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java | 3
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java | 8 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java | 46 +++++++++++++--
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java | 12 +---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeHisService.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java | 12 ----
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java | 4 -
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java | 15 +---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java | 11 +++
11 files changed, 83 insertions(+), 48 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
index 64ac2f0..86fcd99 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -17,11 +17,9 @@
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.service.NcNodeAutoCreateService;
import org.springblade.mdm.program.service.NcNodeService;
-import org.springblade.mdm.program.service.NcProgramApprovedService;
import org.springblade.mdm.program.service.ProgramAnnotationService;
import org.springblade.mdm.program.service.programannotation.*;
import org.springblade.mdm.utils.ProgramFileNameParser;
-import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -188,7 +186,7 @@
if(annoProps == null){
annoProps = AnnotationProperties.getDefault();
}*/
- InputStream finishedStream = annoProcessor.setFilenameAnnotation(filename,byteInputStream);
+ InputStream finishedStream = annoProcessor.putFilenameAnnotation(filename,byteInputStream);
//InputStream finishedStream = AnnotationUtil.setAnnotationAndGetInputStream(byteInputStream, "GH", annoProps.getStatusLineIndex(), controlSystem, annoDictList);
try(finishedStream) {
finishedStream.reset();
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java
index e59e601..2b28b62 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java
@@ -4,16 +4,25 @@
import jakarta.servlet.ServletOutputStream;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
+import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.program.entity.NcProgramExchange;
import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
+import org.springblade.mdm.program.service.ProgramAnnotationService;
+import org.springblade.mdm.program.service.programannotation.*;
+import org.springblade.mdm.utils.FileContentUtil;
import org.springblade.mdm.utils.ProgramFileNameParser;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
@@ -32,8 +41,10 @@
public class NcProgramExportInnerService extends BizServiceImpl<NcProgramExchangeMapper, NcProgramExchange> {
private final MachineAcceptedFileService machineAcceptedService;
private final OssTemplate ossTemplate;
-
-
+ private final MachineFileService machineFileService;
+ private final MachineService machineService;
+ private final MachineAnnotationConfig annoConfig;
+ private final ProgramAnnotationService programAnnotationService;
/**
* 瀵煎嚭鍒版秹瀵嗙綉
* @param acceptedFileIds
@@ -49,13 +60,13 @@
Map<String,List<MachineAcceptedFile>> map = acceptedFiles.stream()
.collect(Collectors.groupingBy(s -> ProgramFileNameParser.parseProgramName(s.getName()).logicProgramName()));
- List<MachineAcceptedFile> exportedFiles = new ArrayList<>();
for (Map.Entry<String, List<MachineAcceptedFile>> entry : map.entrySet()) {
String programName = entry.getKey();
List<MachineAcceptedFile> acceptedFileList = entry.getValue();
for (MachineAcceptedFile acceptedFile : acceptedFileList) {
try(InputStream ins = ossTemplate.statFileStream(acceptedFile.getOssName()) ) {
- addInputStreamToZip(zipOut,ins , programName + "/" + acceptedFile.getName());
+ MachineFile machineFile = machineFileService.getById(acceptedFile.getMachineFileId());
+ addInputStreamToZip(zipOut,ins , programName + "/" + acceptedFile.getName(),acceptedFile.getName(),machineFile.getMachineCode());
}
acceptedFile.setExportTime(DateUtil.now());
}
@@ -69,21 +80,42 @@
}
- public void addInputStreamToZip(ZipOutputStream zipOut, InputStream inputStream, String entryName)
+ public void addInputStreamToZip(ZipOutputStream zipOut, InputStream inputStream, String entryName,String filename,String machineCode)
throws IOException {
// 鍒涘缓鏂扮殑 ZIP 鏉$洰
ZipEntry zipEntry = new ZipEntry(entryName);
zipOut.putNextEntry(zipEntry);
-
+ InputStream insAdded = setAnnotations(inputStream,filename,machineCode);
// 灏嗚緭鍏ユ祦鍐欏叆 ZIP 杈撳嚭娴�
byte[] buffer = new byte[1024];
int length;
- while ((length = inputStream.read(buffer)) >= 0) {
+ while ((length = insAdded.read(buffer)) >= 0) {
zipOut.write(buffer, 0, length);
}
// 鍏抽棴褰撳墠鏉$洰
zipOut.closeEntry();
}
+
+ InputStream setAnnotations(InputStream inputStream,String filename,String machineCode) throws IOException {
+ Machine machine = this.machineService.getByCode(machineCode);
+ AnnotationProcessor annoProcessor = ProcessorHelper.getProcessor(machine.getControlSystem(),annoConfig);
+
+ AnnotationData annoData = new AnnotationData();
+ annoData.setFilename(filename);
+ annoData.setSendPath(machine.getProgSendDir());
+
+ AnnotationProperties annoProps = annoProcessor.getAnnotationProperties();
+
+ ByteArrayInputStream bais = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
+ String statusLine = FileContentUtil.readLineAt(bais,annoProps.getStatusLineIndex());
+ String status = programAnnotationService.removeAnnotation(machine.getControlSystem(),statusLine);
+ if(StringUtils.equalsAny(status,"SQ","GH","PL")){
+
+ }
+ bais.reset();
+ annoData.setProgramStatus("3");
+ return annoProcessor.putAnnotation(annoData,bais);
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
index 30494ee..c252cb1 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
@@ -187,17 +187,5 @@
- @GetMapping("/download-by-nodeid")
- @Operation(summary = "涓嬭浇鑺傜偣瀵瑰簲鐨勬枃浠�", description = "涓嬭浇鑺傜偣瀵瑰簲鐨勬枃浠�")
- public void downloadByNodeId(@Parameter(description = "鑺傜偣id") Long nodeId, HttpServletResponse response) throws IOException {
- NcNode ncnode = ncNodeService.getById(nodeId);
- if(ncnode.getFlowProgramFileId() != null) {
- flowProgramFileService.download(ncnode.getFlowProgramFileId(),response);
- }else{
- log.error("闈炴枃浠惰妭鐐�");
- throw new ServiceException("鑺傜偣鏃犳枃浠秈d");
- }
-
- }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeHisController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeHisController.java
index 4bcfc61..b3863d5 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeHisController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeHisController.java
@@ -98,4 +98,18 @@
return R.fail(e.getMessage());
}
}
+
+ @GetMapping("/download-by-nodeid")
+ @Operation(summary = "涓嬭浇鑺傜偣瀵瑰簲鐨勬枃浠�", description = "涓嬭浇鑺傜偣瀵瑰簲鐨勬枃浠�")
+ public void downloadByNodeId(@Parameter(description = "鑺傜偣id") Long nodeId, HttpServletResponse response) throws IOException {
+
+ NcNodeHis node = nodeHisService.getById(nodeId);
+ if(node.getFlowProgramFileId() != null) {
+ flowProgramFileService.download(node.getFlowProgramFileId(),response);
+ }else{
+ log.error("闈炴枃浠惰妭鐐�");
+ throw new ServiceException("鑺傜偣鏃犳枃浠秈d");
+ }
+
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeHisService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeHisService.java
index 0556077..bc9dd16 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeHisService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeHisService.java
@@ -37,7 +37,7 @@
* @param time
*/
public void mergeNodeToHisGeTime(Date time) {
- Date okTime = DateUtil.minusSeconds(time,10);
+ Date okTime = DateUtil.minusSeconds(time,10);//閬垮厤mysql鏁版嵁搴撴椂闂翠笉绮剧‘瀵艰嚧涓嶈兘鍚屾
List<NcNode> nodes = ncNodeService.lambdaQuery().ge(NcNode::getUpdateTime,okTime)
.in(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE,NcNode.TYPE_PROGRAM_FILE).list();
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 1248513..f9ce583 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
@@ -26,7 +26,6 @@
import org.springblade.mdm.program.service.programannotation.MachineAnnotationConfig;
import org.springblade.mdm.program.service.programannotation.ProcessorHelper;
import org.springblade.system.feign.IDictClient;
-import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.stereotype.Service;
import java.io.*;
@@ -131,7 +130,7 @@
annoData.setProgramStatus(status);
annoData.setDeviation(programPackageNode.getDeviation());
annoData.setFilename(programFile.getName());
- InputStream addedInsFinal = annoProcessor.setAnnotation(annoData,inputStream);
+ InputStream addedInsFinal = annoProcessor.putAnnotation(annoData,inputStream);
addedInsFinal.reset();
/*
InputStream addedInsFinal;
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 4574869..4eee91f 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
@@ -20,7 +20,7 @@
protected AnnotationProperties annotationProperties;
@Override
- public InputStream setFilenameAnnotation(String fileName, InputStream inputStream) throws IOException {
+ public InputStream putFilenameAnnotation(String fileName, InputStream inputStream) throws IOException {
List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList();
ByteArrayInputStream bais = new ByteArrayInputStream(com.qiniu.util.IOUtils.toByteArray(inputStream));
@@ -39,7 +39,7 @@
}
@Override
- public InputStream setAnnotation(AnnotationData annoData,InputStream inputStream) throws IOException {
+ public InputStream putAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException {
List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList();
InputStream finishedStream;
@@ -82,6 +82,10 @@
this.annotationProperties= annotationProperties;
}
+ @Override
+ public AnnotationProperties getAnnotationProperties(){
+ return annotationProperties;
+ }
public abstract String getControlSystem();
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java
index 224f6f8..5a1bb90 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java
@@ -1,15 +1,7 @@
package org.springblade.mdm.program.service.programannotation;
-import org.apache.commons.lang3.StringUtils;
-import org.springblade.core.log.exception.ServiceException;
-import org.springblade.mdm.program.service.ProgramAnnotationService;
-import org.springblade.mdm.program.vo.ProgramAnnotation;
-import org.springblade.system.pojo.entity.DictBiz;
-
import java.io.IOException;
import java.io.InputStream;
-import java.util.List;
-import java.util.Optional;
public interface AnnotationProcessor {
@@ -17,7 +9,10 @@
void setControlSystem(String controlSystemDictVal);
void setAnnotationProperties(AnnotationProperties annotationProperties);
String getControlSystem();
- InputStream setAnnotation(AnnotationData annoData,InputStream inputStream) throws IOException;
+ InputStream putAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException;
- InputStream setFilenameAnnotation(String programName,InputStream inputStream) throws IOException;
+ InputStream putFilenameAnnotation(String programName, InputStream inputStream) throws IOException;
+
+ AnnotationProperties getAnnotationProperties();
+ //InputStream puttSendPathAnnotation(String programName, InputStream inputStream) throws IOException;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java
index 083dd1a..26edd95 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/DefaultProcessor.java
@@ -1,17 +1,11 @@
package org.springblade.mdm.program.service.programannotation;
-import com.qiniu.util.IOUtils;
-import org.apache.commons.io.FilenameUtils;
import org.springblade.mdm.program.service.ProgramAnnotationService;
-import org.springblade.mdm.utils.FileContentUtil;
-import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.List;
@Component("defaultProcessor")
@@ -23,10 +17,10 @@
@Override
- public InputStream setAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException {
- InputStream insAfter = super.setFilenameAnnotation(annoData.getFilename(),inputStream);
+ public InputStream putAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException {
+ InputStream insAfter = super.putFilenameAnnotation(annoData.getFilename(),inputStream);
- return super.setAnnotation(annoData, insAfter);
+ return super.putAnnotation(annoData, insAfter);
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java
index 7f1d4c8..76e468e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/FanucProcessor.java
@@ -22,7 +22,7 @@
private Pattern PATTERN = Pattern.compile("^[oO]\\d{4}");
private final int O_LINE = 1;
@Override
- public InputStream setAnnotation(AnnotationData annoData,InputStream inputStream) throws IOException {
+ public InputStream putAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException {
//鍦∣0001 杩欑鏂囧瓧鍚庨潰澧炲姞鏂囦欢鍚嶏紙涓嶅甫鎵╁睍鍚嶏級
ByteArrayInputStream bais = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
String line = FileContentUtil.readLineAt(bais,O_LINE);
@@ -36,7 +36,7 @@
}else{
ins1 = bais;
}
- return super.setAnnotation(annoData, ins1);
+ return super.putAnnotation(annoData, ins1);
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
index f76b704..dbb5551 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
@@ -16,6 +16,7 @@
import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.machinefile.service.MachineFileScanService;
import org.springblade.mdm.program.entity.NcNode;
+import org.springblade.mdm.program.service.NcNodeHisService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springblade.mdm.program.service.ProgramAnnotationService;
import org.springblade.mdm.task.InternalEmailNotifyTask;
@@ -32,6 +33,7 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Date;
import java.util.List;
@Slf4j
@@ -57,6 +59,9 @@
private WIthdrawService withdrawService;
@Autowired
private InternalEmailNotifyTask notifyTask;
+
+ @Autowired
+ private NcNodeHisService nodeHisService;
/**
* 鏂板
*/
@@ -127,4 +132,10 @@
SOAPException s;
notifyTask.execute();
}
+
+ @GetMapping("/movehis")
+ public void moveHis(Date time){
+ //format:?time=2025-09-16%2010:11:10
+ nodeHisService.mergeNodeToHisGeTime(time);
+ }
}
--
Gitblit v1.9.3