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

This commit is contained in:
tangweijie 2025-06-11 16:45:22 +08:00
parent df489f880a
commit 9f2a99ab43
88 changed files with 1915 additions and 320 deletions

View File

@ -62,7 +62,7 @@ CJKmainfont: "PingFang SC"
**图表 1**
![图表 1](temp_mermaid_water_biz_database_design_20078/diagram_1.png)
![图表 1](temp_mermaid_water_biz_database_design_35098/diagram_1.png)
### 多租户架构设计
@ -70,7 +70,7 @@ CJKmainfont: "PingFang SC"
**图表 2**
![图表 2](temp_mermaid_water_biz_database_design_20078/diagram_2.png)
![图表 2](temp_mermaid_water_biz_database_design_35098/diagram_2.png)
### 通用字段设计
@ -94,7 +94,7 @@ CJKmainfont: "PingFang SC"
**图表 3**
![图表 3](temp_mermaid_water_biz_database_design_20078/diagram_3.png)
![图表 3](temp_mermaid_water_biz_database_design_35098/diagram_3.png)
### 营收管理模块ER图
@ -102,7 +102,7 @@ CJKmainfont: "PingFang SC"
**图表 4**
![图表 4](temp_mermaid_water_biz_database_design_20078/diagram_4.png)
![图表 4](temp_mermaid_water_biz_database_design_35098/diagram_4.png)
### 表务管理模块ER图
@ -110,7 +110,7 @@ CJKmainfont: "PingFang SC"
**图表 5**
![图表 5](temp_mermaid_water_biz_database_design_20078/diagram_5.png)
![图表 5](temp_mermaid_water_biz_database_design_35098/diagram_5.png)
### 系统管理模块ER图
@ -118,7 +118,7 @@ CJKmainfont: "PingFang SC"
**图表 6**
![图表 6](temp_mermaid_water_biz_database_design_20078/diagram_6.png)
![图表 6](temp_mermaid_water_biz_database_design_35098/diagram_6.png)
## 核心数据表设计
@ -128,7 +128,7 @@ CJKmainfont: "PingFang SC"
**图表 7**
![图表 7](temp_mermaid_water_biz_database_design_20078/diagram_7.png)
![图表 7](temp_mermaid_water_biz_database_design_35098/diagram_7.png)
### 系统管理模块ER图
@ -136,7 +136,7 @@ CJKmainfont: "PingFang SC"
**图表 8**
![图表 8](temp_mermaid_water_biz_database_design_20078/diagram_8.png)
![图表 8](temp_mermaid_water_biz_database_design_35098/diagram_8.png)
## 数据表结构设计

View File

@ -54,7 +54,7 @@ CJKmainfont: "PingFang SC"
**图表 1**
![图表 1](temp_mermaid_water_biz_deployment_design_20078/diagram_1.png)
![图表 1](temp_mermaid_water_biz_deployment_design_35098/diagram_1.png)
### 环境架构设计
@ -131,7 +131,7 @@ CJKmainfont: "PingFang SC"
**图表 2**
![图表 2](temp_mermaid_water_biz_deployment_design_20078/diagram_2.png)
![图表 2](temp_mermaid_water_biz_deployment_design_35098/diagram_2.png)
#### 部署配置说明

View File

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

Binary file not shown.

View File

@ -114,7 +114,7 @@ CJKmainfont: "PingFang SC"
**图表 1**
![图表 1](temp_mermaid_water_biz_module_design_20078/diagram_1.png)
![图表 1](temp_mermaid_water_biz_module_design_35098/diagram_1.png)
### 技术架构图
@ -122,7 +122,7 @@ CJKmainfont: "PingFang SC"
**图表 2**
![图表 2](temp_mermaid_water_biz_module_design_20078/diagram_2.png)
![图表 2](temp_mermaid_water_biz_module_design_35098/diagram_2.png)
### 业务架构图
@ -130,7 +130,7 @@ CJKmainfont: "PingFang SC"
**图表 3**
![图表 3](temp_mermaid_water_biz_module_design_20078/diagram_3.png)
![图表 3](temp_mermaid_water_biz_module_design_35098/diagram_3.png)
## 统一平台
@ -228,7 +228,7 @@ CJKmainfont: "PingFang SC"
**图表 4**
![图表 4](temp_mermaid_water_biz_module_design_20078/diagram_4.png)
![图表 4](temp_mermaid_water_biz_module_design_35098/diagram_4.png)
#### 主要功能
@ -296,7 +296,7 @@ CJKmainfont: "PingFang SC"
**图表 5**
![图表 5](temp_mermaid_water_biz_module_design_20078/diagram_5.png)
![图表 5](temp_mermaid_water_biz_module_design_35098/diagram_5.png)
#### 主要功能
@ -358,7 +358,7 @@ CJKmainfont: "PingFang SC"
**图表 6**
![图表 6](temp_mermaid_water_biz_module_design_20078/diagram_6.png)
![图表 6](temp_mermaid_water_biz_module_design_35098/diagram_6.png)
#### 主要功能
@ -398,7 +398,7 @@ CJKmainfont: "PingFang SC"
**图表 7**
![图表 7](temp_mermaid_water_biz_module_design_20078/diagram_7.png)
![图表 7](temp_mermaid_water_biz_module_design_35098/diagram_7.png)
#### 核心接口定义
@ -812,7 +812,7 @@ CJKmainfont: "PingFang SC"
**图表 8**
![图表 8](temp_mermaid_water_biz_module_design_20078/diagram_8.png)
![图表 8](temp_mermaid_water_biz_module_design_35098/diagram_8.png)
### 技术栈整合方案

View File

@ -53,7 +53,7 @@ CJKmainfont: "PingFang SC"
**图表 1**
![图表 1](temp_mermaid_water_biz_security_design_20078/diagram_1.png)
![图表 1](temp_mermaid_water_biz_security_design_35098/diagram_1.png)
## OpenGauss数据库安全
@ -63,7 +63,7 @@ CJKmainfont: "PingFang SC"
**图表 2**
![图表 2](temp_mermaid_water_biz_security_design_20078/diagram_2.png)
![图表 2](temp_mermaid_water_biz_security_design_35098/diagram_2.png)
### 国产密码算法应用
@ -144,7 +144,7 @@ CJKmainfont: "PingFang SC"
**图表 3**
![图表 3](temp_mermaid_water_biz_security_design_20078/diagram_3.png)
![图表 3](temp_mermaid_water_biz_security_design_35098/diagram_3.png)
### 防火墙策略配置
@ -180,7 +180,7 @@ CJKmainfont: "PingFang SC"
**图表 4**
![图表 4](temp_mermaid_water_biz_security_design_20078/diagram_4.png)
![图表 4](temp_mermaid_water_biz_security_design_35098/diagram_4.png)
#### 数据保护策略
@ -219,7 +219,7 @@ CJKmainfont: "PingFang SC"
**图表 5**
![图表 5](temp_mermaid_water_biz_security_design_20078/diagram_5.png)
![图表 5](temp_mermaid_water_biz_security_design_35098/diagram_5.png)
#### 安全事件检测规则
@ -240,7 +240,7 @@ CJKmainfont: "PingFang SC"
**图表 6**
![图表 6](temp_mermaid_water_biz_security_design_20078/diagram_6.png)
![图表 6](temp_mermaid_water_biz_security_design_35098/diagram_6.png)
### 应急响应预案
@ -257,7 +257,7 @@ CJKmainfont: "PingFang SC"
**图表 7**
![图表 7](temp_mermaid_water_biz_security_design_20078/diagram_7.png)
![图表 7](temp_mermaid_water_biz_security_design_35098/diagram_7.png)
## 安全管理制度
@ -268,7 +268,7 @@ CJKmainfont: "PingFang SC"
**图表 8**
![图表 8](temp_mermaid_water_biz_security_design_20078/diagram_8.png)
![图表 8](temp_mermaid_water_biz_security_design_35098/diagram_8.png)
### 安全管理制度

View File

@ -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
![图表 1](temp_mermaid_water_biz_system_architecture_20078/diagram_1.png)
```
### 物理部署架构图
@ -53,7 +99,7 @@ CJKmainfont: "PingFang SC"
**图表 2**
![图表 2](temp_mermaid_water_biz_system_architecture_20078/diagram_2.png)
![图表 2](temp_mermaid_water_biz_system_architecture_35098/diagram_2.png)
## 技术架构
@ -65,7 +111,7 @@ CJKmainfont: "PingFang SC"
**图表 3**
![图表 3](temp_mermaid_water_biz_system_architecture_20078/diagram_3.png)
![图表 3](temp_mermaid_water_biz_system_architecture_35098/diagram_3.png)
### 系统数据流向图
@ -73,7 +119,7 @@ CJKmainfont: "PingFang SC"
**图表 4**
![图表 4](temp_mermaid_water_biz_system_architecture_20078/diagram_4.png)
![图表 4](temp_mermaid_water_biz_system_architecture_35098/diagram_4.png)
### 服务端技术架构
@ -122,7 +168,7 @@ CJKmainfont: "PingFang SC"
**图表 5**
![图表 5](temp_mermaid_water_biz_system_architecture_20078/diagram_5.png)
![图表 5](temp_mermaid_water_biz_system_architecture_35098/diagram_5.png)
### 技术特性
@ -146,7 +192,7 @@ CJKmainfont: "PingFang SC"
**图表 6**
![图表 6](temp_mermaid_water_biz_system_architecture_20078/diagram_6.png)
![图表 6](temp_mermaid_water_biz_system_architecture_35098/diagram_6.png)
### 服务治理架构
@ -154,7 +200,7 @@ CJKmainfont: "PingFang SC"
**图表 7**
![图表 7](temp_mermaid_water_biz_system_architecture_20078/diagram_7.png)
![图表 7](temp_mermaid_water_biz_system_architecture_35098/diagram_7.png)
### 应用模块设计
@ -207,7 +253,7 @@ CJKmainfont: "PingFang SC"
**图表 8**
![图表 8](temp_mermaid_water_biz_system_architecture_20078/diagram_8.png)
![图表 8](temp_mermaid_water_biz_system_architecture_35098/diagram_8.png)
#### 分片存储架构
@ -215,7 +261,7 @@ CJKmainfont: "PingFang SC"
**图表 9**
![图表 9](temp_mermaid_water_biz_system_architecture_20078/diagram_9.png)
![图表 9](temp_mermaid_water_biz_system_architecture_35098/diagram_9.png)
### 数据模型设计
@ -261,7 +307,7 @@ CJKmainfont: "PingFang SC"
**图表 10**
![图表 10](temp_mermaid_water_biz_system_architecture_20078/diagram_10.png)
![图表 10](temp_mermaid_water_biz_system_architecture_35098/diagram_10.png)
#### 访问控制安全
@ -269,7 +315,7 @@ CJKmainfont: "PingFang SC"
**图表 11**
![图表 11](temp_mermaid_water_biz_system_architecture_20078/diagram_11.png)
![图表 11](temp_mermaid_water_biz_system_architecture_35098/diagram_11.png)
### 网络安全

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View 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 : "对应"

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

View 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 : "对应"

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

View 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 : "产生"

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

View 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 : "包含"

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

View 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 : "关联"

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

View 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 : "包含"

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View 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([完成开账])

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -41,66 +41,50 @@
### 总体部署架构
```mermaid
graph TB
subgraph "外部用户访问"
graph
subgraph EXTERNAL["外部用户访问"]
direction TB
A[移动端用户]
B[PC端用户]
C[第三方系统]
end
subgraph "负载均衡层"
subgraph LOADBALANCER["负载均衡层"]
direction TB
D[主负载均衡器]
E[备负载均衡器]
end
subgraph "Web服务层"
subgraph WEBSERVICE["Web服务层"]
direction TB
F[Web服务器1]
G[Web服务器2]
H[Web服务器3]
end
subgraph "应用服务层"
subgraph APPSERVICE["应用服务层"]
direction TB
I[应用服务器1]
J[应用服务器2]
K[应用服务器3]
L[应用服务器4]
end
subgraph "数据服务层"
subgraph DATASERVICE["数据服务层"]
direction TB
M[(主数据库<br/>OpenGauss)]
N[(备数据库<br/>OpenGauss)]
O[缓存服务器<br/>Redis]
P[文件服务器<br/>MinIO]
M -.->|数据同步| N
end
A --> D
B --> D
C --> D
D --> F
D --> G
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
%% 层级间调用关系
EXTERNAL -.->|用户请求<br/>接口调用| LOADBALANCER
LOADBALANCER -.->|负载分发<br/>故障切换| WEBSERVICE
WEBSERVICE -.->|业务请求<br/>服务调用| APPSERVICE
APPSERVICE -.->|数据访问<br/>缓存读写<br/>文件操作| DATASERVICE
```
### 环境架构设计
@ -175,19 +159,26 @@ graph TB
#### 核心服务组件
```mermaid
graph LR
subgraph "容器化服务"
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
A --> B
B --> C
B --> D
B --> E
%% 容器服务调用关系
FRONTEND -.->|API请求<br/>静态资源| BACKEND
BACKEND -.->|数据操作<br/>缓存访问<br/>文件存储| DATASTORAGE
```
#### 部署配置说明

View File

@ -33,87 +33,65 @@
```mermaid
graph TB
subgraph "用户层"
subgraph USER["用户层"]
A1[Web管理端<br/>yudao-ui-admin-vue3]
A2[移动抄表端<br/>uni-app]
A3[客户微信端<br/>微信小程序]
A4[客户支付宝端<br/>支付宝小程序]
end
subgraph "网关层"
subgraph GATEWAY["网关层"]
B1[Nginx负载均衡]
B2[API网关<br/>统一认证/权限控制]
end
subgraph "应用层"
subgraph APP["应用层"]
C1[营收管理<br/>RuoYi-Vue-Pro]
C2[客户服务<br/>RuoYi-Vue-Pro]
C3[表务管理<br/>RuoYi-Vue-Pro]
C4[统计分析<br/>RuoYi-Vue-Pro]
end
subgraph "服务层"
subgraph SERVICE["服务层"]
D1[权限服务<br/>Spring Security]
D2[工作流服务<br/>Flowable]
D3[消息服务<br/>Redis MQ]
D4[文件服务<br/>MinIO/OSS]
end
subgraph "数据层"
subgraph DATA["数据层"]
E1[(OpenGauss 5.0+<br/>主从架构)]
E2[(Redis 6.0<br/>集群缓存)]
E3[文件存储<br/>分布式存储]
end
subgraph "外部接口"
subgraph EXTERNAL["外部接口"]
F1[银行接口<br/>代扣/托收]
F2[支付接口<br/>微信/支付宝]
F3[短信接口<br/>阿里云/腾讯云]
F4[物联网接口<br/>智能水表]
end
A1 --> B1
A2 --> B1
A3 --> B1
A4 --> B1
B1 --> B2
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
%% 层级间调用关系
USER -.->|请求访问| GATEWAY
GATEWAY -.->|负载均衡<br/>路由转发| APP
APP -.->|服务调用| SERVICE
APP -.->|外部集成| EXTERNAL
SERVICE -.->|数据访问| DATA
```
### 物理部署架构图
```mermaid
graph TB
subgraph "DMZ区域"
LB1[负载均衡器<br/>Nginx Cluster]
WAF[Web应用防火墙]
subgraph DMZ["DMZ区域"]
subgraph "负载均衡集群"
LB1[负载均衡器<br/>Nginx Cluster]
WAF[Web应用防火墙]
end
end
subgraph "应用服务区"
subgraph APPZONE["应用服务区"]
subgraph "Web服务集群"
WEB1[Web服务器1<br/>8核32G]
WEB2[Web服务器2<br/>8核32G]
@ -125,7 +103,7 @@ graph TB
end
end
subgraph "数据服务区"
subgraph DATAZONE["数据服务区"]
subgraph "数据库集群"
DB1[OpenGauss主库<br/>32核128G]
DB2[OpenGauss从库<br/>32核128G]
@ -143,43 +121,18 @@ graph TB
end
end
subgraph "管理服务区"
subgraph MGMT["管理服务区"]
MONITOR[监控服务器<br/>8核16G]
BACKUP[备份服务器<br/>8核32G 20TB]
JUMP[跳板服务器<br/>4核8G]
end
Internet --> WAF
WAF --> LB1
LB1 --> WEB1
LB1 --> WEB2
WEB1 --> APP1
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
%% 区域间调用关系
Internet -.->|外网访问| DMZ
DMZ -.->|负载均衡<br/>安全过滤| APPZONE
APPZONE -.->|数据访问<br/>业务处理| DATAZONE
MGMT -.->|监控管理<br/>备份恢复| DATAZONE
MGMT -.->|系统监控<br/>运维管理| APPZONE
```
## 技术架构
@ -189,8 +142,9 @@ graph TB
### 技术栈总览
```mermaid
graph LR
subgraph 前端技术栈["🏷 前端技术栈"]
graph
subgraph FRONTEND["🏷 前端技术栈"]
direction TB
FE1["Vue 3.2+ TypeScript"]
FE2["Element Plus UI"]
FE3["Vite 构建工具"]
@ -200,7 +154,8 @@ graph LR
FE7["ECharts 图表"]
end
subgraph 后端技术栈["📦 后端技术栈"]
subgraph BACKEND["📦 后端技术栈"]
direction TB
BE1["Spring Boot 3.x"]:::spring
BE2["Spring Security"]:::security
BE3["MyBatis Plus"]:::orm
@ -211,7 +166,8 @@ graph LR
BE8["Maven 管理"]
end
subgraph 中间件服务["⚙️ 中间件服务"]
subgraph MIDDLEWARE["⚙️ 中间件服务"]
direction TB
MW1["Nginx LB"]
MW2["Redis集群"]
MW3["Flowable工作流"]
@ -222,7 +178,8 @@ graph LR
MW8["Sentinel限流"]
end
subgraph 移动应用["📱 移动应用"]
subgraph MOBILE["📱 移动应用"]
direction TB
MB1["uni-app"]
MB2["uView UI"]
MB3["微信小程序"]
@ -232,16 +189,10 @@ graph LR
MB7["NFC设备接口"]
end
FE6 -- HTTP请求 --> BE1
MB1 -- API调用 --> BE1
BE1 --> BE2
BE1 --> BE3
BE3 --> BE5
BE1 --> BE4
BE1 --> MW6
BE1 --> MW5
BE1 --> MW7
BE1 --> MW3
%% 技术栈间调用关系
FRONTEND -.->|HTTP请求<br/>API调用| BACKEND
MOBILE -.->|跨平台调用<br/>API集成| BACKEND
BACKEND -.->|服务集成<br/>中间件调用| MIDDLEWARE
classDef spring fill:#6db33f,color:white
classDef security fill:#b5e6c0
@ -253,7 +204,7 @@ graph LR
```mermaid
flowchart TD
subgraph "数据采集层"
subgraph COLLECT["数据采集层"]
A1[移动抄表APP<br/>数据采集]
A2[智能水表<br/>远程数据]
A3[Web管理端<br/>业务录入]
@ -261,14 +212,14 @@ flowchart TD
A5[外部系统<br/>接口数据]
end
subgraph "数据接入层"
subgraph ACCESS["数据接入层"]
B1[API网关<br/>数据验证]
B2[数据清洗<br/>格式转换]
B3[消息队列<br/>异步处理]
B4[数据缓存<br/>临时存储]
end
subgraph "业务处理层"
subgraph PROCESS["业务处理层"]
C1[抄表服务<br/>水量计算]
C2[收费服务<br/>账单生成]
C3[账务服务<br/>财务处理]
@ -276,7 +227,7 @@ flowchart TD
C5[统计服务<br/>数据分析]
end
subgraph "数据存储层"
subgraph STORAGE["数据存储层"]
D1[(OpenGauss主库<br/>核心业务数据)]
D2[(OpenGauss从库<br/>查询数据)]
D3[(Redis缓存<br/>热点数据)]
@ -284,14 +235,14 @@ flowchart TD
D5[(备份库<br/>历史数据)]
end
subgraph "数据服务层"
subgraph SERVICE["数据服务层"]
E1[查询服务<br/>数据检索]
E2[报表服务<br/>统计分析]
E3[接口服务<br/>对外开放]
E4[推送服务<br/>消息通知]
end
subgraph "数据展现层"
subgraph PRESENT["数据展现层"]
F1[管理后台<br/>业务操作]
F2[统计大屏<br/>可视化展示]
F3[移动端<br/>现场作业]
@ -299,42 +250,13 @@ flowchart TD
F5[第三方系统<br/>数据集成]
end
A1 --> B1
A2 --> B2
A3 --> B1
A4 --> B1
A5 --> B3
B1 --> B4
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
%% 数据流向关系
COLLECT -.->|数据采集<br/>格式验证| ACCESS
ACCESS -.->|数据接入<br/>清洗转换| PROCESS
PROCESS -.->|业务处理<br/>数据持久化| STORAGE
STORAGE -.->|数据查询<br/>统计分析| SERVICE
SERVICE -.->|数据服务<br/>接口调用| PRESENT
PRESENT -.->|用户反馈<br/>业务交互| PROCESS
```
### 服务端技术架构
@ -382,37 +304,35 @@ flowchart TD
**技术栈组成:**
```mermaid
graph TB
subgraph "跨平台框架"
subgraph FRAMEWORK["跨平台框架"]
M1[uni-app 3.x]
M2[Vue 3 Composition API]
M3[TypeScript支持]
end
subgraph "UI组件库"
subgraph UIKIT["UI组件库"]
N1[uView UI 2.0]
N2[uni-ui组件]
N3[自定义水务组件]
end
subgraph "设备能力"
subgraph DEVICE["设备能力"]
P1[相机API<br/>水表拍照]
P2[NFC读取<br/>水表标签]
P3[GPS定位<br/>抄表轨迹]
P4[扫码API<br/>二维码扫描]
end
subgraph "网络通信"
subgraph NETWORK["网络通信"]
Q1[uni.request<br/>HTTP请求]
Q2[WebSocket<br/>实时通信]
Q3[文件上传<br/>图片处理]
end
M1 --> N1
M1 --> P1
M1 --> Q1
N1 --> N3
P1 --> P2
Q1 --> Q2
%% 移动架构调用关系
FRAMEWORK -.->|UI渲染<br/>组件调用| UIKIT
FRAMEWORK -.->|设备调用<br/>原生能力| DEVICE
FRAMEWORK -.->|网络通信<br/>数据交互| NETWORK
```
### 技术特性
@ -435,12 +355,12 @@ graph TB
```mermaid
graph TD
subgraph "接入层"
subgraph ACCESS["接入层"]
GW[API网关]
AUTH[认证服务]
end
subgraph "业务服务层"
subgraph BUSINESS["业务服务层"]
SYS[系统服务]
CUST[客户服务]
READ[抄表服务]
@ -450,89 +370,66 @@ graph TD
RPT[报表服务]
end
subgraph "支撑服务层"
subgraph SUPPORT["支撑服务层"]
METER[水表管理]
WF[工作流引擎]
PAY_GW[支付网关]
IOT[物联网]
end
subgraph "数据存储层"
subgraph DATA["数据存储层"]
DB[(OpenGauss数据库)]
REDIS[(Redis缓存)]
FILE_STORE[文件存储]
end
%% 接入层连接
GW --> AUTH
GW --> SYS
GW --> CUST
GW --> READ
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
%% 层级间的调用关系
ACCESS -.->|请求路由<br/>认证授权| BUSINESS
BUSINESS -.->|服务调用| SUPPORT
BUSINESS -.->|数据访问| DATA
SUPPORT -.->|数据访问| DATA
```
### 服务治理架构
```mermaid
graph TB
subgraph "服务发现与注册"
subgraph REGISTRY["服务发现与注册"]
NACOS[Nacos注册中心<br/>服务注册/发现/配置]
end
subgraph "服务网格层"
subgraph "负载均衡"
subgraph MESH["服务网格层"]
subgraph BALANCE["负载均衡"]
LB[Ribbon负载均衡<br/>客户端负载均衡]
FEIGN[OpenFeign<br/>服务间调用]
end
subgraph "容错保护"
subgraph PROTECTION["容错保护"]
CB[Sentinel熔断器<br/>流量控制/熔断降级]
RETRY[重试机制<br/>失败重试]
end
subgraph "链路追踪"
subgraph TRACING["链路追踪"]
TRACE[SkyWalking<br/>分布式链路追踪]
METRIC[Micrometer<br/>指标收集]
end
end
subgraph "配置管理"
subgraph CONFIG_MGMT["配置管理"]
CONFIG[Nacos Config<br/>配置中心]
SECRET[配置加密<br/>敏感信息保护]
end
subgraph "监控告警"
subgraph MONITORING["监控告警"]
MONITOR[Spring Boot Admin<br/>应用监控]
ALERT[告警系统<br/>异常通知]
LOG[ELK日志系统<br/>日志聚合分析]
end
NACOS --> LB
NACOS --> FEIGN
LB --> CB
FEIGN --> TRACE
CB --> RETRY
CONFIG --> SECRET
MONITOR --> ALERT
TRACE --> LOG
%% 服务治理调用关系
REGISTRY -.->|服务发现<br/>配置下发| MESH
MESH -.->|配置获取<br/>服务注册| CONFIG_MGMT
MESH -.->|监控数据<br/>链路追踪| MONITORING
```
### 应用模块设计
@ -583,80 +480,70 @@ graph TB
#### 主从高可用架构
```mermaid
graph TB
subgraph "OpenGauss高可用集群"
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 "应用层"
subgraph APPLAYER["应用层"]
APP1[应用服务器1]
APP2[应用服务器2]
APP3[应用服务器3]
end
subgraph "连接池"
subgraph POOLING["连接池"]
POOL[连接池<br/>HikariCP<br/>Druid]
end
subgraph "监控管理"
subgraph MANAGEMENT["监控管理"]
MON[OpenGauss Monitor<br/>性能监控]
BACKUP[定时备份<br/>gs_backup]
end
APP1 --> POOL
APP2 --> POOL
APP3 --> POOL
POOL --> MASTER
POOL --> STANDBY
POOL --> CASCADE
MASTER -.->|流复制| STANDBY
STANDBY -.->|级联复制| CASCADE
MON --> MASTER
MON --> STANDBY
BACKUP --> MASTER
%% 高可用架构调用关系
APPLAYER -.->|连接请求<br/>负载均衡| POOLING
POOLING -.->|数据访问<br/>读写分离| DBCLUSTER
MANAGEMENT -.->|监控管理<br/>备份恢复| DBCLUSTER
```
#### 分片存储架构
```mermaid
graph TB
subgraph "OpenGauss分布式架构"
subgraph "协调节点"
subgraph DISTRIBUTED["OpenGauss分布式架构"]
subgraph COORDINATOR["协调节点"]
CN1[协调节点1<br/>Coordinator Node]
CN2[协调节点2<br/>Coordinator Node]
end
subgraph "数据节点组1"
subgraph DATANODE1["数据节点组1"]
DN1_1[数据节点1-主<br/>Datanode Primary]
DN1_2[数据节点1-备<br/>Datanode Standby]
DN1_1 -.->|主备同步| DN1_2
end
subgraph "数据节点组2"
subgraph DATANODE2["数据节点组2"]
DN2_1[数据节点2-主<br/>Datanode Primary]
DN2_2[数据节点2-备<br/>Datanode Standby]
DN2_1 -.->|主备同步| DN2_2
end
subgraph "GTM节点"
subgraph GTM_CLUSTER["GTM节点"]
GTM[全局事务管理器<br/>GTM Master]
GTM_S[GTM备节点<br/>GTM Standby]
GTM -.->|备份| GTM_S
end
end
CN1 --> DN1_1
CN1 --> DN2_1
CN2 --> DN1_1
CN2 --> DN2_1
DN1_1 -.->|主备同步| DN1_2
DN2_1 -.->|主备同步| DN2_2
GTM -.->|备份| GTM_S
CN1 --> GTM
CN2 --> GTM
%% 分布式架构调用关系
COORDINATOR -.->|分片路由<br/>查询协调| DATANODE1
COORDINATOR -.->|分片路由<br/>查询协调| DATANODE2
COORDINATOR -.->|事务管理<br/>全局一致性| GTM_CLUSTER
```
### 数据模型设计
@ -700,70 +587,65 @@ graph TB
#### 数据加密安全
```mermaid
graph TB
subgraph "加密层级"
graph
subgraph ENCRYPT["加密层级"]
direction TB
L1[传输层加密<br/>SSL/TLS/国密SM]
L2[存储层加密<br/>TDE透明数据加密]
L3[字段级加密<br/>敏感字段加密]
L4[备份加密<br/>备份文件加密]
end
subgraph "密钥管理"
subgraph KEYMANAGE["密钥管理"]
direction TB
KMS[密钥管理系统<br/>Key Management]
HSM[硬件安全模块<br/>Hardware Security]
ROT[密钥轮换<br/>Key Rotation]
end
subgraph "国密算法"
subgraph GUOMI["国密算法"]
direction TB
SM2[SM2椭圆曲线<br/>非对称加密]
SM3[SM3哈希算法<br/>消息摘要]
SM4[SM4分组密码<br/>对称加密]
end
L1 --> KMS
L2 --> HSM
L3 --> ROT
L4 --> KMS
KMS --> SM2
HSM --> SM3
ROT --> SM4
%% 安全层级调用关系
ENCRYPT -.->|密钥依赖<br/>加密管理| KEYMANAGE
KEYMANAGE -.->|算法调用<br/>国密支持| GUOMI
```
#### 访问控制安全
```mermaid
graph TB
subgraph "身份认证"
graph
subgraph AUTHENTICATION["身份认证"]
direction TB
AUTH1[用户名密码认证]
AUTH2[LDAP集成认证]
AUTH3[Kerberos认证]
AUTH4[证书认证]
end
subgraph "权限控制"
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 "审计监控"
subgraph AUDITING["审计监控"]
direction TB
AUDIT[操作审计日志<br/>Audit Logging]
MONITOR[实时安全监控<br/>Security Monitoring]
ALERT[安全告警<br/>Security Alert]
REPORT[合规报告<br/>Compliance Report]
end
AUTH1 --> RBAC
AUTH2 --> RLS
AUTH3 --> CLS
AUTH4 --> TENANT
RBAC --> AUDIT
RLS --> MONITOR
CLS --> ALERT
TENANT --> REPORT
%% 安全控制流程
AUTHENTICATION -.->|身份验证<br/>授权检查| AUTHORIZATION
AUTHORIZATION -.->|权限监控<br/>操作审计| AUDITING
```
### 网络安全