# 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

logo

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) 文件。