activiti7+springboot2.1.x完成任务(四)

在一节中我们讲了如何启动一个流程,以及启动流程后会影响的7张表。在这一节我们将要讲解如何查看一个指定的用户的任务,以及如何完成一个指定的任务。

一、查看指定用户的当前任务

在上一节中我们启动了一个请假的流程,该流程一共有三个步骤,分别是

  • 主管审批
  • 总经理审批
  • 人事部审批

在上一节中只是启动了流程,并没有执行任何的流程任务,所以按照逻辑来讲,这个请假流程是到了“主管审批”的任务节点,由上一节的内容可以知道,主管审批是由一个叫张三的人来处理,这里我们就从这个叫张三的用户入手,查看张三这个用户当前的任务。

activiti中任务的相关操作要用到TaskService这个服务,在下面的完成任务也要用到这个服务。在之前的搭建开发环境的时候我们已经将这个TaskService的实现类的实例注入到了spring的容器中,所以接下来直接使用就可以了。

具体的查看看下面的代码

    /**
     * 查看用户当前任务
     */
    @Override
    public void queryUserTask() {
        TaskQuery taskQuery = taskService.createTaskQuery();
        List<Task> list = taskQuery.taskAssignee("张三").list();
        System.out.println(list);
    }

测试方法

    /**
     * 查询用的的当前任务
     */
    @Test
    public void queryUserTask() {
        activityService.queryUserTask();
    }

执行结果:[Task[id=5005, name=主管审批]]

二、完成一个任务

由上面的用户任务查询结果得知用户张三的当前任务的id是:5005。在有个这个id的前提下完成一个任务就是一件十分容易的事情。具体的实现看代码:

    /**
     * 完成一个用户任务
     */
    @Override
    public void completeUserTask() {
        taskService.complete("5005");
    }

测试方法

    /**
     * 完成一个用户任务
     */
    @Test
    public void completeUserTask() {
        activityService.completeUserTask();
    }

这样简单的一步操作就完成了一个任务,这个时候我面来看下数据表:

  • act_hi_actinst:可以看到主管审批已经做完了,有endtime,同时又多出来一条记录,总经理审批。
    image.png
  • act_hi_taskinst:和act_hi_actinst表一样主管的任务已完成,同时多出来一个总经理的任务。
    image.png
  • act_ru_task:当前的任务已经到了总经理。
    image.png

至此完成用户的任务完成。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容