flowable6.3教程-部门经理查询任务

说明

在实际应用中,部门经理可以 查看任务列表。

本文介绍查询部门经理任务列表的方式,根据下图的 managers 进行查询

TaskService 类

需要使用 TaskService,从 ProcessEngine 对象获取

提示

修改 log4j.properties 文件,将 级别改为 INFO,否则打印信息太多

代码

package std;

import org.flowable.engine.ProcessEngine;
import org.flowable.engine.ProcessEngineConfiguration;
import org.flowable.engine.TaskService;
import org.flowable.engine.impl.cfg.StandaloneProcessEngineConfiguration;
import org.flowable.task.api.Task;

import java.util.List;
import java.util.Map;

public class Std4部门负责人查看任务 {
//    查询’managers’组的任务
    public static void main(String[] args) {
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

        TaskService taskService = processEngine.getTaskService();
        List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup("managers")
                .orderByTaskCreateTime() // 按照任务创建时间
                .desc() // 倒序排列
                .list();
        System.out.println("待办任务:");
        for (int i=0; i<tasks.size(); i++) {
            Task task = tasks.get(i);
            String msg = String.format("pid:%s,task name:%s,tid:%s,task key:%s",
                    task.getProcessInstanceId(),
                    task.getName(),
                    task.getId(),
                    task.getTaskDefinitionKey()
            );
            System.out.println( msg );
//            根据任务Id查询特定流程实例的变量
            Map<String, Object> processVariables = taskService.getVariables(task.getId());
            System.out.println(processVariables.get("emp") + " 申请 " +
                    processVariables.get("day") + " 天假");

        }
    }
}

原文出处:/show_1IX5bY8zXZX6.html