Commit 9bbeb93b2e8f6a3baf4fd883199e9f3db8d6b99f

Authored by yunlong.li
1 parent 3c3f46ee

fix:[工作流] 返回对应实例的流程图

yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/controller/workflow/TaskController.java
... ... @@ -59,7 +59,7 @@ public class TaskController {
59 59 }
60 60  
61 61 /**
62   - * 返回高亮的流转进程
  62 + * 返回高亮的流转图SVG
63 63 * @param processInstanceId
64 64 */
65 65 @GetMapping("/process/highlight-img/{id}")
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/service/workflow/TaskService.java
... ... @@ -27,7 +27,8 @@ public interface TaskService {
27 27  
28 28 /**
29 29 * 返回高亮的流转进程
30   - * @param processInstanceId
  30 + * @param processInstanceId 实例Id
  31 + * @param response 响应
31 32 */
32 33 void getHighlightImg(String processInstanceId, HttpServletResponse response);
33 34 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/activiti/service/workflow/impl/TaskServiceImpl.java
... ... @@ -23,6 +23,7 @@ import org.activiti.engine.RepositoryService;
23 23 import org.activiti.engine.RuntimeService;
24 24 import org.activiti.engine.history.HistoricActivityInstance;
25 25 import org.activiti.engine.history.HistoricProcessInstance;
  26 +import org.activiti.engine.history.HistoricTaskInstance;
26 27 import org.activiti.engine.repository.ProcessDefinition;
27 28 import org.activiti.engine.runtime.ProcessInstance;
28 29 import org.activiti.engine.task.Comment;
... ... @@ -34,7 +35,9 @@ import org.springframework.util.CollectionUtils;
34 35  
35 36  
36 37 import javax.annotation.Resource;
  38 +import javax.imageio.ImageIO;
37 39 import javax.servlet.http.HttpServletResponse;
  40 +import java.awt.image.BufferedImage;
38 41 import java.io.IOException;
39 42 import java.io.InputStream;
40 43 import java.net.URLEncoder;
... ... @@ -225,28 +228,28 @@ public class TaskServiceImpl implements TaskService {
225 228  
226 229  
227 230 @Override
228   - public void getHighlightImg(String processDefinitionId, HttpServletResponse response) {
  231 + public void getHighlightImg(String processInstanceId, HttpServletResponse response) {
229 232 // 查询历史
230   - HistoricProcessInstance hpi = historyService.createHistoricProcessInstanceQuery().processInstanceId(processDefinitionId).singleResult();
  233 + HistoricProcessInstance hpi = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
231 234 // 如果有结束时间
232 235 if (hpi == null) {
233 236 return;
234 237 }
235 238 // 没有结束时间。说明流程在执行过程中
236   - ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processDefinitionId).singleResult();
  239 + ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
237 240 BpmnModel bpmnModel = repositoryService.getBpmnModel(pi.getProcessDefinitionId());
238 241 List<String> highLightedActivities = new ArrayList<>();
239 242  
240   - List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processDefinitionId)
  243 + List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId)
241 244 .orderByHistoricActivityInstanceId().asc().list();
242 245 // 获取所有活动节点
243 246 List<HistoricActivityInstance> finishedInstances = historyService.createHistoricActivityInstanceQuery()
244   - .processInstanceId(processDefinitionId).finished().list();
  247 + .processInstanceId(processInstanceId).finished().list();
245 248 for (HistoricActivityInstance hai : finishedInstances) {
246 249 highLightedActivities.add(hai.getActivityId());
247 250 }
248 251 // 已完成的节点+当前节点
249   - highLightedActivities.addAll(runtimeService.getActiveActivityIds(processDefinitionId));
  252 + highLightedActivities.addAll(runtimeService.getActiveActivityIds(processInstanceId));
250 253  
251 254 // 经过的流
252 255 List<String> highLightedFlowIds = getHighLightedFlows(bpmnModel, historicActivityInstances);
... ... @@ -264,6 +267,7 @@ public class TaskServiceImpl implements TaskService {
264 267 }
265 268  
266 269 private void responseImage(HttpServletResponse response, InputStream inputStream, String picName) throws IOException {
  270 + BufferedImage src = ImageIO.read(inputStream);
267 271 response.setContentType("application/octet-stream;charset=UTF-8");
268 272 response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(picName, "UTF-8"));
269 273 byte[] b = new byte[1024];
... ...