# warm-flow-test
**Repository Path**: cw8086/warm-flow-test
## Basic Information
- **Project Name**: warm-flow-test
- **Description**: Warm-Flow的测试模块
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 35
- **Created**: 2026-06-25
- **Last Updated**: 2026-06-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Warm-Flow工作流
## 介绍
> Dromara Warm-Flow,国产的工作流引擎,以其简洁轻量、五脏俱全、灵活扩展性强的特点,成为了众多开发者的首选。它不仅可以通过**jar包快速集成设计器**,同时原生支持**经典和仿钉钉双模式**,还具备以下显著优势:
- **简洁易用**:仅包含7张表,代码量少,上手和集成速度快。
- **审批功能全面**:支持通过、退回、驳回到上一个任务、撤销、任意跳转、转办、终止、会签、票签、委派、加减签、互斥和并行网关等多种审批操作,以及条件表达式、办理人表达和监听器等高级功能。
- **流程设计器**:通过jar包形式快速集成到项目,支持节点属性扩展,原生支持经典和仿钉钉双模式
- **流程图**:自带流程图查看,通过jar包快速集,功能扩展,原生支持经典和仿钉钉双模式。
- **条件表达式**:内置常见的和spel条件表达式,支持自定义扩展。
- **办理人变量表达式**:内置${handler}和spel格式的表达式,满足不同场景需求,灵活可扩展。
- **监听器**:提供四种监听器,支持不同作用范围和spel表达式,参数传递灵活,支持动态权限。
- **流程变量**:在整个流程办理过程起到重要的角色,如办理人表达式中,传入变量进行动态指定办理人。
- **ORM框架支持**:支持MyBatis、Mybatis-Plus、Mybatis-Flex、Jpa、Easy-Query和BeetlSql,后续将扩展支持其他框架
- **数据库支持**:支持MySQL、Oracle、PostgreSQL和SQL Server,其他数据库只需要转换表结构即可支持。
- **多租户与软删除**:流程引擎自身维护多租户和软删除实现,也可使用对应ORM框架的实现方式。
- **兼容性**:同时支持Spring和Solon,兼容Java8、Java17、Java21。
- **实战项目**:官方提供基于Ruoyi-Vue封装的实战项目,极具参考价值。
```shell
希望一键三连,你的⭐️ Star ⭐️是我持续开发的动力,项目也活的更长
```
> **[github地址](https://github.com/dromara/warm-flow.git)** | **[gitee地址](https://gitee.com/dromara/warm-flow.git)** | **[gitCode地址](https://gitcode.com/dromara/warm-flow)**
## 演示地址
- admin/admin123
演示地址:http://www.warm-flow.cn
## 使用文档与联系方式
https://www.warm-flow.com/
## 组件所需脚本
- 首次导入,先创建数据库,找到对应数据库的全量脚本[warm-flow-all.sql](https://gitee.com/dromara/warm-flow/tree/master/sql/mysql),执行
- 如果版本更新,找到对应数据库的更新版本,比如xx-upgrade,[warm-flow_x.x.x.sql](https://gitee.com/dromara/warm-flow/tree/master/sql/mysql/v1-upgrade),执行
## 官网流程定义xml案例
[官网九套流程定义xml](https://gitee.com/dromara/warm-flow-test/tree/master/warm-flow-core-test/src/main/resources)
## 子流程、签收和取消签收示例
后端公共示例代码位于 `warm-flow-core-test/src/main/java/org/dromara/warm/flow/core/example`:
- `WarmFlowExampleService.subProcessExample()`:返回同步子流程父流程和子流程定义
- `WarmFlowExampleService.deploySubProcessExample(defService)`:先部署子流程,再部署父流程
- `WarmFlowExampleService.taskClaimExample()`:返回签收、取消签收接口和 SDK 调用信息
- `WarmFlowExampleService.claimTask(taskId)`:签收任务
- `WarmFlowExampleService.unclaimTask(taskId)`:取消签收任务
同步子流程 JSON 资源:
- `warm-flow-core-test/src/main/resources/warm-sub-process-parent-demo.json`
- `warm-flow-core-test/src/main/resources/warm-sub-process-child-demo.json`
Spring Boot 和 Solon 示例接口路径一致:
```text
GET /warm-flow/example/sub-process
POST /warm-flow/example/sub-process/deploy
GET /warm-flow/example/task-claim
POST /warm-flow/example/task-claim/claim/{taskId}
POST /warm-flow/example/task-claim/unclaim/{taskId}
```
前端示例已迁移到 `warm-flow-front-test`,启动 `warm-flow-sb-test` 或 `warm-flow-solon-test` 后,直接打开:
```text
warm-flow-front-test/index.html
```
页面中填写后端地址,例如 `http://localhost:8080`,即可调用子流程部署、签收和取消签收示例接口。
后端 SDK 调用示例:
```java
FlowEngine.taskService().claim(100L, FlowParams.build()
.handler("u1")
.permissionFlag(Collections.singletonList("user:1")));
FlowEngine.taskService().unclaim(100L, FlowParams.build()
.handler("u1"));
```
> 签收和取消签收接口需要依赖已包含 `TaskService#claim(Long, FlowParams)`、`TaskService#unclaim(Long, FlowParams)` 的 warm-flow-core 版本。
## 测试代码
> 测试代码[warm-flow-test](https://gitee.com/dromara/warm-flow-test)项目中,warm-flow-xxx-test模块的测类
### 支持数据库类型
* [x] mysql
* [x] oracle
* [x] postgresql
* [ ] 达梦
* [ ] 人大金仓
* [ ] GaussDB
* [ ] oceanbase
* [ ] sqlserver
* [ ] ......
### orm扩展包
* [x] mybatis
* [x] mybatis-plus
* [x] jpa
* [x] mybatis-flex
* [x] easy-query
* [ ] ......
> **有想扩展其他orm框架和数据库的可加qq群联系群主**
## 你可以请作者喝杯咖啡表示鼓励

### 特别感谢JetBrains对开源项目支持