diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java index 40c159583..6347cd958 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java @@ -1,6 +1,5 @@ package org.dromara.workflow.controller; -import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import lombok.RequiredArgsConstructor; @@ -56,11 +55,10 @@ public class ActProcessDefinitionController extends BaseController { * 查看流程定义图片 * * @param processDefinitionId 流程定义id - * @param response 响应 */ @GetMapping("/processDefinitionImage/{processDefinitionId}") - public void processDefinitionImage(@PathVariable String processDefinitionId, HttpServletResponse response) { - iActProcessDefinitionService.processDefinitionImage(processDefinitionId, response); + public R processDefinitionImage(@PathVariable String processDefinitionId) { + return R.ok("操作成功", iActProcessDefinitionService.processDefinitionImage(processDefinitionId)); } /** diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessDefinitionService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessDefinitionService.java index c3027a60a..5f5f41a44 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessDefinitionService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IActProcessDefinitionService.java @@ -1,6 +1,5 @@ package org.dromara.workflow.service; -import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.workflow.domain.bo.ProcessDefinitionBo; import org.dromara.workflow.domain.vo.ProcessDefinitionVo; @@ -34,9 +33,9 @@ public interface IActProcessDefinitionService { * 查看流程定义图片 * * @param processDefinitionId 流程定义id - * @param response 响应 + * @return 结果 */ - void processDefinitionImage(String processDefinitionId, HttpServletResponse response); + String processDefinitionImage(String processDefinitionId); /** * 查看流程定义xml文件 diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java index 378425e46..132cce17d 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java @@ -1,15 +1,15 @@ package org.dromara.workflow.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.ObjectUtil; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; -import jakarta.servlet.ServletOutputStream; -import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import org.apache.commons.io.IOUtils; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.StringUtils; @@ -134,38 +134,12 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer * 查看流程定义图片 * * @param processDefinitionId 流程定义id - * @param response 响应 */ + @SneakyThrows @Override - public void processDefinitionImage(String processDefinitionId, HttpServletResponse response) { - InputStream inputStream = null; - try { - // 设置页面不缓存 - response.setHeader("Pragma", "no-cache"); - response.addHeader("Cache-Control", "must-revalidate"); - response.addHeader("Cache-Control", "no-cache"); - response.addHeader("Cache-Control", "no-store"); - response.setDateHeader("Expires", 0); - inputStream = repositoryService.getProcessDiagram(processDefinitionId); - // 响应相关图片 - response.setContentType("image/png"); - - byte[] bytes = IOUtils.toByteArray(inputStream); - ServletOutputStream outputStream = response.getOutputStream(); - outputStream.write(bytes); - outputStream.flush(); - outputStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (inputStream != null) { - try { - inputStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } + public String processDefinitionImage(String processDefinitionId) { + InputStream inputStream = repositoryService.getProcessDiagram(processDefinitionId); + return Base64.encode(IOUtils.toByteArray(inputStream)); } /**