warm-flow介绍

介绍

此项目是极其简单的工作流,没有太多设计,代码量少,并且只有6张表,个把小时就可以看完整个设计。使用起来方便

  1. 支持简单的流程流转,比如跳转、回退、审批
  2. 支持角色、部门和用户等权限配置
  3. 官方提供简单流程封装demo项目,很实用
  4. 支持多租户
  5. 支持代办任务和已办任务,通过权限标识过滤数据
  6. 支持互斥网关,并行网关(会签、或签)
  7. 可退回任意节点
  8. 支持条件表达式,可扩展
  9. 同时支持spring和solon
  10. 兼容java8和java17,理论11也可以
  11. 支持不同orm框架和数据库扩展

git地址:https://gitee.com/warm_4/warm-flow.git

demo项目

springboot:hh-vue演示地址
solon:warm-sun演示地址

快速开始

在开始之前,我们假定您已经:

  • 熟悉 Java 环境配置及其开发
  • 熟悉 关系型 数据库,比如 MySQL
  • 熟悉 Spring Boot或者Solon 及相关框架
  • 熟悉 Java 构建工具,比如 Maven

导入sql

导入组件目录下文件https://gitee.com/warm_4/warm-flow/blob/master/sql/warm-flow.sql

表结构

https://gitee.com/warm_4/warm-flow/wikis/%E8%A1%A8%E7%BB%93%E6%9E%84?sort_id=9330548

maven依赖

springboot项目

<dependency>
      <groupId>io.github.minliuhua</groupId>
      <artifactId>warm-flow-mybatis-sb-starter</artifactId>
      <version>最新版本</version>
</dependency>

solon项目

<dependency>
      <groupId>io.github.minliuhua</groupId>
      <artifactId>warm-flow-mybatis-solon-plugin</artifactId>
      <version>最新版本</version>
</dependency>

支持数据库类型

  • mysql
  • oracle
  • sqlserver

支持orm框架类型

  • mybatis及其增强组件
  • jpa
  • easy-query
  • wood
  • sqltoy
  • beetlsql

有想扩展其他orm框架和数据库的可加qq群联系群主

代码示例

以下测试代码请详见hh-vue项目中的hh-vue/hh-admin/src/test/java/com/hh/test/service/impl/FlowTest.java

部署流程
public void deployFlow() throws Exception {
        String path = "/Users/minliuhua/Desktop/mdata/file/IdeaProjects/min/hh-vue/hh-admin/src/main/resources/leaveFlow-serial.xml";
        System.out.println("已部署流程的id:" + defService.importXml(new FileInputStream(path)).getId());
    }
发布流程
public void publish() throws Exception {
        defService.publish(1212437969554771968L);
    }
开启流程
public void startFlow() {
        System.out.println("已开启的流程实例id:" + insService.start("1", getUser()).getId());
    }
流程流转
public void skipFlow() throws Exception {
//        // 通过当前代办任务流转
//        insService.skip()
        
         // 通过实例id流转
        Instance instance = insService.skipByInsId(1212438548456804352L, getUser().skipType(SkipType.PASS.getKey())
                .permissionFlag(Arrays.asList("role:1", "role:2")));
        System.out.println("流转后流程实例:" + instance.toString());
    }

流程设计器

演示图

### Warm-Flow 数据库表结构查询与操作 Warm-Flow 是一个用于管理业务流程的工作流引擎,在其数据库设计中,主要涉及多个核心表来存储不同类型的元数据和运行时数据。对于 warm-flow 的表结构查询与操作,可以基于官方提供的文档以及 SQL 脚本来了解具体的细节。 #### 表结构概述 根据 warm-flow 维基页面中的描述,warm-flow 使用了一套标准化的表结构来支持工作流定义、实例化及其执行过程[^1]。这些表格通常包括但不限于: - **WF_FLOW_DEFINITION**: 存储工作流模板信息。 - **WF_PROCESS_INSTANCE**: 记录每一个正在运行或已完成的工作流实例详情。 - **WF_TASK**: 描述任务节点属性及状态变更情况。 - **WF_HISTORIC_TASK**: 历史任务记录表,保存已经结束的任务的相关信息。 以上提到的一些基础表名可能因版本差异而有所不同;具体名称应当参照实际部署环境下的配置文件或者通过查看建表语句确认。 #### 升级注意要点 随着 warm-flow 版本迭代更新,某些字段的数据类型可能会发生变化。例如,在一次特定升级过程中(如 v1.2.6),`flow_status` 字段由原来的数值型更改为字符串类型,这意味着任何依赖此字段的应用程序都需要相应调整以适应新的数据格式[^2]。 #### 监听器机制增强 自 v1.1.4 开始引入了监听器生命周期的概念,并增加了对创建任务监听的支持,同时还优化了一些功能特性,比如允许起始节点也能够被纳入历史任务记录之中[^3]。这表明 warm-flow 不仅关注于基本的功能实现,同时也注重提升系统的灵活性和可扩展性。 为了更好地理解和操作 warm-flow 中涉及到的各种表结构,建议开发者们定期查阅最新发布的官方指南和技术博客文章获取最准确的信息源码示例。 ```sql -- 示例SQL:查询所有未完成的任务列表 SELECT * FROM WF_TASK WHERE STATUS != 'COMPLETED'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值