RuoYi-Vue-Pro Architecture Overview

Platform Positioning

RuoYi-Vue-Pro is a one-stop rapid development platform for small to medium teams and enterprises, fully open-source and 100% free. Its core value is not a single feature, but rather pre-implementing the 14 most common types of business requirements in enterprise informatization, connected through a unified permission system, message queue, and payment center, enabling you to deliver a complete enterprise system in weeks rather than months.

In one sentence: If you need a system that “has admin backend, approval workflows, customer management, purchase-sales-inventory, a mall, and even AI and IoT”, RuoYi is the most comprehensive Java technology stack solution in the open-source ecosystem.


5 Core Enterprise Problems Solved by the Platform

graph LR subgraph Foundation subgraph Problem1["🔧 Solves: Low Development Efficiency"] A1["Code Generator
One-click CRUD page generation"] A2["Common Backend Capabilities
Users/Roles/Permissions/Logs"] A3["Infrastructure
Storage/Message Queue/Ops"] end A1 & A2 & A3 --> A4["Base Foundation"] end subgraph Business Flow subgraph Problem2["📋 Solves: Chaotic Approval Processes"] B1["BPM Workflow
DingTalk-style Designer"] B2["ERP Approval
Purchase/Sales Document Approval"] B3["CRM Approval
Contract/Payment Approval"] end B1 & B2 & B3 --> B4["Process Engine"] end subgraph Core Business subgraph Problem3["💰 Solves: Business Operations Fragmentation"] C1["CRM Customer Management
Lead → Opportunity → Contract → Payment"] C2["Member Marketing
Campaign → Level → Coupon → Repurchase"] C3["ERP Purchase-Sales-Inventory
Purchase → Inventory → Sales → Finance"] C4["Mall System
Products → Orders → Marketing → Distribution"] end C1 & C2 & C3 & C4 --> C5["Business Middle Platform"] end subgraph Vertical Business subgraph Problem4["🏭 Solves: Insufficient Manufacturing Management"] D1["MES Manufacturing Execution
Work Order → Reporting → Quality Inspection"] D2["WMS Warehouse Management
Inbound → Outbound → Inventory Count"] D3["IoT Internet of Things
Device Management → Rule Engine"] end D1 & D2 & D3 --> D4["Manufacturing IoT"] end subgraph Innovation & Intelligence subgraph Problem5["🚀 Solves: Innovation Scenario Requirements"] E1["AI Large Model
Chat/Drawing/Knowledge Base"] E2["IM Instant Messaging
Private Chat/Group Chat/Audio-Video"] E3["Report Dashboard
Data Visualization"] end E1 & E2 & E3 --> E4["Innovation Empowerment"] end

Subsystem Collaboration Panorama

The 14 subsystems are not isolated. They collaborate deeply through a unified authentication system, message queue, and payment center. Understanding the relationship diagram below will help you grasp how the entire platform is “pieced together”:

graph LR subgraph BaseLayer["Base Layer (Mandatory Foundation)"] SYS["System Management Module
system
Users/Roles/Permissions/Tenants/Departments
🔑 Permission source for all modules"] INFRA["Infrastructure Module
infra
File Service/Code Generation/WebSocket
📦 Common capabilities for all modules"] end subgraph CapabilityLayer["Capability Layer (Enable as Needed)"] BPM["BPM Workflow
📋 Provides approval capability
Depended on by ERP/CRM"] PAY["Pay Payment Center
💳 Unified payment capability
Depended on by Mall/ERP"] MEMBER["Member Center
👤 Membership system
Depended on by Mall"] MP["MP Official Account
📱 WeChat ecosystem
Depended on by Mall/Member"] end subgraph BusinessLayer["Business Layer (Independent or Combined)"] CRM["CRM Customer Management
20+ tables"] ERP["ERP Purchase-Sales-Inventory
30+ tables"] MALL["Mall System
70+ tables"] MES["MES Manufacturing Execution
133 tables"] WMS["WMS Warehouse
16 tables"] end subgraph InnovationLayer["Innovation Layer (Cutting-Edge Scenarios)"] AI["AI Large Model"] IOT["IoT Internet of Things"] IM["IM Instant Messaging
16 tables"] REPORT["Report Dashboard"] end BaseLayer --> BPM BaseLayer --> PAY BaseLayer --> MEMBER BaseLayer --> MP BaseLayer --> CRM BaseLayer --> ERP BaseLayer --> MALL BaseLayer --> MES BaseLayer --> WMS BaseLayer --> AI BaseLayer --> IOT BaseLayer --> IM BaseLayer --> REPORT PAY --> MALL MEMBER --> MALL BPM --> ERP BPM --> CRM

Key Principle: All modules share the same set of user accounts and permission system. After enabling a business module, the corresponding menus, APIs, and database tables are activated on demand — unneeded ones are not loaded.


6 Core Collaboration Mechanisms

1. Unified Authentication — The “ID Card” for All Modules

sequenceDiagram participant U as User participant GW as Gateway/Frontend participant SEC as Spring Security participant REDIS as Redis Token participant SYS as System Management Module U->>GW: Login Request GW->>SEC: Verify Username & Password SEC->>SYS: Query User/Role/Permissions SYS-->>SEC: Return Permission List SEC->>REDIS: Store Token + Permission Cache SEC-->>GW: Return Token GW-->>U: Login Successful Note over U,SYS: All subsequent subsystem requests carry the Token U->>GW: Access CRM Page GW->>SEC: Verify Token + Permissions SEC->>REDIS: Query Permission Cache REDIS-->>SEC: User Has CRM Permission SEC-->>GW: Allow Access

This means: Out of the box, all subsystems automatically share the same login, roles, and menu permissions — no secondary integration needed.

2. Message Queue — The “Nervous System” Between Subsystems

When ERP generates a sales outbound order, WMS needs to detect inventory changes, and Mall needs to update available stock — the message queue is the channel for these asynchronous notifications.

graph LR subgraph Producers P1["ERP Module
Sales Outbound Event"] P2["Mall Module
Order Payment Success"] P3["CRM Module
Contract Signing Complete"] end subgraph MQ["Message Queue Abstraction Layer yudao-mq"] MQ_IMPL["Spring Event → Redis Stream
→ RabbitMQ → RocketMQ → Kafka
🔁 Switch with one line of config"] end subgraph Consumers C1["WMS Module
Update Inventory"] C2["Member Module
Issue Points"] C3["BPM Module
Trigger Approval Flow"] end P1 --> MQ --> C1 P2 --> MQ --> C2 P3 --> MQ --> C3

Design Highlight: Business code only depends on the yudao-spring-boot-starter-mq abstract interface. Switching message middleware requires changing just one line of configuration.

3. Payment Center — Unified Cashier

sequenceDiagram participant MALL as Mall participant ERP as ERP System participant PAY as Payment Center participant WX as WeChat/Alipay MALL->>PAY: Create Payment Order PayOrderApi PAY->>WX: Initiate Payment WX-->>PAY: Payment Success Callback PAY->>MALL: Callback Notification: Order Paid PAY-->>PAY: Record Payment Transaction ERP->>PAY: Create Refund Order PayRefundApi PAY->>WX: Initiate Refund WX-->>PAY: Refund Success Callback PAY->>ERP: Callback Notification: Refund Complete

Mall, ERP, and all other modules requiring payment/collection connect to the Payment Center. Channel differences (WeChat/Alipay/Mock Payment) are completely transparent to business modules.

4. Workflow Engine — The Approval Bus Across Businesses

graph TB BPM["BPM Workflow Engine
Flowable + Dual Designers"] BPM --> ERP_P["ERP Purchase Approval
Purchase Order → Supervisor Approval → Finance Approval"] BPM --> ERP_S["ERP Sales Approval
Sales Order → Manager Approval → Warehouse Confirmation"] BPM --> CRM_C["CRM Contract Approval
Contract → Legal Review → CEO Approval"] BPM --> OA["General OA Approval
Leave/Reimbursement/Seal Usage"]

ERP, CRM, and other approval-involving business modules directly integrate with the BPM workflow engine, supporting countersign, or-sign, reject, transfer, add-sign, and other full approval operations.

5. SaaS Multi-Tenant — One Codebase Serving N Clients

graph TB subgraph COLUMN["Solution 1: Field Isolation (Small to Medium Scale)"] C1["All tenants share the same database"] C2["Add tenant_id field to each table"] C3["SQL interceptor auto-appends tenant conditions"] C1 --> C2 --> C3 end subgraph DATASOURCE["Solution 2: Database Isolation (Large Scale)"] D1["Master DB: Shared tables (Users/Menus/Config)"] D2["Tenant DB A: Business tables"] D3["Tenant DB B: Business tables"] D4["Tenant DB C: Business tables"] D1 --> D2 D1 --> D3 D1 --> D4 end UR["User Request"] --> Router{Tenant Scale} Router -->|Small SaaS| COLUMN Router -->|Large SaaS| DATASOURCE

6. Frontend Route Modularization — Code Isolation & Collaboration

All admin backend frontend projects are organized by subsystem directory, non-interfering with each other:

src/views/
  ├── system/     # System management pages
  ├── infra/      # Infrastructure pages
  ├── bpm/        # Workflow pages
  ├── crm/        # Customer management pages
  ├── erp/        # Purchase-sales-inventory pages
  ├── mall/       # Mall pages
  └── ...

Technology Architecture Panorama

graph LR subgraph FrontendLayer["Frontend Layer"] VUE3["Vue3 + Element Plus
(Primary admin backend)"] VBEN5["Vben5 + Ant Design / Element Plus
(Next-gen admin backend)"] VUE2["Vue2 + Element UI
(Classic version)"] UNIAPP["uni-app (Vue3)
Mobile/H5/Mini-Program"] VUE2 ~~~ VUE3 ~~~ VBEN5 ~~~ UNIAPP end subgraph GatewayLayer NGINX["Nginx /
Spring Cloud
Gateway"] end subgraph BackendLayer["Backend Layer Spring Boot 3.5"] SYS2["System Management"] BPM2["Workflow"] PAY2["Payment Center"] CRM2["Customer Management"] ERP2["Purchase-Sales-Inventory"] MALL2["Mall"] MES2["Manufacturing Execution"] AI2["AI Large Model"] SYS2 ~~~ BPM2 ~~~ PAY2 ~~~ CRM2 ~~~ ERP2 ~~~ MALL2 ~~~ MES2 ~~~ AI2 end subgraph MiddlewareLayer["Middleware Layer"] MYSQL["MySQL / Oracle /
PG / Dameng"] TDEngine["TDEngine"] REDIS2["Redis + Redisson"] MQ2["Message Queue (5 implementations)"] OSS["S3 etc. File Storage"] FLOWABLE["Flowable Process Engine"] MYSQL ~~~ TDEngine ~~~ REDIS2 ~~~ MQ2 ~~~ OSS ~~~ FLOWABLE end FrontendLayer --> GatewayLayer GatewayLayer --> BackendLayer BackendLayer --> MiddlewareLayer

14 Subsystem Capability Matrix

SubsystemDatabase ScaleCore Problem SolvedWho It’s For
BPM Workflow-Digitize approval processes, say goodbye to paper and WeChat approvalsAny enterprise needing approvals
CRM Customer Management20+ tablesFull sales process management, prevent customer loss and collisionSales teams, trading companies
ERP Purchase-Sales-Inventory30+ tablesIntegrated procurement/sales/inventory/finance, say goodbye to Excel managementTrading enterprises, manufacturers
Mall System70+ tablesComplete B2C e-commerce system, supporting multi-platform and multiple marketing tacticsRetail brands, e-commerce entrepreneurs
MES Manufacturing Execution133 tablesWorkshop-level production management, full chain from work order to reporting to quality inspectionManufacturing factories
WMS Warehouse Management16 tablesGeneral warehouse management, full inbound/outbound/inventory count processWarehousing enterprises, logistics centers
Pay Payment Center-Unified payment and collection, shielding payment channel differencesAll businesses needing payment collection
Member-Build membership system, user retention and repurchaseMall, platform businesses
MP Official Account-Unified multi-account management, auto-reply for follower messagesOperations teams, self-media
AI Large Model-One-stop AI capability access, lowering the barrier to AI applicationsAll enterprises interested in AI
IoT Internet of Things-Device access, data collection, remote controlHardware manufacturers, smart manufacturing
IM Instant Messaging16 tablesBuilt-in instant messaging, no need to integrate third-party SDKsPlatform applications, enterprise internal communication
Report Dashboard-Drag-and-drop data visualization, zero-code dashboard creationManagement, data analysts
SaaS Multi-Tenant-One system serving multiple clients with independent isolationSaaS providers

Enable on Demand: Flexible Combination

All business modules are disabled by default and activated in two steps:

1. Uncomment the corresponding module in pom.xml
2. Execute the corresponding module's SQL initialization script

This means you can precisely control the system’s functional boundaries:

  • Minimal Startup: System Management + Infrastructure ≈ A general admin framework
  • E-commerce Scenario: System Management + Member + Payment + Mall + Official Account
  • Manufacturing Scenario: System Management + ERP + WMS + MES + IoT + BPM
  • Full Features: All 14 subsystems

Quick Start

  1. Clone the project, import into IDE (IntelliJ IDEA)
  2. Create MySQL database, execute sql/mysql/ruoyi-vue-pro.sql
  3. Modify database connection info in application-local.yaml
  4. Start the YudaoServerApplication main class
  5. Open browser at http://localhost:48080, default account admin / admin123

Documentation Navigation

The left sidebar is organized by “Infrastructure Capabilities → Business Subsystems → Changelog” order. You can:

  • Start with Feature List to see the complete feature catalog
  • Jump directly to the relevant subsystem based on business needs
  • Each subsystem documentation includes: core positioning, role analysis, feature collaboration flow, core table structure
docs