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

子系统协作全景图

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

关键原则:所有模块共享同一套用户账号和权限体系。开启某个业务模块后,对应的菜单、接口和数据库表按需激活,不需要的不加载。


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

设计亮点:业务代码只依赖 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 审批
请假/报销/用章"]

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 前端层 --> 网关层 网关层 --> 后端层 后端层 --> 中间件层

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 个子系统

快速开始

  1. 克隆项目,导入 IDE(IntelliJ IDEA)
  2. 创建 MySQL 数据库,执行 sql/mysql/ruoyi-vue-pro.sql
  3. 修改 application-local.yaml 中的数据库连接信息
  4. 启动 YudaoServerApplication 主类
  5. 浏览器访问 http://localhost:48080,默认账号 admin / admin123

文档导航

左侧边栏按「基础设施能力 → 业务子系统 → 更新日志」的顺序组织,你可以:

  • 先看 功能列表 了解平台全部功能清单
  • 根据业务需求直接跳到对应子系统
  • 每个子系统文档都包含:核心定位、角色分析、功能协作流程、核心表结构
docs