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 历史活动节点表加了三条流程活动节点信息的数据(每个流程实例具体的执行活动节点的信息)
    

 

 

 

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