yangys
2025-12-03 b4d10ff7535002dddb63a0b28ddb37fee7ed1e9d
增加pdf,xlsx,docx文件预览功能
已修改2个文件
25 ■■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeHisController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java
@@ -73,7 +73,7 @@
    @GetMapping("file-link")
    @ApiOperationSupport(order = 3)
    @Operation(summary = "获取文件字节", description = "获取文件字节")
    public R<String> fileLink(String ossFileName, HttpServletResponse response) throws IOException {
    public R<String> fileLink(String ossFileName) throws IOException {
        if(StringUtils.isBlank(ossFileName)){
            throw new RuntimeException("文件名为空");
        }
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeHisController.java
@@ -9,9 +9,11 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.service.FlowProgramFileService;
import org.springblade.mdm.flow.service.TaskDispatchService;
import org.springblade.mdm.program.entity.NcNode;
@@ -24,6 +26,7 @@
import org.springblade.mdm.program.vo.NcNodeQueryVO;
import org.springblade.mdm.program.vo.NcNodeVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
@@ -43,7 +46,7 @@
@Tag(name = "程序节点", description = "程序节点")
@Slf4j
public class NcNodeHisController {
    private final NcNodeService ncNodeService;
    private final OssTemplate ossTemplate;
    private final NcNodeHisService nodeHisService;
    private final FlowProgramFileService flowProgramFileService;
@@ -99,6 +102,24 @@
        }
    }
    @GetMapping("/link-by-nodeid")
    @Operation(summary = "根据节点获取文件内容", description = "仅限文本格式的内容,二进制文件将返回空串")
    public R<String> fileLinkByNodeId(@Parameter(description = "节点id") Long nodeId) {
        try {
            NcNodeHis node = this.nodeHisService.getById(nodeId);
            FlowProgramFile flowFile = this.flowProgramFileService.getById(node.getFlowProgramFileId());
            if(node.getFlowProgramFileId() != null || flowFile == null) {
                return R.data(this.ossTemplate.fileLink(flowFile.getOssName()));
            }else{
                return R.data("");
            }
        }catch(Exception e) {
            log.error("获取文件内容失败",e);
            return R.fail(e.getMessage());
        }
    }
    @GetMapping("/download-by-nodeid")
    @Operation(summary = "下载节点对应的文件", description = "下载节点对应的文件")
    public void downloadByNodeId(@Parameter(description = "节点id") Long nodeId, HttpServletResponse response) throws IOException {