//流程圖的畫法:鼠標放圖形中間,出現大黑點時候,拖到下一個圖形處,即可連線。部門審批,總經理審批,雙擊中間輸入文字即可。
這個流程中的用戶是寫死的。后面會設置動態用戶。
import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.repository.Deployment; import org.activiti.engine.repository.ProcessDefinition; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("/activiti") public class ActivitiController { @Autowired private RepositoryService repositoryService; @Autowired private RuntimeService runtimeService; @Autowired private TaskService taskService; @RequestMapping("hello_world") public void helloWorld() { //根據bpmn文件部署流程 Deployment deploy = repositoryService.createDeployment() .addClasspathResource("processes/leave.bpmn") .deploy(); //獲取流程定義 processes/leave.bpmn ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deploy.getId()).singleResult(); //啟動流程定義,返回流程實例 ProcessInstance pi = runtimeService.startProcessInstanceById(processDefinition.getId()); String processId = pi.getId(); System.out.println("流程創建成功,當前流程實例ID:"+processId); Task task=taskService.createTaskQuery().processInstanceId(processId).singleResult(); System.out.println("執行前,任務名稱:"+task.getName()); taskService.complete(task.getId()); task = taskService.createTaskQuery().processInstanceId(processId).singleResult(); System.out.println("task為null,任務執行完畢:"+task); } }
啟動項目 訪問:http://loaclhost:8080/acticiti/hello_world
注意:bpmn文件的路徑不要錯了。