yangys
2025-09-22 edecbd9cb1b31ded46b8592634780d999db6b6f0
文件下发,回传文件处理的查看下载
已添加2个文件
已修改9个文件
191 ■■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/OssFileCommonService.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/FileSendRecordController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/FileSendRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/FileSendRecordService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/FileSendRecordVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
    }
}
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;
    }
    /**
     * ä»Žoss下载文件
     * @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());
        }
    }
}
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 = "下发文件记录表导出")
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 = "未知";
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 æ˜¾ç¤ºæ–‡æœ¬
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);
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
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
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);
    }
}
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;
}
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;
}