1.源码地址:https://github.com/heidaodageshiwo/springbootactivity
Activiti之并行网关
所谓排他网关 顾名思义 执行到该网关,会有多条线路同时并行执行,当都执行完才继续执行后面的;
右侧 ParallelGateway就是并行网关;
我们修改后的业务是 学生请假审批提交,班长和班主任审批,当他们都审批完 才最终让校长审批。
部署:
还剩班主任审批:
最终都完成了才到了校长审批这一环节:
这一环节就到此结束了。
@Autowired
RepositoryService repositoryService;
@Autowired
RuntimeService runtimeService;
@Autowired
TaskService taskService;
@RequestMapping("/StudentLeaveProcess5_deploy")
public String deploy(){
Deployment deployment=repositoryService.createDeployment()
.addClasspathResource("StudentLeaveProcess/StudentLeaveProcess4/StudentLeaveProcess5.bpmn") // 加载资源文件
.addClasspathResource("StudentLeaveProcess/StudentLeaveProcess4/StudentLeaveProcess5.png") // 加载资源文件
.name("学生请假流程5") // 流程名称
.deploy(); // 部署
System.out.println("流程部署ID"+deployment.getId());
System.out.println("流程部署Name"+deployment.getName());
System.out.println("流程部署Key"+deployment.getKey());
System.out.println("流程部署Date"+deployment.getDeploymentTime());
return "StudentLeaveProcess5_deploy";
}
@RequestMapping("/StudentLeaveProcess5_start")
public String start(){
ProcessInstance processInstance=runtimeService.startProcessInstanceByKey("studentLeaveProcess5");
System.out.println("流程实例ID"+processInstance);
System.out.println("流程定义ID");
return "StudentLeaveProcess5_start";
}
/**
* 查看任务
*/
@RequestMapping("/StudentLeaveProcess5_findTask")
public String findTask(){
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 "StudentLeaveProcess5_findTask";
}
/**
* 完成任务
*/
@RequestMapping("/StudentLeaveProcess5_completeTask")
public String completeTask(){
taskService.complete("85005");
return "StudentLeaveProcess5_completeTask";
}
/**
* 完成任务
*/
@RequestMapping("/StudentLeaveProcess5_completeTask1")
public String completeTask1(){
taskService.complete("87504");
return "StudentLeaveProcess5_completeTask";
}
/**
* 完成任务
*/
@RequestMapping("/StudentLeaveProcess5_completeTask2")
public String completeTask23(){
taskService.complete("87507");
return "StudentLeaveProcess5_completeTask";
}