activiti springboot 結合後方法介紹

https://blog.csdn.net/oChangWen/article/details/51908441

https://tomoya92.github.io/2019/04/24/activiti-env/

 

以下是springboot 結合好的一些基本操作:

controller 層:

public class DemoController {

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

    @Autowired
    private HistoryService historyService;

    private String  deployKey = "myFirstProcess";

}

1. 啓動流程實例,這樣一個流程纔開始

    @ApiOperation("啓動實例")
    @GetMapping("first")
    public void firstDemo(){
     
        //啓動流程
        //設置變量 全局有效
        Map paramMap = new HashMap();
        paramMap.put("p1","p1111");
        paramMap.put("p2","p2222");
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefindKey,paramMap);
        System.out.println("流程實例ID:-->"+processInstance.getId());
        System.out.println("流程定義ID:-->"+processInstance.getProcessDefinitionId());
        System.out.println("流程執行ID:-->"+processInstance.getSuperExecutionId());


    }

2. 流程定義的信息查詢

    @ApiOperation("流程定義的信息查詢")
    @GetMapping("egiht")
    public void egihtDemo(){
        List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery().list();
        for (ProcessDefinition processDefinition : processDefinitionList){
            System.out.println("流程部署ID:"+processDefinition.getDeploymentId());
            System.out.println("流程定義ID:"+processDefinition.getId());
            System.out.println("流程定義Key:"+processDefinition.getKey());
            System.out.println("流程定義Name:"+processDefinition.getName());
            System.out.println("--------------");
        }
    }

3. 流程部署的信息查詢

@ApiOperation("流程部署的信息查詢")
    @GetMapping("seven")
    public void sevenDemo(){
        List<Deployment> deploymentList = repositoryService.createDeploymentQuery().processDefinitionKey("myFirstProcess").list();
        for(Deployment deployment : deploymentList){
            System.out.println("流程部署ID:"+deployment.getId());
            System.out.println("流程部署Name:"+deployment.getName());
            System.out.println("------------");
        }
    }

4.查詢指定人的任務

    @ApiOperation("查詢任務")
    @GetMapping("two")
    public void twoDemo(){
        //查詢任務
        List<Task> taskList = taskService.createTaskQuery().taskAssignee("朱春燕").list();
        System.out.println("朱春燕任務:");
        for(Task task : taskList){
            System.out.println("    任務:-->"+task.getName()+"  流程實例:-->"+task.getProcessInstanceId()+"  TASKID:-->"+task.getId()+"executeId:"+task.getExecutionId());
        }

    }

5.  完成任務

    @ApiOperation("完成任務")
    @GetMapping("three")
    public void threeDemo(){
        //完成任務 完成實例 2501
        //查詢任務
        List<Task> taskList = taskService.createTaskQuery().taskAssignee("朱春燕").processInstanceId("17501").list();

        for (Task task : taskList){
            System.out.println("    完成taskId:"+task.getId()+" 完成任務名稱:"+task.getName());
            taskService.complete(task.getId());
        }
    }


     @ApiOperation("完成任務:指定taskid")
    @GetMapping("five")
    public void fiveDemo(){
        //完成任務 完成實例 2501
        System.out.println("完成任務");
        //查詢任務
        Task task = taskService.createTaskQuery().taskId("27507").singleResult();
        if(task != null){
            System.out.println("    完成taskId:"+task.getId()+" 完成任務名稱:"+task.getName());
            Map paramMap = new HashMap();
            paramMap.put("confirm","no");
            taskService.complete(task.getId(),paramMap);
        }else {
            System.out.println("任務已完成");
        }



    }

6. 刪除流程定義 


    @ApiOperation("刪除指定流程部署")
    @GetMapping("nine")
    public void nineDemo(){
        repositoryService.deleteDeployment("1569",true);

    }


    @ApiOperation("刪除指定流程實例")
    @GetMapping("ten")
    public void tenDemo(){
        runtimeService.deleteProcessInstance("17501","test");
    }

 7. 查詢流程狀態(判斷流程正在執行,還是結束)

public void isProcessEnd(){
		String processInstanceId = "1001";
		ProcessInstance pi = runtimeService//表示正在執行的流程實例和執行對象
						.createProcessInstanceQuery()//創建流程實例查詢
						.processInstanceId(processInstanceId)//使用流程實例ID查詢
						.singleResult();
		if(pi==null){
			System.out.println("流程已經結束");
		}
		else{
			System.out.println("流程沒有結束");
		}
	}

8. 查詢歷史任務

    @ApiOperation("查看歷史任務:指定人的")
    @GetMapping("eleven")
    public void elevenDemo(){
        List<HistoricTaskInstance> historicTaskInstanceList = historyService.createHistoricTaskInstanceQuery().taskAssignee("朱春燕").orderByHistoricTaskInstanceEndTime().desc().list();
        for(HistoricTaskInstance historicTaskInstance : historicTaskInstanceList){
            System.out.println("歷史任務:"+historicTaskInstance.getName() + "TASKID:" + historicTaskInstance.getId()+" 開始時間:"+historicTaskInstance.getStartTime());

        }

    }

9. 查詢歷史流程實例

public void findHistoryProcessInstance(){
		String processInstanceId = "1001";
		HistoricProcessInstance hpi = historyService//與歷史數據(歷史表)相關的Service
						.createHistoricProcessInstanceQuery()//創建歷史流程實例查詢
						.processInstanceId(processInstanceId)//使用流程實例ID查詢
						.singleResult();
		System.out.println(hpi.getId()+"    "+hpi.getProcessDefinitionId()+"    "+hpi.getStartTime()+"    "+hpi.getEndTime()+"     "+hpi.getDurationInMillis());

 

 

表結構介紹:

act_re_deployment 流程部署表 

act_re_prodef 流程定義表

act_ge_bytearray表 用來存資源信息表

act_ru_task;插入了一條任務數據;

act_ru_execution 運行時流程執行表

act_ru_identitylink 是於執行主體相關信息表

act_hi_taskinst 歷史流程實例任務表加了一條任務數據;
act_hi_procinst 歷史流程實例實例表加了一條流程實例相關信息的數據(包括開始時間,結束時間等等信息);
act_hi_identitylink 歷史流程實例參數者的表加了一條數據;
act_hi_actinst 歷史活動節點表加了三條流程活動節點信息的數據(每個流程實例具體的執行活動節點的信息)
    

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章