Activiti工作流(一):简单使用

Idea 安装activit插件
https://blog.csdn.net/weixin_44467567/article/details/103876746
解决乱码
https://blog.csdn.net/minkeyto/article/details/100707951
画一个简单的请假流程
在这里插入图片描述
创建test.bpmn
在这里插入图片描述
设置填写请假单节点审批人
在这里插入图片描述
同样设置领导审批人节点 审批人
在这里插入图片描述
将test.bpmn改名test.xml,然后右键选择
在这里插入图片描述
生成图片并保存在项目资源路径下
在这里插入图片描述
将test.xml重新改为test.bpmn
在这里插入图片描述
工作流部署

@Test
    public void repository() {
        //1.创建processEngine对象
        //ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        //2.得到RepositoryService实例
        RepositoryService repositoryService = processEngine.getRepositoryService();
        //3.进行部署
        Deployment deployment = repositoryService.createDeployment()//创建deploment对象
                .disableSchemaValidation() //禁用架构验证
                .addClasspathResource("test.bpmn")//添加资源
                .addClasspathResource("test.png")//添加ziyuan
                .name("测试请假流程")//流程名字
                .deploy();//流程的部署
        //4.输出部署的一些信息
        System.out.println(deployment.getId());
        System.out.println(deployment.getName());
    }
ad66d251-a104-11eb-a01c-7670fd4fc2ca
测试请假流程

根据流程编号KEY_启动流程实例
在这里插入图片描述

@Test
    public void ActivitiStartInstance(){
        //获取RuntimrService 对象
        RuntimeService runtimeService = processEngine.getRuntimeService();
        ProcessInstance myTest = runtimeService.startProcessInstanceByKey("myProcess_1");
        //输出实例相关信息
        System.out.println(myTest.getProcessInstanceId());
    }
73173046-a105-11eb-a609-7670fd4fc2ca

查询当前待办的任务

@Test
    public void ActicitiTaskQueryId(){
        //得到TaskService对象
        TaskService taskService = processEngine.getTaskService();
        //根据流程定义的key,负责人assignee来实现当前用户的任务列表查询
        List<Task> taskList = taskService.createTaskQuery()
//                .taskId(assignee)
//                .taskAssignee("赵虎")
                .processInstanceId("73173046-a105-11eb-a609-7670fd4fc2ca")
                .list();
        //任务列表展示
        for (Task task:taskList) {
            System.out.println("流程实例id:"+task.getProcessInstanceId());
            System.out.println("任务id:"+task.getId());
            System.out.println("任务负责人:"+task.getAssignee());
            System.out.println("任务名称:"+task.getName());
        }
    }
流程实例id:73173046-a105-11eb-a609-7670fd4fc2ca
任务id:7319ef6a-a105-11eb-a609-7670fd4fc2ca
任务负责人:张三
任务名称:填写请假单

根据任务id完成当前待办任务

@Test
    public void completeTask(){
        taskService.complete("7319ef6a-a105-11eb-a609-7670fd4fc2ca");
    }

查询当前待办任务

流程实例id:73173046-a105-11eb-a609-7670fd4fc2ca
任务id:3cf61d26-a106-11eb-847b-7670fd4fc2ca
任务负责人:李四
任务名称:领带审批

可以看到填写请假单任务已完成,当前流程进入领导审批节点,完成当前节点任务,该流程结束。
判断当前流程是否已结束

@Test
    public void test6() {
        ProcessInstance pri = processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId("73173046-a105-11eb-a609-7670fd4fc2ca").singleResult();
        if(pri == null){
            System.out.println("流程已结束");
        }else{
            System.out.println("流程未结束");
        }
    }
流程已结束

删除流程部署

    @Test
    public void test4() {
        String deploymentId = "cd655d07-9379-11eb-8e8f-7670fd4fc2ca";
        processEngine.getRepositoryService().deleteDeployment(deploymentId,true);
    }

删除流程实例

    @Test
    public void deleteProcessInstance(){
        String processInstanceId = "ce948298-92bf-11eb-bcc3-7670fd4fc2ca";
        processEngine.getRuntimeService().deleteProcessInstance(processInstanceId , "启动失败删除");
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值