# 福建水务营收系统架构设计文档 ## 文档信息 | 项目信息 | 详情 | |---------|------| | **项目名称** | 福建水务营收系统 | | **文档类型** | 概要设计文档 | | **技术框架** | RuoYi-Vue-Pro + yudao-ui-admin-vue3 | | **文档版本** | v1.0 | | **编写日期** | 2024-12-19 | | **文档状态** | ✅ 已完成 | ## 目录 - [系统架构概述](#系统架构概述) - [技术架构](#技术架构) - [应用架构](#应用架构) - [数据架构](#数据架构) - [安全架构](#安全架构) - [部署架构](#部署架构) - [接口架构](#接口架构) ## 系统架构概述 福建水务营收系统采用多层架构设计,旨在支持集团化的集中管理、统一资源管理的业务需求。系统架构的设计目标是实现"一个业务平台、一网通平台"的建设目标,为集团及下属各分公司提供统一的营业收费系统。 系统架构主要包括以下核心特点: - 多租户架构:支持集团、分公司、营业站点的多层级租户管理模式 - 统一资源服务:统一的福建水务系统运行资源环境 - 统一平台应用:统一业务流程,集中汇集数据 - 统一对外接口:提供标准的接口和能力 ### 系统总体架构图 ```mermaid graph TB subgraph USER["用户层"] A1[Web管理端
yudao-ui-admin-vue3] A2[移动抄表端
uni-app] A3[客户微信端
微信小程序] A4[客户支付宝端
支付宝小程序] end subgraph GATEWAY["网关层"] B1[Nginx负载均衡] B2[API网关
统一认证/权限控制] end subgraph APP["应用层"] C1[营收管理
RuoYi-Vue-Pro] C2[客户服务
RuoYi-Vue-Pro] C3[表务管理
RuoYi-Vue-Pro] C4[统计分析
RuoYi-Vue-Pro] end subgraph SERVICE["服务层"] D1[权限服务
Spring Security] D2[工作流服务
Flowable] D3[消息服务
Redis MQ] D4[文件服务
MinIO/OSS] end subgraph DATA["数据层"] E1[(OpenGauss 5.0+
主从架构)] E2[(Redis 6.0
集群缓存)] E3[文件存储
分布式存储] end subgraph EXTERNAL["外部接口"] F1[银行接口
代扣/托收] F2[支付接口
微信/支付宝] F3[短信接口
阿里云/腾讯云] F4[物联网接口
智能水表] end %% 层级间调用关系 USER -.->|请求访问| GATEWAY GATEWAY -.->|负载均衡
路由转发| APP APP -.->|服务调用| SERVICE APP -.->|外部集成| EXTERNAL SERVICE -.->|数据访问| DATA ``` ### 物理部署架构图 ```mermaid graph TB subgraph DMZ["DMZ区域"] subgraph "负载均衡集群" LB1[负载均衡器
Nginx Cluster] WAF[Web应用防火墙] end end subgraph APPZONE["应用服务区"] subgraph "Web服务集群" WEB1[Web服务器1
8核32G] WEB2[Web服务器2
8核32G] end subgraph "应用服务集群" APP1[应用服务器1
16核64G] APP2[应用服务器2
16核64G] end end subgraph DATAZONE["数据服务区"] subgraph "数据库集群" DB1[OpenGauss主库
32核128G] DB2[OpenGauss从库
32核128G] end subgraph "缓存集群" REDIS1[Redis主节点
16核32G] REDIS2[Redis从节点
16核32G] REDIS3[Redis哨兵
8核16G] end subgraph "文件存储" FILE1[文件服务器1
8核32G 10TB] FILE2[文件服务器2
8核32G 10TB] end end subgraph MGMT["管理服务区"] MONITOR[监控服务器
8核16G] BACKUP[备份服务器
8核32G 20TB] JUMP[跳板服务器
4核8G] end %% 区域间调用关系 Internet -.->|外网访问| DMZ DMZ -.->|负载均衡
安全过滤| APPZONE APPZONE -.->|数据访问
业务处理| DATAZONE MGMT -.->|监控管理
备份恢复| DATAZONE MGMT -.->|系统监控
运维管理| APPZONE ``` ## 技术架构 系统采用B/S和M/S相结合的架构模式,基于现代化的技术栈构建。 ### 技术栈总览 ```mermaid graph TB subgraph FRONTEND["🏷 前端技术栈"] FE1["Vue 3 + TypeScript
Element Plus UI"] FE2["Vite + Pinia
Router + Axios"] end subgraph BACKEND["📦 后端技术栈"] BE1["Spring Boot 3.x
Spring Security"]:::spring BE2["MyBatis Plus
OpenGauss"]:::db BE3["Redis缓存
Knife4j文档"]:::cache end subgraph MIDDLEWARE["⚙️ 中间件服务"] MW1["Nginx负载均衡
Redis集群"] MW2["Flowable工作流
Quartz定时"] MW3["MinIO存储
消息队列"] end subgraph MOBILE["📱 移动应用"] MB1["uni-app跨平台
uView UI"] MB2["微信/支付宝小程序
H5响应式"] MB3["GPS定位+NFC
设备接口"] end %% 技术栈间调用关系 FRONTEND -.->|HTTP请求
API调用| BACKEND MOBILE -.->|跨平台调用
API集成| BACKEND BACKEND -.->|服务集成
中间件调用| MIDDLEWARE classDef spring fill:#6db33f,color:white classDef db fill:#f9d27d classDef cache fill:#b5e6c0 ``` ### 系统数据流向图 ```mermaid flowchart TD subgraph COLLECT["数据采集层"] A1[移动抄表APP
数据采集] A2[智能水表
远程数据] A3[Web管理端
业务录入] A4[客户端小程序
用户数据] A5[外部系统
接口数据] end subgraph ACCESS["数据接入层"] B1[API网关
数据验证] B2[数据清洗
格式转换] B3[消息队列
异步处理] B4[数据缓存
临时存储] end subgraph PROCESS["业务处理层"] C1[抄表服务
水量计算] C2[收费服务
账单生成] C3[账务服务
财务处理] C4[工单服务
流程处理] C5[统计服务
数据分析] end subgraph STORAGE["数据存储层"] D1[(OpenGauss主库
核心业务数据)] D2[(OpenGauss从库
查询数据)] D3[(Redis缓存
热点数据)] D4[文件存储
附件图片] D5[(备份库
历史数据)] end subgraph SERVICE["数据服务层"] E1[查询服务
数据检索] E2[报表服务
统计分析] E3[接口服务
对外开放] E4[推送服务
消息通知] end subgraph PRESENT["数据展现层"] F1[管理后台
业务操作] F2[统计大屏
可视化展示] F3[移动端
现场作业] F4[客户端
自助服务] F5[第三方系统
数据集成] end %% 数据流向关系 COLLECT -.->|数据采集
格式验证| ACCESS ACCESS -.->|数据接入
清洗转换| PROCESS PROCESS -.->|业务处理
数据持久化| STORAGE STORAGE -.->|数据查询
统计分析| SERVICE SERVICE -.->|数据服务
接口调用| PRESENT PRESENT -.->|用户反馈
业务交互| PROCESS ``` ### 服务端技术架构 系统采用基于RuoYi-Vue-Pro框架的技术架构: - **操作系统**:国产 Linux 操作系统 - **数据库**:华为OpenGauss 5.0+数据库,企业级国产数据库 - **应用框架**:基于RuoYi-Vue-Pro框架定制开发 - 核心框架:Spring Boot 3.x,支持JDK 17/21 - ORM框架:MyBatis Plus,增强的MyBatis - 权限框架:Spring Security,基于RBAC的权限管理 - 数据缓存:Redis + Redisson,高性能缓存和分布式锁 - 工作流引擎:Flowable,灵活的工作流处理 - 任务调度:基于Quartz的CRON任务调度 - 服务监控:Spring Boot Admin、SkyWalking APM - 消息队列:基于Redis的轻量级消息队列 - 文档生成:Knife4j,基于Swagger的API文档生成 - 代码生成:自动化CRUD和表单代码生成器 - 多租户:基于字段隔离的SaaS多租户设计 ### 客户端技术架构 #### Web管理端架构 (yudao-ui-admin-vue3) **核心技术组成:** - Vue 3.x + TypeScript:现代化前端框架 - Element Plus:企业级UI组件库 - Pinia:新一代状态管理 - Vue Router:路由管理 - Axios:HTTP请求库 - ECharts:数据可视化图表 - Vite:快速构建工具 **架构特点:** - 基于Composition API的组件开发模式 - TypeScript提供类型安全保障 - 模块化的项目结构设计 - 响应式的状态管理机制 - 统一的HTTP请求封装 - 完善的权限控制体系 #### 移动端架构 (uni-app) **技术栈组成:** ```mermaid 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
水表拍照] P2[NFC读取
水表标签] P3[GPS定位
抄表轨迹] P4[扫码API
二维码扫描] end subgraph NETWORK["网络通信"] Q1[uni.request
HTTP请求] Q2[WebSocket
实时通信] Q3[文件上传
图片处理] end %% 移动架构调用关系 FRAMEWORK -.->|UI渲染
组件调用| UIKIT FRAMEWORK -.->|设备调用
原生能力| DEVICE FRAMEWORK -.->|网络通信
数据交互| NETWORK ``` ### 技术特性 - **单点登录**:OAuth2 + JWT实现统一认证 - **数据交换**:基于RESTful API的系统内部数据交换与共享 - **统一报表平台**:集成JimuReport,支持自定义报表设计与生成 - **大屏设计**:集成GoView,支持可视化大屏设计 - **安全保障**:满足安全等保三级要求 - 密码加密:BCrypt加密算法 - 防XSS攻击:表单数据过滤 - 防SQL注入:参数化查询 - 防CSRF攻击:Token验证 - **性能规格**:支持200并发用户,50并发移动设备,系统响应时间不超过3秒 - **扩展容量**:支持100万客户的业务量,满足企业3-5年的业务发展需求 ## 应用架构 ### 微服务应用架构图 ```mermaid 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 -.->|请求路由
认证授权| BUSINESS BUSINESS -.->|服务调用| SUPPORT BUSINESS -.->|数据访问| DATA SUPPORT -.->|数据访问| DATA ``` ### 服务治理架构 ```mermaid graph TB subgraph REGISTRY["服务发现与注册"] NACOS[Nacos注册中心
服务注册/发现/配置] end subgraph MESH["服务网格层"] subgraph BALANCE["负载均衡"] LB[Ribbon负载均衡
客户端负载均衡] FEIGN[OpenFeign
服务间调用] end subgraph PROTECTION["容错保护"] CB[Sentinel熔断器
流量控制/熔断降级] RETRY[重试机制
失败重试] end subgraph TRACING["链路追踪"] TRACE[SkyWalking
分布式链路追踪] METRIC[Micrometer
指标收集] end end subgraph CONFIG_MGMT["配置管理"] CONFIG[Nacos Config
配置中心] SECRET[配置加密
敏感信息保护] end subgraph MONITORING["监控告警"] MONITOR[Spring Boot Admin
应用监控] ALERT[告警系统
异常通知] LOG[ELK日志系统
日志聚合分析] end %% 服务治理调用关系 REGISTRY -.->|服务发现
配置下发| MESH MESH -.->|配置获取
服务注册| CONFIG_MGMT MESH -.->|监控数据
链路追踪| MONITORING ``` ### 应用模块设计 系统应用架构基于业务域划分,主要包括以下核心应用模块: #### 统一平台 - 单点登录:统一认证入口,支持多种登录方式 - 系统管理:组织机构、员工管理、角色权限管理、菜单配置等 - 流程节点提醒:工作流节点到期和状态变更提醒 #### 营收系统 - 系统管理:水价管理、用户档案管理、更名过户管理等 - 抄表开账:册本管理、抄表录入、复核开账等 - 收费管理:柜台收费、特殊开账、柜台结账、批量缴费等 - 账务处理:预存调整、未销调整、已销调整、分账调整等 - 发票管理:发票查询、发票开具、电子发票等 - 代收业务:实时收费、银行代扣、银行托收等 #### 客户服务 - 微信、支付宝服务窗:账户绑定、用水查询、在线缴费等 - 历史账单:账单查询、用水分析、账单推送等 - 电子发票:发票申请、发票查询、发票下载等 - 营业网点:网点查询、网点导航、业务指南等 #### 表务系统 - 表务工单:换表工单、移表工单、拆表工单、复装工单等 - 表务仓库:新表入库、水表检定、水表领用、水表出库等 - 水表参数与基础信息:水表厂家管理、水表型号管理等 - 物联网对接与数据同步:厂家设备信息管理、远程抄表数据同步等 #### 报装管理 - 报装流程:报装申请、方案设计、合同签订、施工管理等 - 一户一表管理:改造计划、改造实施、用户转换等 #### 统计分析 - 报表查询:标准报表、自定义报表、报表导出打印等 - 欠费查询:欠费情况统计、欠费用户明细、欠费分析等 - 缴费记录:缴费情况统计、缴费明细查询、缴费趋势分析等 - 用水分析:用水量统计、用水趋势分析、异常用水分析等 ## 数据架构 系统数据架构基于客户关系数据库为核心和基础,实现客户全生命周期管理。 ### OpenGauss数据库架构 #### 主从高可用架构 ```mermaid graph subgraph DBCLUSTER["OpenGauss高可用集群"] MASTER[("OpenGauss主库
Primary Node
读写操作")] STANDBY[("OpenGauss备库
Standby Node
只读操作")] CASCADE[("OpenGauss级联备库
Cascade Standby
负载分担")] MASTER -.->|流复制| STANDBY STANDBY -.->|级联复制| CASCADE end subgraph APPLAYER["应用层"] APP1[应用服务器1] APP2[应用服务器2] APP3[应用服务器3] end subgraph POOLING["连接池"] POOL[连接池
HikariCP
Druid] end subgraph MANAGEMENT["监控管理"] MON[OpenGauss Monitor
性能监控] BACKUP[定时备份
gs_backup] end %% 高可用架构调用关系 APPLAYER -.->|连接请求
负载均衡| POOLING POOLING -.->|数据访问
读写分离| DBCLUSTER MANAGEMENT -.->|监控管理
备份恢复| DBCLUSTER ``` #### 分片存储架构 ```mermaid graph TB subgraph DISTRIBUTED["OpenGauss分布式架构"] subgraph COORDINATOR["协调节点"] CN1[协调节点1
Coordinator Node] CN2[协调节点2
Coordinator Node] end subgraph DATANODE1["数据节点组1"] DN1_1[数据节点1-主
Datanode Primary] DN1_2[数据节点1-备
Datanode Standby] DN1_1 -.->|主备同步| DN1_2 end subgraph DATANODE2["数据节点组2"] DN2_1[数据节点2-主
Datanode Primary] DN2_2[数据节点2-备
Datanode Standby] DN2_1 -.->|主备同步| DN2_2 end subgraph GTM_CLUSTER["GTM节点"] GTM[全局事务管理器
GTM Master] GTM_S[GTM备节点
GTM Standby] GTM -.->|备份| GTM_S end end %% 分布式架构调用关系 COORDINATOR -.->|分片路由
查询协调| DATANODE1 COORDINATOR -.->|分片路由
查询协调| DATANODE2 COORDINATOR -.->|事务管理
全局一致性| GTM_CLUSTER ``` ### 数据模型设计 - **客户信息模型**:包含客户基础信息、表卡信息、账户信息、联系人信息等 - **业务数据模型**:抄表数据、收费数据、账务数据、发票数据等 - **工单数据模型**:表务工单、报装工单、业务工单等 - **配置数据模型**:系统参数、水表参数、价格体系等 - **报表数据模型**:统计数据、分析数据、预测数据等 - **物联网数据模型**:设备信息、状态信息、实时数据等 ### 数据集成与共享 - **统一数据标准**:定义统一的数据标准和数据字典,符合OpenGauss规范 - **数据集成机制**:采用OpenGauss XA事务实现系统间的数据一致性 - **数据共享机制**:基于OpenGauss外部数据包装器(FDW)实现跨库数据访问 - **数据同步策略**:支持实时流复制、定时数据同步、批量ETL处理等 ### OpenGauss特性应用 #### 性能优化特性 - **向量化执行引擎**:批量数据处理,提升OLAP查询性能30-50% - **列存储引擎**:统计报表类查询,压缩比高达10:1 - **分区表技术**:按月份分区存储抄表数据,支持分区裁剪 - **并行查询**:复杂统计查询自动并行执行 - **智能优化器**:自适应查询计划,持续性能优化 #### 企业级特性 - **在线扩容**:支持不停机新增数据节点 - **故障自愈**:主备节点故障自动切换,RTO < 10秒 - **读写分离**:自动路由读请求到备节点,减轻主库压力 - **负载均衡**:连接池级别的智能负载均衡 - **全量/增量备份**:支持热备份,最小备份粒度到事务级 ## 安全架构 系统安全架构基于OpenGauss数据库的企业级安全特性,满足等保三级要求和国产化安全标准: ### OpenGauss数据安全架构 #### 数据加密安全 ```mermaid graph subgraph ENCRYPT["加密层级"] direction TB L1[传输层加密
SSL/TLS/国密SM] L2[存储层加密
TDE透明数据加密] L3[字段级加密
敏感字段加密] L4[备份加密
备份文件加密] end subgraph KEYMANAGE["密钥管理"] direction TB KMS[密钥管理系统
Key Management] HSM[硬件安全模块
Hardware Security] ROT[密钥轮换
Key Rotation] end subgraph GUOMI["国密算法"] direction TB SM2[SM2椭圆曲线
非对称加密] SM3[SM3哈希算法
消息摘要] SM4[SM4分组密码
对称加密] end %% 安全层级调用关系 ENCRYPT -.->|密钥依赖
加密管理| KEYMANAGE KEYMANAGE -.->|算法调用
国密支持| GUOMI ``` #### 访问控制安全 ```mermaid graph subgraph AUTHENTICATION["身份认证"] direction TB AUTH1[用户名密码认证] AUTH2[LDAP集成认证] AUTH3[Kerberos认证] AUTH4[证书认证] end subgraph AUTHORIZATION["权限控制"] direction TB RBAC[基于角色的权限控制
Role-Based Access Control] RLS[行级安全策略
Row Level Security] CLS[列级安全控制
Column Level Security] TENANT[多租户数据隔离
Multi-Tenant Isolation] end subgraph AUDITING["审计监控"] direction TB AUDIT[操作审计日志
Audit Logging] MONITOR[实时安全监控
Security Monitoring] ALERT[安全告警
Security Alert] REPORT[合规报告
Compliance Report] end %% 安全控制流程 AUTHENTICATION -.->|身份验证
授权检查| AUTHORIZATION AUTHORIZATION -.->|权限监控
操作审计| AUDITING ``` ### 网络安全 - **边界防护**:防火墙、入侵检测/防御系统 - **访问控制**:基于角色的访问控制(RBAC) - **通信安全**:SSL/TLS加密传输,支持国密算法 - **安全监控**:实时监控网络安全状态和异常访问 ### 数据安全特性 - **透明数据加密(TDE)**:自动加密存储数据,支持SM4国密算法 - **行级安全(RLS)**:基于用户角色的行级数据访问控制 - **列级权限**:敏感字段的精细化访问控制 - **动态脱敏**:查询时自动脱敏显示敏感信息 - **数据备份安全**:备份文件自动加密,支持增量备份 - **审计日志**:完整记录所有数据库操作,支持合规审计 ### 多租户安全隔离 - **逻辑隔离**:基于tenant_id的数据隔离 - **连接隔离**:租户间连接池隔离 - **权限隔离**:租户级别的权限管理 - **资源隔离**:CPU、内存、IO资源限制 ### 应用安全 - **身份认证**:多因素认证,支持短信验证码、邮箱验证等 - **授权管理**:细粒度的权限控制,支持菜单、按钮、数据权限 - **安全审计**:用户操作审计,关键业务操作全程记录 - **密码策略**:密码复杂度、定期更换、失败锁定等安全策略 - **会话管理**:会话超时、并发限制、单点登录等 ### 接口安全 - **接口认证**:基于JWT Token的接口认证 - **接口授权**:基于角色的接口授权和权限验证 - **接口加密**:敏感数据的加密传输,支持国密算法 - **接口防护**:防重放、防篡改、防SQL注入等安全措施 - **接口限流**:基于IP、用户、应用的多维度限流策略 ## 部署架构 系统采用集中部署的模式,基于集团私有云环境进行部署。 ### 物理部署 - **生产环境**:高可用集群部署 - 应用服务器:2台或以上服务器,负载均衡 - **OpenGauss数据库集群**:主从+级联备架构,支持自动故障切换 - 缓存服务器:Redis集群 - 文件服务器:冗余存储 - **灾备环境**:异地灾备,定期数据同步,支持OpenGauss流复制 - **测试环境**:用于系统测试和验证,单节点OpenGauss部署 - **开发环境**:用于系统开发和集成测试,单节点OpenGauss部署 ### 逻辑部署 - **应用服务器集群**:负责业务逻辑处理,支持水平扩展 - **OpenGauss数据库集群**:负责数据存储和管理,提供高可用保障 - **文件服务器**:负责文档和附件存储,支持分布式存储 - **缓存服务器**:Redis集群提高系统性能 - **负载均衡服务器**:实现请求分发和负载均衡 - **移动应用服务**:提供移动端API服务 - **API网关**:统一的接口管理和控制 ### 容器部署 - 基于Docker容器技术实现微服务部署 - 使用Kubernetes进行容器编排和管理 - 支持容器的自动扩缩容和故障转移 - 实现服务的灰度发布和版本控制 ## 接口架构 系统提供标准化的接口,实现与外部系统的集成和数据交换。 ### 外部接口 - 银行接口:实现与银行系统的对接,支持代扣、托收等功能 - 支付宝/微信接口:支持在线支付功能 - 短信接口:支持短信通知和验证码功能 - 集抄系统接口:实现与智能水表集中抄表系统的对接 - 政务系统接口:实现与地方政务平台和政务APP的对接 - 消火栓系统接口:实现与消火栓系统的对接 - 环卫系统接口:实现与环卫系统的对接 - OA系统接口:实现与OA系统的工作流对接 ### 内部接口 - ESB服务接口:系统内部模块间的数据交换 - 报表接口:提供报表数据查询和生成功能 - 查询接口:提供数据查询功能 - 业务处理接口:提供业务处理功能 - 消息通知接口:提供消息推送和通知功能 - 工作流接口:提供工作流处理和状态查询功能 ### 接口标准 - 接口协议:RESTful API、WebService、消息队列等 - 数据格式:JSON、XML等 - 接口安全:身份认证、授权、加密传输等 - 接口文档:统一的接口文档和示例代码 - 接口测试:提供接口测试工具和环境 ### 接口服务管理 - API网关:统一的接口入口和管理 - 服务注册与发现:服务的自动注册和发现 - 服务路由:根据请求参数进行服务路由 - 服务降级:在服务不可用时提供降级策略 - 服务监控:实时监控服务的可用性和性能