工作流activiti

Activiti

工作流引擎

按照预定义规则(BPMN规范)进行部署, 就可以将业务和节点流程实现分离

通过框架实现节点的自动流转

BPMN

BPMN(Business Process Model And Notation),业务流程模型和符号,是由BPMI(Business Process Management Initiative)开发的一套的业务流程建模符号,使用BPMN提供的符号可以创建业务流程。

在Activiti的工作流流程中通过XML配置文件表示业务流程

Activiti使用步骤

1.集成activiti和业务环境

2.通过activiti建模工具定义业务流程构建.bpmn流程文件

3.通过activiti提供的api向activiti中部署.bpmn文件

4.每次业务流程开始启动一个对应的流程实例,每个流程实例的执行互不影响

5.查询待办任务和处理待办任务都可以通过activiti直接进行处理

6.流程结束

Activiti调用

创建部署
    //创建engine对象    
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    //创建repositoryService对象
    RepositoryService repositoryService = processEngine.getRepositoryService();
    //进行部署
    Deployment deployment = repositoryService.createDeployment()
            .addClasspathResource("bpmn/leave.bpmn") //bpmn配置文件
            .addClasspathResource("bpmn/leave.png") //bpmn对应流程图
            .name("流程名")
            .deploy();
启动流程
    //创建engine对象
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    //创建runtimeService对象
    RuntimeService runtimeService = processEngine.getRuntimeService();
    //根据流程定义的key启动流程实例,这个key是在定义bpmn的时候设置的
    ProcessInstance instance = runtimeService.
                                startProcessInstanceByKey("leaveProcess");

任务查询
//任务负责人
String assignee = "cfjg";
//创建engine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//创建taskService对象
TaskService taskService = processEngine.getTaskService();
//获取任务集合
List<Task> taskList = taskService.createTaskQuery()
        //指定流程key
        .processDefinitionKey("leaveProcess")
        //指定处理人
        .taskAssignee(assignee)
        //查询集合
        .list();

任务处理
//任务负责人
String assignee = "cfjg";
//创建engine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//创建taskService对象
TaskService taskService = processEngine.getTaskService();
//获取任务集合
List<Task> taskList = taskService.createTaskQuery()
        //指定流程key
        .processDefinitionKey("leaveProcess")
        //指定处理人
        .taskAssignee(assignee)
        //查询集合
        .list();

任务处理
//任务负责人
String assignee = "cfjg";
//创建engine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//创建taskService对象
TaskService taskService = processEngine.getTaskService();
//获取任务集合
List<Task> taskList = taskService.createTaskQuery()
        //指定流程key
        .processDefinitionKey("leaveProcess")
        //指定处理人
        .taskAssignee(assignee)
        //查询集合
        .list();

任务处理
//任务负责人
String assignee = "cfjg";
//创建engine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//创建taskService对象
TaskService taskService = processEngine.getTaskService();
//获取任务集合
List<Task> taskList = taskService.createTaskQuery()
        //指定流程key
        .processDefinitionKey("leaveProcess")
        //指定处理人
        .taskAssignee(assignee)
        //查询集合
        .list();

任务处理
//任务负责人
String assignee = "cfjg";
//创建engine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//创建taskService对象
TaskService taskService = processEngine.getTaskService();
//获取任务集合
List<Task> taskList = taskService.createTaskQuery()
        //指定流程key
        .processDefinitionKey("leaveProcess")
        //指定处理人
        .taskAssignee(assignee)
        //查询集合
        .list();
​
//在查询的基础上,对查询到的结果进行处理
    for(Task task:taskList){
        //添加处理意见
        taskService.addComment(task.getId(),task.getProcessInstanceId(),task.getName()+"审批通过");
        //完成处理
        taskService.complete(task.getId());
    }

历史审批
//任务负责人
String assignee = "cfjg";
//创建engine对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//创建historyService对象
HistoryService historyService = processEngine.getHistoryService();
//获取历史审核信息
List<HistoricActivityInstance> list = historyService
            .createHistoricActivityInstanceQuery()
            .activityType("userTask")//只获取用户任务
            .processInstanceId(processInstanceId)
            .taskAssignee(taskAssignee)
            .finished()
            .list();
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值