From edecbd9cb1b31ded46b8592634780d999db6b6f0 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 22 九月 2025 14:19:21 +0800
Subject: [PATCH] 文件下发,回传文件处理的查看下载
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java | 5 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java | 15 +++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.java | 8 +-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/FileSendRecordService.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java | 3
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.xml | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/FileSendRecordVO.java | 3
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/OssFileCommonService.java | 85 +++++++++++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java | 55 +++++++++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/FileSendRecordController.java | 11 ++
11 files changed, 180 insertions(+), 11 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java
new file mode 100644
index 0000000..7598af1
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java
@@ -0,0 +1,55 @@
+package org.springblade.mdm.commons.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.commons.service.OssFileCommonService;
+import org.springblade.mdm.commons.service.ParamService;
+import org.springblade.mdm.commons.vo.RemindVO;
+import org.springblade.mdm.flow.service.FlowBusinessService;
+import org.springblade.mdm.flow.vo.FlowVO;
+import org.springblade.mdm.flow.vo.TodoQueryVO;
+import org.springblade.mdm.program.service.NcProgramApprovedService;
+import org.springblade.mdm.program.vo.NcProgramExportDncPageVO;
+import org.springblade.mdm.program.vo.NcProgramExportDncQueryVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/ossfile")
+@Tag(name = "浠诲姟鎻愰啋", description = "浠诲姟鎻愰啋")
+public class OssFileController {
+
+ @Autowired
+ private NcProgramApprovedService ncProgramApprovedService;
+ @Autowired
+ private OssFileCommonService ossFileCommonService;
+ @Autowired
+ private ParamService paramService;
+ /**
+ * 寰呭姙浠诲姟鍒楄〃椤�
+ */
+ @GetMapping("file-content")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "寰呭姙浠诲姟鏁伴噺鏌ヨ", description = "寰呭姙浠诲姟鏁伴噺鏌ヨ")
+ public R<String> fileContent(String ossFileName) {
+ if(StringUtils.isBlank(ossFileName)){
+ throw new RuntimeException("鏂囦欢鍚嶄负绌�");
+ }
+ return R.data(ossFileCommonService.getOssFileContent(ossFileName));
+ }
+
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/OssFileCommonService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/OssFileCommonService.java
new file mode 100644
index 0000000..e906d7e
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/OssFileCommonService.java
@@ -0,0 +1,85 @@
+
+package org.springblade.mdm.commons.service;
+
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.flowable.engine.RuntimeService;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BizServiceImpl;
+import org.springblade.core.oss.OssTemplate;
+import org.springblade.core.oss.model.BladeFile;
+import org.springblade.core.tool.utils.UrlUtil;
+import org.springblade.mdm.flow.entity.FlowProgramFile;
+import org.springblade.mdm.flow.mapper.FlowProgramFileMapper;
+import org.springblade.mdm.flow.service.FlowCommonService;
+import org.springblade.mdm.flow.service.FlowProgramProperties;
+import org.springblade.mdm.flow.vo.ProgramUploadVO;
+import org.springblade.mdm.program.service.NcNodeService;
+import org.springblade.mdm.utils.FileContentUtil;
+import org.springblade.mdm.utils.ProgramFileNameCheckUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * OSS鏂囦欢閫氱敤鏈嶅姟锛屽寘鎷笅杞斤紝杩斿洖鏂囦欢鍐呭绛�
+ *
+ * @author yangys
+ */
+@Slf4j
+@Service
+public class OssFileCommonService{
+ @Autowired
+ private OssTemplate ossTemplate;
+
+
+ /**
+ * 鑾峰彇鏂囦欢鍐呭
+ * @param ossFileName 鏂囦欢id
+ * @return 鏂囦欢鍐呭鏂囨湰
+ */
+ public String getOssFileContent(String ossFileName) {
+ String result;
+ try (InputStream inputStream = ossTemplate.statFileStream(ossFileName)) {
+ ByteArrayInputStream bos = new ByteArrayInputStream(inputStream.readAllBytes());
+ boolean isText = StringUtils.endsWithIgnoreCase(ossFileName,".txt") || StringUtils.endsWithIgnoreCase(ossFileName,".nc")|| StringUtils.endsWithIgnoreCase(ossFileName,".xml");
+ if(!isText){
+ isText= FileContentUtil.isTextFile(bos);
+ }
+ if(isText){
+ bos.reset();
+ result = FileContentUtil.getContentFromStream(bos);
+ }else{
+ result = "<闈炴枃鏈枃浠�>";
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ return result;
+ }
+
+ /**
+ * 浠巓ss涓嬭浇鏂囦欢
+ * @param ossFileName oss鐨勬枃浠跺悕
+ * @param downloadFileName 鎸囧畾涓嬭浇鐨勬枃浠跺悕
+ * @param response http鐩稿簲
+ * @throws IOException 鎿嶄綔鏂囦欢IO 寮傚父
+ */
+ public void download(String ossFileName, String downloadFileName,HttpServletResponse response) throws IOException {
+ response.setHeader("Content-Disposition", "attachment; filename="+ UrlUtil.encode(downloadFileName));
+ response.setContentType("application/octet-stream");
+ try(InputStream ins = ossTemplate.statFileStream(ossFileName);){
+ IOUtils.copy(ins,response.getOutputStream());
+ }
+ }
+
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/FileSendRecordController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/FileSendRecordController.java
index 979302f..54ad0a4 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/FileSendRecordController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/FileSendRecordController.java
@@ -14,6 +14,8 @@
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.basesetting.producedivision.entity.MdmDept;
import org.springblade.mdm.basesetting.producedivision.service.MdmDeptService;
+import org.springblade.mdm.commons.service.OssFileCommonService;
+import org.springblade.mdm.machinefile.entity.FileSendRecord;
import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.machinefile.service.FileSendRecordService;
import org.springblade.mdm.machinefile.service.MachineFileChangeHisService;
@@ -43,7 +45,7 @@
@Slf4j
public class FileSendRecordController {
@Autowired
- private MdmDeptService mdmDeptService;
+ private OssFileCommonService ossFileCommonService;
@Autowired
private FileSendRecordService fileSendRecordService;
@@ -56,6 +58,13 @@
return R.data(fileSendRecordService.pageQuery(query));
}
+ @GetMapping("/download-by-id")
+ @Operation(summary = "涓嬪彂鏂囦欢璁板綍鍒楄〃", description = "涓嬪彂鏂囦欢璁板綍鍒楄〃")
+ public void downloadByRecordId(Long id,HttpServletResponse response) throws IOException {
+ FileSendRecord record = fileSendRecordService.getById(id);
+ ossFileCommonService.download(record.getOssName(),record.getName(),response);
+ }
+
@GetMapping("/export-excel")
@Operation(summary = "涓嬪彂鏂囦欢璁板綍琛ㄥ鍑�", description = "涓嬪彂鏂囦欢璁板綍琛ㄥ鍑�")
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java
index 98a3086..a8c74b5 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java
@@ -16,12 +16,16 @@
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.UrlUtil;
+import org.springblade.mdm.commons.service.OssFileCommonService;
+import org.springblade.mdm.machinefile.entity.FileSendRecord;
+import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
import org.springblade.mdm.machinefile.service.MachineFileService;
import org.springblade.mdm.machinefile.service.MachineAcceptedFileService;
import org.springblade.mdm.machinefile.service.NcProgramExportInnerService;
import org.springblade.mdm.machinefile.vo.MachineBackFileHandleExcelVO;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
@@ -34,7 +38,7 @@
@RequestMapping("/machinefile/filehandle")
@Tag(name = "鏈哄簥鍥炰紶绋嬪簭澶勭悊", description = "鏈哄簥鍥炰紶绋嬪簭澶勭悊")
public class MachineAcceptedFileHandleController {
-
+ private final OssFileCommonService ossFileCommonService;
private final MachineAcceptedFileService acceptedFileService;
private final NcProgramExportInnerService ncProgramExportInnerService;
/**
@@ -45,6 +49,13 @@
public R<IPage<MachineAcceptedFileVO>> page(MachineAcceptedFileHandleQueryVO query) {
IPage<MachineAcceptedFileVO> pages = acceptedFileService.handlePageQuery(query);
return R.data(pages);
+ }
+
+ @GetMapping("/download-by-id")
+ @Operation(summary = "涓嬪彂鏂囦欢璁板綍鍒楄〃", description = "涓嬪彂鏂囦欢璁板綍鍒楄〃")
+ public void downloadByRecordId(Long id,HttpServletResponse response) throws IOException {
+ MachineAcceptedFile acceptedFile = acceptedFileService.getById(id);
+ ossFileCommonService.download(acceptedFile.getOssName(),acceptedFile.getName(),response);
}
@GetMapping("export-to-inner")
@@ -102,7 +113,7 @@
txt = "鍥哄寲";
break;
case 3:
- txt = "鍋忕";
+ txt = "涓存椂鏇存敼鍗�";
break;
default:
txt = "鏈煡";
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java
index 2b1287e..3e7ea9e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java
@@ -30,6 +30,11 @@
* 鏂囦欢瀛楄妭鏁�
*/
private Long fileSize;
+
+ /**
+ * 瀵硅薄瀛樺偍鏂囦欢鍚嶏紝澶囨煡
+ */
+ private String ossName;
/**
* 鐢熸垚鏂囦欢澶у皬鐨勬樉绀烘枃鏈�
* @return 鏄剧ず鏂囨湰
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.java
index a19ed38..fcf6a27 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.java
@@ -9,10 +9,10 @@
public interface FileSendRecordMapper extends BladeMapper<FileSendRecord> {
/**
- * 鍒嗛〉鎷嗙嚎鍛㈣褰�
- * @param page
- * @param query
- * @return
+ * 鏂囦欢涓嬪彂璁板綍鍒嗛〉鏌ヨ
+ * @param page 鍒嗛〉淇℃伅
+ * @param query 鏌ヨ鍙傛暟
+ * @return 鍒嗛〉鏁版嵁
*/
IPage<FileSendRecordVO> pageQuery(IPage<FileSendRecordVO> page, @Param("query")FileSendRecordQueryVO query);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.xml
index 73756bf..2e8cc55 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.xml
@@ -13,7 +13,7 @@
<!--鏂囦欢璁板綍鏌ヨ-->
<select id="pageQuery" resultType="org.springblade.mdm.machinefile.vo.FileSendRecordVO">
- select f.id,f.name,f.machine_code,f.file_size,f.create_time,f.update_time,u.name create_user_name
+ select f.id,f.name,f.machine_code,f.file_size,f.oss_name,f.create_time,f.update_time,u.name create_user_name
from mdm_file_send_record f left join blade_user u on f.create_user=u.id
<where>
f.is_deleted=0
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml
index 87328ba..04771c6 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml
@@ -22,7 +22,7 @@
-->
<!--鏈哄簥鍥炰紶绋嬪簭澶勭悊鍒嗛〉-->
<select id="handlePageQuery" resultType="org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO">
- select f.id,f.name,f.create_time,m.code machine_code, m.name machine_name,f.create_time,mf.program_status,mf.file_create_time,f.export_time,f.create_time
+ select f.id,f.name,f.oss_name,f.create_time,m.code machine_code, m.name machine_name,f.create_time,mf.program_status,mf.file_create_time,f.export_time,f.create_time
from mdm_machine_accepted_file f
left join mdm_machine_file mf on f.machine_file_id=mf.id
left join mdm_machine m on mf.machine_code=m.code
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/FileSendRecordService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/FileSendRecordService.java
index 934da5c..97d2c9b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/FileSendRecordService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/FileSendRecordService.java
@@ -26,4 +26,6 @@
public IPage<FileSendRecordVO> pageQuery(FileSendRecordQueryVO query) {
return baseMapper.pageQuery(Condition.getPage(query),query);
}
+
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/FileSendRecordVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/FileSendRecordVO.java
index 470158a..c75a0dd 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/FileSendRecordVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/FileSendRecordVO.java
@@ -16,5 +16,6 @@
@Schema(description = "鏈哄簥缂栧彿/鍥炰紶鏈哄簥")
private String machineCode;
-
+ @Schema(description = "oss鏂囦欢鍚�")
+ private String ossName;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java
index d26857c..294ee7e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java
@@ -23,6 +23,7 @@
private Date fileCreateTime;
@Schema(description = "瀵煎嚭鏃堕棿")
private Date exportTime;
-
+ @Schema(description = "oss鏂囦欢鍚�")
+ private String ossName;
}
--
Gitblit v1.9.3