update 调整流程定义图片预览

This commit is contained in:
songgaoshuai 2023-08-25 10:26:49 +08:00
parent 73cf4e2a19
commit 313841839b
3 changed files with 10 additions and 39 deletions

View File

@ -1,6 +1,5 @@
package org.dromara.workflow.controller; package org.dromara.workflow.controller;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -56,11 +55,10 @@ public class ActProcessDefinitionController extends BaseController {
* 查看流程定义图片 * 查看流程定义图片
* *
* @param processDefinitionId 流程定义id * @param processDefinitionId 流程定义id
* @param response 响应
*/ */
@GetMapping("/processDefinitionImage/{processDefinitionId}") @GetMapping("/processDefinitionImage/{processDefinitionId}")
public void processDefinitionImage(@PathVariable String processDefinitionId, HttpServletResponse response) { public R<String> processDefinitionImage(@PathVariable String processDefinitionId) {
iActProcessDefinitionService.processDefinitionImage(processDefinitionId, response); return R.ok("操作成功", iActProcessDefinitionService.processDefinitionImage(processDefinitionId));
} }
/** /**

View File

@ -1,6 +1,5 @@
package org.dromara.workflow.service; package org.dromara.workflow.service;
import jakarta.servlet.http.HttpServletResponse;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.workflow.domain.bo.ProcessDefinitionBo; import org.dromara.workflow.domain.bo.ProcessDefinitionBo;
import org.dromara.workflow.domain.vo.ProcessDefinitionVo; import org.dromara.workflow.domain.vo.ProcessDefinitionVo;
@ -34,9 +33,9 @@ public interface IActProcessDefinitionService {
* 查看流程定义图片 * 查看流程定义图片
* *
* @param processDefinitionId 流程定义id * @param processDefinitionId 流程定义id
* @param response 响应 * @return 结果
*/ */
void processDefinitionImage(String processDefinitionId, HttpServletResponse response); String processDefinitionImage(String processDefinitionId);
/** /**
* 查看流程定义xml文件 * 查看流程定义xml文件

View File

@ -1,15 +1,15 @@
package org.dromara.workflow.service.impl; package org.dromara.workflow.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
@ -134,38 +134,12 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer
* 查看流程定义图片 * 查看流程定义图片
* *
* @param processDefinitionId 流程定义id * @param processDefinitionId 流程定义id
* @param response 响应
*/ */
@SneakyThrows
@Override @Override
public void processDefinitionImage(String processDefinitionId, HttpServletResponse response) { public String processDefinitionImage(String processDefinitionId) {
InputStream inputStream = null; InputStream inputStream = repositoryService.getProcessDiagram(processDefinitionId);
try { return Base64.encode(IOUtils.toByteArray(inputStream));
// 设置页面不缓存
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();
}
}
}
} }
/** /**