说明
在实际应用中,部门经理可以 查看任务列表。
本文介绍查询部门经理任务列表的方式,根据下图的 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") + " 天假");
}
}
}
