百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

Springboot 整合flowable工作流引擎

yund56 2025-05-06 16:31 10 浏览

直接上干货

1:引入相关包

我的环境是springboot3.X 所以引入的7.0版本

        <!--工作流 -->
        <dependency>
            <groupId>org.flowable</groupId>
            <artifactId>flowable-spring-boot-starter</artifactId>
            <version>7.0.0</version>
        </dependency>


2:配置相关参数


flowable:
  database-schema-update: true  # 默认false 不自动创建表 true 自动创建表
  async-executor-activate: true #关闭定时任务


3:数据库也配置以下

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/xx?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: xx
    password: xx


4: 把流程配置文件放到目录下 如图

5:部署流程

    /**
     * 流程部署
     * @param processResource 流程文件地址
     */
    public void deployProcess(String processResource,String name) {
        Deployment deploy = repositoryService.createDeployment()
                .addClasspathResource(processResource).name(name)
                .deploy();

        logger.info("部署的Id:"+deploy.getId());
    }

这里传入流程文件的地址 具体使用方法 控制器里调用

    @GetMapping("deploy")
    public void deploy(){
        flowableService.deployProcess("processess/leave1.bpmn20.xml","第一个简单流程图");
    }


6:启动流程

可以通过ID或则KEY启动流程

    /**
     * 执行流程 /启动流程 通过key启动
     * @param processKey
     * @return
     */
    public ProcessInstance startProcessInstanceByKey(String processKey) {
        return runtimeService.startProcessInstanceByKey(processKey);
    }

    /**
     *  执行流程 /启动流程 通过id启动
     * @param id
     * @return
     */
    public ProcessInstance startProcessInstanceById(String id) {
        return runtimeService.startProcessInstanceById(id);
    }

调用方法

这里通过ID启动 ID可以在数据库的act_re_procdef中找到

    @GetMapping("start")
    public String start(){
        String id = "leave1:1:ccdf3b3e-5485-11ef-8292-f67b09581d21";
        ProcessInstance processInstance = flowableService.startProcessInstanceById(id);
        return processInstance.getName();
    }

流程定义存储表


7:查找待审批流程

    /**
     * 等待审批的任务
     * @return
     */
    public List<Task> find() {

   
      List<Task> list =  taskService.createTaskQuery().list();
       list.forEach(task -> {
           System.out.println(task.getId()+"  "+task.getName());
       });
      if(list.size() >0){
          System.out.println("代办任务"+list.size());
      }else{
          System.out.println("没有任务");
      }
      return list;
    }

也可以查询某个用户的待审批

  List<Task> list =  taskService.createTaskQuery().taskAssignee("用户名").list();


8:审批

通过传入审批ID进行审批

 /**
     * 审批 根据ID(每次审批后ID会变化) 审批流程全部完成后会从run-task表中消失
     */
    public void finsh() {
       taskService.complete("b42f7b63-548c-11ef-9a41-f67b09581d21");
    }

相关推荐

Excel表格带单位求和不用愁!2个高效小技巧,轻松搞定!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!——首发于微信号:桃大喵学习记最近有小伙伴私信提问了个问题:“Excel表格数据带单位,如何快速求和?”。相信很多新手小伙...

[office] Excel中Sumproduct函数的使用方法-

Excel中Sumproduct函数的使用方法-SUMPRODUCT和SUMIFS是Excel的两个最强大的函数,用于从表中返回过滤的数据。SUMPRODUCT功能更强大,但SUMIFS更快。您可以...

SUMPRODUCT函数:关于多条件求和,不仅仅是SUMIFS,我也行!

文章最后有彩蛋!好礼相送!SUMPRODUCT函数,作为excel函数公式中的常用功能之一,运用及其广泛。结合它能够处理数据的功能,函数哥将它称之为多条件求和的函数,你可能有疑问了。SUMIF和SUM...

Excel函数公式大全之利用MMULT函数计算两个数组矩阵的乘积

各位Excel天天学的小伙伴们大家好,欢迎收看Excel天天学出品的excel2019函数公式大全课程。今天我们依旧要学习的是Excel函数中的数学函数MMULT函数,计算两个数组的矩阵乘积。今天这个...

Excel中的这个“万能函数”你用过吗?一个顶四个,简单又实用

Hello,大家好,今天跟大家分享一个Excel中的最强大的求和函数,它就是——SUMPRODUCT函数,很多人都将其称之为“万能函数”,条件求和,条件计数等一些常用的功能他就能轻松搞定,逻辑也非常的...

根据关键字条件求和,SUMPRODUCT函数思路清晰!

1职场实例小伙伴们大家好,今天我们来讲解一个关于根据关键字进行条件求和的职场真实案例,这是公众号粉丝后台留言咨询的一个问题,下面我们来通过几组简单的数据还原一下真实的办公情景。如下图所示:A列为一列地...

Excel-万能PRODUCT函数

sumproduct除了可以计算乘积之和,还可以实现单条件求和(代替sumif),多条件求和(代替sumifs),单条件计数(代替countif),多条件计数(代替countifs)我总结了一个通用的...

Excel“王者”级求和函数SUMPRODUCT,职场必学!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!日常工作中我们经常需要对Excel数据求和、计数,今天就跟大家分享一下Excel“王者”级求和函数SUMPRODUCT,灵...

SUMPRODUCT函数满足“或”的要求,实现多条件求和!

1职场实例小伙伴们大家好,今天我们来继续讲解Excel使用中非常实用且强大的函数:SUMPRODUCT函数,上一次我们讲到了SUMPRODUCT函数实现类似SUMIFS函数多条件求和的功能。而今天我们...

整列数据相乘再相加sumproduct函数#excel技巧

今天分享一下像这种表格,我想求它的消费,也就是用它的数量去乘以单价去加上。下一个的数量乘以单价要加上,下一个数量乘以单价。如果小白会这样一步一步的去算,去单价去乘以数量,然后加上单价去乘以数量,一个一...

双向多条件求和,sumifs彻底不行了,但是sumproduct却能轻松搞定

今天我们来解决一个困扰很多Excel新手的问题,它就双向求和,所谓的双向,就是两个方向,如下图所示,我们想要根据【项目】与【费用类别】来实现动态求和效果。【项目】与【费用类别】在数据源中,一个是纵横的...

Excel函数之Sumproduct,7个经典用法,你真的都了解吗?

什么是sumproduct函数以及其基本操作原理?sumproduct函数主要用于对数组中的数值进行相乘后再求和,。该函数最多支持255个参数(数组),这些数组可以是数字单元格引用或区域。它的工作流程...

WPS-Excel表格sumproduct函数一次性算出相乘相加总额

excel表格单纯相加或者相乘大家都会应用,但是有时候我们需要算出相乘相加的总额,这种计算也是可以一次性算出的。今天来教大家怎样在WPS表格中,让数据一次性算出相乘相加的总额,会了这个小技巧,会方便很...

大神级Sumproduct公式这么好用,1分钟学会!

在工作中,一般用不到Sumprodct函数公式,但是真的好用,我们举工作中的3个场景来说明。1、快速相乘相加如下所示,我们各种商品有一个单价,然后对应有一些数量,我们现在需要快速汇总总金额数据有没有小...

万能函数Sumproduct,除了求和和计数外,还可以排名

在众多的Excel函数中,能同时完成求和、计数以及排名功能的函数不多,其中Sumproduct就是其中一个。一、万能函数Sumproduct:功能及语法结构。功能:返回相应区域数组乘积的和。语法结...