更新福建水务营收系统文档,优化多个设计文档中的Mermaid图表,确保图表格式符合规范并提升可读性。同时,更新项目进度文档,标记相关文档为已完成,确保所有文档符合甲方A级交付标准,提升整体文档质量和一致性。
@ -62,7 +62,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 1**
|
**图表 1**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 多租户架构设计
|
### 多租户架构设计
|
||||||
@ -70,7 +70,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 2**
|
**图表 2**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 通用字段设计
|
### 通用字段设计
|
||||||
@ -94,7 +94,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 3**
|
**图表 3**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 营收管理模块ER图
|
### 营收管理模块ER图
|
||||||
@ -102,7 +102,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 4**
|
**图表 4**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 表务管理模块ER图
|
### 表务管理模块ER图
|
||||||
@ -110,7 +110,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 5**
|
**图表 5**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 系统管理模块ER图
|
### 系统管理模块ER图
|
||||||
@ -118,7 +118,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 6**
|
**图表 6**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## 核心数据表设计
|
## 核心数据表设计
|
||||||
@ -128,7 +128,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 7**
|
**图表 7**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 系统管理模块ER图
|
### 系统管理模块ER图
|
||||||
@ -136,7 +136,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 8**
|
**图表 8**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## 数据表结构设计
|
## 数据表结构设计
|
||||||
|
|||||||
@ -54,7 +54,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 1**
|
**图表 1**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 环境架构设计
|
### 环境架构设计
|
||||||
@ -131,7 +131,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 2**
|
**图表 2**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 部署配置说明
|
#### 部署配置说明
|
||||||
|
|||||||
@ -152,6 +152,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **认证方式**:API Key + 签名
|
- **认证方式**:API Key + 签名
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"merchantId": "WATER001",
|
"merchantId": "WATER001",
|
||||||
@ -189,6 +190,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **认证方式**:RSA2签名
|
- **认证方式**:RSA2签名
|
||||||
|
|
||||||
**预创建支付请求参数**:
|
**预创建支付请求参数**:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"app_id": "2021001234567890",
|
"app_id": "2021001234567890",
|
||||||
@ -241,6 +243,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **认证方式**:微信支付V3签名
|
- **认证方式**:微信支付V3签名
|
||||||
|
|
||||||
**统一下单请求参数**:
|
**统一下单请求参数**:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"appid": "wx8888888888888888",
|
"appid": "wx8888888888888888",
|
||||||
@ -315,6 +318,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求头**:`Authorization: Bearer {token}`
|
- **请求头**:`Authorization: Bearer {token}`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
||||||
|-------|------|------|------|------|
|
|-------|------|------|------|------|
|
||||||
| id | Long | 是 | 客户ID | 1 |
|
| id | Long | 是 | 客户ID | 1 |
|
||||||
@ -346,6 +350,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求路径**:`/admin-api/water/customer/page`
|
- **请求路径**:`/admin-api/water/customer/page`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
||||||
|-------|------|------|------|------|
|
|-------|------|------|------|------|
|
||||||
| pageNo | Integer | 否 | 页码,默认1 | 1 |
|
| pageNo | Integer | 否 | 页码,默认1 | 1 |
|
||||||
@ -387,6 +392,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求路径**:`/admin-api/water/customer/create`
|
- **请求路径**:`/admin-api/water/customer/create`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"customerCode": "C002",
|
"customerCode": "C002",
|
||||||
@ -420,6 +426,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求头**:`Authorization: Bearer {token}`
|
- **请求头**:`Authorization: Bearer {token}`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
||||||
|-------|------|------|------|------|
|
|-------|------|------|------|------|
|
||||||
| id | Long | 是 | 水表ID | 1 |
|
| id | Long | 是 | 水表ID | 1 |
|
||||||
@ -457,6 +464,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求路径**:`/admin-api/water/reading/create`
|
- **请求路径**:`/admin-api/water/reading/create`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"meterId": 1,
|
"meterId": 1,
|
||||||
@ -488,6 +496,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **Content-Type**:`multipart/form-data`
|
- **Content-Type**:`multipart/form-data`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
||||||
|-------|------|------|------|------|
|
|-------|------|------|------|------|
|
||||||
| file | MultipartFile | 是 | Excel文件 | reading_data.xlsx |
|
| file | MultipartFile | 是 | Excel文件 | reading_data.xlsx |
|
||||||
@ -523,6 +532,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求路径**:`/admin-api/water/bill/page`
|
- **请求路径**:`/admin-api/water/bill/page`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|
||||||
|-------|------|------|------|------|
|
|-------|------|------|------|------|
|
||||||
| pageNo | Integer | 否 | 页码,默认1 | 1 |
|
| pageNo | Integer | 否 | 页码,默认1 | 1 |
|
||||||
@ -569,6 +579,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求路径**:`/admin-api/water/bill/generate`
|
- **请求路径**:`/admin-api/water/bill/generate`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"billMonth": "2024-12",
|
"billMonth": "2024-12",
|
||||||
@ -608,6 +619,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求路径**:`/admin-api/water/payment/create`
|
- **请求路径**:`/admin-api/water/payment/create`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"customerId": 1,
|
"customerId": 1,
|
||||||
@ -645,6 +657,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
- **请求路径**:`/admin-api/water/payment/online-pay`
|
- **请求路径**:`/admin-api/water/payment/online-pay`
|
||||||
|
|
||||||
**请求参数**:
|
**请求参数**:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"customerId": 1,
|
"customerId": 1,
|
||||||
|
|||||||
@ -114,7 +114,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 1**
|
**图表 1**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 技术架构图
|
### 技术架构图
|
||||||
@ -122,7 +122,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 2**
|
**图表 2**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 业务架构图
|
### 业务架构图
|
||||||
@ -130,7 +130,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 3**
|
**图表 3**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## 统一平台
|
## 统一平台
|
||||||
@ -228,7 +228,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 4**
|
**图表 4**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 主要功能
|
#### 主要功能
|
||||||
@ -296,7 +296,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 5**
|
**图表 5**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 主要功能
|
#### 主要功能
|
||||||
@ -358,7 +358,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 6**
|
**图表 6**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 主要功能
|
#### 主要功能
|
||||||
@ -398,7 +398,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 7**
|
**图表 7**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 核心接口定义
|
#### 核心接口定义
|
||||||
@ -812,7 +812,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 8**
|
**图表 8**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 技术栈整合方案
|
### 技术栈整合方案
|
||||||
|
|||||||
@ -53,7 +53,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 1**
|
**图表 1**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## OpenGauss数据库安全
|
## OpenGauss数据库安全
|
||||||
@ -63,7 +63,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 2**
|
**图表 2**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 国产密码算法应用
|
### 国产密码算法应用
|
||||||
@ -144,7 +144,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 3**
|
**图表 3**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 防火墙策略配置
|
### 防火墙策略配置
|
||||||
@ -180,7 +180,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 4**
|
**图表 4**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 数据保护策略
|
#### 数据保护策略
|
||||||
@ -219,7 +219,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 5**
|
**图表 5**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 安全事件检测规则
|
#### 安全事件检测规则
|
||||||
@ -240,7 +240,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 6**
|
**图表 6**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 应急响应预案
|
### 应急响应预案
|
||||||
@ -257,7 +257,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 7**
|
**图表 7**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## 安全管理制度
|
## 安全管理制度
|
||||||
@ -268,7 +268,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 8**
|
**图表 8**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 安全管理制度
|
### 安全管理制度
|
||||||
|
|||||||
@ -43,9 +43,55 @@ CJKmainfont: "PingFang SC"
|
|||||||
### 系统总体架构图
|
### 系统总体架构图
|
||||||
|
|
||||||
|
|
||||||
**图表 1**
|
```mermaid
|
||||||
|
graph TB
|
||||||
|
subgraph USER["用户层"]
|
||||||
|
A1[Web管理端<br/>yudao-ui-admin-vue3]
|
||||||
|
A2[移动抄表端<br/>uni-app]
|
||||||
|
A3[客户微信端<br/>微信小程序]
|
||||||
|
A4[客户支付宝端<br/>支付宝小程序]
|
||||||
|
end
|
||||||
|
|
||||||

|
subgraph GATEWAY["网关层"]
|
||||||
|
B1[Nginx负载均衡]
|
||||||
|
B2[API网关<br/>统一认证/权限控制]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph APP["应用层"]
|
||||||
|
C1[营收管理<br/>RuoYi-Vue-Pro]
|
||||||
|
C2[客户服务<br/>RuoYi-Vue-Pro]
|
||||||
|
C3[表务管理<br/>RuoYi-Vue-Pro]
|
||||||
|
C4[统计分析<br/>RuoYi-Vue-Pro]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph SERVICE["服务层"]
|
||||||
|
D1[权限服务<br/>Spring Security]
|
||||||
|
D2[工作流服务<br/>Flowable]
|
||||||
|
D3[消息服务<br/>Redis MQ]
|
||||||
|
D4[文件服务<br/>MinIO/OSS]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATA["数据层"]
|
||||||
|
E1[(OpenGauss 5.0+<br/>主从架构)]
|
||||||
|
E2[(Redis 6.0<br/>集群缓存)]
|
||||||
|
E3[文件存储<br/>分布式存储]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph EXTERNAL["外部接口"]
|
||||||
|
F1[银行接口<br/>代扣/托收]
|
||||||
|
F2[支付接口<br/>微信/支付宝]
|
||||||
|
F3[短信接口<br/>阿里云/腾讯云]
|
||||||
|
F4[物联网接口<br/>智能水表]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 层级间调用关系
|
||||||
|
USER -.->|请求访问| GATEWAY
|
||||||
|
GATEWAY -.->|负载均衡<br/>路由转发| APP
|
||||||
|
APP -.->|服务调用| SERVICE
|
||||||
|
APP -.->|外部集成| EXTERNAL
|
||||||
|
SERVICE -.->|数据访问| DATA
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### 物理部署架构图
|
### 物理部署架构图
|
||||||
@ -53,7 +99,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 2**
|
**图表 2**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## 技术架构
|
## 技术架构
|
||||||
@ -65,7 +111,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 3**
|
**图表 3**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 系统数据流向图
|
### 系统数据流向图
|
||||||
@ -73,7 +119,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 4**
|
**图表 4**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 服务端技术架构
|
### 服务端技术架构
|
||||||
@ -122,7 +168,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 5**
|
**图表 5**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 技术特性
|
### 技术特性
|
||||||
@ -146,7 +192,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 6**
|
**图表 6**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 服务治理架构
|
### 服务治理架构
|
||||||
@ -154,7 +200,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 7**
|
**图表 7**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 应用模块设计
|
### 应用模块设计
|
||||||
@ -207,7 +253,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 8**
|
**图表 8**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 分片存储架构
|
#### 分片存储架构
|
||||||
@ -215,7 +261,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 9**
|
**图表 9**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 数据模型设计
|
### 数据模型设计
|
||||||
@ -261,7 +307,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 10**
|
**图表 10**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
#### 访问控制安全
|
#### 访问控制安全
|
||||||
@ -269,7 +315,7 @@ CJKmainfont: "PingFang SC"
|
|||||||
|
|
||||||
**图表 11**
|
**图表 11**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 网络安全
|
### 网络安全
|
||||||
|
|||||||
40
temp_mermaid_water_biz_database_design_35098/diagram_1.mmd
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "应用层"
|
||||||
|
APP[Water Biz Application<br/>RuoYi-Vue-Pro]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据访问层"
|
||||||
|
MP[MyBatis Plus<br/>ORM框架]
|
||||||
|
CACHE[Redis缓存<br/>热点数据]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据存储层"
|
||||||
|
subgraph "OpenGauss主从集群"
|
||||||
|
MASTER[(OpenGauss主库<br/>读写)]
|
||||||
|
SLAVE[(OpenGauss从库<br/>只读)]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "业务数据库"
|
||||||
|
DB_CUSTOMER[(客户数据库<br/>Customer DB)]
|
||||||
|
DB_BILLING[(营收数据库<br/>Billing DB)]
|
||||||
|
DB_METER[(表务数据库<br/>Meter DB)]
|
||||||
|
DB_SYSTEM[(系统数据库<br/>System DB)]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据归档"
|
||||||
|
DB_HISTORY[(历史数据库<br/>Archive DB)]
|
||||||
|
BACKUP[(备份存储<br/>Backup Storage)]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
APP --> MP
|
||||||
|
APP --> CACHE
|
||||||
|
MP --> MASTER
|
||||||
|
MASTER --> SLAVE
|
||||||
|
MASTER --> DB_CUSTOMER
|
||||||
|
MASTER --> DB_BILLING
|
||||||
|
MASTER --> DB_METER
|
||||||
|
MASTER --> DB_SYSTEM
|
||||||
|
SLAVE --> DB_HISTORY
|
||||||
|
MASTER --> BACKUP
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_database_design_35098/diagram_1.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
31
temp_mermaid_water_biz_database_design_35098/diagram_2.mmd
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "多租户数据隔离"
|
||||||
|
TENANT1[租户1: 福建水务集团]
|
||||||
|
TENANT2[租户2: 厦门分公司]
|
||||||
|
TENANT3[租户3: 泉州分公司]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "共享数据库"
|
||||||
|
subgraph "业务表结构"
|
||||||
|
TABLE1[water_customer<br/>+ tenant_id]
|
||||||
|
TABLE2[water_meter<br/>+ tenant_id]
|
||||||
|
TABLE3[water_bill<br/>+ tenant_id]
|
||||||
|
TABLE4[water_payment<br/>+ tenant_id]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "租户隔离机制"
|
||||||
|
INTERCEPTOR[MyBatis Plus<br/>多租户拦截器]
|
||||||
|
FILTER[数据权限过滤器]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
TENANT1 --> INTERCEPTOR
|
||||||
|
TENANT2 --> INTERCEPTOR
|
||||||
|
TENANT3 --> INTERCEPTOR
|
||||||
|
|
||||||
|
INTERCEPTOR --> FILTER
|
||||||
|
FILTER --> TABLE1
|
||||||
|
FILTER --> TABLE2
|
||||||
|
FILTER --> TABLE3
|
||||||
|
FILTER --> TABLE4
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_database_design_35098/diagram_2.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
61
temp_mermaid_water_biz_database_design_35098/diagram_3.mmd
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
erDiagram
|
||||||
|
WATER_CUSTOMER {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar customer_code UK "客户编号"
|
||||||
|
varchar customer_name "客户名称"
|
||||||
|
varchar customer_type "客户类型"
|
||||||
|
varchar id_type "证件类型"
|
||||||
|
varchar id_number "证件号码"
|
||||||
|
varchar phone "联系电话"
|
||||||
|
varchar address "详细地址"
|
||||||
|
varchar area_code "行政区划代码"
|
||||||
|
tinyint status "状态"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_METER {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar meter_code UK "水表编号"
|
||||||
|
varchar meter_no "水表表号"
|
||||||
|
varchar meter_type "水表类型"
|
||||||
|
varchar meter_model "水表型号"
|
||||||
|
varchar meter_caliber "水表口径"
|
||||||
|
date install_date "安装日期"
|
||||||
|
varchar install_position "安装位置"
|
||||||
|
decimal initial_reading "初始读数"
|
||||||
|
decimal current_reading "当前读数"
|
||||||
|
varchar reading_cycle "抄表周期"
|
||||||
|
varchar book_code "册本编号"
|
||||||
|
tinyint status "状态"
|
||||||
|
bigint customer_id FK "客户ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_CUSTOMER_ACCOUNT {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
decimal balance "账户余额"
|
||||||
|
decimal credit_amount "信用额度"
|
||||||
|
date last_payment_date "最近缴费日期"
|
||||||
|
tinyint status "账户状态"
|
||||||
|
bigint customer_id FK "客户ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_CUSTOMER ||--o{ WATER_METER : "拥有"
|
||||||
|
WATER_CUSTOMER ||--|| WATER_CUSTOMER_ACCOUNT : "对应"
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_database_design_35098/diagram_3.png
Normal file
|
After Width: | Height: | Size: 214 KiB |
67
temp_mermaid_water_biz_database_design_35098/diagram_4.mmd
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
erDiagram
|
||||||
|
WATER_METER_READING {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar reading_code UK "抄表记录编号"
|
||||||
|
date reading_date "抄表日期"
|
||||||
|
decimal reading_value "抄表读数"
|
||||||
|
decimal prev_reading_value "上次读数"
|
||||||
|
decimal water_usage "用水量"
|
||||||
|
varchar reading_type "抄表类型"
|
||||||
|
varchar reader_id "抄表员ID"
|
||||||
|
varchar remark "备注"
|
||||||
|
tinyint status "状态"
|
||||||
|
bigint meter_id FK "水表ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_BILL {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar bill_code UK "账单编号"
|
||||||
|
varchar bill_month "账期"
|
||||||
|
decimal water_usage "用水量"
|
||||||
|
decimal water_fee "水费金额"
|
||||||
|
decimal sewage_fee "污水处理费"
|
||||||
|
decimal other_fee "其他费用"
|
||||||
|
decimal total_amount "总金额"
|
||||||
|
date due_date "缴费截止日期"
|
||||||
|
tinyint bill_status "账单状态"
|
||||||
|
bigint customer_id FK "客户ID"
|
||||||
|
bigint meter_id FK "水表ID"
|
||||||
|
bigint reading_id FK "抄表记录ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_PAYMENT {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar payment_code UK "缴费记录编号"
|
||||||
|
varchar payment_type "缴费类型"
|
||||||
|
varchar payment_channel "缴费渠道"
|
||||||
|
decimal payment_amount "缴费金额"
|
||||||
|
datetime payment_time "缴费时间"
|
||||||
|
varchar transaction_no "交易流水号"
|
||||||
|
varchar operator_id "操作员ID"
|
||||||
|
varchar remark "备注"
|
||||||
|
tinyint payment_status "缴费状态"
|
||||||
|
bigint bill_id FK "账单ID"
|
||||||
|
bigint customer_id FK "客户ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_METER_READING ||--|| WATER_BILL : "生成"
|
||||||
|
WATER_BILL ||--o{ WATER_PAYMENT : "对应"
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_database_design_35098/diagram_4.png
Normal file
|
After Width: | Height: | Size: 239 KiB |
64
temp_mermaid_water_biz_database_design_35098/diagram_5.mmd
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
erDiagram
|
||||||
|
WATER_METER_ARCHIVE {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar archive_code UK "档案编号"
|
||||||
|
varchar manufacturer "生产厂家"
|
||||||
|
date production_date "生产日期"
|
||||||
|
int valid_period "有效期(月)"
|
||||||
|
date verification_date "检定日期"
|
||||||
|
date next_verification_date "下次检定日期"
|
||||||
|
varchar certificate_no "检定证书号"
|
||||||
|
tinyint archive_status "档案状态"
|
||||||
|
bigint meter_id FK "水表ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_METER_WORKORDER {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar workorder_code UK "工单编号"
|
||||||
|
varchar workorder_type "工单类型"
|
||||||
|
varchar workorder_status "工单状态"
|
||||||
|
date apply_date "申请日期"
|
||||||
|
date plan_date "计划执行日期"
|
||||||
|
date execute_date "实际执行日期"
|
||||||
|
varchar applicant_id "申请人ID"
|
||||||
|
varchar executor_id "执行人ID"
|
||||||
|
varchar reason "申请原因"
|
||||||
|
varchar result "执行结果"
|
||||||
|
bigint meter_id FK "水表ID"
|
||||||
|
bigint customer_id FK "客户ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_METER_STOCK {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar stock_code UK "库存编号"
|
||||||
|
varchar warehouse_code "仓库编码"
|
||||||
|
varchar warehouse_name "仓库名称"
|
||||||
|
int stock_quantity "库存数量"
|
||||||
|
int min_stock "最小库存"
|
||||||
|
int max_stock "最大库存"
|
||||||
|
varchar meter_model "水表型号"
|
||||||
|
varchar meter_caliber "水表口径"
|
||||||
|
tinyint stock_status "库存状态"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_METER ||--|| WATER_METER_ARCHIVE : "对应"
|
||||||
|
WATER_METER ||--o{ WATER_METER_WORKORDER : "产生"
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_database_design_35098/diagram_5.png
Normal file
|
After Width: | Height: | Size: 242 KiB |
45
temp_mermaid_water_biz_database_design_35098/diagram_6.mmd
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
erDiagram
|
||||||
|
SYSTEM_TENANT {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar tenant_name "租户名称"
|
||||||
|
varchar tenant_code UK "租户编码"
|
||||||
|
varchar contact_name "联系人"
|
||||||
|
varchar contact_phone "联系电话"
|
||||||
|
varchar contact_email "联系邮箱"
|
||||||
|
tinyint tenant_status "租户状态"
|
||||||
|
datetime expire_time "过期时间"
|
||||||
|
varchar domain "域名"
|
||||||
|
varchar package_name "套餐名称"
|
||||||
|
int user_count "用户数量"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
SYSTEM_USERS {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar username UK "用户名"
|
||||||
|
varchar password "密码"
|
||||||
|
varchar nickname "昵称"
|
||||||
|
varchar remark "备注"
|
||||||
|
varchar dept_id "部门ID"
|
||||||
|
varchar post_ids "岗位ID列表"
|
||||||
|
varchar email "邮箱"
|
||||||
|
varchar mobile "手机号"
|
||||||
|
tinyint sex "性别"
|
||||||
|
varchar avatar "头像"
|
||||||
|
tinyint status "状态"
|
||||||
|
datetime login_date "最后登录时间"
|
||||||
|
varchar login_ip "最后登录IP"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
varchar creator "创建者"
|
||||||
|
datetime create_time "创建时间"
|
||||||
|
varchar updater "更新者"
|
||||||
|
datetime update_time "更新时间"
|
||||||
|
tinyint deleted "是否删除"
|
||||||
|
}
|
||||||
|
|
||||||
|
SYSTEM_TENANT ||--o{ SYSTEM_USERS : "包含"
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_database_design_35098/diagram_6.png
Normal file
|
After Width: | Height: | Size: 146 KiB |
51
temp_mermaid_water_biz_database_design_35098/diagram_7.mmd
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
erDiagram
|
||||||
|
WATER_METER_WORKORDER {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar workorder_code UK "工单编号"
|
||||||
|
varchar workorder_type "工单类型"
|
||||||
|
varchar workorder_status "工单状态"
|
||||||
|
date apply_date "申请日期"
|
||||||
|
date plan_date "计划执行日期"
|
||||||
|
date execute_date "实际执行日期"
|
||||||
|
varchar applicant_id "申请人ID"
|
||||||
|
varchar executor_id "执行人ID"
|
||||||
|
varchar reason "申请原因"
|
||||||
|
varchar result "执行结果"
|
||||||
|
bigint meter_id FK "水表ID"
|
||||||
|
bigint customer_id FK "客户ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_METER_STOCK {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar stock_code UK "库存编号"
|
||||||
|
varchar meter_brand "水表品牌"
|
||||||
|
varchar meter_model "水表型号"
|
||||||
|
varchar meter_caliber "水表口径"
|
||||||
|
int stock_quantity "库存数量"
|
||||||
|
int min_stock "最小库存"
|
||||||
|
decimal unit_price "单价"
|
||||||
|
varchar warehouse_location "仓库位置"
|
||||||
|
tinyint stock_status "库存状态"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_METER_INVENTORY {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar inventory_code UK "出入库编号"
|
||||||
|
varchar inventory_type "出入库类型"
|
||||||
|
int quantity "数量"
|
||||||
|
decimal unit_price "单价"
|
||||||
|
decimal total_amount "总金额"
|
||||||
|
varchar operator_id "操作员ID"
|
||||||
|
datetime operation_time "操作时间"
|
||||||
|
varchar remark "备注"
|
||||||
|
bigint stock_id FK "库存ID"
|
||||||
|
bigint workorder_id FK "工单ID"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_METER ||--o{ WATER_METER_WORKORDER : "生成"
|
||||||
|
WATER_METER_STOCK ||--o{ WATER_METER_INVENTORY : "出入库"
|
||||||
|
WATER_METER_WORKORDER ||--o{ WATER_METER_INVENTORY : "关联"
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_database_design_35098/diagram_7.png
Normal file
|
After Width: | Height: | Size: 174 KiB |
49
temp_mermaid_water_biz_database_design_35098/diagram_8.mmd
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
erDiagram
|
||||||
|
WATER_DICT_TYPE {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar dict_name "字典名称"
|
||||||
|
varchar dict_type UK "字典类型"
|
||||||
|
varchar remark "备注"
|
||||||
|
tinyint status "状态"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_DICT_DATA {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar dict_type "字典类型"
|
||||||
|
varchar dict_label "字典标签"
|
||||||
|
varchar dict_value "字典键值"
|
||||||
|
int dict_sort "字典排序"
|
||||||
|
varchar color_type "颜色类型"
|
||||||
|
varchar css_class "CSS类名"
|
||||||
|
varchar remark "备注"
|
||||||
|
tinyint status "状态"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_CONFIG {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar config_name "参数名称"
|
||||||
|
varchar config_key UK "参数键名"
|
||||||
|
varchar config_value "参数键值"
|
||||||
|
varchar config_type "系统内置"
|
||||||
|
varchar remark "备注"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_PRICE_CONFIG {
|
||||||
|
bigint id PK "主键ID"
|
||||||
|
varchar price_name "水价名称"
|
||||||
|
varchar customer_type "客户类型"
|
||||||
|
varchar price_type "价格类型"
|
||||||
|
decimal base_price "基础价格"
|
||||||
|
decimal sewage_price "污水处理费"
|
||||||
|
decimal garbage_price "垃圾处理费"
|
||||||
|
date effective_date "生效日期"
|
||||||
|
date expire_date "失效日期"
|
||||||
|
tinyint status "状态"
|
||||||
|
bigint tenant_id "租户ID"
|
||||||
|
}
|
||||||
|
|
||||||
|
WATER_DICT_TYPE ||--o{ WATER_DICT_DATA : "包含"
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_database_design_35098/diagram_8.png
Normal file
|
After Width: | Height: | Size: 135 KiB |
45
temp_mermaid_water_biz_deployment_design_35098/diagram_1.mmd
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
graph
|
||||||
|
subgraph EXTERNAL["外部用户访问"]
|
||||||
|
direction TB
|
||||||
|
A[移动端用户]
|
||||||
|
B[PC端用户]
|
||||||
|
C[第三方系统]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph LOADBALANCER["负载均衡层"]
|
||||||
|
direction TB
|
||||||
|
D[主负载均衡器]
|
||||||
|
E[备负载均衡器]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph WEBSERVICE["Web服务层"]
|
||||||
|
direction TB
|
||||||
|
F[Web服务器1]
|
||||||
|
G[Web服务器2]
|
||||||
|
H[Web服务器3]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph APPSERVICE["应用服务层"]
|
||||||
|
direction TB
|
||||||
|
I[应用服务器1]
|
||||||
|
J[应用服务器2]
|
||||||
|
K[应用服务器3]
|
||||||
|
L[应用服务器4]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATASERVICE["数据服务层"]
|
||||||
|
direction TB
|
||||||
|
M[(主数据库<br/>OpenGauss)]
|
||||||
|
N[(备数据库<br/>OpenGauss)]
|
||||||
|
O[缓存服务器<br/>Redis]
|
||||||
|
P[文件服务器<br/>MinIO]
|
||||||
|
|
||||||
|
M -.->|数据同步| N
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 层级间调用关系
|
||||||
|
EXTERNAL -.->|用户请求<br/>接口调用| LOADBALANCER
|
||||||
|
LOADBALANCER -.->|负载分发<br/>故障切换| WEBSERVICE
|
||||||
|
WEBSERVICE -.->|业务请求<br/>服务调用| APPSERVICE
|
||||||
|
APPSERVICE -.->|数据访问<br/>缓存读写<br/>文件操作| DATASERVICE
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_deployment_design_35098/diagram_1.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
21
temp_mermaid_water_biz_deployment_design_35098/diagram_2.mmd
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
graph
|
||||||
|
direction TB
|
||||||
|
subgraph FRONTEND["前端服务层"]
|
||||||
|
A[前端容器<br/>Nginx + Vue3]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph BACKEND["后端服务层"]
|
||||||
|
B[后端容器<br/>Spring Boot]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATASTORAGE["数据存储层"]
|
||||||
|
direction TB
|
||||||
|
C[数据库容器<br/>OpenGauss]
|
||||||
|
D[缓存容器<br/>Redis]
|
||||||
|
E[文件存储容器<br/>MinIO]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 容器服务调用关系
|
||||||
|
FRONTEND -.->|API请求<br/>静态资源| BACKEND
|
||||||
|
BACKEND -.->|数据操作<br/>缓存访问<br/>文件存储| DATASTORAGE
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_deployment_design_35098/diagram_2.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
92
temp_mermaid_water_biz_module_design_35098/diagram_1.mmd
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "用户层"
|
||||||
|
A1[管理员用户]
|
||||||
|
A2[抄表员]
|
||||||
|
A3[收费员]
|
||||||
|
A4[客户用户]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "接入层"
|
||||||
|
B1[PC端管理后台<br/>yudao-ui-admin-vue3]
|
||||||
|
B2[移动端抄表APP<br/>uni-app]
|
||||||
|
B3[微信小程序]
|
||||||
|
B4[支付宝小程序]
|
||||||
|
B5[Web客户端]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "网关层"
|
||||||
|
C1[API网关<br/>Spring Cloud Gateway]
|
||||||
|
C2[负载均衡<br/>Nginx]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "服务层"
|
||||||
|
D1[用户认证服务<br/>Spring Security + JWT]
|
||||||
|
D2[营收管理服务<br/>RuoYi-Vue-Pro]
|
||||||
|
D3[表务管理服务]
|
||||||
|
D4[报装管理服务]
|
||||||
|
D5[客户服务]
|
||||||
|
D6[系统管理服务]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "中间件层"
|
||||||
|
E1[(Redis缓存<br/>6.0+)]
|
||||||
|
E2[RabbitMQ消息队列]
|
||||||
|
E3[Elasticsearch搜索]
|
||||||
|
E4[MinIO文件存储]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据层"
|
||||||
|
F1[(主数据库<br/>OpenGauss 5.0+)]
|
||||||
|
F2[(从数据库<br/>OpenGauss 5.0+)]
|
||||||
|
F3[(历史数据库<br/>OpenGauss 5.0+)]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "外部系统"
|
||||||
|
G1[银行系统]
|
||||||
|
G2[支付宝/微信]
|
||||||
|
G3[短信平台]
|
||||||
|
G4[集抄系统]
|
||||||
|
G5[政务平台]
|
||||||
|
end
|
||||||
|
|
||||||
|
A1 --> B1
|
||||||
|
A2 --> B2
|
||||||
|
A3 --> B1
|
||||||
|
A4 --> B3
|
||||||
|
A4 --> B4
|
||||||
|
A4 --> B5
|
||||||
|
|
||||||
|
B1 --> C2
|
||||||
|
B2 --> C2
|
||||||
|
B3 --> C2
|
||||||
|
B4 --> C2
|
||||||
|
B5 --> C2
|
||||||
|
|
||||||
|
C2 --> C1
|
||||||
|
C1 --> D1
|
||||||
|
C1 --> D2
|
||||||
|
C1 --> D3
|
||||||
|
C1 --> D4
|
||||||
|
C1 --> D5
|
||||||
|
C1 --> D6
|
||||||
|
|
||||||
|
D1 --> E1
|
||||||
|
D2 --> E1
|
||||||
|
D2 --> E2
|
||||||
|
D3 --> E1
|
||||||
|
D4 --> E3
|
||||||
|
D5 --> E4
|
||||||
|
D6 --> E1
|
||||||
|
|
||||||
|
D2 --> F1
|
||||||
|
D3 --> F1
|
||||||
|
D4 --> F2
|
||||||
|
D5 --> F2
|
||||||
|
D6 --> F3
|
||||||
|
|
||||||
|
D2 --> G1
|
||||||
|
D2 --> G2
|
||||||
|
D5 --> G3
|
||||||
|
D3 --> G4
|
||||||
|
D4 --> G5
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_module_design_35098/diagram_1.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
71
temp_mermaid_water_biz_module_design_35098/diagram_2.mmd
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "前端技术栈"
|
||||||
|
FE1[Vue 3.x]
|
||||||
|
FE2[TypeScript 4.x]
|
||||||
|
FE3[Element Plus]
|
||||||
|
FE4[Vite 4.x]
|
||||||
|
FE5[Pinia状态管理]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "后端技术栈"
|
||||||
|
BE1[Spring Boot 3.x]
|
||||||
|
BE2[Spring Security 6.x]
|
||||||
|
BE3[MyBatis Plus 3.x]
|
||||||
|
BE4[Spring Cloud Gateway]
|
||||||
|
BE5[Hibernate Validator]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据库技术"
|
||||||
|
DB1[OpenGauss 5.0+]
|
||||||
|
DB2[Redis 6.0+]
|
||||||
|
DB3[HikariCP连接池]
|
||||||
|
DB4[MyBatis-Plus代码生成]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "中间件技术"
|
||||||
|
MW1[RabbitMQ 3.x]
|
||||||
|
MW2[Elasticsearch 8.x]
|
||||||
|
MW3[MinIO对象存储]
|
||||||
|
MW4[XXL-JOB定时任务]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "运维技术"
|
||||||
|
OPS1[Docker容器化]
|
||||||
|
OPS2[Jenkins CI/CD]
|
||||||
|
OPS3[Prometheus监控]
|
||||||
|
OPS4[ELK日志分析]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "安全技术"
|
||||||
|
SEC1[JWT Token认证]
|
||||||
|
SEC2[OAuth2.0授权]
|
||||||
|
SEC3[AES数据加密]
|
||||||
|
SEC4[RSA签名验证]
|
||||||
|
end
|
||||||
|
|
||||||
|
FE1 --> FE2
|
||||||
|
FE2 --> FE3
|
||||||
|
FE3 --> FE4
|
||||||
|
FE4 --> FE5
|
||||||
|
|
||||||
|
BE1 --> BE2
|
||||||
|
BE2 --> BE3
|
||||||
|
BE3 --> BE4
|
||||||
|
BE4 --> BE5
|
||||||
|
|
||||||
|
DB1 --> DB2
|
||||||
|
DB2 --> DB3
|
||||||
|
DB3 --> DB4
|
||||||
|
|
||||||
|
MW1 --> MW2
|
||||||
|
MW2 --> MW3
|
||||||
|
MW3 --> MW4
|
||||||
|
|
||||||
|
OPS1 --> OPS2
|
||||||
|
OPS2 --> OPS3
|
||||||
|
OPS3 --> OPS4
|
||||||
|
|
||||||
|
SEC1 --> SEC2
|
||||||
|
SEC2 --> SEC3
|
||||||
|
SEC3 --> SEC4
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_module_design_35098/diagram_2.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
64
temp_mermaid_water_biz_module_design_35098/diagram_3.mmd
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "统一平台层"
|
||||||
|
UP1[单点登录]
|
||||||
|
UP2[系统管理]
|
||||||
|
UP3[用户权限]
|
||||||
|
UP4[组织架构]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "核心业务层"
|
||||||
|
CB1[客户管理]
|
||||||
|
CB2[抄表管理]
|
||||||
|
CB3[收费管理]
|
||||||
|
CB4[账务管理]
|
||||||
|
CB5[表务管理]
|
||||||
|
CB6[报装管理]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "增值服务层"
|
||||||
|
VS1[客户服务]
|
||||||
|
VS2[移动应用]
|
||||||
|
VS3[微信服务]
|
||||||
|
VS4[电子发票]
|
||||||
|
VS5[在线支付]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据服务层"
|
||||||
|
DS1[统计分析]
|
||||||
|
DS2[报表查询]
|
||||||
|
DS3[数据导出]
|
||||||
|
DS4[决策支持]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "集成服务层"
|
||||||
|
IS1[银行接口]
|
||||||
|
IS2[支付接口]
|
||||||
|
IS3[短信接口]
|
||||||
|
IS4[集抄接口]
|
||||||
|
IS5[政务接口]
|
||||||
|
end
|
||||||
|
|
||||||
|
UP1 --> CB1
|
||||||
|
UP2 --> CB2
|
||||||
|
UP3 --> CB3
|
||||||
|
UP4 --> CB4
|
||||||
|
|
||||||
|
CB1 --> VS1
|
||||||
|
CB2 --> VS2
|
||||||
|
CB3 --> VS3
|
||||||
|
CB4 --> VS4
|
||||||
|
CB5 --> VS5
|
||||||
|
CB6 --> VS1
|
||||||
|
|
||||||
|
VS1 --> DS1
|
||||||
|
VS2 --> DS2
|
||||||
|
VS3 --> DS3
|
||||||
|
VS4 --> DS4
|
||||||
|
VS5 --> DS1
|
||||||
|
|
||||||
|
DS1 --> IS1
|
||||||
|
DS2 --> IS2
|
||||||
|
DS3 --> IS3
|
||||||
|
DS4 --> IS4
|
||||||
|
DS1 --> IS5
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_module_design_35098/diagram_3.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
39
temp_mermaid_water_biz_module_design_35098/diagram_4.mmd
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
flowchart TD
|
||||||
|
Start([开始抄表周期]) --> BookPlan[制定抄表计划]
|
||||||
|
BookPlan --> CreateBook[生成抄表册本]
|
||||||
|
CreateBook --> AssignReader[分配抄表员]
|
||||||
|
|
||||||
|
AssignReader --> ReadingStart[开始抄表]
|
||||||
|
ReadingStart --> ReadingType{抄表方式}
|
||||||
|
|
||||||
|
ReadingType -->|人工抄表| ManualReading[现场抄表录入]
|
||||||
|
ReadingType -->|远程抄表| RemoteReading[远程采集数据]
|
||||||
|
ReadingType -->|客户自报| SelfReporting[客户自主上报]
|
||||||
|
|
||||||
|
ManualReading --> DataValidation[数据校验]
|
||||||
|
RemoteReading --> DataValidation
|
||||||
|
SelfReporting --> DataValidation
|
||||||
|
|
||||||
|
DataValidation --> ValidationResult{校验结果}
|
||||||
|
ValidationResult -->|异常| ExceptionHandle[异常处理]
|
||||||
|
ValidationResult -->|正常| DataReview[数据复核]
|
||||||
|
|
||||||
|
ExceptionHandle --> ReviewException[人工审核异常]
|
||||||
|
ReviewException --> DataReview
|
||||||
|
|
||||||
|
DataReview --> ReviewResult{复核结果}
|
||||||
|
ReviewResult -->|退回| ReadingStart
|
||||||
|
ReviewResult -->|通过| BillGeneration[生成账单]
|
||||||
|
|
||||||
|
BillGeneration --> CalcWaterFee[计算水费]
|
||||||
|
CalcWaterFee --> CalcSewageFee[计算污水费]
|
||||||
|
CalcSewageFee --> CalcOtherFee[计算其他费用]
|
||||||
|
CalcOtherFee --> BillReview[账单审核]
|
||||||
|
|
||||||
|
BillReview --> BillResult{审核结果}
|
||||||
|
BillResult -->|退回| BillGeneration
|
||||||
|
BillResult -->|通过| BillConfirm[账单确认]
|
||||||
|
|
||||||
|
BillConfirm --> SendNotification[发送缴费通知]
|
||||||
|
SendNotification --> End([完成开账])
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_module_design_35098/diagram_4.png
Normal file
|
After Width: | Height: | Size: 112 KiB |
47
temp_mermaid_water_biz_module_design_35098/diagram_5.mmd
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
flowchart TD
|
||||||
|
Start([客户缴费]) --> QueryCustomer[查询客户信息]
|
||||||
|
QueryCustomer --> CustomerExists{客户是否存在}
|
||||||
|
CustomerExists -->|否| ErrorReturn[返回错误信息]
|
||||||
|
CustomerExists -->|是| QueryBills[查询欠费账单]
|
||||||
|
|
||||||
|
QueryBills --> BillExists{是否有欠费}
|
||||||
|
BillExists -->|否| NoDebt[无欠费提示]
|
||||||
|
BillExists -->|是| ShowBills[显示账单列表]
|
||||||
|
|
||||||
|
ShowBills --> SelectBills[选择缴费账单]
|
||||||
|
SelectBills --> CalcAmount[计算缴费金额]
|
||||||
|
CalcAmount --> SelectPayMethod[选择支付方式]
|
||||||
|
|
||||||
|
SelectPayMethod --> PaymentType{支付方式}
|
||||||
|
PaymentType -->|现金| CashPayment[现金收费]
|
||||||
|
PaymentType -->|银行卡| BankCardPay[银行卡支付]
|
||||||
|
PaymentType -->|在线支付| OnlinePayment[在线支付]
|
||||||
|
PaymentType -->|预存款| PrepaidPayment[预存款支付]
|
||||||
|
|
||||||
|
CashPayment --> ValidatePayment[验证收费金额]
|
||||||
|
BankCardPay --> ValidatePayment
|
||||||
|
OnlinePayment --> ThirdPartyPay[第三方支付]
|
||||||
|
PrepaidPayment --> CheckBalance[检查预存余额]
|
||||||
|
|
||||||
|
ThirdPartyPay --> PaymentCallback[支付回调]
|
||||||
|
PaymentCallback --> ValidatePayment
|
||||||
|
|
||||||
|
CheckBalance --> BalanceOK{余额是否充足}
|
||||||
|
BalanceOK -->|否| InsufficientBalance[余额不足]
|
||||||
|
BalanceOK -->|是| ValidatePayment
|
||||||
|
|
||||||
|
ValidatePayment --> PaymentSuccess{支付成功}
|
||||||
|
PaymentSuccess -->|否| PaymentFailed[支付失败处理]
|
||||||
|
PaymentSuccess -->|是| UpdateAccount[更新账户状态]
|
||||||
|
|
||||||
|
UpdateAccount --> UpdateBills[更新账单状态]
|
||||||
|
UpdateBills --> GenerateReceipt[生成收费凭证]
|
||||||
|
GenerateReceipt --> PrintReceipt[打印收据]
|
||||||
|
PrintReceipt --> SendNotification[发送缴费通知]
|
||||||
|
SendNotification --> Complete([完成缴费])
|
||||||
|
|
||||||
|
PaymentFailed --> End([结束])
|
||||||
|
InsufficientBalance --> End
|
||||||
|
ErrorReturn --> End
|
||||||
|
NoDebt --> End
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_module_design_35098/diagram_5.png
Normal file
|
After Width: | Height: | Size: 156 KiB |
36
temp_mermaid_water_biz_module_design_35098/diagram_6.mmd
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
flowchart TD
|
||||||
|
Start(["账务处理请求"]) --> CheckAuth["权限验证"]
|
||||||
|
CheckAuth --> AuthOK{"权限验证"}
|
||||||
|
AuthOK -->|失败| AuthError["权限错误"]
|
||||||
|
AuthOK -->|成功| ProcessType{"处理类型"}
|
||||||
|
|
||||||
|
ProcessType -->|调账| AdjustAccount["账务调整"]
|
||||||
|
ProcessType -->|退款| RefundProcess["退款处理"]
|
||||||
|
ProcessType -->|销账| WriteOff["销账处理"]
|
||||||
|
ProcessType -->|预存调整| PrepaidAdjust["预存调整"]
|
||||||
|
|
||||||
|
AdjustAccount --> ValidateAdjust["验证调整数据"]
|
||||||
|
RefundProcess --> ValidateRefund["验证退款数据"]
|
||||||
|
WriteOff --> ValidateWriteOff["验证销账数据"]
|
||||||
|
PrepaidAdjust --> ValidatePrepaid["验证预存数据"]
|
||||||
|
|
||||||
|
ValidateAdjust --> AdjustApproval["调账审批"]
|
||||||
|
ValidateRefund --> RefundApproval["退款审批"]
|
||||||
|
ValidateWriteOff --> WriteOffApproval["销账审批"]
|
||||||
|
ValidatePrepaid --> PrepaidApproval["预存审批"]
|
||||||
|
|
||||||
|
AdjustApproval --> ApprovalResult{"审批结果"}
|
||||||
|
RefundApproval --> ApprovalResult
|
||||||
|
WriteOffApproval --> ApprovalResult
|
||||||
|
PrepaidApproval --> ApprovalResult
|
||||||
|
|
||||||
|
ApprovalResult -->|拒绝| ApprovalReject["审批拒绝"]
|
||||||
|
ApprovalResult -->|通过| ExecuteProcess["执行处理"]
|
||||||
|
|
||||||
|
ExecuteProcess --> UpdateAccount["更新账户"]
|
||||||
|
UpdateAccount --> RecordLog["记录日志"]
|
||||||
|
RecordLog --> Complete(["处理完成"])
|
||||||
|
|
||||||
|
AuthError --> End(["结束"])
|
||||||
|
ApprovalReject --> End
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_module_design_35098/diagram_6.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
24
temp_mermaid_water_biz_module_design_35098/diagram_7.mmd
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
flowchart TD
|
||||||
|
Start([发票业务]) --> InvoiceType{发票类型}
|
||||||
|
|
||||||
|
InvoiceType -->|纸质发票| PaperInvoice[纸质发票管理]
|
||||||
|
InvoiceType -->|电子发票| EInvoice[电子发票管理]
|
||||||
|
|
||||||
|
PaperInvoice --> PaperStock[发票库存管理]
|
||||||
|
PaperStock --> PaperPrint[发票打印]
|
||||||
|
PaperPrint --> PaperRecord[打印记录]
|
||||||
|
|
||||||
|
EInvoice --> EInvoiceGenerate[电子发票生成]
|
||||||
|
EInvoiceGenerate --> EInvoiceSign[电子签章]
|
||||||
|
EInvoiceSign --> EInvoiceSend[发票推送]
|
||||||
|
|
||||||
|
PaperRecord --> InvoiceQuery[发票查询]
|
||||||
|
EInvoiceSend --> InvoiceQuery
|
||||||
|
|
||||||
|
InvoiceQuery --> InvoiceCancel{需要作废?}
|
||||||
|
InvoiceCancel -->|是| CancelInvoice[发票作废]
|
||||||
|
InvoiceCancel -->|否| Complete([完成])
|
||||||
|
|
||||||
|
CancelInvoice --> CancelRecord[作废记录]
|
||||||
|
CancelRecord --> Complete
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_module_design_35098/diagram_7.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
31
temp_mermaid_water_biz_module_design_35098/diagram_8.mmd
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "前端应用"
|
||||||
|
F1[管理后台<br/>yudao-ui-admin-vue3]
|
||||||
|
F2[移动端<br/>uni-app]
|
||||||
|
F3[客户端<br/>微信小程序]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "后端服务"
|
||||||
|
B1[认证服务<br/>Spring Security]
|
||||||
|
B2[业务服务<br/>RuoYi-Vue-Pro]
|
||||||
|
B3[网关服务<br/>Spring Cloud Gateway]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据存储"
|
||||||
|
D1[(OpenGauss 5.0+)]
|
||||||
|
D2[(Redis 6.0)]
|
||||||
|
D3[MinIO文件存储]
|
||||||
|
end
|
||||||
|
|
||||||
|
F1 --> B3
|
||||||
|
F2 --> B3
|
||||||
|
F3 --> B3
|
||||||
|
|
||||||
|
B3 --> B1
|
||||||
|
B3 --> B2
|
||||||
|
|
||||||
|
B1 --> D2
|
||||||
|
B2 --> D1
|
||||||
|
B2 --> D2
|
||||||
|
B2 --> D3
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_module_design_35098/diagram_8.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
70
temp_mermaid_water_biz_security_design_35098/diagram_1.mmd
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "外部威胁"
|
||||||
|
THREAT1[网络攻击]
|
||||||
|
THREAT2[恶意软件]
|
||||||
|
THREAT3[数据泄露]
|
||||||
|
THREAT4[内部威胁]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "安全防护层"
|
||||||
|
subgraph "边界安全"
|
||||||
|
WAF[Web应用防火墙]
|
||||||
|
FW[网络防火墙]
|
||||||
|
IPS[入侵防护系统]
|
||||||
|
VPN[VPN网关]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "应用安全"
|
||||||
|
AUTH[身份认证]
|
||||||
|
AUTHZ[访问控制]
|
||||||
|
AUDIT[操作审计]
|
||||||
|
ENCRYPT[数据加密]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据安全"
|
||||||
|
TDE[透明数据加密]
|
||||||
|
RLS[行级安全]
|
||||||
|
MASK[数据脱敏]
|
||||||
|
BACKUP[安全备份]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "运维安全"
|
||||||
|
MONITOR[安全监控]
|
||||||
|
LOG[日志分析]
|
||||||
|
ALERT[告警响应]
|
||||||
|
PATCH[安全更新]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "核心资产"
|
||||||
|
APP[水务营收系统]
|
||||||
|
DB[OpenGauss数据库]
|
||||||
|
FILE[文件存储]
|
||||||
|
API[接口服务]
|
||||||
|
end
|
||||||
|
|
||||||
|
THREAT1 --> WAF
|
||||||
|
THREAT2 --> FW
|
||||||
|
THREAT3 --> IPS
|
||||||
|
THREAT4 --> VPN
|
||||||
|
|
||||||
|
WAF --> AUTH
|
||||||
|
FW --> AUTHZ
|
||||||
|
IPS --> AUDIT
|
||||||
|
VPN --> ENCRYPT
|
||||||
|
|
||||||
|
AUTH --> TDE
|
||||||
|
AUTHZ --> RLS
|
||||||
|
AUDIT --> MASK
|
||||||
|
ENCRYPT --> BACKUP
|
||||||
|
|
||||||
|
TDE --> MONITOR
|
||||||
|
RLS --> LOG
|
||||||
|
MASK --> ALERT
|
||||||
|
BACKUP --> PATCH
|
||||||
|
|
||||||
|
MONITOR --> APP
|
||||||
|
LOG --> DB
|
||||||
|
ALERT --> FILE
|
||||||
|
PATCH --> API
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_security_design_35098/diagram_1.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
46
temp_mermaid_water_biz_security_design_35098/diagram_2.mmd
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "OpenGauss安全特性"
|
||||||
|
subgraph "身份认证"
|
||||||
|
PWD[密码认证]
|
||||||
|
CERT[证书认证]
|
||||||
|
LDAP_AUTH[LDAP认证]
|
||||||
|
KERBEROS[Kerberos认证]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "访问控制"
|
||||||
|
RBAC_DB[基于角色的访问控制]
|
||||||
|
RLS_DB[行级安全策略]
|
||||||
|
CLS_DB[列级访问控制]
|
||||||
|
SCHEMA[模式权限控制]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据加密"
|
||||||
|
TDE_SM4[TDE透明加密<br/>SM4国密算法]
|
||||||
|
SSL_SM[SSL传输加密<br/>SM2/SM3/SM4]
|
||||||
|
FIELD_ENC[字段级加密]
|
||||||
|
BACKUP_ENC[备份加密]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "审计监控"
|
||||||
|
AUDIT_LOG[操作审计日志]
|
||||||
|
LOGIN_LOG[登录审计]
|
||||||
|
DDL_LOG[DDL操作记录]
|
||||||
|
SECURITY_LOG[安全事件日志]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
PWD --> RBAC_DB
|
||||||
|
CERT --> RLS_DB
|
||||||
|
LDAP_AUTH --> CLS_DB
|
||||||
|
KERBEROS --> SCHEMA
|
||||||
|
|
||||||
|
RBAC_DB --> TDE_SM4
|
||||||
|
RLS_DB --> SSL_SM
|
||||||
|
CLS_DB --> FIELD_ENC
|
||||||
|
SCHEMA --> BACKUP_ENC
|
||||||
|
|
||||||
|
TDE_SM4 --> AUDIT_LOG
|
||||||
|
SSL_SM --> LOGIN_LOG
|
||||||
|
FIELD_ENC --> DDL_LOG
|
||||||
|
BACKUP_ENC --> SECURITY_LOG
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_security_design_35098/diagram_2.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
76
temp_mermaid_water_biz_security_design_35098/diagram_3.mmd
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "外网区域"
|
||||||
|
INTERNET[互联网]
|
||||||
|
CDN[CDN加速]
|
||||||
|
DNS[DNS服务]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "边界防护"
|
||||||
|
WAF[Web应用防火墙<br/>国产WAF产品]
|
||||||
|
FW_BORDER[边界防火墙<br/>安全审计]
|
||||||
|
IPS[入侵防护系统<br/>威胁检测]
|
||||||
|
DPI[深度包检测<br/>流量分析]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "DMZ区域"
|
||||||
|
LB[负载均衡器<br/>SSL卸载]
|
||||||
|
WEB1[Web服务器1]
|
||||||
|
WEB2[Web服务器2]
|
||||||
|
PROXY[反向代理]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "内网安全"
|
||||||
|
FW_INTERNAL[内部防火墙]
|
||||||
|
VLAN_APP[应用VLAN]
|
||||||
|
VLAN_DB[数据库VLAN]
|
||||||
|
VLAN_MGT[管理VLAN]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "应用层"
|
||||||
|
APP1[应用服务器1]
|
||||||
|
APP2[应用服务器2]
|
||||||
|
APP3[应用服务器3]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据层"
|
||||||
|
DB_MASTER[OpenGauss主库]
|
||||||
|
DB_SLAVE[OpenGauss从库]
|
||||||
|
REDIS[Redis集群]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "管理层"
|
||||||
|
JUMP[跳板机]
|
||||||
|
MONITOR[监控服务器]
|
||||||
|
LOG[日志服务器]
|
||||||
|
end
|
||||||
|
|
||||||
|
INTERNET --> CDN
|
||||||
|
CDN --> DNS
|
||||||
|
DNS --> WAF
|
||||||
|
WAF --> FW_BORDER
|
||||||
|
FW_BORDER --> IPS
|
||||||
|
IPS --> DPI
|
||||||
|
DPI --> LB
|
||||||
|
|
||||||
|
LB --> WEB1
|
||||||
|
LB --> WEB2
|
||||||
|
WEB1 --> PROXY
|
||||||
|
WEB2 --> PROXY
|
||||||
|
|
||||||
|
PROXY --> FW_INTERNAL
|
||||||
|
FW_INTERNAL --> VLAN_APP
|
||||||
|
FW_INTERNAL --> VLAN_DB
|
||||||
|
FW_INTERNAL --> VLAN_MGT
|
||||||
|
|
||||||
|
VLAN_APP --> APP1
|
||||||
|
VLAN_APP --> APP2
|
||||||
|
VLAN_APP --> APP3
|
||||||
|
|
||||||
|
VLAN_DB --> DB_MASTER
|
||||||
|
VLAN_DB --> DB_SLAVE
|
||||||
|
VLAN_DB --> REDIS
|
||||||
|
|
||||||
|
VLAN_MGT --> JUMP
|
||||||
|
VLAN_MGT --> MONITOR
|
||||||
|
VLAN_MGT --> LOG
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_security_design_35098/diagram_3.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
33
temp_mermaid_water_biz_security_design_35098/diagram_4.mmd
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "数据分类"
|
||||||
|
SECRET[机密级<br/>重要业务数据]
|
||||||
|
INTERNAL[内部级<br/>一般业务数据]
|
||||||
|
PUBLIC[公开级<br/>公开业务数据]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "水务业务数据"
|
||||||
|
CUSTOMER[客户身份信息<br/>机密级]
|
||||||
|
METER[水表计量数据<br/>内部级]
|
||||||
|
BILLING[收费账务数据<br/>机密级]
|
||||||
|
REPORT[统计报表数据<br/>内部级]
|
||||||
|
CONFIG[系统配置数据<br/>内部级]
|
||||||
|
LOG[日志审计数据<br/>内部级]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "保护措施"
|
||||||
|
ENC_HIGH[强加密<br/>SM4+数字签名]
|
||||||
|
ENC_MID[访问控制<br/>权限管理]
|
||||||
|
ENC_LOW[公开访问<br/>无特殊保护]
|
||||||
|
end
|
||||||
|
|
||||||
|
SECRET --> ENC_HIGH
|
||||||
|
INTERNAL --> ENC_MID
|
||||||
|
PUBLIC --> ENC_LOW
|
||||||
|
|
||||||
|
CUSTOMER --> SECRET
|
||||||
|
BILLING --> SECRET
|
||||||
|
METER --> INTERNAL
|
||||||
|
REPORT --> INTERNAL
|
||||||
|
CONFIG --> INTERNAL
|
||||||
|
LOG --> INTERNAL
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_security_design_35098/diagram_4.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
42
temp_mermaid_water_biz_security_design_35098/diagram_5.mmd
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph "数据采集层"
|
||||||
|
AGENT1[系统日志采集]
|
||||||
|
AGENT2[应用日志采集]
|
||||||
|
AGENT3[数据库日志采集]
|
||||||
|
AGENT4[网络流量采集]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "数据处理层"
|
||||||
|
KAFKA[消息队列<br/>Kafka集群]
|
||||||
|
STREAM[流处理<br/>Flink/Storm]
|
||||||
|
ETL[数据清洗<br/>Logstash]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "存储分析层"
|
||||||
|
ES[Elasticsearch<br/>日志存储]
|
||||||
|
SIEM[安全信息事件管理<br/>SIEM平台]
|
||||||
|
AI[智能分析<br/>机器学习]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "可视化层"
|
||||||
|
DASHBOARD[监控仪表盘<br/>Grafana]
|
||||||
|
ALERT[告警系统<br/>AlertManager]
|
||||||
|
REPORT[安全报告<br/>自动生成]
|
||||||
|
end
|
||||||
|
|
||||||
|
AGENT1 --> KAFKA
|
||||||
|
AGENT2 --> KAFKA
|
||||||
|
AGENT3 --> KAFKA
|
||||||
|
AGENT4 --> KAFKA
|
||||||
|
|
||||||
|
KAFKA --> STREAM
|
||||||
|
STREAM --> ETL
|
||||||
|
ETL --> ES
|
||||||
|
|
||||||
|
ES --> SIEM
|
||||||
|
SIEM --> AI
|
||||||
|
AI --> DASHBOARD
|
||||||
|
|
||||||
|
DASHBOARD --> ALERT
|
||||||
|
ALERT --> REPORT
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_security_design_35098/diagram_5.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
18
temp_mermaid_water_biz_security_design_35098/diagram_6.mmd
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
graph LR
|
||||||
|
DISCOVER[漏洞发现] --> ASSESS[风险评估]
|
||||||
|
ASSESS --> PLAN[补丁计划]
|
||||||
|
PLAN --> TEST[测试验证]
|
||||||
|
TEST --> DEPLOY[生产部署]
|
||||||
|
DEPLOY --> VERIFY[部署验证]
|
||||||
|
VERIFY --> DOCUMENT[文档记录]
|
||||||
|
|
||||||
|
subgraph "评估标准"
|
||||||
|
HIGH[高危<br/>24小时内]
|
||||||
|
MEDIUM[中危<br/>7天内]
|
||||||
|
LOW[低危<br/>30天内]
|
||||||
|
end
|
||||||
|
|
||||||
|
ASSESS --> HIGH
|
||||||
|
ASSESS --> MEDIUM
|
||||||
|
ASSESS --> LOW
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_security_design_35098/diagram_6.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
30
temp_mermaid_water_biz_security_design_35098/diagram_7.mmd
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
graph TB
|
||||||
|
INCIDENT[安全事件发生] --> DETECT[事件检测]
|
||||||
|
DETECT --> REPORT[事件上报]
|
||||||
|
REPORT --> ASSESS[影响评估]
|
||||||
|
ASSESS --> RESPONSE[应急响应]
|
||||||
|
|
||||||
|
subgraph "应急响应措施"
|
||||||
|
ISOLATE[系统隔离]
|
||||||
|
PRESERVE[证据保全]
|
||||||
|
RECOVER[系统恢复]
|
||||||
|
INVESTIGATE[调查分析]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "后续处理"
|
||||||
|
LESSON[经验总结]
|
||||||
|
IMPROVE[流程改进]
|
||||||
|
TRAIN[培训加强]
|
||||||
|
DOC[文档更新]
|
||||||
|
end
|
||||||
|
|
||||||
|
RESPONSE --> ISOLATE
|
||||||
|
RESPONSE --> PRESERVE
|
||||||
|
RESPONSE --> RECOVER
|
||||||
|
RESPONSE --> INVESTIGATE
|
||||||
|
|
||||||
|
INVESTIGATE --> LESSON
|
||||||
|
LESSON --> IMPROVE
|
||||||
|
IMPROVE --> TRAIN
|
||||||
|
TRAIN --> DOC
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_security_design_35098/diagram_7.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
39
temp_mermaid_water_biz_security_design_35098/diagram_8.mmd
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
graph TB
|
||||||
|
CEO[总经理<br/>安全最高责任人]
|
||||||
|
CISO[信息安全负责人<br/>CISO]
|
||||||
|
|
||||||
|
subgraph "安全管理委员会"
|
||||||
|
IT_DIR[IT总监]
|
||||||
|
SECURITY_DIR[安全总监]
|
||||||
|
COMPLIANCE[合规负责人]
|
||||||
|
LEGAL[法务负责人]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "安全执行团队"
|
||||||
|
SEC_ADMIN[安全管理员]
|
||||||
|
SYS_ADMIN[系统管理员]
|
||||||
|
DBA[数据库管理员]
|
||||||
|
NET_ADMIN[网络管理员]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "业务安全责任人"
|
||||||
|
BUS_OWNER[业务负责人]
|
||||||
|
DATA_OWNER[数据负责人]
|
||||||
|
USER_ADMIN[用户管理员]
|
||||||
|
end
|
||||||
|
|
||||||
|
CEO --> CISO
|
||||||
|
CISO --> IT_DIR
|
||||||
|
CISO --> SECURITY_DIR
|
||||||
|
CISO --> COMPLIANCE
|
||||||
|
CISO --> LEGAL
|
||||||
|
|
||||||
|
IT_DIR --> SEC_ADMIN
|
||||||
|
IT_DIR --> SYS_ADMIN
|
||||||
|
IT_DIR --> DBA
|
||||||
|
IT_DIR --> NET_ADMIN
|
||||||
|
|
||||||
|
SECURITY_DIR --> BUS_OWNER
|
||||||
|
SECURITY_DIR --> DATA_OWNER
|
||||||
|
SECURITY_DIR --> USER_ADMIN
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_security_design_35098/diagram_8.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
@ -0,0 +1,47 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph USER["用户层"]
|
||||||
|
A1[Web管理端<br/>yudao-ui-admin-vue3]
|
||||||
|
A2[移动抄表端<br/>uni-app]
|
||||||
|
A3[客户微信端<br/>微信小程序]
|
||||||
|
A4[客户支付宝端<br/>支付宝小程序]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph GATEWAY["网关层"]
|
||||||
|
B1[Nginx负载均衡]
|
||||||
|
B2[API网关<br/>统一认证/权限控制]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph APP["应用层"]
|
||||||
|
C1[营收管理<br/>RuoYi-Vue-Pro]
|
||||||
|
C2[客户服务<br/>RuoYi-Vue-Pro]
|
||||||
|
C3[表务管理<br/>RuoYi-Vue-Pro]
|
||||||
|
C4[统计分析<br/>RuoYi-Vue-Pro]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph SERVICE["服务层"]
|
||||||
|
D1[权限服务<br/>Spring Security]
|
||||||
|
D2[工作流服务<br/>Flowable]
|
||||||
|
D3[消息服务<br/>Redis MQ]
|
||||||
|
D4[文件服务<br/>MinIO/OSS]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATA["数据层"]
|
||||||
|
E1[(OpenGauss 5.0+<br/>主从架构)]
|
||||||
|
E2[(Redis 6.0<br/>集群缓存)]
|
||||||
|
E3[文件存储<br/>分布式存储]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph EXTERNAL["外部接口"]
|
||||||
|
F1[银行接口<br/>代扣/托收]
|
||||||
|
F2[支付接口<br/>微信/支付宝]
|
||||||
|
F3[短信接口<br/>阿里云/腾讯云]
|
||||||
|
F4[物联网接口<br/>智能水表]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 层级间调用关系
|
||||||
|
USER -.->|请求访问| GATEWAY
|
||||||
|
GATEWAY -.->|负载均衡<br/>路由转发| APP
|
||||||
|
APP -.->|服务调用| SERVICE
|
||||||
|
APP -.->|外部集成| EXTERNAL
|
||||||
|
SERVICE -.->|数据访问| DATA
|
||||||
|
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
graph
|
||||||
|
subgraph ENCRYPT["加密层级"]
|
||||||
|
direction TB
|
||||||
|
L1[传输层加密<br/>SSL/TLS/国密SM]
|
||||||
|
L2[存储层加密<br/>TDE透明数据加密]
|
||||||
|
L3[字段级加密<br/>敏感字段加密]
|
||||||
|
L4[备份加密<br/>备份文件加密]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph KEYMANAGE["密钥管理"]
|
||||||
|
direction TB
|
||||||
|
KMS[密钥管理系统<br/>Key Management]
|
||||||
|
HSM[硬件安全模块<br/>Hardware Security]
|
||||||
|
ROT[密钥轮换<br/>Key Rotation]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph GUOMI["国密算法"]
|
||||||
|
direction TB
|
||||||
|
SM2[SM2椭圆曲线<br/>非对称加密]
|
||||||
|
SM3[SM3哈希算法<br/>消息摘要]
|
||||||
|
SM4[SM4分组密码<br/>对称加密]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 安全层级调用关系
|
||||||
|
ENCRYPT -.->|密钥依赖<br/>加密管理| KEYMANAGE
|
||||||
|
KEYMANAGE -.->|算法调用<br/>国密支持| GUOMI
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_10.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
@ -0,0 +1,29 @@
|
|||||||
|
graph
|
||||||
|
subgraph AUTHENTICATION["身份认证"]
|
||||||
|
direction TB
|
||||||
|
AUTH1[用户名密码认证]
|
||||||
|
AUTH2[LDAP集成认证]
|
||||||
|
AUTH3[Kerberos认证]
|
||||||
|
AUTH4[证书认证]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph AUTHORIZATION["权限控制"]
|
||||||
|
direction TB
|
||||||
|
RBAC[基于角色的权限控制<br/>Role-Based Access Control]
|
||||||
|
RLS[行级安全策略<br/>Row Level Security]
|
||||||
|
CLS[列级安全控制<br/>Column Level Security]
|
||||||
|
TENANT[多租户数据隔离<br/>Multi-Tenant Isolation]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph AUDITING["审计监控"]
|
||||||
|
direction TB
|
||||||
|
AUDIT[操作审计日志<br/>Audit Logging]
|
||||||
|
MONITOR[实时安全监控<br/>Security Monitoring]
|
||||||
|
ALERT[安全告警<br/>Security Alert]
|
||||||
|
REPORT[合规报告<br/>Compliance Report]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 安全控制流程
|
||||||
|
AUTHENTICATION -.->|身份验证<br/>授权检查| AUTHORIZATION
|
||||||
|
AUTHORIZATION -.->|权限监控<br/>操作审计| AUDITING
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_11.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
@ -0,0 +1,51 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph DMZ["DMZ区域"]
|
||||||
|
subgraph "负载均衡集群"
|
||||||
|
LB1[负载均衡器<br/>Nginx Cluster]
|
||||||
|
WAF[Web应用防火墙]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph APPZONE["应用服务区"]
|
||||||
|
subgraph "Web服务集群"
|
||||||
|
WEB1[Web服务器1<br/>8核32G]
|
||||||
|
WEB2[Web服务器2<br/>8核32G]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "应用服务集群"
|
||||||
|
APP1[应用服务器1<br/>16核64G]
|
||||||
|
APP2[应用服务器2<br/>16核64G]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATAZONE["数据服务区"]
|
||||||
|
subgraph "数据库集群"
|
||||||
|
DB1[OpenGauss主库<br/>32核128G]
|
||||||
|
DB2[OpenGauss从库<br/>32核128G]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "缓存集群"
|
||||||
|
REDIS1[Redis主节点<br/>16核32G]
|
||||||
|
REDIS2[Redis从节点<br/>16核32G]
|
||||||
|
REDIS3[Redis哨兵<br/>8核16G]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "文件存储"
|
||||||
|
FILE1[文件服务器1<br/>8核32G 10TB]
|
||||||
|
FILE2[文件服务器2<br/>8核32G 10TB]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph MGMT["管理服务区"]
|
||||||
|
MONITOR[监控服务器<br/>8核16G]
|
||||||
|
BACKUP[备份服务器<br/>8核32G 20TB]
|
||||||
|
JUMP[跳板服务器<br/>4核8G]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 区域间调用关系
|
||||||
|
Internet -.->|外网访问| DMZ
|
||||||
|
DMZ -.->|负载均衡<br/>安全过滤| APPZONE
|
||||||
|
APPZONE -.->|数据访问<br/>业务处理| DATAZONE
|
||||||
|
MGMT -.->|监控管理<br/>备份恢复| DATAZONE
|
||||||
|
MGMT -.->|系统监控<br/>运维管理| APPZONE
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_2.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
@ -0,0 +1,57 @@
|
|||||||
|
graph
|
||||||
|
subgraph FRONTEND["🏷 前端技术栈"]
|
||||||
|
direction TB
|
||||||
|
FE1["Vue 3.2+ TypeScript"]
|
||||||
|
FE2["Element Plus UI"]
|
||||||
|
FE3["Vite 构建工具"]
|
||||||
|
FE4["Pinia 状态管理"]
|
||||||
|
FE5["Vue Router 路由"]
|
||||||
|
FE6["Axios HTTP请求"]
|
||||||
|
FE7["ECharts 图表"]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph BACKEND["📦 后端技术栈"]
|
||||||
|
direction TB
|
||||||
|
BE1["Spring Boot 3.x"]:::spring
|
||||||
|
BE2["Spring Security"]:::security
|
||||||
|
BE3["MyBatis Plus"]:::orm
|
||||||
|
BE4["Redis 缓存"]:::db
|
||||||
|
BE5["OpenGauss DB"]:::db
|
||||||
|
BE6["Knife4j 文档"]
|
||||||
|
BE7["Jackson JSON"]
|
||||||
|
BE8["Maven 管理"]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph MIDDLEWARE["⚙️ 中间件服务"]
|
||||||
|
direction TB
|
||||||
|
MW1["Nginx LB"]
|
||||||
|
MW2["Redis集群"]
|
||||||
|
MW3["Flowable工作流"]
|
||||||
|
MW4["Quartz定时"]
|
||||||
|
MW5["MinIO存储"]
|
||||||
|
MW6["RocketMQ"]
|
||||||
|
MW7["ElasticSearch"]
|
||||||
|
MW8["Sentinel限流"]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph MOBILE["📱 移动应用"]
|
||||||
|
direction TB
|
||||||
|
MB1["uni-app"]
|
||||||
|
MB2["uView UI"]
|
||||||
|
MB3["微信小程序"]
|
||||||
|
MB4["支付宝小程序"]
|
||||||
|
MB5["H5响应式"]
|
||||||
|
MB6["高德地图SDK"]
|
||||||
|
MB7["NFC设备接口"]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 技术栈间调用关系
|
||||||
|
FRONTEND -.->|HTTP请求<br/>API调用| BACKEND
|
||||||
|
MOBILE -.->|跨平台调用<br/>API集成| BACKEND
|
||||||
|
BACKEND -.->|服务集成<br/>中间件调用| MIDDLEWARE
|
||||||
|
|
||||||
|
classDef spring fill:#6db33f,color:white
|
||||||
|
classDef security fill:#b5e6c0
|
||||||
|
classDef orm fill:#c7b3e5
|
||||||
|
classDef db fill:#f9d27d
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_3.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,55 @@
|
|||||||
|
flowchart TD
|
||||||
|
subgraph COLLECT["数据采集层"]
|
||||||
|
A1[移动抄表APP<br/>数据采集]
|
||||||
|
A2[智能水表<br/>远程数据]
|
||||||
|
A3[Web管理端<br/>业务录入]
|
||||||
|
A4[客户端小程序<br/>用户数据]
|
||||||
|
A5[外部系统<br/>接口数据]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph ACCESS["数据接入层"]
|
||||||
|
B1[API网关<br/>数据验证]
|
||||||
|
B2[数据清洗<br/>格式转换]
|
||||||
|
B3[消息队列<br/>异步处理]
|
||||||
|
B4[数据缓存<br/>临时存储]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph PROCESS["业务处理层"]
|
||||||
|
C1[抄表服务<br/>水量计算]
|
||||||
|
C2[收费服务<br/>账单生成]
|
||||||
|
C3[账务服务<br/>财务处理]
|
||||||
|
C4[工单服务<br/>流程处理]
|
||||||
|
C5[统计服务<br/>数据分析]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph STORAGE["数据存储层"]
|
||||||
|
D1[(OpenGauss主库<br/>核心业务数据)]
|
||||||
|
D2[(OpenGauss从库<br/>查询数据)]
|
||||||
|
D3[(Redis缓存<br/>热点数据)]
|
||||||
|
D4[文件存储<br/>附件图片]
|
||||||
|
D5[(备份库<br/>历史数据)]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph SERVICE["数据服务层"]
|
||||||
|
E1[查询服务<br/>数据检索]
|
||||||
|
E2[报表服务<br/>统计分析]
|
||||||
|
E3[接口服务<br/>对外开放]
|
||||||
|
E4[推送服务<br/>消息通知]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph PRESENT["数据展现层"]
|
||||||
|
F1[管理后台<br/>业务操作]
|
||||||
|
F2[统计大屏<br/>可视化展示]
|
||||||
|
F3[移动端<br/>现场作业]
|
||||||
|
F4[客户端<br/>自助服务]
|
||||||
|
F5[第三方系统<br/>数据集成]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 数据流向关系
|
||||||
|
COLLECT -.->|数据采集<br/>格式验证| ACCESS
|
||||||
|
ACCESS -.->|数据接入<br/>清洗转换| PROCESS
|
||||||
|
PROCESS -.->|业务处理<br/>数据持久化| STORAGE
|
||||||
|
STORAGE -.->|数据查询<br/>统计分析| SERVICE
|
||||||
|
SERVICE -.->|数据服务<br/>接口调用| PRESENT
|
||||||
|
PRESENT -.->|用户反馈<br/>业务交互| PROCESS
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_4.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
@ -0,0 +1,31 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph FRAMEWORK["跨平台框架"]
|
||||||
|
M1[uni-app 3.x]
|
||||||
|
M2[Vue 3 Composition API]
|
||||||
|
M3[TypeScript支持]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph UIKIT["UI组件库"]
|
||||||
|
N1[uView UI 2.0]
|
||||||
|
N2[uni-ui组件]
|
||||||
|
N3[自定义水务组件]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DEVICE["设备能力"]
|
||||||
|
P1[相机API<br/>水表拍照]
|
||||||
|
P2[NFC读取<br/>水表标签]
|
||||||
|
P3[GPS定位<br/>抄表轨迹]
|
||||||
|
P4[扫码API<br/>二维码扫描]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph NETWORK["网络通信"]
|
||||||
|
Q1[uni.request<br/>HTTP请求]
|
||||||
|
Q2[WebSocket<br/>实时通信]
|
||||||
|
Q3[文件上传<br/>图片处理]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 移动架构调用关系
|
||||||
|
FRAMEWORK -.->|UI渲染<br/>组件调用| UIKIT
|
||||||
|
FRAMEWORK -.->|设备调用<br/>原生能力| DEVICE
|
||||||
|
FRAMEWORK -.->|网络通信<br/>数据交互| NETWORK
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_5.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
@ -0,0 +1,35 @@
|
|||||||
|
graph TD
|
||||||
|
subgraph ACCESS["接入层"]
|
||||||
|
GW[API网关]
|
||||||
|
AUTH[认证服务]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph BUSINESS["业务服务层"]
|
||||||
|
SYS[系统服务]
|
||||||
|
CUST[客户服务]
|
||||||
|
READ[抄表服务]
|
||||||
|
BILL[账单服务]
|
||||||
|
PAY[收费服务]
|
||||||
|
ORDER[工单服务]
|
||||||
|
RPT[报表服务]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph SUPPORT["支撑服务层"]
|
||||||
|
METER[水表管理]
|
||||||
|
WF[工作流引擎]
|
||||||
|
PAY_GW[支付网关]
|
||||||
|
IOT[物联网]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATA["数据存储层"]
|
||||||
|
DB[(OpenGauss数据库)]
|
||||||
|
REDIS[(Redis缓存)]
|
||||||
|
FILE_STORE[文件存储]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 层级间的调用关系
|
||||||
|
ACCESS -.->|请求路由<br/>认证授权| BUSINESS
|
||||||
|
BUSINESS -.->|服务调用| SUPPORT
|
||||||
|
BUSINESS -.->|数据访问| DATA
|
||||||
|
SUPPORT -.->|数据访问| DATA
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_6.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
@ -0,0 +1,38 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph REGISTRY["服务发现与注册"]
|
||||||
|
NACOS[Nacos注册中心<br/>服务注册/发现/配置]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph MESH["服务网格层"]
|
||||||
|
subgraph BALANCE["负载均衡"]
|
||||||
|
LB[Ribbon负载均衡<br/>客户端负载均衡]
|
||||||
|
FEIGN[OpenFeign<br/>服务间调用]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph PROTECTION["容错保护"]
|
||||||
|
CB[Sentinel熔断器<br/>流量控制/熔断降级]
|
||||||
|
RETRY[重试机制<br/>失败重试]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph TRACING["链路追踪"]
|
||||||
|
TRACE[SkyWalking<br/>分布式链路追踪]
|
||||||
|
METRIC[Micrometer<br/>指标收集]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph CONFIG_MGMT["配置管理"]
|
||||||
|
CONFIG[Nacos Config<br/>配置中心]
|
||||||
|
SECRET[配置加密<br/>敏感信息保护]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph MONITORING["监控告警"]
|
||||||
|
MONITOR[Spring Boot Admin<br/>应用监控]
|
||||||
|
ALERT[告警系统<br/>异常通知]
|
||||||
|
LOG[ELK日志系统<br/>日志聚合分析]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 服务治理调用关系
|
||||||
|
REGISTRY -.->|服务发现<br/>配置下发| MESH
|
||||||
|
MESH -.->|配置获取<br/>服务注册| CONFIG_MGMT
|
||||||
|
MESH -.->|监控数据<br/>链路追踪| MONITORING
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_7.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
@ -0,0 +1,30 @@
|
|||||||
|
graph
|
||||||
|
subgraph DBCLUSTER["OpenGauss高可用集群"]
|
||||||
|
MASTER[("OpenGauss主库<br/>Primary Node<br/>读写操作")]
|
||||||
|
STANDBY[("OpenGauss备库<br/>Standby Node<br/>只读操作")]
|
||||||
|
CASCADE[("OpenGauss级联备库<br/>Cascade Standby<br/>负载分担")]
|
||||||
|
|
||||||
|
MASTER -.->|流复制| STANDBY
|
||||||
|
STANDBY -.->|级联复制| CASCADE
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph APPLAYER["应用层"]
|
||||||
|
APP1[应用服务器1]
|
||||||
|
APP2[应用服务器2]
|
||||||
|
APP3[应用服务器3]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph POOLING["连接池"]
|
||||||
|
POOL[连接池<br/>HikariCP<br/>Druid]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph MANAGEMENT["监控管理"]
|
||||||
|
MON[OpenGauss Monitor<br/>性能监控]
|
||||||
|
BACKUP[定时备份<br/>gs_backup]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 高可用架构调用关系
|
||||||
|
APPLAYER -.->|连接请求<br/>负载均衡| POOLING
|
||||||
|
POOLING -.->|数据访问<br/>读写分离| DBCLUSTER
|
||||||
|
MANAGEMENT -.->|监控管理<br/>备份恢复| DBCLUSTER
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_8.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
@ -0,0 +1,31 @@
|
|||||||
|
graph TB
|
||||||
|
subgraph DISTRIBUTED["OpenGauss分布式架构"]
|
||||||
|
subgraph COORDINATOR["协调节点"]
|
||||||
|
CN1[协调节点1<br/>Coordinator Node]
|
||||||
|
CN2[协调节点2<br/>Coordinator Node]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATANODE1["数据节点组1"]
|
||||||
|
DN1_1[数据节点1-主<br/>Datanode Primary]
|
||||||
|
DN1_2[数据节点1-备<br/>Datanode Standby]
|
||||||
|
DN1_1 -.->|主备同步| DN1_2
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATANODE2["数据节点组2"]
|
||||||
|
DN2_1[数据节点2-主<br/>Datanode Primary]
|
||||||
|
DN2_2[数据节点2-备<br/>Datanode Standby]
|
||||||
|
DN2_1 -.->|主备同步| DN2_2
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph GTM_CLUSTER["GTM节点"]
|
||||||
|
GTM[全局事务管理器<br/>GTM Master]
|
||||||
|
GTM_S[GTM备节点<br/>GTM Standby]
|
||||||
|
GTM -.->|备份| GTM_S
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
%% 分布式架构调用关系
|
||||||
|
COORDINATOR -.->|分片路由<br/>查询协调| DATANODE1
|
||||||
|
COORDINATOR -.->|分片路由<br/>查询协调| DATANODE2
|
||||||
|
COORDINATOR -.->|事务管理<br/>全局一致性| GTM_CLUSTER
|
||||||
|
|
||||||
BIN
temp_mermaid_water_biz_system_architecture_35098/diagram_9.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
@ -41,66 +41,50 @@
|
|||||||
### 总体部署架构
|
### 总体部署架构
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph
|
||||||
subgraph "外部用户访问"
|
subgraph EXTERNAL["外部用户访问"]
|
||||||
|
direction TB
|
||||||
A[移动端用户]
|
A[移动端用户]
|
||||||
B[PC端用户]
|
B[PC端用户]
|
||||||
C[第三方系统]
|
C[第三方系统]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "负载均衡层"
|
subgraph LOADBALANCER["负载均衡层"]
|
||||||
|
direction TB
|
||||||
D[主负载均衡器]
|
D[主负载均衡器]
|
||||||
E[备负载均衡器]
|
E[备负载均衡器]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "Web服务层"
|
subgraph WEBSERVICE["Web服务层"]
|
||||||
|
direction TB
|
||||||
F[Web服务器1]
|
F[Web服务器1]
|
||||||
G[Web服务器2]
|
G[Web服务器2]
|
||||||
H[Web服务器3]
|
H[Web服务器3]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "应用服务层"
|
subgraph APPSERVICE["应用服务层"]
|
||||||
|
direction TB
|
||||||
I[应用服务器1]
|
I[应用服务器1]
|
||||||
J[应用服务器2]
|
J[应用服务器2]
|
||||||
K[应用服务器3]
|
K[应用服务器3]
|
||||||
L[应用服务器4]
|
L[应用服务器4]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据服务层"
|
subgraph DATASERVICE["数据服务层"]
|
||||||
|
direction TB
|
||||||
M[(主数据库<br/>OpenGauss)]
|
M[(主数据库<br/>OpenGauss)]
|
||||||
N[(备数据库<br/>OpenGauss)]
|
N[(备数据库<br/>OpenGauss)]
|
||||||
O[缓存服务器<br/>Redis]
|
O[缓存服务器<br/>Redis]
|
||||||
P[文件服务器<br/>MinIO]
|
P[文件服务器<br/>MinIO]
|
||||||
|
|
||||||
|
M -.->|数据同步| N
|
||||||
end
|
end
|
||||||
|
|
||||||
A --> D
|
%% 层级间调用关系
|
||||||
B --> D
|
EXTERNAL -.->|用户请求<br/>接口调用| LOADBALANCER
|
||||||
C --> D
|
LOADBALANCER -.->|负载分发<br/>故障切换| WEBSERVICE
|
||||||
D --> F
|
WEBSERVICE -.->|业务请求<br/>服务调用| APPSERVICE
|
||||||
D --> G
|
APPSERVICE -.->|数据访问<br/>缓存读写<br/>文件操作| DATASERVICE
|
||||||
D --> H
|
|
||||||
E --> F
|
|
||||||
E --> G
|
|
||||||
E --> H
|
|
||||||
F --> I
|
|
||||||
F --> J
|
|
||||||
G --> K
|
|
||||||
G --> L
|
|
||||||
H --> I
|
|
||||||
H --> J
|
|
||||||
I --> M
|
|
||||||
J --> M
|
|
||||||
K --> M
|
|
||||||
L --> M
|
|
||||||
I --> O
|
|
||||||
J --> O
|
|
||||||
K --> O
|
|
||||||
L --> O
|
|
||||||
I --> P
|
|
||||||
J --> P
|
|
||||||
K --> P
|
|
||||||
L --> P
|
|
||||||
M --> N
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 环境架构设计
|
### 环境架构设计
|
||||||
@ -175,19 +159,26 @@ graph TB
|
|||||||
#### 核心服务组件
|
#### 核心服务组件
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph LR
|
graph
|
||||||
subgraph "容器化服务"
|
direction TB
|
||||||
|
subgraph FRONTEND["前端服务层"]
|
||||||
A[前端容器<br/>Nginx + Vue3]
|
A[前端容器<br/>Nginx + Vue3]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph BACKEND["后端服务层"]
|
||||||
B[后端容器<br/>Spring Boot]
|
B[后端容器<br/>Spring Boot]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph DATASTORAGE["数据存储层"]
|
||||||
|
direction TB
|
||||||
C[数据库容器<br/>OpenGauss]
|
C[数据库容器<br/>OpenGauss]
|
||||||
D[缓存容器<br/>Redis]
|
D[缓存容器<br/>Redis]
|
||||||
E[文件存储容器<br/>MinIO]
|
E[文件存储容器<br/>MinIO]
|
||||||
end
|
end
|
||||||
|
|
||||||
A --> B
|
%% 容器服务调用关系
|
||||||
B --> C
|
FRONTEND -.->|API请求<br/>静态资源| BACKEND
|
||||||
B --> D
|
BACKEND -.->|数据操作<br/>缓存访问<br/>文件存储| DATASTORAGE
|
||||||
B --> E
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 部署配置说明
|
#### 部署配置说明
|
||||||
|
|||||||
@ -33,87 +33,65 @@
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
subgraph "用户层"
|
subgraph USER["用户层"]
|
||||||
A1[Web管理端<br/>yudao-ui-admin-vue3]
|
A1[Web管理端<br/>yudao-ui-admin-vue3]
|
||||||
A2[移动抄表端<br/>uni-app]
|
A2[移动抄表端<br/>uni-app]
|
||||||
A3[客户微信端<br/>微信小程序]
|
A3[客户微信端<br/>微信小程序]
|
||||||
A4[客户支付宝端<br/>支付宝小程序]
|
A4[客户支付宝端<br/>支付宝小程序]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "网关层"
|
subgraph GATEWAY["网关层"]
|
||||||
B1[Nginx负载均衡]
|
B1[Nginx负载均衡]
|
||||||
B2[API网关<br/>统一认证/权限控制]
|
B2[API网关<br/>统一认证/权限控制]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "应用层"
|
subgraph APP["应用层"]
|
||||||
C1[营收管理<br/>RuoYi-Vue-Pro]
|
C1[营收管理<br/>RuoYi-Vue-Pro]
|
||||||
C2[客户服务<br/>RuoYi-Vue-Pro]
|
C2[客户服务<br/>RuoYi-Vue-Pro]
|
||||||
C3[表务管理<br/>RuoYi-Vue-Pro]
|
C3[表务管理<br/>RuoYi-Vue-Pro]
|
||||||
C4[统计分析<br/>RuoYi-Vue-Pro]
|
C4[统计分析<br/>RuoYi-Vue-Pro]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "服务层"
|
subgraph SERVICE["服务层"]
|
||||||
D1[权限服务<br/>Spring Security]
|
D1[权限服务<br/>Spring Security]
|
||||||
D2[工作流服务<br/>Flowable]
|
D2[工作流服务<br/>Flowable]
|
||||||
D3[消息服务<br/>Redis MQ]
|
D3[消息服务<br/>Redis MQ]
|
||||||
D4[文件服务<br/>MinIO/OSS]
|
D4[文件服务<br/>MinIO/OSS]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据层"
|
subgraph DATA["数据层"]
|
||||||
E1[(OpenGauss 5.0+<br/>主从架构)]
|
E1[(OpenGauss 5.0+<br/>主从架构)]
|
||||||
E2[(Redis 6.0<br/>集群缓存)]
|
E2[(Redis 6.0<br/>集群缓存)]
|
||||||
E3[文件存储<br/>分布式存储]
|
E3[文件存储<br/>分布式存储]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "外部接口"
|
subgraph EXTERNAL["外部接口"]
|
||||||
F1[银行接口<br/>代扣/托收]
|
F1[银行接口<br/>代扣/托收]
|
||||||
F2[支付接口<br/>微信/支付宝]
|
F2[支付接口<br/>微信/支付宝]
|
||||||
F3[短信接口<br/>阿里云/腾讯云]
|
F3[短信接口<br/>阿里云/腾讯云]
|
||||||
F4[物联网接口<br/>智能水表]
|
F4[物联网接口<br/>智能水表]
|
||||||
end
|
end
|
||||||
|
|
||||||
A1 --> B1
|
%% 层级间调用关系
|
||||||
A2 --> B1
|
USER -.->|请求访问| GATEWAY
|
||||||
A3 --> B1
|
GATEWAY -.->|负载均衡<br/>路由转发| APP
|
||||||
A4 --> B1
|
APP -.->|服务调用| SERVICE
|
||||||
|
APP -.->|外部集成| EXTERNAL
|
||||||
B1 --> B2
|
SERVICE -.->|数据访问| DATA
|
||||||
B2 --> C1
|
|
||||||
B2 --> C2
|
|
||||||
B2 --> C3
|
|
||||||
B2 --> C4
|
|
||||||
|
|
||||||
C1 --> D1
|
|
||||||
C1 --> D2
|
|
||||||
C1 --> D3
|
|
||||||
C1 --> D4
|
|
||||||
C2 --> D1
|
|
||||||
C2 --> D3
|
|
||||||
C3 --> D1
|
|
||||||
C3 --> D2
|
|
||||||
C4 --> D1
|
|
||||||
|
|
||||||
D1 --> E1
|
|
||||||
D2 --> E1
|
|
||||||
D3 --> E2
|
|
||||||
D4 --> E3
|
|
||||||
|
|
||||||
C1 --> F1
|
|
||||||
C1 --> F2
|
|
||||||
C2 --> F3
|
|
||||||
C3 --> F4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 物理部署架构图
|
### 物理部署架构图
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
subgraph "DMZ区域"
|
subgraph DMZ["DMZ区域"]
|
||||||
LB1[负载均衡器<br/>Nginx Cluster]
|
subgraph "负载均衡集群"
|
||||||
WAF[Web应用防火墙]
|
LB1[负载均衡器<br/>Nginx Cluster]
|
||||||
|
WAF[Web应用防火墙]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "应用服务区"
|
subgraph APPZONE["应用服务区"]
|
||||||
subgraph "Web服务集群"
|
subgraph "Web服务集群"
|
||||||
WEB1[Web服务器1<br/>8核32G]
|
WEB1[Web服务器1<br/>8核32G]
|
||||||
WEB2[Web服务器2<br/>8核32G]
|
WEB2[Web服务器2<br/>8核32G]
|
||||||
@ -125,7 +103,7 @@ graph TB
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据服务区"
|
subgraph DATAZONE["数据服务区"]
|
||||||
subgraph "数据库集群"
|
subgraph "数据库集群"
|
||||||
DB1[OpenGauss主库<br/>32核128G]
|
DB1[OpenGauss主库<br/>32核128G]
|
||||||
DB2[OpenGauss从库<br/>32核128G]
|
DB2[OpenGauss从库<br/>32核128G]
|
||||||
@ -143,43 +121,18 @@ graph TB
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "管理服务区"
|
subgraph MGMT["管理服务区"]
|
||||||
MONITOR[监控服务器<br/>8核16G]
|
MONITOR[监控服务器<br/>8核16G]
|
||||||
BACKUP[备份服务器<br/>8核32G 20TB]
|
BACKUP[备份服务器<br/>8核32G 20TB]
|
||||||
JUMP[跳板服务器<br/>4核8G]
|
JUMP[跳板服务器<br/>4核8G]
|
||||||
end
|
end
|
||||||
|
|
||||||
Internet --> WAF
|
%% 区域间调用关系
|
||||||
WAF --> LB1
|
Internet -.->|外网访问| DMZ
|
||||||
LB1 --> WEB1
|
DMZ -.->|负载均衡<br/>安全过滤| APPZONE
|
||||||
LB1 --> WEB2
|
APPZONE -.->|数据访问<br/>业务处理| DATAZONE
|
||||||
|
MGMT -.->|监控管理<br/>备份恢复| DATAZONE
|
||||||
WEB1 --> APP1
|
MGMT -.->|系统监控<br/>运维管理| APPZONE
|
||||||
WEB1 --> APP2
|
|
||||||
WEB2 --> APP1
|
|
||||||
WEB2 --> APP2
|
|
||||||
|
|
||||||
APP1 --> DB1
|
|
||||||
APP2 --> DB1
|
|
||||||
DB1 --> DB2
|
|
||||||
|
|
||||||
APP1 --> REDIS1
|
|
||||||
APP2 --> REDIS1
|
|
||||||
REDIS1 --> REDIS2
|
|
||||||
REDIS3 --> REDIS1
|
|
||||||
REDIS3 --> REDIS2
|
|
||||||
|
|
||||||
APP1 --> FILE1
|
|
||||||
APP2 --> FILE2
|
|
||||||
FILE1 --> FILE2
|
|
||||||
|
|
||||||
MONITOR --> APP1
|
|
||||||
MONITOR --> APP2
|
|
||||||
MONITOR --> DB1
|
|
||||||
MONITOR --> REDIS1
|
|
||||||
|
|
||||||
BACKUP --> DB1
|
|
||||||
BACKUP --> FILE1
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 技术架构
|
## 技术架构
|
||||||
@ -189,8 +142,9 @@ graph TB
|
|||||||
### 技术栈总览
|
### 技术栈总览
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph LR
|
graph
|
||||||
subgraph 前端技术栈["🏷 前端技术栈"]
|
subgraph FRONTEND["🏷 前端技术栈"]
|
||||||
|
direction TB
|
||||||
FE1["Vue 3.2+ TypeScript"]
|
FE1["Vue 3.2+ TypeScript"]
|
||||||
FE2["Element Plus UI"]
|
FE2["Element Plus UI"]
|
||||||
FE3["Vite 构建工具"]
|
FE3["Vite 构建工具"]
|
||||||
@ -200,7 +154,8 @@ graph LR
|
|||||||
FE7["ECharts 图表"]
|
FE7["ECharts 图表"]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 后端技术栈["📦 后端技术栈"]
|
subgraph BACKEND["📦 后端技术栈"]
|
||||||
|
direction TB
|
||||||
BE1["Spring Boot 3.x"]:::spring
|
BE1["Spring Boot 3.x"]:::spring
|
||||||
BE2["Spring Security"]:::security
|
BE2["Spring Security"]:::security
|
||||||
BE3["MyBatis Plus"]:::orm
|
BE3["MyBatis Plus"]:::orm
|
||||||
@ -211,7 +166,8 @@ graph LR
|
|||||||
BE8["Maven 管理"]
|
BE8["Maven 管理"]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 中间件服务["⚙️ 中间件服务"]
|
subgraph MIDDLEWARE["⚙️ 中间件服务"]
|
||||||
|
direction TB
|
||||||
MW1["Nginx LB"]
|
MW1["Nginx LB"]
|
||||||
MW2["Redis集群"]
|
MW2["Redis集群"]
|
||||||
MW3["Flowable工作流"]
|
MW3["Flowable工作流"]
|
||||||
@ -222,7 +178,8 @@ graph LR
|
|||||||
MW8["Sentinel限流"]
|
MW8["Sentinel限流"]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph 移动应用["📱 移动应用"]
|
subgraph MOBILE["📱 移动应用"]
|
||||||
|
direction TB
|
||||||
MB1["uni-app"]
|
MB1["uni-app"]
|
||||||
MB2["uView UI"]
|
MB2["uView UI"]
|
||||||
MB3["微信小程序"]
|
MB3["微信小程序"]
|
||||||
@ -232,16 +189,10 @@ graph LR
|
|||||||
MB7["NFC设备接口"]
|
MB7["NFC设备接口"]
|
||||||
end
|
end
|
||||||
|
|
||||||
FE6 -- HTTP请求 --> BE1
|
%% 技术栈间调用关系
|
||||||
MB1 -- API调用 --> BE1
|
FRONTEND -.->|HTTP请求<br/>API调用| BACKEND
|
||||||
BE1 --> BE2
|
MOBILE -.->|跨平台调用<br/>API集成| BACKEND
|
||||||
BE1 --> BE3
|
BACKEND -.->|服务集成<br/>中间件调用| MIDDLEWARE
|
||||||
BE3 --> BE5
|
|
||||||
BE1 --> BE4
|
|
||||||
BE1 --> MW6
|
|
||||||
BE1 --> MW5
|
|
||||||
BE1 --> MW7
|
|
||||||
BE1 --> MW3
|
|
||||||
|
|
||||||
classDef spring fill:#6db33f,color:white
|
classDef spring fill:#6db33f,color:white
|
||||||
classDef security fill:#b5e6c0
|
classDef security fill:#b5e6c0
|
||||||
@ -253,7 +204,7 @@ graph LR
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
flowchart TD
|
flowchart TD
|
||||||
subgraph "数据采集层"
|
subgraph COLLECT["数据采集层"]
|
||||||
A1[移动抄表APP<br/>数据采集]
|
A1[移动抄表APP<br/>数据采集]
|
||||||
A2[智能水表<br/>远程数据]
|
A2[智能水表<br/>远程数据]
|
||||||
A3[Web管理端<br/>业务录入]
|
A3[Web管理端<br/>业务录入]
|
||||||
@ -261,14 +212,14 @@ flowchart TD
|
|||||||
A5[外部系统<br/>接口数据]
|
A5[外部系统<br/>接口数据]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据接入层"
|
subgraph ACCESS["数据接入层"]
|
||||||
B1[API网关<br/>数据验证]
|
B1[API网关<br/>数据验证]
|
||||||
B2[数据清洗<br/>格式转换]
|
B2[数据清洗<br/>格式转换]
|
||||||
B3[消息队列<br/>异步处理]
|
B3[消息队列<br/>异步处理]
|
||||||
B4[数据缓存<br/>临时存储]
|
B4[数据缓存<br/>临时存储]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "业务处理层"
|
subgraph PROCESS["业务处理层"]
|
||||||
C1[抄表服务<br/>水量计算]
|
C1[抄表服务<br/>水量计算]
|
||||||
C2[收费服务<br/>账单生成]
|
C2[收费服务<br/>账单生成]
|
||||||
C3[账务服务<br/>财务处理]
|
C3[账务服务<br/>财务处理]
|
||||||
@ -276,7 +227,7 @@ flowchart TD
|
|||||||
C5[统计服务<br/>数据分析]
|
C5[统计服务<br/>数据分析]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据存储层"
|
subgraph STORAGE["数据存储层"]
|
||||||
D1[(OpenGauss主库<br/>核心业务数据)]
|
D1[(OpenGauss主库<br/>核心业务数据)]
|
||||||
D2[(OpenGauss从库<br/>查询数据)]
|
D2[(OpenGauss从库<br/>查询数据)]
|
||||||
D3[(Redis缓存<br/>热点数据)]
|
D3[(Redis缓存<br/>热点数据)]
|
||||||
@ -284,14 +235,14 @@ flowchart TD
|
|||||||
D5[(备份库<br/>历史数据)]
|
D5[(备份库<br/>历史数据)]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据服务层"
|
subgraph SERVICE["数据服务层"]
|
||||||
E1[查询服务<br/>数据检索]
|
E1[查询服务<br/>数据检索]
|
||||||
E2[报表服务<br/>统计分析]
|
E2[报表服务<br/>统计分析]
|
||||||
E3[接口服务<br/>对外开放]
|
E3[接口服务<br/>对外开放]
|
||||||
E4[推送服务<br/>消息通知]
|
E4[推送服务<br/>消息通知]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据展现层"
|
subgraph PRESENT["数据展现层"]
|
||||||
F1[管理后台<br/>业务操作]
|
F1[管理后台<br/>业务操作]
|
||||||
F2[统计大屏<br/>可视化展示]
|
F2[统计大屏<br/>可视化展示]
|
||||||
F3[移动端<br/>现场作业]
|
F3[移动端<br/>现场作业]
|
||||||
@ -299,42 +250,13 @@ flowchart TD
|
|||||||
F5[第三方系统<br/>数据集成]
|
F5[第三方系统<br/>数据集成]
|
||||||
end
|
end
|
||||||
|
|
||||||
A1 --> B1
|
%% 数据流向关系
|
||||||
A2 --> B2
|
COLLECT -.->|数据采集<br/>格式验证| ACCESS
|
||||||
A3 --> B1
|
ACCESS -.->|数据接入<br/>清洗转换| PROCESS
|
||||||
A4 --> B1
|
PROCESS -.->|业务处理<br/>数据持久化| STORAGE
|
||||||
A5 --> B3
|
STORAGE -.->|数据查询<br/>统计分析| SERVICE
|
||||||
|
SERVICE -.->|数据服务<br/>接口调用| PRESENT
|
||||||
B1 --> B4
|
PRESENT -.->|用户反馈<br/>业务交互| PROCESS
|
||||||
B2 --> B3
|
|
||||||
B3 --> C1
|
|
||||||
B4 --> C2
|
|
||||||
|
|
||||||
C1 --> D1
|
|
||||||
C2 --> D1
|
|
||||||
C3 --> D1
|
|
||||||
C4 --> D1
|
|
||||||
C5 --> D2
|
|
||||||
|
|
||||||
D1 --> D2
|
|
||||||
D1 --> D3
|
|
||||||
D1 --> D5
|
|
||||||
|
|
||||||
D2 --> E1
|
|
||||||
D3 --> E1
|
|
||||||
D1 --> E2
|
|
||||||
D2 --> E3
|
|
||||||
|
|
||||||
E1 --> F1
|
|
||||||
E2 --> F2
|
|
||||||
E3 --> F3
|
|
||||||
E4 --> F4
|
|
||||||
E3 --> F5
|
|
||||||
|
|
||||||
F1 -.-> C2
|
|
||||||
F3 -.-> C1
|
|
||||||
F4 -.-> C3
|
|
||||||
F5 -.-> C4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 服务端技术架构
|
### 服务端技术架构
|
||||||
@ -382,37 +304,35 @@ flowchart TD
|
|||||||
**技术栈组成:**
|
**技术栈组成:**
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
subgraph "跨平台框架"
|
subgraph FRAMEWORK["跨平台框架"]
|
||||||
M1[uni-app 3.x]
|
M1[uni-app 3.x]
|
||||||
M2[Vue 3 Composition API]
|
M2[Vue 3 Composition API]
|
||||||
M3[TypeScript支持]
|
M3[TypeScript支持]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "UI组件库"
|
subgraph UIKIT["UI组件库"]
|
||||||
N1[uView UI 2.0]
|
N1[uView UI 2.0]
|
||||||
N2[uni-ui组件]
|
N2[uni-ui组件]
|
||||||
N3[自定义水务组件]
|
N3[自定义水务组件]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "设备能力"
|
subgraph DEVICE["设备能力"]
|
||||||
P1[相机API<br/>水表拍照]
|
P1[相机API<br/>水表拍照]
|
||||||
P2[NFC读取<br/>水表标签]
|
P2[NFC读取<br/>水表标签]
|
||||||
P3[GPS定位<br/>抄表轨迹]
|
P3[GPS定位<br/>抄表轨迹]
|
||||||
P4[扫码API<br/>二维码扫描]
|
P4[扫码API<br/>二维码扫描]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "网络通信"
|
subgraph NETWORK["网络通信"]
|
||||||
Q1[uni.request<br/>HTTP请求]
|
Q1[uni.request<br/>HTTP请求]
|
||||||
Q2[WebSocket<br/>实时通信]
|
Q2[WebSocket<br/>实时通信]
|
||||||
Q3[文件上传<br/>图片处理]
|
Q3[文件上传<br/>图片处理]
|
||||||
end
|
end
|
||||||
|
|
||||||
M1 --> N1
|
%% 移动架构调用关系
|
||||||
M1 --> P1
|
FRAMEWORK -.->|UI渲染<br/>组件调用| UIKIT
|
||||||
M1 --> Q1
|
FRAMEWORK -.->|设备调用<br/>原生能力| DEVICE
|
||||||
N1 --> N3
|
FRAMEWORK -.->|网络通信<br/>数据交互| NETWORK
|
||||||
P1 --> P2
|
|
||||||
Q1 --> Q2
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 技术特性
|
### 技术特性
|
||||||
@ -435,12 +355,12 @@ graph TB
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
subgraph "接入层"
|
subgraph ACCESS["接入层"]
|
||||||
GW[API网关]
|
GW[API网关]
|
||||||
AUTH[认证服务]
|
AUTH[认证服务]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "业务服务层"
|
subgraph BUSINESS["业务服务层"]
|
||||||
SYS[系统服务]
|
SYS[系统服务]
|
||||||
CUST[客户服务]
|
CUST[客户服务]
|
||||||
READ[抄表服务]
|
READ[抄表服务]
|
||||||
@ -450,89 +370,66 @@ graph TD
|
|||||||
RPT[报表服务]
|
RPT[报表服务]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "支撑服务层"
|
subgraph SUPPORT["支撑服务层"]
|
||||||
METER[水表管理]
|
METER[水表管理]
|
||||||
WF[工作流引擎]
|
WF[工作流引擎]
|
||||||
PAY_GW[支付网关]
|
PAY_GW[支付网关]
|
||||||
IOT[物联网]
|
IOT[物联网]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据存储层"
|
subgraph DATA["数据存储层"]
|
||||||
DB[(OpenGauss数据库)]
|
DB[(OpenGauss数据库)]
|
||||||
REDIS[(Redis缓存)]
|
REDIS[(Redis缓存)]
|
||||||
FILE_STORE[文件存储]
|
FILE_STORE[文件存储]
|
||||||
end
|
end
|
||||||
|
|
||||||
%% 接入层连接
|
%% 层级间的调用关系
|
||||||
GW --> AUTH
|
ACCESS -.->|请求路由<br/>认证授权| BUSINESS
|
||||||
GW --> SYS
|
BUSINESS -.->|服务调用| SUPPORT
|
||||||
GW --> CUST
|
BUSINESS -.->|数据访问| DATA
|
||||||
GW --> READ
|
SUPPORT -.->|数据访问| DATA
|
||||||
GW --> ORDER
|
|
||||||
|
|
||||||
%% 业务流程连接
|
|
||||||
READ --> METER
|
|
||||||
READ --> BILL
|
|
||||||
BILL --> PAY
|
|
||||||
ORDER --> WF
|
|
||||||
|
|
||||||
%% 外部集成连接
|
|
||||||
PAY --> PAY_GW
|
|
||||||
READ --> IOT
|
|
||||||
|
|
||||||
%% 数据连接
|
|
||||||
CUST -.-> DB
|
|
||||||
BILL -.-> DB
|
|
||||||
PAY -.-> DB
|
|
||||||
AUTH -.-> REDIS
|
|
||||||
SYS -.-> FILE_STORE
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 服务治理架构
|
### 服务治理架构
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
subgraph "服务发现与注册"
|
subgraph REGISTRY["服务发现与注册"]
|
||||||
NACOS[Nacos注册中心<br/>服务注册/发现/配置]
|
NACOS[Nacos注册中心<br/>服务注册/发现/配置]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "服务网格层"
|
subgraph MESH["服务网格层"]
|
||||||
subgraph "负载均衡"
|
subgraph BALANCE["负载均衡"]
|
||||||
LB[Ribbon负载均衡<br/>客户端负载均衡]
|
LB[Ribbon负载均衡<br/>客户端负载均衡]
|
||||||
FEIGN[OpenFeign<br/>服务间调用]
|
FEIGN[OpenFeign<br/>服务间调用]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "容错保护"
|
subgraph PROTECTION["容错保护"]
|
||||||
CB[Sentinel熔断器<br/>流量控制/熔断降级]
|
CB[Sentinel熔断器<br/>流量控制/熔断降级]
|
||||||
RETRY[重试机制<br/>失败重试]
|
RETRY[重试机制<br/>失败重试]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "链路追踪"
|
subgraph TRACING["链路追踪"]
|
||||||
TRACE[SkyWalking<br/>分布式链路追踪]
|
TRACE[SkyWalking<br/>分布式链路追踪]
|
||||||
METRIC[Micrometer<br/>指标收集]
|
METRIC[Micrometer<br/>指标收集]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "配置管理"
|
subgraph CONFIG_MGMT["配置管理"]
|
||||||
CONFIG[Nacos Config<br/>配置中心]
|
CONFIG[Nacos Config<br/>配置中心]
|
||||||
SECRET[配置加密<br/>敏感信息保护]
|
SECRET[配置加密<br/>敏感信息保护]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "监控告警"
|
subgraph MONITORING["监控告警"]
|
||||||
MONITOR[Spring Boot Admin<br/>应用监控]
|
MONITOR[Spring Boot Admin<br/>应用监控]
|
||||||
ALERT[告警系统<br/>异常通知]
|
ALERT[告警系统<br/>异常通知]
|
||||||
LOG[ELK日志系统<br/>日志聚合分析]
|
LOG[ELK日志系统<br/>日志聚合分析]
|
||||||
end
|
end
|
||||||
|
|
||||||
NACOS --> LB
|
%% 服务治理调用关系
|
||||||
NACOS --> FEIGN
|
REGISTRY -.->|服务发现<br/>配置下发| MESH
|
||||||
LB --> CB
|
MESH -.->|配置获取<br/>服务注册| CONFIG_MGMT
|
||||||
FEIGN --> TRACE
|
MESH -.->|监控数据<br/>链路追踪| MONITORING
|
||||||
CB --> RETRY
|
|
||||||
|
|
||||||
CONFIG --> SECRET
|
|
||||||
MONITOR --> ALERT
|
|
||||||
TRACE --> LOG
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 应用模块设计
|
### 应用模块设计
|
||||||
@ -583,80 +480,70 @@ graph TB
|
|||||||
#### 主从高可用架构
|
#### 主从高可用架构
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph
|
||||||
subgraph "OpenGauss高可用集群"
|
subgraph DBCLUSTER["OpenGauss高可用集群"]
|
||||||
MASTER[("OpenGauss主库<br/>Primary Node<br/>读写操作")]
|
MASTER[("OpenGauss主库<br/>Primary Node<br/>读写操作")]
|
||||||
STANDBY[("OpenGauss备库<br/>Standby Node<br/>只读操作")]
|
STANDBY[("OpenGauss备库<br/>Standby Node<br/>只读操作")]
|
||||||
CASCADE[("OpenGauss级联备库<br/>Cascade Standby<br/>负载分担")]
|
CASCADE[("OpenGauss级联备库<br/>Cascade Standby<br/>负载分担")]
|
||||||
|
|
||||||
|
MASTER -.->|流复制| STANDBY
|
||||||
|
STANDBY -.->|级联复制| CASCADE
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "应用层"
|
subgraph APPLAYER["应用层"]
|
||||||
APP1[应用服务器1]
|
APP1[应用服务器1]
|
||||||
APP2[应用服务器2]
|
APP2[应用服务器2]
|
||||||
APP3[应用服务器3]
|
APP3[应用服务器3]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "连接池"
|
subgraph POOLING["连接池"]
|
||||||
POOL[连接池<br/>HikariCP<br/>Druid]
|
POOL[连接池<br/>HikariCP<br/>Druid]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "监控管理"
|
subgraph MANAGEMENT["监控管理"]
|
||||||
MON[OpenGauss Monitor<br/>性能监控]
|
MON[OpenGauss Monitor<br/>性能监控]
|
||||||
BACKUP[定时备份<br/>gs_backup]
|
BACKUP[定时备份<br/>gs_backup]
|
||||||
end
|
end
|
||||||
|
|
||||||
APP1 --> POOL
|
%% 高可用架构调用关系
|
||||||
APP2 --> POOL
|
APPLAYER -.->|连接请求<br/>负载均衡| POOLING
|
||||||
APP3 --> POOL
|
POOLING -.->|数据访问<br/>读写分离| DBCLUSTER
|
||||||
POOL --> MASTER
|
MANAGEMENT -.->|监控管理<br/>备份恢复| DBCLUSTER
|
||||||
POOL --> STANDBY
|
|
||||||
POOL --> CASCADE
|
|
||||||
|
|
||||||
MASTER -.->|流复制| STANDBY
|
|
||||||
STANDBY -.->|级联复制| CASCADE
|
|
||||||
|
|
||||||
MON --> MASTER
|
|
||||||
MON --> STANDBY
|
|
||||||
BACKUP --> MASTER
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 分片存储架构
|
#### 分片存储架构
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
subgraph "OpenGauss分布式架构"
|
subgraph DISTRIBUTED["OpenGauss分布式架构"]
|
||||||
subgraph "协调节点"
|
subgraph COORDINATOR["协调节点"]
|
||||||
CN1[协调节点1<br/>Coordinator Node]
|
CN1[协调节点1<br/>Coordinator Node]
|
||||||
CN2[协调节点2<br/>Coordinator Node]
|
CN2[协调节点2<br/>Coordinator Node]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据节点组1"
|
subgraph DATANODE1["数据节点组1"]
|
||||||
DN1_1[数据节点1-主<br/>Datanode Primary]
|
DN1_1[数据节点1-主<br/>Datanode Primary]
|
||||||
DN1_2[数据节点1-备<br/>Datanode Standby]
|
DN1_2[数据节点1-备<br/>Datanode Standby]
|
||||||
|
DN1_1 -.->|主备同步| DN1_2
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据节点组2"
|
subgraph DATANODE2["数据节点组2"]
|
||||||
DN2_1[数据节点2-主<br/>Datanode Primary]
|
DN2_1[数据节点2-主<br/>Datanode Primary]
|
||||||
DN2_2[数据节点2-备<br/>Datanode Standby]
|
DN2_2[数据节点2-备<br/>Datanode Standby]
|
||||||
|
DN2_1 -.->|主备同步| DN2_2
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "GTM节点"
|
subgraph GTM_CLUSTER["GTM节点"]
|
||||||
GTM[全局事务管理器<br/>GTM Master]
|
GTM[全局事务管理器<br/>GTM Master]
|
||||||
GTM_S[GTM备节点<br/>GTM Standby]
|
GTM_S[GTM备节点<br/>GTM Standby]
|
||||||
|
GTM -.->|备份| GTM_S
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
CN1 --> DN1_1
|
%% 分布式架构调用关系
|
||||||
CN1 --> DN2_1
|
COORDINATOR -.->|分片路由<br/>查询协调| DATANODE1
|
||||||
CN2 --> DN1_1
|
COORDINATOR -.->|分片路由<br/>查询协调| DATANODE2
|
||||||
CN2 --> DN2_1
|
COORDINATOR -.->|事务管理<br/>全局一致性| GTM_CLUSTER
|
||||||
|
|
||||||
DN1_1 -.->|主备同步| DN1_2
|
|
||||||
DN2_1 -.->|主备同步| DN2_2
|
|
||||||
|
|
||||||
GTM -.->|备份| GTM_S
|
|
||||||
CN1 --> GTM
|
|
||||||
CN2 --> GTM
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 数据模型设计
|
### 数据模型设计
|
||||||
@ -700,70 +587,65 @@ graph TB
|
|||||||
#### 数据加密安全
|
#### 数据加密安全
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph
|
||||||
subgraph "加密层级"
|
subgraph ENCRYPT["加密层级"]
|
||||||
|
direction TB
|
||||||
L1[传输层加密<br/>SSL/TLS/国密SM]
|
L1[传输层加密<br/>SSL/TLS/国密SM]
|
||||||
L2[存储层加密<br/>TDE透明数据加密]
|
L2[存储层加密<br/>TDE透明数据加密]
|
||||||
L3[字段级加密<br/>敏感字段加密]
|
L3[字段级加密<br/>敏感字段加密]
|
||||||
L4[备份加密<br/>备份文件加密]
|
L4[备份加密<br/>备份文件加密]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "密钥管理"
|
subgraph KEYMANAGE["密钥管理"]
|
||||||
|
direction TB
|
||||||
KMS[密钥管理系统<br/>Key Management]
|
KMS[密钥管理系统<br/>Key Management]
|
||||||
HSM[硬件安全模块<br/>Hardware Security]
|
HSM[硬件安全模块<br/>Hardware Security]
|
||||||
ROT[密钥轮换<br/>Key Rotation]
|
ROT[密钥轮换<br/>Key Rotation]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "国密算法"
|
subgraph GUOMI["国密算法"]
|
||||||
|
direction TB
|
||||||
SM2[SM2椭圆曲线<br/>非对称加密]
|
SM2[SM2椭圆曲线<br/>非对称加密]
|
||||||
SM3[SM3哈希算法<br/>消息摘要]
|
SM3[SM3哈希算法<br/>消息摘要]
|
||||||
SM4[SM4分组密码<br/>对称加密]
|
SM4[SM4分组密码<br/>对称加密]
|
||||||
end
|
end
|
||||||
|
|
||||||
L1 --> KMS
|
%% 安全层级调用关系
|
||||||
L2 --> HSM
|
ENCRYPT -.->|密钥依赖<br/>加密管理| KEYMANAGE
|
||||||
L3 --> ROT
|
KEYMANAGE -.->|算法调用<br/>国密支持| GUOMI
|
||||||
L4 --> KMS
|
|
||||||
|
|
||||||
KMS --> SM2
|
|
||||||
HSM --> SM3
|
|
||||||
ROT --> SM4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 访问控制安全
|
#### 访问控制安全
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph
|
||||||
subgraph "身份认证"
|
subgraph AUTHENTICATION["身份认证"]
|
||||||
|
direction TB
|
||||||
AUTH1[用户名密码认证]
|
AUTH1[用户名密码认证]
|
||||||
AUTH2[LDAP集成认证]
|
AUTH2[LDAP集成认证]
|
||||||
AUTH3[Kerberos认证]
|
AUTH3[Kerberos认证]
|
||||||
AUTH4[证书认证]
|
AUTH4[证书认证]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "权限控制"
|
subgraph AUTHORIZATION["权限控制"]
|
||||||
|
direction TB
|
||||||
RBAC[基于角色的权限控制<br/>Role-Based Access Control]
|
RBAC[基于角色的权限控制<br/>Role-Based Access Control]
|
||||||
RLS[行级安全策略<br/>Row Level Security]
|
RLS[行级安全策略<br/>Row Level Security]
|
||||||
CLS[列级安全控制<br/>Column Level Security]
|
CLS[列级安全控制<br/>Column Level Security]
|
||||||
TENANT[多租户数据隔离<br/>Multi-Tenant Isolation]
|
TENANT[多租户数据隔离<br/>Multi-Tenant Isolation]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "审计监控"
|
subgraph AUDITING["审计监控"]
|
||||||
|
direction TB
|
||||||
AUDIT[操作审计日志<br/>Audit Logging]
|
AUDIT[操作审计日志<br/>Audit Logging]
|
||||||
MONITOR[实时安全监控<br/>Security Monitoring]
|
MONITOR[实时安全监控<br/>Security Monitoring]
|
||||||
ALERT[安全告警<br/>Security Alert]
|
ALERT[安全告警<br/>Security Alert]
|
||||||
REPORT[合规报告<br/>Compliance Report]
|
REPORT[合规报告<br/>Compliance Report]
|
||||||
end
|
end
|
||||||
|
|
||||||
AUTH1 --> RBAC
|
%% 安全控制流程
|
||||||
AUTH2 --> RLS
|
AUTHENTICATION -.->|身份验证<br/>授权检查| AUTHORIZATION
|
||||||
AUTH3 --> CLS
|
AUTHORIZATION -.->|权限监控<br/>操作审计| AUDITING
|
||||||
AUTH4 --> TENANT
|
|
||||||
|
|
||||||
RBAC --> AUDIT
|
|
||||||
RLS --> MONITOR
|
|
||||||
CLS --> ALERT
|
|
||||||
TENANT --> REPORT
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 网络安全
|
### 网络安全
|
||||||
|
|||||||