Skip to content

开发指南 ​

RuoYi Office 是一套可二开的企业管理平台。业务写在 yudao-module-*,横切在 yudao-framework,组织与文件在 system / infra。PC 走 Vben,移动端走 UniApp,审批、进销存、制造仓储可以按模块裁剪。

本指南面向二次开发。环境拉起见 快速开始。默认端口 48080,管理端 /admin-api,用户端 /app-api。进程怎么拆见 技术架构。

功能分层 ​

业务系统构建于通用模块,通用模块实现于框架组件。业务模块只写领域;安全、租户、联表、缓存由框架横切,不要在某个 Controller 里再造一套返回码或分页。

系统架构

系统架构:业务系统 → 通用模块 → 框架组件。

层职责放什么仓库
业务系统只写本域单据和台账OA、HRM、CRM、ERP、MES、WMS、Mall、AI、IoT、IM、合同 / 项目 / 资产、公众号 / 报表ruoyi-office/yudao-module-*
通用模块给业务用的平台能力System、Infra、BPM、Pay、Member、Report菜单在系统管理 / 基础设施 / 工作流
框架组件装配即生效,没有自己的业务菜单Web、Security、MyBatis、Redis、MQ、Job、Protection、Monitor、Tenant、DataPermission、Excel、WebSocketruoyi-office/yudao-framework/

硬规则:

  • 新业务只依赖平台(system / infra / framework,按需 bpm / pay)。OA 模块不要去引 CRM 的表。
  • Starter 不出现 processDefinitionKey。审批契约在 yudao-common 的 FlowBillService,发布和办理在 BPM。

三端与两个前缀 ​

三端只打框架约定的两个前缀。Controller 不要手写 /admin-api,由 WebProperties 按包名拼:**.controller.admin.** 走管理端,**.controller.app.** 走用户端。

端工程打哪个前缀
管理端 PCruoyi-office-vben/apps/web-antd//admin-api
移动 / 小程序ruoyi-office-uniapp//admin-api(管理端登录)或 /app-api(会员端)
大屏ruoyi-office-ui-go-view/按报表 / 大屏接口走同一套前缀

示意图:前缀是契约,不是某一个进程名。进程怎么装见技术架构。

工作区地图 ​

根目录是多仓工作区,不要把前端页写进 Java 模块,也不要把增量 SQL 写进业务 jar。

名称说明仓库路径
后端启动入口与模块聚合ruoyi-office/
框架Starter 与 yudao-commonruoyi-office/yudao-framework/
业务模块*-api 契约 + *-server 实现ruoyi-office/yudao-module-*/
PC管理端主应用ruoyi-office-vben/apps/web-antd/
移动分包按模块ruoyi-office-uniapp/
库脚本dump + 按日增量ruoyi-office-db/

后端分层固定为 controller / service / dal / convert / vo。返回统一 CommonResult,业务失败走 ServiceException。

一次请求落在哪一层 ​

管理端请求先进框架,再进业务。完整过滤器链见 框架层。

示意图:鉴权、租户、数据范围是框架横切。Controller 只调本模块 Service。

名称落在哪仓库路径
前缀与扫包框架 Webyudao-spring-boot-starter-web WebProperties
Token框架 SecurityTokenAuthenticationFilter
租户框架 biz-tenant,默认打开yudao-spring-boot-starter-biz-tenant
功能权限菜单上的权限字@PreAuthorize
数据权限角色数据范围@DataPermission
持久化框架 MyBatisBaseMapperX / 联表

租户、权限、审批 ​

这三件事经常被写错层。

租户是字段隔离。拦截器给 SQL 拼 tenant_id。忽略租户的注解要少用,忽略错了会串户。

功能权限写在菜单上,不是框架另开一张权限表。数据权限按角色数据范围滤行。按钮示例:角色数据权限 1064。

审批不是框架菜单。业务单实现 FlowBillService,流程模型自己绑 formCustomViewPath。用车的 key 是 oa_car_apply_bill,来自 OaBillTypeEnum,不是目录名 car。

不要用目录名当流程 key

FlowBillService 按各模块单据枚举找实现。模型里的自定义表单路径必须和页面目录一致,例如 apply/info,不要指向已删的 apply/detail。

模块怎么裁 ​

交付分 OA 版和全功能版。OA 版包含系统、基建、流程、协同办公、人力等;全功能版再包含 CRM、ERP、商城、AI、合同、资产等。本地减模块见 迁移模块。

菜单 id:官方 1–9999,二开 10000–99999。初始化用 ruoyi-office-db/dump/latest/ 的 schema 与 static_data。之后改表走 ruoyi-office-db/update/ 按日增量。

怎么读 ​

先读架构设计,再走 核心必学:跑起来 → 租户 → 权限 → 流程配置 → 两种表单。框架层在「框架」组,系统与基建在「平台」组,业务按管理端顶级菜单收在后面。

示意图:先对骨架,再走学习地图,再下钻框架和业务域。

阶段读完能做什么下一篇
0 架构对上三层和两种部署总览 → 技术架构
1 核心必学登录、建租户、配角色、发布一条流程核心必学
2 骨架会对目录,会改 VO / 权限 / 租户项目结构 → 框架层
3 业务打开对应子系统总览,再进功能篇下表

平台补丁(用户、文件、生成器、监控)在改完骨架后再读:系统功能设计、基建功能设计。前端目录约定见 前端工程结构。

业务域 ​

先点功能设计总览,再进该组功能篇。仓储有三套表(模块 WMS wms_*、MES mes_wm_*、ERP erp_stock),先看 WMS、MES、ERP 怎么选。

域总览管理端根菜单
流程与表单流程功能设计BPM
协同办公OA 功能设计/oa
人力人力功能设计/hrm
合同 / 项目 / 资产合同、项目、资产/contract /project /asset
客户 / 进销存CRM、ERP/crm /erp
制造 / 仓储MES、WMS6261 /mes、7400 /wms
交易与内容支付、会员、商城、公众号/pay /member /mall /mp
智能与物联AI、IoT、IM、报表/ai /iot /im /report

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版