更新文档,新增技术架构、主要特性及接口设计原则,修改数据库设计为支持MySQL/MariaDB,增强系统架构和模块设计的详细描述,提升文档的完整性和可读性。

This commit is contained in:
tangweijie 2025-05-09 14:44:08 +08:00
parent 262f7e1754
commit 13045c3ab6
9 changed files with 292 additions and 43 deletions

View File

@ -2,6 +2,13 @@
本仓库包含福建水务业务系统的初步设计文档,包括系统架构、模块设计、接口设计、数据库设计、部署设计等内容。
## 技术架构
本系统基于以下主流开源框架构建:
- 后端框架:[RuoYi-Vue-Pro](https://github.com/YunaiV/ruoyi-vue-pro)一个开源的企业级Java应用脚手架基于Spring Boot + MyBatis Plus + Vue实现支持RBAC动态权限、数据权限、SaaS多租户、Flowable工作流、三方登录等功能。
- 前端框架:[yudao-ui-admin-vue3](https://github.com/yudaocode/yudao-ui-admin-vue3)基于Vue 3 + Element Plus实现的管理后台前端框架。
## 文档目录
- [设计计划](./water_biz_design_plan.md)
- [文档目录](./water_biz_integrated_doc.md)
@ -12,6 +19,16 @@
- [数据库设计](./water_biz_database_design.md)
- [部署设计](./water_biz_deployment_design.md)
## 主要特性
- 基于SaaS多租户架构支持集团、分公司、营业站点的多层级管理
- 使用Spring Boot 3.x + Vue 3.x开发支持JDK 17/21
- 集成Flowable工作流支持报装、表务等业务流程灵活配置
- 提供丰富的统计图表和业务大屏,支持自定义报表设计
- 支持移动端应用,包含微信/支付宝小程序和公众号服务
- 完善的权限管理支持RBAC动态权限和数据权限控制
- 支持多种支付方式和第三方系统集成
## 版本信息
初始版本1.0.0

View File

@ -10,7 +10,7 @@
## 1. 数据库设计概述
福建水务业务系统的数据库设计基于 OpenGauss 数据库管理系统,采用关系型数据库模型,以支持业务系统的高并发、高可靠性需求。数据库设计遵循标准化、安全性、扩展性和性能优化的原则,为业务系统提供稳定、高效的数据存储和访问支持。
福建水务业务系统的数据库设计基于MySQL/MariaDB数据库管理系统同时支持国产OpenGauss数据库,采用关系型数据库模型,以支持业务系统的高并发、高可靠性需求。数据库设计遵循标准化、安全性、扩展性和性能优化的原则,为业务系统提供稳定、高效的数据存储和访问支持。
### 1.1 设计目标
@ -27,6 +27,7 @@
- **模块化**:按业务模块划分表组,便于维护和扩展
- **安全性**:设计完善的权限控制和数据加密方案
- **可扩展性**:预留扩展字段,支持业务功能的扩展
- **通用字段**遵循RuoYi-Vue-Pro框架规范统一基础字段定义
## 2. 数据库架构
@ -34,19 +35,46 @@
系统采用集中式数据库架构,主要包含以下组件:
- **主数据库**:存储核心业务数据,支持事务处理
- **主数据库**MySQL/MariaDB主从架构存储核心业务数据,支持事务处理
- **报表数据库**:存储统计分析数据,支持复杂查询和报表生成
- **历史数据库**:存储历史业务数据,减轻主数据库负担
- **缓存系统**:使用内存数据库缓存热点数据,提高访问效率
- **缓存系统**:使用Redis作为缓存数据库缓存热点数据,提高访问效率
### 2.2 多租户设计
系统采用数据分区方式实现多租户架构,主要包括:
系统采用基于字段的方式实现多租户架构,主要包括:
- **共享数据库,共享模式**:所有租户共享同一数据库实例和表结构
- **租户标识列**:在每个表中增加租户标识列,实现数据隔离
- **视图隔离**:为不同租户创建视图,限制数据访问范围
- **权限控制**:通过数据库权限控制租户对数据的访问
- **租户标识列**在每个表中增加tenant_id租户标识列实现数据隔离
- **多租户拦截器**基于MyBatis Plus的多租户拦截器自动为SQL添加租户条件
- **权限控制**:通过数据权限控制租户对数据的访问
### 2.3 数据访问层设计
系统基于MyBatis Plus框架实现数据访问层主要特点包括
- **通用CRUD**利用MyBatis Plus提供的BaseMapper简化基础CRUD操作
- **分页查询**使用MyBatis Plus的分页插件实现高性能分页
- **条件构造器**使用LambdaQueryWrapper/LambdaUpdateWrapper构建动态SQL
- **自动填充**通过MetaObjectHandler自动填充创建时间、更新时间等字段
- **乐观锁**:支持通过版本号实现乐观锁控制
- **数据权限**:通过自定义拦截器实现数据权限过滤
- **多租户**基于TenantLineInnerInterceptor实现多租户数据隔离
### 2.4 通用字段设计
系统中所有业务表都包含以下通用字段:
| 字段名 | 数据类型 | 长度 | 是否为空 | 描述 |
|-------|---------|------|---------|-----|
| id | BIGINT | - | 否 | 主键ID |
| creator | VARCHAR | 64 | 是 | 创建者 |
| create_time | DATETIME | - | 否 | 创建时间 |
| updater | VARCHAR | 64 | 是 | 更新者 |
| update_time | DATETIME | - | 是 | 更新时间 |
| deleted | TINYINT | 1 | 否 | 是否删除(0正常,1删除) |
| tenant_id | BIGINT | - | 否 | 租户ID |
| version | INT | - | 是 | 乐观锁版本号 |
## 3. 主要数据实体

View File

@ -133,24 +133,37 @@
#### 3.2.1 操作系统
- Windows Server 2012 R2 64位或更高版本
- 服务端CentOS 7+、Ubuntu 18.04+或其他国产Linux发行版
- 客户端支持Windows、macOS、Linux等现代操作系统
#### 3.2.2 数据库
- SQL Server 2012 Enterprise 64位或更高版本
- MySQL 5.7+ 或 MariaDB 10.2+(推荐)
- 国产数据库可选OpenGauss、达梦等
#### 3.2.3 应用服务器
- IIS 8.0或更高版本
- .NET Framework 4.5或更高版本
- JDK 17或JDK 21兼容支持JDK 8
- Apache Tomcat 9.0+或内嵌Tomcat
- Nginx 1.18+(作为前端静态资源服务器和反向代理)
#### 3.2.4 缓存服务器
- Redis 3.0或更高版本
- Redis 5.0+或Redis集群
#### 3.2.5 负载均衡
#### 3.2.5 中间件
- Nginx或Microsoft NLB
- 消息队列基于Redis的轻量级队列可选
- 分布式任务调度Quartz集群
- 工作流引擎Flowable 6.x
- 文件存储支持本地存储、MinIO、阿里云OSS等
#### 3.2.6 前端环境
- Node.js 16+
- NPM 8+或Yarn 1.22+
- Vue 3.x
- Element Plus
## 4. 网络架构

View File

@ -39,15 +39,15 @@
### 第二阶段系统架构设计2周
1. **技术架构设计**
- 前端技术架构设计
- 后端技术架构设计
- 数据库架构设计
- 集成方案设计
- 前端技术架构设计基于yudao-ui-admin-vue3框架使用Vue 3.x + TypeScript + Element Plus
- 后端技术架构设计基于RuoYi-Vue-Pro框架使用Spring Boot 3.x + MyBatis Plus + Spring Security
- 数据库架构设计基于MySQL/MariaDB配合MyBatis Plus实现高效数据访问
- 集成方案设计:与支付系统、短信系统、工作流引擎等第三方服务集成
2. **系统功能模块划分**
- 功能模块划分
- 模块间关系设计
- 接口设计原则
- 基于RuoYi-Vue-Pro的模块化设计yudao-module-xxx形式组织代码
- 采用前后端分离架构定义清晰的API接口
- 复用框架基础功能,包括权限管理、租户管理、系统管理等
### 第三阶段详细设计3周

View File

@ -288,4 +288,37 @@
| 后端负责人 | [姓名] | 后端技术选型与设计 |
| 数据库设计师 | [姓名] | 数据库设计与优化 |
| 测试负责人 | [姓名] | 测试策略与测试用例设计 |
| 运维负责人 | [姓名] | 部署方案与运维设计 |
| 运维负责人 | [姓名] | 部署方案与运维设计 |
# 福建水务业务系统技术文档目录
## 1. 系统概述
1.1 系统背景
1.2 系统目标
1.3 系统范围
1.4 系统用户
1.5 系统特点
1.6 系统价值
## 2. 系统架构
2.1 架构概述
2.2 技术架构
2.3 应用架构
2.4 数据架构
2.5 部署架构
2.6 安全架构
## 3. 技术框架
3.1 框架概述
3.2 RuoYi-Vue-Pro框架
3.2.1 框架介绍
3.2.2 核心功能
3.2.3 技术特点
3.2.4 框架模块结构
3.2.5 扩展机制
3.3 yudao-ui-admin-vue3框架
3.3.1 框架介绍
3.3.2 组件体系
3.3.3 技术特点
3.3.4 页面开发模式
3.3.5 主题定制

View File

@ -8,7 +8,80 @@
## 1. 接口概述
福建水务业务系统提供丰富的接口用于与外部系统集成以及系统内部各模块间的数据交换。接口设计遵循标准化、安全性、可扩展性的原则采用REST风格设计支持JSON数据格式。
福建水务业务系统提供丰富的接口用于与外部系统集成以及系统内部各模块间的数据交换。接口设计遵循标准化、安全性、可扩展性的原则基于RuoYi-Vue-Pro框架采用RESTful风格设计支持JSON数据格式。
### 1.1 接口设计原则
- **统一性**:所有接口遵循统一的设计规范和数据格式
- **安全性**:接口通过认证授权、参数校验等机制保障安全
- **可维护性**:接口文档完善,便于维护和升级
- **兼容性**:接口设计考虑版本兼容,支持平滑升级
- **性能优化**:接口设计考虑性能,支持缓存、分页等机制
### 1.2 RESTful API规范
系统API接口采用RESTful风格设计主要规范如下
#### 1.2.1 资源命名
- 使用名词复数表示资源集合,如`/users``/meters`
- 使用资源ID标识特定资源`/users/1``/meters/123`
- 资源层级关系通过路径嵌套表示,如`/users/1/meters`
#### 1.2.2 HTTP方法
- GET获取资源
- POST创建资源
- PUT更新资源全量更新
- PATCH部分更新资源
- DELETE删除资源
#### 1.2.3 状态码
- 200 OK请求成功
- 201 Created资源创建成功
- 400 Bad Request请求参数错误
- 401 Unauthorized未授权
- 403 Forbidden权限不足
- 404 Not Found资源不存在
- 500 Internal Server Error服务器内部错误
#### 1.2.4 响应格式
系统统一采用以下JSON格式响应
```json
{
"code": 0, // 业务状态码0表示成功非0表示失败
"data": {}, // 响应数据
"msg": "success" // 响应消息
}
```
分页查询响应格式:
```json
{
"code": 0,
"data": {
"list": [], // 数据列表
"total": 100, // 总记录数
"pageNum": 1, // 当前页码
"pageSize": 10 // 每页记录数
},
"msg": "success"
}
```
### 1.3 接口文档
系统使用Knife4j基于Swagger自动生成API文档文档地址为`http://{系统地址}/doc.html`
主要特点:
- 在线接口文档:支持在线查看接口定义
- 接口调试:支持在线调试接口
- 文档导出支持导出OpenAPI规范文档
- 权限控制:支持对接口文档的访问控制
## 2. 外部接口

View File

@ -55,27 +55,71 @@
## 1. 统一平台
统一平台是客户服务平台的综合展示平台,包含日常工作功能和客户全部的信息,是系统的基础功能模块。
统一平台是客户服务平台的综合展示平台,基于RuoYi-Vue-Pro和yudao-ui-admin-vue3框架构建包含日常工作功能和客户全部的信息,是系统的基础功能模块。
### 1.1 单点登录
单点登录模块实现用户一次登录即可访问系统中所有应用的功能,主要特点包括:
单点登录模块基于Spring Security和JWT实现用户一次登录即可访问系统中所有应用的功能,主要特点包括:
- 支持通过用户名、密码进行身份认证
- 支持OAuth2.0授权码+PKCE模式的第三方登录
- 支持手机号+短信验证码登录方式
- 支持多因素认证MFA增强安全性
- 根据登录人员所在公司的不同,显示不同的系统名称和界面风格
- 提供流程节点到期提醒功能
- 支持多种安全认证方式
- Token自动刷新机制提升用户体验
### 1.2 系统管理
系统管理模块提供对系统基础参数的配置管理功能,主要包括:
系统管理模块基于RuoYi-Vue-Pro框架的现成功能提供对系统基础参数的配置管理功能,主要包括:
- 组织机构管理:支持多级组织结构的管理
- 员工管理:系统操作人员的基本信息管理
- 角色权限管理基于RBAC模型的权限控制
- 系统菜单配置:支持自定义系统菜单和功能模块
- 数据字典管理:维护系统使用的各类基础代码数据
- 系统日志管理:记录系统操作日志
- 组织机构管理:
- 支持多级组织结构的管理
- 支持组织机构导入导出
- 组织关系树形展示
- 组织数据权限控制
- 员工管理:
- 系统操作人员的基本信息管理
- 用户分配角色与权限
- 用户状态管理(启用/禁用)
- 用户密码安全策略
- 用户操作日志记录
- 角色权限管理:
- 基于RBAC模型的权限控制
- 支持数据权限精细化控制
- 支持多租户的权限隔离
- 基于菜单、按钮级别的权限管理
- 系统菜单配置:
- 支持自定义系统菜单和功能模块
- 菜单多级分类管理
- 动态路由生成
- 菜单权限配置
- 数据字典管理:
- 维护系统使用的各类基础代码数据
- 支持字典项多级管理
- 支持字典缓存,提高访问性能
- 系统监控:
- 在线用户监控与管理
- 服务器性能监控
- 定时任务执行状态监控
- 系统缓存监控与管理
- 系统日志管理:
- 记录用户登录日志
- 记录操作日志,支持操作回溯
- 记录系统异常日志,便于问题排查
- 短信管理:
- 支持阿里云、腾讯云等多家短信渠道
- 短信模板配置管理
- 短信发送日志记录
- 租户管理:
- 支持SaaS多租户
- 租户套餐配置
- 租户数据隔离
- 租户资源管理
- 配置管理:
- 系统参数配置
- 通知公告管理
- 定时任务配置
## 2. 营收系统

View File

@ -100,6 +100,12 @@
- **充分理解原系统**:详细阅读原有系统的需求和设计文档,理解系统功能和业务流程
- **熟悉技术框架**深入了解RuoYi-Vue-Pro和yudao-ui-admin-vue3框架的功能和架构
- 学习RuoYi-Vue-Pro的核心模块结构与扩展机制
- 掌握基于MyBatis Plus的数据访问层设计
- 理解Spring Security的认证授权体系
- 熟悉多租户的实现原理
- 学习Vue 3和Element Plus组件库的使用
- 了解前端路由和状态管理机制
- **明确编写范围**:根据项目实际需求,确定概要设计文档的详细程度和范围
- **收集参考资料**:收集相关技术资料、业界最佳实践和类似系统的设计文档作为参考

View File

@ -125,22 +125,57 @@ graph TD
### 2.1 服务端
- 操作系统:国产 Linux 操作系统
- 数据库:国产 OpenGauss 数据库
- 应用服务器基于J2EE架构的应用服务器
- 中间件ESB企业服务总线实现系统间的数据交换与共享
- 数据库MySQL/MariaDB数据库支持国产OpenGauss数据库
- 应用框架基于RuoYi-Vue-Pro框架定制开发
- 核心框架Spring Boot 3.x支持JDK 17/21
- ORM框架MyBatis Plus增强的MyBatis
- 权限框架Spring Security基于RBAC的权限管理
- 数据缓存Redis + Redisson高性能缓存和分布式锁
- 工作流引擎Flowable灵活的工作流处理
- 任务调度基于Quartz的CRON任务调度
- 服务监控Spring Boot Admin、SkyWalking APM
- 消息队列基于Redis的轻量级消息队列
- 文档生成Knife4j基于Swagger的API文档生成
- 代码生成自动化CRUD和表单代码生成器
- 多租户基于字段隔离的SaaS多租户设计
### 2.2 客户端
- 操作系统:国产 Linux 操作系统、Windows 10 操作系统
- 浏览器兼容Chrome等主流浏览器
- 移动端支持Android系统
- 前端框架基于yudao-ui-admin-vue3框架定制开发
- 核心框架Vue 3.x + TypeScript
- 组件库Element Plus现代化UI组件
- 状态管理Pinia新一代的Vue状态管理库
- 路由管理Vue Router
- HTTP工具Axios请求拦截与统一处理
- CSS框架Tailwind CSS / UnoCSS原子化CSS
- 图表组件ECharts强大的可视化图表库
- 富文本编辑器WangEditor
- 文件上传基于Element Plus的上传组件
- 权限控制:细粒度的按钮级权限控制
- 动态表格:支持拖拽、排序、筛选
- 代码规范ESLint + Prettier标准化代码风格
- 移动端:
- 核心框架uni-app跨平台
- 组件库uview-ui
- 小程序支持:微信小程序、支付宝小程序等
### 2.3 技术特性
- 单点登录:实现统一平台的单点登录功能
- 数据交换基于ESB的系统内部数据交换与共享
- 统一报表平台:支持自定义报表设计与生成
- 单点登录OAuth2 + JWT实现统一认证
- 数据交换基于RESTful API的系统内部数据交换与共享
- 统一报表平台集成JimuReport支持自定义报表设计与生成
- 大屏设计集成GoView支持可视化大屏设计
- 安全保障:满足安全等保三级要求
- 性能规格支持200并发用户50并发移动设备系统响应时间不超过5秒
- 密码加密BCrypt加密算法
- 防XSS攻击表单数据过滤
- 防SQL注入参数化查询
- 防CSRF攻击Token验证
- 性能规格支持200并发用户50并发移动设备系统响应时间不超过3秒
- 扩展容量支持100万客户的业务量满足企业3-5年的业务发展需求
- 支持功能:
- 支付管理:微信支付、支付宝支付等
- 短信服务:阿里云、腾讯云等多家短信服务商
- CRM功能客户管理、销售管理、商机管理
- ERP功能采购管理、销售管理、库存管理
- AI模块集成AI大模型能力
## 3. 应用架构