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

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

 

Activiti之排他网关

 

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

 

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

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第1张图片

 

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第2张图片

 

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

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

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

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

 

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

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第3张图片

 

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第4张图片

 

班主任审批连线表达式;

 

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

我们找到校长审批的id;

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第5张图片

 

是flow8;

 

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

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第6张图片

 

部署:

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第7张图片

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第8张图片

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第9张图片

启动:

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第10张图片

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第11张图片

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第12张图片

 

查看任务张三:

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第13张图片

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第14张图片

 

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第15张图片

 

完成:

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第16张图片

 

 

 

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第17张图片

 

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第18张图片

springboot整合activity6_Activiti之排他网关(无废话版)--------------------------------------------(十二)_第19张图片

 

 @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 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 variables = new HashMap();
        variables.put("days", 8);
        taskService.complete("62509",variables);
        return "StudentLeaveProcess3_completeTask222";

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

    }

 

流程完毕

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(activity,springboot)