@RequestMapping(value = "findPicture")
@ResponseBody
public Map findPicture(String processInstanceId){
Map map=new HashMap();
try {
HistoricProcessInstance historicProcessInstance=historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
BpmnModel bpmnModel=repositoryService.getBpmnModel(historicProcessInstance.getProcessDefinitionId());
List<String> activityIds=new ArrayList<>();
//判断流程实例是否已经结束
if (historicProcessInstance.getEndTime()==null){
//获取该流程实例的当前活动节点
//在得到的流程图片上会以红框高亮显示
activityIds= runtimeService.getActiveActivityIds(processInstanceId);
}
//获取流程图信息
InputStream inputStream=processEngineConfiguration.getProcessDiagramGenerator().generateDiagram(bpmnModel,"png",activityIds);
//转换方便页面展示图拍呢
byte[] bytes=IOUtils.toByteArray(inputStream);
String img=new String(Base64.encodeBase64(bytes));
//获取该流程实例的所有历史活动,即经历的各个审批节点
List<HistoricActivityInstance> list=historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).list();
map.put("success",true);
map.put("data",img);
return map;
} catch (IOException e) {
e.printStackTrace();
}
map.put("success",false);
map.put("data",null);
return map;
}