# 福建水务数智营收管理系统概要设计说明书
| 文件状态: | 文档密级: | 公开 |
| :--- | :--- | :--- |
| 【√】草稿 | | |
| 【】修改稿 | | |
| 【】正式发布 | | |
| | **当前版本:** | **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协议:更新单点登录模块描述,强调基于OAuth2.0协议实现。 |
# 目录
- [福建水务数智营收管理系统概要设计说明书](#福建水务数智营收管理系统概要设计说明书)
- [版本历史](#版本历史)
- [目录](#目录)
- [前言](#前言)
- [编写目的](#编写目的)
- [背景与任务](#背景与任务)
- [术语与缩略语](#术语与缩略语)
- [参考资料](#参考资料)
- [系统总体设计](#系统总体设计)
- [任务概述](#任务概述)
- [系统总体目标](#系统总体目标)
- [功能范围](#功能范围)
- [系统涉众与用户特点](#系统涉众与用户特点)
- [设计概述](#设计概述)
- [总体约束](#总体约束)
- [系统外部接口](#系统外部接口)
- [设计方案概述](#设计方案概述)
- [系统架构设计](#系统架构设计)
- [系统的逻辑架构设计](#系统的逻辑架构设计)
- [整体架构图](#整体架构图)
- [层级说明](#层级说明)
- [系统数据流向图](#系统数据流向图)
- [系统的物理架构设计](#系统的物理架构设计)
- [物理部署图](#物理部署图)
- [网络连接](#网络连接)
- [硬件配置规格](#硬件配置规格)
- [达梦数据库分布式架构](#达梦数据库分布式架构)
- [容器化部署架构](#容器化部署架构)
- [子系统定义](#子系统定义)
- [子系统列表](#子系统列表)
- [子系统间关系](#子系统间关系)
- [子系统调用关系图](#子系统调用关系图)
- [主要接口定义](#主要接口定义)
- [子系统1设计: 统一平台](#子系统1设计-统一平台)
- [功能与界面](#功能与界面)
- [模块列表](#模块列表)
- [模块间关系](#模块间关系)
- [权限管理功能群](#权限管理功能群)
- [系统监控功能群](#系统监控功能群)
- [模块设计](#模块设计)
- [模块1: 单点登录](#模块1-单点登录)
- [模块2: 系统管理](#模块2-系统管理)
- [中间件和其他设计](#中间件和其他设计)
- [缓存](#缓存)
- [消息队列](#消息队列)
- [定时任务](#定时任务)
- [对外接口](#对外接口)
- [子系统2设计: 营收系统](#子系统2设计-营收系统)
- [功能与界面](#功能与界面-1)
- [模块列表](#模块列表-1)
- [模块间关系](#模块间关系-1)
- [营收核心业务群](#营收核心业务群)
- [客户服务业务群](#客户服务业务群)
- [模块设计](#模块设计-1)
- [模块1: 客户资料管理](#模块1-客户资料管理)
- [模块2: 抄表开账](#模块2-抄表开账)
- [模块3: 营业收费](#模块3-营业收费)
- [模块4: 账务处理](#模块4-账务处理)
- [模块5: 发票管理](#模块5-发票管理)
- [模块6: 催缴管理](#模块6-催缴管理)
- [模块7: 统计分析](#模块7-统计分析)
- [模块8: 代收业务](#模块8-代收业务)
- [模块9: 业务工单](#模块9-业务工单)
- [中间件和其他设计](#中间件和其他设计-1)
- [对外接口](#对外接口-1)
- [子系统3设计: 表务系统](#子系统3设计-表务系统)
- [功能与界面](#功能与界面-2)
- [模块列表](#模块列表-2)
- [模块设计](#模块设计-2)
- [模块1: 表务基础管理](#模块1-表务基础管理)
- [模块2: 仓库与库存管理](#模块2-仓库与库存管理)
- [模块3: 设备档案管理](#模块3-设备档案管理)
- [子系统4设计: 报装系统](#子系统4设计-报装系统)
- [功能与界面](#功能与界面-3)
- [模块设计](#模块设计-3)
- [模块1: 报装流程管理](#模块1-报装流程管理)
- [模块2: 工程管理](#模块2-工程管理)
- [模块3: 档案管理](#模块3-档案管理)
- [子系统5设计: 客户服务](#子系统5设计-客户服务)
- [功能与界面](#功能与界面-4)
- [模块列表](#模块列表-3)
- [模块设计](#模块设计-4)
- [模块1: 账户绑定管理](#模块1-账户绑定管理)
- [模块2: 信息查询服务](#模块2-信息查询服务)
- [模块3: 在线缴费服务](#模块3-在线缴费服务)
- [模块4: 电子发票服务](#模块4-电子发票服务)
- [子系统6设计: 手机抄表APP](#子系统6设计-手机抄表app)
- [功能与界面](#功能与界面-5)
- [模块列表](#模块列表-4)
- [模块设计](#模块设计-5)
- [模块1: 登录模块](#模块1-登录模块)
- [模块2: 首页搜索模块](#模块2-首页搜索模块)
- [模块3: 采集任务管理模块](#模块3-采集任务管理模块)
- [模块4: 换表工单模块](#模块4-换表工单模块)
- [模块5: 其他工单模块](#模块5-其他工单模块)
- [模块6: 个人信息与系统设置模块](#模块6-个人信息与系统设置模块)
- [关键技术特性](#关键技术特性)
- [离线作业能力](#离线作业能力)
- [数据安全保障](#数据安全保障)
- [用户体验优化](#用户体验优化)
- [非功能性需求的设计](#非功能性需求的设计)
- [性能的考虑](#性能的考虑)
- [兼容性的考虑](#兼容性的考虑)
- [安全的考虑](#安全的考虑)
- [可移植性的考虑](#可移植性的考虑)
- [集成与测试的考虑](#集成与测试的考虑)
- [可扩展性的考虑](#可扩展性的考虑)
- [可靠性的考虑](#可靠性的考虑)
- [可维护性的考虑](#可维护性的考虑)
# 前言
## 编写目的
本文档是《福建水务数智营收管理系统详细设计说明书》的前导文档,旨在从总体架构和概要设计的角度对系统进行全面的技术规划和设计。
**主要目的:**
1. **总体架构规划**:从系统整体角度进行技术架构规划,为详细设计提供宏观指导
2. **技术方案论证**:确定系统的技术选型、架构模式和实现策略
3. **设计标准制定**:建立统一的技术标准、开发规范和质量要求
4. **风险评估分析**:识别技术风险、制定应对策略
5. **资源需求评估**:确定系统开发、部署所需的技术资源和基础设施
**预期读者:**
- 系统架构师和技术负责人
- 项目经理和技术管理人员
- 详细设计和开发团队
- 测试团队和运维团队
- 甲方技术评审团队
## 背景与任务
福建水务数智营收管理系统是为满足福建省水投数字科技有限公司客户服务管理领域的业务需求而建设的综合管理平台。系统以客户关系数据库为核心和基础,实现客户全生命周期管理。
**建设背景:**
福建水投集团注册资本46亿元,在全省40多个县市区投资重大水利项目超过450亿元,拥有全级次子公司超过67家,职工人数超3500人。当前,集团正紧紧抓住城乡供水一体化建设的机遇,需要构建以客户为中心的客户服务平台。
**主要任务:**
1. **业务流程再造**:梳理和优化客户服务管理领域的业务流程
2. **组织架构优化**:配合业务流程重组,优化组织架构和管理制度
3. **绩效体系建设**:建立科学的绩效考核标准和评价体系
4. **平台系统建设**:构建以客户为中心的一体化客户服务平台
5. **服务质量提升**:全面提高客户服务质量和客户满意度
**技术目标:**
- 采用现代化微服务架构,支持大规模并发访问
- 支持多租户模式,满足集团化管理需求
- 实现移动化办公,提高工作效率
- 集成物联网技术,支持智能水表远程抄表
- 适配国产化环境,确保系统安全可控
## 术语与缩略语
| **术语、缩写** | **解释** |
|---|---|
| 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,物联网 |
| DevOps | Development和Operations的组合词,开发运维一体化 |
| 站点 | 用于划分用户所属管辖区域,站点可以进行多级管理 |
| 册本 | 又称抄表本或抄表簿,根据抄表线路规划,按排相邻的一些水表给某一个抄表员进行抄表 |
| 用户编号 | 为签定了供用水合同的正式用户分配的唯一识别号 |
| 售水量 | 抄收水量+查处水量±调整水量 |
| 当期应收水费 | 当期售水量乘以不同类别的水价(到户价)所得的金额 |
| 水表抄见率 | (当期应抄用户数-当期估表用户数)/当期应抄用户数×100% |
## 参考资料
- 《福建水务数智营收管理系统需求规格说明书》
- 《福建水务数智营收管理系统详细设计说明书》
- 《福建水务数智营收管理系统数据库设计说明书》
- 《福建水务数智营收管理系统接口设计说明书》
- GB/T 8556-2007 信息技术软件生存周期过程
- GB/T 9385-2008 计算机软件需求规格说明规范
- GB/T 8567-2006 计算机软件文档编制规范
- 《RuoYi-Vue-Pro技术架构文档》
- 《Spring Cloud微服务架构设计指南》
# 系统总体设计
## 任务概述
### 系统总体目标
福建水务数智营收管理系统主要包含统一平台、营收系统、表务系统、报装系统、客户服务和手机抄表APP等子系统,以及相关外部接口集成。
通过系统的建设,实现福建省水投数字科技有限公司客户服务管理领域的业务流程梳理再造、组织架构的优化、管理制度的建设、绩效考核标准的建设。构建以客户为中心的一体化客户服务平台,将客户的所有信息进行有机的关联,方便企业对营收信息进行综合分析和管理,为客户提供更多、更便捷、更主动的个性化服务,提高客户服务的质量和客户满意度。
### 功能范围
本系统的功能涵盖客户资料管理、抄表开账、营业收费、账务处理、催缴管理、发票管理、表务工单、银行代扣代缴、第三方支付(微信、支付宝)、报装系统、水表仓库管理;还包含系统业务必要的查询统计及报表打印功能。
功能列表如下:
- **统一平台**:单点登录、用户管理、角色管理、权限管理、组织机构、系统配置、数据字典管理;
- **营收系统**:客户资料管理、抄表开账、营业收费、账务处理、发票管理、催缴管理、统计分析、代收业务、业务工单;
- **表务系统**:表务基础管理、仓库与库存管理、设备档案管理;
- **报装系统**:报装流程管理、工程管理、档案管理;
- **客户服务**:账户绑定管理、信息查询服务、在线缴费服务、电子发票服务;
- **手机抄表APP**:登录模块、首页搜索、采集任务管理、换表工单、其他工单、个人信息与系统设置。
### 系统涉众与用户特点
**系统涉众**:
本系统主要涉及用户为各水务公司与系统相关的业务参与者、福建省水投数字科技有限公司研发运维团队。
**用户特点**:
- **公司领导**:对信息化在企业生产经营管理活动中的积极作用有深刻认识,并具有前瞻视角。
- **公司管理层**:有丰富的企业管理经验,有良好的业务管理类系统使用经验。
- **系统管理人员**:具有本科以上教育背景,计算机操作熟练,具有良好的软件系统维护经验,主要维护系统的后台权限管理、人员管理、部门管理等功能。
- **操作人员**:部分用户已经使用过其他厂商提供的营业收费系统,部分用户对软件系统使用经验不足。
## 设计概述
### 总体约束
**技术约束**:
- 采用现代化微服务架构,支持大规模并发访问
- 支持多租户模式,满足集团化管理需求
- 实现移动化办公,提高工作效率
- 集成物联网技术,支持智能水表远程抄表
- 适配国产化环境,确保系统安全可控
**性能约束**:
- 系统并发用户数不低于200个
- 移动设备同时登录系统的并发用户数不少于50个
- 系统响应时间不超过3秒
- 支持100万客户的业务量
- 系统可用性达到99.5%以上
**安全约束**:
- 系统满足国家信息安全等级保护要求
- 支持数据加密存储和传输
- 实现细粒度的权限控制
- 提供完整的审计日志功能
### 系统外部接口
本系统需要与以下外部系统进行接口集成:
| 接口类型 | 接口名称 | 功能描述 | 接口协议 |
|---------|---------|----------|----------|
| 金融支付 | 银行代扣接口 | 银行托收代扣缴费 | HTTPS |
| 金融支付 | 微信支付接口 | 微信在线支付 | HTTPS |
| 金融支付 | 支付宝支付接口 | 支付宝在线支付 | HTTPS |
| 通信服务 | 短信平台接口 | 短信通知发送 | HTTPS |
| 物联网 | 集抄系统接口 | 智能水表数据采集 | TCP/HTTPS |
| 税务服务 | 电子发票接口 | 第三方发票开具 | HTTPS |
| 认证服务 | 身份认证接口 | 第三方身份验证 | HTTPS |
### 设计方案概述
**架构设计方案**:
系统采用现代化的多层分布式架构,基于微服务设计思想,实现松耦合、高内聚的系统架构。整体架构分为表现层、网关层、业务服务层、基础服务层和数据层五个层次。
**技术选型方案**:
- **后端技术栈**:Java 11+、Spring Boot 2.7+、Spring Cloud Gateway、MyBatis-Plus
- **前端技术栈**:Vue 3、Element Plus、TypeScript
- **数据库**:达梦数据库 8.0+(主从架构)
- **缓存**:Redis 6.0+(集群模式)
- **消息队列**:RabbitMQ 3.9+
- **文件存储**:MinIO(分布式文件存储)
- **容器化**:Docker + Docker Compose
**部署方案**:
采用容器化部署架构,支持多环境部署(开发、测试、生产),提供自动化部署脚本,支持弹性扩缩容。
## 系统架构设计
### 系统的逻辑架构设计
系统采用现代化的多层分布式架构,基于微服务设计思想,实现松耦合、高内聚的系统架构。
#### 整体架构图
```mermaid
graph TB
subgraph "表现层"
A1[Web管理端
Vue3 + Element Plus]
A2[移动抄表端
uni-app]
A3[客户微信小程序]
A4[客户支付宝小程序]
end
subgraph "网关层"
B1[API网关
Spring Cloud Gateway]
B2[负载均衡
Nginx]
B3[认证授权
Spring Security + JWT]
end
subgraph "业务服务层"
C1[统一平台服务
用户权限管理]
C2[营收管理服务
抄表收费核心业务]
C3[表务管理服务
水表全生命周期]
C4[报装管理服务
报装流程管理]
C5[客户服务
线上服务渠道]
end
subgraph "基础服务层"
D1[权限服务
RBAC权限控制]
D2[工作流服务
Flowable引擎]
D3[消息服务
异步消息处理]
D4[文件服务
文档附件管理]
D5[支付服务
第三方支付集成]
end
subgraph "数据层"
E1[(达梦数据库 8.0+
主从架构)]
E2[(Redis 6.0+
分布式缓存)]
E3[MinIO
分布式文件存储]
end
%% 层级间调用关系
A1 --> B1
A2 --> B1
A3 --> B1
A4 --> B1
B1 --> C1
B1 --> C2
B1 --> C3
B1 --> C4
B1 --> C5
C1 --> D1
C2 --> D1
C2 --> D2
C2 --> D3
C3 --> D2
C4 --> D2
C5 --> D5
D1 --> E1
D2 --> E1
D3 --> E2
D4 --> E3
D5 --> E1
```
#### 层级说明
**表现层(Presentation Layer)**
- 负责用户交互和界面展示
- 包含多种客户端形态:Web端、移动端、小程序端
- 采用前后端分离架构,提高开发效率和用户体验
**网关层(Gateway Layer)**
- 统一入口,负责请求路由和负载均衡
- 集中处理认证授权、限流熔断、监控日志
- 提供API版本管理和接口文档生成
**业务服务层(Business Service Layer)**
- 核心业务逻辑处理层
- 按业务域划分微服务,实现高内聚低耦合
- 支持独立部署、扩缩容和技术栈选择
**基础服务层(Infrastructure Service Layer)**
- 提供通用的技术服务能力
- 包含权限、工作流、消息、文件等基础服务
- 为业务服务提供统一的技术支撑
**数据层(Data Layer)**
- 数据持久化和缓存层
- 支持读写分离、分库分表、数据备份
- 提供高性能、高可用的数据服务
### 系统数据流向图
```mermaid
flowchart TD
subgraph "数据采集层"
A1[移动抄表APP
数据采集]
A2[智能水表
远程数据]
A3[Web管理端
业务录入]
A4[客户端小程序
用户数据]
A5[外部系统
接口数据]
end
subgraph "数据接入层"
B1[API网关
数据验证]
B2[数据清洗
格式转换]
B3[消息队列
异步处理]
B4[数据缓存
临时存储]
end
subgraph "业务处理层"
C1[抄表服务
水量计算]
C2[收费服务
账单生成]
C3[账务服务
财务处理]
C4[工单服务
流程处理]
C5[统计服务
数据分析]
end
subgraph "数据存储层"
D1[(达梦数据库主库
核心业务数据)]
D2[(达梦数据库从库
查询数据)]
D3[(Redis缓存
热点数据)]
D4[文件存储
附件图片]
D5[(备份库
历史数据)]
end
subgraph "数据服务层"
E1[查询服务
数据检索]
E2[报表服务
统计分析]
E3[接口服务
对外开放]
E4[推送服务
消息通知]
end
subgraph "数据展现层"
F1[管理后台
业务操作]
F2[统计大屏
可视化展示]
F3[移动端
现场作业]
F4[客户端
自助服务]
F5[第三方系统
数据集成]
end
%% 数据流向关系
A1 -.->|数据采集
格式验证| B1
A2 -.->|数据采集
格式验证| B1
A3 -.->|数据采集
格式验证| B1
A4 -.->|数据采集
格式验证| B1
A5 -.->|数据采集
格式验证| B1
B1 -.->|数据接入
清洗转换| B2
B2 -.->|数据接入
清洗转换| B3
B3 -.->|数据接入
清洗转换| B4
B4 -.->|业务处理
数据持久化| C1
B4 -.->|业务处理
数据持久化| C2
B4 -.->|业务处理
数据持久化| C3
B4 -.->|业务处理
数据持久化| C4
B4 -.->|业务处理
数据持久化| C5
C1 -.->|数据存储| D1
C2 -.->|数据存储| D1
C3 -.->|数据存储| D1
C4 -.->|数据存储| D1
C5 -.->|数据存储| D1
D1 -.->|数据查询
统计分析| E1
D2 -.->|数据查询
统计分析| E2
D3 -.->|数据查询
统计分析| E3
D4 -.->|数据查询
统计分析| E4
E1 -.->|数据服务
接口调用| F1
E2 -.->|数据服务
接口调用| F2
E3 -.->|数据服务
接口调用| F3
E4 -.->|数据服务
接口调用| F4
E1 -.->|数据服务
接口调用| F5
```
### 系统的物理架构设计
系统采用分布式部署架构,通过多个服务器集群实现高可用和高性能。
#### 物理部署图
```mermaid
graph TB
subgraph "DMZ区域"
subgraph "负载均衡集群"
LB1[Nginx 主
8核16G]
LB2[Nginx 备
8核16G]
WAF[Web应用防火墙]
end
end
subgraph "应用服务区"
subgraph "Web服务集群"
WEB1[Web服务器1
8核32G]
WEB2[Web服务器2
8核32G]
end
subgraph "应用服务集群"
APP1[应用服务器1
16核64G]
APP2[应用服务器2
16核64G]
end
subgraph "中间件集群"
MQ1[消息队列1
8核16G]
MQ2[消息队列2
8核16G]
end
end
subgraph "数据服务区"
subgraph "数据库集群"
DB1[达梦数据库主库
32核128G]
DB2[达梦数据库从库
32核128G]
DB3[达梦数据库备库
32核128G]
end
subgraph "缓存集群"
REDIS1[Redis主节点
16核32G]
REDIS2[Redis从节点
16核32G]
REDIS3[Redis哨兵
8核16G]
end
subgraph "文件存储集群"
FILE1[MinIO节点1
8核32G 10TB]
FILE2[MinIO节点2
8核32G 10TB]
FILE3[MinIO节点3
8核32G 10TB]
end
end
subgraph "管理服务区"
MONITOR[监控服务器
Prometheus + Grafana
8核16G]
BACKUP[备份服务器
8核32G 20TB]
JUMP[跳板服务器
4核8G]
LOG[日志服务器
ELK Stack
16核32G]
end
```
#### 网络连接
```mermaid
graph TB
Internet -.->|HTTPS| DMZ
DMZ -.->|HTTP/RPC| APP
APP -.->|数据访问| DATA
MGMT -.->|监控管理| APP
MGMT -.->|监控管理| DATA
```
#### 硬件配置规格
**DMZ区域配置**
| 设备类型 | 配置规格 | 数量 | 主要作用 |
|---------|---------|------|----------|
| 负载均衡器 | 8核16G,双网卡 | 2台 | 负载均衡、高可用 |
| Web应用防火墙 | 硬件WAF设备 | 1台 | 安全防护 |
**应用服务区配置**
| 设备类型 | 配置规格 | 数量 | 主要作用 |
|---------|---------|------|----------|
| Web服务器 | 8核32G,1TB SSD | 2台 | 前端应用部署 |
| 应用服务器 | 16核64G,2TB SSD | 2台 | 后端服务部署 |
| 消息队列服务器 | 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台 | 日志收集分析 |
#### 达梦数据库分布式架构
系统采用达梦数据库分布式架构,支持高性能、高可用、高扩展性的数据存储服务。
```mermaid
graph TB
subgraph "达梦数据库分布式架构"
subgraph "协调节点"
CN1[协调节点1
Coordinator Node]
CN2[协调节点2
Coordinator Node]
end
subgraph "数据节点组1"
DN1_1[数据节点1-主
Datanode Primary]
DN1_2[数据节点1-备
Datanode Standby]
DN1_1 -.->|主备同步| DN1_2
end
subgraph "数据节点组2"
DN2_1[数据节点2-主
Datanode Primary]
DN2_2[数据节点2-备
Datanode Standby]
DN2_1 -.->|主备同步| DN2_2
end
subgraph "GTM节点"
GTM[全局事务管理器
GTM Master]
GTM_S[GTM备节点
GTM Standby]
GTM -.->|备份| GTM_S
end
end
%% 分布式架构调用关系
CN1 -.->|分片路由
查询协调| DN1_1
CN1 -.->|分片路由
查询协调| DN2_1
CN2 -.->|分片路由
查询协调| DN1_1
CN2 -.->|分片路由
查询协调| DN2_1
CN1 -.->|事务管理
全局一致性| GTM
CN2 -.->|事务管理
全局一致性| GTM
```
#### 容器化部署架构
系统采用Docker容器化部署,使用Docker Compose进行服务编排,支持快速部署和弹性扩缩容。
```mermaid
graph TB
subgraph "容器化部署架构"
subgraph "前端服务层"
WEB_CONTAINER[前端容器
Nginx + Vue3]
end
subgraph "后端服务层"
APP_CONTAINER[后端容器
Spring Boot]
end
subgraph "数据存储层"
DB_CONTAINER[数据库容器
达梦数据库]
CACHE_CONTAINER[缓存容器
Redis]
FILE_CONTAINER[文件存储容器
MinIO]
end
subgraph "监控服务层"
MONITOR_CONTAINER[监控容器
Prometheus + Grafana]
LOG_CONTAINER[日志容器
ELK Stack]
end
end
%% 容器服务调用关系
WEB_CONTAINER -.->|API请求
静态资源| APP_CONTAINER
APP_CONTAINER -.->|数据操作| DB_CONTAINER
APP_CONTAINER -.->|缓存访问| CACHE_CONTAINER
APP_CONTAINER -.->|文件存储| FILE_CONTAINER
APP_CONTAINER -.->|监控数据| MONITOR_CONTAINER
APP_CONTAINER -.->|日志数据| LOG_CONTAINER
```
## 子系统定义
### 子系统列表
| 子系统编号 | 子系统名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| SYS-001 | 统一平台 | 单点登录、系统管理、权限管理、租户管理 | 自行开发 |
| SYS-002 | 营收系统 | 客户管理、抄表开账、营业收费、账务处理、发票管理、催缴管理 | 自行开发 |
| SYS-003 | 表务系统 | 表务工单、表务仓库、水表全生命周期管理 | 自行开发 |
| SYS-004 | 报装系统 | 报装流程管理、现场踏勘、合同签订、施工验收 | 自行开发 |
| SYS-005 | 客户服务 | 微信小程序、支付宝小程序、客户自助服务 | 自行开发 |
| SYS-006 | 手机抄表APP | 移动端抄表、工单处理、数据同步 | 自行开发 |
### 子系统间关系
#### 子系统调用关系图
```mermaid
graph TB
subgraph "统一平台"
UP[用户权限管理
组织架构管理
系统配置管理]
end
subgraph "营收系统"
REV[客户管理
抄表开账
营业收费
账务处理]
end
subgraph "表务系统"
METER[表务工单
表务仓库
设备管理]
end
subgraph "报装系统"
INSTALL[报装流程
现场踏勘
施工验收]
end
subgraph "客户服务"
CS[微信小程序
支付宝小程序
在线缴费]
end
subgraph "手机抄表APP"
APP[移动抄表
工单处理]
end
%% 调用关系
UP -.->|用户认证
权限验证| REV
UP -.->|用户认证
权限验证| METER
UP -.->|用户认证
权限验证| INSTALL
UP -.->|用户认证
权限验证| CS
UP -.->|用户认证
权限验证| APP
REV -.->|客户信息
水表信息| METER
REV -.->|新用户立户| INSTALL
REV -.->|账单信息
缴费接口| CS
REV -.->|抄表任务
欠费信息| APP
METER -.->|换表通知
库存信息| REV
METER -.->|工单信息| APP
INSTALL -.->|立户信息| REV
CS -.->|缴费记录| REV
APP -.->|抄表数据
工单回填| REV
APP -.->|工单回填| METER
```
#### 主要接口定义
**统一平台对外接口**
| 接口名称 | 接口描述 | 调用方 | 接口协议 |
|---------|----------|--------|----------|
| 用户认证接口 | 验证用户身份和权限 | 所有子系统 | HTTP/REST |
| 组织信息接口 | 获取部门和员工信息 | 营收系统、表务系统 | HTTP/REST |
| 权限验证接口 | 验证用户操作权限 | 所有子系统 | HTTP/REST |
**营收系统对外接口**
| 接口名称 | 接口描述 | 调用方 | 接口协议 |
|---------|----------|--------|----------|
| 客户信息查询接口 | 查询客户基本信息 | 表务系统、客户服务 | HTTP/REST |
| 账单查询接口 | 查询客户账单信息 | 客户服务 | HTTP/REST |
| 缴费处理接口 | 处理在线缴费 | 客户服务 | HTTP/REST |
| 立户接口 | 新客户立户 | 报装系统 | HTTP/REST |
| 抄表任务接口 | 下发抄表任务和客户信息 | 手机抄表APP | HTTP/REST |
| 抄表数据上传接口 | 上传抄表数据 | 手机抄表APP | HTTP/REST |
**表务系统对外接口**
| 接口名称 | 接口描述 | 调用方 | 接口协议 |
|---------|----------|--------|----------|
| 水表库存查询接口 | 查询水表库存信息 | 营收系统 | HTTP/REST |
| 换表通知接口 | 换表完成通知 | 营收系统 | HTTP/REST |
| 工单查询接口 | 查询待办工单 | 手机抄表APP | HTTP/REST |
| 工单回填接口 | 回填工单处理结果 | 手机抄表APP | HTTP/REST |
# 子系统1设计: 统一平台
## 功能与界面
统一平台是整个系统的基础支撑平台,提供统一的用户认证、权限管理、组织管理等功能。作为SaaS多租户平台的核心,统一平台确保了系统的安全性、可扩展性和可管理性。
**主要功能包括:**
- **单点登录**:提供统一的登录入口,支持多种认证方式
- **用户管理**:管理系统用户的基本信息、状态和权限
- **角色管理**:定义和管理系统角色,实现基于角色的权限控制
- **权限管理**:细粒度的功能权限和数据权限控制
- **组织管理**:管理企业的部门结构和人员归属
- **租户管理**:支持多租户模式,实现数据隔离和个性化配置
- **系统监控**:实时监控系统运行状态和用户在线情况
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| UP-001 | 单点登录模块 | 用户认证、授权管理、多种登录方式支持 | 自行开发 |
| UP-002 | 系统管理模块 | 用户、角色、部门、菜单等基础数据管理 | 自行开发 |
| UP-003 | 权限控制模块 | RBAC权限模型、菜单权限、数据权限 | 自行开发 |
| UP-004 | 租户管理模块 | 多租户数据隔离、租户配置管理 | 自行开发 |
| UP-005 | 系统监控模块 | 在线用户监控、系统性能监控、操作日志 | 自行开发 |
## 模块间关系
### 权限管理功能群
权限管理功能群是统一平台的核心,实现了完整的RBAC权限控制模型。
```mermaid
graph TB
subgraph "权限管理功能群"
A[用户管理模块]
B[角色管理模块]
C[菜单管理模块]
D[部门管理模块]
E[权限控制模块]
end
A -->|用户角色关联| B
B -->|角色权限关联| C
A -->|用户部门关联| D
E -->|权限验证| A
E -->|权限验证| B
E -->|权限验证| C
A -.->|数据权限| D
B -.->|功能权限| C
```
**功能群说明:**
- 用户管理模块负责用户基本信息维护
- 角色管理模块定义系统角色和权限
- 菜单管理模块配置系统功能菜单
- 部门管理模块维护组织架构
- 权限控制模块实现统一的权限验证
### 系统监控功能群
系统监控功能群提供对整个系统运行状态的监控和管理。
```mermaid
graph TB
subgraph "系统监控功能群"
F[在线用户监控]
G[系统性能监控]
H[操作日志管理]
I[系统配置管理]
end
F -->|用户行为| H
G -->|性能数据| H
I -->|配置变更| H
F -.->|实时监控| G
H -.->|日志分析| G
```
## 模块设计
### 模块1: 单点登录
**功能描述:**
单点登录模块基于OAuth2.0协议实现,提供统一的用户认证入口,支持多种登录方式和安全策略。该模块是整个系统安全的第一道防线,确保只有合法用户才能访问系统。
**主要功能:**
1. **用户名密码登录**:传统的用户名密码认证方式
2. **手机号短信登录**:基于短信验证码的快速登录
3. **第三方登录**:支持微信、支付宝等第三方平台登录
4. **OAuth2.0单点登录**:基于OAuth2.0协议,一次登录,多系统访问
5. **自动登录**:支持"记住我"功能
6. **安全控制**:密码策略、登录限制、验证码等
**技术实现:**
- 基于JWT令牌的无状态认证
- Redis存储用户会话信息
- Spring Security实现安全控制
- 支持多种加密算法
### 模块2: 系统管理
**功能描述:**
系统管理模块提供系统基础数据的维护功能,包括用户、角色、部门、菜单等核心数据的管理。
**主要功能:**
1. **用户管理**:用户信息的增删改查、状态管理、权限分配
2. **角色管理**:角色定义、权限分配、角色用户关联
3. **部门管理**:组织架构的维护、层级关系管理
4. **菜单管理**:系统菜单的配置、权限关联
5. **字典管理**:系统字典数据的维护
6. **参数管理**:系统参数的配置和管理
**业务规则:**
- 用户名全局唯一
- 手机号不能重复
- 超级管理员不能被删除
- 部门删除前需要先移除下属用户
## 中间件和其他设计
### 缓存
**Redis缓存设计:**
| 缓存类型 | Key格式 | Value类型 | 过期时间 | 用途说明 |
|---------|---------|-----------|----------|----------|
| 用户会话 | user:session:{userId} | Hash | 2小时 | 存储用户登录信息 |
| 用户权限 | user:permission:{userId} | Set | 30分钟 | 缓存用户权限列表 |
| 系统配置 | system:config:{configKey} | String | 24小时 | 系统配置参数 |
| 数据字典 | system:dict:{dictType} | List | 24小时 | 字典数据缓存 |
| 验证码 | captcha:{uuid} | String | 5分钟 | 图形验证码 |
| 短信验证码 | sms:code:{mobile} | String | 5分钟 | 短信验证码 |
### 消息队列
**RabbitMQ消息队列设计:**
| Queue名称 | Exchange | Routing Key | 消费者 | 用途说明 |
|-----------|----------|-------------|--------|----------|
| user.operation | topic.exchange | user.* | UserOperationConsumer | 用户操作日志 |
| system.notification | topic.exchange | system.* | NotificationConsumer | 系统通知消息 |
| sms.send | direct.exchange | sms.send | SmsConsumer | 短信发送队列 |
| email.send | direct.exchange | email.send | EmailConsumer | 邮件发送队列 |
### 定时任务
| 任务名称 | Cron表达式 | 执行频率 | 功能描述 |
|---------|------------|----------|----------|
| 清理过期会话 | 0 0 2 * * ? | 每日凌晨2点 | 清理过期的用户会话 |
| 同步用户状态 | 0 */10 * * * ? | 每10分钟 | 同步用户在线状态 |
| 清理操作日志 | 0 0 3 * * ? | 每日凌晨3点 | 清理30天前的操作日志 |
| 系统健康检查 | 0 */5 * * * ? | 每5分钟 | 检查系统组件健康状态 |
## 对外接口
| 接口类型 | 接口名称(标识) | 功能描述 | 接口协议 | 备注 |
|---|---|---|---|---|
| REST API | 用户认证接口 | 用户登录认证和令牌生成 | HTTP/REST | 详见《接口设计说明书》 |
| REST API | 权限验证接口 | 验证用户访问权限 | HTTP/REST | 供其他子系统调用 |
| REST API | 用户信息接口 | 获取用户基本信息 | HTTP/REST | 供其他子系统调用 |
| REST API | 组织架构接口 | 获取部门和员工信息 | HTTP/REST | 供其他子系统调用 |
| WebSocket | 实时通知接口 | 推送系统通知消息 | WebSocket | 实时消息推送 |
# 子系统2设计: 营收系统
## 功能与界面
营收系统是整个水务管理平台的核心业务系统,负责处理从客户管理到账务处理的完整营收业务流程。
**核心业务流程:**
客户建档 → 抄表录入 → 复核开账 → 营业收费 → 账务处理 → 发票管理 → 催缴管理
**主要功能模块:**
- **客户资料管理**:客户档案建立、信息维护、分组管理
- **抄表开账**:抄表数据录入、复核确认、自动开账
- **营业收费**:柜台收费、移动收费、在线缴费
- **账务处理**:账务调整、退款处理、坏账管理
- **发票管理**:发票开具、查询、重开、作废
- **催缴管理**:欠费统计、催缴通知、停水管理
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| REV-001 | 客户资料管理 | 客户档案管理、客户分组、信息变更 | 自行开发 |
| REV-002 | 抄表开账 | 抄表录入、复核开账、异常处理 | 自行开发 |
| REV-003 | 营业收费 | 柜台收费、移动收费、在线缴费 | 自行开发 |
| REV-004 | 账务处理 | 账务调整、退款处理、坏账管理 | 自行开发 |
| REV-005 | 发票管理 | 发票开具、查询管理、电子发票 | 自行开发 |
| REV-006 | 催缴管理 | 欠费催缴、短信通知、停水管理 | 自行开发 |
| REV-007 | 统计分析 | 提供多维度的数据统计和报表分析功能 | 自行开发 |
| REV-008 | 代收业务 | 集成银行、第三方支付等代收渠道 | 自行开发 |
## 模块间关系
### 营收核心业务群
营收核心业务群实现了完整的营收业务流程,各模块之间存在严格的业务依赖关系。
```mermaid
graph LR
A[客户资料管理] --> B[抄表开账]
B --> C[营业收费]
C --> D[账务处理]
D --> E[发票管理]
A -.->|客户信息| C
A -.->|客户信息| E
B -.->|账单信息| D
C -.->|收费记录| E
```
### 客户服务业务群
客户服务业务群围绕客户服务展开,提供完整的客户服务链条。
```mermaid
graph TB
F[客户资料管理] --> G[催缴管理]
G --> H[营业收费]
H --> I[发票管理]
F -.->|客户联系方式| G
G -.->|催缴结果| H
H -.->|缴费凭证| I
```
## 模块设计
### 模块1: 客户资料管理
**功能概述:**
客户资料管理模块是营收系统的基础,负责维护所有用水客户的基本信息和档案资料。
**核心功能:**
1. **客户档案管理**
- 新客户建档
- 客户信息修改
- 客户状态管理(正常、停用、注销)
- 客户变更历史记录
2. **客户分组管理**
- 按区域分组
- 按用水性质分组
- 按客户类型分组
- 自定义分组
3. **客户查询服务**
- 多条件组合查询
- 模糊查询支持
- 高级筛选功能
**业务规则:**
- 客户编号系统自动生成,格式:部门代码+年份+6位流水号
- 身份证号码必须通过实名认证
- 客户状态变更需要审批流程
- 存在未结清账务的客户不允许注销
### 模块2: 抄表开账
**功能概述:**
抄表开账模块实现了从抄表数据录入到自动生成账单的完整业务流程。
**核心功能:**
1. **抄表数据录入**
- 手工抄表录入
- PDA抄表导入
- 远传抄表自动采集
- Excel批量导入
2. **抄表数据复核**
- 数据有效性验证
- 异常用水量检测
- 人工复核确认
- 批量复核处理
3. **自动开账处理**
- 水量计算
- 费用计算
- 账单生成
- 开账确认
**业务流程图:**
```mermaid
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倍为量低
- 复核规则:抄表人员不能复核自己录入的数据
### 模块3: 营业收费
**功能概述:**
营业收费模块提供完整的收费业务流程管理,支持多种收费方式和支付渠道。
**核心功能:**
1. **柜台收费**
- 实时收费处理
- 多种支付方式
- 收费凭证打印
- 柜台结账管理
2. **在线缴费**
- 微信支付接入
- 支付宝支付接入
- 银行卡支付
- 代扣代缴服务
3. **批量收费**
- 批量缴费处理
- 预付款管理
- 托收业务
- 自动扣费
**业务流程图:**
```mermaid
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[结束]
```
**业务规则:**
1. 收费员每日下班前必须进行"柜台结账"
2. 结账前,收错的账款可以执行"红冲"操作
3. 支持现金、POS机、微信、支付宝等多种支付方式
4. 在线支付需要实时确认支付结果
5. 银行代扣需要客户事先签约授权
### 模块4: 账务处理
**功能概述:**
负责处理各类复杂的账务调整、退款、坏账等业务,确保账务的准确性和合规性。
**核心功能:**
- **未销账调整**: 对未支付账单进行调整。
- **分账调整**: 将一笔总账单拆分为多笔子账单。
- **预付款退款**: 处理客户预付款的退还流程。
- **呆坏账处理**: 对长期无法收回的欠款进行核销。
### 模块5: 发票管理
**功能概述:**
提供全面的发票管理功能,支持电子发票和纸质发票的开具、查询、作废等操作。
**核心功能:**
- **发票开具**: 根据缴费记录为客户开具发票。
- **发票查询与管理**: 查询发票历史,处理红冲、作废等请求。
- **电子发票集成**: 对接第三方电子发票平台,实现自动开具和推送。
### 模块6: 催缴管理
**功能概述:**
对逾期未缴费的客户进行有效的催缴管理,提高水费回收率。
**核心功能:**
- **欠费分析**: 统计和分析欠费客户数据。
- **催缴通知**: 通过短信、电话、通知单等多种方式进行催缴。
- **停复水管理**: 对恶意欠费用户执行停水,缴清后进行复水操作。
### 模块7: 统计分析
**功能概述:**
提供多维度的数据统计和报表分析功能,为管理决策提供数据支持。
**核心功能:**
- **售水统计**: 按日、月、年统计售水量、售水收入等。
- **收费统计**: 统计不同收费渠道、方式的收费情况。
- **欠费分析**: 多维度分析欠费构成和趋势。
- **自定义报表**: 提供灵活的报表自定义工具。
### 模块8: 代收业务
**功能概述:**
集成银行、第三方支付等代收渠道,方便客户缴费。
**核心功能:**
- **银行代扣**: 与银行签订协议,实现自动批量扣费。
- **第三方支付**: 集成微信、支付宝等支付网关。
- **对账管理**: 定期与各渠道进行账务核对。
### 模块9: 业务工单
**功能概述:**
业务工单模块负责管理水务系统中的各类业务工单,实现工单的统一管理和流转,整合了原表务系统的工单管理功能。
**核心功能:**
- **业务清单管理**: 查询和管理通过系统办理的日常业务工单及其进度信息。
- **上报清单管理**: 处理通过移动端上报的问题工单,包括现场发现的问题。
- **稽查工单管理**: 处理抄表稽查和水价稽查工单,确保数据准确性。
- **换表工单管理**: 处理水表更换相关的工单,与表务仓库系统协同作业。
**业务规则:**
1. 工单编号系统自动生成,支持不同类型的编号规则
2. 紧急工单需要在规定时间内快速响应
3. 工单处理过程需要详细记录操作日志
4. 换表工单需要与表务仓库系统同步水表状态
## 中间件和其他设计
**缓存设计:**
| 缓存类型 | Key格式 | 用途说明 | 过期时间 |
|---------|---------|----------|----------|
| 客户信息 | customer:info:{id} | 客户基本信息缓存 | 1小时 |
| 价格信息 | price:info:{type} | 价格政策缓存 | 12小时 |
| 抄表任务 | reading:task:{bookId} | 抄表任务缓存 | 24小时 |
**消息队列:**
| Queue名称 | 用途说明 | 消费者 |
|-----------|----------|--------|
| billing.generate | 账单生成队列 | BillingConsumer |
| sms.arrears | 欠费短信队列 | SmsConsumer |
| email.invoice | 发票邮件队列 | EmailConsumer |
## 对外接口
| 接口类型 | 接口名称(标识) | 功能描述 | 接口协议 | 备注 |
|---|---|---|---|---|
| REST API | 客户查询接口 | 查询客户基本信息 | HTTP/REST | 供其他系统调用 |
| REST API | 账单查询接口 | 查询客户账单信息 | HTTP/REST | 供客户服务系统调用 |
| REST API | 缴费处理接口 | 处理在线缴费业务 | HTTP/REST | 供客户服务系统调用 |
| REST API | 立户接口 | 新客户立户 | HTTP/REST | 供报装系统调用 |
# 子系统3设计: 表务系统
## 功能与界面
表务系统负责水表全生命周期管理,从采购入库到报废退库的完整管理流程。其核心是确保水表资产的准确、高效流转,并为营收计量提供可靠的设备保障。
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| METER-001 | 表务基础管理 | 管理水表相关的基础参数 | 自行开发 |
| METER-002 | 仓库与库存管理 | 管理水表的入库、出库、盘点和调拨 | 自行开发 |
| METER-003 | 设备档案管理 | 管理每一块水表的唯一电子档案 | 自行开发 |
**注意**: 表务工单管理功能已整合到营收系统的业务工单模块中,实现统一的工单管理。
## 模块设计
### 模块1: 表务基础管理
- **功能描述**: 定义和维护表务管理所需的基础数据和配置参数。
- **核心功能**:
- **水表厂家管理**: 维护水表供应商信息。
- **水表口径管理**: 管理不同口径水表的规格、检定周期等。
- **水表型号管理**: 根据厂家和口径,管理具体的水表型号。
- **水表量程管理**: 定义水表的计量范围。
### 模块2: 仓库与库存管理
- **功能描述**: 负责水表的实物管理,与工单流程解耦,作为一个独立的资源中心。
- **核心功能**:
- **入库管理**: 包括新表采购入库、旧表回收(维修或报废)入库。
- **出库管理**: 根据工单领料申请,发放新水表。
- **库存管理**: 提供库存查询、盘点、调拨、库存预警等功能。
### 模块3: 设备档案管理
- **功能描述**: 作为表务系统的核心,统一管理所有水表的基础信息和生命周期状态。
- **核心功能**:
- **水表信息登录**: 记录新购水表的型号、规格、供应商、批次等信息。
- **水表档案建立**: 为每一块入库的水表建立唯一的、全生命周期跟踪的电子档案。
- **状态管理**: 实时更新水表的状态(如:在库、在用、待检、报废等)。
# 子系统4设计: 报装系统
## 功能与界面
报装系统管理新用户从申请到通水的全过程业务流程。
**主要功能:**
- **报装流程管理**:管理从申请、踏勘到合同签订的完整流程。
- **工程管理**:负责施工、验收和通水环节。
- **档案管理**:对报装过程中的所有文档进行归档和管理。
## 模块设计
### 模块1: 报装流程管理
- **功能描述**: 统一管理新用户报装的核心流程,确保各环节顺畅衔接。
- **核心功能**:
- **报装申请**: 用户资料收集、申请材料审核、受理登记。
- **现场踏勘**: 安排并记录现场勘查、制定初步设计方案、进行工程预算。
- **合同管理**: 根据方案制作、签订供水合同,并收取相关费用。
### 模块2: 工程管理
- **功能描述**: 聚焦于报装工程的现场实施与交付。
- **核心功能**:
- **施工管理**: 施工派工、进度监控、质量检查与整改。
- **竣工验收**: 组织相关部门进行联合验收,确保工程质量达标。
- **立户通水**: 验收通过后,同步信息至营收系统进行客户立户,并最终开通供水。
### 模块3: 档案管理
- **功能描述**: 负责报装全流程的资料归档和查询。
- **核心功能**:
- **资料归档**: 对报装申请、踏勘记录、合同、施工图纸等所有文档进行电子化归档。
- **档案查询**: 提供便捷的查询功能,可按客户名称、报装编号等多种条件检索历史档案。
**新用户报装业务流程图:**
```mermaid
flowchart TD
A[用户报装申请] --> B[资料收集]
B --> C[申请材料审核]
C --> D{材料是否齐全?}
D -->|否| E[补充材料]
E --> C
D -->|是| F[受理登记]
F --> G[分配报装编号]
G --> H[安排现场踏勘]
H --> I[现场勘查]
I --> J[工程设计]
J --> K[制定施工方案]
K --> L[费用预算]
L --> M[方案审批]
M --> N{审批是否通过?}
N -->|否| O[方案修改]
O --> M
N -->|是| P[制作供水合同]
P --> Q[通知用户签约]
Q --> R[合同签订]
R --> S[收取相关费用]
S --> T[安排施工]
T --> U[施工队伍派工]
U --> V[现场施工]
V --> W[施工进度监控]
W --> X[施工质量检查]
X --> Y{质量是否合格?}
Y -->|否| Z[返工整改]
Z --> V
Y -->|是| AA[竣工验收]
AA --> BB[资料归档]
BB --> CC[信息同步营收系统]
CC --> DD[客户立户]
DD --> EE[开通供水]
EE --> FF[结束]
```
**业务规则:**
1. **受理规则**:用户提交报装申请及完整材料后3个工作日内完成受理
2. **踏勘规则**:受理后5个工作日内完成现场踏勘和方案设计
3. **审批规则**:设计方案需要经过技术部门和管理部门双重审批
4. **施工规则**:合同签订并收费后10个工作日内开始施工
5. **验收规则**:施工完成后由工程部门、质检部门联合验收
6. **归档规则**:验收合格后所有资料必须完整归档并同步系统信息
# 子系统5设计: 客户服务
## 功能与界面
客户服务系统为用水客户提供多渠道、便捷的线上自助服务,主要通过微信和支付宝小程序实现。
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| SERVICE-001 | 账户绑定管理 | 客户账户绑定和管理 | 自行开发 |
| SERVICE-002 | 信息查询服务 | 各类信息查询服务 | 自行开发 |
| SERVICE-003 | 在线缴费服务 | 多渠道在线缴费服务 | 自行开发 |
| SERVICE-004 | 电子发票服务 | 电子发票管理服务 | 自行开发 |
## 模块设计
客户服务系统围绕功能维度进行组织,渠道作为功能的实现方式。
### 模块1: 账户绑定管理
- **功能描述**: 提供客户账户的绑定、解绑及多户管理功能。
- **核心功能**:
- **账户绑定**: 客户通过客户编号、手机号、身份证等信息绑定水务账户。
- **绑定验证**: 通过短信验证码等方式确保绑定安全。
- **多账户管理**: 一个微信/支付宝账户可以绑定多个水务账户。
- **账户管理**: 支持启用、停用绑定关系,处理账户异常情况。
### 模块2: 信息查询服务
- **功能描述**: 提供全面的用水信息查询服务。
- **核心功能**:
- **账单查询**: 查询当期账单、历史账单、欠费信息等。
- **用水历史**: 以图表形式展示历史用水量趋势。
- **缴费记录**: 查询历史缴费记录详情。
- **停水公告**: 查看所在区域的计划性或临时性停水通知。
### 模块3: 在线缴费服务
- **功能描述**: 提供多种在线支付方式,为客户提供便捷的缴费服务。
- **核心功能**:
- **多渠道支付**: 支持微信支付、支付宝支付、银行卡支付等多种支付方式。
- **支付限额**: 单次支付金额不超过5000元,确保资金安全。
- **支付确认**: 支付完成后实时更新账户状态,推送缴费成功通知。
- **退款处理**: 支持支付失败和错误支付的退款处理。
### 模块4: 电子发票服务
- **功能描述**: 提供电子发票申请、查询、下载等服务。
- **核心功能**:
- **发票申请**: 客户可为已缴费项目申请电子发票,支持个人和企业发票。
- **发票管理**: 查看已开具的电子发票列表和详情。
- **发票下载**: 下载PDF格式的电子发票文件。
- **发票推送**: 发票开具成功后自动推送给客户。
# 子系统6设计: 手机抄表APP
## 功能与界面
为抄表员、外勤人员提供移动作业工具,支持离线操作,提升现场工作效率。
**核心业务流程:**
任务下载 → 现场抄表 → 问题上报 → 工单处理 → 数据上传 → 结果同步
**主要功能特点:**
- **多维度搜索**:支持户号、户名、地址、钢印号、手机号等多种搜索方式
- **离线作业**:支持无网络环境下的现场抄表和工单处理
- **智能采集**:提供定位、NFC、扫码三种数据采集方式
- **工单闭环**:从问题上报到工单完成的完整处理流程
- **数据同步**:网络恢复后自动同步本地数据到服务器
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| MOBILE-001 | 登录模块 | 机构编号、用户名密码认证、自动登录 | 自行开发 |
| MOBILE-002 | 首页搜索模块 | 多维度搜索、最近搜索记录、抄表任务 | 自行开发 |
| MOBILE-003 | 采集任务管理模块 | 任务列表管理、批量下载、单户采集 | 自行开发 |
| MOBILE-004 | 换表工单模块 | 换表工单处理、设备信息录入 | 自行开发 |
| MOBILE-005 | 其他工单模块 | 复水、稽查、问题上报等工单处理 | 自行开发 |
| MOBILE-006 | 个人信息与系统设置模块 | 个人信息管理、系统设置维护 | 自行开发 |
## 模块设计
### 模块1: 登录模块
- **功能描述**: 提供移动端用户登录认证功能,支持机构编号、用户名、密码三要素登录。
- **核心功能**:
- **核心登录功能**: 机构编号、用户名、密码三要素认证,支持自动登录选项
- **登录辅助功能**: 登录问题支持、版权标识展示
- **安全控制**: 密码自动掩码显示、登录状态保持
### 模块2: 首页搜索模块
- **功能描述**: 提供多维度客户搜索功能,实现快速定位客户信息。
- **核心功能**:
- **搜索框功能**: 支持户号、户名、地址、钢印号、手机号等多维度搜索
- **最近搜索记录**: 自动保存搜索历史,支持去重和快速访问
- **抄表任务列表**: 展示当前抄表员的任务列表,支持直接跳转
### 模块3: 采集任务管理模块
- **功能描述**: 管理抄表员的采集任务,包括任务下载、现场采集等功能。
- **核心功能**:
- **任务列表管理**: 数据统计面板、任务筛选分类、批量下载操作
- **单户采集详情**: 住户档案展示、多种采集方式(定位、NFC、扫码)
- **户间导航**: 支持按任务列表顺序进行上一户/下一户切换
### 模块4: 换表工单模块
- **功能描述**: 处理换表工单的完整流程,从工单接收到完成提交。
- **核心功能**:
- **换表工单处理**: 待办工单列表、工单信息填写、设备信息录入
- **附件管理**: 支持图片和视频上传,作为现场证据
- **工单操作**: 支持工单完成提交和退单处理
### 模块5: 其他工单模块
- **功能描述**: 处理除换表外的其他类型工单,实现外勤业务闭环。
- **核心功能**:
- **复水工单**: 欠费状态校验、二次确认操作
- **稽查任务**: 双模式入口、实时进度显示
- **抄表稽查**: 用户档案核对、稽查结论填写、过程存证
- **问题上报**: 问题类型选择、处理时效设置、溯源证据上传
### 模块6: 个人信息与系统设置模块
- **功能描述**: 管理个人信息和系统设置,提供系统维护功能。
- **核心功能**:
- **个人信息管理**: 姓名修改、手机号设置、信息查看
- **账户安全配置**: 密码修改、退出登录
- **系统维护选项**: 日志上传、缓存清理、数据备份、版本信息
## 关键技术特性
### 离线作业能力
- **离线操作**: 已下载任务支持无网络环境操作
- **数据缓存**: 本地缓存用户档案、抄表记录、工单信息
- **自动同步**: 网络恢复后自动同步本地数据到服务器
### 数据安全保障
- **数据校验**: 必填字段验证、格式校验、数值合理性检查
- **状态一致性**: 任务状态管理、工单状态流转控制
- **防误操作**: 二次确认机制、数据完整性保护
### 用户体验优化
- **界面友好**: 清晰的界面布局、直观的操作流程
- **智能搜索**: 实时搜索、关键词高亮、历史记录
- **便捷导航**: 户间切换、快速定位、批量操作
# 非功能性需求的设计
## 性能的考虑
**设计目标:**
- 系统响应时间:≤3秒(95%的请求)
- 并发用户数:≥200个在线用户
- 数据库查询:≤1秒(单表查询)
- 批量处理:≥1000条/分钟
**设计措施:**
1. **数据库优化**
- 采用达梦数据库主从架构,读写分离
- 对核心业务表建立合适索引
- 大表分区存储,历史数据归档
- 连接池配置优化
2. **缓存策略**
- Redis缓存热点数据
- 应用级缓存配置信息
- CDN加速静态资源
- 浏览器缓存优化
3. **应用优化**
- 异步处理非核心业务
- 批量操作优化
- 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协议的单点登录
- 基于JWT的无状态认证
- 支持多因子认证(MFA)
- OAuth2第三方登录集成
- 密码复杂度策略
**权限控制:**
- RBAC角色权限模型
- 细粒度功能权限控制
- 数据权限隔离
- 多租户数据隔离
**数据安全:**
- 敏感数据加密存储
- 数据传输HTTPS加密
- 数据库连接加密
- 定期数据备份
**系统安全:**
- SQL注入防护
- XSS攻击防护
- CSRF攻击防护
- 接口访问频率限制
## 可移植性的考虑
**平台无关性:**
- 基于Java 11+,支持跨平台部署
- 容器化部署,支持Docker/Kubernetes
- 数据库抽象层,支持多种数据库
- 配置外部化,环境隔离
**云平台适配:**
- 支持阿里云、腾讯云、华为云部署
- 适配云原生架构
- 支持弹性扩缩容
- 云存储服务集成
## 集成与测试的考虑
**集成策略:**
- 采用自底向上的集成方式
- 先完成基础服务开发测试
- 再进行业务服务集成
- 最后进行端到端集成测试
**测试策略:**
- 单元测试:代码覆盖率≥80%
- 集成测试:覆盖主要业务流程
- 性能测试:验证性能指标
- 安全测试:安全漏洞扫描
## 可扩展性的考虑
**架构扩展:**
- 微服务架构支持水平扩展
- 数据库分库分表支持
- 缓存集群扩展
- 负载均衡扩展
**功能扩展:**
- 插件化架构设计
- 开放API接口
- 工作流引擎支持
- 配置化业务规则
## 可靠性的考虑
**高可用设计:**
- 应用服务集群部署
- 数据库主从备份
- 负载均衡器冗余
- 自动故障切换
**容错机制:**
- 服务降级策略
- 熔断器模式
- 重试机制
- 异常处理策略
**数据备份:**
- 数据库实时备份
- 定期全量备份
- 增量备份策略
- 异地备份存储
## 可维护性的考虑
**代码质量:**
- 统一编码规范
- 代码审查制度
- 自动化测试
- 持续集成/持续部署
**运维友好:**
- 完善的部署文档
- 运维监控dashboard
- 日志集中管理
- 性能监控告警
**文档管理:**
- API文档自动生成
- 系统架构文档
- 运维操作手册
- 故障处理手册