1、把当前流程实例节点展示到前端

@RequestMapping(value = "backToStepPage")
public ModelAndView backToStepPage(String procInstId,String currentSid) {
String procDefId = runtimeService.createProcessInstanceQuery().processInstanceId(procInstId).singleResult().getProcessDefinitionId();
//获取所有节点信息
List<Process> processes = repositoryService.getBpmnModel(procDefId).getProcesses();
List<FlowElement> flowElementList = new ArrayList<> ();
processes.stream().forEach(p->{
flowElementList.addAll(p.getFlowElements().stream()
.filter(start ->start instanceof StartEvent )
.collect(Collectors.toList()));
flowElementList.addAll(p.getFlowElements().stream()
.filter(start ->start instanceof UserTask )
.collect(Collectors.toList()));
flowElementList.addAll(p.getFlowElements().stream()
.filter(start ->start instanceof EndEvent )
.collect(Collectors.toList()));
});
ModelAndView model = new ModelAndView("page/demo/backToStep");
model.addObject("flowElementList",flowElementList);
model.addObject("procInstId",procInstId);
model.addObject("currentSid",currentSid);
return model;
}
2、执行跳转代码
@RequestMapping("/backToStep")
public Object backToStep(String procInstId,String currentSid,String sid) {
runtimeService.createChangeActivityStateBuilder().
processInstanceId(procInstId).
moveActivityIdTo(currentSid,sid).
changeState();
return "page/demo/workflowTrackPage";
}
工作流跳转与展示
本文介绍了一种方法,用于将工作流实例的当前步骤显示在前端页面,并提供了执行步骤跳转的功能实现。通过获取流程定义中的所有节点信息,包括开始事件、用户任务和结束事件等,可以动态地构建出流程实例的状态视图。此外,还实现了通过API调用改变活动状态的方法。
1719

被折叠的 条评论
为什么被折叠?



