项目实践工作流之Activiti学习(二十九)

2023-11-13 20:47:48 浏览数 (2)

2.1.3.1 注意事项

使用监听器分配方式,按照监听事件去执行监听类的 notify 方法,方法如果不能正常执行也会影响任务的执行。

2.2查询任务

查询任务负责人的待办任务:

代码语言:javascript复制
// 查询当前个人待执行的任务
@Test
public void findPersonalTaskList() {
// 流程定义key
String processDefinitionKey = "holiday";
// 任务负责人
String assignee = "张三丰";
// 创建TaskService
TaskService taskService = processEngine.getTaskService();
List<Task> list = taskService.createTaskQuery()//
.processDefinitionKey(processDefinitionKey)//
.includeProcessVariables().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());
}
}

2.2.1关联 businessKey

需求:

在 activiti 实际应用时,查询待办任务可能要显示出业务系统的一些相关信息,比如:查询待审批请假单任务列表需要将请假单的日期、请假天数等信息显示出来,请假天数等信息在业务系统中存在,而并没有在 activiti 数据库中存在,所以是无法通过 activiti 的 api 查询到请假天数等信息。

实现:

在查询待办任务时,通过 businessKey(业务标识 )关联查询业务系统的请假单表,查询出请假天数等信息。

2.3办理任务

指定任务 id,调用 TaskService 完成任务:

代码语言:javascript复制
// 完成任务
@Test
public void completTask() {
//任务id
String taskId = "10305";
// 创建TaskService
TaskService taskService = processEngine.getTaskService();
taskService.complete(taskId);
System.out.println("完成任务");
}

注意:在实际应用中,完成任务前需要校验任务的负责人是否具有该任务的办理权限。

0 人点赞