项目实践工作流之Activiti学习(三十七)

2023-11-19 15:06:11 浏览数 (2)

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 方法将任务委托给其它用户负责,注意被委托的用户可以不是候选人(建议不要这样使用)

0 人点赞