Activiti7笔记(六)activiti加签,转签,会签,任务监听器,添加查询审批意见

2022-05-09 10:13:55 浏览数 (2)

目录

  • 1 加签功能
  • 2转签功能
  • 3 会签
    • 3.1 什么是会签
    • 3.2 会签实现流程
  • 4 任务监听器
    • 4.1 实现
  • 5 Activiti添加和查询审批意见

1 加签功能

我们已经定义好一个bump,并且已经将这个流程保存到数据库中,比如申请请假,有个人申请了请假,经理已经审批完成,总经理改审批了,本来应该是总经理审批完成,这个流程就走完了,这个就是我们在bump里面定义好的,但是这个时候,总经理想让董事长知道这个,想看看董事长的看法,所以需要将这个请假申请加签到董事长,这个董事长审批是不在这个bump里面的,这个要知道;

那么,总经理是如何进行加签到董事长的;代码实现是

代码语言:javascript复制
taskId参数是当前任务的id,第二个是给谁,加签到谁
根据taskService进行加签,delegateTask这个方法进行加签,不能
使用完成任务的那个方法了

    public boolean delegateTask(String taskId, String loginName) {
        taskService.delegateTask(taskId, loginName);
        return true;
    }

以上就实现了,将一个任务加签到另一个人(董事长); 董事长登录系统,就可以看到当前的任务,董事长就可以完成这个任务,代码是‘

代码语言:javascript复制
 @Test
    public void resolveTask() {
        String taskId = "2511";
        taskService.resolveTask(taskId);
    }

以上代码就实现了完成当前任务,那么这个董事长将任务完成了,这个任务会到哪里?

会回到加签人那里,谁进行加签的,就会回到谁那里;

2转签功能

就是当前的bump里面最后只是总经理审批,但是在实际中,总经理想把这个申请给了董事长,并且董事长审批完成,不要回来了,直接让下一个人审批;所以就有了转签;转签与加签的区别就是,一个是转签人审批完成,是否会回来; 任务转办是把任务交给别人进行处理 转签的代码是:

代码语言:javascript复制
第一个参数是当前任务id,第二个参数是转签到的人

 @Override
    public boolean trunTask(String taskId, String assignee) {
        taskService.setAssignee(taskId, assignee);
        return true;
    }

3 会签

3.1 什么是会签

和并行网关一样,多个分支都完成,才能走下一步,这个会签是多个通过,会签通过

3.2 会签实现流程

我们画bump文件的时候,对于每一个任务,比如创建申请单,经理审批,总经理审批,每一个就是一个任务,每一个任务完成,自动走到下一个;

现在需求是就对于创建申请单,我们要使用会签,当多个人通过之后,流程才会走到经理审批,也就是对每一个任务节点,都可以使用会签功能;

使用方法是

以后创建流程的时候,就会在当前任务表里面,创建list.size个任务,只要符合条件,就走写一个任务

4 任务监听器

用户接到一个任务了,那么需要给他发一个邮件或者短信,就可以使用任务监听器;

4.1 实现

以上我们选择了以类的形式触发,在任务创建的时候触发;所以我们就需要自己写一个类,之后触发这个类,

定义任务监听类,且类必须实现 org.activiti.engine.delegate.TaskListener 接口

代码语言:javascript复制
public class MyTaskListener implements TaskListener {
    @Override
    public void notify(DelegateTask delegateTask) {
        if(delegateTask.getName().equals("创建出差申请")&&
                delegateTask.getEventName().equals("create")){
            //这里指定任务负责人
            delegateTask.setAssignee("张三");
        }
    }
} 

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

就可以在这个notify方法里面写要触发的事情

写完监听器类之后,

这个里面写路径

5 Activiti添加和查询审批意见

添加审批意见

保存意见到

这个表里面;

查询审批意见

0 人点赞