本文主要是介绍【工作流Activiti】查询处理任务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、查询任务
每个节点都配置了Assignee,流程启动后,任务的负责人就可以查询自己当前需要处理的任务,查询出来的任务都是该用户的待办任务。
@Autowired
private TaskService taskService;/*** 查询当前个人待执行的任务*/
@Test
public void findPendingTaskList() {//任务负责人String assignee = "zhangsan";List<Task> list = taskService.createTaskQuery().taskAssignee(assignee)//只查询该任务负责人的任务.list();for (Task task : list) {System.out.println("流程实例id:" + task.getProcessInstanceId());System.out.println("任务id:" + task.getId());System.out.println("任务负责人:" + task.getAssignee());System.out.println("任务名称:" + task.getName());}
}
说明:
流程实例id:一个流程只有一个,标识这个流程
任务id:流程每进行到某个节点,就会给这个节点分配一个任务id
输出结果如下:
流程实例id:d969f534-825e-11ed-95b4-7c57581a7819
任务id:d96c3f28-825e-11ed-95b4-7c57581a7819
任务负责人:zhangsan
任务名称:张三审批
2、处理当前任务
任务负责人查询待办任务,选择任务进行处理,完成任务。
/*** 完成任务*/
@Test
public void completTask(){Task task = taskService.createTaskQuery().taskAssignee("zhangsan") //要查询的负责人.singleResult();//返回一条//完成任务,参数:任务idtaskService.complete(task.getId());
}
完成任务后,任务自动到下一个节点
3、查询已处理任务
@Autowired
private HistoryService historyService;/*** 查询已处理历史任务*/
@Test
public void findProcessedTaskList() {//张三已处理过的历史任务List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery().taskAssignee("zhangsan").finished().list();for (HistoricTaskInstance historicTaskInstance : list) {System.out.println("流程实例id:" + historicTaskInstance.getProcessInstanceId());System.out.println("任务id:" + historicTaskInstance.getId());System.out.println("任务负责人:" + historicTaskInstance.getAssignee());System.out.println("任务名称:" + historicTaskInstance.getName());}
}
2.7、其他接口(了解)
/*** 查询流程定义*/
@Test
public void findProcessDefinitionList(){List<ProcessDefinition> definitionList = repositoryService.createProcessDefinitionQuery().orderByProcessDefinitionVersion().desc().list();//输出流程定义信息for (ProcessDefinition processDefinition : definitionList) {System.out.println("流程定义 id="+processDefinition.getId());System.out.println("流程定义 name="+processDefinition.getName());System.out.println("流程定义 key="+processDefinition.getKey());System.out.println("流程定义 Version="+processDefinition.getVersion());System.out.println("流程部署ID ="+processDefinition.getDeploymentId());}
}/*** 删除流程定义*/
public void deleteDeployment() {//部署idString deploymentId = "82e3bc6b-81da-11ed-8e03-7c57581a7819";//删除流程定义,如果该流程定义已有流程实例启动则删除时出错repositoryService.deleteDeployment(deploymentId);//设置true 级联删除流程定义,即使该流程有流程实例启动也可以删除,设置为false非级别删除方式//repositoryService.deleteDeployment(deploymentId, true);
}
这篇关于【工作流Activiti】查询处理任务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!