4.1.1.4 用户查询个人待办任务
查询方式同个人任务查询
代码语言:javascript复制@Test
public void findPersonalTaskList() {
// 流程定义key
String processDefinitionKey = "holiday4";
// 任务负责人
String assignee = "zhangsan";
// 创建TaskService
TaskService taskService = processEngine.getTaskService();
List<Task> list = taskService.createTaskQuery()//
.processDefinitionKey(processDefinitionKey)//
.taskAssignee(assignee).list();
for (Task task : list) {
System.out.println("----------------------------");
System.out.println(" 流 程 实 例 id : "
task.getProcessInstanceId());
System.out.println("任务id:" task.getId());
System.out.println("任务负责人:" task.getAssignee());
System.out.println("任务名称:" task.getName());
}
}
4.1.1.5 用户办理个人任务
同个人任务办理
代码语言:javascript复制/**完成任务*/
@Test
public void completeTask(){
//任务ID
String taskId = "12304";
processEngine.getTaskService()//
.complete(taskId);
System.out.println("完成任务:" taskId);
}
说明:建议完成任务前校验该用户是否是该任务的负责人。
4.1.1.6 归还组任务
如果个人不想办理该组任务,可以归还组任务,归还后该用户不再是该任务的负责人
代码语言:javascript复制// 归还组任务,由个人任务变为组任务,还可以进行任务交接
@Test
public void setAssigneeToGroupTask() {
// 查询任务使用TaskService
TaskService taskService = processEngine.getTaskService();
// 当前待办任务
String taskId = "6004";
// 任务负责人
String userId = "zhangsan2";
// 校验userId是否是taskId的负责人,如果是负责人才可以归还组任务
Task task = taskService.createTaskQuery().taskId(taskId)
.taskAssignee(userId).singleResult();
if (task != null) {
// 如果设置为null,归还组任务,该 任务没有负责人
taskService.setAssignee(taskId, null);
}
}
说明:建议归还任务前校验该用户是否是该任务的负责人
也可以通过 setAssignee 方法将任务委托给其它用户负责,注意被委托的用户可以不是候选人(建议不要这样使用)