Activiti进阶(十一)——分配组任务的三种方式

     上一篇博客我们讲了分配个人任务的三种方式,这篇博客我们来介绍一下分配组任务的三种方式。


     一、流程图


                                           

                                            图一  分配组任务的三种方式  



     二、分配组任务方式一:直接指定办理人


     1.在任务节点设置办理人


     


     2.测试代码

package cn.gome.m_groupTask;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.history.HistoricIdentityLink;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.IdentityLink;
import org.activiti.engine.task.Task;
import org.junit.Test;

public class TaskTest {

	// 流程引擎对象
	ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

	/**部署流程定义+启动流程实例:3905*/
	@Test
	public void deployementAndStartProcess() {
		//1.发布流程
		InputStream inputStreamBpmn = this.getClass().getResourceAsStream(
				"task.bpmn");
		InputStream inputStreamPng = this.getClass().getResourceAsStream(
				"task.png");
		processEngine.getRepositoryService()//
				.createDeployment()//
				.addInputStream("task.bpmn", inputStreamBpmn)//
				.addInputStream("task.png", inputStreamPng)//
				.deploy();
		//2.启动流程
		ProcessInstance pi = processEngine.getRuntimeService()//
				.startProcessInstanceByKey("task");
		System.out.println("pid:" + pi.getId());

	}

	/**查询我的个人任务,没有执行结果*/
	@Test
	public void findPersonalTaskList() {
		// 任务办理人
		String assignee = "小A";
		List<Task> list = processEngine.getTaskService()//
				.createTaskQuery()//
				.taskAssignee(assignee)// 个人任务的查询
				.list();
		if (list != null && list.size() > 0) {
			for (Task task : list) {
				System.out.println("任务ID:" + task.getId());
				System.out.println("任务的办理人:" + task.getAssignee());
				System.out.println("任务名称:" + task.getName());
				System.out.println("任务的创建时间:" + task.getCreateTime());
				System.out.println("流程实例ID:" + task.getProcessInstanceId());
				System.out.println("#######################################");
			}
		}
	}

	/**查询组任务*/
	@Test
	public void findGroupTaskList() {
		// 任务办理人
		String candidateUser = "小A";
		List<Task> list = processEngine.getTaskService()//
				.createTaskQuery()//
				.taskCandidateUser(candidateUser)// 参与者,组任务查询
				.list();
		if (list != null && list.size() > 0) {
			for (Task task : list) {
				System.out.println("任务ID:" + task.getId());
				System.out.println("任务的办理人:" + task.getAssignee());
				System.out.println("任务名称:" + task.getName());
				System.out.println("任务的创建时间:" + task.getCreateTime());
				System.out.println("流程实例ID:" + task.getProcessInstanceId());
				System.out.println("###############################
  • 16
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值