更新文档,新增技术架构、主要特性及接口设计原则,修改数据库设计为支持MySQL/MariaDB,增强系统架构和模块设计的详细描述,提升文档的完整性和可读性。
This commit is contained in:
parent
262f7e1754
commit
13045c3ab6
17
README.md
17
README.md
@ -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
|
||||
|
||||
@ -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. 主要数据实体
|
||||
|
||||
|
||||
@ -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. 网络架构
|
||||
|
||||
|
||||
@ -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周)
|
||||
|
||||
|
||||
@ -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 主题定制
|
||||
@ -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. 外部接口
|
||||
|
||||
|
||||
@ -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. 营收系统
|
||||
|
||||
|
||||
@ -100,6 +100,12 @@
|
||||
|
||||
- **充分理解原系统**:详细阅读原有系统的需求和设计文档,理解系统功能和业务流程
|
||||
- **熟悉技术框架**:深入了解RuoYi-Vue-Pro和yudao-ui-admin-vue3框架的功能和架构
|
||||
- 学习RuoYi-Vue-Pro的核心模块结构与扩展机制
|
||||
- 掌握基于MyBatis Plus的数据访问层设计
|
||||
- 理解Spring Security的认证授权体系
|
||||
- 熟悉多租户的实现原理
|
||||
- 学习Vue 3和Element Plus组件库的使用
|
||||
- 了解前端路由和状态管理机制
|
||||
- **明确编写范围**:根据项目实际需求,确定概要设计文档的详细程度和范围
|
||||
- **收集参考资料**:收集相关技术资料、业界最佳实践和类似系统的设计文档作为参考
|
||||
|
||||
|
||||
@ -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. 应用架构
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user