# workflow
**Repository Path**: xiaoweiweiwei/workflow
## Basic Information
- **Project Name**: workflow
- **Description**: 本项目在若依(RuoYi-Vue)分离版的基础上,集成了一套轻量级、自定义的工作流引擎。不同于集成 Flowable 或 Activiti 等庞大的工作流引擎,本项目采用LogicFlow作为前端流程设计器,配合后端自定义的流程执行引擎,实现了流程设计、表单配置、流程流转、审批办理等核心功能。设计目标是提供一个简单、可控、易于扩展的工作流解决方案。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2026-02-12
- **Last Updated**: 2026-04-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# RuoYi-Vue-Workflow
RuoYi-Vue-Workflow v3.8.7
基于 RuoYi-Vue 的轻量级自定义工作流管理系统
## 💐 致谢 (Acknowledgments)
本项目基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 框架二次开发。感谢若依团队提供的优秀开源框架,为本项目提供了稳健的权限管理、代码生成和系统基础架构支持。
## 📖 项目介绍
本项目在若依(RuoYi-Vue)分离版的基础上,集成了一套**轻量级、自定义的工作流引擎**。不同于集成 Flowable 或 Activiti 等庞大的工作流引擎,本项目采用**LogicFlow**作为前端流程设计器,配合后端自定义的流程执行引擎,实现了流程设计、表单配置、流程流转、审批办理等核心功能。
设计目标是提供一个**简单、可控、易于扩展**的工作流解决方案,特别适合中小型项目或对流程引擎有深度定制需求的场景。
## 🚀 核心功能:工作流模块 (Workflow Module)
本项目的核心亮点在于完全自主设计的工作流模块,实现了从设计到执行的闭环。
### 1. 设计思路
- **前端驱动设计**:集成 [LogicFlow](http://logic-flow.org/),支持拖拽式流程设计。
- **保存即发布**:简化流程版本管理,保存流程定义时自动解析 JSON 并生成后端执行所需的节点与边索引。
- **选流程驱动**:启动流程时,先选择流程定义,再加载对应的动态表单,最后提交发起。
- **读写分离**:设计态(Def)与运行态(Instance)数据分离,保证运行效率。
### 2. 核心功能特性
- **可视化流程设计**:支持用户节点、开始/结束节点、网关等组件的拖拽配置。
- **动态表单引擎**:支持为每个流程配置独立的业务表单(JSON配置),流程启动时自动渲染。
- **灵活的审批人配置**:
- 指定用户
- 指定角色
- 发起人自选
- **复杂流转逻辑**:
- **会签(Countersign)**:支持按比例(如 >50%)通过,自动取消剩余任务。
- **网关决策**:支持基于表单数据的条件分支判断。
- **全生命周期管理**:
- **我的申请**:查看自己发起的流程状态。
- **待办/已办**:审批任务管理。
- **流程监控**:管理员可强制终止、删除流程实例。
- **首页仪表盘**:集成工作流统计数据(待办数、申请数、已办数)及趋势图表。
### 3. 技术实现方案
#### 前端技术栈
- **Vue 3 + Element Plus**:现代化 UI 交互。
- **LogicFlow**:专业的流程图编辑框架,用于 `wf_process_def` 的图形化设计。
- **ECharts**:用于首页流程数据分析图表。
#### 后端技术栈 (Custom Engine)
- **自定义执行引擎**:不依赖 Flowable/Activiti,完全基于数据库表结构实现流转逻辑。
- **核心数据模型**:
- `wf_process_def`: 存储流程定义及 LogicFlow JSON 数据。
- `wf_form_def`: 存储动态表单配置。
- `wf_node_index` / `wf_edge_index`: 扁平化的图结构索引,用于快速查询下一节点。
- `wf_instance`: 流程运行实例。
- `wf_task`: 待办/已办任务记录。
- `wf_task_log`: 全量的审批操作日志。
- **状态管理**:使用 `WorkflowConstants` 统一管理状态(TODO, DONE, CANCEL等),拒绝魔法值。
## 🛠️ 环境要求
- **JDK**: 1.8+
- **MySQL**: 5.7+
- **Redis**: 3.0+
- **Node.js**: 14+ (推荐 16.x)
- **Maven**: 3.0+
## 📦 安装与部署
### 1. 克隆项目
```bash
git clone https://gitee.com/xiaoweiweiwei/workflow.git
```
### 2. 后端部署
1. 打开 `RuoYi-Vue` 目录(IntelliJ IDEA)。
2. 创建数据库 `ry-vue` 并导入 `sql` 目录下的脚本(确保包含 `wf_` 开头的工作流表)。
3. 修改 `application-druid.yml` 中的数据库连接信息。
4. 修改 `application.yml` 中的 Redis 配置。
5. 运行 `RuoYiApplication` 启动后端服务。
### 3. 前端部署
1. 进入 `RuoYi-Vue3` 目录。
2. 安装依赖:
```bash
npm install
# 或者
yarn install
```
3. 启动开发服务器:
```bash
npm run dev
```
4. 访问地址:`http://localhost:80` (默认)
## 📝 使用指南
1. **定义流程**:
- 进入“工作流 -> 流程管理”。
- 点击“新增”,进入设计器。
- 绘制流程图,配置节点属性(审批人、表单权限)。
- 点击“保存”完成发布。
2. **配置表单**:
- 进入“工作流 -> 表单管理”。
- 创建业务表单,设计字段。
- 在流程设计中关联此表单。
3. **发起流程**:
- 进入“工作流 -> 发起流程”。
- 选择已发布的流程。
- 填写表单并提交。
4. **审批流程**:
- 审批人登录后,在“工作流 -> 待办任务”中查看。
- 点击办理,进行通过或驳回操作。
## 🔗 API 文档
启动后端后,访问 Swagger 文档地址:
`http://localhost:8080/swagger-ui.html`
## 🤝 贡献指南 (Contributing)
欢迎提交 Pull Request 或 Issue!
1. Fork 本仓库。
2. 新建 Feat_xxx 分支。
3. 提交代码。
4. 新建 Pull Request。
## 📄 开源协议
本项目遵循 MIT 开源协议。详情请参阅 [LICENSE](LICENSE) 文件。