Activiti7-任务分配
创始人
2024-05-01 03:59:23
0

上面这些已经在流程变量设置的时候学会了 ,这里略。

参考:Activiti7-流程变量_ZHOU_VIP的博客-CSDN博客


错别字:认领任务 

设计一个流程,设置候选人

错了,应该设置在候选人那里

由于修改了流程设计,需要重新部署流程,所以改成leave17.bpmn20.xml

后来又改成leave18.bpmn20.xml 

部署流程: 

启动流程: 

张三提交申请:

查询任务:

奇怪,候选人都没有接受到任务,因为张三提交申请中if(task != null)做了判断,没有执行

taskService.complete(task.getId());

查询候选人任务:

任务责任人为null,所以需要候选人认领任务

候选人认领任务:

查询任务:

wangwu已经收到了任务

查询组任务:

什么都没有,说明wangwu已经把组任务变成了个人任务

任务的归还:

归还后查询组任务:

候选人lisi认领任务:

查询任务:

lisi完成任务:

查询任务:

上面文档说的很明白,只要有一个候选人审批就可以

奇怪, 总经理的责任人id为null,想了下,原来是流程设计的时候忘记设置了

可以补充设置下:

map.put("assignee2","周总经理");

这个后面再测试吧

还有任务的交接也后面再测试吧

参考代码:

package com.nanjing;import com.nanjing.pojo.Evection;
import org.activiti.engine.*;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** 测试候选人*/
public class TestCandidate {/*** 流程部署*/@Testpublic void testDeployment(){
//        1、创建ProcessEngineProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        2、获取RepositoryServcieRepositoryService repositoryService = processEngine.getRepositoryService();
//        3、使用service进行流程的部署,定义一个流程的名字,把bpmn和png部署到数据中Deployment deploy = repositoryService.createDeployment().name("出差申请流程-Candidate").addClasspathResource("leave18.bpmn20.xml").deploy();
//        4、输出部署信息System.out.println("流程部署id="+deploy.getId());System.out.println("流程部署名字="+deploy.getName());}/*** 启动流程 的时候设置流程变量*/@Testpublic void testStartProcess(){
//        获取流程引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        获取RunTimeServiceRuntimeService runtimeService = processEngine.getRuntimeService();
//        流程定义的KeyString key = "myEvection18";
//        启动流程//runtimeService.startProcessInstanceByKey(key);//       创建变量集合Map map = new HashMap<>();
//        创建出差pojo对象Evection evection = new Evection();
//      定义流程变量,把出差pojo对象放入mapmap.put("evection",evection);map.put("assignee0","张三");map.put("assignee2","周总经理");
//        启动流程实例,并设置流程变量的值(把map传入)ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key, map);}/*** 查询组任务*/@Testpublic void findGroupTaskList(){//        流程定义的KeyString key = "myEvection18";
//        任务候选人String candidateUser = "wangwu";
//        获取引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        获取TaskServiceTaskService taskService = processEngine.getTaskService();
//        查询组任务List taskList = taskService.createTaskQuery().processDefinitionKey(key).taskCandidateUser(candidateUser) //根据候选人查询任务.list();for (Task task : taskList) {System.out.println("========================");System.out.println("流程实例ID="+task.getProcessInstanceId());System.out.println("任务id="+task.getId());System.out.println("任务负责人="+task.getAssignee());}}/*** 候选人拾取任务*/@Testpublic void claimTask(){
//        获取引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        获取TaskServiceTaskService taskService = processEngine.getTaskService();
//        当前任务的idString taskId = "5002";
//        任务候选人String candidateUser = "lisi";
//        查询任务Task task = taskService.createTaskQuery().taskId(taskId).taskCandidateUser(candidateUser).singleResult();if(task != null){
//            拾取任务taskService.claim(taskId,candidateUser);System.out.println("taskid-"+taskId+"-用户-"+candidateUser+"-拾取任务完成");}}/*** 任务的归还*/@Testpublic void testAssigneeToGroupTask(){
//        获取引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        获取TaskServiceTaskService taskService = processEngine.getTaskService();
//        当前任务的idString taskId = "5002";
//        任务负责人String assignee = "wangwu";
//        根据key 和负责人来查询任务Task task = taskService.createTaskQuery().taskId(taskId).taskAssignee(assignee).singleResult();if(task != null){
//            归还任务 ,就是把负责人 设置为空taskService.setAssignee(taskId,null);System.out.println("taskid-"+taskId+"-归还任务完成");}}/*** 任务的交接*/@Testpublic void testAssigneeToCandidateUser(){
//        获取引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        获取TaskServiceTaskService taskService = processEngine.getTaskService();
//        当前任务的idString taskId = "5002";
//        任务负责人String assignee = "lisi";
//        任务候选人String candidateUser = "wangwu";
//        根据key 和负责人来查询任务Task task = taskService.createTaskQuery().taskId(taskId).taskAssignee(assignee).singleResult();if(task != null){
//            交接任务 ,就是把负责人 设置为空taskService.setAssignee(taskId,candidateUser);System.out.println("taskid-"+taskId+"-交接任务完成");}}/*** 完成个人任务*/@Testpublic void completTask(){
//        流程定义的KeyString key = "myEvection18";
//        任务负责人String assingee = "lisi";
//        String assingee = "";//        获取流程引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        获取taskserviceTaskService taskService = processEngine.getTaskService();
//        查询任务Task task = taskService.createTaskQuery().processDefinitionKey(key).taskAssignee(assingee).singleResult();if(task != null){//     根据任务id来   完成任务taskService.complete(task.getId());}}@Testpublic void queryTask(){
//        流程定义的KeyString key = "myEvection18";
//        任务负责人//String assingee = "张财务";//        获取流程引擎ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        获取taskserviceTaskService taskService = processEngine.getTaskService();
//        查询任务final List tasks = taskService.createTaskQuery().processDefinitionKey(key)
//                .taskAssignee(assingee).list();for(Task task:tasks){//     根据任务id来   完成任务System.out.println(task.getId());System.out.println(task.getName());System.out.println(task.getAssignee());}}
}

参考:

学习笔记之-Activiti7工作流引擎,概述,环境搭建,类关系图,使用Activiti BPMN visualizer,流程变量,组任务 网关,Activiti整合Spring SpringBoot_努力敲代码买猪脚啃的博客-CSDN博客_activiti bpmn visualizer

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...