当我们知道了个人的任务后就可以对任务进行完结
接下来我们用代码完结任务
完结任务的步骤:
- 得到ProcessEngine对象
- 得到TaskService对象
- 查询任务
- 判断
- 完结任务
创捷类ActivitiTask
public class ActivitiTask {
public static void main(String[] args) {
//1:定义ProcessEngine对象,自己封装的工具类也可以
ProcessEngines.getDefaultProcessEngine();
ProcessEngine processEngine= ReturnProcessEngineUtil.getProcessEngine();
//2:得到TaskService对象
TaskService taskService=processEngine.getTaskService();
//3:查询任务
Task task=taskService.createTaskQuery().processDefinitionKey("day").taskAssignee("xiaoyi").singleResult();
//4:判断
if(task!=null){
//5:完成任务
taskService.complete(taskId);
System.out.println(" 完结任务 ");
System.out.println("task.getId() = " + task.getId());
}
}
}
我们看下数据库被影响的表
- act_hi_actinst 已完成的活动信息
- act_hi_identitylink 参与者信息
- act_hi_taskinst 任务实例
- act_ru_identitylink 参与者信息
- act_ru_task 当前任务
act_hi_actinst表:我们看到执行人xiaoyi有了结束时间,并且表中多了一条xiaoer的任务,还没有完成任务,所以还没有就结束时间
act_hi_identitylink表:可以看到表中多了一条参与者信息,因为xiaoyi任务完成后,会自动到了洗澡也就是xiaoer的任务
act_hi_taskinst表:相同的,可以看到任务实例中也多了xiaoer的记录
act_ru_identitylink表:
act_ru_task表:可以看到之前xiaoyi的吃饭任务被覆盖了,取而代之的时xiaoer的洗澡任务,xiaoer任务执行完后同样会被覆盖,知道流程走完act_ru_task就会被清空
原创文章,未经允许禁止盗用