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";
}