方法一:使用activiti自带的image画
此种方法好像使用activiti中5.16以后的版本:
1、controller层编辑
<span style="white-space:pre"> </span>@RequestMapping(value="/queryActivityMap", produces = MediaType.IMAGE_PNG_VALUE)
@ResponseBody
public byte[] queryActivityMap(String processInstanceId, Model model, HttpServletResponse response) {
try {
return orderService.traceProcessImage(processInstanceId);
} catch (Exception e) {
System.err.println("获取图片流错误!!");
e.printStackTrace();
return null;
}
}
2、service层编辑
<span style="white-space:pre"> </span>/**
* 得到带有高亮节点的流程图
* @param processInstanceId 流程实例id
* @return
*/
public byte[] traceProcessImage(String processInstanceId) {
String taskId = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult().getId();
if (StringUtils.isBlank(taskId))
throw new IllegalArgumentException("任务ID不能为空!");
// 当前任务节点
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (task == null)
throw new IllegalArgumentException("任务不存在!");
BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
// List<String> activeActivityIds = runtimeService.getActiveActivityIds(task.getExecution