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