activiti 快速入门--排他网关(3)

例如我们有这么个需求,也就是请假大于等于3天的不仅需要经理审批还需要总经理审批,小于3天的直接由经理审批就可以了,

具体实现如下:

1.      在前面原有基础上进行修改,修改bpmn流程图,添加多一个task以及gateway->ExclusiveGateway:

 

点击链接线,设置main cogfig ->condition:

       线上的字在general->name填上就可以了

2        重新部署下流程图,开启流程,然后提交申请:

 

public void completeTask(){

        Map<String,Object>map = newHashMap<String,Object>();

        map.put("user", "cwh");

        map.put("day",3);//对应流程图中的condition ${day}

        StringtaskId = "37505";

        processEngine.getTaskService().complete(taskId,map);//完成任务

        System.out.println("完成任务,任务ID"+taskId);

}

 map.put("day",3)//对应流程图中的condition ${day}
我们提交一个请假天数为 3 的,那么正确的话流程会这么走   经理审批 -> 总经理审批 -> 结束

3        经理审批:

 

   /**

     * 经理审批

     */

    @Test

    public void completeTask1(){

        Map<String,Object>map = newHashMap<String,Object>();

        Stringtaskid = "45005";

        map.put("user", "caiwenhao");

        TaskServicetaskService = processEngine.getTaskService();

        processEngine.getTaskService().complete(taskid,map);//完成任务

        System.out.println("完成任务,任务ID"+taskid);

    }


经理审批提交后将进入排他网关,如果经理审批后提交到的是总经理审批那么流程正确

运行后查看数据库task表发现确实到了总经理审批:


4    总经理审批

首先查找下上面分配给总经理‘caiwenhao’的任务

 

 然后提交任务:

 

  /**

     * 总经理审批

     */

    @Test

    public void completeTask2(){

        TaskServicetaskService = processEngine.getTaskService();

        Stringtaskid = "47503";

        processEngine.getTaskService().complete(taskid);//完成任务

        System.out.println("完成任务,任务ID"+taskid);

}

运行后则流程结束

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值