Activiti之组任务(十)

来源:互联网 发布:百度软件手机助手 编辑:程序博客网 时间:2024/06/05 15:16

一 组任务(公共任务)流程图(group)



二 源码

个人任务:由某一个负责办理,在任务表中通过assignee字段记录

公共任务:可以由多个人办理,可以在设计流程图时指定多个办理人

/** * 公共任务测试 * @author zhaoqx * */public class GroupTaskTest {ProcessEngine pe = ProcessEngines.getDefaultProcessEngine();/** * 部署流程定义 */@Testpublic void test1() {DeploymentBuilder deploymentBuilder = pe.getRepositoryService().createDeployment();deploymentBuilder          .addClasspathResource("cn/task/group/groupTask.bpmn");deploymentBuilder .addClasspathResource("cn/task/group/groupTask.png");Deployment deployment = deploymentBuilder.deploy();}/** * 启动流程实例 */@Testpublic void test2(){String processDefinitionId = "grouptTask:1:1404";pe.getRuntimeService().startProcessInstanceById(processDefinitionId);}/** * 办理个人任务 */@Testpublic void test3(){String taskId = "1602";pe.getTaskService().complete(taskId);}/** * 查询公共任务列表 */@Testpublic void test4(){TaskQuery query = pe.getTaskService().createTaskQuery();String candidateUser = "李四";//根据候选人过滤query.taskCandidateUser(candidateUser);List<Task> list = query.list();for (Task task : list) {System.out.println(task.getName());}}/** * 拾取任务(将公共任务变为个人任务) */@Testpublic void test5(){String taskId = "1602";String userId = "王五";pe.getTaskService().claim(taskId , userId);}/** * 退回任务(将个人任务变为公共任务) */@Testpublic void test6(){String taskId = "1602";pe.getTaskService().setAssignee(taskId , null);}}

三.接受任务

接收任务不是由某个人负责办理,通过signal方法让流程执行的


四.源码

/** * 接收任务测试 * @author zhaoqx * */public class ReceiveTaskTest {ProcessEngine pe = ProcessEngines.getDefaultProcessEngine();/** * 部署流程定义 */@Testpublic void test1() {DeploymentBuilder deploymentBuilder = pe.getRepositoryService().createDeployment();deploymentBuilder.addClasspathResource("cn/task/receive/receiveTask.bpmn");deploymentBuilder                       .addClasspathResource("cn/task/receive/receiveTask.png");Deployment deployment = deploymentBuilder.deploy();}/** * 启动流程实例 */@Testpublic void test2(){String processDefinitionId = "receiveTask:1:2004";pe.getRuntimeService().startProcessInstanceById(processDefinitionId );}/** * 办理任务 */@Testpublic void test3(){String taskId = "2104";pe.getTaskService().complete(taskId );}/** * 处理接收任务 */@Testpublic void test4(){String executionId = "2101";pe.getRuntimeService().signal(executionId );}}

分配组任务总结

组任务分配给个人任务(认领任务):

     processEngine.getTaskService().claim(taskId, userId);

个人任务分配给组任务:

     processEngine.getTaskService(). setAssignee(taskId, null);

向组任务添加人员:

     processEngine.getTaskService().addCandidateUser(taskId, userId);

向组任务删除人员:

     processEngine.getTaskService().deleteCandidateUser(taskId, userId);



0 0
原创粉丝点击