RuoYi-Vue-Pro 架构总览
平台定位
RuoYi-Vue-Pro 是一套面向中小团队和企业的一站式快速开发平台,全部开源、100% 免费。它的核心价值不是某个单一功能,而是把企业信息化中最常见的 14 类业务需求预先实现好,并通过统一的权限体系、消息队列、支付中心串联起来,让你能在几周而不是几个月内交付一个完整的企业系统。
一句话说清楚:如果你需要一个「有后台管理、有审批流程、有客户管理、有进销存、有商城、甚至还有 AI 和物联网」的系统,RuoYi 是目前开源生态里覆盖最全的 Java 技术栈方案。
平台解决的 5 类企业核心问题
graph LR
subgraph 基座
subgraph 问题1["🔧 解决:开发效率低"]
A1["代码生成器
一键生成 CRUD 页面"] A2["通用后台能力
用户/角色/权限/日志"] A3["基础设施
存储/消息队列/运维"] end A1 & A2 & A3 --> 基础底座 end subgraph 业务流 subgraph 问题2["📋 解决:审批流程混乱"] B1["BPM 工作流
仿钉钉设计器"] B2["ERP 审批
采购/销售单据审批"] B3["CRM 审批
合同/回款审批"] end B1 & B2 & B3 --> 流程引擎 end subgraph 核心业务 subgraph 问题3["💰 解决:业务运营断层"] C1["CRM 客户管理
线索→商机→合同→回款"] C2["Member 会员营销
活动→等级→优惠券→复购"] C3["ERP 进销存
采购→库存→销售→财务"] C4["Mall 商城
商品→订单→营销→分销"] end C1 & C2 & C3 & C4 --> 业务中台 end subgraph 垂直业务 subgraph 问题4["🏭 解决:生产制造管理不够细"] D1["MES 制造执行
工单→报工→质检"] D2["WMS 仓库管理
入库→出库→盘点"] D3["IoT 物联网
设备管理→规则引擎"] end D1 & D2 & D3 --> 制造物联 end subgraph 创新智能 subgraph 问题5["🚀 解决:创新场景需求"] E1["AI 大模型
对话/绘画/知识库"] E2["IM 即时通讯
私聊/群聊/音视频"] E3["Report 大屏
数据可视化"] end E1 & E2 & E3 --> 创新赋能 end
一键生成 CRUD 页面"] A2["通用后台能力
用户/角色/权限/日志"] A3["基础设施
存储/消息队列/运维"] end A1 & A2 & A3 --> 基础底座 end subgraph 业务流 subgraph 问题2["📋 解决:审批流程混乱"] B1["BPM 工作流
仿钉钉设计器"] B2["ERP 审批
采购/销售单据审批"] B3["CRM 审批
合同/回款审批"] end B1 & B2 & B3 --> 流程引擎 end subgraph 核心业务 subgraph 问题3["💰 解决:业务运营断层"] C1["CRM 客户管理
线索→商机→合同→回款"] C2["Member 会员营销
活动→等级→优惠券→复购"] C3["ERP 进销存
采购→库存→销售→财务"] C4["Mall 商城
商品→订单→营销→分销"] end C1 & C2 & C3 & C4 --> 业务中台 end subgraph 垂直业务 subgraph 问题4["🏭 解决:生产制造管理不够细"] D1["MES 制造执行
工单→报工→质检"] D2["WMS 仓库管理
入库→出库→盘点"] D3["IoT 物联网
设备管理→规则引擎"] end D1 & D2 & D3 --> 制造物联 end subgraph 创新智能 subgraph 问题5["🚀 解决:创新场景需求"] E1["AI 大模型
对话/绘画/知识库"] E2["IM 即时通讯
私聊/群聊/音视频"] E3["Report 大屏
数据可视化"] end E1 & E2 & E3 --> 创新赋能 end
子系统协作全景图
14 个子系统不是孤立的,它们通过统一的权限认证、消息队列和支付中心深度协作。理解下面的关系图,你就能明白整个平台是如何「拼」在一起的:
graph LR
subgraph 底座层["底座层(必选基础)"]
SYS["系统管理模块
system
用户/角色/权限/租户/部门
🔑 所有模块的权限来源"] INFRA["基础设施模块
infra
文件服务/代码生成/WebSocket
📦 所有模块的公共能力"] end subgraph 能力层["能力层(按需开启)"] BPM["BPM 工作流
📋 提供审批能力
被 ERP/CRM 依赖"] PAY["Pay 支付中心
💳 统一支付能力
被 Mall/ERP 依赖"] MEMBER["Member 会员中心
👤 会员体系
被 Mall 依赖"] MP["MP 公众号
📱 微信生态
被 Mall/Member 依赖"] end subgraph 业务层["业务层(独立或组合)"] CRM["CRM 客户管理
20+ 表"] ERP["ERP 进销存
30+ 表"] MALL["Mall 商城
70+ 表"] MES["MES 制造执行
133 表"] WMS["WMS 仓库
16 表"] end subgraph 创新层["创新层(前沿场景)"] AI["AI 大模型"] IOT["IoT 物联网"] IM["IM 即时通讯
16 表"] REPORT["Report 大屏"] end 底座层 --> BPM 底座层 --> PAY 底座层 --> MEMBER 底座层 --> MP 底座层 --> CRM 底座层 --> ERP 底座层 --> MALL 底座层 --> MES 底座层 --> WMS 底座层 --> AI 底座层 --> IOT 底座层 --> IM 底座层 --> REPORT PAY --> MALL MEMBER --> MALL BPM --> ERP BPM --> CRM
system
用户/角色/权限/租户/部门
🔑 所有模块的权限来源"] INFRA["基础设施模块
infra
文件服务/代码生成/WebSocket
📦 所有模块的公共能力"] end subgraph 能力层["能力层(按需开启)"] BPM["BPM 工作流
📋 提供审批能力
被 ERP/CRM 依赖"] PAY["Pay 支付中心
💳 统一支付能力
被 Mall/ERP 依赖"] MEMBER["Member 会员中心
👤 会员体系
被 Mall 依赖"] MP["MP 公众号
📱 微信生态
被 Mall/Member 依赖"] end subgraph 业务层["业务层(独立或组合)"] CRM["CRM 客户管理
20+ 表"] ERP["ERP 进销存
30+ 表"] MALL["Mall 商城
70+ 表"] MES["MES 制造执行
133 表"] WMS["WMS 仓库
16 表"] end subgraph 创新层["创新层(前沿场景)"] AI["AI 大模型"] IOT["IoT 物联网"] IM["IM 即时通讯
16 表"] REPORT["Report 大屏"] end 底座层 --> BPM 底座层 --> PAY 底座层 --> MEMBER 底座层 --> MP 底座层 --> CRM 底座层 --> ERP 底座层 --> MALL 底座层 --> MES 底座层 --> WMS 底座层 --> AI 底座层 --> IOT 底座层 --> IM 底座层 --> REPORT PAY --> MALL MEMBER --> MALL BPM --> ERP BPM --> CRM
关键原则:所有模块共享同一套用户账号和权限体系。开启某个业务模块后,对应的菜单、接口和数据库表按需激活,不需要的不加载。
6 大核心协作机制
1. 统一权限认证——所有模块的「身份证」
sequenceDiagram
participant U as 用户
participant GW as 网关/前端
participant SEC as Spring Security
participant REDIS as Redis Token
participant SYS as 系统管理模块
U->>GW: 登录请求
GW->>SEC: 校验用户名密码
SEC->>SYS: 查询用户/角色/权限
SYS-->>SEC: 返回权限列表
SEC->>REDIS: 存储 Token + 权限缓存
SEC-->>GW: 返回 Token
GW-->>U: 登录成功
Note over U,SYS: 后续所有子系统请求都携带 Token
U->>GW: 访问 CRM 页面
GW->>SEC: 校验 Token + 权限
SEC->>REDIS: 查询权限缓存
REDIS-->>SEC: 该用户有 CRM 权限
SEC-->>GW: 放行
这意味着:开箱即用,所有子系统自动共享同一套登录、角色、菜单权限,无需二次集成。
2. 消息队列——子系统间的「神经系统」
当 ERP 生成一个销售出库单,WMS 需要感知库存变化、Mall 需要更新可售库存——消息队列就是这些异步通知的通道。
graph LR
subgraph 生产者
P1["ERP 模块
销售出库事件"] P2["Mall 模块
订单支付成功"] P3["CRM 模块
合同签约完成"] end subgraph MQ["消息队列抽象层 yudao-mq"] MQ_IMPL["Spring Event → Redis Stream
→ RabbitMQ → RocketMQ → Kafka
🔁 一行配置切换"] end subgraph 消费者 C1["WMS 模块
更新库存"] C2["Member 模块
发放积分"] C3["BPM 模块
触发审批流"] end P1 --> MQ --> C1 P2 --> MQ --> C2 P3 --> MQ --> C3
销售出库事件"] P2["Mall 模块
订单支付成功"] P3["CRM 模块
合同签约完成"] end subgraph MQ["消息队列抽象层 yudao-mq"] MQ_IMPL["Spring Event → Redis Stream
→ RabbitMQ → RocketMQ → Kafka
🔁 一行配置切换"] end subgraph 消费者 C1["WMS 模块
更新库存"] C2["Member 模块
发放积分"] C3["BPM 模块
触发审批流"] end P1 --> MQ --> C1 P2 --> MQ --> C2 P3 --> MQ --> C3
设计亮点:业务代码只依赖 yudao-spring-boot-starter-mq 抽象接口,切换消息中间件只需改一行配置。
3. 支付中心——统一收银台
sequenceDiagram
participant MALL as 商城
participant ERP as ERP 系统
participant PAY as 支付中心
participant WX as 微信/支付宝
MALL->>PAY: 创建支付单 PayOrderApi
PAY->>WX: 发起支付
WX-->>PAY: 支付成功回调
PAY->>MALL: 回调通知订单已支付
PAY-->>PAY: 记录支付流水
ERP->>PAY: 创建退款单 PayRefundApi
PAY->>WX: 发起退款
WX-->>PAY: 退款成功回调
PAY->>ERP: 回调通知退款完成
商城、ERP 等所有需要收付款的模块都对接支付中心,渠道差异(微信/支付宝/模拟支付)对业务模块完全透明。
4. 工作流引擎——贯穿业务的审批总线
graph TB
BPM["BPM 工作流引擎
Flowable + 双设计器"] BPM --> ERP_P["ERP 采购审批
采购订单 → 主管审批 → 财务审批"] BPM --> ERP_S["ERP 销售审批
销售订单 → 经理审批 → 仓库确认"] BPM --> CRM_C["CRM 合同审批
合同 → 法务审批 → 总经理审批"] BPM --> OA["通用 OA 审批
请假/报销/用章"]
Flowable + 双设计器"] BPM --> ERP_P["ERP 采购审批
采购订单 → 主管审批 → 财务审批"] BPM --> ERP_S["ERP 销售审批
销售订单 → 经理审批 → 仓库确认"] BPM --> CRM_C["CRM 合同审批
合同 → 法务审批 → 总经理审批"] BPM --> OA["通用 OA 审批
请假/报销/用章"]
ERP、CRM 等涉及审批的业务模块直接集成 BPM 工作流引擎,支持会签、或签、驳回、转办、加签等全套审批操作。
5. SaaS 多租户——一套代码服务 N 个客户
graph TB
subgraph COLUMN["方案一:字段隔离(中小规模)"]
C1["所有租户共享同一数据库"]
C2["每张表加 tenant_id 字段"]
C3["SQL 拦截器自动拼接租户条件"]
C1 --> C2 --> C3
end
subgraph DATASOURCE["方案二:数据库隔离(大规模)"]
D1["主库:共享表(用户/菜单/配置)"]
D2["租户库 A:业务表"]
D3["租户库 B:业务表"]
D4["租户库 C:业务表"]
D1 --> D2
D1 --> D3
D1 --> D4
end
用户请求 --> 路由{租户规模}
路由 -->|小型 SaaS| COLUMN
路由 -->|大型 SaaS| DATASOURCE
6. 前端路由模块化——代码隔离与协作
所有管理后台前端项目按子系统划分目录,互不干扰:
src/views/
├── system/ # 系统管理页面
├── infra/ # 基础设施页面
├── bpm/ # 工作流页面
├── crm/ # 客户管理页面
├── erp/ # 进销存页面
├── mall/ # 商城页面
└── ...
技术架构全景
graph LR
subgraph 前端层["前端层"]
VUE3["Vue3 + Element Plus
(主推管理后台)"] VBEN5["Vben5 + Ant Design / Element Plus
(新一代管理后台)"] VUE2["Vue2 + Element UI
(经典版)"] UNIAPP["uni-app(Vue3)
移动端/H5/小程序"] VUE2 ~~~ VUE3 ~~~ VBEN5 ~~~ UNIAPP end subgraph 网关层 NGINX["Nginx /
Spring Cloud
Gateway"] end subgraph 后端层["后端层 Spring Boot 3.5"] SYS2["系统管理"] BPM2["工作流"] PAY2["支付中心"] CRM2["客户管理"] ERP2["进销存"] MALL2["商城"] MES2["制造执行"] AI2["AI 大模型"] SYS2 ~~~ BPM2 ~~~ PAY2 ~~~ CRM2 ~~~ ERP2 ~~~ MALL2 ~~~ MES2 ~~~ AI2 end subgraph 中间件层["中间件层"] MYSQL["MySQL / Oracle /
PG / 达梦"] TDEngine["TDEngine"] REDIS2["Redis + Redisson"] MQ2["消息队列(5 种实现)"] OSS["S3 等文件存储"] FLOWABLE["Flowable 流程引擎"] MYSQL ~~~ TDEngine ~~~ REDIS2 ~~~ MQ2 ~~~ OSS ~~~ FLOWABLE end 前端层 --> 网关层 网关层 --> 后端层 后端层 --> 中间件层
(主推管理后台)"] VBEN5["Vben5 + Ant Design / Element Plus
(新一代管理后台)"] VUE2["Vue2 + Element UI
(经典版)"] UNIAPP["uni-app(Vue3)
移动端/H5/小程序"] VUE2 ~~~ VUE3 ~~~ VBEN5 ~~~ UNIAPP end subgraph 网关层 NGINX["Nginx /
Spring Cloud
Gateway"] end subgraph 后端层["后端层 Spring Boot 3.5"] SYS2["系统管理"] BPM2["工作流"] PAY2["支付中心"] CRM2["客户管理"] ERP2["进销存"] MALL2["商城"] MES2["制造执行"] AI2["AI 大模型"] SYS2 ~~~ BPM2 ~~~ PAY2 ~~~ CRM2 ~~~ ERP2 ~~~ MALL2 ~~~ MES2 ~~~ AI2 end subgraph 中间件层["中间件层"] MYSQL["MySQL / Oracle /
PG / 达梦"] TDEngine["TDEngine"] REDIS2["Redis + Redisson"] MQ2["消息队列(5 种实现)"] OSS["S3 等文件存储"] FLOWABLE["Flowable 流程引擎"] MYSQL ~~~ TDEngine ~~~ REDIS2 ~~~ MQ2 ~~~ OSS ~~~ FLOWABLE end 前端层 --> 网关层 网关层 --> 后端层 后端层 --> 中间件层
14 个子系统能力矩阵
| 子系统 | 数据库规模 | 核心解决什么问题 | 适合谁用 |
|---|---|---|---|
| BPM 工作流 | - | 审批流程线上化,告别纸质审批和微信群审批 | 任何需要审批的企业 |
| CRM 客户管理 | 20+ 表 | 销售全流程管理,防止客户流失和撞单 | 销售团队、贸易公司 |
| ERP 进销存 | 30+ 表 | 采购/销售/库存/财务一体化,告别 Excel 管理 | 商贸企业、制造企业 |
| Mall 商城 | 70+ 表 | 完整的 B2C 电商体系,支持多端和多营销玩法 | 零售品牌、电商创业者 |
| MES 制造执行 | 133 表 | 车间级生产管理,从工单到报工到质检全链路 | 制造工厂 |
| WMS 仓库管理 | 16 表 | 通用仓储管理,出入库盘库全流程 | 仓储企业、物流中心 |
| Pay 支付中心 | - | 统一收付款,屏蔽支付渠道差异 | 所有需要收款的业务 |
| Member 会员 | - | 会员体系搭建,用户留存和复购 | 商城、平台类业务 |
| MP 公众号 | - | 多公众号统一管理,粉丝消息自动回复 | 运营团队、自媒体 |
| AI 大模型 | - | 一站式 AI 能力接入,降低 AI 应用门槛 | 所有对 AI 感兴趣的企业 |
| IoT 物联网 | - | 设备接入、数据采集、远程控制 | 硬件厂商、智能制造 |
| IM 即时通讯 | 16 表 | 内置即时通讯,无需集成第三方 SDK | 平台类应用、企业内部通讯 |
| Report 大屏 | - | 拖拽式数据可视化,零代码做大屏 | 管理层、数据分析师 |
| SaaS 多租户 | - | 一套系统服务多个客户,独立隔离 | SaaS 服务商 |
按需开启:灵活的组合方式
所有业务模块默认关闭,通过两步激活:
1. 取消 pom.xml 中对应模块的注释
2. 执行对应模块的 SQL 初始化脚本
这意味着你可以精确控制系统的功能边界:
- 最小启动:仅系统管理 + 基础设施 ≈ 一个通用后台框架
- 电商场景:系统管理 + 会员 + 支付 + 商城 + 公众号
- 制造场景:系统管理 + ERP + WMS + MES + IoT + BPM
- 全功能:全部 14 个子系统
快速开始
- 克隆项目,导入 IDE(IntelliJ IDEA)
- 创建 MySQL 数据库,执行
sql/mysql/ruoyi-vue-pro.sql - 修改
application-local.yaml中的数据库连接信息 - 启动
YudaoServerApplication主类 - 浏览器访问
http://localhost:48080,默认账号admin / admin123
文档导航
左侧边栏按「基础设施能力 → 业务子系统 → 更新日志」的顺序组织,你可以:
- 先看 功能列表 了解平台全部功能清单
- 根据业务需求直接跳到对应子系统
- 每个子系统文档都包含:核心定位、角色分析、功能协作流程、核心表结构