springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)

1.源码地址:https://github.com/heidaodageshiwo/springbootactivity

 

Activiti之排他网关

 

所谓排他网关 顾名思义 执行到该网关,根据条件只能走一条执行线路;

 

在右侧 palette中 的Gateway 有个 ExclusiveGateway 即为默认网关;

 

QQé´îæµ20160806210112.jpg

 

这里我们规定  根据请假天数,来具体让谁来审批,

请假天数小于3天,班长审批;

请假天数小于7天,大于等于3天,班主任审批;

请假天数大于等于7天,校长审批;

 

这里我们依然用表达式来实现;

2.jpg

 

3.jpg

 

班主任审批连线表达式;

 

至于校长审批,我们不需要再设置表达式了,排他网关可以指定默认的执行线路;

我们找到校长审批的id;

 

是flow8;

 

然后我们选中 排他网关,设置默认执行的线路;

 

部署:

启动:

 

查看任务张三:

 

 

完成:

 

 

 

 

 

 @Autowired
    RepositoryService repositoryService;
    @Autowired
    RuntimeService runtimeService;
    @Autowired
    TaskService taskService;

    @RequestMapping("/StudentLeaveProcess31_deploy")
    public String deploy() {
        Deployment deployment = repositoryService.createDeployment()
                .addClasspathResource("StudentLeaveProcess/StudentLeaveProcess3/StudentLeaveProcess3.bpmn")  // 加载资源文件
                .addClasspathResource("StudentLeaveProcess/StudentLeaveProcess3/StudentLeaveProcess3.png")   // 加载资源文件
                .name("学生请假流程2")  // 流程名称
                .deploy();
        System.out.println("流程部署ID:" + deployment.getId());
        System.out.println("流程部署Name:" + deployment.getName());
        return "StudentLeaveProcess31_deploy";
    }
//    studentLevaeProcess2

    @RequestMapping("/StudentLeaveProcess3_start")
    public String start() {
        ProcessInstance processInstance = runtimeService.
                startProcessInstanceByKey("studentLevaeProcess3");
        System.out.println("流程实例ID" + processInstance.getId());
        System.out.println("流程定义ID" + processInstance.getProcessDefinitionId());
        return "StudentLeaveProcess3_start";
    }


    @RequestMapping("/StudentLeaveProcess3_findTask1")
    public String StudentLeaveProcess21_findTask1() {
        List<Task> taskList = taskService // 任务相关Service
            .createTaskQuery() // 创建任务查询
            .taskAssignee("张三") // 指定某个人
            .list();
        for (Task task : taskList) {
            System.out.println("任务ID:" + task.getId());
            System.out.println("任务名称:" + task.getName());
            System.out.println("任务创建时间:" + task.getCreateTime());
            System.out.println("任务委派人:" + task.getAssignee());
            System.out.println("流程实例ID:" + task.getProcessInstanceId());
        }
        return "StudentLeaveProcess3_findTask1";
    }
    @RequestMapping("/StudentLeaveProcess3_completeTask222")
    public String StudentLeaveProcess2_completeTask222() {
        Map<String, Object> variables = new HashMap<String, Object>();
        variables.put("days", 8);
        taskService.complete("62509",variables);
        return "StudentLeaveProcess3_completeTask222";

    }
    @RequestMapping("/StudentLeaveProcess3_completeTask211122")
    public String StudentLeaveProcess2_completeTask2111122() {
        Map<String, Object> variables = new HashMap<String, Object>();
        taskService.complete("65005");
        return "StudentLeaveProcess3_completeTask221112";

    }

 

流程完毕

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值