21 KiB
21 KiB
福建水务业务系统架构设计
目录
1. 系统架构概述
福建水务业务系统采用多层架构设计,旨在支持集团化的集中管理、统一资源管理的业务需求。系统架构的设计目标是实现"一个业务平台、一网通平台"的建设目标,为集团及下属各分公司提供统一的营业收费系统。
系统架构主要包括以下核心特点:
- 多租户架构:支持集团、分公司、营业站点的多层级租户管理模式
- 统一资源服务:统一的数字水务系统运行资源环境
- 统一平台应用:统一业务流程,集中汇集数据
- 统一对外接口:提供标准的接口和能力
%%{init: {'theme': 'neutral', 'flowchart': {'useMaxWidth': false, 'htmlLabels': true, 'curve': 'basis'}}}%%
flowchart TD
%% 定义样式 - 更紧凑的样式设计
classDef accessLayer fill:#e6f9ff,stroke:#0099cc,stroke-width:1px,color:#333,font-size:12px
classDef applicationLayer fill:#e6ffec,stroke:#00cc66,stroke-width:1px,color:#333,font-size:12px
classDef middleLayer fill:#fff2e6,stroke:#ff9933,stroke-width:1px,color:#333,font-size:12px
classDef dataLayer fill:#f9e6ff,stroke:#9933ff,stroke-width:1px,color:#333,font-size:12px
classDef externalLayer fill:#ffe6e6,stroke:#ff3366,stroke-width:1px,color:#333,font-size:12px
classDef securityLayer fill:#ffe6e6,stroke:#cc0000,stroke-width:2px,color:#cc0000,font-size:12px
classDef userLayer fill:#f2f2f2,stroke:#666666,stroke-width:1px,color:#333,font-size:12px
classDef tenantLayer fill:#e6f7ff,stroke:#3399ff,stroke-width:1px,color:#333,font-size:12px
classDef moduleStyle fill:#ffffff,stroke:#999999,stroke-width:1px,color:#333,rx:3,ry:3,font-size:11px
classDef labelStyle color:#666,font-size:10px
%% 用户层 - 缩小高度
subgraph Users["<b>👥 用户层</b>"]
User1["<div style='text-align:center'>🖥️<br><small>Web端用户</small></div>"]
User2["<div style='text-align:center'>📱<br><small>移动端用户</small></div>"]
User3["<div style='text-align:center'>🏢<br><small>营业厅操作人员</small></div>"]
end
%% 接入层 - 缩小高度
subgraph Access["<b>🔐 接入层</b>"]
LoadBalancer["<div style='text-align:center'>⚖️<br><small>负载均衡</small></div>"]
Firewall["<div style='text-align:center'>🛡️<br><small>防火墙</small></div>"]
SSO["<div style='text-align:center'>🔑<br><small>单点登录</small></div>"]
end
%% 应用层 - 分组优化布局
subgraph AppLayer["<b>📊 应用层</b>"]
%% 平台基础
subgraph CorePlatform["<b>🧩 平台基础</b>"]
Platform["<div style='text-align:center'><b>统一平台</b><br><small>⚙️系统管理<br>📬流程提醒</small></div>"]
APIService["<div style='text-align:center'><b>接口服务</b><br><small>🛒API市场<br>🔒权限管理</small></div>"]
end
%% 业务核心
subgraph CoreBusiness["<b>💼 业务核心</b>"]
Revenue["<div style='text-align:center'><b>营收系统</b><br><small>📝抄表开账<br>💳收费管理<br>📒账务处理<br>🧾发票管理</small></div>"]
MeterMgmt["<div style='text-align:center'><b>表务系统</b><br><small>🛠️表务工单<br>🏪表务仓库<br>📶物联网对接</small></div>"]
end
%% 客户服务
subgraph CustomerService["<b>👨💼 客户服务</b>"]
CustService["<div style='text-align:center'><b>客户服务</b><br><small>📲微信支付宝<br>🔍账单查询<br>🌐微网厅<br>🤖智能客服</small></div>"]
MeterApp["<div style='text-align:center'><b>抄表APP</b><br><small>🏠首页功能<br>📊抄表功能<br>📋工单管理</small></div>"]
end
%% 业务管理
subgraph BusinessMgmt["<b>🏗️ 业务管理</b>"]
Installation["<div style='text-align:center'><b>报装管理</b><br><small>📝报装流程<br>🏠一户一表</small></div>"]
ProjectMgmt["<div style='text-align:center'><b>工程管理</b><br><small>📝工程申请<br>🚧工程施工<br>✅工程验收</small></div>"]
StatAnalysis["<div style='text-align:center'><b>统计分析</b><br><small>📈报表查询<br>💸欠费查询<br>💧用水分析</small></div>"]
end
end
%% 中间层 - 更紧凑的布局
subgraph MiddleLayer["<b>⚙️ 中间层</b>"]
ESB["<div style='text-align:center'>🔄<br><small>企业服务总线</small></div>"]
ReportPlatform["<div style='text-align:center'>📊<br><small>统一报表</small></div>"]
Cache["<div style='text-align:center'>⚡<br><small>缓存服务</small></div>"]
Workflow["<div style='text-align:center'>📑<br><small>工作流引擎</small></div>"]
MessageQueue["<div style='text-align:center'>📨<br><small>消息队列</small></div>"]
end
%% 数据层 - 更紧凑的布局
subgraph DataLayer["<b>💾 数据层</b>"]
DBCluster["<div style='text-align:center'>🗄️<br><small>数据库集群</small></div>"]
FileServer["<div style='text-align:center'>📂<br><small>文件服务器</small></div>"]
Backup["<div style='text-align:center'>🔄<br><small>数据备份</small></div>"]
DataIntegration["<div style='text-align:center'>🔄<br><small>数据集成</small></div>"]
end
%% 外部接口层 - 分组
subgraph ExternalAPI["<b>🌐 外部接口层</b>"]
%% 支付相关
subgraph PaymentAPI["<b>💳 支付相关</b>"]
BankAPI["<div style='text-align:center'>🏦<br><small>银行接口</small></div>"]
PayAPI["<div style='text-align:center'>💳<br><small>支付接口</small></div>"]
end
%% 通信相关
subgraph CommAPI["<b>📡 通信相关</b>"]
SMSAPI["<div style='text-align:center'>📱<br><small>短信接口</small></div>"]
IoTAPI["<div style='text-align:center'>📶<br><small>物联网接口</small></div>"]
end
%% 系统对接
subgraph SystemAPI["<b>🔌 系统对接</b>"]
GovernmentAPI["<div style='text-align:center'>🏛️<br><small>政务接口</small></div>"]
HydrantAPI["<div style='text-align:center'>🚿<br><small>消火栓</small></div>"]
EnvAPI["<div style='text-align:center'>♻️<br><small>环卫系统</small></div>"]
OAAPI["<div style='text-align:center'>📝<br><small>OA系统</small></div>"]
end
end
%% 安全层 - 垂直布局
subgraph SecurityLayer["<b>🔐 安全层</b>"]
NetSecurity["<div style='text-align:center'>🛡️<br><small>网络安全</small></div>"]
DataSecurity["<div style='text-align:center'>🔒<br><small>数据安全</small></div>"]
AppSecurity["<div style='text-align:center'>🛡️<br><small>应用安全</small></div>"]
end
%% 多租户 - 紧凑布局
subgraph Tenants["<b>🏢 多租户架构</b>"]
Group["<div style='text-align:center'>🏢<br><small>集团</small></div>"]
Branch["<div style='text-align:center'>🏪<br><small>分公司</small></div>"]
Station["<div style='text-align:center'>🏪<br><small>营业站点</small></div>"]
end
%% 技术栈信息 - 增加信息量
subgraph TechStack["<b>🔧 技术栈</b>"]
Backend["<div style='text-align:center'><b>后端技术</b><br><small>✓ Spring Boot 3.x<br>✓ MyBatis Plus<br>✓ Redis<br>✓ Flowable</small></div>"]
Frontend["<div style='text-align:center'><b>前端技术</b><br><small>✓ Vue 3.x<br>✓ Element Plus<br>✓ Pinia<br>✓ ECharts</small></div>"]
Mobile["<div style='text-align:center'><b>移动技术</b><br><small>✓ uni-app<br>✓ uview-ui<br>✓ 微信/支付宝<br>✓ 高德地图SDK</small></div>"]
end
%% 部署架构信息 - 增加信息量
subgraph Deployment["<b>🖥️ 部署架构</b>"]
ProdEnv["<div style='text-align:center'><b>生产环境</b><br><small>✓ 高可用集群<br>✓ 主从数据库<br>✓ Redis集群</small></div>"]
Container["<div style='text-align:center'><b>容器技术</b><br><small>✓ Docker<br>✓ Kubernetes<br>✓ 自动扩缩容</small></div>"]
end
%% 连接关系 - 使用更紧凑的箭头
Users --> Access
Access --> AppLayer
AppLayer --> MiddleLayer
MiddleLayer --> DataLayer
MiddleLayer <--> ExternalAPI
%% 技术栈与部署架构连接
AppLayer -.-> TechStack
DataLayer -.-> Deployment
%% 安全层垂直贯穿
SecurityLayer -.- Users
SecurityLayer -.- Access
SecurityLayer -.- AppLayer
SecurityLayer -.- MiddleLayer
SecurityLayer -.- DataLayer
SecurityLayer -.- ExternalAPI
%% 多租户关系
Tenants -.- AppLayer
%% 应用样式
class Users userLayer
class Access accessLayer
class AppLayer,CorePlatform,CoreBusiness,CustomerService,BusinessMgmt applicationLayer
class Platform,Revenue,CustService,MeterMgmt,Installation,StatAnalysis,ProjectMgmt,MeterApp,APIService moduleStyle
class MiddleLayer middleLayer
class DataLayer dataLayer
class ExternalAPI,PaymentAPI,CommAPI,SystemAPI externalLayer
class SecurityLayer securityLayer
class Tenants tenantLayer
class TechStack,Backend,Frontend,Mobile applicationLayer
class Deployment,ProdEnv,Container dataLayer
2. 技术架构
系统采用B/S和M/S相结合的架构模式,具体技术栈如下:
2.1 服务端
- 操作系统:国产 Linux 操作系统
- 数据库:MySQL/MariaDB数据库,支持国产OpenGauss数据库
- 应用框架:基于RuoYi-Vue-Pro框架定制开发
- 核心框架:Spring Boot 3.x,支持JDK 17/21
- ORM框架:MyBatis Plus,增强的MyBatis
- 权限框架:Spring Security,基于RBAC的权限管理
- 数据缓存:Redis + Redisson,高性能缓存和分布式锁
- 工作流引擎:Flowable,灵活的工作流处理
- 任务调度:基于Quartz的CRON任务调度
- 服务监控:Spring Boot Admin、SkyWalking APM
- 消息队列:基于Redis的轻量级消息队列
- 文档生成:Knife4j,基于Swagger的API文档生成
- 代码生成:自动化CRUD和表单代码生成器
- 多租户:基于字段隔离的SaaS多租户设计
2.2 客户端
- 前端框架:基于yudao-ui-admin-vue3框架定制开发
- 核心框架:Vue 3.x + TypeScript
- 组件库:Element Plus,现代化UI组件
- 状态管理:Pinia,新一代的Vue状态管理库
- 路由管理:Vue Router
- HTTP工具:Axios,请求拦截与统一处理
- CSS框架:Tailwind CSS / UnoCSS,原子化CSS
- 图表组件:ECharts,强大的可视化图表库
- 富文本编辑器:WangEditor
- 文件上传:基于Element Plus的上传组件
- 权限控制:细粒度的按钮级权限控制
- 动态表格:支持拖拽、排序、筛选
- 代码规范:ESLint + Prettier,标准化代码风格
- 移动端:
- 核心框架:uni-app(跨平台)
- 组件库:uview-ui
- 小程序支持:微信小程序、支付宝小程序等
- 移动端地图:高德地图SDK(用于抄表轨迹和导航)
- 设备接入:NFC、扫码、相机等硬件设备接口
2.3 技术特性
- 单点登录:OAuth2 + JWT实现统一认证
- 数据交换:基于RESTful API的系统内部数据交换与共享
- 统一报表平台:集成JimuReport,支持自定义报表设计与生成
- 大屏设计:集成GoView,支持可视化大屏设计
- 安全保障:满足安全等保三级要求
- 密码加密:BCrypt加密算法
- 防XSS攻击:表单数据过滤
- 防SQL注入:参数化查询
- 防CSRF攻击:Token验证
- 性能规格:支持200并发用户,50并发移动设备,系统响应时间不超过3秒
- 扩展容量:支持100万客户的业务量,满足企业3-5年的业务发展需求
- 支持功能:
- 支付管理:微信支付、支付宝支付等
- 短信服务:阿里云、腾讯云等多家短信服务商
- AI能力:
- 智能客服:基于AI的智能问答系统
- 智能抄表:基于图像识别的水表读数
- 异常分析:基于AI的用水异常分析
- API网关:支持API权限管理、限流熔断、白名单控制
3. 应用架构
系统应用架构基于业务域划分,主要包括以下核心应用模块:
3.1 统一平台
- 单点登录:统一认证入口,支持多种登录方式
- 系统管理:组织机构、员工管理、角色权限管理、菜单配置等
- 流程节点提醒:工作流节点到期和状态变更提醒
3.2 营收系统
- 系统管理:水价管理、用户档案管理、更名过户管理等
- 抄表开账:册本管理、抄表录入、复核开账等
- 收费管理:柜台收费、特殊开账、柜台结账、批量缴费等
- 账务处理:预存调整、未销调整、已销调整、分账调整等
- 发票管理:发票查询、发票开具、电子发票等
- 代收业务:实时收费、银行代扣、银行托收等
- 环卫系统:计费核定、计费退补、计费减免等
- 业务工单:业务清单、上报清单、稽查工单、移表工单等
3.3 客户服务
- 微信、支付宝服务窗:账户绑定、用水查询、在线缴费等
- 历史账单:账单查询、用水分析、账单推送等
- 电子发票:发票申请、发票查询、发票下载等
- 营业网点:网点查询、网点导航、业务指南等
- 账户流水:流水查询、明细下载、交易统计等
- 微网厅:用户注册、信息查询、业务办理等
- 智能客服:常见问题、智能问答、业务指引等
3.4 表务系统
- 表务工单:换表工单、移表工单、拆表工单、复装工单等
- 表务仓库:新表入库、水表检定、水表领用、水表出库等
- 水表参数与基础信息:水表厂家管理、水表型号管理等
- 物联网对接与数据同步:厂家设备信息管理、远程抄表数据同步等
3.5 报装管理
- 报装流程:报装申请、方案设计、合同签订、施工管理等
- 一户一表管理:改造计划、改造实施、用户转换等
3.6 统计分析
- 报表查询:标准报表、自定义报表、报表导出打印等
- 欠费查询:欠费情况统计、欠费用户明细、欠费分析等
- 缴费记录:缴费情况统计、缴费明细查询、缴费趋势分析等
- 用水分析:用水量统计、用水趋势分析、异常用水分析等
3.7 工程管理
- 工程申请:工程立项、材料提交、前期勘察等
- 工程施工:施工计划、施工派工、施工记录等
- 工程验收:验收申请、验收检查、验收记录等
- 工程查询:工程进度查询、工程资料查询、工程统计等
3.8 抄表APP
- 首页功能:首页展示、个人信息、快捷查询等
- 抄表功能:抄表任务、NFC抄表、扫码抄表、AI录入等
- 工单管理:问题上报、问题回填、代办工单、稽查工单等
3.9 接口服务
- API市场:API展示、API使用说明、API测试等
- API管理:API申请、API调度看板、接口服务配置管理等
- 接口权限管理:授权管理、白名单管理、安全策略等
- 系统对外接口:查询接口、业务处理接口、状态同步接口等
3.10 系统配置
- 水表参数:水表厂家、水表型号、水表量程等
- 地址参数:行政区划、地址编码、地址库等
- 价格体系:用水性质、水价标准、阶梯水价等
- 基本配置:系统参数、业务规则、打印模板等
- 催缴管理:催缴计划、催缴任务、催缴执行等
- 用户权限:菜单权限、功能权限、数据权限等
- 定时任务:任务配置、任务监控、任务日志等
4. 数据架构
系统数据架构基于客户关系数据库为核心和基础,实现客户全生命周期管理。
4.1 数据分层
- 数据采集层:负责从各业务系统和物联网设备采集原始数据
- 数据存储层:统一数据存储,实现分布式数据管理
- 数据服务层:提供数据服务接口
- 数据展现层:提供数据分析和可视化功能
4.2 数据模型
- 客户信息模型:包含客户基础信息、表卡信息、账户信息、联系人信息等
- 业务数据模型:抄表数据、收费数据、账务数据、发票数据等
- 工单数据模型:表务工单、报装工单、业务工单等
- 配置数据模型:系统参数、水表参数、价格体系等
- 报表数据模型:统计数据、分析数据、预测数据等
- 物联网数据模型:设备信息、状态信息、实时数据等
4.3 数据集成与共享
- 统一数据标准:定义统一的数据标准和数据字典
- 数据集成机制:采用ESB实现系统间的数据集成
- 数据共享机制:基于统一的数据服务接口实现数据共享
- 数据同步策略:实时同步、定时同步、批量同步等
5. 安全架构
系统安全架构满足等保三级要求,主要包括以下安全措施:
5.1 网络安全
- 边界防护:防火墙、入侵检测/防御系统
- 访问控制:基于角色的访问控制
- 通信安全:SSL/TLS加密传输
- 安全监控:实时监控网络安全状态
5.2 数据安全
- 数据加密:敏感数据加密存储
- 数据备份:定期数据备份和恢复机制
- 数据审计:关键操作的审计日志
- 数据脱敏:敏感数据的显示脱敏和处理脱敏
- 数据权限:基于多租户的数据隔离和访问控制
5.3 应用安全
- 身份认证:多因素认证
- 授权管理:细粒度的权限控制
- 安全审计:用户操作审计
- 密码策略:密码复杂度、定期更换、失败锁定等
- 会话管理:会话超时、并发限制等
5.4 接口安全
- 接口认证:基于Token的接口认证
- 接口授权:基于角色的接口授权
- 接口加密:敏感数据的加密传输
- 接口防护:防重放、防篡改等安全措施
- 接口限流:基于IP、用户、应用的限流策略
6. 部署架构
系统采用集中部署的模式,基于集团私有云环境进行部署。
6.1 物理部署
- 生产环境:高可用集群部署
- 应用服务器:2台或以上服务器,负载均衡
- 数据库服务器:主从架构,实时同步
- 缓存服务器:Redis集群
- 文件服务器:冗余存储
- 灾备环境:异地灾备,定期数据同步
- 测试环境:用于系统测试和验证
- 开发环境:用于系统开发和集成测试
6.2 逻辑部署
- 应用服务器集群:负责业务逻辑处理
- 数据库服务器集群:负责数据存储和管理
- 文件服务器:负责文档和附件存储
- 缓存服务器:提高系统性能
- 负载均衡服务器:实现请求分发和负载均衡
- 移动应用服务:提供移动端API服务
- API网关:统一的接口管理和控制
6.3 容器部署
- 基于Docker容器技术实现微服务部署
- 使用Kubernetes进行容器编排和管理
- 支持容器的自动扩缩容和故障转移
- 实现服务的灰度发布和版本控制
7. 接口架构
系统提供标准化的接口,实现与外部系统的集成和数据交换。
7.1 外部接口
- 银行接口:实现与银行系统的对接,支持代扣、托收等功能
- 支付宝/微信接口:支持在线支付功能
- 短信接口:支持短信通知和验证码功能
- 集抄系统接口:实现与智能水表集中抄表系统的对接
- 政务系统接口:实现与地方政务平台和政务APP的对接
- 消火栓系统接口:实现与消火栓系统的对接
- 环卫系统接口:实现与环卫系统的对接
- OA系统接口:实现与OA系统的工作流对接
7.2 内部接口
- ESB服务接口:系统内部模块间的数据交换
- 报表接口:提供报表数据查询和生成功能
- 查询接口:提供数据查询功能
- 业务处理接口:提供业务处理功能
- 消息通知接口:提供消息推送和通知功能
- 工作流接口:提供工作流处理和状态查询功能
7.3 接口标准
- 接口协议:RESTful API、WebService、消息队列等
- 数据格式:JSON、XML等
- 接口安全:身份认证、授权、加密传输等
- 接口文档:统一的接口文档和示例代码
- 接口测试:提供接口测试工具和环境
7.4 接口服务管理
- API网关:统一的接口入口和管理
- 服务注册与发现:服务的自动注册和发现
- 服务路由:根据请求参数进行服务路由
- 服务降级:在服务不可用时提供降级策略
- 服务监控:实时监控服务的可用性和性能