activiti基础应用

花了这么久的时间,终于把所有的异常都撸完,终于可以撸实例了
这里写图片描述

package com.shikun.activiti;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.List;
import java.util.zip.ZipInputStream;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.junit.Test;




public class HellowWorld {
     ProcessEngine  processEngine = ProcessEngines.getDefaultProcessEngine();

    /**
     * 使用默认配置 1、配置文件必须在classpath根目录下
     * 2、配置文件名称必须为activiti-context.xml或者activiti.cfg.xml
     * 3、配置文件中配置对象的id必须为processEngineConfiguration 4、工厂对象的id必须为processEngine
     */
       @Test
        public  void  test1(){
              ProcessEngine  processEngine = ProcessEngines.getDefaultProcessEngine();
        }
       /**
         * 部署流程定义,操作的数据表:act_re_deployment(部署表)、act_re_procdef(流程定义表)、
         * act_ge_bytearray(二进制表)
     * @throws FileNotFoundException 
         */
       @Test
       public void test2() throws FileNotFoundException{
              //创建一个部署构建器对象
           //方式一:加载单个的流程定义文件
            DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment();
              //读取流程定义文件
            /*    deploymentBuilder.addClasspathResource("qjlc.bpmn");
              deploymentBuilder.addClasspathResource("qjlc.png");
              //部署流程定义
              Deployment deployment = deploymentBuilder.deploy();
              System.out.println(deployment.getId());*/

            //方式二:加载zip文件
              ZipInputStream zipInputStream  = new ZipInputStream( new FileInputStream(new  File("d:\\process.zip")));
              deploymentBuilder.addZipInputStream(zipInputStream);
              deploymentBuilder.deploy();
       }
       /**
        * 查询流程定义,操作数据表:act_re_procdef
        */
       @Test
       public void test3(){
             //流程定义查询对象
           ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery();
           List<ProcessDefinition> list = query.list();
           for (ProcessDefinition processDefinition : list) {
               System.out.println("id = "+processDefinition.getId()+"name = "+processDefinition.getName()+"varsion = "
                                              +processDefinition.getVersion()+"key = " +processDefinition.getKey());
        }
       }

       /**
        * 根据流程定义启动流程实例,操作的数据表:act_ru_execution(流程实例表)、act_ru_task(任务表)
        * 方式二:根据流程定义key启动流程实例(建议)-----可以根据当前最新版本的流程定义启动流程实例
        */
       @Test
       public void test4(){
//          String processDefinitionId = "qjlc:1:304";
//          ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceById(processDefinitionId );
//         System.out.println(processInstance.getId());
               String processDefinitionKey ="qjlc";
               ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey);
               System.out.println(processInstance.getId()+processInstance.getProcessDefinitionId());
       }
       /**
        * 查询个人任务,操作的数据表:act_ru_task(任务表)
        */
       @Test
        public void test6() {
            // 任务查询对象
            TaskQuery query = processEngine.getTaskService().createTaskQuery();
            query.taskAssignee("张三");// 根据办理人过滤
            query.orderByTaskCreateTime().desc();
            List<Task> list = query.listPage(0, 10);
            for (Task task : list) {
                System.out.println("id = " + task.getId() + " name = "
                        + task.getName() + " processInstanceId = "
                        + task.getProcessInstanceId());
            }
        }
       /**
         * 办理个人任务,操作的数据表:act_ru_execution(流程实例表)、act_ru_task(任务表)
         */
        @Test
       public void test7(){
            TaskQuery query = processEngine.getTaskService().createTaskQuery();
            query.taskAssignee("张三");
            query.orderByTaskCreateTime().desc();
            List<Task> list = query.list();
            for (Task task : list) {
                System.out.println(task.getId());
            }
       }
        /**
         * 删除流程定义
         */
        @Test
        public void test8(){
              String deploymentId = "701";   //部署id
            boolean cascade = true;   //级联删除
            processEngine.getRepositoryService().deleteDeployment(deploymentId, cascade );
        }
        /**
         * 删除流程实例
         */
        @Test
        public void test9(){
            String processInstanceId = "1201";
            String deleteReason = "不请假了 哈哈哈";
            processEngine.getRuntimeService().deleteProcessInstance(processInstanceId, deleteReason);
        }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值