# warm-flow工作流
**Repository Path**: zengjavatom/warm-flow
## Basic Information
- **Project Name**: warm-flow工作流
- **Description**: 🎉此项目是极其简单的工作流,没有太多设计,代码量少,并且只有6张表,一个小时就可以看完整个设计。使用起来方便
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 693
- **Created**: 2024-01-15
- **Last Updated**: 2024-01-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 介绍
此项目是极其简单的工作流,没有太多设计,代码量少,并且只有6张表,个把小时就可以看完整个设计。使用起来方便
1. 支持简单的流程流转,比如跳转、回退、审批
2. 支持角色、部门和用户等权限配置
3. 官方提供简单流程封装demo项目,很实用
4. 支持多租户
5. 支持代办任务和已办任务,通过权限标识过滤数据
6. 支持互斥网关,并行网关(会签、或签)
7. 可退回任意节点
8. 支持条件表达式,可扩展
9. 同时支持spring和solon
10. 兼容java8和java17,理论11也可以
> **可二开、商用或者再开源,但请注明出处,保留代码注释中的作者名**
**联系方式**
qq群:778470567

**git地址**:https://gitee.com/warm_4/warm-flow.git
**demo项目**:
springboot:[hh-vue](https://gitee.com/min290/hh-vue) |[演示地址](http://www.hhzai.top:81)
solon:[warm-sun](https://gitee.com/min290/warm-sun.git) |[演示地址](http://www.warm-sun.vip)
**vue3版本流程设计器**:
目前是和前端项目代码在一起
https://gitee.com/min290/warm-vue3.git
## 快速开始
在开始之前,我们假定您已经:
* 熟悉 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项目**
```maven
io.github.minliuhua
warm-flow-spring-boot-starter
最新版本
```
**solon项目**
```maven
io.github.minliuhua
warm-flow-solon-plugin
最新版本
```
### 支持数据库类型
* [x] mysql
### 支持orm框架类型
* [x] mybatis及其增强组件
## 流程设计
### 演示图
### 新增定义
流程编码和流程版本:确定唯一
审批表单路径:记录代办任务需要显示的代办信息页面,保存下代办详情页的路径,点击代办时候获取这个路径,动态加载这个页面

### 流程绘制
前端通过logic-flow画图,得到的json转成流程组件所需的xml格式
后台解析xml保存流程表flow_definition、flow_node、flow_skip


## 流程流转
### 开启流程实例
demo项目已经准备了五套流程,以及开启流程代码,开启流程会直接执行到开始节点后一个节点


### 提交流程
提交流程后,流程流转到代表任务,由流程设计中的对应权限人去办理


### 办理流程
如果是互斥网关则会判断是否满足条件



### 驳回流程

## 流程图
流程图根据前端返回的节点坐标,通过后端Graphics2D进行绘制,最终返回图片给前端展示


## 条件表达式
目前内置了大于、大于等、等于、不等于、小于、小于等于、包含、不包含,并且支持扩展
扩展需要实现ExpressionStrategy.java或者继承ExpressionStrategyAbstract.java
并且通过这个方法进行注册ExpressionUtil.setExpression


## 流程规则
[流程规则 - Wiki - Gitee.com](https://gitee.com/warm_4/warm-flow/wikis/流程规则)
## 常见问题
[常见问题 - Wiki - Gitee.com](https://gitee.com/warm_4/warm-flow/wikis/常见问题)
## **更新记录和未来计划**
[更新记录和未来计划 - Wiki - Gitee.com](https://gitee.com/warm_4/warm-flow/wikis/更新记录和未来计划?sort_id=8390375)
## 你可以请作者喝杯咖啡表示鼓励
