activiti工作流学习(四)

并行网关

与排他网关不同,并行网关中,该网关分支的所有条件都执行完的时候,才能走到下一个任务.
有任意个条件未执行,该部分任务都不会完成.

就像是集龙珠,必须7颗都同时在,才能召唤出神龙

绘制流程图

在组件栏中有一个叫Gateway的,第一个parallelGateway,它就是并行网关,第二个ExclusiveGateway是排他网关,剩下的两个,分别是:InclusiveGateway(包含网关),EventGateway(事件网关)
在这里插入图片描述
并行网关不需要条件进行判断

流程demo

部署流程

/**
	 * 部署设计资源 即之前创建的流程设计图
	 */
	@Test
	public void deploy() {
		pe.getRepositoryService().createDeployment().addClasspathResource("MyProcess.png")
				.addClasspathResource("MyProcess.bpmn").name("优秀员工申请-并行网关").deploy();
	}

员工进行优秀员工申请

/**
	 * 启动流程实例
	 */
	@Test
	public void start() {
		// 通过id启动 启动时赋予流程执行人即 刚才${}中的值
		//此时act_ru_execution act_ru_task 两张表中有数据
		Map<String, Object> map = new HashMap<>();
		map.put("employee", "尼古拉斯赵四");
		map.put("reason","我能把气质拿捏的死死的");
		ProcessInstance pi = pe.getRuntimeService().startProcessInstanceByKey("myProcess", map);
	}

在这里插入图片描述
申请完成

/**
	 * 完成任务
	 * 此时act_ru_execution act_ru_task 两张表中没有数据
	 * 相对应的 在历史表中有数据
	 */
	@Test
	public void completeTask() {
		pe.getTaskService().complete("50006");//通过任务id来完成任务 
	}

在这里插入图片描述

进行人事,主管的审批

人事审批完成
/**
	 * 完成任务
	 * 此时act_ru_execution act_ru_task 两张表中没有数据
	 * 相对应的 在历史表中有数据
	 */
	@Test
	public void completeTask() {
		pe.getTaskService().complete("52504");//通过任务id来完成任务 此处将判断依据传入
	}

此时,task表中 taskid为52504的人事审批任务消失

主管审批完成
/**
	 * 完成任务
	 * 此时act_ru_execution act_ru_task 两张表中没有数据
	 * 相对应的 在历史表中有数据
	 */
	@Test
	public void completeTask() {
		pe.getTaskService().complete("52507");//通过任务id来完成任务 此处将判断依据传入
	}

人事主管都审批完成,进入老板审批阶段

此时task表中数据为
在这里插入图片描述
进行老板审批完成

/**
	 * 完成任务
	 * 此时act_ru_execution act_ru_task 两张表中没有数据
	 * 相对应的 在历史表中有数据
	 */
	@Test
	public void completeTask() {
		pe.getTaskService().complete("57503");//通过任务id来完成任务 此处将判断依据传入
	}

此时task表中,已无相关数据
整个流程走完.
查看历史数据

/**
	 * 查看历史任务数据
	 */
	@Test
	public void findHistoryTask() {
		List<HistoricTaskInstance> htis = pe.getHistoryService()
				.createHistoricTaskInstanceQuery()
				.deploymentId("45001")		//根据部署id查
				.list();
		htis.forEach(hti->{
			System.out.println("历史任务id"+hti.getId());
			System.out.println("历史任务名称"+hti.getName());
			System.out.println("历史任务创建时间"+hti.getCreateTime());
			System.out.println("历史任务结束时间"+hti.getEndTime());
			System.out.println("历史任务执行人"+hti.getAssignee());
		});
	}

结果

历史任务id50006
历史任务名称优秀员工申请
历史任务创建时间Wed Jan 22 15:33:05 CST 2020
历史任务结束时间Wed Jan 22 15:36:34 CST 2020
历史任务执行人宇智波谢广坤
历史任务id52504
历史任务名称人事考勤审批
历史任务创建时间Wed Jan 22 15:36:34 CST 2020
历史任务结束时间Wed Jan 22 15:39:47 CST 2020
历史任务执行人人事
历史任务id52507
历史任务名称主管业绩审批
历史任务创建时间Wed Jan 22 15:36:34 CST 2020
历史任务结束时间Wed Jan 22 15:40:56 CST 2020
历史任务执行人主管
历史任务id57503
历史任务名称老板审批
历史任务创建时间Wed Jan 22 15:40:56 CST 2020
历史任务结束时间Wed Jan 22 15:42:33 CST 2020
历史任务执行人老板

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qlanto

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值