Flowable各流程节点跳转

工作流跳转与展示
本文介绍了一种方法,用于将工作流实例的当前步骤显示在前端页面,并提供了执行步骤跳转的功能实现。通过获取流程定义中的所有节点信息,包括开始事件、用户任务和结束事件等,可以动态地构建出流程实例的状态视图。此外,还实现了通过API调用改变活动状态的方法。

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";
		}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值