167 KiB
福建水务营收系统概要设计说明书
| 文件状态: | 文档密级: | 公开 |
|---|---|---|
| 【√】草稿 | ||
| 【】修改稿 | ||
| 【】正式发布 | ||
| 当前版本: | V1.4 | |
| 作者: | 唐伟杰 | |
| 完成日期: | 2025-08-01 |
版本历史
| 日期 | 版本号 | 作者 | 备注 |
|---|---|---|---|
| 2025-07-01 | V1.0 | 唐伟杰 | 初版 |
| 2025-07-17 | V1.1 | 唐伟杰 | 1. 同步详细设计中的模块,补充缺失模块。 2. 调整子系统划分与编号,确保逻辑清晰、编号连续。 3. 重构表务、报装、客户服务子系统,优化模块设计。 4. 统一概要设计与详细设计的结构,提升一致性。 |
| 2025-08-01 | V1.2 | 唐伟杰 | 完善 APP相关的模块设计 |
| 2025-08-01 | V1.3 | 唐伟杰 | 数据库系统变更:将OpenGauss替换为达梦数据库 8.0+,更新所有相关架构图和技术描述。 |
| 2025-08-01 | V1.4 | 唐伟杰 | 单点登录采用OAuth2.0+CAS协议:更新单点登录模块描述,强调基于OAuth2.0+CAS协议实现。 |
| 2025-08-18 | V1.5 | 唐伟杰 | 架构调整:将营收业务系统中的工单、表务、报装剥离为独立子系统(SYS-005/006/007),更新目录、功能范围、子系统列表、关系图与接口定义;保留客户服务模块在营收业务系统中的作用。 |
| 2025-08-18 | V1.6 | 唐伟杰 | 合并第三方支付能力至SYS-009"支付与银行结算子系统",统一消息服务重编号为SYS-010;更新总体目标、功能范围、接口定义、子系统列表与相关架构图。 |
目录
- 福建水务营收系统概要设计说明书
- 目录
- 前言
- 系统总体设计
- 子系统1设计: 统一平台
- 子系统2设计: 营收业务系统
- 子系统3设计: 手机抄表APP
- 子系统4设计: 微网厅系统
- 子系统5设计: 工单管理系统
- 子系统6设计: 表务管理系统
- 子系统7设计: 报装业务系统
- 子系统8设计: 发票服务子系统
- 子系统9设计: 支付与银行结算子系统
- 子系统10设计: 消息服务子系统
- 非功能性需求的设计
前言
编写目的
本文档是《福建水务营收系统详细设计说明书》的前导文档,旨在从总体架构和概要设计的角度对系统进行全面的技术规划和设计。
主要目的:
- 总体架构规划:从系统整体角度进行技术架构规划,为详细设计提供宏观指导
- 技术方案论证:确定系统的技术选型、架构模式和实现策略
- 设计标准制定:建立统一的技术标准、开发规范和质量要求
- 风险评估分析:识别技术风险、制定应对策略
- 资源需求评估:确定系统开发、部署所需的技术资源和基础设施
预期读者:
- 系统架构师和技术负责人
- 项目经理和技术管理人员
- 详细设计和开发团队
- 测试团队和运维团队
- 甲方技术评审团队
背景
福建水务营收系统是为满足福建省水投数字科技有限公司客户服务管理领域的业务需求而建设的信息化系统。系统以客户为核心和基础,实现客户全生命周期管理。
建设背景:
福建水投集团注册资本46亿元,在全省40多个县市区投资重大水利项目超过450亿元,拥有全级次子公司超过67家,职工人数超3500人。当前,集团正紧紧抓住城乡供水一体化建设的机遇,需要构建以客户为中心的数字化服务体系。
术语与缩略语
| 术语、缩写 | 解释 |
|---|---|
| SaaS | Software as a Service,软件即服务 |
| RBAC | Role-Based Access Control,基于角色的访问控制 |
| JWT | JSON Web Token,基于JSON的Web令牌 |
| OAuth2 | 开放授权标准 |
| RESTful | Representational State Transfer,表现层状态转化 |
| OpenAPI | 开放应用程序接口规范 |
| DDL | Data Definition Language,数据定义语言 |
| DML | Data Manipulation Language,数据操作语言 |
| IoT | Internet of Things,物联网 |
| CAS | Central Authentication Service,中央认证服务 |
| DevOps | Development和Operations的组合词,开发运维一体化 |
| 业务参数 | 业务参数配置 |
| 站点 | 用于划分用户所属管辖区域,站点可以进行多级管理 |
| 册本 | 又称抄表本或抄表簿,根据抄表线路规划,按排相邻的一些水表给某一个抄表员进行抄表 |
| 用户编号 | 为签定了供用水合同的正式用户分配的唯一识别号 |
| 售水量 | 抄收水量+查处水量±调整水量 |
| 当期应收水费 | 当期售水量乘以不同类别的水价(到户价)所得的金额 |
| 水表抄见率 | (当期应抄用户数-当期估表用户数)/当期应抄用户数×100% |
参考资料
- GB/T 8556-2007 信息技术软件生存周期过程
- GB/T 9385-2008 计算机软件需求规格说明规范
- GB/T 8567-2006 计算机软件文档编制规范
- 《RuoYi-Vue-Pro技术架构文档》
- 《Spring Cloud微服务架构设计指南》
- 《福建水务营收系统需求规格说明书》
系统总体设计
任务概述
系统总体目标
福建水务营收系统采用分层解耦与子系统化建设,形成"业务服务层 + 基础服务层"的整体架构:
-
业务服务层:SYS-001 统一平台、SYS-002 营收业务系统、SYS-003 手机抄表APP、SYS-004 微网厅系统、SYS-005 工单管理系统、SYS-006 表务管理系统、SYS-007 报装业务系统
-
基础服务层:SYS-008 发票服务子系统(统一开票)、SYS-009 支付与银行结算子系统(统一聚合支付/退款/渠道适配/第三方支付平台/银行代扣/夜间批量代扣/对账/加解密/支付回调)、SYS-010 消息服务子系统(统一短信/邮件/站内信/模板消息/微信通知/数科系统对接)、注册/配置中心、任务调度等基础服务
通过系统的建设,实现福建省水投数字科技有限公司客户服务管理领域的业务流程梳理再造、组织架构的优化、管理制度的建设、绩效考核标准的建设。构建以客户为中心的一体化服务体系,将客户的所有信息进行有机的关联,方便企业对营收信息进行综合分析和管理,为客户提供更多、更便捷、更主动的个性化服务,提高客户服务的质量和客户满意度。
系统整体架构特点:
- 统一平台:提供单点登录、统一认证(SSO/OAuth2+CAS)、审计与监控、权限、组织、参数、多租户、字典等基础能力
- 营收业务系统:围绕客户、抄表、收费、账务、催缴、统计等核心营收流程,保留"客户服务模块群"对外服务能力,提供多租户的业务参数配置
- 手机抄表APP:移动化现场作业,支持离线;现场问题上报与工单接收由工单系统统一承载
- 微网厅系统:面向公众的自助服务门户,支持绑定、查询、缴费、发票查看、业务办理
- 工单管理系统:统一工单中心与流程引擎,打通营收/表务/报装/微网厅/APP的全场景工单
- 表务管理系统:设备档案、表务全生命周期管理
- 报装业务系统:覆盖报装申请、踏勘、施工、验收、通水与档案归档的端到端流程,支持调用泛微进行合同签订,电子签章,支持各租户自定义报装流程和表单定义
- 发票服务子系统(基础服务):统一开票网关与供应商适配(现优先对接航天,预留博思),回执与存证
- 支付与银行对接子系统(基础服务):统一支付/退款、银行代扣送盘/回盘、对账处理、加解密签名,第三方支付平台(微信、支付宝),支持夜间进行批量代扣
- 消息服务子系统(基础服务):统一短信/邮件/站内信/模板消息,下行推送与到达回执,供各业务子系统调用(如营收业务系统催缴),微信信息通知,对接数科已建系统通知(OA、智水擎,水投数科 app)
功能范围
本系统功能涵盖水务企业完整的营收业务流程,包括客户资料管理、抄表开账、营业收费、账务处理、催缴管理、发票管理(经SYS-008)、表务管理、报装业务、客户服务、工单管理,以及支付与银行结算(经SYS-009)等;还包含查询统计与报表打印功能。
SYS-001 统一平台
- 单点登录、统一认证(SSO/OAuth2+CAS)、审计与监控、权限、组织、参数、多租户、字典等基础能力
SYS-002 营收业务系统
- 营收核心:客户资料、抄表开账、营业收费、账务处理、催缴管理、统计分析、代收业务、多租户业务参数配置
- 客户服务:账户绑定、信息查询、在线缴费(经SYS-009)、柜面扫码支付(经SYS-009)、电子发票(经SYS-008)、营业网点、业务办理
SYS-003 手机抄表APP
- 移动作业:登录、首页搜索、采集任务、现场抄表、调用外部AI识别服务
- 现场上报/工单接收:问题上报、工单接收与回填(经SYS-005)
- 数据同步与个人管理:任务下载/数据上传(离线支持)、个人信息与设置
SYS-004 微网厅系统
- 账户绑定、账单/用水查询、在线缴费(经SYS-009)、电子发票查看(经SYS-008)、营业网点、业务办理
SYS-005 工单管理系统
- 统一工单中心、流程引擎、监控预警、绩效统计,打通营收/表务/报装/微网厅/APP
SYS-006 表务管理系统
- 设备档案、表务全生命周期管理
SYS-007 报装业务系统
- 报装流程(申请/踏勘/施工/验收/通水)、支持调用泛微进行合同签订,电子签章、各租户自定义报装流程和表单定义、工程管理(进度/资源/质量/安全)、档案管理(资料归档/留痕)
SYS-008 发票服务子系统(基础服务)
- 统一开票/作废与红冲/查询、供应商适配(航天优先、预留博思)、回执处理与存证
SYS-009 支付与银行结算子系统(基础服务)
- 聚合支付/退款、渠道适配(微信/支付宝/银联聚合等)、第三方支付平台(微信、支付宝)、支付结果通知、银行代扣(送盘/回盘)、支持夜间进行批量代扣、对账文件处理、加解密/签名
SYS-010 消息服务子系统(基础服务)
- 统一短信/邮件/站内信/模板消息,下行推送与到达回执,供各业务子系统调用(如营收业务系统催缴)
- 微信信息通知,对接数科已建系统通知(OA、智水擎,水投数科 app)
- 邮件服务:邮件通知发送(经SYS-010)
系统涉众与用户特点
系统涉众:
本系统主要涉及用户为各水务公司与系统相关的业务参与者、福建省水投数字科技有限公司研发运维团队。
用户特点:
-
公司领导:对信息化在企业生产经营管理活动中的积极作用有深刻认识,并具有前瞻视角。
-
公司管理层:有丰富的企业管理经验,有良好的业务管理类系统使用经验。
-
系统管理人员:具有本科以上教育背景,计算机操作熟练,具有良好的软件系统维护经验,主要维护系统的后台权限管理、人员管理、部门管理等功能。
-
操作人员:部分用户已经使用过其他厂商提供的水务营收系统,部分用户对软件系统使用经验不足。
设计概述
总体约束
技术约束:
- 采用现代化微服务架构,支持大规模并发访问
- 支持多租户模式,满足集团化管理需求
- 实现移动化办公,提高工作效率
- 集成物联网技术,支持智能水表远程抄表
- 适配国产化环境,确保系统安全可控
性能约束:
- 系统并发用户数不低于200个
- 移动设备同时登录系统的并发用户数不少于50个
- 系统响应时间不超过3秒
- 支持100万客户的业务量
- 系统可用性达到99.5%以上
安全约束:
- 系统满足国家信息安全等级保护要求
- 支持数据加密存储和传输
- 实现细粒度的权限控制
- 提供完整的审计日志功能
系统依赖外部接口
本系统需要与以下外部系统进行接口集成:
| 接口类型 | 接口名称 | 功能描述 | 接口协议 |
|---|---|---|---|
| 金融支付 | 银行代扣接口 | 银行托收代扣缴费 | HTTPS |
| 金融支付 | 微信支付接口 | 微信在线支付 | HTTPS |
| 金融支付 | 支付宝支付接口 | 支付宝在线支付 | HTTPS |
| 通信服务 | 短信平台接口 | 短信通知发送 | HTTPS |
| 通信服务 | 邮件服务接口 | 邮件通知发送 | HTTPS/SMTP |
| 通信服务 | 微信模板消息接口 | 微信模板消息下发 | HTTPS |
| 物联网 | 集抄系统接口 | 智能水表数据采集 | TCP/HTTPS |
| 税务服务 | 电子发票接口 | 第三方发票开具 | HTTPS |
| 认证服务 | 身份认证接口 | 第三方身份验证 | HTTPS |
| 认证服务 | CAS单点登录 | 第三方身份验证 | HTTPS |
| 认证服务 | OAuth2.0单点登录 | 第三方身份验证 | HTTPS |
| 外部系统 | CA电子签章 | CA签发/验章/存证 | HTTPS |
| 外部系统 | 邮件服务 | 邮件服务 | HTTPS |
| 外部系统 | 摄像表AI接口 | 表AI识别服务 | HTTPS |
设计方案概述
架构设计方案:
系统采用现代化的多层分布式架构,基于微服务设计思想,实现松耦合、高内聚的系统架构。整体架构分为表现层、网关层、业务服务层、基础服务层和数据层五个层次。
技术选型方案:
- 后端技术栈:Java 17+、Spring Boot 3.1+、Spring Cloud Gateway、MyBatis-Plus
- 前端技术栈:Vue 3、Element Plus、TypeScript
- 数据库:达梦数据库 8.0+(主从架构)
- 缓存:Redis 6.0+(集群模式)
- 消息队列:RabbitMQ 3.9+
- 文件存储:MinIO(分布式文件存储)
- 容器化:基于Docker的容器化部署,使用Docker Compose进行容器编排,使用Kubernetes进行容器编排和调度。
- DevOps:使用Jenkins进行自动化构建、部署和测试,使用Gitea进行代码管
部署方案:
采用容器化部署架构,支持多环境部署(开发、测试、生产),提供自动化部署脚本,支持弹性扩缩容。
系统架构设计
系统的逻辑架构设计
系统采用现代化的多层分布式架构,基于微服务设计思想,实现松耦合、高内聚的系统架构。
整体架构图
graph TB
%% 表现层
subgraph "表现层"
ADMIN[Web管理端]
H5[微网厅H5]
APP[手机抄表APP]
end
%% 网关层
subgraph "网关层"
GATEWAY[API网关]
SSO[统一认证/SSO]
end
%% 业务服务层
subgraph "业务服务层"
UP[SYS-001 统一平台]
REV[SYS-002 营收业务系统]
WO[SYS-005 工单管理系统]
METER[SYS-006 表务管理系统]
INST[SYS-007 报装业务系统]
end
%% 基础服务层
subgraph "基础服务层"
INV[SYS-008 发票服务]
PAY[SYS-009 支付与银行结算]
MSG[SYS-010 消息服务]
MQ[RabbitMQ 消息队列]
FILE[MinIO 文件存储]
REDIS[Redis 缓存]
MON[监控/日志]
CONFIG[注册/配置中心]
SCHED[任务调度]
end
%% 数据层
subgraph "数据层"
DM[(达梦数据库集群)]
CACHE[(Redis集群)]
STORE[(MinIO集群)]
end
%% 外部系统
subgraph "外部系统"
EXT_CA[CA电子签章]
EXT_BANK[银行]
EXT_PSP[支付渠道 微信/支付宝/银联聚合]
EXT_INV[发票供应商 航天/博思]
EXT_SMS[短信平台]
EXT_MAIL[邮件服务]
EXT_IOT[集抄系统]
end
%% 连接关系
ADMIN --> GATEWAY
H5 --> GATEWAY
APP --> GATEWAY
GATEWAY --> SSO
GATEWAY --> UP
GATEWAY --> REV
GATEWAY --> WO
GATEWAY --> METER
GATEWAY --> INST
REV --> INV
REV --> PAY
REV --> MQ
REV -.-> MSG
REV --> FILE
REV --> REDIS
INST -.-> EXT_CA
INV -.-> EXT_INV
MSG -.-> EXT_SMS
MSG -.-> EXT_MAIL
PAY -.-> EXT_BANK
PAY -.-> EXT_PSP
%% 数据层连接
UP --> CACHE
REV --> DM
WO --> DM
METER --> DM
INST --> DM
FILE --> STORE
层级说明
表现层(Presentation Layer)
- 负责用户交互和界面展示
- 包含多种客户端形态:Web端、微网厅(微信、支付宝)
- 采用前后端分离架构,提高开发效率和用户体验
网关层(Gateway Layer)
- 统一入口,负责请求路由和负载均衡
- 集中处理认证授权、限流熔断、监控日志
- 提供API版本管理和接口文档生成
业务服务层(Business Service Layer)
- 核心业务逻辑处理层,包含七个子系统:
- SYS-001 统一平台:提供单点登录、统一认证(SSO/OAuth2+CAS)、审计与监控、权限、组织、参数、多租户、字典等基础能力
- SYS-002 营收业务系统:营收核心与客户服务模块群
- SYS-003 手机抄表APP:移动端现场作业、调用外部摄像表AI识别服务与数据同步
- SYS-004 微网厅系统:面向客户的线上服务门户
- SYS-005 工单管理系统:统一工单中心与流程引擎
- SYS-006 表务管理系统:设备档案、表务全生命周期管理
- SYS-007 报装业务系统:报装全流程与工程管理、合同签订与电子签章
- 按业务域划分微服务,实现高内聚低耦合
- 支持独立部署、扩缩容和技术栈选择
基础服务层(Infrastructure Service Layer)
- 提供通用的技术服务能力
- 包含权限、工作流、消息、文件、发票服务(统一开票能力)、银行对接服务(代扣/夜间批量代扣/对账/加解密)、第三方支付服务(聚合支付/退款)、消息服务(统一短信/邮件/站内信/模板消息)、注册/配置中心、任务调度等基础服务
- 为业务服务提供统一的技术支撑
数据层(Data Layer)
- 数据持久化和缓存层
- 支持读写分离、分库分表、数据备份
- 提供高性能、高可用的数据服务
外部系统(External Systems)
- CA电子签章:用于报装资料签署、验章与存证(INST-004 签章回执接口)
- 银行:托收代扣、回盘与对账(经SYS-009)
- 支付渠道:微信/支付宝/银联聚合等(经SYS-009)
- 发票供应商:航天/博思等税控平台(经SYS-008)
- 短信平台:通知与催缴短信发送(经SYS-010)
- 集抄系统:智能水表数据采集(远传/集中器)
- 邮件服务:邮件通知发送(经SYS-010)
- 摄像表AI系统(外部):基于计算机视觉的水表读数自动识别服务,通过API接口为手机抄表APP提供图像识别能力
系统数据流向图
flowchart TB
%% 分层横向排布,垂直贯通,允许直连线穿越模块
subgraph L1["数据采集层"]
direction LR
A1[手机抄表APP/SYS-003]
A2[智能水表]
A3[管理后台/SYS-001]
A4[微网厅/SYS-004]
A5[外部系统]
end
subgraph L2["接入层"]
direction LR
GW[API网关]
AUTH[统一平台SSO/SYS-001]
CLEAN[数据清洗]
MQ[消息队列]
CACHE_TMP[临时缓存]
end
subgraph L3["业务层"]
direction LR
REV[营收系统/SYS-002]
WO[工单系统/SYS-005]
METER[表务系统/SYS-006]
INST[报装系统/SYS-007]
INV[发票服务/SYS-008]
PAY[支付与结算/SYS-009]
MSG[消息服务/SYS-010]
end
subgraph L4["存储层"]
direction LR
DM_MASTER[达梦主库]
DM_SLAVE[达梦从库]
REDIS[Redis缓存]
MINIO[MinIO对象存储]
BACKUP[备份库]
end
subgraph L5["数据服务层"]
direction LR
QRY[查询服务]
RPT[报表服务]
API[接口服务]
PUSH[推送服务]
end
subgraph L6["展现层"]
direction LR
F1[管理后台]
F2[统计大屏]
F3[移动端]
F4[微网厅]
F5[第三方系统]
end
%% 连接(精简且保持层间垂直分层,线可穿越模块)
A1 --> GW
A2 --> GW
A3 --> GW
A4 --> GW
A5 --> GW
%% 相邻层连线:采集层 → 接入层 已在上方;以下为 接入层 → 业务层
GW --> REV
GW --> WO
GW --> METER
GW --> INST
MQ --> REV
MQ --> WO
MQ --> METER
MQ --> INST
REV --> DM_MASTER
WO --> DM_MASTER
METER --> DM_MASTER
INST --> DM_MASTER
INV --> MINIO
MSG --> REDIS
%% 存储层内部链路省略,保持仅向下一层输出
DM_MASTER --> QRY
DM_MASTER --> RPT
DM_MASTER --> API
REDIS --> API
MINIO --> API
MSG --> PUSH
QRY --> F1
RPT --> F2
API --> F1
API --> F3
API --> F4
API --> F5
PUSH --> F3
PUSH --> F4
系统的物理架构设计
系统采用分布式部署架构,通过多个服务器集群实现高可用和高性能,支持 DevOps 持续交付。
物理部署图
graph TB
subgraph "DMZ区域"
subgraph "负载均衡集群"
LB1[Nginx 主<br/>8核16G]
LB2[Nginx 备<br/>8核16G]
WAF[Web应用防火墙]
end
end
subgraph "应用服务区"
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
subgraph "中间件集群"
MQ1[消息队列1<br/>8核16G]
MQ2[消息队列2<br/>8核16G]
end
end
subgraph "数据服务区"
subgraph "数据库集群"
DB1[达梦数据库主库<br/>32核128G]
DB2[达梦数据库从库<br/>32核128G]
DB3[达梦数据库备库<br/>32核128G]
end
subgraph "缓存集群"
REDIS1[Redis主节点<br/>16核32G]
REDIS2[Redis从节点<br/>16核32G]
REDIS3[Redis哨兵<br/>8核16G]
end
subgraph "文件存储集群"
FILE1[MinIO节点1<br/>8核32G 10TB]
FILE2[MinIO节点2<br/>8核32G 10TB]
FILE3[MinIO节点3<br/>8核32G 10TB]
end
end
subgraph "管理服务区"
MONITOR[监控服务器<br/>Prometheus + Grafana<br/>8核16G]
BACKUP[备份服务器<br/>8核32G 20TB]
JUMP[跳板服务器<br/>4核8G]
LOG[日志服务器<br/>ELK Stack<br/>16核32G]
end
网络连接
graph TB
Internet[互联网] -.->|HTTPS| DMZ[DMZ区域]
DMZ -.->|HTTP/RPC| APP[应用服务区]
APP -.->|数据访问| DATA[数据服务区]
MGMT[管理服务区] -.->|监控管理| APP
MGMT -.->|监控管理| DATA
硬件配置规格
DMZ区域配置
| 设备类型 | 配置规格 | 数量 | 主要作用 |
|---|---|---|---|
| 负载均衡器 | 8核16G,双网卡 | 2台 | 负载均衡、高可用 |
| Web应用防火墙 | 硬件WAF设备 | 1台 | 安全防护 |
应用服务区配置
| 设备类型 | 配置规格 | 数量 | 主要作用 |
|---|---|---|---|
| Web服务器 | 8核32G,1TB SSD | 2台 | 前端应用部署 |
| 应用服务器 | 32核128G,2TB SSD | 3台 | 后端服务部署 |
| 消息队列服务器 | 8核16G,1TB SSD | 2台 | 异步消息处理 |
数据服务区配置
| 设备类型 | 配置规格 | 数量 | 主要作用 |
|---|---|---|---|
| 数据库服务器 | 32核128G,10TB SSD | 3台 | 主从备数据库 |
| 缓存服务器 | 16核32G,1TB SSD | 3台 | Redis集群 |
| 文件存储服务器 | 8核32G,10TB HDD | 3台 | 分布式文件存储 |
管理服务区配置
| 设备类型 | 配置规格 | 数量 | 主要作用 |
|---|---|---|---|
| 监控服务器 | 8核16G,1TB SSD | 1台 | 系统监控 |
| 备份服务器 | 8核32G,20TB HDD | 1台 | 数据备份 |
| 跳板服务器 | 4核8G,500GB SSD | 1台 | 运维管理 |
| 日志服务器 | 16核32G,5TB SSD | 1台 | 日志收集分析 |
达梦数据库分布式架构
系统采用达梦数据库分布式架构,支持高性能、高可用、高扩展性的数据存储服务。
graph TB
subgraph "达梦数据库分布式架构"
subgraph "协调节点"
CN1[协调节点1<br/>Coordinator Node]
CN2[协调节点2<br/>Coordinator Node]
end
subgraph "数据节点组1"
DN1_1[数据节点1-主<br/>Datanode Primary]
DN1_2[数据节点1-备<br/>Datanode Standby]
DN1_1 -.->|主备同步| DN1_2
end
subgraph "数据节点组2"
DN2_1[数据节点2-主<br/>Datanode Primary]
DN2_2[数据节点2-备<br/>Datanode Standby]
DN2_1 -.->|主备同步| DN2_2
end
subgraph "GTM节点"
GTM[全局事务管理器<br/>GTM Master]
GTM_S[GTM备节点<br/>GTM Standby]
GTM -.->|备份| GTM_S
end
end
%% 分布式架构调用关系
CN1 -.->|分片路由<br/>查询协调| DN1_1
CN1 -.->|分片路由<br/>查询协调| DN2_1
CN2 -.->|分片路由<br/>查询协调| DN1_1
CN2 -.->|分片路由<br/>查询协调| DN2_1
CN1 -.->|事务管理<br/>全局一致性| GTM
CN2 -.->|事务管理<br/>全局一致性| GTM
容器化部署架构
系统采用基于Docker的容器化部署,使用Docker Compose进行容器编排,使用Kubernetes进行容器编排和调度,支持DevOps持续交付。
graph TB
subgraph "容器化部署架构"
subgraph "前端服务层"
WEB_CONTAINER[前端容器<br/>Nginx + Vue3]
end
subgraph "后端服务层"
APP_CONTAINER[后端容器<br/>Spring Boot]
end
subgraph "数据存储层"
DB_CONTAINER[数据库容器<br/>达梦数据库]
CACHE_CONTAINER[缓存容器<br/>Redis]
FILE_CONTAINER[文件存储容器<br/>MinIO]
end
subgraph "监控服务层"
MONITOR_CONTAINER[监控容器<br/>Prometheus + Grafana]
LOG_CONTAINER[日志容器<br/>ELK Stack]
end
end
%% 容器服务调用关系
WEB_CONTAINER -.->|API请求<br/>静态资源| APP_CONTAINER
APP_CONTAINER -.->|数据操作| DB_CONTAINER
APP_CONTAINER -.->|缓存访问| CACHE_CONTAINER
APP_CONTAINER -.->|文件存储| FILE_CONTAINER
APP_CONTAINER -.->|监控数据| MONITOR_CONTAINER
APP_CONTAINER -.->|日志数据| LOG_CONTAINER
子系统定义
子系统列表
| 子系统编号 | 子系统名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| SYS-001 | 统一平台 | 单点登录、统一认证(SSO/OAuth2+CAS)、审计与监控、权限、组织、参数、多租户、字典等基础能力 | 自行开发 |
| SYS-002 | 营收业务系统 | 客户管理、抄表开账、营业收费、账务处理、发票管理、催缴管理、统计分析、代收业务、客户服务、业务参数配置 | 自行开发 |
| SYS-003 | 手机抄表APP | 移动端抄表、调用外部AI识别服务、现场作业、数据同步、离线支持 | 自行开发 |
| SYS-004 | 微网厅系统 | 微信公众号平台、账户绑定、在线缴费、信息查询、业务办理、网点服务 | 自行开发 |
| SYS-005 | 工单管理系统 | 统一工单中心、工单流程引擎、监控预警、绩效统计 | 自行开发 |
| SYS-006 | 表务管理系统 | 设备档案、表务全生命周期管理 | 自行开发 |
| SYS-007 | 报装业务系统 | 报装流程管理、合同签订与电子签章、工程管理、档案管理 | 自行开发 |
| SYS-008 | 发票服务子系统 | 统一开票网关、供应商适配器(优先对接航天)、回执处理与存证 | 自行开发 |
| SYS-009 | 支付与银行结算子系统 | 聚合支付/退款、渠道适配(微信/支付宝/银联)、支付通知、银行代扣送盘/回盘、夜间批量代扣、对账处理、加解密签名 | 自行开发 |
| SYS-010 | 消息服务子系统 | 短信/邮件/站内信模板与发送、回执查询、批量推送 | 自行开发 |
子系统间关系
子系统调用关系图
---
title: 子系统调用关系图
---
graph TB
%%{
run: {
"flowchart": {
"curve": "basis"
}
"sequence": {
"curve": "basis"
}
}
}%%
UP[ 【SYS-001 统一平台】<br/>单点登录<br/>统一认证SSO/OAuth2+CAS<br/>审计监控<br/>权限、组织<br/>参数、多租户<br/>字典管理]
REV_CORE[【SYS-002 营收业务子系统-营收核心模块群】<br/>客户管理<br/>抄表开账<br/>营业收费<br/>账务处理<br/>发票催缴<br/>统计代收<br/>业务参数配置]
CS_MOD[【SYS-002 营收业务子系统-客户服务模块群】<br/>账户绑定管理<br/>信息查询服务<br/>在线缴费服务<br/>业务办理服务]
APP[【SYS-003 手机抄表APP】<br/>移动抄表<br/>调用外部AI服务<br/>现场作业<br/>数据同步<br/>离线支持]
WECHAT[【SYS-004 微网厅子系统】<br/>账户绑定管理<br/>信息查询服务<br/>在线缴费服务<br/>业务办理服务]
WO_CENTER[【SYS-005 工单管理子系统】<br/>统一工单中心<br/>创建/派发/处理/验收<br/>监控预警]
METER_SYS[【SYS-006 表务管理子系统】 <br/>设备档案<br/>表务全生命周期管理]
INSTALL_SYS[【SYS-007 报装业务子系统】<br/>报装流程<br/>合同签订与电子签章<br/>工程管理<br/>档案管理]
PAY_SYS[【SYS-009 支付与银行结算子系统】<br/>聚合支付/退款/回调<br/>渠道适配/代扣/对账/加解密]
INVOICE_SYS[【SYS-008 发票服务子系统】<br/>统一开票网关<br/>供应商适配器<br/>回执/存证]
MSG_SYS[【SYS-010 消息服务子系统】<br/>统一短信/邮件/推送<br/>模板与回执]
%% 统一平台权限管理
UP -.->|用户认证/权限| REV_CORE
UP -.->|用户认证/权限| CS_MOD
UP -.->|用户认证/权限| APP
UP -.->|用户认证/权限| WECHAT
UP -.->|用户认证/权限| WO_CENTER
UP -.->|用户认证/权限| METER_SYS
UP -.->|用户认证/权限| INSTALL_SYS
%% 系统间协作
REV_CORE -.->|库存状态/换表结果| METER_SYS
REV_CORE -.->|支付/退款/代扣/对账| PAY_SYS
REV_CORE -.->|立户/工程结果| INSTALL_SYS
REV_CORE -.->|开票申请/作废/红冲| INVOICE_SYS
REV_CORE -.->|业务异常/流程触发| WO_CENTER
CS_MOD -.->|客户申请/服务工单| WO_CENTER
WO_CENTER -.->|换表派发| METER_SYS
WO_CENTER -.->|报装派发| INSTALL_SYS
WO_CENTER -.->|处理结果回填| REV_CORE
WO_CENTER -.->|结果通知| CS_MOD
%% 手机APP与营收业务系统协作关系
APP -.->|抄表数据/收费数据| REV_CORE
APP -.->|现场工单/问题上报| WO_CENTER
WO_CENTER -.->|工单派发/任务分配| APP
REV_CORE -.->|抄表任务/客户信息| APP
%% 微网厅与营收业务系统协作关系
WECHAT -.->|账单查询/在线缴费| REV_CORE
WECHAT -.->|业务申请/服务工单| WO_CENTER
REV_CORE -.->|账单信息/缴费状态| WECHAT
INVOICE_SYS -.->|电子发票链接/推送| WECHAT
MSG_SYS -.->|短信/邮件/推送| WECHAT
REV_CORE -.->|推送| MSG_SYS
WO_CENTER -.->|推送| MSG_SYS
CS_MOD -.->|推送| MSG_SYS
METER_SYS -.->|推送| MSG_SYS
INSTALL_SYS -.->|推送| MSG_SYS
INVOICE_SYS -.->|推送| MSG_SYS
PAY_SYS -.->|推送| MSG_SYS
WO_CENTER -.->|办理进度/结果通知| WECHAT
%% 样式定义
classDef coreSystem fill:#e3f2fd,stroke:#1976d2,stroke-width:4px,color:#000
classDef mobileSystem fill:#e8f5e8,stroke:#388e3c,stroke-width:3px,color:#000
classDef wechatSystem fill:#f3e5f5,stroke:#9c27b0,stroke-width:3px,color:#000
classDef platform fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class REV_CORE,CS_MOD coreSystem
class APP mobileSystem
class WECHAT wechatSystem
class UP platform
class WO_CENTER,METER_SYS,INSTALL_SYS coreSystem
主要接口定义
统一平台对外接口
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-UP-001 | OAuth2认证接口 | 基于OAuth2.0的统一认证服务 | 所有子系统 | HTTP/REST | 客户端凭证、授权类型、作用域 | 访问令牌、刷新令牌、过期时间 |
| IF-UP-002 | 组织架构接口 | 获取部门和员工组织信息 | 营收/工单/表务系统 | HTTP/REST | 组织ID、查询层级、用户权限 | 组织树结构、员工信息、权限范围 |
| IF-UP-003 | 权限验证接口 | 验证用户操作权限和资源访问 | 所有子系统 | HTTP/REST | 用户Token、操作资源、权限类型 | 验证结果、权限详情、有效期限 |
| IF-UP-004 | 数据字典接口 | 提供系统基础数据字典服务 | 所有子系统 | HTTP/REST | 字典类型、字典编码、租户ID | 字典数据、层级关系、多语言支持 |
| IF-UP-005 | 多租户管理接口 | 多租户数据隔离和权限管理 | 所有子系统 | HTTP/REST | 租户ID、操作类型、数据范围 | 租户配置、数据权限、隔离策略 |
营收业务系统对外接口
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-REV-001 | 客户信息查询接口 | 查询客户基本信息和账户状态 | 手机抄表APP/微网厅 | HTTP/REST | 客户编号、姓名、手机号 | 客户详细信息、账户状态、绑定关系 |
| IF-REV-002 | 账单查询接口 | 查询客户账单和欠费信息 | 手机抄表APP/微网厅 | HTTP/REST | 客户编号、账期范围 | 账单详情、欠费金额、缴费历史 |
| IF-REV-003 | 缴费处理接口 | 处理在线缴费业务请求 | 微网厅/客服系统 | HTTP/REST | 订单信息、支付方式、客户信息 | 缴费结果、支付状态、发票信息 |
| IF-REV-004 | 立户接口 | 新客户立户开通服务 | 报装业务系统 | HTTP/REST | 客户资料、水表信息、开户信息 | 立户结果、客户编号、服务状态 |
| IF-REV-005 | 抄表任务接口 | 下发抄表任务和客户信息 | 手机抄表APP | HTTP/REST | 抄表员ID、任务范围、时间计划 | 任务详情、客户清单、抄表要求 |
| IF-REV-006 | 抄表数据上传接口 | 上传抄表数据和现场证据 | 手机抄表APP | HTTP/REST | 抄表数据、图片证据、GPS位置 | 上传结果、数据校验状态、异常处理 |
手机抄表APP对外接口
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-MOBILE-001 | 任务下载接口 | 下载抄表任务与客户信息 | 手机抄表APP | HTTP/REST | 抄表员ID、任务日期范围 | 任务列表、客户信息、水表信息 |
| IF-MOBILE-002 | 抄表数据上传接口 | 上传抄表数据与现场图片 | 手机抄表APP | HTTP/REST | 抄表记录、现场图片、GPS位置 | 上传状态、数据校验结果 |
| IF-MOBILE-003 | 工单接收接口 | 接收工单任务 | 工单管理系统 | HTTP/REST | 工单ID、工单类型、派发信息 | 接收确认、预计处理时间 |
| IF-MOBILE-004 | 工单回填接口 | 回填处理结果与附件 | 手机抄表APP | HTTP/REST | 工单ID、处理结果、现场图片 | 回填状态、审核结果 |
| IF-MOBILE-005 | 离线同步接口 | 离线数据同步 | 手机抄表APP | HTTP/REST | 离线数据包、时间戳 | 同步状态、冲突处理结果 |
微网厅系统对外接口
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-WECHAT-001 | 微信授权登录接口 | 通过微信OAuth2.0实现用户授权登录 | 微网厅系统 | HTTP/REST | 微信授权码、AppID、AppSecret | 用户OpenID、访问令牌、用户基本信息 |
| IF-WECHAT-002 | 微信支付接口 | 调用微信支付完成在线缴费 | 微网厅系统 | HTTP/REST | 订单信息、支付金额、用户OpenID | 预支付交易会话标识、支付结果 |
| IF-WECHAT-005 | 客户信息查询接口 | 查询绑定客户的基本信息 | 微网厅系统 | HTTP/REST | 客户编号/手机号/OpenID | 客户详细信息、绑定状态 |
| IF-WECHAT-006 | 账单信息查询接口 | 查询客户账单和欠费信息 | 微网厅系统 | HTTP/REST | 客户编号、查询月份范围 | 账单明细、欠费金额、阶梯用量 |
| IF-WECHAT-007 | 缴费处理接口 | 处理微信端发起的缴费业务 | 微网厅系统 | HTTP/REST | 客户编号、缴费金额、支付方式 | 缴费订单号、支付状态、发票信息 |
| IF-WECHAT-008 | 业务申请提交接口 | 提交报装、过户等业务申请 | 微网厅系统 | HTTP/REST | 申请类型、客户资料、申请材料 | 申请单号、预审结果、处理时限 |
| IF-WECHAT-009 | 电子发票申请接口 | 申请开具电子发票 | 微网厅系统 | HTTP/REST | 缴费订单号、发票抬头信息 | 电子发票PDF、发票代码和号码 |
| IF-WECHAT-011 | 账户绑定验证接口 | 验证客户身份并绑定微信账户 | 微网厅系统 | HTTP/REST | 客户编号、身份证号、手机号码 | 绑定验证结果、绑定关系ID |
工单管理系统对外接口
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-WO-001 | 工单创建接口 | 创建各类业务工单 | 营收/表务/报装/微网厅/APP | HTTP/REST | 工单类型、客户信息、问题描述、紧急程度 | 工单编号、预计处理时间、派发状态 |
| IF-WO-002 | 工单派发接口 | 向处理人/APP派发任务 | 工单管理系统 | HTTP/REST | 工单ID、处理人员、预期完成时间 | 派发结果、接收确认状态 |
| IF-WO-003 | 工单回填接口 | 回填处理结果与附件 | APP/各业务系统 | HTTP/REST | 工单ID、处理结果、现场图片、完成时间 | 回填状态、审核结果、客户满意度 |
| IF-WO-004 | 工单查询接口 | 查询工单状态和处理轨迹 | 各业务系统/客户端 | HTTP/REST | 工单编号/客户编号、查询条件 | 工单状态、处理进度、历史轨迹 |
表务管理系统对外接口
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-METER-001 | 库存查询接口 | 查询仓库库存状态和预警信息 | 工单/营收/报装系统 | HTTP/REST | 仓库编号、水表型号、库存状态 | 库存明细、预警状态、可用数量 |
| IF-METER-002 | 领用出库接口 | 支持换表/施工水表领用出库 | 工单管理系统 | HTTP/REST | 领用单号、水表型号、领用数量、领用人 | 出库状态、库存余量、领用凭证 |
| IF-METER-003 | 档案查询接口 | 查询水表设备档案信息 | 营收/工单/报装系统 | HTTP/REST | 水表编号、客户编号、查询类型 | 设备档案、安装历史、维修记录 |
报装业务系统对外接口(SYS-007)
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-INST-001 | 报装申请接口 | 提交报装申请信息与材料 | 微网厅/营收系统 | HTTP/REST | 申请人信息、用水地址、申请材料、联系方式 | 申请单号、预审结果、处理时限 |
| IF-INST-002 | 踏勘派工接口 | 现场踏勘任务派发 | 工单管理系统 | HTTP/REST | 报装单号、踏勘要求、预约时间 | 派工结果、踏勘人员、预计完成时间 |
| IF-INST-003 | 签章接口 | 调用CA系统进行电子签章 | CA电子签章系统 | HTTP/REST | 合同文档、签章类型、签章方信息 | 签章状态、签章文档、存证信息 |
| IF-INST-004 | 签章回执接口 | 接收CA系统签章完成回执 | CA电子签章系统 | HTTP/REST | 签章任务ID、签章结果、时间戳 | 接收确认、存档状态 |
| IF-INST-006 | 验收通水接口 | 验收合格并开通供水 | 营收业务系统 | HTTP/REST | 报装单号、验收结果、水表信息 | 开户结果、客户编号、通水状态 |
发票服务子系统对外接口
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-INV-001 | 统一开票接口 | 统一受理电子发票开具请求 | 营收业务系统/微网厅 | HTTP/REST | 开票信息、购买方信息、商品明细、税额 | 发票申请ID、开票状态、预计完成时间 |
| IF-INV-002 | 作废红冲接口 | 发票作废和红字发票处理 | 营收业务系统 | HTTP/REST | 原发票号码、作废/红冲原因、操作类型 | 处理结果、新发票信息、作废状态 |
| IF-INV-003 | 发票查询接口 | 查询发票状态和下载链接 | 营收系统/微网厅/客户端 | HTTP/REST | 发票代码、发票号码、查询类型 | 发票状态、PDF下载链接、发票详情 |
| IF-INV-004 | 回执推送接口 | 接收供应商发票处理回执 | 航天信息/博思等供应商 | HTTP/REST | 回执ID、处理结果、发票文件、时间戳 | 接收确认、存储状态、通知结果 |
支付与银行结算子系统对外接口(SYS-009)
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-PAY-001 | 统一支付下单接口 | 统一处理各渠道支付下单请求 | 营收系统/微网厅 | HTTP/REST | 订单信息、支付方式、支付金额、用户标识 | 预支付订单号、支付参数、二维码 |
| IF-PAY-002 | 统一关单接口 | 订单关闭和撤销处理 | 营收系统/微网厅 | HTTP/REST | 订单号、关闭原因、操作类型 | 关单状态、退款信息、处理结果 |
| IF-PAY-003 | 统一退款接口 | 原路退款和部分退款处理 | 营收系统/微网厅 | HTTP/REST | 原订单号、退款金额、退款原因 | 退款单号、退款状态、预计到账时间 |
| IF-PAY-004 | 支付回调接口 | 接收渠道支付结果回调 | 微信/支付宝/银联 | HTTP/REST | 回调数据、签名、时间戳 | 处理确认、业务更新状态 |
| IF-PAY-005 | 批量代扣送盘接口 | 银行批量代扣文件发送 | 营收业务系统 | HTTP/REST/SFTP | 代扣清单、客户签约信息、扣款金额 | 送盘状态、批次号、预计处理时间 |
| IF-PAY-006 | 批量代扣回盘接口 | 银行代扣结果回盘处理 | 银行系统 | HTTP/REST/SFTP | 回盘文件、处理结果、失败原因 | 解析结果、状态更新、异常处理 |
| IF-PAY-007 | 批量对账文件接口 | 银行对账文件处理分析 | 银行系统/营收系统 | HTTP/REST/SFTP | 对账文件、对账日期、差异规则 | 对账结果、差异明细、调整建议 |
消息服务子系统对外接口(SYS-010)
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-MSG-001 | 短信发送接口 | 发送短信通知消息 | 营收/微网厅/工单系统 | HTTP/REST | 手机号、消息内容、模板ID、发送时间 | 发送状态、消息ID、预计到达时间 |
| IF-MSG-002 | 邮件发送接口 | 发送邮件通知消息 | 营收/工单/报装系统 | HTTP/REST | 邮箱地址、邮件主题、邮件内容、附件 | 发送状态、邮件ID、送达确认 |
| IF-MSG-003 | 站内信接口 | 发送系统站内消息 | 各业务系统 | HTTP/REST | 用户ID、消息标题、消息内容、消息类型 | 发送结果、消息状态、已读状态 |
| IF-MSG-005 | 外部系统对接接口 | 对接OA/智水擎等外部系统 | OA系统/智水擎/水投数科APP | HTTP/REST | 系统标识、消息类型、接收用户、消息内容 | 对接状态、消息分发结果 |
子系统1设计: 统一平台
任务概述
统一平台是整个福建水务营收系统的基础支撑平台,负责为所有子系统提供统一的用户认证、权限管理、组织管理等基础服务。
设计目标:
- 实现单点登录,用户一次认证即可访问所有授权的子系统
- 提供统一的用户和权限管理,确保系统安全性
- 支持多租户模式,满足集团化管理需求
- 提供系统监控和运维支撑功能
功能范围:
- 单点登录:提供统一的登录入口,支持多种认证方式
- 用户管理:管理系统用户的基本信息、状态和权限
- 角色管理:定义和管理系统角色,实现基于角色的权限控制
- 权限管理:细粒度的功能权限和数据权限控制
- 组织管理:管理企业的部门结构和人员归属
- 租户管理:支持多租户模式,实现数据隔离和个性化配置
- 系统监控:实时监控系统运行状态和用户在线情况
设计概述
总体约束
技术约束:
- 基于Spring Security + OAuth2.0+CAS协议实现认证授权
- 采用JWT令牌实现无状态认证
- 支持Redis分布式会话存储
- 遵循RBAC权限控制模型
性能约束:
- 用户认证响应时间≤1秒
- 权限验证响应时间≤500ms
- 支持并发用户数≥200个
- 系统可用性≥99.5%
安全约束:
- 支持密码复杂度策略
- 提供登录安全控制(失败锁定、验证码等)
- 敏感数据加密存储
- 完整的操作审计日志
子系统外部接口
接口设计说明:
统一平台为整个系统提供基础认证、权限、组织、字典等服务能力,采用OAuth2.0+CAS统一认证机制,支持多租户数据隔离和权限管理,为各业务子系统提供标准化的基础服务接口。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-UP-001 | 用户认证接口 | 用户登录认证和JWT令牌生成 | 所有业务子系统 | HTTP/REST | 用户名、密码、机构编号、验证码 | JWT令牌、用户信息、权限范围 |
| IF-UP-002 | 权限验证接口 | 验证用户访问资源权限 | 所有业务子系统 | HTTP/REST | JWT令牌、资源URL、操作类型 | 权限验证结果、资源访问权限 |
| IF-UP-003 | 用户信息接口 | 获取用户基本信息 | 营收/工单/表务系统 | HTTP/REST | 用户ID、查询范围 | 用户详细信息、角色权限 |
| IF-UP-004 | 组织架构接口 | 获取部门和员工组织信息 | 营收/工单/表务系统 | HTTP/REST | 部门ID、查询层级 | 部门信息、员工列表、权限范围 |
| IF-UP-005 | 实时通知接口 | 推送系统通知消息 | 所有业务子系统 | WebSocket | 消息内容、接收用户、消息类型 | 推送结果、送达状态 |
设计方案概述
架构设计:
统一平台采用基于Spring Boot的微服务架构,使用Spring Security + OAuth2.0+CAS协议实现认证授权,Redis存储会话和缓存数据,支持水平扩展。
技术选型:
- 认证授权:Spring Security + OAuth2.0 + CAS协议 + JWT
- 缓存存储:Redis 6.0+(分布式缓存)
- 数据库:达梦数据库 8.0+
- 消息队列:RabbitMQ(异步通知)
- 监控日志:Prometheus + Grafana + ELK
子系统架构设计
统一平台采用分层架构设计,从下至上分为数据层、业务层、服务层和应用层,确保系统的可维护性和可扩展性。
graph TB
subgraph "统一平台架构"
subgraph "应用层"
A1[Web管理界面]
A2[移动端界面]
A3[API网关]
end
subgraph "服务层"
B1[认证服务]
B2[权限服务]
B3[用户服务]
B4[组织服务]
B5[监控服务]
end
subgraph "业务层"
C1[登录业务]
C2[权限业务]
C3[用户管理业务]
C4[组织管理业务]
C5[系统监控业务]
end
subgraph "数据层"
D1[(用户数据库)]
D2[(权限数据库)]
D3[(日志数据库)]
D4[Redis缓存]
end
end
A1 --> B1
A2 --> B1
A3 --> B2
B1 --> C1
B2 --> C2
B3 --> C3
B4 --> C4
B5 --> C5
C1 --> D1
C2 --> D2
C3 --> D1
C4 --> D1
C5 --> D3
C1 --> D4
C2 --> D4
模块定义
模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| UP-001 | 单点登录模块 | 用户认证、授权管理、多种登录方式支持 | 自行开发 |
| UP-002 | 系统管理模块 | 用户、角色、部门、菜单等基础数据管理 | 自行开发 |
| UP-003 | 权限控制模块 | RBAC权限模型、菜单权限、数据权限 | 自行开发 |
| UP-004 | 租户管理模块 | 多租户数据隔离、租户配置管理 | 自行开发 |
| UP-005 | 系统监控模块 | 在线用户监控、系统性能监控、操作日志 | 自行开发 |
模块间关系
权限管理功能群:
权限管理功能群是统一平台的核心,实现了完整的RBAC权限控制模型。
graph TB
subgraph "权限管理功能群"
A[UP-002 系统管理模块-用户管理功能]
B[UP-003 系统管理模块-角色管理功能]
C[UP-003 系统管理模块-菜单管理功能]
D[UP-004 系统管理模块-部门管理功能]
E[UP-005 权限控制模块-权限控制功能]
end
A -->|用户角色关联| B
B -->|角色权限关联| C
A -->|用户部门关联| D
E -->|权限验证| A
E -->|权限验证| B
E -->|权限验证| C
A -.->|数据权限| D
B -.->|功能权限| C
功能群说明:
- 用户管理模块负责用户基本信息维护
- 角色管理模块定义系统角色和权限
- 菜单管理模块配置系统功能菜单
- 部门管理模块维护组织架构
- 权限控制模块实现统一的权限验证
系统监控功能群:
系统监控功能群提供对整个系统运行状态的监控和管理。
graph TB
subgraph "系统监控功能群"
F[在线用户监控]
G[系统性能监控]
H[操作日志管理]
I[系统配置管理]
end
F -->|用户行为| H
G -->|性能数据| H
I -->|配置变更| H
F -.->|实时监控| G
H -.->|日志分析| G
模块描述
UP-001: 单点登录
功能描述:
单点登录模块基于OAuth2.0+CAS协议实现,提供统一的用户认证入口,支持多种登录方式和安全策略。该模块是整个系统安全的第一道防线,确保只有合法用户才能访问系统。
主要功能:
- 用户名密码登录:传统的用户名密码认证方式
- 手机号短信登录:基于短信验证码的快速登录
- 第三方登录:支持微信、支付宝等第三方平台登录
- OAuth2.0单点登录:基于OAuth2.0+CAS协议,一次登录,多系统访问
- 自动登录:支持"记住我"功能
- 安全控制:密码策略、登录限制、验证码等
技术实现:
- 基于JWT令牌的无状态认证
- Redis存储用户会话信息
- Spring Security实现安全控制
- 支持多种加密算法
UP-002: 系统管理
功能描述:
系统管理模块提供系统基础数据的维护功能,包括用户、角色、部门、菜单等核心数据的管理。
主要功能:
- 用户管理:用户信息的增删改查、状态管理、权限分配
- 角色管理:角色定义、权限分配、角色用户关联
- 部门管理:组织架构的维护、层级关系管理
- 菜单管理:系统菜单的配置、权限关联
- 字典管理:系统字典数据的维护
- 参数管理:系统参数的配置和管理
业务规则:
- 用户名全局唯一
- 手机号不能重复
- 超级管理员不能被删除
- 部门删除前需要先移除下属用户
UP-003: 权限控制
功能描述:
权限控制模块基于"主库+租户库"的多数据库架构,实现RBAC(基于角色的访问控制)模型的权限管理。通过统一的权限控制中心与租户独立的权限数据相结合,提供细粒度的功能权限和数据权限控制,同时支持跨租户用户授权的复杂场景。
多库权限架构设计:
graph TB
subgraph "主库(Master Database)"
MP[统一平台权限]
MT[租户管理权限]
MU[跨租户用户关系]
MA[全局审计日志]
end
subgraph "租户库A(Tenant-A Database)"
TA_U[用户表 system_user]
TA_R[角色表 system_role]
TA_UR[用户角色关系 system_user_role]
TA_RM[角色菜单权限 system_role_menu]
TA_D[部门表 system_dept]
end
subgraph "租户库B(Tenant-B Database)"
TB_U[用户表 system_user]
TB_R[角色表 system_role]
TB_UR[用户角色关系 system_user_role]
TB_RM[角色菜单权限 system_role_menu]
TB_D[部门表 system_dept]
end
subgraph "权限控制引擎"
PE[权限验证引擎]
PC[权限缓存层]
PR[权限路由器]
end
MP -.->|统一平台管理| PE
MT -.->|租户权限元数据| PE
MU -.->|跨租户关系| PE
PE -->|权限路由| PR
PR -->|租户A权限| TA_U
PR -->|租户B权限| TB_U
PE --> PC
PC -.->|缓存同步| TA_R
PC -.->|缓存同步| TB_R
主要功能:
-
多库权限统一管理
- 主库权限管理:统一平台功能权限、租户管理权限、系统级别权限
- 租户库权限管理:每个租户独立的用户、角色、权限数据
- 权限数据路由:根据用户所属租户动态路由到对应的租户数据库
- 跨库权限验证:支持跨租户用户的权限验证与切换
-
RBAC权限模型实现
- 功能权限控制:基于菜单和按钮的功能权限控制
- 数据权限控制:基于组织架构的数据权限隔离
- 角色继承体系:支持角色间的权限继承关系
- 动态权限分配:支持运行时动态调整用户权限
-
多租户权限隔离
- 租户级别隔离:每个租户的权限数据完全物理隔离
- 用户多租户授权:用户可在多个租户中拥有不同角色和权限
- 权限继承与覆盖:支持从上级租户继承权限并允许覆盖
- 租户间权限依赖:处理母子公司间的权限依赖关系
-
接口权限验证
- API接口级别权限验证:每个接口请求都进行权限校验
- 租户上下文识别:自动识别当前用户的租户上下文
- 动态数据源切换:根据权限验证结果切换到正确的租户数据库
- 权限异常处理:统一的权限异常处理和降级策略
-
权限缓存管理
- 多级缓存策略:主库+租户库的分层缓存
- 权限数据实时更新:权限变更时的缓存实时同步
- 缓存预热机制:系统启动时预加载热点权限数据
- 缓存失效策略:精确的缓存失效和更新机制
多库数据模型:
主库权限数据结构:
1. 租户与用户关系表(tenant_user_relation)
- 表功能:管理跨租户用户授权关系,记录用户在不同租户中的授权状态
- 核心字段:
- 主键标识:唯一标识每条授权关系
- 租户标识:指向被授权的目标租户
- 用户标识:指向被授权的用户
- 授权类型:区分所有者(owner)、成员(member)、访客(guest)三种类型
- 授权人标识:记录执行授权操作的管理员
- 授权时间:记录授权建立的时间戳
- 过期时间:设置授权的有效期限,支持临时访问
- 状态标识:标记授权关系是否有效,支持动态启用/禁用
2. 全局权限配置表(global_permission)
- 表功能:维护系统级别的权限定义,为各租户提供统一的权限基准
- 核心字段:
- 主键标识:唯一标识每个权限配置
- 权限代码:系统内唯一的权限标识符,如"USER_MANAGE"、"BILL_QUERY"
- 权限名称:面向用户的权限描述,支持多语言
- 权限类型:区分菜单权限(menu)、按钮权限(button)、接口权限(api)
- 父权限标识:构建权限树形结构,支持权限继承
- 排序序号:控制权限在界面上的显示顺序
- 状态标识:标记权限是否启用,支持权限的动态管理
租户库权限数据结构:
1. 用户基础信息表(system_user)
- 表功能:存储租户内部的用户基础信息和账户状态
- 核心字段:
- 主键标识:租户内用户的唯一标识
- 用户账号:登录用户名,在租户内保持唯一性
- 密码哈希:加密存储的用户密码
- 用户昵称:显示名称,提升用户体验
- 部门标识:关联用户所属的组织部门
- 电子邮箱:用户联系邮箱,支持邮件通知
- 手机号码:用户联系电话,支持短信验证
- 用户性别:基础个人信息
- 账户状态:标记用户是否启用、锁定等状态
- 租户编号:明确用户所属的租户,支持数据隔离
2. 角色定义表(system_role)
- 表功能:定义租户内的角色体系,实现权限的集中管理
- 核心字段:
- 主键标识:租户内角色的唯一标识
- 角色名称:角色的显示名称,如"水务管理员"、"收费员"
- 角色代码:系统内部的角色标识符,用于权限验证
- 显示顺序:控制角色在选择列表中的排序
- 数据范围:定义角色的数据访问范围(全部、本部门、仅本人等)
- 角色状态:标记角色是否启用
- 角色类型:区分系统内置角色和自定义角色
- 租户编号:明确角色所属的租户
3. 用户角色关联表(system_user_role)
- 表功能:建立用户与角色的多对多关联关系
- 核心字段:
- 主键标识:唯一标识每个用户-角色关联关系
- 用户标识:关联到具体的用户记录
- 角色标识:关联到具体的角色记录
- 租户编号:确保关联关系在正确的租户范围内
4. 角色菜单权限关联表(system_role_menu)
- 表功能:定义角色具体拥有的菜单和功能权限
- 核心字段:
- 主键标识:唯一标识每个角色-菜单权限关联
- 角色标识:关联到具体的角色记录
- 菜单标识:关联到具体的菜单或功能权限
- 租户编号:确保权限配置在正确的租户范围内
权限验证流程:
flowchart TD
A[用户请求] --> B{用户已登录?}
B -->|否| C[跳转登录页面]
B -->|是| D[解析JWT令牌]
D --> E[获取当前租户上下文]
E --> F{是否跨租户操作?}
F -->|否| G[连接当前租户数据库]
F -->|是| H[验证跨租户授权关系]
H --> I{授权关系有效?}
I -->|否| J[权限拒绝]
I -->|是| K[切换目标租户上下文]
G --> L[查询用户权限]
K --> L
L --> M[权限缓存查询]
M --> N{缓存命中?}
N -->|是| O[返回缓存权限]
N -->|否| P[数据库查询权限]
P --> Q[更新权限缓存]
Q --> O
O --> R[权限验证]
R --> S{权限验证通过?}
S -->|是| T[允许访问]
S -->|否| J
T --> U[记录访问日志]
J --> V[记录拒绝日志]
技术实现:
-
权限验证引擎
- Spring Security + 自定义权限验证器
- 多数据源动态切换(基于租户上下文)
- 权限注解式控制(@PreAuthorize)
- 权限表达式引擎(SpEL)
-
多库数据访问
- MyBatis-Plus多数据源配置
- 动态数据源路由器(基于租户ID)
- 数据源连接池优化
- 读写分离支持
-
权限缓存策略
- Redis分布式缓存
- 权限数据分层缓存(全局+租户)
- 缓存键命名规范(tenant:{tenant_id}:user:{user_id}:permissions)
- 权限变更事件驱动缓存更新
-
跨租户权限处理
- 租户上下文传递(ThreadLocal + RequestFilter)
- 跨租户权限验证链
- 租户切换权限检查
- 权限降级和异常处理
核心业务规则:
- 权限验证优先级:主库权限 > 租户库权限 > 默认权限
- 跨租户访问控制:需要显式授权,禁止越权访问
- 权限缓存TTL:用户权限缓存30分钟,角色权限缓存2小时
- 数据权限范围:支持全部、本部门、本部门及子部门、仅本人
- 权限继承规则:子租户可继承父租户的基础权限,但可以覆盖
UP-004: 租户管理
功能描述:
租户管理模块基于"主库+租户库"的多数据库架构,提供完整的多租户架构支持,实现租户间物理级别的数据隔离、配置管理,以及跨租户用户授权等高级功能。该模块是实现集团化管理的核心基础设施。
多库租户架构设计:
graph TB
subgraph "主库(Master Database)"
MT[租户基础信息 sys_tenant]
MTC[租户配置参数 sys_tenant_config]
MTD[租户数据库映射 sys_tenant_database]
MTU[跨租户用户关系 tenant_user_relation]
MTA[全局审计日志 sys_audit_log]
end
subgraph "租户库A(福州水务)"
TA_USER[租户用户 tenant_user]
TA_DEPT[组织架构 tenant_department]
TA_CONFIG[业务配置 tenant_business_config]
TA_BIZ[业务数据表群]
end
subgraph "租户库B(厦门水务)"
TB_USER[租户用户 tenant_user]
TB_DEPT[组织架构 tenant_department]
TB_CONFIG[业务配置 tenant_business_config]
TB_BIZ[业务数据表群]
end
subgraph "租户管理引擎"
TME[租户管理引擎]
TR[租户路由器]
TCC[跨库事务协调器]
TDM[数据库动态管理器]
end
MT -.->|租户信息管理| TME
MTC -.->|配置参数管理| TME
MTD -.->|数据库映射| TME
MTU -.->|跨租户授权| TME
TME --> TR
TR -->|路由A| TA_USER
TR -->|路由B| TB_USER
TME --> TCC
TCC -.->|分布式事务| TA_BIZ
TCC -.->|分布式事务| TB_BIZ
TME --> TDM
TDM -.->|动态管理| TA_CONFIG
TDM -.->|动态管理| TB_CONFIG
主要功能:
-
租户基础管理
- 租户创建、编辑、删除
- 租户状态管理(启用、禁用、过期)
- 租户基本信息维护
- 租户层级结构管理(支持母公司-子公司模式)
-
多库数据隔离管理
- 主库租户管理:在主库中统一管理所有租户的基础信息、层级关系、配置参数
- 租户专属数据库:为每个租户创建独立的数据库实例,实现物理级别的数据隔离
- 跨库关系管理:在主库中维护跨租户用户授权关系和全局配置信息
- 租户级别缓存隔离:基于租户标识的分布式缓存命名空间隔离
- 文件存储隔离:租户专属的文件存储目录和访问控制
-
跨租户用户授权机制
- 用户多租户绑定:支持一个用户绑定多个租户
- 租户间用户授权:租户管理员可以将其他租户的用户授权到本租户
- 权限继承与隔离:用户在不同租户下可拥有不同的角色和权限
- 租户切换:用户可在已授权的多个租户间自由切换
-
租户配置管理
- 租户级别的业务参数配置
- 租户专属的菜单和功能配置
- 租户品牌定制(Logo、主题色等)
- 租户级别的集成配置
跨租户用户授权业务流程:
graph TD
A[租户A管理员] --> B{选择授权用户}
B --> C[搜索其他租户用户]
C --> D[选择租户B的用户X]
D --> E[配置在租户A中的角色]
E --> H[设置数据权限范围]
H --> I[建立用户X在租户A的权限关系]
I --> J[用户X可访问租户A系统]
J --> K[用户X可在租户A/B间切换]
M[用户X登录] --> N{选择租户}
N --> O[租户A - 角色A权限]
N --> P[租户B - 角色B权限]
多库租户管理数据模型:
主库租户管理数据结构:
1. 租户基础信息表(sys_tenant)
- 表功能:统一管理所有租户的基础信息和层级关系
- 核心字段:
- 主键标识:全系统唯一的租户标识符
- 租户编码:业务层面的租户唯一编码,格式规范化
- 租户名称:面向用户的租户显示名称
- 父租户标识:支持母子公司层级结构
- 租户类型:区分集团总部、分公司、子公司等类型
- 联系信息:租户联系人、电话、邮箱等
- 数据库配置:租户专属数据库的连接配置信息
- 状态标识:租户启用、禁用、过期等状态
- 创建信息:创建时间、创建人等审计信息
2. 租户配置参数表(sys_tenant_config)
- 表功能:管理租户级别的业务参数和系统配置
- 核心字段:
- 主键标识:配置项的唯一标识
- 租户标识:关联的租户信息
- 配置分类:区分业务参数、系统配置、集成配置等
- 配置键名:配置项的标识符
- 配置值:具体的配置内容,支持JSON格式
- 配置描述:配置项的说明信息
- 是否加密:敏感配置的加密标识
- 生效状态:配置是否启用
3. 租户数据库映射表(sys_tenant_database)
- 表功能:管理租户与数据库实例的映射关系
- 核心字段:
- 主键标识:映射关系的唯一标识
- 租户标识:关联的租户信息
- 数据库标识:租户专属数据库的标识符
- 连接配置:数据库连接字符串和参数
- 读写配置:支持读写分离的配置信息
- 容量配置:数据库容量限制和监控阈值
- 备份配置:备份策略和恢复配置
- 状态信息:数据库运行状态和健康检查
租户库业务数据结构:
1. 租户用户信息表(tenant_user)
- 表功能:存储租户内部的用户信息和组织关系
- 核心字段:
- 主键标识:租户内用户的唯一标识
- 全局用户标识:关联主库中的用户信息
- 用户编号:租户内部的用户编号
- 部门标识:用户所属的组织部门
- 职位信息:用户在租户内的职位和级别
- 入职信息:用户在租户的入职时间和状态
- 权限范围:用户在租户内的数据访问范围
- 业务角色:用户在业务流程中的角色定位
2. 租户组织架构表(tenant_department)
- 表功能:管理租户内部的组织架构和部门层级
- 核心字段:
- 主键标识:部门的唯一标识
- 部门编码:租户内部的部门编码
- 部门名称:部门的显示名称
- 父部门标识:构建部门层级结构
- 部门层级:部门在组织架构中的层级深度
- 负责人信息:部门负责人和联系方式
- 业务范围:部门负责的业务领域
- 状态信息:部门的启用状态和变更历史
3. 租户业务配置表(tenant_business_config)
- 表功能:管理租户特定的业务参数和流程配置
- 核心字段:
- 主键标识:配置项的唯一标识
- 业务模块:配置所属的业务模块
- 配置类型:区分费率、流程、规则等配置类型
- 配置内容:具体的业务配置参数
- 生效范围:配置的适用范围和条件
- 生效时间:配置的生效和失效时间
- 审核信息:配置变更的审核记录
跨租户授权核心规则:
-
授权主体规则
- 只有租户管理员或超级管理员可以进行跨租户用户授权
- 被授权用户必须是已存在的系统用户
- 授权操作需要记录完整的审计日志
-
权限隔离规则
- 用户在不同租户下的权限完全独立
- 租户A的管理员无法查看用户在租户B的权限信息
- 跨租户数据访问严格按照数据权限控制
-
会话管理规则
- 用户登录后默认进入主租户(第一个绑定的租户)
- 租户切换需要重新进行权限验证
- 同一用户在不同租户的会话信息独立存储
-
授权生命周期规则
- 支持设置授权有效期
- 到期自动失效,需要重新申请
- 支持授权撤销,立即生效
多库架构技术实现:
1. 主库租户管理引擎
- 租户信息统一管理:主库集中管理所有租户的基础信息、配置参数、层级关系
- 数据库实例管理:动态创建、配置和管理租户专属数据库实例
- 跨库事务协调:分布式事务管理器确保跨租户操作的数据一致性
- 租户路由器:根据用户上下文自动路由到正确的租户数据库
2. 租户数据库动态管理
- 数据库实例创建:基于模板自动为新租户创建独立数据库实例
- Schema同步管理:统一的数据库结构版本管理和升级机制
- 连接池管理:每个租户数据库的独立连接池配置和监控
- 数据迁移工具:支持租户数据的导入、导出和迁移功能
3. 多租户会话管理
- 租户上下文传递:ThreadLocal + Request Header的租户标识传递机制
- 会话状态隔离:Redis分布式缓存的租户命名空间隔离
- 权限缓存分层:主库权限 + 租户权限的两级缓存策略
- 切换状态同步:租户切换时的权限重载和会话状态更新
4. 跨租户授权协调
- 授权关系存储:主库统一存储和管理所有跨租户授权关系
- 权限验证引擎:跨库权限验证和数据访问控制
- 授权流程引擎:支持复杂的多级审批和自动化授权流程
- 审计日志统一:所有跨租户操作的统一审计和监控
多库架构业务规则:
1. 租户管理规则
- 租户编码全局唯一,格式:水务公司简称+年份+3位流水号
- 每个租户必须拥有独立的数据库实例,不允许共享
- 租户创建时自动生成标准的数据库Schema结构
- 租户删除前必须先完成数据备份和迁移确认
2. 数据隔离规则
- 租户数据库之间严格物理隔离,禁止直接跨库访问
- 跨租户数据访问必须通过主库的授权关系验证
- 租户数据库连接池独立配置,避免资源争用
- 敏感数据在租户库中加密存储,密钥独立管理
3. 用户授权规则
- 用户在单个租户下最多可拥有5个角色
- 跨租户授权操作需要双方租户管理员审批
- 一个用户最多可以绑定10个租户
- 用户在不同租户下的身份信息完全独立
- 跨租户授权关系统一在主库中管理和审计
4. 事务协调规则
- 涉及多个租户的操作必须使用分布式事务
- 单租户内的操作在租户库内保证ACID特性
- 跨库操作失败时自动回滚所有相关变更
- 重要业务操作需要在主库记录操作日志
5. 性能管理规则
- 每个租户数据库设置容量上限和性能监控
- 大租户可配置读写分离和分库分表策略
- 租户切换操作限制频率,防止系统资源滥用
- 定期清理过期的授权关系和会话数据
UP-005: 系统监控
功能描述:
系统监控模块提供全面的系统运行状态监控、性能指标收集和运维管理功能。
主要功能:
- 在线用户监控:实时监控在线用户数量、用户行为、异常登录
- 系统性能监控:CPU、内存、磁盘、网络等系统资源监控
- 操作日志管理:用户操作日志记录、查询、分析
- 告警管理:系统异常告警、性能阈值告警
技术实现:
- Micrometer + Prometheus监控指标收集
- ELK Stack日志分析
- Redis存储实时监控数据
- WebSocket实时推送监控信息
子系统2设计: 营收业务系统
任务概述
营收业务系统是整个福建水务营收系统的核心业务系统,负责处理从客户管理到账务处理的完整营收业务流程,整合了原营收系统、表务系统、报装系统、客户服务、微网厅等所有核心业务功能。
设计目标:
- 实现统一的营收业务管理,涵盖水务企业全业务场景
- 提供完整的客户服务体验,从线下到线上的全渠道服务
- 支持表务全生命周期管理,确保设备资产的有效管控
- 实现报装业务流程标准化,提高服务效率和客户满意度
功能范围:
营收业务系统包含两大核心模块群,实现水务企业营收业务闭环:
营收核心模块群
- 客户资料管理:客户档案建立、信息维护、分组管理
- 抄表开账:抄表数据录入、复核确认、自动开账
- 营业收费:柜台收费、移动收费、在线缴费
- 账务处理:账务调整、退款处理、坏账管理
- 发票管理:发票开具、查询、重开、作废
- 催缴管理:欠费统计、催缴通知、停水管理
- 统计分析:多维度数据统计和报表分析
- 代收业务:银行代扣、聚合支付等代收渠道
- 业务配置:业务参数配置
客户服务模块群
- 账户绑定管理:微信/支付宝账户绑定和管理
- 信息查询服务:账单查询、用水历史、缴费记录等
- 在线缴费服务:多渠道在线缴费服务
- 电子发票服务:电子发票开具、查询、推送
- 营业网点服务:网点查询、地图导航、预约服务
- 业务办理服务:各类业务在线申请和办理
核心业务流程: 客户建档 → 抄表录入 → 复核开账 → 营业收费 → 账务处理 → 发票管理 → 催缴管理
设计概述
总体约束
技术约束:
- 基于Spring Boot微服务架构实现
- 采用事务处理确保数据一致性
- 支持分布式锁处理并发访问
- 遵循水务行业财务规范
性能约束:
- 支持10万+客户的业务处理
- 抄表开账处理能力≥5000户/小时
- 收费交易响应时间≤2秒
- 报表生成时间≤30秒
安全约束:
- 财务数据加密存储
- 关键操作需要审批流程
- 完整的操作审计日志
- 支付接口安全认证
子系统外部接口
接口设计说明:
营收业务系统作为核心业务平台,整合客户管理、账务处理、抄表计费、工单管理、报装业务等完整业务流程。系统提供标准化的RESTful接口,支持多租户业务配置,确保水务营收业务的高效运营和数据一致性。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-REV-001 | 客户信息查询接口 | 查询客户基本信息和账户状态 | 手机抄表APP/微网厅/工单系统 | HTTP/REST | 客户编号、姓名、手机号、查询类型 | 客户详细信息、账户状态、绑定关系 |
| IF-REV-002 | 账单查询接口 | 查询客户账单和欠费信息 | 手机抄表APP/微网厅/客服系统 | HTTP/REST | 客户编号、账期范围、查询条件 | 账单详情、欠费金额、缴费历史 |
| IF-REV-003 | 缴费处理接口 | 处理在线缴费业务请求 | 微网厅/客服系统/支付系统 | HTTP/REST | 订单信息、支付方式、客户信息 | 缴费结果、支付状态、发票信息 |
| IF-REV-004 | 立户接口 | 新客户立户开通服务 | 报装业务系统 | HTTP/REST | 客户资料、水表信息、报装单号 | 立户结果、客户编号、开户状态 |
| IF-REV-005 | 抄表任务接口 | 下发抄表任务与客户信息 | 手机抄表APP | HTTP/REST | 抄表员ID、任务范围、抄表周期 | 任务详情、客户信息、水表信息 |
| IF-REV-006 | 抄表数据上传接口 | 接收抄表数据和现场证据 | 手机抄表APP | HTTP/REST | 抄表数据、图片证据、GPS位置 | 上传结果、数据校验、异常处理 |
设计方案概述
架构设计:
营收系统采用领域驱动设计(DDD),按业务领域划分为客户域、抄表域、收费域、账务域等,每个域独立部署,通过事件驱动实现域间协作。
技术选型:
- 业务框架:Spring Boot + MyBatis-Plus
- 工作流引擎:Flowable(处理业务审批流程)
- 分布式事务:Seata(确保数据一致性)
- 消息队列:RabbitMQ(异步处理和事件通知)
- 缓存策略:Redis(热点数据缓存)
子系统架构设计
营收系统采用DDD领域驱动设计,按业务领域进行模块划分,实现高内聚低耦合的架构设计。系统核心分为营收核心模块群和客户服务模块群两大业务板块。
graph TB
subgraph "营收系统整体架构"
subgraph "应用层 - Application Layer"
A1[Web管理界面<br/> 管理端]
A2[移动收费界面<br/> 收费端]
A3[API接口层<br/> 接口网关]
end
subgraph "业务服务层 - Business Service Layer"
subgraph " 营收核心模块群 REV-001~009"
subgraph "核心业务流程"
B1[REV-001<br/>客户管理服务<br/> 客户基础]
B2[REV-002<br/>抄表开账服务<br/> 业务源头]
B3[REV-003<br/>营业收费服务<br/> 收入核心]
B4[REV-004<br/>账务处理服务<br/> 财务核心]
end
subgraph "辅助业务支撑"
B5[REV-005<br/>发票管理服务<br/> 票据管理]
B6[REV-006<br/>催缴管理服务<br/> 收益保障]
B7[REV-007<br/>统计分析服务<br/> 决策支持]
B8[REV-008<br/>代收业务服务<br/> 渠道扩展]
B9[REV-009<br/>业务参数配置<br/> 基础配置]
end
end
%% 工单管理模块群已独立为SYS-005
end
subgraph "领域层 - Domain Layer"
subgraph "营收核心业务领域"
C1[客户领域<br/>Customer Domain<br/>]
C2[抄表领域<br/>Meter Reading Domain<br/>]
C3[收费领域<br/>Billing Domain<br/>]
C4[账务领域<br/>Accounting Domain<br/>]
C5[发票领域<br/>Invoice Domain<br/>]
end
subgraph "工单管理业务领域"
C6[工单统一领域<br/>WorkOrder Domain<br/>]
C61[工单流程引擎<br/>Workflow Engine<br/>]
C62[工单状态管理<br/>Status Management<br/>]
C63[工单智能监控<br/>Monitor & Alert<br/>🔔]
end
end
subgraph "基础设施层 - Infrastructure Layer"
D1[(达梦数据库集群<br/>DM Database Cluster<br/> 核心存储)]
D2[Redis分布式缓存<br/>Distributed Cache<br/> 高速缓存]
D3[MinIO文件存储<br/>Distributed File Storage<br/> 文件管理]
D4[RabbitMQ消息队列<br/>Message Queue<br/> 异步通信]
D5[支付与结算服务(SYS-009)<br/>Payment & Settlement<br/> 聚合支付/代扣/对账]
D6[Flowable工作流引擎<br/>Workflow Engine<br/> 流程引擎]
end
subgraph "外部系统集成"
E1[手机抄表APP<br/> 移动端]
E2[微网厅系统<br/> 线上服务]
E3[表务系统<br/> 设备管理]
end
end
%% 应用层到业务服务层连接
A1 --> B1
A1 --> B9
A2 --> B3
A3 --> B8
A3 --> B9
%% 营收核心模块群内部业务流程
B1 -->|客户数据| B2
B2 -->|账单数据| B3
B3 -->|收费数据| B4
B4 -->|财务数据| B5
B1 -.->|客户信息| B6
B3 -.->|收费统计| B7
B8 -.->|代收数据| B3
%% 工单管理模块群已独立为SYS-005
%% 业务服务层到领域层映射
B1 --> C1
B2 --> C2
B3 --> C3
B4 --> C4
B5 --> C5
B6 --> C1
B7 --> C3
B8 --> C3
%% 工单领域移至SYS-005
%% 领域层到基础设施层
C1 --> D1
C2 --> D1
C3 --> D1
C4 --> D1
C5 --> D3
C6 --> D4
C61 --> D6
C62 --> D2
C63 --> D4
B8 --> D5
%% 外部系统集成(工单流转由SYS-005承担)
%% 样式定义
classDef coreModuleGroup fill:#e3f2fd,stroke:#1976d2,stroke-width:4px,color:#000
classDef workorderModuleGroup fill:#fce4ec,stroke:#c2185b,stroke-width:4px,color:#000
classDef coreModule fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
classDef workorderModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef coreDomain fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
classDef workorderDomain fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef infrastructure fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px
classDef external fill:#e0f2f1,stroke:#00695c,stroke-width:2px
%% 应用样式
class B1,B2,B3,B4,B5,B6,B7,B8,B9 coreModule
class B9,B91,B92,B93,B94 workorderModule
class C1,C2,C3,C4,C5 coreDomain
class C6,C61,C62,C63 workorderDomain
class D1,D2,D3,D4,D5,D6 infrastructure
class E1,E2,E3 external
模块定义
模块列表
营收系统的模块按业务性质分为两大模块群:
营收核心模块群
核心营收业务模块,实现从客户管理到收费账务的完整业务链条:
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| REV-001 | 客户资料管理 | 客户档案管理、客户分组、信息变更 | 自行开发 |
| REV-002 | 抄表开账 | 抄表录入、复核开账、异常处理 | 自行开发 |
| REV-003 | 营业收费 | 柜台收费、移动收费、在线缴费 | 自行开发 |
| REV-004 | 账务处理 | 账务调整、退款处理、坏账管理 | 自行开发 |
| REV-005 | 发票管理 | 发票开具、查询管理、电子发票 | 自行开发 |
| REV-006 | 催缴管理 | 欠费催缴、短信通知、停水管理 | 自行开发 |
| REV-007 | 统计分析 | 多维度数据统计和报表分析功能 | 自行开发 |
| REV-008 | 代收业务 | 集成银行渠道与聚合支付等代收方式 | 自行开发 |
| REV-009 | 业务参数配置 | 业务参数配置、参数管理 | 自行开发 |
客户服务模块群
为外部渠道(微网厅、第三方平台)和内部渠道(客服前台)提供服务接入能力:
- 账户绑定管理、信息查询服务、在线缴费服务、电子发票服务、营业网点服务、业务办理服务
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| CS-001 | 账户绑定管理 | 微信/支付宝账户绑定与解绑、多账户管理 | 自行开发 |
| CS-002 | 信息查询服务 | 账单查询、用水历史、缴费记录、停水公告 | 自行开发 |
| CS-003 | 在线缴费服务 | 快捷缴费、充值、代缴、结果查询(经SYS-009) | 自行开发 |
| CS-004 | 电子发票服务 | 发票查看、推送、下载(经SYS-008) | 自行开发 |
| CS-005 | 营业网点服务 | 网点查询、地图导航、预约(可选) | 自行开发 |
| CS-006 | 业务办理服务 | 联系方式/开票方式变更、更名过户、低保、换表、自主抄表等 | 自行开发 |
| CS-007 | 柜面扫码支付 | 柜台二维码收款、票据关联、结果回传(经SYS-009) | 自行开发 |
模块间关系
营收系统的两大模块群既相对独立又紧密协作,形成完整的业务生态系统。
营收核心模块群关系
营收核心业务群实现了从客户管理到账务处理的完整营收业务流程:
graph TD
subgraph "营收核心业务流程"
A[REV-001<br/>客户资料管理<br/>] --> B[REV-002<br/>抄表开账<br/>]
B --> C[REV-003<br/>营业收费<br/>]
C --> D[REV-004<br/>账务处理<br/>]
D --> E[REV-005<br/>发票管理<br/>]
subgraph "辅助业务流程"
F[REV-006<br/>催缴管理<br/>]
G[REV-007<br/>统计分析<br/>]
H[REV-008<br/>代收业务<br/>]
I[REV-009<br/>业务参数配置<br/>]
end
end
%% 主流程依赖关系
A -.->|客户信息| C
A -.->|客户信息| E
A -.->|客户信息| F
B -.->|账单信息| D
B -.->|欠费信息| F
C -.->|收费记录| E
C -.->|收费数据| G
D -.->|账务数据| G
H -.->|代收记录| C
I -.->|水价/参数| B
I -.->|打印/税率/参数| E
I -.->|收费参数| C
%% 样式
classDef coreFlow fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef supportFlow fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
class A,B,C,D,E coreFlow
class F,G,H,I supportFlow
客户服务模块群关系
客户服务模块群为对外提供服务的核心入口,构建以客户为中心的一体化服务体系:
graph TD
subgraph "客户服务核心流程"
A[CS-001<br/>账户绑定管理<br/>] --> B[CS-002<br/>信息查询服务<br/>]
B --> C[CS-003<br/>在线缴费服务<br/>]
C --> D[CS-004<br/>电子发票服务<br/>]
subgraph "辅助服务模块"
E[CS-005<br/>营业网点服务<br/>]
F[CS-006<br/>业务办理服务<br/>]
G[CS-007<br/>柜面扫码支付<br/>]
end
end
%% 服务调用关系
A -.->|绑定验证| F
B -.->|查询支撑| C
B -.->|查询支撑| D
B -.->|查询支撑| F
C -.->|支付回调| D
G -.->|线下支付| D
E -.->|网点导航| F
F -.->|办理结果| B
%% 外部系统依赖
C -.->|支付处理| SYS009[SYS-009<br/>支付系统]
D -.->|发票开具| SYS008[SYS-008<br/>发票系统]
G -.->|扫码支付| SYS009
F -.->|工单流转| SYS005[SYS-005<br/>工单系统]
%% 样式
classDef coreService fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
classDef supportService fill:#fff3e0,stroke:#ff9800,stroke-width:2px
classDef externalSys fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px
class A,B,C,D coreService
class E,F,G supportService
class SYS008,SYS009,SYS005 externalSys
服务流程说明:
- 账户绑定:客户通过微信/支付宝绑定水表账户,建立服务关系
- 信息查询:基于绑定关系,提供账单、用水历史、缴费记录等查询服务
- 在线缴费:支持快捷缴费、充值、代缴等多种缴费方式
- 电子发票:缴费完成后自动开具电子发票,支持查看下载
- 业务办理:提供各类业务在线申请,如更名过户、换表申请等
- 营业网点:提供网点查询、地图导航、预约服务等
- 柜面扫码:线下柜台扫码支付,与线上服务形成闭环
模块群间协作关系
两大模块群通过标准化接口进行协作,实现业务闭环:
graph TB
subgraph "营收核心模块群"
CORE[REV-001~009<br/>客户/抄表/收费/账务/发票/催缴/统计/代收/参数]
end
subgraph "客户服务模块群"
CS[CS-001~007<br/>账户绑定/查询/在线缴费/电子发票/网点/办理/柜面扫码]
end
subgraph "工单管理系统"
WO[SYS-005<br/>统一工单中心]
end
CORE <-->|标准API| CS
CORE -.->|业务异常/流程触发| WO
CS -.->|客户申请/服务工单| WO
classDef coreGroup fill:#e1f5fe,stroke:#0277bd,stroke-width:3px
classDef csGroup fill:#e8f5e8,stroke:#388e3c,stroke-width:3px
classDef workorderGroup fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px
class CORE coreGroup
class CS csGroup
class WO workorderGroup
模块描述
REV-001: 客户资料管理
功能概述:
客户资料管理模块是营收系统的基础,负责维护所有用水客户的基本信息和档案资料。
核心功能:
-
客户档案管理
- 新客户建档
- 客户信息修改
- 客户状态管理(正常、停用、注销)
- 客户变更历史记录
-
客户分组管理
- 按区域分组
- 按用水性质分组
- 按客户类型分组
- 自定义分组
-
客户查询服务
- 多条件组合查询
- 模糊查询支持
- 高级筛选功能
子功能扩展:
- 客户分组:客户分组管理、分组内客户管理
- 集收管理:集收号管理、集收号内客户管理
- 立户建档:手工建档、批量立户
- 定额管理:定额共享(主/子客户)、定额核定
- 批量修改:手工修改、模板导入修改
- 客户业务办理:换表、加抄、更名、过户、低保、调价、停用/启用、注销/恢复
- 电子档案:高拍仪/附件采集与档案管理
业务规则:
- 客户编号系统自动生成,格式:部门代码+年份+6位流水号
- 身份证号码必须通过实名认证
- 客户状态变更需要审批流程
- 存在未结清账务的客户不允许注销
REV-002: 抄表开账
功能概述:
抄表开账模块实现了从抄表数据录入到自动生成账单的完整业务流程。
核心功能:
-
抄表数据录入
- 手工抄表录入
- PDA抄表导入
- 远传抄表自动采集
- Excel批量导入
-
抄表数据复核
- 数据有效性验证
- 异常用水量检测
- 人工复核确认
- 批量复核处理
-
自动开账处理
- 水量计算
- 费用计算
- 账单生成
- 开账确认
子功能扩展:
- 册本信息:册本查询、册本详情
- 册本调整:新卡入册、册内序号调整、册本间调整
- 抄表录入:按册本/按抄表员、导入抄表数据
- 复核开账:复核开账查询/汇总、复核与开账
- 开账记录:历史查询与导出
业务流程图:
flowchart TD
A[开始抄表] --> B{选择抄表方式}
B -->|手工抄表| C[手工录入抄表数据]
B -->|PDA抄表| D[PDA现场抄表]
B -->|远传抄表| E[自动采集抄表数据]
B -->|批量导入| F[Excel批量导入]
C --> G[系统数据验证]
D --> H[PDA数据上传]
E --> I[远传数据同步]
F --> J[批量数据校验]
H --> G
I --> G
J --> G
G --> K{数据是否有效?}
K -->|否| L[数据修正]
L --> G
K -->|是| M[抄表数据复核]
M --> N{复核是否通过?}
N -->|否| O[标记异常数据]
O --> P[人工处理异常]
P --> M
N -->|是| Q[计算用水量]
Q --> R[计算水费金额]
R --> S[生成账单]
S --> T[开账确认]
T --> U[结束]
业务规则:
- 抄表状态:正常、故障、估读、拒抄、空房等
- 用水量计算:本期读数 - 上期读数
- 异常判断:超过历史平均值2倍为量高,低于0.5倍为量低
- 复核规则:抄表人员不能复核自己录入的数据
REV-003: 营业收费
功能概述:
营业收费模块提供完整的收费业务流程管理,支持多种收费方式和支付渠道。
核心功能:
-
柜台收费
- 实时收费处理
- 多种支付方式
- 收费凭证打印
- 柜台结账管理
-
在线缴费
- 微信支付接入
- 支付宝支付接入
- 银行卡支付
- 代扣代缴服务
-
批量收费
- 批量缴费处理
- 预付款管理
- 托收业务
- 自动扣费
子功能扩展:
- 特殊开账:特殊情形直接开账及查询导出
- 柜台结账:结账、红冲、打印凭证
- 红冲记录:红冲查询与导出
业务流程图:
flowchart TD
A[客户缴费] --> B{选择缴费方式}
B -->|柜台缴费| C[到营业厅缴费]
B -->|在线缴费| D[选择在线支付]
B -->|银行代扣| E[银行自动扣费]
C --> F[查询客户账单]
D --> G[微信/支付宝支付]
E --> H[银行代扣处理]
F --> I{账单是否正确?}
I -->|否| J[账单调整]
J --> F
I -->|是| K[选择支付方式]
K --> L{支付方式}
L -->|现金| M[现金收费]
L -->|POS机| N[刷卡收费]
L -->|扫码| O[扫码支付]
G --> P[渠道支付确认]
H --> Q[银行扣费确认]
M --> R[收费确认]
N --> R
O --> R
P --> R
Q --> R
R --> S[更新账单状态]
S --> T[生成收费凭证]
T --> U{需要发票?}
U -->|是| V[开具发票]
U -->|否| W[完成收费]
V --> W
W --> X[结束]
业务规则:
- 收费员每日下班前必须进行"柜台结账"
- 结账前,收错的账款可以执行"红冲"操作
- 支持现金、POS机、微信、支付宝等多种支付方式
- 在线支付需要实时确认支付结果
- 银行代扣需要客户事先签约授权
REV-004: 账务处理
功能概述:
负责处理各类复杂的账务调整、退款、坏账等业务,确保账务的准确性和合规性。
核心功能:
- 未销账调整: 对未支付账单进行调整。
- 分账调整: 将一笔总账单拆分为多笔子账单。
- 预付款退款: 处理客户预付款的退还流程。
- 呆坏账处理: 对长期无法收回的欠款进行核销。
REV-005: 发票管理
功能概述:
提供全面的发票管理功能,支持电子发票和纸质发票的开具、查询、作废等操作。
核心功能:
- 发票开具: 根据缴费记录为客户开具发票。
- 发票查询与管理: 查询发票历史,处理红冲、作废等请求。
- 电子发票集成: 对接第三方电子发票平台,实现自动开具和推送。
实现说明:
- 本模块通过调用
SYS-008 发票服务子系统的"统一开票接口/作废红冲接口/发票查询接口"实现具体的开票与回执处理,营收系统不直接对接供应商。
REV-006: 催缴管理
功能概述:
对逾期未缴费的客户进行有效的催缴管理,提高水费回收率。
核心功能:
- 欠费分析: 统计和分析欠费客户数据。
- 催缴通知: 通过短信、电话、通知单等多种方式进行催缴。
- 停复水管理: 对恶意欠费用户执行停水,缴清后进行复水操作。
REV-007: 统计分析
功能概述:
提供多维度的数据统计和报表分析功能,为管理决策提供数据支持。
核心功能:
- 售水统计: 按日、月、年统计售水量、售水收入等。
- 收费统计: 统计不同收费渠道、方式的收费情况。
- 欠费分析: 多维度分析欠费构成和趋势。
- 自定义报表: 提供灵活的报表自定义工具。
- 报表查询: 业务分类报表树、统计条件与结果导出。
- 欠费查询: 按账期/金额等条件查询客户欠费。
- 缴费记录: 缴费记录检索与导出。
REV-008: 代收业务
功能概述:
集成银行渠道与聚合支付等代收方式,方便客户缴费。
核心功能:
- 银行代扣: 与银行签订协议,实现自动批量扣费。
- 聚合支付: 集成微信、支付宝等支付网关。
- 对账管理: 定期与各渠道进行账务核对。
- 实时收费: 渠道实时缴费处理(对接SYS-009)。
- 银行托收: 托收文件处理与状态跟踪(对接SYS-009)。
REV-009: 业务参数配置
功能概述:
集中管理与营收业务相关的参数与基础资料,提升配置一致性与运营效率。
核心功能:
- 水表参数:水表厂家、型号、口径、量程
- 地址参数:营业站点、所属小区
- 价格体系:水价归属、费用组成、水价调整、调价历史、优惠方案、用水方案
- 基本配置:打印维护、自定义列、日志管理、水司账户、发票税率、银行信息、抄表状态、词语信息、参数配置
客户服务模块群描述
CS-001: 账户绑定管理
功能概述:
账户绑定管理模块是客户服务体系的入口,负责处理客户与第三方平台账户的绑定关系管理,为后续的信息查询、在线缴费等服务奠定基础。
核心功能:
-
账户绑定流程
- 微信/支付宝授权登录
- 客户编号/户名/手机号搜索验证
- 账户信息确认与绑定
- 绑定状态维护与管理
-
多账户管理
- 支持一个用户绑定多个水务账户
- 主账户设置与切换
- 账户别名设置
- 绑定账户列表管理
-
解绑与重绑
- 账户解绑流程
- 解绑权限控制
- 重新绑定验证
- 解绑日志记录
技术实现:
- 基于OAuth2.0协议实现第三方授权
- Redis缓存绑定关系提升查询性能
- 数据加密存储保护客户隐私
CS-002: 信息查询服务
功能概述:
信息查询服务模块为客户提供全方位的信息查询功能,包括账单查询、用水历史、缴费记录等,是客户服务的核心模块之一。
核心功能:
-
账单查询服务
- 当前账单查询
- 历史账单查询
- 账单详情展示
- 欠费账单提醒
-
用水信息查询
- 用水量历史统计
- 用水趋势分析
- 抄表记录查询
- 异常用水提醒
-
缴费信息查询
- 缴费记录查询
- 缴费方式统计
- 发票信息查询
- 退费记录查询
-
公告信息服务
- 停水公告查看
- 水价调整通知
- 服务公告推送
- 用水指南
技术实现:
- 分页查询优化大数据量处理
- 数据缓存策略提升响应速度
- 接口聚合减少客户端调用
CS-003: 在线缴费服务
功能概述:
在线缴费服务模块提供便捷的线上缴费功能,支持多种支付方式,与SYS-009支付系统深度集成,确保支付的安全性和可靠性。
核心功能:
-
快捷缴费
- 一键缴费当前账单
- 批量缴费多个账单
- 预设金额快速充值
- 自动扣费设置
-
多样化缴费方式
- 微信支付
- 支付宝支付
- 银联在线支付
- 银行代扣缴费
-
代缴服务
- 代他人缴费
- 批量代缴管理
- 代缴权限控制
- 代缴记录跟踪
-
缴费管理
- 缴费结果查询
- 缴费凭证生成
- 退费申请处理
- 缴费异常处理
技术实现:
- 与SYS-009支付系统标准化对接
- 订单状态实时同步机制
- 支付安全策略与风控
CS-004: 电子发票服务
功能概述:
电子发票服务模块与SYS-008发票系统集成,为客户提供电子发票的查看、下载、推送等服务,满足客户对发票的个性化需求。
核心功能:
-
发票查看服务
- 发票列表查询
- 发票详情展示
- 发票状态跟踪
- 发票验真服务
-
发票推送服务
- 邮箱推送发票
- 微信推送发票
- 短信通知发票
- 实时推送状态
-
发票下载服务
- PDF格式下载
- 批量打包下载
- 二维码扫描下载
- 下载记录管理
-
发票管理
- 开票信息维护
- 发票抬头管理
- 特殊发票申请
- 发票重开申请
技术实现:
- 与SYS-008发票系统API对接
- 文件流处理与下载优化
- 发票防伪与验真机制
CS-005: 营业网点服务
功能概述:
营业网点服务模块为客户提供营业网点相关的信息服务,包括网点查询、地图导航、预约服务等,提升客户线下服务体验。
核心功能:
-
网点信息查询
- 就近网点查询
- 网点详细信息
- 营业时间查询
- 服务项目介绍
-
地图导航服务
- 地图位置展示
- 导航路线规划
- 距离时间计算
- 交通方式推荐
-
网点预约服务
- 业务预约申请
- 预约时间管理
- 预约状态跟踪
- 预约取消重约
-
网点评价反馈
- 服务评价提交
- 意见建议反馈
- 投诉建议处理
- 满意度调查
技术实现:
- 地理位置服务集成
- 地图API调用优化
- 预约队列管理机制
CS-006: 业务办理服务
功能概述:
业务办理服务模块为客户提供各类水务业务的在线申请和办理功能,与SYS-005工单系统协作实现业务流程的数字化处理。
核心功能:
-
基础业务办理
- 联系方式变更
- 开票信息变更
- 用水性质变更
- 账户信息修改
-
高级业务办理
- 更名过户申请
- 水表换表申请
- 低保减免申请
- 自主抄表申请
-
办理流程管理
- 申请表单填写
- 附件资料上传
- 申请进度跟踪
- 办理结果通知
-
业务咨询服务
- 办理条件查询
- 办理流程指导
- 所需材料清单
- 在线客服咨询
技术实现:
- 与SYS-005工单系统流程集成
- 动态表单引擎支持
- 文件上传与存储管理
CS-007: 柜面扫码支付
功能概述:
柜面扫码支付模块为营业厅提供便捷的扫码收款功能,与SYS-009支付系统集成,实现线下支付的数字化处理。
核心功能:
-
扫码支付流程
- 收费二维码生成
- 扫码支付处理
- 支付结果确认
- 票据关联打印
-
收款管理
- 收款金额确认
- 收款方式选择
- 收款状态跟踪
- 收款异常处理
-
票据关联
- 缴费凭证生成
- 发票自动开具
- 收据打印输出
- 票据存档管理
-
结果回传
- 支付状态同步
- 账务数据回传
- 营业员确认
- 客户通知发送
技术实现:
- 与SYS-009支付系统深度集成
- 二维码动态生成与管理
- POS机硬件设备对接
子系统3设计: 手机抄表APP
任务概述
手机抄表APP为抄表员、外勤人员提供移动作业工具,支持离线操作,通过调用外部摄像表AI系统实现抄表读数自动识别,提升现场工作效率。
设计目标:
- 实现移动化抄表作业,提高工作效率
- 支持离线作业,确保在无网络环境下正常工作
- 构建完整的工单闭环处理流程
- 提供直观友好的移动端用户体验
功能范围:
- 登录认证:机构编号、用户名密码认证、自动登录
- 首页搜索:多维度搜索、最近搜索记录、抄表任务
- 采集任务管理:任务列表管理、批量下载、单户采集
- 现场上报:问题上报(由SYS-005工单系统统一受理与派发)
- 个人设置:个人信息管理、系统设置维护
核心业务流程: 任务下载 → 现场抄表 → 问题上报 → 工单处理 → 数据上传 → 结果同步
设计概述
总体约束
技术约束:
- 基于Spring Boot微服务架构
- 采用条码/二维码技术进行水表标识
- 支持RFID技术的水表管理
- 遵循水表行业标准和规范
性能约束:
- 支持100万+水表档案管理
- 库存操作响应时间≤1秒
- 支持并发库存操作≥50个
- 盘点效率≥1000个/小时
安全约束:
- 水表资产数据加密存储
- 关键操作审批流程
- 完整的操作审计日志
- 防止水表资产丢失
子系统外部接口
接口设计说明:
手机抄表APP系统作为移动端现场作业工具,需要与营收业务系统、工单管理系统保持数据同步。所有接口均采用HTTP/REST协议,支持离线缓存和在线同步模式,确保现场作业的连续性和数据一致性。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-MOBILE-001 | 任务下载接口 | 下载抄表任务与客户信息 | 手机抄表APP | HTTP/REST | 抄表员ID、任务日期范围 | 任务列表、客户信息、水表信息 |
| IF-MOBILE-002 | 抄表数据上传接口 | 上传抄表数据与现场图片 | 手机抄表APP | HTTP/REST | 抄表记录、现场图片、GPS位置 | 上传状态、数据校验结果 |
| IF-MOBILE-003 | 工单接收接口 | 接收工单任务 | 工单管理系统 | HTTP/REST | 工单ID、工单类型、派发信息 | 接收确认、预计处理时间 |
| IF-MOBILE-004 | 工单回填接口 | 回填处理结果与附件 | 手机抄表APP | HTTP/REST | 工单ID、处理结果、现场图片 | 回填状态、审核结果 |
| IF-MOBILE-005 | 离线同步接口 | 离线数据同步 | 手机抄表APP | HTTP/REST | 离线数据包、时间戳 | 同步状态、冲突处理结果 |
设计方案概述
架构设计:
端云协同架构,APP端提供离线能力(本地缓存与任务包),在线时通过增量同步接口与服务端完成任务下载、数据上传与工单回填,确保弱网环境可用。
关键技术:
- 本地缓存与数据加密存储、断点续传
- 条码/二维码识别,拍照取证
- 任务包增量同步与冲突处理
子系统架构设计
手机抄表APP采用原生移动应用架构,支持Android平台部署。系统采用端云协同模式,APP端具备强大的离线工作能力,通过本地存储任务数据和抄表记录,支持弱网环境下的连续作业。
graph TB
subgraph "手机抄表APP"
Login[登录认证]
Home[首页/搜索]
Task[采集任务]
Report[现场上报]
Sync[数据同步]
Settings[个人与设置]
end
subgraph "服务端"
AUTH[统一平台]
REV[营收业务系统]
WO[工单管理系统]
end
Login --> AUTH
Home --> REV
Task --> REV
Report --> WO
Sync <--> REV
WO -.-> Task
模块定义
模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| MOBILE-001 | 登录认证 | 机构编号、用户名/密码、自动登录、令牌管理 | 自行开发 |
| MOBILE-002 | 首页搜索 | 多维度搜索、最近记录、任务快捷入口 | 自行开发 |
| MOBILE-003 | 采集任务管理 | 任务列表、批量下载、单户采集、调用外部AI识别、读数校验 | 自行开发 |
| MOBILE-004 | 现场上报 | 问题上报、拍照取证、定位信息、异常标记 | 自行开发 |
| MOBILE-005 | 个人与设置 | 个人资料、偏好设置、缓存管理、安全退出 | 自行开发 |
| MOBILE-006 | 数据同步 | 任务包增量同步、离线数据包上传、冲突处理 | 自行开发 |
模块间关系
graph TD
subgraph "手机抄表APP模块关系"
A[MOBILE-001<br/>登录认证]
B[MOBILE-002<br/>首页搜索]
C[MOBILE-003<br/>采集任务管理]
D[MOBILE-004<br/>现场上报]
E[MOBILE-005<br/>个人与设置]
F[MOBILE-006<br/>数据同步]
end
subgraph "外部系统"
AI[摄像表AI系统<br/>(外部服务)]
end
A -->|认证通过| C
B -->|搜索定位| C
C -.->|API调用| AI
AI -.->|识别结果| C
C -->|任务数据| F
D -->|上报数据| F
E -.->|配置同步| F
F -->|数据上传| UP[统一平台]
F -->|任务下载| CS[营收业务系统]
%% 样式定义
classDef coreModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef syncModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef externalModule fill:#fff3e0,stroke:#e65100,stroke-width:2px,stroke-dasharray: 5 5
class A,B,C,D coreModule
class E,F syncModule
class AI externalModule
模块描述
MOBILE-001: 登录认证
- 机构编号+用户名/密码登录
- 自动登录选项
- 登录问题客服支持
MOBILE-002: 首页搜索
- 户号/户名/地址/钢印号/手机号搜索
- 最近搜索记录展示
- 抄表任务列表
- 搜索结果实时展示
MOBILE-003: 采集任务管理
- 任务列表与批量下载
- 单户采集详情页
- 定位/NFC/扫码三种采集方式
- 上一户/下一户导航
MOBILE-004: 现场上报
- 换表工单处理
- 复水工单确认
- 稽查任务管理
- 问题上报功能
- 图片/视频附件上传
MOBILE-005: 个人与设置
- 个人信息查看与修改
- 密码修改与退出登录
- 日志上传与清理缓存
- 异常水量预警设置
- 数据库备份
MOBILE-006: 数据同步
- 增量任务同步
- 离线包上传
- 断点续传
- 冲突解决
子系统4设计: 微网厅系统
任务概述
微网厅系统(SYS-004)基于微信公众号平台开发,为客户提供便民的自助服务平台。系统支持账户绑定、账单查询、在线缴费、电子发票、营业网点查询和各类业务办理等功能。通过微信生态为用户提供7×24小时不间断的自助服务,显著提升客户服务体验。
设计概述
总体约束
技术约束:
- 基于微信公众号开发框架
- 遵循微信开发规范和接口限制
- 采用响应式设计,适配不同移动设备
- 支持微信支付集成
安全约束:
- 严格的用户身份验证机制
- 敏感数据加密传输和存储
- 符合微信平台安全规范
- 防范常见Web安全威胁
业务约束:
- 必须与营收业务系统实时数据同步
- 支持多账户绑定管理
- 提供完整的业务流程闭环
子系统外部接口
接口设计说明:
微网厅系统基于微信公众号平台,为用户提供便捷的水务服务。系统与微信平台、营收业务系统、发票服务、支付系统等多个外部系统进行集成,支持账户绑定、在线查询、移动缴费、电子发票、业务申请等全流程服务。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-WECHAT-001 | 微信授权登录接口 | 通过微信OAuth2.0实现用户授权登录 | 微网厅系统 | HTTP/REST | 微信授权码、AppID、AppSecret | 用户OpenID、访问令牌、用户基本信息 |
| IF-WECHAT-002 | 微信支付接口 | 调用微信支付完成在线缴费 | 微网厅系统 | HTTP/REST | 订单信息、支付金额、用户OpenID | 预支付交易会话标识、支付结果 |
| IF-WECHAT-003 | 微信模板消息接口 | 推送缴费成功、账单提醒等消息 | 消息服务系统 | HTTP/REST | 模板ID、用户OpenID、消息数据 | 消息推送状态、消息ID |
| IF-WECHAT-004 | 微信JS-SDK接口 | 调用微信JS-SDK实现前端功能 | 微网厅前端 | HTTP/REST | 页面URL、时间戳、随机字符串 | JS-SDK配置信息、签名 |
| IF-WECHAT-005 | 客户信息查询接口 | 查询绑定客户的基本信息 | 微网厅系统 | HTTP/REST | 客户编号/手机号/OpenID | 客户详细信息、绑定状态 |
| IF-WECHAT-006 | 账单信息查询接口 | 查询客户账单和欠费信息 | 微网厅系统 | HTTP/REST | 客户编号、查询月份范围 | 账单明细、欠费金额、阶梯用量 |
| IF-WECHAT-007 | 缴费处理接口 | 处理微信端发起的缴费业务 | 微网厅系统 | HTTP/REST | 客户编号、缴费金额、支付方式 | 缴费订单号、支付状态、发票信息 |
| IF-WECHAT-008 | 业务申请提交接口 | 提交报装、过户等业务申请 | 微网厅系统 | HTTP/REST | 申请类型、客户资料、申请材料 | 申请单号、预审结果、处理时限 |
| IF-WECHAT-009 | 电子发票申请接口 | 申请开具电子发票 | 微网厅系统 | HTTP/REST | 缴费订单号、发票抬头信息 | 电子发票PDF、发票代码和号码 |
| IF-WECHAT-010 | 营业网点查询接口 | 查询就近营业网点信息 | 微网厅系统 | HTTP/REST | 地理位置坐标、搜索半径 | 网点列表、营业时间、联系方式 |
| IF-WECHAT-011 | 账户绑定验证接口 | 验证客户身份并绑定微信账户 | 微网厅系统 | HTTP/REST | 客户编号、身份证号、手机号码 | 绑定验证结果、绑定关系ID |
| IF-WECHAT-012 | 用水历史查询接口 | 查询客户用水历史记录 | 微网厅系统 | HTTP/REST | 客户编号、查询时间段 | 用水量明细、趋势分析数据 |
设计方案概述
采用微信公众号H5页面开发模式,前端使用响应式Web技术,后端基于Spring Boot微服务架构。通过微信OAuth2.0实现用户授权,通过唯一标识实现账户绑定,确保数据安全和用户体验。
子系统架构设计
微网厅系统基于微信公众号生态,采用前后端分离架构。前端采用Vue.js框架开发响应式H5页面,适配微信浏览器环境;后端采用Spring Boot微服务架构,通过API Gateway统一接口管理。
graph TB
subgraph "微信平台"
WeChat[微信公众号]
WeMsg[微信消息]
end
subgraph "微网厅系统"
Frontend[前端H5页面]
Backend[后端服务]
Cache[缓存层]
end
subgraph "营收业务系统"
Customer[客户管理]
Billing[账务处理]
Payment[收费管理]
Service[客户服务]
end
WeChat --> Frontend
Frontend --> Backend
Backend --> Cache
Backend --> Customer
Backend --> Billing
Backend --> Payment
Backend --> Service
Backend -.->|支付调用| PAY_SYS[支付与结算(SYS-009)]
Backend --> WeMsg
模块定义
模块列表
| 模块编号 | 模块名称 | 功能描述 | 开发方式 |
|---|---|---|---|
| WECHAT-001 | 账户绑定管理 | 微信授权、账户绑定与解绑、多账户管理 | 自行开发 |
| WECHAT-002 | 信息查询服务 | 账单查询、用水历史、缴费记录、停水公告 | 自行开发 |
| WECHAT-003 | 在线缴费服务 | 快捷缴费、充值服务、多种支付方式 | 自行开发 |
| WECHAT-004 | 电子发票服务 | 发票查看、发票推送、电子发票管理 | 自行开发 |
| WECHAT-005 | 营业网点服务 | 网点查询、地图导航、距离计算 | 自行开发 |
| WECHAT-006 | 业务办理服务 | 联系方式变更、开票方式变更、更名业务、过户业务、一户多人口申请、水价变更、低保申请、换表申请、自主抄表 | 自行开发 |
| WECHAT-007 | 账户流水 | 账户历史缴费流水查询与导出 | 自行开发 |
| WECHAT-008 | 账号与机构管理 | 切换机构、添加/解绑客户、设置默认客户、客户详情 | 自行开发 |
模块间关系
graph TD
subgraph "微网厅系统模块关系"
A[WECHAT-001<br/>账户绑定管理]
B[WECHAT-002<br/>信息查询服务]
C[WECHAT-003<br/>在线缴费服务]
D[WECHAT-004<br/>电子发票服务]
E[WECHAT-005<br/>营业网点服务]
F[WECHAT-006<br/>业务办理服务]
G[WECHAT-007<br/>账户流水]
H[WECHAT-008<br/>账号与机构管理]
end
A -->|身份验证| B
A -->|授权支付| C
A -->|授权开票| D
A -->|位置服务| E
A -->|业务授权| F
A -->|流水授权| G
A -->|账号管理| H
B -.->|查询后开票| D
C -.->|支付后开票| D
F -.->|业务查询| B
F -.->|业务缴费| C
%% 样式定义
classDef coreService fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef supportService fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef bindingModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class A bindingModule
class B,C,D,F coreService
class E,G,H supportService
模块描述
WECHAT-001: 账户绑定管理
- 微信授权与快捷登录
- 手机号自动绑定
- 客户编号手工绑定
- 多客户绑定管理
- 默认客户设置
WECHAT-002: 信息查询服务
- 首页基本信息展示
- 客户详细信息查看
- 历史账单查询(近12个月)
- 用水分析曲线图
- 客户切换功能
WECHAT-003: 在线缴费服务
- 快捷缴费功能
- 充值缴费服务
- 微信支付集成
- 缴费确认页面
- 缴费结果通知
WECHAT-004: 电子发票服务
- 电子发票查看
- 发票邮箱推送
- 发票图片保存
- 发票开具申请
WECHAT-005: 营业网点服务
- 营业网点列表展示
- 地图模式展示
- 距离排序显示
- 网点详细信息
WECHAT-006: 业务办理服务
- 联系方式变更
- 开票方式变更
- 更名业务
- 过户业务
- 一户多人口申请
- 水价变更
- 低保申请
- 换表申请
- 自主抄表
- 附件上传(最多9张)
- 业务进度查询
WECHAT-007: 账户流水
- 历史缴费流水查询
- 缴费汇总情况
- 流水详细信息展示
WECHAT-008: 账号与机构管理
- 用水机构切换
- 添加绑定客户
- 解除绑定客户
- 设置默认客户
- 查看客户详情
业务办理流程:
flowchart TD
Start([用户发起业务申请]) --> Select[选择业务类型]
Select --> Fill[填写申请信息]
Fill --> Upload[上传相关材料]
Upload --> Submit[提交申请]
Submit --> Review[系统审核]
Review --> Approve{审核结果}
Approve -->|通过| Process[业务处理]
Approve -->|退回| Modify[修改申请]
Modify --> Submit
Process --> Complete[办理完成]
Complete --> Notify[结果通知]
Notify --> End([结束])
子系统5设计: 工单管理系统
任务概述
工单管理系统(SYS-005)负责全业务工单统一受理、创建、派发、处理、验收与归档,覆盖营收、表务、报装、客户服务等场景,提供统一流程引擎与监控预警能力。
设计概述
总体约束
- 流程统一:所有工单遵循统一的生命周期与态状态机
- 实时可观测:状态监控、超时预警、绩效统计
- 可扩展:支持新增工单类型与流程编排
子系统外部接口
工单管理系统作为统一的工单处理平台,接收来自营收、表务、报装、微网厅、APP等各业务系统的工单需求,实现工单全生命周期管理。系统提供标准化的工单接口,支持多种工单类型的创建、派发、处理、跟踪全流程管理。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-WO-001 | 工单创建接口 | 创建各类业务工单 | 营收/表务/报装/微网厅/APP | HTTP/REST | 工单类型、客户信息、问题描述、紧急程度 | 工单编号、预计处理时间、派发状态 |
| IF-WO-002 | 工单派发接口 | 向处理人/APP派发任务 | 工单管理系统 | HTTP/REST | 工单ID、处理人员、预期完成时间 | 派发结果、接收确认状态 |
| IF-WO-003 | 工单回填接口 | 回填处理结果与附件 | APP/各业务系统 | HTTP/REST | 工单ID、处理结果、现场图片、完成时间 | 回填状态、审核结果、客户满意度 |
| IF-WO-004 | 工单查询接口 | 查询工单状态和处理轨迹 | 各业务系统/客户端 | HTTP/REST | 工单编号/客户编号、查询条件 | 工单状态、处理进度、历史轨迹 |
| IF-WO-005 | 工单统计接口 | 工单处理绩效统计分析 | 管理后台 | HTTP/REST | 统计维度、时间范围、部门筛选 | 统计报表、效率分析、排名数据 |
| IF-WO-006 | 工单预警接口 | 超时工单监控预警 | 监控系统 | HTTP/REST | 预警规则、时间阈值 | 预警工单列表、通知配置 |
设计方案概述
架构采用"工单中心 + 流程编排 + 监控预警 + 绩效统计"的分层设计,提供统一API网关对接各业务系统,并通过可配置流程实现多类型工单的快速上线。
子系统架构设计
工单管理系统采用微服务分层架构,通过统一工单中心集中管理各类业务工单,配置化流程引擎支持不同工单类型的个性化流转,实时监控预警确保服务质量,绩效统计提供数据分析支撑。
graph TB
subgraph "工单管理系统"
WO_CENTER[统一工单中心]
FLOW[流程引擎]
MON[监控预警]
STAT[绩效统计]
end
subgraph "协作系统"
REV[营收业务系统]
METER[表务管理系统]
INSTALL[报装业务系统]
APP[手机抄表APP]
WECHAT[微网厅]
end
REV -.->|业务异常/申请| WO_CENTER
METER -.->|换表申请| WO_CENTER
INSTALL -.->|报装派单| WO_CENTER
WECHAT -.->|客户服务申请| WO_CENTER
APP -.->|问题上报/结果回填| WO_CENTER
WO_CENTER -.-> FLOW
WO_CENTER -.-> MON
WO_CENTER -.-> STAT
WO_CENTER -.->|派发任务| APP
模块定义
模块列表
| 模块编号 | 模块名称 | 功能描述 | 开发方式 |
|---|---|---|---|
| WORK-001 | 工单中心 | 统一受理、路由、分派、跟踪 | 自行开发 |
| WORK-002 | 流程引擎 | 节点编排、条件路由、并行网关 | 自行开发 |
| WORK-003 | 监控预警 | 超时/积压/异常预警、看板 | 自行开发 |
| WORK-004 | 绩效统计 | 人员/环节时长、SLA达成率 | 自行开发 |
模块间关系
graph TD
subgraph "工单管理系统模块关系"
A[WORK-001<br/>工单中心]
B[WORK-002<br/>流程引擎]
C[WORK-003<br/>监控预警]
D[WORK-004<br/>绩效统计]
end
A -->|流程调度| B
A -->|状态监控| C
A -->|数据统计| D
B -.->|流程状态| C
C -.->|监控数据| D
%% 样式定义
classDef coreModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef processModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef monitorModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class A coreModule
class B processModule
class C,D monitorModule
模块描述
WORK-001: 工单中心
- 统一工单入口与受理管理
- 工单分类与优先级策略配置
- 智能路由与自动分派机制
- 工单全生命周期状态跟踪
WORK-002: 流程引擎
- 可视化流程编排与配置
- 条件路由与并行互斥网关
- 子流程支持与流程嵌套
- 回退重审与流程回滚机制
WORK-003: 监控预警
- 实时工单状态看板展示
- 超时积压智能预警
- 异常工单自动拦截识别
- 多渠道预警通知推送
WORK-004: 绩效统计
- 处理人员时长统计分析
- 各环节效率达成率统计
- SLA达成率考核指标
- 绩效报表自动生成导出
子系统6设计: 表务管理系统
任务概述
表务管理系统(SYS-006)聚焦设备档案和表务全生命周期管理,面向换表等业务提供资源保障。
设计概述
总体约束
- 数据规范化:设备参数标准化,避免冗余与不一致
- 状态可追溯:设备全生命周期状态流转与变更留痕
- 库存实时性:库存数据实时同步,支持多仓库管理
子系统外部接口
表务管理系统负责水表资产的全生命周期管理,包括基础参数配置、仓库库存管理、设备档案管理。系统与工单管理、营收业务等系统协作,支持水表领用、更换、维修、报废等全流程作业,确保水表资产的准确管理和有效利用。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-METER-001 | 库存查询接口 | 查询仓库库存状态和预警信息 | 工单/营收/报装系统 | HTTP/REST | 仓库编号、水表型号、库存状态 | 库存明细、预警状态、可用数量 |
| IF-METER-002 | 领用出库接口 | 支持换表/施工水表领用出库 | 工单管理系统 | HTTP/REST | 领用单号、水表型号、领用数量、领用人 | 出库状态、库存余量、领用凭证 |
| IF-METER-003 | 档案查询接口 | 查询水表设备档案信息 | 营收/工单/报装系统 | HTTP/REST | 水表编号、客户编号、查询类型 | 设备档案、安装历史、维修记录 |
| IF-METER-004 | 设备入库接口 | 新水表采购入库登记 | 采购管理系统 | HTTP/REST | 水表信息、入库数量、供应商信息 | 入库结果、库存更新状态 |
| IF-METER-005 | 资产调拨接口 | 仓库间水表调拨转移 | 表务管理系统 | HTTP/REST | 调出仓库、调入仓库、调拨清单 | 调拨状态、库存变更结果 |
| IF-METER-006 | 盘点核实接口 | 定期盘点和库存核实 | 表务管理系统 | HTTP/REST | 盘点计划、盘点范围、盘点人员 | 盘点结果、差异分析、调整建议 |
设计方案概述
以"基础参数-仓库库存-设备档案"三层模型实现资产全生命周期管理;通过与工单系统联动完成领用/回填闭环,支持库存预警与追溯。
子系统架构设计
表务管理系统采用分层数据架构,通过基础参数管理建立水表标准规范,通过仓库库存管理实现设备资源调配,通过设备档案管理实现全生命周期跟踪。系统与工单管理系统深度集成,形成"需求-领用-安装-回收"的完整闭环。 周转率、维修频次等统计分析
graph TB
subgraph "表务管理系统"
BASE[基础参数]
WH[仓库与库存]
DOC[设备档案]
end
WO[工单系统] -.->|领用/回填| WH
REV[营收系统] -.->|档案/库存状态| DOC
模块定义
模块列表
| 模块编号 | 模块名称 | 功能描述 | 开发方式 |
|---|---|---|---|
| METER-001 | 表务基础管理 | 厂家/型号/口径/量程等基础参数 | 自行开发 |
| METER-002 | 仓库与库存管理 | 入库/出库/盘点/调拨/预警 | 自行开发 |
| METER-003 | 设备档案管理 | 档案建档/状态管理/追溯 | 自行开发 |
模块间关系
graph TD
subgraph "表务管理系统模块关系"
A[METER-001<br/>表务基础管理]
B[METER-002<br/>仓库与库存管理]
C[METER-003<br/>设备档案管理]
end
A -->|基础参数| B
B -->|库存状态| C
C -.->|规格验证| A
%% 样式定义
classDef baseModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef warehouseModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef docModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class A baseModule
class B warehouseModule
class C docModule
模块描述
METER-001: 表务基础管理
- 厂家型号口径量程等基础参数标准化
- 检定周期与技术规范管理
- 设备分类与属性字典维护
- 基础参数验证与规范校验
METER-002: 仓库与库存管理
- 入库出库盘点调拨全流程管理
- 库存预警与安全库存监控
- 与工单系统联动领用回填
- 多仓库统一管理与库存同步
METER-003: 设备档案管理
- 唯一设备电子档案建立
- 设备全生命周期状态流转
- 批次管理与质检记录追溯
- 档案查询与历史轨迹记录
子系统7设计: 报装业务系统
任务概述
报装业务系统(SYS-007)覆盖从申请、踏勘、设计、施工到验收通水的全流程,支持调用泛微进行合同签订和电子签章,并与工单系统协作完成现场派工与过程留痕。
设计概述
设计方案概述
- 采用阶段性里程碑管控(申请-踏勘-施工-验收-通水),以工单驱动现场作业,形成资料全流程留痕与竣工归档。
- 资料签章对接:与外部CA电子签章系统对接,完成报装申请材料、施工/验收文书的签署、验章与存证,签章回执异步回传。
子系统外部接口
报装业务系统负责新用户报装全流程管理,从申请受理到通水验收的全生命周期业务处理。系统与微网厅、营收系统、工单管理、表务管理、CA电子签章等外部系统协作,实现报装业务的规范化、数字化管理和全流程追溯。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-INST-001 | 报装申请接口 | 提交报装申请信息与材料 | 微网厅/营收系统 | HTTP/REST | 申请人信息、用水地址、申请材料、联系方式 | 申请单号、预审结果、处理时限 |
| IF-INST-002 | 踏勘派工接口 | 现场踏勘任务派发 | 工单管理系统 | HTTP/REST | 报装单号、踏勘要求、预约时间 | 派工结果、踏勘人员、预计完成时间 |
| IF-INST-003 | 签章接口 | 调用CA系统进行电子签章 | CA电子签章系统 | HTTP/REST | 合同文档、签章类型、签章方信息 | 签章状态、签章文档、存证信息 |
| IF-INST-004 | 签章回执接口 | 接收CA系统签章完成回执 | CA电子签章系统 | HTTP/REST | 签章任务ID、签章结果、时间戳 | 接收确认、存档状态 |
| IF-INST-005 | 施工派工接口 | 安装施工任务派发 | 工单管理系统 | HTTP/REST | 报装单号、施工方案、材料清单 | 派工状态、施工队伍、开工时间 |
| IF-INST-006 | 验收通水接口 | 验收合格并开通供水 | 营收业务系统 | HTTP/REST | 报装单号、验收结果、水表信息 | 开户结果、客户编号、通水状态 |
| IF-INST-007 | 档案归档接口 | 竣工档案归档管理 | 档案管理系统 | HTTP/REST | 报装单号、竣工资料、验收文档 | 归档状态、档案编号、存储位置 |
子系统架构设计
报装业务系统采用阶段式流程架构,将复杂的报装业务分解为申请受理、现场踏勘、施工管理、验收通水四个核心阶段,每个阶段具有明确的输入输出和验收标准。系统与CA电子签章系统深度集成,实现合同文档的电子化签署和存证。
graph TB
subgraph "报装业务系统"
APPLY[申请受理]
SURVEY[现场踏勘]
BUILD[施工管理]
ACCEPT[验收通水]
ARCH[资料归档]
end
WECHAT[微网厅] -.->|报装申请| APPLY
APPLY -.-> SURVEY -.-> BUILD -.-> ACCEPT -.-> ARCH
INST_WO[工单系统] -.->|派工/回填| SURVEY
INST_WO -.->|派工/回填| BUILD
CA[CA电子签章]
ARCH -.->|签章/验章/存证| CA
模块定义
模块列表
| 模块编号 | 模块名称 | 功能描述 | 开发方式 |
|---|---|---|---|
| INST-001 | 报装流程管理 | 端到端阶段流转,里程碑控制 | 自行开发 |
| INST-002 | 工程管理 | 进度/资源/质量/安全管理 | 自行开发 |
| INST-003 | 档案管理 | 资料归档、过程留痕、竣工档案 | 自行开发 |
模块间关系
graph TD
subgraph "报装业务系统模块关系"
A[INST-001<br/>报装流程管理]
B[INST-002<br/>工程管理]
C[INST-003<br/>档案管理]
end
A -->|流程驱动| B
B -->|工程资料| C
C -.->|档案反馈| A
%% 样式定义
classDef flowModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef projectModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef archiveModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class A flowModule
class B projectModule
class C archiveModule
模块描述
INST-001: 报装流程管理
功能概述:
报装流程管理模块负责端到端的报装业务流程控制,涵盖从申请受理到资料归档的完整生命周期管理。
核心功能:
-
申请受理
- 申请类型识别(单位/个人、新建户表/总表/旧城改造)
- 工程信息录入(工程名称、地址、经办人信息)
- 资料上传管理(身份证、营业执照、房产证等)
- 工程编号自动生成
- 申请暂存与提交控制
-
踏勘管理
- 现场勘查任务分派
- 勘查结果录入(用水性质、水表口径、数量、预算总价)
- 用户信息批量录入
- 设计图纸管理
- 勘查意见与审核
-
审批流转
- 多级审批流程控制
- 审批意见记录
- 流程回退机制
- 审批状态跟踪
-
合同与缴费
- OA系统合同审批对接
- 分批缴费支持
- 收据打印管理
- 合同签订确认
INST-002: 工程管理
功能概述:
工程管理模块负责报装工程的施工全过程管理,包括派工、安装、验收等关键环节的控制与监督。
核心功能:
-
工程派工
- 施工部门选择与派遣
- 派工任务生成
- 施工人员分配
- 与SYS-005工单系统协作
-
工程安装
- 仓库领表管理(与表务系统对接)
- 现场安装信息录入
- 水表信息关联(条形码、钢印号、厂家、型号)
- 施工过程记录(施工负责人、时间、描述)
- 安装质量控制
-
工程验收
- 联合竣工验收管理
- 验收人员分配(抄表员、工程部门)
- 验收结果录入(合格/不合格)
- 验收情况详细记录
- 表号等关键信息确认
-
进度监控
- 工程进度实时跟踪
- 关键节点里程碑控制
- 延期预警与通知
- 施工安全管理
INST-003: 档案管理
功能概述:
档案管理模块负责报装业务全过程的资料归档、电子签章和竣工档案管理,确保业务合规性和可追溯性。
核心功能:
-
资料归档
- 报装申请资料电子化存储
- 踏勘设计图纸归档
- 施工安装记录归档
- 验收文档归档
- 合同资料归档
-
电子签章
- CA电子签章系统对接
- 申请材料电子签署
- 施工验收文书签章
- 签章验证与存证
- 签章回执异步处理
-
竣工档案
- 竣工资料整理
- 档案完整性检查
- 移交确认管理
- 与营收系统立户对接
- 档案查询与检索
-
材料审核
- 报装材料核对
- 资料完整性验证
- 审核意见记录
- 补充资料管理
子系统8设计: 发票服务子系统
任务概述
发票服务子系统(SYS-008)定位为"基础服务层"的统一开票能力中心,通过统一开票网关与供应商适配器屏蔽不同厂商差异,当前优先对接"航天信息",预留"博思"等供应商接入能力。
设计概述
总体约束
- 统一入口:提供统一的开票、作废/红冲、查询能力
- 供应商无关:采用适配器模式屏蔽供应商差异
- 合规可靠:签章/存证、回执落库、审计留痕
设计方案概述
- 架构采用"统一开票网关 + 供应商适配器 + 回执处理/存证"的三层模型;对上通过REST接口供营收业务与微网厅调用,对下通过供应商SDK/HTTP对接航天(现阶段)与其他供应商。
子系统外部接口
发票服务子系统作为基础服务层的统一开票能力中心,为上游业务系统提供标准化的发票服务。系统采用适配器模式,支持多供应商接入,当前优先对接航天信息,预留博思等其他供应商接入能力,确保发票业务的合规性和可扩展性。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-INV-001 | 统一开票接口 | 统一受理电子发票开具请求 | 营收业务系统/微网厅 | HTTP/REST | 开票信息、购买方信息、商品明细、税额 | 发票申请ID、开票状态、预计完成时间 |
| IF-INV-002 | 作废红冲接口 | 发票作废和红字发票处理 | 营收业务系统 | HTTP/REST | 原发票号码、作废/红冲原因、操作类型 | 处理结果、新发票信息、作废状态 |
| IF-INV-003 | 发票查询接口 | 查询发票状态和下载链接 | 营收系统/微网厅/客户端 | HTTP/REST | 发票代码、发票号码、查询类型 | 发票状态、PDF下载链接、发票详情 |
| IF-INV-004 | 回执推送接口 | 接收供应商发票处理回执 | 航天信息/博思等供应商 | HTTP/REST | 回执ID、处理结果、发票文件、时间戳 | 接收确认、存储状态、通知结果 |
| IF-INV-005 | 供应商切换接口 | 供应商服务切换和负载均衡 | 发票服务网关 | HTTP/REST | 供应商标识、切换原因、备用方案 | 切换状态、新供应商信息、影响评估 |
| IF-INV-006 | 存证签章接口 | 发票电子存证和数字签章 | 存证签章模块 | HTTP/REST | 发票文件、签章类型、存证要求 | 存证凭证、签章状态、法律效力确认 |
子系统架构设计
发票服务子系统采用统一网关和适配器模式架构,通过统一开票网关屏蔽不同供应商的接口差异,供应商适配器实现具体厂商的协议转换,回执处理模块确保业务闭环,存证签章模块保障发票的法律效力。
graph TB
subgraph "发票服务子系统"
GW[统一开票网关]
ADP[供应商适配器]
RCPT[回执处理]
EVID[存证与签章]
end
subgraph "上游系统"
REV[营收业务系统]
WECHAT[微网厅]
end
subgraph "供应商"
HT[航天信息]
BOS[博思/预留]
end
REV -.->|INV-001/002/003| GW
WECHAT -.->|发票查询/下载| GW
GW --> ADP --> HT
ADP -.-> BOS
HT -.-> RCPT --> EVID
模块定义
模块列表
| 模块编号 | 模块名称 | 功能描述 | 开发方式 |
|---|---|---|---|
| INV-001 | 统一开票网关 | 统一鉴权、参数校验、基础路由 | 自行开发 |
| INV-002 | 供应商适配器 | 航天/博思等供应商协议适配、签名加验签 | 自行开发 |
| INV-003 | 回执处理 | 回执解析、状态机、失败重试、告警通知 | 自行开发 |
| INV-004 | 存证与签章 | 发票PDF/JSON存证、签章与链接生成、合规审计 | 自行开发 |
模块间关系
graph TD
subgraph "发票服务子系统模块关系"
A[INV-001<br/>统一开票网关]
B[INV-002<br/>供应商适配器]
C[INV-003<br/>回执处理]
D[INV-004<br/>存证与签章]
end
A -->|请求路由| B
B -->|供应商回调| C
C -->|状态更新| D
C -.->|状态回馈| A
%% 样式定义
classDef gatewayModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef adapterModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef processModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class A gatewayModule
class B adapterModule
class C,D processModule
模块描述
INV-001: 统一开票网关
- 统一入口鉴权与参数校验
- 开票请求幂等控制
- 基础路由与负载分发
- 供应商简单选择
INV-002: 供应商适配器
- 航天信息SDK/HTTP对接
- 字段映射与签名验签
- 错误码标准化转换
- 博思等供应商扩展预留
INV-003: 回执处理
- 开票状态回填处理
- 失败重试(指数退避策略)
- 超时监控与告警
- 微网厅消息联动通知
INV-004: 存证与签章
- 发票PDF存储管理
- 票根JSON数据保存
- 数字签章与下载链接
- 审计日志与合规留痕
子系统9设计: 支付与银行结算子系统
任务概述
支付与银行结算子系统(SYS-009)统一承载聚合支付/退款、渠道适配(微信/支付宝/银联聚合)、支付回调验签入账,以及银行代扣(送盘/回盘)、支持夜间进行批量代扣、对账文件处理与安全加解密/签名,向上对营收/微网厅等系统提供标准化支付与结算能力。
设计概述
总体约束
- 多渠道聚合:统一接入微信/支付宝/银联聚合
- 统一结算:批量代扣送回盘、批量对账文件处理、差异对齐
- 安全合规:签名/验签、加解密、回调防重放、幂等
- 高可用:基础重试补偿机制
设计方案概述
- 采用"统一支付与结算网关 + 渠道/银行适配器 + 回调处理 + 对账处理 + 加解密/签名"的分层;对上REST接口,对下渠道SDK/HTTP与银行HTTP/SFTP对接。
子系统外部接口(SYS-009)
支付与银行结算子系统作为统一的支付能力中心,为上游业务系统提供聚合支付、银行代扣、退款处理、对账管理等全方位的支付结算服务。系统与微信支付、支付宝、银联聚合及各大银行系统对接,提供安全可靠的支付解决方案。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-PAY-001 | 统一支付下单接口 | 统一处理各渠道支付下单请求 | 营收系统/微网厅 | HTTP/REST | 订单信息、支付方式、支付金额、用户标识 | 预支付订单号、支付参数、二维码 |
| IF-PAY-002 | 统一关单接口 | 订单关闭和撤销处理 | 营收系统/微网厅 | HTTP/REST | 订单号、关闭原因、操作类型 | 关单状态、退款信息、处理结果 |
| IF-PAY-003 | 统一退款接口 | 原路退款和部分退款处理 | 营收系统/微网厅 | HTTP/REST | 原订单号、退款金额、退款原因 | 退款单号、退款状态、预计到账时间 |
| IF-PAY-004 | 支付回调接口 | 接收渠道支付结果回调 | 微信/支付宝/银联 | HTTP/REST | 回调数据、签名、时间戳 | 处理确认、业务更新状态 |
| IF-PAY-005 | 批量代扣送盘接口 | 银行批量代扣文件发送 | 营收业务系统 | HTTP/REST/SFTP | 代扣清单、客户签约信息、扣款金额 | 送盘状态、批次号、预计处理时间 |
| IF-PAY-006 | 批量代扣回盘接口 | 银行代扣结果回盘处理 | 银行系统 | HTTP/REST/SFTP | 回盘文件、处理结果、失败原因 | 解析结果、状态更新、异常处理 |
| IF-PAY-007 | 批量对账文件接口 | 银行对账文件处理分析 | 银行系统/营收系统 | HTTP/REST/SFTP | 对账文件、对账日期、差异规则 | 对账结果、差异明细、调整建议 |
| IF-PAY-008 | 加解密签名接口 | 支付数据安全处理 | 内部模块调用 | HTTP/REST | 待处理数据、加密类型、签名算法 | 处理结果、安全凭证、验证状态 |
子系统架构设计
支付与银行结算子系统采用统一网关和多适配器架构,通过统一支付网关提供标准化支付接口,渠道适配器处理不同支付渠道的协议差异,银行适配器实现批量代扣和对账功能,回调处理确保支付结果的及时处理,加解密模块保障交易安全。
graph TB
subgraph "支付与银行结算子系统"
GW[统一支付与结算网关]
ADP_CH[渠道适配器]
ADP_BANK[银行适配器]
CB[回调处理]
RECON[对账处理]
CRYPTO[加解密/签名]
end
subgraph "上游系统"
REV[营收业务系统]
WECHAT[微网厅]
end
subgraph "外部机构"
WX[微信]
ALI[支付宝]
UPG[银联聚合]
BANK[银行]
end
REV -.->|PAY-001/002/003/005/006/007| GW
WECHAT -.->|下单/查询| GW
GW --> ADP_CH --> WX
ADP_CH --> ALI
ADP_CH --> UPG
GW --> ADP_BANK --> BANK
WX -.-> CB
ALI -.-> CB
UPG -.-> CB
ADP_BANK -.-> RECON
GW -.-> CRYPTO
模块定义
模块列表
| 模块编号 | 模块名称 | 功能描述 | 开发方式 |
|---|---|---|---|
| PAY-001 | 统一支付与结算网关 | 鉴权、参数校验、幂等、基础路由 | 自行开发 |
| PAY-002 | 渠道适配器 | 渠道参数映射、签名/验签、错误码转换 | 自行开发 |
| PAY-003 | 银行适配器 | 协议/文件规范适配、编码转换、SFTP/HTTP | 自行开发 |
| PAY-004 | 回调处理 | 回调验签、订单入账、补偿重试 | 自行开发 |
| PAY-005 | 批量对账处理 | 对账接收/解析、差错处理、账务回填、报告 | 自行开发 |
| PAY-006 | 加解密/签名 | SM2/SM4/3DES等算法、密钥管理 | 自行开发 |
模块间关系
graph TD
subgraph "支付与银行结算子系统模块关系"
A[PAY-001<br/>统一支付与结算网关]
B[PAY-002<br/>渠道适配器]
C[PAY-003<br/>银行适配器]
D[PAY-004<br/>回调处理]
E[PAY-005<br/>批量对账处理]
F[PAY-006<br/>加解密/签名]
end
A -->|渠道路由| B
A -->|银行对接| C
B -->|支付回调| D
C -->|对账数据| E
A -->|安全加密| F
B -.->|状态反馈| A
C -.->|状态反馈| A
D -.->|结果通知| A
E -.->|对账结果| A
F -.->|密钥服务| A
%% 样式定义
classDef gatewayModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef adapterModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef processModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef securityModule fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
class A gatewayModule
class B,C adapterModule
class D,E processModule
class F securityModule
模块描述
PAY-001: 统一支付/代扣网关
- 统一入口鉴权与字段校验
- 基础保护机制
- 幂等键与重放攻击保护
- 简单路由与流量分发
PAY-002: 渠道适配器
- 微信/支付宝/银联参数适配
- 签名规范统一处理
- 错误码标准化转换
- 渠道响应格式统一
PAY-003: 银行适配器
- 银行与第三方支付协议对接
- 签名验签与编码转换(GBK/UTF-8)
- SFTP/HTTP文件交互处理
- 错误码映射与异常处理
PAY-004: 回调处理
- 支付回调验签确认
- 订单状态同步对齐
- 失败重试与异常告警
- 回调幂等与去重处理
PAY-005: 对账处理
- 银行对账文件定时拉取解析
- 差异识别与异常记录
- 冲正/补记建议生成
- 对账报告与追踪链路告警
PAY-006: 加解密/签名
- 国密/商密算法支持
- 密钥管理与定期轮换
- 数据安全传输保障
子系统10设计: 消息服务子系统
任务概述
消息服务子系统(SYS-010)负责统一消息推送、接收与处理,为各业务子系统提供消息通知服务。
设计目标:
- 实现消息的统一推送与接收
- 支持多种消息格式和推送方式
- 确保消息的及时性和可靠性
功能范围:
- 消息推送:根据业务需求,向不同用户发送消息通知
- 消息接收:接收来自各业务系统的消息请求
- 消息处理:处理消息通知,生成响应结果
设计概述
总体约束
技术约束:
- 基于消息队列技术实现消息的异步处理
- 支持多种消息格式(如JSON、XML等)
- 实现消息的可靠传输和幂等处理
性能约束:
- 支持高并发消息处理
- 消息处理响应时间≤1秒
- 消息队列容量≥100万条
安全约束:
- 消息加密存储
- 消息传输安全
- 消息处理日志记录
子系统外部接口
消息服务子系统作为统一的消息通知中心,为各业务系统提供多渠道消息推送能力。系统支持短信、邮件、站内信等多种消息渠道,与外部系统(OA、智水擎、水投数科APP)对接,实现消息的统一管理和分发。
| 接口编号 | 接口名称 | 功能描述 | 调用方 | 接口协议 | 输入参数 | 输出结果 |
|---|---|---|---|---|---|---|
| IF-MSG-001 | 短信发送接口 | 发送短信通知消息 | 营收/微网厅/工单系统 | HTTP/REST | 手机号、消息内容、模板ID、发送时间 | 发送状态、消息ID、预计到达时间 |
| IF-MSG-002 | 邮件发送接口 | 发送邮件通知消息 | 营收/工单/报装系统 | HTTP/REST | 邮箱地址、邮件主题、邮件内容、附件 | 发送状态、邮件ID、送达确认 |
| IF-MSG-003 | 站内信接口 | 发送系统站内消息 | 各业务系统 | HTTP/REST | 用户ID、消息标题、消息内容、消息类型 | 发送结果、消息状态、已读状态 |
| IF-MSG-004 | 微信消息推送接口 | 发送微信模板消息 | 微网厅系统 | HTTP/REST | 用户OpenID、模板ID、模板数据 | 推送状态、消息ID、送达状态 |
| IF-MSG-005 | 外部系统对接接口 | 对接OA/智水擎等外部系统 | OA系统/智水擎/水投数科APP | HTTP/REST | 系统标识、消息类型、接收用户、消息内容 | 对接状态、消息分发结果 |
| IF-MSG-006 | 固定模板管理接口 | 管理消息固定模板 | 系统管理员 | HTTP/REST | 模板类型、模板内容、适用场景 | 模板ID、保存状态、生效时间 |
设计方案概述
架构设计:
消息服务子系统采用消息队列技术实现消息的异步处理。通过RabbitMQ实现消息的可靠传输和幂等处理。
技术选型:
- 消息队列:RabbitMQ
- 消息格式:JSON
- 消息加密:AES-256
- 消息传输:HTTPS
子系统架构设计
消息服务子系统采用消息中心架构模式,通过统一消息网关接收各业务系统的消息发送请求,通过渠道适配器实现不同消息渠道的协议转换,固定模板管理确保消息内容的规范性,外部系统对接实现与OA、智水擎等系统的消息互通。
graph TB
subgraph "消息服务子系统"
PUB[消息推送]
SUB[消息接收]
MQ[RabbitMQ]
end
PUB --> MQ
SUB --> MQ
模块定义
模块列表
| 模块编号 | 模块名称 | 功能描述 | 开发方式 |
|---|---|---|---|
| MSG-001 | 消息网关模块 | 统一接入、鉴权、路由、幂等控制 | 自行开发 |
| MSG-002 | 短信服务模块 | 短信发送、回执处理、失败重试、供应商适配 | 自行开发 |
| MSG-003 | 邮件服务模块 | 邮件发送、附件管理、批量发送、回执处理 | 自行开发 |
| MSG-004 | 站内信模块 | 站内信管理、用户消息推送、已读状态跟踪 | 自行开发 |
| MSG-005 | 微信通知模块 | 微信模板消息、公众号推送通知 | 自行开发 |
| MSG-006 | 模板管理模块 | 消息模板管理、固定模板维护 | 自行开发 |
| MSG-007 | 外部系统适配模块 | 对接OA、智水擎、水投数科app等数科系统 | 自行开发 |
模块间关系
graph TD
subgraph "消息服务子系统模块关系"
A[MSG-001<br/>消息网关模块]
B[MSG-002<br/>短信服务模块]
C[MSG-003<br/>邮件服务模块]
D[MSG-004<br/>站内信模块]
E[MSG-005<br/>微信通知模块]
F[MSG-006<br/>模板管理模块]
G[MSG-007<br/>外部系统适配模块]
end
%% 核心流程
A -->|短信路由| B
A -->|邮件路由| C
A -->|站内信路由| D
A -->|微信路由| E
A -->|外部系统路由| G
%% 模板服务
F -->|短信模板| B
F -->|邮件模板| C
F -->|站内信模板| D
F -->|微信模板| E
F -->|外部模板| G
%% 回执反馈
B -.->|短信回执| A
C -.->|邮件回执| A
D -.->|已读状态| A
E -.->|微信回执| A
G -.->|外部回执| A
%% 样式定义
classDef gatewayModule fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
classDef channelModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef templateModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef externalModule fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
class A gatewayModule
class B,C,D,E channelModule
class F templateModule
class G externalModule
模块描述
MSG-001: 消息网关模块
- 统一消息接入与鉴权
- 简单路由与负载均衡
- 基础保护机制
- 幂等控制与防重复发送
MSG-002: 短信服务模块
- 短信发送与供应商适配
- 回执状态处理与确认
- 失败重试与补偿机制
- 短信固定内容管理
MSG-003: 邮件服务模块
- 邮件发送与附件管理
- 批量邮件处理能力
- 回执跟踪与状态确认
- SMTP服务器配置管理
MSG-004: 站内信模块
- 站内消息推送管理
- 用户消息中心维护
- 已读/未读状态跟踪
- 消息分类与过滤
MSG-005: 微信通知模块
- 微信模板消息发送
- 公众号推送通知
- 微信API接口对接
- 推送结果状态回执
MSG-006: 模板管理模块
- 消息模板统一管理
- 固定模板内容维护
- 模板版本控制
- 多渠道模板适配
MSG-007: 外部系统适配模块
- OA系统消息对接
- 智水擎系统通知集成
- 水投数科app消息推送
- 外部API接口适配
非功能性需求的设计
性能的考虑
设计目标:
- 系统响应时间:≤3秒(95%的请求)
- 并发用户数:≥200个在线用户
- 数据库查询:≤1秒(单表查询)
- 批量处理:≥1000条/分钟
设计措施:
-
数据库优化
- 采用达梦数据库主从架构,读写分离
- 对核心业务表建立合适索引
- 大表分区存储,历史数据归档
- 连接池配置优化
-
缓存策略
- Redis缓存热点数据
- 应用级缓存配置信息
- CDN加速静态资源
- 浏览器缓存优化
-
应用优化
- 异步处理非核心业务
- 批量操作优化
- SQL语句优化
- 业务逻辑优化
兼容性的考虑
浏览器兼容性:
- Chrome 80+(推荐)
- Firefox 75+
- Safari 13+
- Edge 80+
数据库兼容性:
- 主要支持:达梦数据库 8.0+
- 备选方案:PostgreSQL 12+
- 预留接口:MySQL 8.0+
操作系统兼容性:
- 服务器:Linux CentOS 7.6+/Ubuntu 18.04+
- 客户端:Windows 10+/macOS 10.15+
安全的考虑
身份认证:
- 基于OAuth2.0+CAS协议的单点登录
- 基于JWT的无状态认证
- 支持多因子认证(MFA)
- OAuth2+CAS第三方登录集成
- 密码复杂度策略
权限控制:
- RBAC角色权限模型
- 细粒度功能权限控制
- 数据权限隔离
- 多租户数据隔离
数据安全:
- 敏感数据加密存储
- 数据传输HTTPS加密
- 数据库连接加密
- 定期数据备份
系统安全:
- SQL注入防护
- XSS攻击防护
- CSRF攻击防护
- 接口访问频率限制
可移植性的考虑
平台无关性:
- 基于Java 17+,支持跨平台部署
- 容器化部署,支持Docker/Kubernetes
- 数据库抽象层,支持多种数据库
- 配置外部化,环境隔离
云平台适配:
- 支持阿里云、腾讯云、华为云部署
- 适配云原生架构
- 支持弹性扩缩容
- 云存储服务集成
关键技术特性
响应式设计
- 移动端适配:完美适配各种移动设备
- 触屏优化:优化的触屏交互体验
- 加载优化:快速的页面加载速度
- 离线支持:基础功能离线可用
安全保障
- 数据加密:敏感数据传输加密
- 身份验证:多重身份验证机制
- 支付安全:完善的支付安全策略
- 隐私保护:严格的用户隐私保护
集成与测试的考虑
集成策略:
- 采用自底向上的集成方式
- 先完成基础服务开发测试
- 再进行业务服务集成
- 最后进行端到端集成测试
测试策略:
- 单元测试:代码覆盖率≥80%
- 集成测试:覆盖主要业务流程
- 性能测试:验证性能指标
- 安全测试:安全漏洞扫描
可扩展性的考虑
架构扩展:
- 微服务架构支持水平扩展
- 数据库分库分表支持
- 缓存集群扩展
- 负载均衡扩展
功能扩展:
- 插件化架构设计
- 开放API接口
- 工作流引擎支持
- 配置化业务规则
可靠性的考虑
高可用设计:
- 应用服务集群部署
- 数据库主从备份
- 负载均衡器冗余
- 自动故障切换
容错机制:
- 服务降级策略
- 熔断器模式
- 重试机制
- 异常处理策略
数据备份:
- 数据库实时备份
- 定期全量备份
- 增量备份策略
- 异地备份存储
可维护性的考虑
代码质量:
- 统一编码规范
- 代码审查制度
- 自动化测试
- 持续集成/持续部署
运维友好:
- 完善的部署文档
- 运维监控dashboard
- 日志集中管理
- 性能监控告警
文档管理:
- API文档自动生成
- 系统架构文档
- 运维操作手册
- 故障处理手册