From aea0a8cc2a5f08906b32823b270f2681ca306a17 Mon Sep 17 00:00:00 2001 From: tangweijie <877588133@qq.com> Date: Thu, 8 May 2025 16:47:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8README.md=E4=B8=AD=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E6=9B=B4=E6=96=B0=E6=97=A5=E6=9C=9F=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E5=9C=A8=E6=B0=B4=E5=8A=A1=E4=B8=9A=E5=8A=A1=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=96=87=E6=A1=A3=E4=B8=AD=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E4=BA=86=E5=86=85=E5=AE=B9=E6=9B=B4=E6=96=B0=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=BC=BA=E4=BA=86=E6=96=87=E6=A1=A3=E7=9A=84=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E6=80=A7=E5=92=8C=E5=8F=AF=E8=AF=BB=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +- water_biz_database_design.md | 465 ++++++------- water_biz_deployment_design.md | 1051 +++++++++--------------------- water_biz_interface_design.md | 630 +++++------------- water_biz_module_design.md | 921 +++++++++++--------------- water_biz_summary.md | 129 +++- water_biz_system_architecture.md | 543 +++++---------- water_business_terms.md | 234 +++---- 8 files changed, 1502 insertions(+), 2474 deletions(-) diff --git a/README.md b/README.md index 2c13b18..11c7ad8 100644 --- a/README.md +++ b/README.md @@ -15,4 +15,5 @@ ## 版本信息 -初始版本:1.0.0 \ No newline at end of file +初始版本:1.0.0 +更新日期:2024-05-08 \ No newline at end of file diff --git a/water_biz_database_design.md b/water_biz_database_design.md index dfcc980..541be11 100644 --- a/water_biz_database_design.md +++ b/water_biz_database_design.md @@ -1,272 +1,285 @@ -# 福建水务营收系统数据库设计 +# 福建水务业务系统数据库设计 -## 一、数据库设计概述 +## 目录 +- [1. 数据库设计概述](#1-数据库设计概述) +- [2. 数据库架构](#2-数据库架构) +- [3. 主要数据实体](#3-主要数据实体) +- [4. 表结构设计](#4-表结构设计) +- [5. 索引设计](#5-索引设计) +- [6. 数据安全性设计](#6-数据安全性设计) -福建水务营收系统采用关系型数据库MySQL作为主要存储系统,结合Redis缓存提升性能。数据库设计遵循标准化原则,确保数据完整性、一致性和高效性。 +## 1. 数据库设计概述 -## 二、数据库架构设计 +福建水务业务系统的数据库设计基于 SQL Server 2012 数据库管理系统,采用关系型数据库模型,以支持业务系统的高并发、高可靠性需求。数据库设计遵循标准化、安全性、扩展性和性能优化的原则,为业务系统提供稳定、高效的数据存储和访问支持。 -### 1. 数据库架构图 +### 1.1 设计目标 -```mermaid -graph TD - App[应用服务] --> Master[(主数据库)] - Master --> Slave1[(从数据库1)] - Master --> Slave2[(从数据库2)] - App --> Redis[(Redis缓存)] - - subgraph 主从复制架构 - Master - Slave1 - Slave2 - end - - subgraph 缓存层 - Redis - end -``` +- 支持系统功能需求,满足业务处理的数据需求 +- 优化数据库性能,支持高并发访问 +- 确保数据安全性,防止数据泄露和丢失 +- 支持系统横向扩展,适应业务增长需求 +- 支持多租户架构,实现数据隔离 -### 2. 主要特点 +### 1.2 设计原则 -- **读写分离**: 主库负责写操作,从库负责读操作,提高系统吞吐量 -- **数据冗余**: 通过主从复制实现数据冗余,提高可用性 -- **缓存加速**: 使用Redis缓存热点数据,减轻数据库压力 -- **分库设计**: 按业务功能划分为多个逻辑库,便于管理和维护 -- **分表策略**: 对大表采用分表策略,提高查询效率 +- **规范化设计**:遵循数据库设计的第三范式,减少数据冗余 +- **适度冗余**:对于常用查询,适度保留冗余字段,提高查询效率 +- **模块化**:按业务模块划分表组,便于维护和扩展 +- **安全性**:设计完善的权限控制和数据加密方案 +- **可扩展性**:预留扩展字段,支持业务功能的扩展 -## 三、数据模型设计 +## 2. 数据库架构 -### 1. 实体关系图(ER图) +### 2.1 总体架构 -```mermaid -erDiagram - SYS_USER ||--o{ SYS_USER_ROLE : has - SYS_ROLE ||--o{ SYS_USER_ROLE : assigned_to - SYS_ROLE ||--o{ SYS_ROLE_MENU : has - SYS_MENU ||--o{ SYS_ROLE_MENU : assigned_to - - WATER_CUSTOMER ||--o{ WATER_METER : owns - WATER_METER ||--o{ WATER_METER_READING : has - WATER_METER_READING ||--o{ WATER_BILLING : generates - WATER_CUSTOMER ||--o{ WATER_BILLING : billed - WATER_BILLING ||--o{ WATER_PAYMENT : paid_by - WATER_PAYMENT ||--o{ WATER_INVOICE : has - - WATER_PRICE ||--o{ WATER_BILLING : applied_to - WATER_EMPLOYEE ||--o{ WATER_METER_READING : records - WATER_SERVICE_POINT ||--o{ WATER_EMPLOYEE : works_at -``` +系统采用集中式数据库架构,主要包含以下组件: -### 2. 数据库表结构设计 +- **主数据库**:存储核心业务数据,支持事务处理 +- **报表数据库**:存储统计分析数据,支持复杂查询和报表生成 +- **历史数据库**:存储历史业务数据,减轻主数据库负担 +- **缓存系统**:使用内存数据库缓存热点数据,提高访问效率 -#### 2.1 系统管理模块 +### 2.2 多租户设计 -##### SYS_USER (用户表) +系统采用数据分区方式实现多租户架构,主要包括: -| 字段名 | 数据类型 | 长度 | 是否必填 | 主键 | 说明 | +- **共享数据库,共享模式**:所有租户共享同一数据库实例和表结构 +- **租户标识列**:在每个表中增加租户标识列,实现数据隔离 +- **视图隔离**:为不同租户创建视图,限制数据访问范围 +- **权限控制**:通过数据库权限控制租户对数据的访问 + +## 3. 主要数据实体 + +系统主要包含以下核心数据实体: + +### 3.1 客户实体 + +- **客户基本信息**:存储客户的基本资料 +- **表卡信息**:存储水表基本信息和安装位置 +- **账户信息**:存储客户账户信息和余额 +- **联系人信息**:存储客户联系人信息 + +### 3.2 营收实体 + +- **抄表记录**:存储水表抄读记录 +- **账单信息**:存储客户水费账单 +- **缴费记录**:存储客户缴费记录 +- **调价记录**:存储水价调整记录 + +### 3.3 表务实体 + +- **水表档案**:存储水表的完整信息和生命周期 +- **表务工单**:存储表务作业工单信息 +- **仓库信息**:存储水表仓库信息 +- **出入库记录**:存储水表出入库记录 + +### 3.4 报装实体 + +- **报装申请**:存储新用户报装申请信息 +- **报装工单**:存储报装作业工单信息 +- **施工记录**:存储报装施工记录 +- **验收记录**:存储报装验收记录 + +### 3.5 系统管理实体 + +- **组织机构**:存储系统组织机构信息 +- **用户信息**:存储系统用户信息 +- **角色权限**:存储系统角色和权限信息 +- **系统日志**:存储系统操作日志 + +## 4. 表结构设计 + +以下是系统主要表结构设计,按业务模块划分: + +### 4.1 客户管理相关表 + +#### 4.1.1 客户基本信息表(TB_CUSTOMER) + +| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 描述 | |-------|---------|------|---------|-----|------| -| id | bigint | 20 | 是 | 是 | 用户ID | -| username | varchar | 50 | 是 | 否 | 用户名 | -| password | varchar | 100 | 是 | 否 | 密码 | -| nickname | varchar | 50 | 否 | 否 | 昵称 | -| dept_id | bigint | 20 | 否 | 否 | 部门ID | -| phone | varchar | 11 | 否 | 否 | 手机号 | -| email | varchar | 50 | 否 | 否 | 邮箱 | -| gender | tinyint | 4 | 否 | 否 | 性别 | -| avatar | varchar | 100 | 否 | 否 | 头像 | -| status | tinyint | 4 | 是 | 否 | 状态(0正常,1停用) | -| login_ip | varchar | 50 | 否 | 否 | 最后登录IP | -| login_date | datetime | - | 否 | 否 | 最后登录时间 | -| creator | varchar | 64 | 否 | 否 | 创建者 | -| create_time | datetime | - | 是 | 否 | 创建时间 | -| updater | varchar | 64 | 否 | 否 | 更新者 | -| update_time | datetime | - | 是 | 否 | 更新时间 | -| deleted | bit | 1 | 是 | 否 | 是否删除 | +| CUSTOMER_ID | VARCHAR | 20 | 否 | 是 | 客户编号,主键 | +| TENANT_ID | VARCHAR | 20 | 否 | 否 | 租户标识 | +| CUSTOMER_NAME | VARCHAR | 100 | 否 | 否 | 客户名称 | +| CUSTOMER_TYPE | VARCHAR | 10 | 否 | 否 | 客户类型 | +| ID_TYPE | VARCHAR | 10 | 是 | 否 | 证件类型 | +| ID_NUMBER | VARCHAR | 30 | 是 | 否 | 证件号码 | +| PHONE | VARCHAR | 20 | 是 | 否 | 联系电话 | +| ADDRESS | VARCHAR | 200 | 是 | 否 | 地址 | +| AREA_CODE | VARCHAR | 20 | 是 | 否 | 行政区划代码 | +| CREATE_TIME | DATETIME | - | 否 | 否 | 创建时间 | +| UPDATE_TIME | DATETIME | - | 是 | 否 | 更新时间 | +| STATUS | VARCHAR | 10 | 否 | 否 | 状态 | -##### SYS_ROLE (角色表) +#### 4.1.2 表卡信息表(TB_METER_INFO) -| 字段名 | 数据类型 | 长度 | 是否必填 | 主键 | 说明 | +| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 描述 | |-------|---------|------|---------|-----|------| -| id | bigint | 20 | 是 | 是 | 角色ID | -| name | varchar | 30 | 是 | 否 | 角色名称 | -| code | varchar | 100 | 是 | 否 | 角色编码 | -| sort | int | 11 | 是 | 否 | 显示顺序 | -| status | tinyint | 4 | 是 | 否 | 状态(0正常,1停用) | -| type | tinyint | 4 | 是 | 否 | 角色类型 | -| remark | varchar | 500 | 否 | 否 | 备注 | -| creator | varchar | 64 | 否 | 否 | 创建者 | -| create_time | datetime | - | 是 | 否 | 创建时间 | -| updater | varchar | 64 | 否 | 否 | 更新者 | -| update_time | datetime | - | 是 | 否 | 更新时间 | -| deleted | bit | 1 | 是 | 否 | 是否删除 | +| METER_ID | VARCHAR | 20 | 否 | 是 | 水表编号,主键 | +| CUSTOMER_ID | VARCHAR | 20 | 否 | 否 | 客户编号,外键 | +| TENANT_ID | VARCHAR | 20 | 否 | 否 | 租户标识 | +| METER_NO | VARCHAR | 30 | 否 | 否 | 水表号 | +| METER_TYPE | VARCHAR | 10 | 否 | 否 | 水表类型 | +| METER_MODEL | VARCHAR | 20 | 是 | 否 | 水表型号 | +| METER_CALIBER | VARCHAR | 10 | 是 | 否 | 水表口径 | +| INSTALL_DATE | DATE | - | 是 | 否 | 安装日期 | +| INSTALL_POSITION | VARCHAR | 200 | 是 | 否 | 安装位置 | +| INITIAL_READING | DECIMAL | 10,2 | 否 | 否 | 初始读数 | +| CURRENT_READING | DECIMAL | 10,2 | 否 | 否 | 当前读数 | +| READING_CYCLE | VARCHAR | 10 | 否 | 否 | 抄表周期 | +| BOOK_ID | VARCHAR | 20 | 是 | 否 | 册本编号 | +| STATUS | VARCHAR | 10 | 否 | 否 | 状态 | +| CREATE_TIME | DATETIME | - | 否 | 否 | 创建时间 | +| UPDATE_TIME | DATETIME | - | 是 | 否 | 更新时间 | -#### 2.2 客户水表模块 +#### 4.1.3 账户信息表(TB_ACCOUNT) -##### WATER_CUSTOMER (客户表) - -| 字段名 | 数据类型 | 长度 | 是否必填 | 主键 | 说明 | +| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 描述 | |-------|---------|------|---------|-----|------| -| id | bigint | 20 | 是 | 是 | 客户ID | -| customer_no | varchar | 50 | 是 | 否 | 客户编号 | -| name | varchar | 100 | 是 | 否 | 客户名称 | -| type | tinyint | 4 | 是 | 否 | 客户类型(1居民,2企业,3政府,4其它) | -| contact | varchar | 50 | 否 | 否 | 联系人 | -| phone | varchar | 20 | 否 | 否 | 联系电话 | -| address | varchar | 200 | 否 | 否 | 地址 | -| id_card | varchar | 20 | 否 | 否 | 身份证号 | -| bank_account | varchar | 50 | 否 | 否 | 银行账号 | -| bank_name | varchar | 100 | 否 | 否 | 开户行 | -| status | tinyint | 4 | 是 | 否 | 状态(0正常,1冻结) | -| creator | varchar | 64 | 否 | 否 | 创建者 | -| create_time | datetime | - | 是 | 否 | 创建时间 | -| updater | varchar | 64 | 否 | 否 | 更新者 | -| update_time | datetime | - | 是 | 否 | 更新时间 | -| deleted | bit | 1 | 是 | 否 | 是否删除 | +| ACCOUNT_ID | VARCHAR | 20 | 否 | 是 | 账户编号,主键 | +| CUSTOMER_ID | VARCHAR | 20 | 否 | 否 | 客户编号,外键 | +| TENANT_ID | VARCHAR | 20 | 否 | 否 | 租户标识 | +| BALANCE | DECIMAL | 12,2 | 否 | 否 | 账户余额 | +| CREDIT_AMOUNT | DECIMAL | 12,2 | 是 | 否 | 信用额度 | +| LAST_PAYMENT_DATE | DATE | - | 是 | 否 | 最近缴费日期 | +| STATUS | VARCHAR | 10 | 否 | 否 | 状态 | +| CREATE_TIME | DATETIME | - | 否 | 否 | 创建时间 | +| UPDATE_TIME | DATETIME | - | 是 | 否 | 更新时间 | -##### WATER_METER (水表表) +### 4.2 营收管理相关表 -| 字段名 | 数据类型 | 长度 | 是否必填 | 主键 | 说明 | +#### 4.2.1 抄表记录表(TB_METER_READING) + +| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 描述 | |-------|---------|------|---------|-----|------| -| id | bigint | 20 | 是 | 是 | 水表ID | -| meter_no | varchar | 50 | 是 | 否 | 水表编号 | -| customer_id | bigint | 20 | 是 | 否 | 客户ID | -| meter_type | tinyint | 4 | 是 | 否 | 水表类型(1普通,2IC卡,3智能) | -| caliber | varchar | 20 | 否 | 否 | 口径规格 | -| install_date | date | - | 否 | 否 | 安装日期 | -| initial_reading | decimal | 10,2 | 是 | 否 | 起始读数 | -| current_reading | decimal | 10,2 | 是 | 否 | 当前读数 | -| install_address | varchar | 200 | 否 | 否 | 安装地址 | -| status | tinyint | 4 | 是 | 否 | 状态(0正常,1故障,2停用) | -| reading_cycle | tinyint | 4 | 是 | 否 | 抄表周期(1月,2季,3年) | -| description | varchar | 500 | 否 | 否 | 备注说明 | -| creator | varchar | 64 | 否 | 否 | 创建者 | -| create_time | datetime | - | 是 | 否 | 创建时间 | -| updater | varchar | 64 | 否 | 否 | 更新者 | -| update_time | datetime | - | 是 | 否 | 更新时间 | -| deleted | bit | 1 | 是 | 否 | 是否删除 | +| READING_ID | VARCHAR | 20 | 否 | 是 | 抄表记录编号,主键 | +| METER_ID | VARCHAR | 20 | 否 | 否 | 水表编号,外键 | +| TENANT_ID | VARCHAR | 20 | 否 | 否 | 租户标识 | +| READING_DATE | DATE | - | 否 | 否 | 抄表日期 | +| READING_VALUE | DECIMAL | 10,2 | 否 | 否 | 抄表读数 | +| PREV_READING_VALUE | DECIMAL | 10,2 | 是 | 否 | 上次读数 | +| WATER_USAGE | DECIMAL | 10,2 | 否 | 否 | 用水量 | +| READING_TYPE | VARCHAR | 10 | 否 | 否 | 抄表类型(人工/远传/自报) | +| READER_ID | VARCHAR | 20 | 是 | 否 | 抄表员编号 | +| STATUS | VARCHAR | 10 | 否 | 否 | 状态 | +| REMARK | VARCHAR | 200 | 是 | 否 | 备注 | +| CREATE_TIME | DATETIME | - | 否 | 否 | 创建时间 | +| UPDATE_TIME | DATETIME | - | 是 | 否 | 更新时间 | -#### 2.3 抄表收费模块 +#### 4.2.2 账单信息表(TB_BILL) -##### WATER_METER_READING (抄表记录表) - -| 字段名 | 数据类型 | 长度 | 是否必填 | 主键 | 说明 | +| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 描述 | |-------|---------|------|---------|-----|------| -| id | bigint | 20 | 是 | 是 | 抄表记录ID | -| meter_id | bigint | 20 | 是 | 否 | 水表ID | -| reading_date | date | - | 是 | 否 | 抄表日期 | -| reading | decimal | 10,2 | 是 | 否 | 本次读数 | -| last_reading | decimal | 10,2 | 是 | 否 | 上次读数 | -| water_usage | decimal | 10,2 | 是 | 否 | 用水量 | -| reading_type | tinyint | 4 | 是 | 否 | 抄表类型(1人工,2远传,3用户自报) | -| reader_id | bigint | 20 | 否 | 否 | 抄表员ID | -| status | tinyint | 4 | 是 | 否 | 状态(0正常,1异常,2已确认) | -| remark | varchar | 500 | 否 | 否 | 备注 | -| photo_url | varchar | 255 | 否 | 否 | 水表照片URL | -| creator | varchar | 64 | 否 | 否 | 创建者 | -| create_time | datetime | - | 是 | 否 | 创建时间 | -| updater | varchar | 64 | 否 | 否 | 更新者 | -| update_time | datetime | - | 是 | 否 | 更新时间 | -| deleted | bit | 1 | 是 | 否 | 是否删除 | +| BILL_ID | VARCHAR | 20 | 否 | 是 | 账单编号,主键 | +| CUSTOMER_ID | VARCHAR | 20 | 否 | 否 | 客户编号,外键 | +| METER_ID | VARCHAR | 20 | 否 | 否 | 水表编号,外键 | +| READING_ID | VARCHAR | 20 | 是 | 否 | 抄表记录编号,外键 | +| TENANT_ID | VARCHAR | 20 | 否 | 否 | 租户标识 | +| BILL_MONTH | VARCHAR | 7 | 否 | 否 | 账期(格式:YYYY-MM) | +| WATER_USAGE | DECIMAL | 10,2 | 否 | 否 | 用水量 | +| WATER_FEE | DECIMAL | 10,2 | 否 | 否 | 水费金额 | +| OTHER_FEE | DECIMAL | 10,2 | 是 | 否 | 其他费用 | +| TOTAL_AMOUNT | DECIMAL | 10,2 | 否 | 否 | 总金额 | +| DUE_DATE | DATE | - | 否 | 否 | 缴费截止日期 | +| STATUS | VARCHAR | 10 | 否 | 否 | 状态 | +| CREATE_TIME | DATETIME | - | 否 | 否 | 创建时间 | +| UPDATE_TIME | DATETIME | - | 是 | 否 | 更新时间 | -##### WATER_BILLING (水费账单表) +#### 4.2.3 缴费记录表(TB_PAYMENT) -| 字段名 | 数据类型 | 长度 | 是否必填 | 主键 | 说明 | +| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 描述 | |-------|---------|------|---------|-----|------| -| id | bigint | 20 | 是 | 是 | 账单ID | -| bill_no | varchar | 50 | 是 | 否 | 账单编号 | -| customer_id | bigint | 20 | 是 | 否 | 客户ID | -| meter_id | bigint | 20 | 是 | 否 | 水表ID | -| meter_reading_id | bigint | 20 | 是 | 否 | 抄表记录ID | -| billing_period | varchar | 20 | 是 | 否 | 账单周期(yyyyMM) | -| billing_date | date | - | 是 | 否 | 账单日期 | -| water_usage | decimal | 10,2 | 是 | 否 | 用水量 | -| water_fee | decimal | 10,2 | 是 | 否 | 水费金额 | -| sewage_fee | decimal | 10,2 | 是 | 否 | 污水处理费 | -| other_fee | decimal | 10,2 | 否 | 否 | 其他费用 | -| total_amount | decimal | 10,2 | 是 | 否 | 总金额 | -| due_date | date | - | 是 | 否 | 缴费截止日期 | -| status | tinyint | 4 | 是 | 否 | 状态(0未缴费,1已缴费,2部分缴费,3已逾期) | -| remark | varchar | 500 | 否 | 否 | 备注 | -| creator | varchar | 64 | 否 | 否 | 创建者 | -| create_time | datetime | - | 是 | 否 | 创建时间 | -| updater | varchar | 64 | 否 | 否 | 更新者 | -| update_time | datetime | - | 是 | 否 | 更新时间 | -| deleted | bit | 1 | 是 | 否 | 是否删除 | +| PAYMENT_ID | VARCHAR | 20 | 否 | 是 | 缴费记录编号,主键 | +| BILL_ID | VARCHAR | 20 | 是 | 否 | 账单编号,外键 | +| CUSTOMER_ID | VARCHAR | 20 | 否 | 否 | 客户编号,外键 | +| TENANT_ID | VARCHAR | 20 | 否 | 否 | 租户标识 | +| PAYMENT_TYPE | VARCHAR | 10 | 否 | 否 | 缴费类型 | +| PAYMENT_CHANNEL | VARCHAR | 10 | 否 | 否 | 缴费渠道 | +| PAYMENT_AMOUNT | DECIMAL | 10,2 | 否 | 否 | 缴费金额 | +| PAYMENT_DATE | DATETIME | - | 否 | 否 | 缴费时间 | +| TRANSACTION_NO | VARCHAR | 30 | 是 | 否 | 交易流水号 | +| OPERATOR_ID | VARCHAR | 20 | 是 | 否 | 操作员编号 | +| STATUS | VARCHAR | 10 | 否 | 否 | 状态 | +| REMARK | VARCHAR | 200 | 是 | 否 | 备注 | +| CREATE_TIME | DATETIME | - | 否 | 否 | 创建时间 | +| UPDATE_TIME | DATETIME | - | 是 | 否 | 更新时间 | -## 四、数据库优化设计 +### 4.3 表务管理相关表 -### 1. 索引设计策略 +#### 4.3.1 水表档案表(TB_METER_ARCHIVE) -- **主键索引**: 每个表都有自增主键 -- **外键索引**: 对引用外键的字段创建索引 -- **唯一索引**: 对唯一性字段创建唯一索引 -- **复合索引**: 对常用查询条件组合创建复合索引 -- **覆盖索引**: 针对高频查询设计覆盖索引减少回表操作 +| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 描述 | +|-------|---------|------|---------|-----|------| +| METER_ARCHIVE_ID | VARCHAR | 20 | 否 | 是 | 水表档案编号,主键 | +| METER_ID | VARCHAR | 20 | 否 | 否 | 水表编号,外键 | +| TENANT_ID | VARCHAR | 20 | 否 | 否 | 租户标识 | +| FACTORY | VARCHAR | 50 | 是 | 否 | 生产厂家 | +| PRODUCTION_DATE | DATE | - | 是 | 否 | 生产日期 | +| VALID_PERIOD | INT | - | 是 | 否 | 有效期(月) | +| VERIFICATION_DATE | DATE | - | 是 | 否 | 检定日期 | +| NEXT_VERIFICATION_DATE | DATE | - | 是 | 否 | 下次检定日期 | +| STATUS | VARCHAR | 10 | 否 | 否 | 状态 | +| CREATE_TIME | DATETIME | - | 否 | 否 | 创建时间 | +| UPDATE_TIME | DATETIME | - | 是 | 否 | 更新时间 | -### 2. 分表策略 +#### 4.3.2 表务工单表(TB_METER_WORKORDER) -针对大表采用如下分表策略: +| 字段名 | 数据类型 | 长度 | 是否为空 | 主键 | 描述 | +|-------|---------|------|---------|-----|------| +| WORKORDER_ID | VARCHAR | 20 | 否 | 是 | 工单编号,主键 | +| METER_ID | VARCHAR | 20 | 否 | 否 | 水表编号,外键 | +| CUSTOMER_ID | VARCHAR | 20 | 否 | 否 | 客户编号,外键 | +| TENANT_ID | VARCHAR | 20 | 否 | 否 | 租户标识 | +| WORKORDER_TYPE | VARCHAR | 10 | 否 | 否 | 工单类型 | +| WORKORDER_STATUS | VARCHAR | 10 | 否 | 否 | 工单状态 | +| APPLY_DATE | DATE | - | 否 | 否 | 申请日期 | +| PLAN_DATE | DATE | - | 是 | 否 | 计划执行日期 | +| EXECUTE_DATE | DATE | - | 是 | 否 | 实际执行日期 | +| APPLICANT_ID | VARCHAR | 20 | 是 | 否 | 申请人编号 | +| EXECUTOR_ID | VARCHAR | 20 | 是 | 否 | 执行人编号 | +| REASON | VARCHAR | 200 | 是 | 否 | 原因 | +| RESULT | VARCHAR | 200 | 是 | 否 | 结果 | +| CREATE_TIME | DATETIME | - | 否 | 否 | 创建时间 | +| UPDATE_TIME | DATETIME | - | 是 | 否 | 更新时间 | -- **水表读数表(WATER_METER_READING)**: 按年份分表,如WATER_METER_READING_2023 -- **水费账单表(WATER_BILLING)**: 按年份分表,如WATER_BILLING_2023 -- **支付记录表(WATER_PAYMENT)**: 按年份分表,如WATER_PAYMENT_2023 -- **系统日志表(SYS_OPERATE_LOG)**: 按月份分表,如SYS_OPERATE_LOG_202305 +## 5. 索引设计 -### 3. 缓存策略 +为提高系统性能,针对主要查询场景设计了以下索引: -采用Redis缓存以下数据: +### 5.1 主键索引 +- 所有表的主键字段均建立主键索引 -- **系统字典**: 缓存系统字典数据,减少数据库查询 -- **用户权限**: 缓存用户权限数据,提高权限验证效率 -- **热点数据**: 缓存常用查询结果,如水价信息、客户基本信息 -- **计数器**: 缓存计数器数据,如未读消息数、待办任务数 +### 5.2 外键索引 +- 表关联字段建立外键索引,如 CUSTOMER_ID, METER_ID 等 -## 五、数据库安全设计 +### 5.3 常用查询字段索引 +- 客户表:CUSTOMER_NAME, PHONE, ID_NUMBER +- 水表表:METER_NO, BOOK_ID +- 账单表:BILL_MONTH, STATUS +- 缴费表:PAYMENT_DATE, TRANSACTION_NO +- 抄表表:READING_DATE -### 1. 访问控制 +### 5.4 复合索引 +- 客户表:(TENANT_ID, CUSTOMER_TYPE) +- 账单表:(TENANT_ID, CUSTOMER_ID, BILL_MONTH) +- 抄表表:(TENANT_ID, METER_ID, READING_DATE) -- **最小权限原则**: 应用连接数据库账号仅分配必要的操作权限 -- **账号隔离**: 按模块分配不同的数据库账号 -- **IP限制**: 限制数据库服务器访问IP -- **加密连接**: 使用SSL/TLS加密数据库连接 +## 6. 数据安全性设计 -### 2. 数据加密 +### 6.1 数据加密 +- 敏感个人信息(如身份证号码、银行账号等)采用加密存储 +- 加密算法采用 AES-256 或同等安全级别的加密方式 -- **敏感数据加密**: 对身份证号、银行账号等敏感信息进行加密存储 -- **传输加密**: 数据传输过程加密 -- **密码加盐哈希**: 用户密码采用加盐哈希后存储 +### 6.2 权限控制 +- 采用基于角色的访问控制(RBAC)模型 +- 对不同角色用户设置不同的数据访问权限 +- 实现行级、列级的细粒度权限控制 -### 3. 审计日志 +### 6.3 数据备份与恢复 +- 定期全量备份,每日增量备份 +- 异地数据灾备,确保数据安全 +- 完善的数据恢复机制,支持按时间点恢复 -- **操作审计**: 记录数据库关键操作日志 -- **登录审计**: 记录数据库登录日志 -- **变更审计**: 记录重要数据变更日志 - -## 六、数据备份与恢复 - -### 1. 备份策略 - -- **全量备份**: 每天凌晨进行一次全量备份 -- **增量备份**: 每小时进行一次增量备份 -- **归档日志**: 开启binlog日志,支持按时间点恢复 -- **备份校验**: 定期检查备份数据完整性 - -### 2. 恢复策略 - -- **即时恢复**: 支持基于binlog的即时点恢复 -- **快速恢复**: 设计快速恢复方案,明确恢复步骤和责任人 -- **恢复演练**: 定期进行数据恢复演练,验证备份有效性 - -## 七、数据库监控与维护 - -### 1. 性能监控 - -- **指标监控**: CPU使用率、内存使用、磁盘IO、连接数等 -- **慢查询分析**: 监控并分析慢查询日志 -- **资源使用分析**: 分析数据库资源使用情况 - -### 2. 定期维护 - -- **碎片整理**: 定期进行表碎片整理 -- **统计信息更新**: 定期更新统计信息 -- **参数优化**: 根据运行情况优化数据库参数 \ No newline at end of file +### 6.4 数据审计 +- 关键业务操作的数据变更记录 +- 敏感数据访问日志记录 +- 数据异常访问监控与告警 \ No newline at end of file diff --git a/water_biz_deployment_design.md b/water_biz_deployment_design.md index a2151d0..0986de5 100644 --- a/water_biz_deployment_design.md +++ b/water_biz_deployment_design.md @@ -1,745 +1,324 @@ -# 福建水务营收系统部署运维设计 - -## 一、部署架构设计 - -### 1. 总体部署架构 - -福建水务营收系统采用分层部署架构,确保系统的高可用性、可扩展性和安全性。系统部署架构如下图所示: - -```mermaid -graph TD - subgraph 接入层 - LB1[负载均衡器-主] - LB2[负载均衡器-备] - end - - subgraph Web应用层 - WEB1[Web服务器1] - WEB2[Web服务器2] - WEB3[Web服务器3] - end - - subgraph 应用服务层 - APP1[应用服务器1] - APP2[应用服务器2] - APP3[应用服务器3] - end - - subgraph 数据存储层 - subgraph MySQL集群 - MasterDB[(主数据库)] - SlaveDB1[(从数据库1)] - SlaveDB2[(从数据库2)] - end - - subgraph Redis集群 - RedisMaster[(Redis主节点)] - RedisSlave1[(Redis从节点1)] - RedisSlave2[(Redis从节点2)] - end - - subgraph 文件存储 - MinIO1[MinIO节点1] - MinIO2[MinIO节点2] - end - end - - LB1 --> WEB1 - LB1 --> WEB2 - LB1 --> WEB3 - LB2 --> WEB1 - LB2 --> WEB2 - LB2 --> WEB3 - - WEB1 --> APP1 - WEB1 --> APP2 - WEB1 --> APP3 - WEB2 --> APP1 - WEB2 --> APP2 - WEB2 --> APP3 - WEB3 --> APP1 - WEB3 --> APP2 - WEB3 --> APP3 - - APP1 --> MasterDB - APP1 --> SlaveDB1 - APP1 --> SlaveDB2 - APP1 --> RedisMaster - APP1 --> RedisSlave1 - APP1 --> RedisSlave2 - APP1 --> MinIO1 - APP1 --> MinIO2 - - APP2 --> MasterDB - APP2 --> SlaveDB1 - APP2 --> SlaveDB2 - APP2 --> RedisMaster - APP2 --> RedisSlave1 - APP2 --> RedisSlave2 - APP2 --> MinIO1 - APP2 --> MinIO2 - - APP3 --> MasterDB - APP3 --> SlaveDB1 - APP3 --> SlaveDB2 - APP3 --> RedisMaster - APP3 --> RedisSlave1 - APP3 --> RedisSlave2 - APP3 --> MinIO1 - APP3 --> MinIO2 - - MasterDB --> SlaveDB1 - MasterDB --> SlaveDB2 - RedisMaster --> RedisSlave1 - RedisMaster --> RedisSlave2 -``` - -### 2. 物理部署方案 - -#### 2.1 硬件配置要求 - -| 服务器类型 | 数量 | CPU | 内存 | 存储 | 网络 | 用途 | -|-----------|------|-----|------|------|------|------| -| 负载均衡服务器 | 2 | 8核 | 16GB | 200GB SSD | 双千兆网卡 | 负载均衡、反向代理 | -| Web服务器 | 3 | 16核 | 32GB | 200GB SSD | 千兆网卡 | 部署前端应用 | -| 应用服务器 | 3 | 16核 | 64GB | 500GB SSD | 千兆网卡 | 部署后端应用 | -| 数据库服务器 | 3 | 32核 | 128GB | 2TB SSD RAID10 | 千兆网卡 | 部署MySQL数据库 | -| 缓存服务器 | 3 | 16核 | 64GB | 500GB SSD | 千兆网卡 | 部署Redis缓存 | -| 存储服务器 | 2 | 16核 | 32GB | 10TB RAID5 | 千兆网卡 | 文件存储 | -| 监控服务器 | 1 | 8核 | 16GB | 500GB SSD | 千兆网卡 | 运行监控系统 | -| 备份服务器 | 1 | 8核 | 16GB | 20TB RAID6 | 千兆网卡 | 数据备份 | - -#### 2.2 网络拓扑 - -```mermaid -graph TD - Internet((互联网)) --> FW[防火墙] - FW --> DMZ{DMZ区域} - DMZ --> LB[负载均衡器] - LB --> Web{Web服务区} - Web --> App{应用服务区} - App --> DB{数据库区} - App --> Cache{缓存区} - App --> Storage{存储区} -``` - -#### 2.3 安全区域划分 - -- **互联网区域**: 外部用户访问区域 -- **DMZ区域**: 部署负载均衡器和反向代理服务器 -- **Web服务区**: 部署Web服务器 -- **应用服务区**: 部署应用服务器 -- **数据库区**: 部署数据库服务器 -- **缓存区**: 部署缓存服务器 -- **存储区**: 部署文件存储服务器 - -## 二、软件部署方案 - -### 1. 软件环境配置 - -#### 1.1 操作系统配置 - -- **操作系统**: CentOS 8.x / Ubuntu 20.04 LTS -- **内核参数优化**: - ``` - net.ipv4.tcp_max_syn_backlog = 8192 - net.core.somaxconn = 4096 - net.ipv4.tcp_fin_timeout = 30 - net.ipv4.tcp_keepalive_time = 1200 - vm.swappiness = 10 - ``` - -#### 1.2 Web服务器配置 - -- **软件**: Nginx 1.20+ -- **配置要点**: - - 启用HTTP/2协议 - - 启用GZIP压缩 - - 配置SSL证书 - - 配置反向代理 - - 静态资源缓存策略 - -#### 1.3 应用服务器配置 - -- **软件**: JDK 11+, Spring Boot 2.7.x -- **配置要点**: - - JVM参数优化: `-Xms4g -Xmx4g -XX:+UseG1GC` - - 应用配置参数化 - - 配置健康检查接口 - - 配置日志输出级别 - -#### 1.4 数据库服务器配置 - -- **软件**: MySQL 8.0+ -- **配置要点**: - - 主从复制配置 - - 缓冲池优化 - - 慢查询日志配置 - - 备份策略配置 - -#### 1.5 缓存服务器配置 - -- **软件**: Redis 6.0+ -- **配置要点**: - - 持久化配置 - - 内存管理策略 - - 主从复制配置 - - 密码认证 - -### 2. 部署流程 - -#### 2.1 准备阶段 - -1. 服务器初始化 - - 操作系统安装与配置 - - 网络配置 - - 安全配置(防火墙、SELinux等) - -2. 基础软件安装 - - 安装JDK - - 安装Nginx - - 安装MySQL - - 安装Redis - - 安装MinIO - -#### 2.2 应用部署阶段 - -1. 前端部署 - - 构建前端项目 - - 将构建产物部署到Web服务器 - - 配置Nginx虚拟主机 - -2. 后端部署 - - 构建后端项目 - - 配置数据库连接 - - 配置Redis连接 - - 配置MinIO连接 - - 部署JAR包到应用服务器 - -3. 数据库初始化 - - 创建数据库 - - 导入初始数据 - - 配置数据库账户权限 - -#### 2.3 验证阶段 - -1. 功能验证 - - 用户登录验证 - - 核心业务流程验证 - - 外部系统接口验证 - -2. 性能验证 - - 并发性能测试 - - 响应时间测试 - - 数据库性能测试 - -## 三、容器化部署方案 - -### 1. Docker容器配置 - -#### 1.1 容器镜像设计 - -- **前端镜像**: 基于Nginx,包含前端静态资源 -- **后端镜像**: 基于OpenJDK,包含后端JAR包 -- **数据库镜像**: 基于MySQL官方镜像 -- **缓存镜像**: 基于Redis官方镜像 - -#### 1.2 容器编排设计 - -使用Docker Compose进行容器编排,示例配置文件: - -```yaml -version: '3' - -services: - nginx: - image: nginx:1.20 - ports: - - "80:80" - - "443:443" - volumes: - - ./nginx/conf:/etc/nginx/conf.d - - ./nginx/ssl:/etc/nginx/ssl - - ./nginx/html:/usr/share/nginx/html - networks: - - frontend-network - depends_on: - - backend - - backend: - image: water-biz-backend:1.0 - environment: - - SPRING_PROFILES_ACTIVE=prod - - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/water_biz - - SPRING_REDIS_HOST=redis - volumes: - - ./logs:/app/logs - networks: - - frontend-network - - backend-network - depends_on: - - mysql - - redis - - mysql: - image: mysql:8.0 - environment: - - MYSQL_ROOT_PASSWORD=secret - - MYSQL_DATABASE=water_biz - - MYSQL_USER=water_biz - - MYSQL_PASSWORD=water_biz_pwd - volumes: - - mysql-data:/var/lib/mysql - - ./mysql/init:/docker-entrypoint-initdb.d - networks: - - backend-network - - redis: - image: redis:6.0 - command: redis-server --requirepass redis_pwd - volumes: - - redis-data:/data - networks: - - backend-network - -networks: - frontend-network: - backend-network: - -volumes: - mysql-data: - redis-data: -``` - -### 2. Kubernetes部署方案 - -#### 2.1 K8s部署架构 - -```mermaid -graph TD - subgraph Kubernetes集群 - Ingress[Ingress控制器] - - subgraph 前端命名空间 - FrontSVC[前端服务] - FrontPod1[前端Pod1] - FrontPod2[前端Pod2] - FrontPod3[前端Pod3] - end - - subgraph 后端命名空间 - BackSVC[后端服务] - BackPod1[后端Pod1] - BackPod2[后端Pod2] - BackPod3[后端Pod3] - end - - subgraph 数据库命名空间 - MySQLSVC[MySQL服务] - MySQLSTS[MySQL StatefulSet] - MySQLPod1[MySQL主节点] - MySQLPod2[MySQL从节点1] - MySQLPod3[MySQL从节点2] - end - - subgraph 缓存命名空间 - RedisSVC[Redis服务] - RedisSTS[Redis StatefulSet] - RedisPod1[Redis主节点] - RedisPod2[Redis从节点1] - RedisPod3[Redis从节点2] - end - end - - Ingress --> FrontSVC - FrontSVC --> FrontPod1 - FrontSVC --> FrontPod2 - FrontSVC --> FrontPod3 - - FrontPod1 --> BackSVC - FrontPod2 --> BackSVC - FrontPod3 --> BackSVC - - BackSVC --> BackPod1 - BackSVC --> BackPod2 - BackSVC --> BackPod3 - - BackPod1 --> MySQLSVC - BackPod1 --> RedisSVC - BackPod2 --> MySQLSVC - BackPod2 --> RedisSVC - BackPod3 --> MySQLSVC - BackPod3 --> RedisSVC - - MySQLSVC --> MySQLSTS - MySQLSTS --> MySQLPod1 - MySQLSTS --> MySQLPod2 - MySQLSTS --> MySQLPod3 - - RedisSVC --> RedisSTS - RedisSTS --> RedisPod1 - RedisSTS --> RedisPod2 - RedisSTS --> RedisPod3 -``` - -#### 2.2 K8s资源配置示例 - -**前端Deployment配置**: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: water-biz-frontend - namespace: water-biz-frontend -spec: - replicas: 3 - selector: - matchLabels: - app: water-biz-frontend - template: - metadata: - labels: - app: water-biz-frontend - spec: - containers: - - name: water-biz-frontend - image: water-biz-frontend:1.0 - ports: - - containerPort: 80 - resources: - requests: - memory: "256Mi" - cpu: "200m" - limits: - memory: "512Mi" - cpu: "500m" - livenessProbe: - httpGet: - path: /health - port: 80 - initialDelaySeconds: 30 - periodSeconds: 10 -``` - -**后端Deployment配置**: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: water-biz-backend - namespace: water-biz-backend -spec: - replicas: 3 - selector: - matchLabels: - app: water-biz-backend - template: - metadata: - labels: - app: water-biz-backend - spec: - containers: - - name: water-biz-backend - image: water-biz-backend:1.0 - ports: - - containerPort: 8080 - env: - - name: SPRING_PROFILES_ACTIVE - value: "prod" - - name: SPRING_DATASOURCE_URL - valueFrom: - configMapKeyRef: - name: water-biz-config - key: database.url - resources: - requests: - memory: "1Gi" - cpu: "500m" - limits: - memory: "2Gi" - cpu: "1000m" - livenessProbe: - httpGet: - path: /actuator/health - port: 8080 - initialDelaySeconds: 60 - periodSeconds: 15 -``` - -## 四、系统运维方案 - -### 1. 监控方案 - -#### 1.1 监控架构 - -```mermaid -graph TD - App[应用服务] --> Prometheus[Prometheus] - DB[数据库] --> Prometheus - OS[操作系统] --> Prometheus - Net[网络设备] --> Prometheus - - Prometheus --> Grafana[Grafana] - Prometheus --> AlertManager[告警管理器] - - AlertManager --> Email[邮件通知] - AlertManager --> SMS[短信通知] - AlertManager --> WeChat[微信通知] -``` - -#### 1.2 监控指标 - -- **系统层监控** - - CPU使用率 - - 内存使用率 - - 磁盘I/O - - 网络流量 - - 进程数 - -- **应用层监控** - - JVM指标(堆内存、GC情况) - - 线程池状态 - - HTTP请求统计 - - 业务接口响应时间 - - 异常统计 - -- **数据库监控** - - 连接数 - - 查询性能 - - 事务状态 - - 锁等待情况 - - 缓存命中率 - -- **业务层监控** - - 登录成功/失败次数 - - 抄表数据录入量 - - 水费收缴情况 - - 系统并发用户数 - - 业务处理量 - -### 2. 日志管理 - -#### 2.1 日志采集架构 - -```mermaid -graph TD - App[应用服务] -- 日志文件 --> Filebeat[Filebeat] - Filebeat --> Logstash[Logstash] - Logstash --> ES[Elasticsearch] - ES --> Kibana[Kibana] -``` - -#### 2.2 日志分类 - -- **系统日志**: 操作系统、中间件产生的日志 -- **应用日志**: 应用运行产生的日志 -- **业务日志**: 业务操作产生的日志 -- **安全日志**: 安全相关操作产生的日志 -- **审计日志**: 需要审计的关键操作日志 - -#### 2.3 日志保留策略 - -| 日志类型 | 线上保留时间 | 归档保留时间 | -|---------|------------|-------------| -| 系统日志 | 7天 | 30天 | -| 应用日志 | 15天 | 90天 | -| 业务日志 | 30天 | 1年 | -| 安全日志 | 90天 | 3年 | -| 审计日志 | 1年 | 5年 | - -### 3. 备份恢复策略 - -#### 3.1 备份策略 - -- **数据库备份** - - 全量备份: 每天凌晨进行一次全量备份 - - 增量备份: 每小时进行一次增量备份 - - 实时备份: 开启binlog实时备份 - -- **应用备份** - - 配置文件备份: 每次变更时备份 - - 代码版本备份: 使用Git保存代码版本 - -- **系统备份** - - 系统镜像备份: 每季度进行一次系统镜像备份 - - 关键配置备份: 每次变更时备份 - -#### 3.2 恢复策略 - -- **数据库恢复** - - 按时间点恢复: 可恢复到任意时间点 - - 备份文件恢复: 使用备份文件进行恢复 - - 模拟演练: 每季度进行一次恢复演练 - -- **应用恢复** - - 版本回滚: 可回滚到任意版本 - - 配置恢复: 使用备份配置进行恢复 - -### 4. 安全运维 - -#### 4.1 账号管理 - -- **最小权限原则**: 账号权限满足工作所需的最小权限 -- **权限分离**: 开发、测试、运维账号权限分离 -- **定期审计**: 每季度进行一次账号权限审计 -- **账号生命周期**: 严格管理账号创建、变更、注销流程 - -#### 4.2 漏洞管理 - -- **定期扫描**: 每月进行一次系统漏洞扫描 -- **及时修复**: 关键漏洞24小时内修复 -- **补丁管理**: 建立补丁管理制度,定期更新系统补丁 - -#### 4.3 安全审计 - -- **操作审计**: 记录所有关键操作 -- **登录审计**: 记录所有登录行为 -- **异常行为检测**: 检测并报警异常操作行为 - -### 5. 容量规划 - -#### 5.1 容量评估指标 - -- **用户数**: 系统支持的最大并发用户数 -- **数据量**: 系统数据增长预测 -- **存储容量**: 存储空间增长预测 -- **网络带宽**: 网络流量增长预测 - -#### 5.2 扩容策略 - -- **水平扩容**: 增加服务器节点数量 -- **垂直扩容**: 提升单台服务器配置 -- **分库分表**: 对大表进行分库分表 -- **冷热数据分离**: 将冷数据迁移到低成本存储 - -## 五、持续集成与部署 - -### 1. CI/CD流程 +# 福建水务业务系统部署设计 -```mermaid -graph LR - Code[代码提交] --> Build[构建] - Build --> UnitTest[单元测试] - UnitTest --> CodeScan[代码扫描] - CodeScan --> Package[打包] - Package --> Deploy[部署测试环境] - Deploy --> IntTest[集成测试] - IntTest --> UAT[用户验收测试] - UAT --> Prod[生产环境部署] -``` +## 目录 +- [1. 部署概述](#1-部署概述) +- [2. 部署架构](#2-部署架构) +- [3. 服务器配置](#3-服务器配置) +- [4. 网络架构](#4-网络架构) +- [5. 安全设计](#5-安全设计) +- [6. 部署流程](#6-部署流程) +- [7. 监控与运维](#7-监控与运维) -### 2. 环境管理 +## 1. 部署概述 -- **开发环境**: 供开发人员开发和单元测试使用 -- **测试环境**: 供测试人员进行功能测试 -- **预生产环境**: 与生产环境配置相同,用于最终验证 -- **生产环境**: 正式运行环境 +福建水务业务系统采用集中化部署模式,基于集团私有云环境进行部署,构建高可用、可扩展的系统架构,满足集团及下属各水务公司的业务需求。 -### 3. 发布管理 +### 1.1 部署目标 -#### 3.1 发布流程 +- 实现系统的集中部署和统一管理 +- 确保系统高可用性和可靠性 +- 支持业务动态扩展和弹性伸缩 +- 保障数据安全和业务连续性 +- 降低运维成本,提高管理效率 -1. **发布申请**: 提交发布申请,说明发布内容 -2. **审批**: 相关负责人审批 -3. **预发布**: 在预生产环境部署验证 -4. **发布计划**: 制定详细的发布计划和回滚计划 -5. **正式发布**: 按计划在生产环境发布 -6. **验证**: 发布后进行功能验证 -7. **监控**: 发布后密切监控系统运行情况 +### 1.2 部署原则 -#### 3.2 发布策略 +- **集中部署**:核心业务系统集中部署在集团数据中心,统一管理和维护 +- **多级架构**:采用多级架构设计,实现前端负载分担和后端高可用 +- **灾备设计**:重要系统和数据实现灾备,确保业务连续性 +- **安全防护**:多层次安全防护体系,确保系统和数据安全 +- **弹性扩展**:支持系统横向和纵向扩展,适应业务增长需求 -- **蓝绿发布**: 准备两个环境,一个运行旧版本,一个运行新版本,验证后切换流量 -- **金丝雀发布**: 先将新版本部署到一小部分服务器,验证无误后逐步扩大范围 -- **灰度发布**: 先对一小部分用户开放新版本,验证无误后逐步扩大用户范围 - -## 六、灾备方案 +## 2. 部署架构 -### 1. 灾备架构 - -```mermaid -graph TD - subgraph 主数据中心 - PrimaryApp[应用服务器集群] - PrimaryDB[数据库集群] - PrimaryStorage[存储集群] - end - - subgraph 灾备数据中心 - DRApp[应用服务器集群] - DRDB[数据库集群] - DRStorage[存储集群] - end - - PrimaryDB -- 实时同步 --> DRDB - PrimaryStorage -- 定期同步 --> DRStorage - PrimaryApp -- 配置同步 --> DRApp -``` - -### 2. 灾难恢复流程 - -1. **灾难发生**: 确认主数据中心不可用 -2. **启动灾备**: 激活灾备数据中心 -3. **DNS切换**: 将DNS解析指向灾备中心 -4. **数据验证**: 验证数据完整性 -5. **恢复服务**: 恢复业务服务 -6. **用户通知**: 通知用户服务已恢复 -7. **故障修复**: 修复主数据中心故障 -8. **数据同步**: 将灾备中心数据同步回主中心 -9. **切回主中心**: 将服务切回主数据中心 - -### 3. 灾备演练 - -- **演练频率**: 每半年进行一次灾备演练 -- **演练方式**: 模拟主数据中心故障,激活灾备中心 -- **演练评估**: 评估恢复时间目标(RTO)和恢复点目标(RPO)达成情况 - -## 七、运维工具链 - -### 1. 运维工具清单 - -| 类别 | 工具 | 用途 | -|-----|------|-----| -| 配置管理 | Ansible | 自动化配置管理 | -| 容器管理 | Docker, Kubernetes | 容器化部署与编排 | -| 持续集成 | Jenkins, GitLab CI | 自动化构建与部署 | -| 监控告警 | Prometheus, Grafana, AlertManager | 系统监控与告警 | -| 日志管理 | ELK Stack | 日志收集与分析 | -| 数据库管理 | MySQL Workbench, Redis Desktop Manager | 数据库运维管理 | -| 网络管理 | Netdata, Smokeping | 网络监控与故障排查 | -| 安全管理 | Nessus, OpenVAS | 安全漏洞扫描 | - -### 2. 自动化运维脚本 - -- **系统巡检脚本**: 定期检查系统状态 -- **数据备份脚本**: 自动执行数据备份 -- **日志清理脚本**: 自动清理过期日志 -- **性能基线采集脚本**: 采集系统性能基线 - -## 八、运维管理规范 - -### 1. 变更管理规范 - -- **变更申请**: 所有变更必须提交申请 -- **变更评审**: 重要变更必须经过评审 -- **变更窗口**: 生产环境变更只能在指定时间窗口进行 -- **变更通知**: 提前通知相关人员 -- **变更回滚**: 制定详细的回滚方案 - -### 2. 事件管理规范 - -- **事件分级**: 按影响范围和严重程度分级 -- **响应时间**: 不同级别事件的响应时间要求 -- **升级流程**: 事件升级的条件和流程 -- **通知机制**: 事件通知的方式和对象 -- **事后复盘**: 重大事件后必须进行复盘 - -### 3. 问题管理规范 - -- **问题记录**: 所有问题必须记录 -- **根因分析**: 分析问题根本原因 -- **解决方案**: 制定问题解决方案 -- **知识库**: 建立问题知识库 -- **经验总结**: 定期总结问题处理经验 \ No newline at end of file +### 2.1 总体部署架构 + +福建水务业务系统采用三层架构部署: + +- **接入层**:负责外部访问请求的接入和负载均衡 +- **应用层**:部署业务应用服务,处理业务逻辑 +- **数据层**:部署数据库服务,存储业务数据 + +系统部署采用集群模式,各层均部署多个节点,实现高可用和负载均衡。 + +### 2.2 生产环境部署架构 + +生产环境采用双机房部署方案,包括主生产环境和灾备环境: + +#### 2.2.1 主生产环境 + +主生产环境部署在集团主数据中心,包括: + +- 负载均衡集群:2台负载均衡服务器 +- Web服务器集群:4台Web服务器 +- 应用服务器集群:6台应用服务器 +- 数据库服务器集群:2台主备数据库服务器 +- 文件服务器:2台主备文件服务器 +- 缓存服务器集群:2台缓存服务器 + +#### 2.2.2 灾备环境 + +灾备环境部署在集团备用数据中心,包括: + +- 负载均衡服务器:1台 +- Web服务器:2台 +- 应用服务器:3台 +- 数据库服务器:1台 +- 文件服务器:1台 +- 缓存服务器:1台 + +### 2.3 测试环境部署架构 + +测试环境部署在集团测试中心,用于系统测试和验证,包括: + +- Web服务器:1台 +- 应用服务器:2台 +- 数据库服务器:1台 +- 文件服务器:1台 + +### 2.4 开发环境部署架构 + +开发环境部署在开发中心,用于系统开发和集成测试,包括: + +- 应用服务器:1台 +- 数据库服务器:1台 + +## 3. 服务器配置 + +### 3.1 硬件配置要求 + +#### 3.1.1 负载均衡服务器 + +- CPU:8核 +- 内存:16GB +- 存储:100GB SSD +- 网卡:双千兆网卡 + +#### 3.1.2 Web服务器 + +- CPU:8核 +- 内存:16GB +- 存储:200GB SSD +- 网卡:双千兆网卡 + +#### 3.1.3 应用服务器 + +- CPU:16核 +- 内存:32GB +- 存储:300GB SSD +- 网卡:双千兆网卡 + +#### 3.1.4 数据库服务器 + +- CPU:24核 +- 内存:64GB +- 存储:2TB SSD (RAID 10) +- 网卡:双万兆网卡 + +#### 3.1.5 文件服务器 + +- CPU:8核 +- 内存:16GB +- 存储:4TB (RAID 5) +- 网卡:双千兆网卡 + +#### 3.1.6 缓存服务器 + +- CPU:8核 +- 内存:32GB +- 存储:100GB SSD +- 网卡:双千兆网卡 + +### 3.2 软件配置要求 + +#### 3.2.1 操作系统 + +- Windows Server 2012 R2 64位或更高版本 + +#### 3.2.2 数据库 + +- SQL Server 2012 Enterprise 64位或更高版本 + +#### 3.2.3 应用服务器 + +- IIS 8.0或更高版本 +- .NET Framework 4.5或更高版本 + +#### 3.2.4 缓存服务器 + +- Redis 3.0或更高版本 + +#### 3.2.5 负载均衡 + +- Nginx或Microsoft NLB + +## 4. 网络架构 + +### 4.1 网络拓扑 + +福建水务业务系统网络架构采用三层网络结构: + +- **接入层**:对外提供服务接入,部署防火墙、负载均衡等设备 +- **核心层**:实现业务系统间的互联互通,部署核心交换机 +- **服务层**:部署各类服务器,实现业务处理和数据存储 + +### 4.2 网络安全区域划分 + +网络安全区域划分为以下几个区域: + +- **DMZ区**:部署面向外部的Web服务器,与内网隔离 +- **应用区**:部署业务应用服务器 +- **数据区**:部署数据库服务器和文件服务器 +- **管理区**:部署运维管理服务器 + +### 4.3 网络带宽配置 + +- 外网接入带宽:100Mbps,根据实际需求可升级 +- 内网骨干带宽:1000Mbps +- 服务器接入带宽:1000Mbps +- 数据中心间专线带宽:100Mbps + +## 5. 安全设计 + +### 5.1 网络安全 + +#### 5.1.1 边界安全 + +- 部署高性能防火墙,实现网络隔离 +- 部署入侵检测系统(IDS)和入侵防御系统(IPS) +- 部署Web应用防火墙(WAF),防御Web应用攻击 +- 采用VPN技术,保障远程访问安全 + +#### 5.1.2 内网安全 + +- 网络安全区域划分,实现不同级别网络隔离 +- 内网访问控制,限制不必要的网络访问 +- 内网流量监控,及时发现异常流量 + +### 5.2 系统安全 + +#### 5.2.1 主机安全 + +- 操作系统安全加固,关闭不必要的服务和端口 +- 系统补丁及时更新,修复安全漏洞 +- 部署主机防病毒软件,防御恶意代码 +- 主机审计和日志管理,记录重要操作 + +#### 5.2.2 应用安全 + +- 应用访问控制,基于角色的权限管理 +- 应用操作审计,记录重要业务操作 +- 数据传输加密,保护敏感信息 +- 输入验证,防止SQL注入、XSS等攻击 + +### 5.3 数据安全 + +#### 5.3.1 数据存储安全 + +- 数据库访问控制,限制数据库访问权限 +- 敏感数据加密存储,防止数据泄露 +- 数据库审计,记录重要数据操作 + +#### 5.3.2 数据备份与恢复 + +- 定期数据备份,每日增量备份,每周全量备份 +- 备份数据异地存储,防止灾难性事件导致数据丢失 +- 定期演练数据恢复,确保备份数据可用 + +## 6. 部署流程 + +### 6.1 部署准备 + +- 服务器硬件准备和上架 +- 网络环境配置和测试 +- 操作系统安装和配置 +- 基础软件安装和配置 + +### 6.2 应用部署 + +#### 6.2.1 数据库部署 + +- 数据库服务器配置 +- 数据库实例创建和配置 +- 数据库高可用配置 +- 数据备份策略配置 + +#### 6.2.2 应用服务部署 + +- 应用服务器配置 +- 应用程序部署 +- 应用服务参数配置 +- 应用服务高可用配置 + +#### 6.2.3 Web服务部署 + +- Web服务器配置 +- Web应用部署 +- Web服务参数配置 +- 负载均衡配置 + +### 6.3 系统联调 + +- 各组件功能测试 +- 系统整体联调测试 +- 性能和压力测试 +- 高可用性测试 + +### 6.4 系统上线 + +- 制定上线计划 +- 系统割接准备 +- 系统割接实施 +- 系统运行监控 + +## 7. 监控与运维 + +### 7.1 监控系统 + +#### 7.1.1 基础设施监控 + +- 服务器硬件监控:CPU、内存、磁盘、网络等 +- 网络设备监控:带宽使用率、连接状态等 +- 操作系统监控:系统负载、进程状态等 + +#### 7.1.2 应用监控 + +- 应用服务状态监控 +- 应用性能监控:响应时间、并发数等 +- 业务监控:重要业务指标监控 + +#### 7.1.3 数据库监控 + +- 数据库服务状态监控 +- 数据库性能监控:CPU使用率、内存使用率、IO性能等 +- SQL执行监控:慢查询、锁等待等 + +### 7.2 运维管理 + +#### 7.2.1 日常运维 + +- 系统日常巡检 +- 系统性能优化 +- 系统容量管理 +- 系统备份管理 + +#### 7.2.2 变更管理 + +- 变更申请和审批 +- 变更实施和验证 +- 变更回退预案 +- 变更记录管理 + +#### 7.2.3 故障管理 + +- 故障监控和告警 +- 故障处理流程 +- 故障升级机制 +- 故障复盘和改进 + +#### 7.2.4 应急预案 + +- 系统宕机应急预案 +- 网络故障应急预案 +- 数据丢失应急预案 +- 安全事件应急预案 \ No newline at end of file diff --git a/water_biz_interface_design.md b/water_biz_interface_design.md index ff1790f..df8d5f2 100644 --- a/water_biz_interface_design.md +++ b/water_biz_interface_design.md @@ -1,476 +1,180 @@ -# 福建水务营收系统接口设计 - -## 一、接口设计概述 - -福建水务营收系统采用RESTful风格设计API接口,通过HTTP协议提供服务。系统接口分为内部模块间接口和外部系统集成接口两大类,遵循统一的接口规范和安全策略。 - -## 二、接口设计原则 - -### 1. 设计原则 - -- **RESTful风格**: 接口遵循REST架构风格 -- **版本控制**: 在URL中包含版本信息 -- **统一响应**: 统一的响应格式和状态码 -- **参数校验**: 严格的参数校验确保数据有效性 -- **权限控制**: 基于JWT和RBAC的接口权限控制 -- **幂等性**: 确保关键操作的幂等性 -- **文档完善**: 详细的接口文档说明 - -### 2. 接口地址规范 - -``` -https://{domain}/api/v{version}/{module}/{resource}/{action} -``` - -- **domain**: 系统域名 -- **version**: 接口版本号,如v1 -- **module**: 功能模块,如user、meter -- **resource**: 资源名称,通常为复数形式 -- **action**: 可选的操作名称 - -### 3. 响应格式规范 - -所有接口统一返回JSON格式数据,基本结构如下: - -```json -{ - "code": 0, // 状态码,0表示成功,非0表示失败 - "msg": "success", // 状态描述 - "data": { // 响应数据,可能是对象、数组或null - // 具体的业务数据 - }, - "timestamp": 1621234567890 // 响应时间戳 -} -``` - -### 4. 状态码规范 - -| 状态码 | 说明 | -|-------|------| -| 0 | 成功 | -| 1000-1999 | 用户认证相关错误 | -| 2000-2999 | 权限相关错误 | -| 3000-3999 | 参数相关错误 | -| 4000-4999 | 业务相关错误 | -| 5000-5999 | 系统内部错误 | - -## 三、内部模块接口 - -### 1. 用户认证模块接口 - -#### 1.1 用户登录 - -- **接口地址**: `/api/v1/auth/login` -- **请求方式**: POST -- **接口描述**: 用户登录认证接口 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| username | String | 是 | 用户名 | -| password | String | 是 | 密码 | -| captcha | String | 否 | 验证码 | -| captchaId | String | 否 | 验证码ID | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", - "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", - "expireTime": 1621234567890, - "userInfo": { - "userId": 1, - "username": "admin", - "nickname": "管理员", - "avatar": "https://example.com/avatar.jpg", - "permissions": ["sys:user:list", "sys:user:create"] - } - }, - "timestamp": 1621234567890 -} -``` - -#### 1.2 刷新令牌 - -- **接口地址**: `/api/v1/auth/refresh-token` -- **请求方式**: POST -- **接口描述**: 刷新访问令牌 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| refreshToken | String | 是 | 刷新令牌 | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", - "expireTime": 1621234567890 - }, - "timestamp": 1621234567890 -} -``` - -### 2. 水表管理模块接口 - -#### 2.1 水表列表查询 - -- **接口地址**: `/api/v1/meter/meters` -- **请求方式**: GET -- **接口描述**: 查询水表信息列表 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| customerId | Long | 否 | 客户ID | -| meterNo | String | 否 | 水表编号 | -| meterType | Integer | 否 | 水表类型 | -| status | Integer | 否 | 水表状态 | -| pageNo | Integer | 否 | 页码,默认1 | -| pageSize | Integer | 否 | 每页记录数,默认10 | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "total": 100, - "list": [ - { - "id": 1, - "meterNo": "M20230001", - "customerName": "张三", - "meterType": 1, - "meterTypeName": "普通水表", - "installAddress": "福建省福州市台江区", - "currentReading": 120.5, - "status": 0, - "statusName": "正常" - } - ], - "pageNum": 1, - "pageSize": 10, - "totalPages": 10 - }, - "timestamp": 1621234567890 -} -``` - -#### 2.2 水表详情查询 - -- **接口地址**: `/api/v1/meter/meters/{id}` -- **请求方式**: GET -- **接口描述**: 查询水表详细信息 -- **路径参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| id | Long | 是 | 水表ID | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "id": 1, - "meterNo": "M20230001", - "customerId": 1, - "customerName": "张三", - "meterType": 1, - "meterTypeName": "普通水表", - "caliber": "DN20", - "installDate": "2023-01-15", - "initialReading": 0, - "currentReading": 120.5, - "installAddress": "福建省福州市台江区", - "status": 0, - "statusName": "正常", - "readingCycle": 1, - "readingCycleName": "月", - "description": "安装在一楼进水口", - "createTime": "2023-01-15 10:00:00", - "updateTime": "2023-05-10 15:30:00" - }, - "timestamp": 1621234567890 -} -``` - -### 3. 抄表管理模块接口 - -#### 3.1 提交抄表数据 - -- **接口地址**: `/api/v1/reading/meter-readings` -- **请求方式**: POST -- **接口描述**: 提交水表读数 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| meterId | Long | 是 | 水表ID | -| reading | Decimal | 是 | 本次读数 | -| readingDate | Date | 是 | 抄表日期 | -| readingType | Integer | 是 | 抄表类型(1人工,2远传,3用户自报) | -| photoUrl | String | 否 | 水表照片URL | -| remark | String | 否 | 备注 | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "id": 1, - "meterId": 1, - "meterNo": "M20230001", - "readingDate": "2023-05-10", - "reading": 120.5, - "lastReading": 100.0, - "waterUsage": 20.5, - "readingType": 1, - "readingTypeName": "人工抄表", - "status": 0, - "statusName": "正常" - }, - "timestamp": 1621234567890 -} -``` - -### 4. 收费管理模块接口 - -#### 4.1 生成水费账单 - -- **接口地址**: `/api/v1/billing/generate-bills` -- **请求方式**: POST -- **接口描述**: 根据抄表数据生成水费账单 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| meterReadingIds | Array | 是 | 抄表记录ID数组 | -| billingPeriod | String | 是 | 账单周期(yyyyMM) | -| dueDate | Date | 是 | 缴费截止日期 | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "successCount": 10, - "failCount": 0, - "billIds": [1, 2, 3] - }, - "timestamp": 1621234567890 -} -``` - -#### 4.2 缴费处理 - -- **接口地址**: `/api/v1/payment/payments` -- **请求方式**: POST -- **接口描述**: 处理用户缴费 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| billId | Long | 是 | 账单ID | -| paymentAmount | Decimal | 是 | 支付金额 | -| paymentMethod | Integer | 是 | 支付方式(1现金,2银行卡,3微信,4支付宝) | -| paymentDate | Date | 是 | 支付日期 | -| transactionNo | String | 否 | 交易流水号 | -| remark | String | 否 | 备注 | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "id": 1, - "billId": 1, - "billNo": "B20230510001", - "customerName": "张三", - "paymentAmount": 100.0, - "paymentMethod": 1, - "paymentMethodName": "现金", - "paymentDate": "2023-05-10", - "receiptNo": "R20230510001" - }, - "timestamp": 1621234567890 -} -``` - -## 四、外部系统接口 - -### 1. 银行支付接口 - -#### 1.1 银行代扣申请 - -- **接口地址**: `/api/v1/external/bank/deduction` -- **请求方式**: POST -- **接口描述**: 向银行发起代扣申请 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| bankCode | String | 是 | 银行代码 | -| billIds | Array | 是 | 账单ID数组 | -| batchNo | String | 是 | 批次号 | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "batchNo": "BK20230510001", - "totalAmount": 1000.0, - "totalCount": 10, - "requestTime": "2023-05-10 10:00:00", - "status": "PROCESSING" - }, - "timestamp": 1621234567890 -} -``` - -### 2. 微信支付接口 - -#### 2.1 发起微信支付 - -- **接口地址**: `/api/v1/external/wechat/create-order` -- **请求方式**: POST -- **接口描述**: 创建微信支付订单 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| billId | Long | 是 | 账单ID | -| openId | String | 是 | 用户微信openId | -| amount | Decimal | 是 | 支付金额 | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "prepayId": "wx2023051010000000000000000000", - "nonceStr": "ibuaiVcKdpRxkhJA", - "timeStamp": "1621234567", - "signType": "MD5", - "paySign": "70EA570631E4BB79628FBCA90534C63FF7FADD89" - }, - "timestamp": 1621234567890 -} -``` - -### 3. 短信通知接口 - -#### 3.1 发送短信通知 - -- **接口地址**: `/api/v1/external/sms/send` -- **请求方式**: POST -- **接口描述**: 发送短信通知 -- **请求参数**: - -| 参数名 | 类型 | 是否必填 | 说明 | -|-------|------|---------|-----| -| phone | String | 是 | 手机号 | -| templateId | String | 是 | 短信模板ID | -| params | Object | 是 | 短信参数 | - -- **响应示例**: - -```json -{ - "code": 0, - "msg": "success", - "data": { - "messageId": "SMS20230510001", - "sendTime": "2023-05-10 10:00:00", - "status": "SENT" - }, - "timestamp": 1621234567890 -} -``` - -## 五、接口安全设计 +# 福建水务业务系统接口设计 -### 1. 认证机制 +## 目录 +- [1. 接口概述](#1-接口概述) +- [2. 外部接口](#2-外部接口) +- [3. 内部接口](#3-内部接口) +- [4. 接口标准](#4-接口标准) -- **JWT认证**: 使用JWT进行接口认证,访问需要权限的接口时必须在请求头中携带有效的Token -- **Token刷新**: 提供Token刷新机制,避免频繁登录 -- **多端登录控制**: 支持控制同一账号多端登录策略 - -### 2. 权限控制 - -- **RBAC权限模型**: 基于角色的权限控制,精细化权限管理 -- **接口权限**: 每个接口绑定权限标识,通过注解方式声明 -- **数据权限**: 支持部门级、用户级数据权限控制 - -### 3. 安全防护 - -- **参数验证**: 严格校验请求参数,防止非法参数 -- **SQL注入防护**: 使用参数绑定方式防止SQL注入 -- **XSS防护**: 过滤请求参数中的恶意脚本 -- **CSRF防护**: 使用Token验证防止CSRF攻击 -- **接口限流**: 对关键接口实施限流措施,防止恶意攻击 -- **日志追踪**: 记录接口调用日志,便于安全审计 - -## 六、接口测试策略 - -### 1. 单元测试 - -- 编写接口单元测试,验证接口功能正确性 -- 使用MockMVC进行Controller层测试 -- 使用Mock框架模拟外部依赖 +## 1. 接口概述 -### 2. 集成测试 +福建水务业务系统提供丰富的接口,用于与外部系统集成以及系统内部各模块间的数据交换。接口设计遵循标准化、安全性、可扩展性的原则,采用REST风格设计,支持JSON数据格式。 -- 编写接口集成测试,验证接口与其他组件的交互 -- 使用测试容器进行数据库测试 -- 测试完整业务流程 +## 2. 外部接口 -### 3. 性能测试 +### 2.1 与银行接口 -- 使用JMeter等工具进行接口性能测试 -- 测试接口响应时间 -- 测试接口并发处理能力 -- 测试系统在高负载下的稳定性 +#### 2.1.1 银行代扣接口 -## 七、接口文档管理 +**功能描述**:通过银行系统自动从用户账户中扣除水费。 -### 1. 文档生成 +**接口规范**: +- 接口方式:文件交换或WebService +- 数据格式:文本文件或XML +- 交换频率:每日或实时 -- 使用Swagger/Knife4j自动生成接口文档 -- 通过API注解提供详细的接口说明 -- 支持在线调试接口 +#### 2.1.2 银行实时缴费接口 -### 2. 版本管理 +**功能描述**:用户在银行柜台、网上银行或手机银行实时缴纳水费。 -- 明确的接口版本控制策略 -- 接口变更记录 -- 兼容性说明 +**接口规范**: +- 接口方式:WebService或HTTP接口 +- 数据格式:XML或JSON +- 交换频率:实时 -### 3. 文档发布 +### 2.2 支付宝接口 -- 提供在线接口文档站点 -- 支持导出PDF、HTML等格式 -- 权限控制,限制文档访问范围 \ No newline at end of file +**功能描述**:用户通过支付宝缴纳水费。 + +**接口规范**: +- 接口方式:HTTP接口 +- 数据格式:JSON +- 交换频率:实时 + +### 2.3 微信支付接口 + +**功能描述**:用户通过微信支付缴纳水费。 + +**接口规范**: +- 接口方式:HTTP接口 +- 数据格式:XML或JSON +- 交换频率:实时 + +### 2.4 短信接口 + +**功能描述**:向用户发送各类业务通知短信。 + +**接口规范**: +- 接口方式:HTTP接口 +- 数据格式:JSON +- 交换频率:实时 + +### 2.5 物联网集抄平台接口 + +**功能描述**:与物联网集抄平台交互,获取智能水表数据。 + +**接口规范**: +- 接口方式:HTTP接口或WebService +- 数据格式:JSON或XML +- 交换频率:定时或实时 + +## 3. 内部接口 + +### 3.1 用户接口 + +#### 3.1.1 用户信息查询接口 + +**功能描述**:查询用户基本信息。 + +**接口规范**: +- 请求方式:GET +- 请求路径:/api/users/{userId} +- 返回格式:JSON + +#### 3.1.2 用户信息更新接口 + +**功能描述**:更新用户基本信息。 + +**接口规范**: +- 请求方式:PUT +- 请求路径:/api/users/{userId} +- 请求/返回格式:JSON + +### 3.2 水表接口 + +#### 3.2.1 水表信息查询接口 + +**功能描述**:查询水表基本信息。 + +**接口规范**: +- 请求方式:GET +- 请求路径:/api/meters/{meterId} +- 返回格式:JSON + +#### 3.2.2 水表读数上传接口 + +**功能描述**:上传水表读数。 + +**接口规范**: +- 请求方式:POST +- 请求路径:/api/meters/{meterId}/readings +- 请求/返回格式:JSON + +### 3.3 账单接口 + +#### 3.3.1 账单查询接口 + +**功能描述**:查询用户账单信息。 + +**接口规范**: +- 请求方式:GET +- 请求路径:/api/users/{userId}/bills +- 返回格式:JSON + +#### 3.3.2 缴费接口 + +**功能描述**:处理用户缴费。 + +**接口规范**: +- 请求方式:POST +- 请求路径:/api/bills/{billId}/payments +- 请求/返回格式:JSON + +### 3.4 工单接口 + +#### 3.4.1 工单创建接口 + +**功能描述**:创建业务工单。 + +**接口规范**: +- 请求方式:POST +- 请求路径:/api/workorders +- 请求/返回格式:JSON + +#### 3.4.2 工单状态更新接口 + +**功能描述**:更新工单处理状态。 + +**接口规范**: +- 请求方式:PUT +- 请求路径:/api/workorders/{workorderId}/status +- 请求/返回格式:JSON + +## 4. 接口标准 + +### 4.1 接口协议 + +系统接口主要采用以下协议: + +- **RESTful API**:适用于系统内部模块间的交互以及移动应用等轻量级客户端 +- **WebService**:适用于与外部系统的集成,特别是银行等传统机构 +- **消息队列**:适用于异步处理的场景,如批量数据处理、通知推送等 + +### 4.2 数据格式 + +接口数据主要采用以下格式: + +- **JSON**:主要用于RESTful API接口,结构简单清晰,适合Web应用 +- **XML**:主要用于WebService接口,兼容性好,适合与传统系统对接 +- **文本文件**:主要用于批量数据交换,如银行代扣文件等 + +### 4.3 接口安全 + +接口安全采用以下机制: + +- **令牌认证**:使用JWT(JSON Web Token)进行身份认证 +- **签名验证**:请求参数签名,确保数据完整性 +- **IP白名单**:限制接口调用者的IP地址 +- **传输加密**:使用HTTPS协议加密传输数据 +- **接口限流**:限制单位时间内的请求次数 +- **访问日志**:记录所有接口调用情况 \ No newline at end of file diff --git a/water_biz_module_design.md b/water_biz_module_design.md index 9533379..8ef8050 100644 --- a/water_biz_module_design.md +++ b/water_biz_module_design.md @@ -1,553 +1,368 @@ -# 福建水务营收系统核心模块功能设计 - -## 一、系统功能模块概览 - -福建水务营收系统是一套现代化的水务管理系统,按照业务功能划分为若干个核心模块,每个模块负责特定的业务处理。本文档详细描述各个核心模块的功能设计。 - -## 二、用户管理模块 - -### 1. 功能概述 - -用户管理模块负责系统用户的信息管理、认证授权、密码安全策略等功能,是系统的基础管理模块。 - -### 2. 功能列表 - -- 用户信息管理:用户信息的添加、修改、删除、查询 -- 用户认证:用户登录认证、密码修改、密码重置 -- 角色管理:角色的添加、修改、删除、查询 -- 权限管理:基于RBAC模型的权限控制 -- 部门管理:部门的添加、修改、删除、查询 -- 岗位管理:岗位的添加、修改、删除、查询 -- 用户分组:用户按业务需求进行分组管理 -- 操作日志:记录用户操作行为 -- 登录日志:记录用户登录情况 - -### 3. 业务流程 - -```mermaid -graph TD - A[用户登录] --> B{验证身份} - B -- 成功 --> C[获取用户权限] - B -- 失败 --> D[返回错误信息] - C --> E[生成用户菜单] - E --> F[进入系统] -``` - -### 4. 核心功能说明 - -1. **基于RBAC的权限控制** - - 支持菜单权限、功能权限、数据权限三级权限控制 - - 灵活的权限分配机制,支持角色继承 - - 完善的权限验证机制,确保系统安全 - -2. **多因素认证** - - 支持账号密码认证 - - 支持短信验证码认证 - - 支持验证码认证 - - 支持记住我功能 - -3. **安全策略** - - 密码复杂度要求 - - 密码定期更换 - - 账号锁定策略 - - 登录异常检测 - -## 三、水表管理模块 - -### 1. 功能概述 - -水表管理模块负责管理用户水表的基础信息、生命周期管理、状态变更等功能,为抄表和收费提供基础数据支持。 - -### 2. 功能列表 - -- 水表信息管理:水表基础信息的添加、修改、删除、查询 -- 水表安装管理:记录水表安装信息,生成安装工单 -- 水表更换管理:记录水表更换信息,生成更换工单 -- 水表拆除管理:记录水表拆除信息,生成拆除工单 -- 水表维修管理:记录水表维修信息,生成维修工单 -- 水表巡检管理:记录水表巡检信息,生成巡检工单 -- 水表状态管理:管理水表的运行状态 -- 批量导入导出:支持批量导入导出水表信息 -- 水表档案管理:维护水表的历史记录和档案资料 - -### 3. 业务流程 - -```mermaid -graph TD - A[新增水表信息] --> B[生成水表编号] - B --> C[关联用户信息] - C --> D[初始化水表状态] - D --> E[安装水表] - E --> F[完成安装] - - G[水表故障] --> H[生成维修工单] - H --> I[指派维修人员] - I --> J[维修处理] - J --> K[更新水表状态] - - L[水表报废] --> M[生成更换工单] - M --> N[拆除旧表] - N --> O[安装新表] - O --> P[更新水表信息] -``` - -### 4. 核心功能说明 - -1. **水表生命周期管理** - - 安装:记录安装时间、安装位置、起始读数等信息 - - 维修:记录维修原因、维修时间、维修人员等信息 - - 更换:记录更换原因、更换时间、新旧表信息等 - - 拆除:记录拆除原因、拆除时间、最终读数等信息 - -2. **水表分类管理** - - 按类型分类:普通水表、智能水表、IC卡水表、远传水表等 - - 按口径分类:DN15、DN20、DN25等规格 - - 按用途分类:居民用水、商业用水、工业用水等 - -3. **水表批量操作** - - 批量导入:支持Excel导入水表信息 - - 批量更新:支持批量更新水表状态 - - 批量导出:支持导出水表数据进行分析 - -## 四、抄表管理模块 - -### 1. 功能概述 - -抄表管理模块负责水表读数的采集、审核、异常处理等功能,是水费计算的基础和前提。 - -### 2. 功能列表 - -- 抄表计划管理:抄表计划的制定、修改、删除、查询 -- 抄表任务分配:根据抄表员区域分配抄表任务 -- 抄表数据录入:支持多种方式录入抄表数据 -- 抄表数据审核:对录入的抄表数据进行审核 -- 异常数据处理:对异常抄表数据进行处理 -- 抄表统计分析:抄表完成率、抄表准确率等统计 -- 水量分析:用水量异常分析、同比环比分析 -- 远程抄表管理:自动采集远传水表数据 -- 抄表路线管理:规划优化抄表路线 -- 抄表工作量统计:统计抄表员工作量 - -### 3. 业务流程 - -```mermaid -graph TD - A[制定抄表计划] --> B[生成抄表任务] - B --> C[分配抄表员] - C --> D[抄表数据采集] - D --> E{数据审核} - E -- 正常 --> F[生成水费账单] - E -- 异常 --> G[异常处理] - G --> H[重新抄表] - H --> E - G -- 确认异常 --> I[人工核实] - I --> F -``` - -### 4. 核心功能说明 - -1. **多种抄表方式支持** - - 人工抄表:通过手持终端录入数据 - - 远程抄表:自动采集远传水表数据 - - 用户自报:用户通过网站、APP自行上报读数 - - 图片识别:通过上传水表照片自动识别读数 - -2. **异常数据处理** - - 零水量:连续几个月无用水的异常处理 - - 用水量突增:较往常用水量突然增加的异常处理 - - 用水量突减:较往常用水量突然减少的异常处理 - - 重复录入:相同水表多次录入数据的处理 - - 倒走水量:当前读数小于上次读数的处理 - -3. **抄表质量控制** - - 抄表准确率考核 - - 抄表覆盖率考核 - - 抄表及时率考核 - - 抄表异常处理率考核 - -## 五、收费管理模块 - -### 1. 功能概述 - -收费管理模块负责水费的计算、收取、欠费管理等功能,是系统的核心业务模块。 - -### 2. 功能列表 - -- 水费计算:根据抄表数据和水价政策计算水费 -- 水费账单生成:生成用户水费账单 -- 水费收取:多渠道收取水费 -- 催缴管理:欠费催缴通知和管理 -- 优惠政策管理:各类用户优惠政策的设置和应用 -- 水价管理:不同用户类型、阶梯水价的管理 -- 缴费记录管理:记录和查询用户缴费历史 -- 收费统计分析:收费率、收费金额等统计分析 -- 坐收中心管理:营业厅收费管理 -- 稽查管理:对违规用水行为的稽查和处理 - -### 3. 业务流程 - -```mermaid -graph TD - A[抄表数据确认] --> B[计算水费] - B --> C[生成账单] - C --> D[通知用户] - D --> E{用户缴费} - E -- 按时缴费 --> F[完成缴费] - E -- 逾期未缴 --> G[催缴通知] - G --> H{是否缴费} - H -- 是 --> F - H -- 否 --> I[强制催缴] - I --> J{是否缴费} - J -- 是 --> F - J -- 否 --> K[停水处理] - K --> L{是否缴费} - L -- 是 --> M[恢复供水] - M --> F -``` - -### 4. 核心功能说明 - -1. **多种收费方式支持** - - 营业厅收费:用户前往营业厅缴费 - - 银行代扣:通过银行自动代扣水费 - - 网上支付:通过网站、APP在线支付 - - 微信支付:通过微信公众号、小程序支付 - - 支付宝支付:通过支付宝支付 - - 预存抵扣:预存水费自动抵扣 - - 第三方代收:通过合作的第三方机构代收 - -2. **水价政策管理** - - 基础水价设置 - - 阶梯水价设置 - - 特殊时期水价调整 - - 不同用户类型水价设置 - - 季节性水价调整 - -3. **欠费管理** - - 欠费记录管理 - - 催缴通知管理 - - 停水管理 - - 恢复供水管理 - - 滞纳金计算 - -## 六、账务管理模块 - -### 1. 功能概述 - -账务管理模块负责系统财务账务处理,包括收费入账、销账、退费等功能,是系统财务管理的核心模块。 - -### 2. 功能列表 - -- 收费入账:收费记录的财务入账处理 -- 销账管理:已收费用的销账处理 -- 退费管理:退费申请、审批、执行 -- 坏账管理:无法收回的水费坏账处理 -- 日结管理:每日收费的结算和统计 -- 月结管理:每月收费的结算和统计 -- 年结管理:年度收费的结算和统计 -- 账务调整:账务数据的调整和修正 -- 收费报表:各类收费统计报表生成 -- 财务对账:与财务系统的对账功能 - -### 3. 业务流程 - -```mermaid -graph TD - A[收费记录] --> B[收费入账] - B --> C{是否需要退费} - C -- 是 --> D[申请退费] - D --> E[退费审批] - E --> F[执行退费] - F --> G[退费入账] - C -- 否 --> H[正常销账] - G --> H - H --> I[日结处理] - I --> J[月结处理] - J --> K[年结处理] -``` - -### 4. 核心功能说明 - -1. **账务处理流程** - - 收费入账:记录收费金额、收费方式、收费时间等 - - 销账处理:标记账单已缴费,更新账务状态 - - 退费处理:处理用户退费申请,执行退费操作 - - 调账处理:对账务数据进行调整和修正 - -2. **财务统计功能** - - 日收费统计:统计每日收费情况 - - 月收费统计:统计每月收费情况 - - 年收费统计:统计年度收费情况 - - 收费方式统计:按收费方式统计收费情况 - - 欠费率统计:统计欠费率和欠费金额 - -3. **财务报表功能** - - 收费日报表:每日收费情况报表 - - 收费月报表:每月收费情况报表 - - 收费年报表:年度收费情况报表 - - 欠费统计报表:欠费情况统计报表 - - 坏账统计报表:坏账情况统计报表 - -## 七、票据管理模块 - -### 1. 功能概述 - -票据管理模块负责水费发票的开具、管理、查询等功能,确保票据管理的规范性和合法性。 - -### 2. 功能列表 - -- 发票开具:为用户开具水费发票 -- 发票作废:对错误发票进行作废处理 -- 发票查询:查询发票开具情况 -- 发票补打:补打发票 -- 发票领用管理:管理发票的领用和库存 -- 发票使用统计:统计发票使用情况 -- 电子发票管理:管理电子发票的开具和发送 -- 票据日志:记录票据操作日志 - -### 3. 业务流程 - -```mermaid -graph TD - A[用户缴费] --> B{需要发票} - B -- 需要 --> C[选择发票类型] - C --> D{电子发票/纸质发票} - D -- 电子发票 --> E[生成电子发票] - E --> F[发送至用户邮箱/手机] - D -- 纸质发票 --> G[打印纸质发票] - G --> H[交付用户] - B -- 不需要 --> I[完成缴费] - F --> I - H --> I -``` - -### 4. 核心功能说明 - -1. **发票管理功能** - - 发票开具:根据用户缴费情况开具发票 - - 发票作废:对错误发票进行作废处理 - - 发票重打:对损坏的发票进行重新打印 - - 发票查询:查询发票开具情况和历史记录 - -2. **多种发票类型支持** - - 普通纸质发票 - - 增值税普通发票 - - 增值税专用发票 - - 电子发票 - -3. **电子发票功能** - - 电子发票生成 - - 电子发票发送(邮件、短信等) - - 电子发票查验 - - 电子发票下载和打印 - -## 八、营业网点管理模块 - -### 1. 功能概述 - -营业网点管理模块负责管理水务公司的营业网点、窗口、人员等信息,为用户提供线下服务支持。 - -### 2. 功能列表 - -- 营业网点管理:网点的添加、修改、删除、查询 -- 窗口管理:服务窗口的管理和配置 -- 营业时间管理:网点营业时间的设置 -- 人员排班管理:营业人员的排班安排 -- 业务办理统计:各网点业务办理情况统计 -- 网点评价管理:客户对网点服务的评价管理 -- 客户查询:查询客户相关信息 -- 业务办理:办理各类水务业务 -- 现金管理:网点现金收取和管理 - -### 3. 业务流程 - -```mermaid -graph TD - A[客户到访] --> B[取号排队] - B --> C[窗口叫号] - C --> D[业务受理] - D --> E{是否需要缴费} - E -- 是 --> F[缴费处理] - F --> G[开具票据] - G --> H[业务完成] - E -- 否 --> H -``` - -### 4. 核心功能说明 - -1. **营业网点管理功能** - - 网点信息管理:地址、联系方式、营业时间等 - - 窗口设置:服务类型、窗口编号等 - - 人员安排:窗口工作人员安排 - - 业务统计:业务办理量、收费金额等统计 - -2. **排队叫号系统** - - 取号管理:客户取号 - - 叫号管理:窗口叫号 - - 业务分类:不同业务类型的排队管理 - - 优先级设置:特殊客户优先处理 - -3. **网点业务管理** - - 业务类型管理:可办理的业务类型 - - 业务流程管理:各类业务的办理流程 - - 业务量统计:统计各类业务办理情况 - - 服务质量评价:客户对服务的评价管理 - -## 九、报表管理模块 - -### 1. 功能概述 - -报表管理模块负责系统各类统计报表的生成、查询、导出等功能,为管理决策提供数据支持。 - -### 2. 功能列表 - -- 营收报表:收费情况统计报表 -- 抄表报表:抄表情况统计报表 -- 用水分析报表:用水量分析报表 -- 客户报表:客户信息统计报表 -- 综合分析报表:多维度综合分析报表 -- 自定义报表:支持自定义报表配置 -- 报表导出:报表数据导出为Excel、PDF等格式 -- 报表打印:报表打印功能 -- 数据可视化:图表、仪表盘等可视化展示 - -### 3. 业务流程 - -```mermaid -graph TD - A[选择报表类型] --> B[设置查询条件] - B --> C[生成报表] - C --> D{操作选择} - D -- 导出 --> E[选择导出格式] - E --> F[保存报表文件] - D -- 打印 --> G[报表打印] - D -- 数据分析 --> H[数据钻取分析] -``` - -### 4. 核心功能说明 - -1. **预设报表功能** - - 营收报表:按日、周、月、年统计收费情况 - - 抄表报表:抄表率、抄表异常情况统计 - - 欠费报表:欠费金额、欠费率等统计 - - 用水分析报表:按用户类型、区域等分析用水情况 - -2. **报表定制功能** - - 自定义报表字段 - - 自定义报表条件 - - 自定义报表格式 - - 自定义报表展示方式 - -3. **数据可视化功能** - - 折线图:展示趋势变化 - - 柱状图:比较数量差异 - - 饼图:展示占比情况 - - 地图:展示地理分布 - - 仪表盘:直观展示关键指标 - -## 十、系统管理模块 - -### 1. 功能概述 - -系统管理模块负责系统基础配置、参数设置、日志管理等功能,确保系统正常运行。 - -### 2. 功能列表 - -- 菜单管理:系统菜单的添加、修改、删除、查询 -- 字典管理:系统字典的管理 -- 参数配置:系统参数的配置 -- 通知公告:系统通知和公告管理 -- 系统日志:记录系统操作日志 -- 登录日志:记录用户登录日志 -- 在线用户:查看当前在线用户 -- 定时任务:系统定时任务的管理 -- 系统监控:监控系统运行状态 -- 数据备份:系统数据备份和恢复 - -### 3. 业务流程 - -```mermaid -graph TD - A[系统运行] --> B[记录系统日志] - A --> C[记录操作日志] - A --> D[记录登录日志] - A --> E[执行定时任务] - E --> F[备份数据] - B --> G[日志归档] - C --> G - D --> G - G --> H[日志分析] -``` - -### 4. 核心功能说明 - -1. **系统配置管理** - - 系统参数配置:各类系统参数的设置 - - 字典管理:系统字典数据的维护 - - 菜单管理:系统菜单的维护 - - 接口管理:系统接口的配置和管理 - -2. **系统监控功能** - - 服务器监控:监控服务器CPU、内存、磁盘等使用情况 - - 数据库监控:监控数据库连接、性能等情况 - - 缓存监控:监控Redis缓存使用情况 - - 在线用户监控:监控当前在线用户情况 - -3. **日志管理功能** - - 操作日志:记录用户操作行为 - - 登录日志:记录用户登录情况 - - 系统日志:记录系统运行日志 - - 异常日志:记录系统异常情况 - -## 十一、集成接口模块 - -### 1. 功能概述 - -集成接口模块负责与外部系统的数据交换和集成,实现系统间的无缝连接。 - -### 2. 功能列表 - -- 银行支付接口:与银行系统对接,实现水费代扣 -- 微信支付接口:与微信支付系统对接 -- 支付宝支付接口:与支付宝支付系统对接 -- 短信平台接口:与短信平台对接,发送短信通知 -- 电子发票接口:与税务系统对接,开具电子发票 -- GIS系统接口:与地理信息系统对接 -- 物联网平台接口:与物联网平台对接,采集智能水表数据 -- 数据交换接口:与其他业务系统进行数据交换 - -### 3. 业务流程 - -```mermaid -graph TD - A[系统事件触发] --> B{接口类型} - B -- 支付接口 --> C[发送支付请求] - C --> D[接收支付结果] - D --> E[更新支付状态] - B -- 短信接口 --> F[组装短信内容] - F --> G[调用短信发送] - G --> H[记录发送结果] - B -- 数据同步接口 --> I[准备同步数据] - I --> J[调用同步接口] - J --> K[处理同步结果] -``` - -### 4. 核心功能说明 - -1. **支付接口集成** - - 银行代扣接口:实现水费银行代扣功能 - - 微信支付接口:通过微信支付水费 - - 支付宝支付接口:通过支付宝支付水费 - - 支付结果处理:处理支付回调,更新支付状态 - -2. **通知接口集成** - - 短信通知:抄表通知、缴费通知、催缴通知等 - - 邮件通知:电子账单、电子发票等 - - 微信通知:通过微信公众号、小程序推送通知 - - APP推送:通过移动APP推送通知 - -3. **数据采集接口集成** - - 智能水表数据采集:远程采集智能水表读数 - - 物联网设备数据采集:采集物联网设备监测数据 - - 实时数据监控:监控关键设备的实时运行数据 - - 数据异常预警:对异常数据进行预警 \ No newline at end of file +# 福建水务业务系统模块设计 + +## 目录 +- [1. 统一平台](#1-统一平台) +- [2. 营收系统](#2-营收系统) +- [3. 表务系统](#3-表务系统) +- [4. 报装系统](#4-报装系统) +- [5. 客户服务](#5-客户服务) +- [6. 系统配置](#6-系统配置) + +## 1. 统一平台 + +统一平台是客户服务平台的综合展示平台,包含日常工作功能和客户全部的信息,是系统的基础功能模块。 + +### 1.1 单点登录 + +单点登录模块实现用户一次登录即可访问系统中所有应用的功能,主要特点包括: + +- 支持通过用户名、密码进行身份认证 +- 根据登录人员所在公司的不同,显示不同的系统名称和界面风格 +- 提供流程节点到期提醒功能,包括工单及业务流程提醒 +- 支持多种安全认证方式,如双因素认证等 + +### 1.2 系统管理 + +系统管理模块提供对系统基础参数的配置管理功能,主要包括: + +- 组织机构管理:支持多级组织结构的管理,包括集团、分公司、站点等 +- 员工管理:系统操作人员的基本信息管理 +- 角色权限管理:基于RBAC模型的权限控制,实现细粒度的功能权限分配 +- 系统菜单配置:支持自定义系统菜单和功能模块 +- 数据字典管理:维护系统使用的各类基础代码数据 +- 系统日志管理:记录系统操作日志,支持日志查询和审计 + +## 2. 营收系统 + +营收系统是水务业务系统的核心组成部分,负责抄表、收费、账务处理等关键业务功能。 + +### 2.1 系统管理 + +营收系统的基础管理功能,包括: + +- 水价管理:不同用户类型的水价标准管理,支持阶梯水价 +- 用户档案管理:维护用户基本信息、用水信息、账户信息等 +- 更名过户管理:处理用户变更、过户等业务 +- 注销报停管理:处理用户注销、暂停用水等业务 + +### 2.2 抄表开账 + +抄表开账模块负责水表读数的采集和账单生成,主要功能包括: + +#### 2.2.1 册本管理 + +- 册本信息管理:册本基本信息的维护 +- 新卡入册:新增水表加入抄表册本 +- 册本调整:调整册本内水表顺序或将水表调整到其他册本 + +#### 2.2.2 抄表录入 + +- 手工抄表:支持人工录入抄表数据 +- 智能抄表:支持从智能水表、远传水表自动获取数据 +- 自报抄表:支持用户自行报送抄表数据 +- 抄表异常处理:处理抄表过程中的异常情况 + +#### 2.2.3 抄表数据审核 + +- 数据校验:对抄表数据进行合理性校验 +- 异常数据标记:标记异常抄表数据 +- 数据审核:对抄表数据进行审核确认 +- 开账处理:根据审核后的抄表数据生成账单 + +#### 2.2.4 追加抄表 + +- 非周期性抄表:支持在非常规周期进行抄表 +- 特殊抄表:支持针对特定用户进行特殊抄表 + +### 2.3 收费管理 + +收费管理模块负责水费的收取和管理,主要功能包括: + +#### 2.3.1 柜台收费 + +- 用户查询:支持多种方式查询用户信息和欠费信息 +- 收费处理:支持多种支付方式(现金、银行卡、微信、支付宝等) +- 收费打印:支持打印收费凭证和发票 +- 预存预付:支持用户预存水费 + +#### 2.3.2 柜台结账 + +- 日结:营业员日终结账处理 +- 交款:营业员交款处理 +- 结账查询:支持查询结账记录 + +#### 2.3.3 预付款管理 + +- 预付款充值:用户预存水费的处理 +- 预付款使用:预存款抵扣水费的处理 +- 预付款退款:预存款退还处理 + +#### 2.3.4 缴费记录查询 + +- 缴费查询:支持多条件查询缴费记录 +- 缴费统计:支持按不同维度统计缴费情况 + +### 2.4 账务处理 + +账务处理模块负责处理各类特殊账务情况,主要功能包括: + +#### 2.4.1 未销调整 + +- 水量调整:调整未缴纳账单的用水量 +- 金额调整:调整未缴纳账单的金额 +- 违约金减免:对未缴纳账单的违约金进行减免 + +#### 2.4.2 特殊开账 + +- 特殊情况下的账单生成,如补开账单、特殊计费等 + +#### 2.4.3 账务退款 + +- 多缴费退款:处理用户多缴水费的退款 +- 预付款退款:处理用户预存水费的退款 +- 违约金退款:处理已收取违约金的退款 + +#### 2.4.4 销账调正 + +- 对已缴费账单进行调整处理 + +#### 2.4.5 账务处理日志 + +- 记录所有账务处理操作 +- 支持账务处理日志查询 + +### 2.5 发票管理 + +发票管理模块负责水费发票的管理,主要功能包括: + +#### 2.5.1 库存管理 + +- 发票入库:新发票的入库管理 +- 发票领用:营业员领用发票管理 +- 发票作废:发票作废处理 + +#### 2.5.2 发票打印 + +- 普通发票:打印纸质发票 +- 电子发票:生成和发送电子发票 + +#### 2.5.3 发票查询 + +- 发票信息查询:支持多条件查询发票 +- 发票统计:按不同维度统计发票开具情况 + +#### 2.5.4 发票调整 + +- 发票重开:发票信息错误后的重新开具 +- 发票补开:补开发票处理 + +## 3. 表务系统 + +表务系统负责水表的全生命周期管理,包括水表购置、安装、维修、更换等业务。 + +### 3.1 表务工单 + +表务工单模块负责处理各类表务作业,主要功能包括: + +#### 3.1.1 换表工单 + +- 换表计划:制定水表更换计划 +- 换表申请:处理水表更换申请 +- 换表施工:记录水表更换施工情况 +- 换表验收:验收水表更换结果 + +#### 3.1.2 移表工单 + +- 移表申请:处理水表移位申请 +- 移表施工:记录水表移位施工情况 +- 移表验收:验收水表移位结果 + +#### 3.1.3 拆表工单 + +- 拆表申请:处理拆除水表申请 +- 拆表施工:记录拆除水表施工情况 +- 拆表确认:确认水表拆除结果 + +#### 3.1.4 复装工单 + +- 复装申请:处理水表复装申请 +- 复装施工:记录水表复装施工情况 +- 复装验收:验收水表复装结果 + +#### 3.1.5 校表工单 + +- 校表申请:处理水表校验申请 +- 校表实施:记录水表校验情况 +- 校表结果:记录水表校验结果 + +### 3.2 表务仓库 + +表务仓库模块负责水表的仓储管理,主要功能包括: + +#### 3.2.1 新表入库 + +- 采购登记:记录水表采购信息 +- 入库验收:验收入库水表 +- 入库登记:登记水表入库信息 + +#### 3.2.2 水表领用 + +- 领用申请:处理水表领用申请 +- 领用审核:审核水表领用申请 +- 领用发放:记录水表领用发放情况 + +#### 3.2.3 水表出库 + +- 出库申请:处理水表出库申请 +- 出库审核:审核水表出库申请 +- 出库登记:登记水表出库信息 + +#### 3.2.4 水表退库 + +- 退库申请:处理水表退库申请 +- 退库检验:检验退库水表 +- 退库登记:登记水表退库信息 + +#### 3.2.5 水表报废 + +- 报废申请:处理水表报废申请 +- 报废审核:审核水表报废申请 +- 报废处理:处理报废水表 + +#### 3.2.6 水表生命周期查询 + +- 水表状态查询:查询水表当前状态 +- 水表历史记录:查询水表历史使用、维修记录 + +## 4. 报装系统 + +报装系统负责新用户的报装立户管理,主要功能包括: + +### 4.1 报装流程 + +报装流程模块负责新用户报装业务的全流程管理,主要功能包括: + +#### 4.1.1 报装申请 + +- 用户申请:处理用户报装申请 +- 材料审核:审核报装申请材料 +- 现场勘查:组织现场勘查评估 + +#### 4.1.2 方案设计 + +- 设计方案:制定管网接入方案 +- 设计审核:审核设计方案 +- 费用估算:估算报装费用 + +#### 4.1.3 合同签订 + +- 费用通知:通知用户缴纳费用 +- 合同签订:与用户签订供水合同 +- 收费管理:管理报装相关费用 + +#### 4.1.4 施工管理 + +- 施工计划:制定施工计划 +- 施工实施:记录施工情况 +- 施工验收:验收施工结果 + +#### 4.1.5 开户通水 + +- 水表安装:安装用户水表 +- 用户立户:在系统中建立用户档案 +- 通水确认:确认用户通水情况 + +### 4.2 一户一表管理 + +一户一表管理模块负责实施"一户一表"改造,主要功能包括: + +#### 4.2.1 改造计划 + +- 制定改造计划:规划"一户一表"改造计划 +- 用户协商:与用户协商改造事宜 +- 费用估算:估算改造费用 + +#### 4.2.2 改造实施 + +- 施工管理:管理改造施工 +- 水表安装:安装单户水表 +- 验收管理:验收改造结果 + +#### 4.2.3 用户转换 + +- 数据转换:处理用户数据转换 +- 账务处理:处理改造前后的账务关系 +- 使用确认:确认新表使用情况 + +## 5. 客户服务 + +客户服务模块提供多渠道的客户服务功能,主要包括: + +### 5.1 微信、支付宝服务窗 + +- 账户绑定:支持用户绑定水务账户 +- 用水查询:查询用水情况 +- 水费查询:查询水费信息 +- 在线缴费:支持在线缴纳水费 +- 业务办理:支持在线办理业务 + +### 5.2 历史账单 + +- 账单查询:查询历史账单信息 +- 用水分析:分析用水趋势 +- 账单推送:定期推送账单信息 + +### 5.3 电子发票 + +- 发票申请:申请开具电子发票 +- 发票查询:查询已开具发票 +- 发票下载:下载电子发票 +- 发票推送:推送电子发票 + +### 5.4 营业网点 + +- 网点查询:查询营业网点信息 +- 网点导航:提供到营业网点的导航 +- 业务指南:提供各网点业务办理指南 + +### 5.5 账户流水 + +- 流水查询:查询账户交易流水 +- 明细下载:下载流水明细 + +### 5.6 微网厅 + +- 用户注册:用户注册微网厅账号 +- 信息查询:查询用水、缴费信息 +- 业务办理:在线办理各类业务 +- 用户反馈:提交意见建议 + +## 6. 系统配置 + +系统配置模块提供各类系统参数的配置管理功能,主要包括: + +### 6.1 水表参数 + +- 水表厂家:管理水表生产厂商信息 +- 水表型号:管理水表型号规格 +- 水表量程:管理水表量程规格 + +### 6.2 地址参数 + +- 行政区划:管理行政区划信息 +- 地址编码:管理地址编码规则 +- 地址库:维护标准地址库 + +### 6.3 价格体系 + +- 用水性质:管理不同用水性质的分类 +- 水价标准:管理不同用水性质的水价标准 +- 阶梯水价:管理阶梯水价设置 +- 调价管理:管理水价调整流程 + +### 6.4 基本配置 + +- 系统参数:管理系统基本参数 +- 业务规则:管理业务处理规则 +- 打印模板:管理各类打印模板 +- 短信模板:管理短信发送模板 \ No newline at end of file diff --git a/water_biz_summary.md b/water_biz_summary.md index eb2a54e..ceb4f52 100644 --- a/water_biz_summary.md +++ b/water_biz_summary.md @@ -172,4 +172,131 @@ - 增加图表和示例,提高文档可读性 - 采用简洁明了的语言,避免晦涩难懂的技术术语 -- 对关键概念和术语提供清晰的定义和解释 \ No newline at end of file +- 对关键概念和术语提供清晰的定义和解释 + +# 福建水务业务系统概述 + +## 目录 +- [1. 系统背景](#1-系统背景) +- [2. 系统目标](#2-系统目标) +- [3. 系统范围](#3-系统范围) +- [4. 系统用户](#4-系统用户) +- [5. 系统特点](#5-系统特点) +- [6. 系统价值](#6-系统价值) + +## 1. 系统背景 + +福建水投集团注册资本46亿元,经营范围为水利项目投资及管理,水利工程建筑设计与施工及相关技术服务;水资源开发与利用,水的生产与供应、污水处理及其再生利用,水生态产业投资、运营及相关配套服务;水利设施周边配套土地等资源综合开发利用等。 + +在全省40多个县市区投资重大水利项目超过450亿元,实现全省全覆盖,大幅控制我省岛屿、沿海经济发达以及经济发展潜力大、后劲足的地区水资源、水务市场。目前,集团公司总资产超173亿元,净资产超70亿元,拥有全级次子公司超过67家,职工人数超3500人。 + +当前,福建水投集团针对营收、新装、表务等核心业务系统,在集团下属各水务公司中,在用的业务系统均来自不同的系统集成商,存在业务不统一、软件功能不完善、自动化数据处理水平低、升级维护工作量大、自建硬件环境导致运营成本过高等弊端,加上由于业务、数据过度分散,不利于集团化的集中管理、统一资源管理理念。 + +随着互联网技术的飞速发展,以及市场竞争日益激烈的今天,集中企业优势、发展企业已成社会共识。通过应用系统集中部署,可以在此基础上实现先进的集团化管理理念。目前集团已经搭建起私有云,需要在信息系统建设方面,统一构建SaaS模式服务平台,服务于集团、各分公司、营业网点,以便于实现集中式生产控制、集中式财务控制、集中物资管理、公司领导对下属各水务公司的集中管理和综合报表上报、分析的功能。 + +## 2. 系统目标 + +福建水务业务系统是以客户关系数据库为核心和基础的综合管理平台,包含客户完整的资料和数据,实现客户全生命周期管理。系统建设的主要目标包括: + +1. **统一资源服务**:在集团现有基础上,建设统一的数字水务系统运行资源环境,为集团下属各分公司提供日常业务的IT运营环境服务。 + +2. **统一平台应用**:根据业务需要,在集团所属分公司在用的营收、新装、表务系统基础上进行全面改造升级,统一业务,集中汇集数据,形成统一、多租户管理模式的营业收费系统。集团所属各分公司不再独立建设业务系统基础设施和开发应用系统,实现"一个业务平台、一网通平台"的建设目标。 + +3. **统一业务平台功能**:建设平台具备集团、分公司、分公司所属业务站点多租户管理模式,实现对用水客户的营收业务、新装业务、表务业务管理功能;各租户之间独立,数据统一汇总到集团数据中心。 + +4. **统一对外接口**:整合统一用户资源,与相关业务系统对接提供标准的接口和能力。 + +5. **统一对外服务**:统一对外服务标准,为百姓提供便民服务,做到从"群众跑路"到"数据跑腿"的转变,简化百姓办事流程、提高办事效率、提升百姓的获得感,塑造良好的企业形象。 + +通过系统的建设,实现福建省水投数字科技有限公司客户服务管理领域的业务流程梳理再造、组织架构的优化、管理制度的建设、绩效考核标准的建设。构建以客户为中心的客户服务平台,将客户的所有信息进行有机的关联,方便企业对客户信息进行综合分析和管理,为客户提供更多、更便捷、更主动的个性化服务,提高客户服务的质量和客户满意度。 + +## 3. 系统范围 + +福建水务业务系统的功能范围涵盖客户服务全生命周期,主要包括以下功能模块: + +1. **统一平台**:员工管理、权限管理、组织机构、系统菜单配置、角色配置、水表厂家、水表型号、水表量程等。 + +2. **营收系统**: + - 价格管理:调价、历史价格查询 + - 用户档案管理:客户信息、表卡信息、账户信息、联系人信息、更名过户、注销报停 + - 抄表开账:册本管理、新卡入册、册本调动、抄表录入、抄表数据审核、追加抄表 + - 收费管理:柜台收费、柜台结账、预付款管理、凭证收费、结账记录查询、缴费记录查询 + - 账务处理:未销调整、违约金减免、特殊开账、账务退款、销账调正、预付款退款、违约金退款、待处理管理、账务处理日志查询 + - 发票管理:库存管理、发票打印、发票查询、发票调整 + - 综合查询:用户综合查询、报表查询、欠费查询 + +3. **表务系统**: + - 表务工单:换表计划、换表工单、移表工单、拆表工单、复装工单、校表工单 + - 表务仓库:新表入库、水表领用、水表出库、水表退库、水表生命周期查询 + +4. **报装系统**: + - 报装立户:一户一表 + - 报装流程管理 + +5. **客户服务**: + - 微信、支付宝服务窗 + - 历史账单查询 + - 电子发票 + - 营业网点查询 + - 账户流水查询 + - 微网厅 + +6. **外部接口**: + - 银行接口 + - 支付宝/微信接口 + - 短信接口 + - 系统对外查询接口 + +## 4. 系统用户 + +福建水务业务系统的用户主要包括以下几类: + +1. **集团管理人员**:负责对全集团业务数据进行统计分析、监督管理。 + +2. **分公司管理人员**:负责分公司业务管理、数据统计分析。 + +3. **营业网点工作人员**:负责日常营业收费、客户服务等工作。 + +4. **抄表员**:负责水表抄读、录入等工作。 + +5. **表务人员**:负责水表安装、更换、维修等工作。 + +6. **报装人员**:负责新用户报装、立户等工作。 + +7. **系统管理员**:负责系统参数配置、用户权限管理等工作。 + +8. **最终用户**:通过微信、支付宝服务窗、微网厅等渠道使用系统服务的水务客户。 + +## 5. 系统特点 + +福建水务业务系统具有以下特点: + +1. **多租户架构**:支持集团、分公司、营业站点多层级租户管理模式,各租户数据相互隔离,同时数据可统一汇总到集团数据中心。 + +2. **一体化设计**:将营收、表务、报装等业务系统集成为一体,实现业务流程的无缝衔接。 + +3. **全渠道服务**:支持营业厅柜台、自助终端、移动APP、微信小程序、支付宝服务窗等多种服务渠道。 + +4. **智能化应用**:引入智能抄表、智能分析等功能,提高业务处理效率和准确性。 + +5. **标准化接口**:提供标准化的接口,支持与银行、支付平台、短信平台等外部系统的集成。 + +6. **安全可靠**:系统满足安全等保三级要求,确保系统和数据的安全性。 + +7. **高性能扩展**:系统支持100万客户规模,满足企业未来3-5年的业务发展需求。 + +## 6. 系统价值 + +福建水务业务系统的建设将为企业带来以下价值: + +1. **降低IT成本**:通过统一平台建设,减少重复投资,降低硬件采购、系统运维等成本。 + +2. **提高管理效率**:实现业务流程优化再造,提高业务处理效率,降低人力成本。 + +3. **增强数据价值**:实现数据的集中管理和统一分析,为管理决策提供有力支持。 + +4. **提升服务质量**:为客户提供便捷、多渠道的服务方式,提高客户满意度。 + +5. **支持业务创新**:为业务创新提供灵活的技术支持,增强企业市场竞争力。 + +6. **促进企业发展**:支持企业规模扩张,为福建水投集团打造成水利行业龙头企业提供信息化支撑。 \ No newline at end of file diff --git a/water_biz_system_architecture.md b/water_biz_system_architecture.md index 5af3a0d..7c824eb 100644 --- a/water_biz_system_architecture.md +++ b/water_biz_system_architecture.md @@ -1,382 +1,161 @@ -# 福建水务营收系统架构概要设计 - -## 一、系统架构概述 - -福建水务营收系统采用现代化的分层架构设计,基于RuoYi-Vue-Pro和yudao-ui-admin-vue3框架进行开发,实现了前后端分离、模块化设计、微服务架构等技术特点,提供了高性能、高可靠性、高安全性的水务营收管理解决方案。 - -## 二、总体架构设计 - -### 1. 系统架构图 - -```mermaid -graph TD - Client[客户端层] --> FrontEnd[前端应用层] - FrontEnd --> Gateway[网关层] - Gateway --> Application[应用服务层] - Application --> Infrastructure[基础设施层] - Application --> Database[(数据存储层)] - - subgraph 客户端层 - WebBrowser[Web浏览器] - MobileApp[移动应用] - WeChat[微信小程序] - end - - subgraph 前端应用层 - Vue3[Vue3前端框架] - ElementPlus[Element Plus组件库] - VueRouter[Vue Router] - Pinia[Pinia状态管理] - end - - subgraph 网关层 - SpringCloudGateway[Spring Cloud Gateway] - Auth[认证鉴权] - RateLimit[限流] - LoadBalance[负载均衡] - end - - subgraph 应用服务层 - UserModule[用户管理模块] - MeterModule[水表管理模块] - ReadingModule[抄表管理模块] - BillingModule[收费管理模块] - AccountModule[账务管理模块] - ReportModule[报表管理模块] - SystemModule[系统管理模块] - end - - subgraph 基础设施层 - Redis[(Redis缓存)] - MQ[消息队列] - Storage[文件存储] - Schedule[定时任务] - end - - subgraph 数据存储层 - MySQL[(MySQL数据库)] - MongoDB[(MongoDB)] - end -``` - -### 2. 技术架构描述 - -#### 2.1 前端技术架构 - -福建水务营收系统前端基于yudao-ui-admin-vue3框架开发,主要技术组件包括: - -- **框架**:Vue 3.x -- **UI组件库**:Element Plus -- **路由管理**:Vue Router 4.x -- **状态管理**:Pinia -- **HTTP客户端**:Axios -- **构建工具**:Vite -- **代码规范**:ESLint + Prettier - -#### 2.2 后端技术架构 - -后端系统基于RuoYi-Vue-Pro框架开发,主要技术组件包括: - -- **框架**:Spring Boot 2.7.x -- **ORM框架**:MyBatis Plus 3.5.x -- **权限框架**:Spring Security -- **缓存**:Redis -- **数据库**:MySQL 8.0 -- **消息队列**:内置基于Redis的消息队列 -- **文档**:Swagger / Knife4j -- **工作流**:Flowable -- **定时任务**:基于XXLJOB的分布式任务调度 - -## 三、系统分层设计 - -### 1. 应用分层 - -``` -+---------------------------+ -| 表现层(UI层) | -+---------------------------+ -| 应用层(API层) | -+---------------------------+ -| 业务层(Service层) | -+---------------------------+ -| 数据访问层(DAO层) | -+---------------------------+ -| 数据持久层 | -+---------------------------+ -``` - -- **表现层**:负责与用户的交互,包括页面展示、数据校验等 -- **应用层**:提供对外的API接口,处理请求参数,返回响应结果 -- **业务层**:实现业务逻辑,处理业务规则和流程 -- **数据访问层**:提供数据访问接口,进行数据CRUD操作 -- **数据持久层**:负责数据的持久化存储 - -### 2. 模块划分 - -系统按照业务功能划分为以下核心模块: - -``` -+------------------------------------------+ -| 系统共享模块 | -+------------------------------------------+ -| 用户 | 水表 | 抄表 | 收费 | 账务 | -| 管理 | 管理 | 管理 | 管理 | 管理 | -+------------------------------------------+ -| 票据 | 营业 | 报表 | 系统 | 集成 | -| 管理 | 网点 | 管理 | 管理 | 接口 | -+------------------------------------------+ -| 基础设施模块 | -+------------------------------------------+ -``` - -## 四、核心模块设计 - -### 1. 用户管理模块 - -负责系统用户的管理,包括用户注册、认证、授权等功能。基于RBAC(基于角色的访问控制)模型设计,支持细粒度的权限控制。 - -### 2. 水表管理模块 - -负责管理水表基础信息,包括水表安装、更换、拆除、维修等生命周期管理,支持普通水表、智能水表、IC卡水表等多种水表类型。 - -### 3. 抄表管理模块 - -负责水表读数的采集和管理,支持人工抄表、远传抄表、自报抄表等多种抄表方式,并提供异常数据处理、抄表任务分配等功能。 - -### 4. 收费管理模块 - -负责水费的计算、收取和管理,支持多种计费规则和阶梯水价,提供窗口收费、网上支付、银行代扣等多种缴费方式。 - -### 5. 账务管理模块 - -负责系统财务账务处理,包括收费入账、销账、退费、坏账处理等功能,与财务系统进行对接。 - -### 6. 票据管理模块 - -负责水费发票的开具、作废、查询等管理功能,支持电子发票和纸质发票。 - -### 7. 报表管理模块 - -提供系统各类统计报表,包括营收报表、抄表报表、用水分析报表等,支持多维度的数据分析和可视化展示。 - -### 8. 系统管理模块 - -提供系统基础管理功能,包括菜单管理、角色管理、权限管理、系统日志等。 - -## 五、数据库设计 - -### 1. 数据库架构 - -系统采用MySQL作为主要关系型数据库,Redis作为缓存数据库。数据库设计遵循以下原则: - -- 采用分模块设计,各业务模块数据相对独立 -- 合理使用索引,提高查询效率 -- 使用存储过程处理复杂业务逻辑 -- 采用适当的分表策略处理大数据量表 - -### 2. 主要数据实体 - -```mermaid -erDiagram - USER { - int id - string username - string password - int status - } - - ROLE { - int id - string name - string code - } - - CUSTOMER { - int id - string name - string address - string contact - int customer_type - } - - METER { - int id - string meter_no - int meter_type - int status - float initial_reading - } - - METER_READING { - int id - int meter_id - float reading - date reading_date - int reading_type - } - - BILLING { - int id - int customer_id - int meter_id - float amount - date billing_date - int status - } - - PAYMENT { - int id - int billing_id - float amount - date payment_date - int payment_method - } - - USER ||--o{ ROLE : has - CUSTOMER ||--o{ METER : owns - METER ||--o{ METER_READING : generates - CUSTOMER ||--o{ BILLING : charged - BILLING ||--o{ PAYMENT : paid_by -``` - -## 六、接口设计 - -### 1. 外部接口 - -系统需要与以下外部系统进行集成: - -- **银行支付系统**:提供水费代扣和支付功能 -- **微信/支付宝支付**:提供移动端支付功能 -- **税务发票系统**:对接电子发票开具功能 -- **物联网平台**:对接智能水表数据采集功能 -- **GIS地理信息系统**:提供地理位置服务 - -### 2. 内部接口 - -系统内部模块间通过RESTful API进行通信,接口设计遵循以下原则: - -- 采用RESTful风格设计API -- 使用JWT进行接口认证 -- 统一接口返回格式 -- 接口版本控制 -- 完善的接口文档 - -## 七、安全设计 - -### 1. 身份认证与授权 - -- 基于Spring Security实现身份认证 -- 基于RBAC模型实现权限控制 -- 支持OAuth2.0协议进行第三方授权 -- 采用JWT实现无状态会话管理 - -### 2. 数据安全 - -- 敏感数据加密存储 -- 数据库访问权限控制 -- 数据备份与恢复策略 -- 数据传输加密 - -### 3. 应用安全 - -- 防SQL注入 -- 防XSS攻击 -- 防CSRF攻击 -- 接口防刷 - -## 八、高可用设计 - -### 1. 负载均衡 - -采用Nginx实现前端负载均衡,提高系统的并发处理能力和可用性。 - -### 2. 缓存策略 - -- 采用多级缓存策略,包括本地缓存和分布式缓存 -- 热点数据缓存 -- 合理的缓存失效策略 - -### 3. 灾备设计 - -- 数据库主从复制 -- 定期数据备份 -- 服务器集群部署 - -## 九、扩展性设计 - -### 1. 水平扩展 - -- 应用服务无状态设计,支持水平扩展 -- 数据库读写分离,支持多数据源 - -### 2. 垂直扩展 - -- 模块化设计,支持功能独立扩展 -- 插件化架构,支持新功能便捷集成 - -## 十、部署架构 - -### 1. 部署拓扑图 - -```mermaid -graph TD - subgraph 生产环境 - LB[负载均衡] --> WS1[Web服务器1] - LB --> WS2[Web服务器2] - WS1 --> AS1[应用服务器1] - WS2 --> AS2[应用服务器2] - AS1 --> DB[(主数据库)] - AS2 --> DB - DB --> SDB[(从数据库)] - end - - subgraph 灾备环境 - DLB[负载均衡] --> DWS[Web服务器] - DWS --> DAS[应用服务器] - DAS --> DDB[(灾备数据库)] - end - - DB -.-> DDB -``` - -### 2. 服务器配置要求 - -| 服务器类型 | 配置要求 | 数量 | -|---------|---------|-----| -| Web服务器 | 8核16G内存,100G SSD | 2 | -| 应用服务器 | 16核32G内存,200G SSD | 2 | -| 数据库服务器 | 16核64G内存,500G SSD,RAID 10 | 2 | -| 文件服务器 | 8核16G内存,2T存储 | 1 | - -## 十一、开发与运维策略 - -### 1. 开发规范 - -- 统一的编码规范 -- 代码审查机制 -- 自动化测试 -- 持续集成/持续部署(CI/CD) - -### 2. 监控策略 - -- 系统性能监控 -- 业务指标监控 -- 异常监控与告警 -- 用户行为分析 - -### 3. 运维工具 - -- 日志收集与分析工具 -- 性能监控工具 -- 部署自动化工具 -- 数据库运维工具 - -## 十二、风险与应对策略 - -| 风险类型 | 风险描述 | 应对策略 | -|---------|---------|---------| -| 性能风险 | 高并发场景下系统性能下降 | 性能测试、缓存优化、数据库优化 | -| 安全风险 | 数据泄露、非授权访问 | 安全审计、加密措施、权限控制 | -| 可靠性风险 | 系统故障、数据丢失 | 高可用架构、数据备份、故障演练 | -| 兼容性风险 | 浏览器兼容性问题 | 兼容性测试、渐进增强设计 | -| 扩展性风险 | 业务增长导致系统扩展困难 | 模块化设计、松耦合架构 | \ No newline at end of file +# 福建水务业务系统架构设计 + +## 目录 +- [1. 系统架构概述](#1-系统架构概述) +- [2. 技术架构](#2-技术架构) +- [3. 应用架构](#3-应用架构) +- [4. 数据架构](#4-数据架构) +- [5. 安全架构](#5-安全架构) +- [6. 部署架构](#6-部署架构) +- [7. 接口架构](#7-接口架构) + +## 1. 系统架构概述 + +福建水务业务系统采用多层架构设计,旨在支持集团化的集中管理、统一资源管理的业务需求。系统架构的设计目标是实现"一个业务平台、一网通平台"的建设目标,为集团及下属各分公司提供统一的营业收费系统。 + +系统架构主要包括以下核心特点: +- 多租户架构:支持集团、分公司、营业站点的多层级租户管理模式 +- 统一资源服务:统一的数字水务系统运行资源环境 +- 统一平台应用:统一业务流程,集中汇集数据 +- 统一对外接口:提供标准的接口和能力 + +![系统架构图](./images/system_architecture_overview.png) + +## 2. 技术架构 + +系统采用B/S和M/S相结合的架构模式,具体技术栈如下: + +### 2.1 服务端 +- 操作系统:Windows Server 2012 64位简体中文版及以上版本 +- 数据库:SQL Server 2012 64位简体中文版及以上版本 +- 应用服务器:基于J2EE架构的应用服务器 +- 中间件:ESB企业服务总线,实现系统间的数据交换与共享 + +### 2.2 客户端 +- 操作系统:兼容Windows 7/8/10等主流操作系统 +- 浏览器:兼容IE、Chrome等主流浏览器 +- 移动端:支持Android系统 + +### 2.3 技术特性 +- 单点登录:实现统一平台的单点登录功能 +- 数据交换:基于ESB的系统内部数据交换与共享 +- 统一报表平台:支持自定义报表设计与生成 +- 安全保障:满足安全等保三级要求 +- 性能规格:支持200并发用户,50并发移动设备,系统响应时间不超过5秒 +- 扩展容量:支持100万客户的业务量,满足企业3-5年的业务发展需求 + +## 3. 应用架构 + +系统应用架构基于业务域划分,主要包括以下核心应用模块: + +### 3.1 统一平台 +- 单点登录 +- 系统管理(组织机构、权限管理、角色配置等) +- 流程节点提醒 + +### 3.2 营收系统 +- 系统管理 +- 抄表开账(册本管理、抄表录入、抄表数据审核等) +- 收费管理(柜台收费、结账、预付款管理等) +- 账务处理(未销调整、违约金减免、特殊开账等) +- 发票管理 + +### 3.3 客户服务 +- 微信、支付宝服务窗 +- 历史账单查询 +- 电子发票 +- 营业网点查询 +- 账户流水查询 +- 微网厅 + +### 3.4 表务系统 +- 表务工单(换表、移表、拆表、复装、校表等) +- 表务仓库(入库、领用、出库、退库、报废等) +- 水表生命周期管理 + +### 3.5 报装管理 +- 报装流程 +- 一户一表管理 + +### 3.6 外部集成 +- 银行接口 +- 支付接口 +- 短信接口 +- 外部查询接口 + +## 4. 数据架构 + +系统数据架构基于客户关系数据库为核心和基础,实现客户全生命周期管理。 + +### 4.1 数据分层 +- 数据采集层:负责从各业务系统采集原始数据 +- 数据存储层:统一数据存储,实现分布式数据管理 +- 数据服务层:提供数据服务接口 +- 数据展现层:提供数据分析和可视化功能 + +### 4.2 数据模型 +- 客户信息模型:包含客户基础信息、表卡信息、账户信息、联系人信息等 +- 业务数据模型:抄表数据、收费数据、账务数据、发票数据等 +- 工单数据模型:表务工单、报装工单等 +- 配置数据模型:系统参数、水表参数、价格体系等 + +### 4.3 数据集成与共享 +- 统一数据标准:定义统一的数据标准和数据字典 +- 数据集成机制:采用ESB实现系统间的数据集成 +- 数据共享机制:基于统一的数据服务接口实现数据共享 + +## 5. 安全架构 + +系统安全架构满足等保三级要求,主要包括以下安全措施: + +### 5.1 网络安全 +- 边界防护:防火墙、入侵检测/防御系统 +- 访问控制:基于角色的访问控制 +- 通信安全:SSL/TLS加密传输 + +### 5.2 数据安全 +- 数据加密:敏感数据加密存储 +- 数据备份:定期数据备份和恢复机制 +- 数据审计:关键操作的审计日志 + +### 5.3 应用安全 +- 身份认证:多因素认证 +- 授权管理:细粒度的权限控制 +- 安全审计:用户操作审计 + +## 6. 部署架构 + +系统采用集中部署的模式,基于集团私有云环境进行部署。 + +### 6.1 物理部署 +- 生产环境:高可用集群部署 +- 测试环境:用于系统测试和验证 +- 开发环境:用于系统开发和集成测试 + +### 6.2 逻辑部署 +- 应用服务器集群:负责业务逻辑处理 +- 数据库服务器集群:负责数据存储和管理 +- 文件服务器:负责文档和附件存储 +- 缓存服务器:提高系统性能 +- 负载均衡服务器:实现请求分发和负载均衡 + +## 7. 接口架构 + +系统提供标准化的接口,实现与外部系统的集成和数据交换。 + +### 7.1 外部接口 +- 银行接口:实现与银行系统的对接,支持代扣、托收等功能 +- 支付宝接口:支持支付宝支付功能 +- 微信接口:支持微信支付和服务通知功能 +- 短信接口:支持短信通知和验证码功能 + +### 7.2 内部接口 +- ESB服务接口:系统内部模块间的数据交换 +- 报表接口:提供报表数据查询和生成功能 +- 查询接口:提供数据查询功能 +- 业务处理接口:提供业务处理功能 + +### 7.3 接口标准 +- 接口协议:RESTful API、WebService、消息队列等 +- 数据格式:JSON、XML等 +- 接口安全:身份认证、授权、加密传输等 \ No newline at end of file diff --git a/water_business_terms.md b/water_business_terms.md index b8844f6..a0148c7 100644 --- a/water_business_terms.md +++ b/water_business_terms.md @@ -1,141 +1,151 @@ -# 水务营收系统专业术语表 +# 福建水务业务系统专业术语 + +本文档定义了福建水务业务系统中常用的专业术语,以便于相关人员理解和使用系统。 ## 基础术语 -### 组织与管理相关术语 +### 站点 +用于划分用户所属管辖区域,站点可以进行多级管理。通常指水务公司下属的营业网点或服务站。 -- **站点**:用于划分用户所属管辖区域,站点可以进行多级管理。 -- **水司**:水务公司,负责供水及水务管理的企业。 +### 册本 +又称抄表本或抄表簿,根据抄表线路规划,按排相邻的一些水表给某一个抄表员进行抄表;册本的属性有册本编号、册本名称、抄表员、抄表工次、抄表周期、起抄日期等。 -### 用户管理相关术语 +### 用户编号 +为签定了供用水合同的正式用户分配的唯一识别号,用户编号自立户时自动由系统按指定规则产生,用户编号一旦生成,不能因过户、用水性质发生变更等原因而改变。 -- **用户编号**:为签定了供用水合同的正式用户分配的唯一识别号,用户编号自立户时自动由系统按指定规则产生,用户编号一旦生成,不能因过户、用水性质发生变更等原因而改变。 -- **立户**:新增用户的过程,包括签订用水合同,安装水表等步骤。 -- **过户**:用户变更的过程,包括用户信息变更。 -- **用水性质**:区分用户用水类型,如居民生活用水、工业用水、商业用水等。 -- **混合用水**:指同一水表下有多种用水性质的情况,需要按照特定规则分摊水量和费用。 +### 水表分类 +水表分类分为单表、总分表等。单表是指只服务一个用户的水表;总分表是指一个总表下面有多个分表的情况,通常用于小区或企业用水管理。 -## 水表管理相关术语 +## 水量与计费术语 -### 水表基础术语 +### 售水量 +抄收水量+查处水量±调整水量 -- **水表分类**:水表分类分为单表、总分表等。 -- **单表**:独立使用的水表,直接记录用户用水量。 -- **总分表**:一种水表管理方式,包括总表和若干分表,用于多用户共用的情况。 -- **厂家**:水表生产厂商,负责生产水表设备。 -- **水表编号**:水表的唯一标识码。 -- **水表型号**:水表的具体型号规格。 -- **口径**:水表的直径大小,如DN15、DN20等。 -- **连接方式**:水表与系统连接的方式,如有线、无线等。 -- **抄表周期**:水表抄表的时间间隔,如月、季、年等。 +### 抄收水量 +通过抄表收费的水量 -### 智能水表相关术语 +### 调整水量 +优惠水量+减免水量+抄表(录入)误差 -- **远传水表**:能够远程传输数据的智能水表。 -- **物联网平台**:维护各类物联感知设备,接收设备的数据,为各类设备进行维护管理。 -- **集抄平台**:物联网平台收到的水表数据后,会传到集抄平台,集抄平台管理水表。 -- **智能水表**:具有数据远程传输功能的水表设备。 -- **IWaterGateway**:智能水表网关设备标识。 -- **IWaterGatewayPort**:智能水表网关端口标识。 +### 当期应收水费 +当期售水量乘以不同类别的水价(到户价)所得的金额 -### 水表生命周期管理术语 +### 当期实收水费 +实收当期水费和实收历史欠费 -- **新表入库**:新购水表进入仓库的过程。 -- **水表检定**:对水表精度和功能进行检测的过程。 -- **水表领用**:从仓库领取水表的过程。 -- **水表出库**:水表从仓库出库的过程。 -- **水表退库**:水表返回仓库的过程。 -- **水表报废**:水表达到使用寿命或损坏后报废的过程。 -- **水表生命周期**:记录水表从入库、安装、更换到报废的整个过程。 -- **换表工单**:用于记录水表更换工作的工单。 +### 当期欠费 +当期内未到账的当期应收水费 -## 抄表管理相关术语 +### 历史欠费 +当期前未到账的应收水费 -- **册本**:又称抄表本或抄表簿,根据抄表线路规划,安排相邻的一些水表给某一个抄表员进行抄表;册本的属性有册本编号、册本名称、抄表员、抄表工次、抄表周期、起抄日期等。 -- **抄表员**:负责抄读水表的工作人员。 -- **抄表工次**:在一个抄表周期内的抄表顺序。 -- **起抄日期**:开始抄表的日期。 -- **抄表录入**:将抄表数据录入系统的过程。 -- **抄表数据审核**:对录入的抄表数据进行审核的过程。 -- **追加抄表**:在正常抄表周期外进行的额外抄表。 -- **水表抄见率**:计算公式为(当期应抄用户数-当期估表用户数)/当期应抄用户数×100%。 -- **PDA抄表**:使用掌上电脑设备进行的抄表方式。 -- **远程抄表**:通过远程传输方式获取水表读数的方法。 -- **集中抄表**:集中获取多个水表读数的方法。 +## 业务指标术语 -## 水费计费相关术语 +### 当期水费回收率 +(当期应收水费-当期未收水费)/当期应收水费×100% -- **售水量**:售水量=抄收水量+查处水量±调整水量 -- **抄收水量**:抄表收费的水量 -- **查处水量**:稽查过程中发现的水量 -- **调整水量**:调整水量=优惠水量+减免水量+抄表(录入)误差 -- **当期应收水费**:当期售水量乘以不同类别的水价(到户价)所得的金额 -- **当期实收水费**:实收当期水费和实收历史欠费 -- **当期欠费**:当期内未到账的当期应收水费 -- **历史欠费**:当期前未到账的应收水费 -- **当期水费回收率**:计算公式为(当期应收水费-当期未收水费)/当期应收水费×100% -- **历史欠费回收率**:计算公式为实收历史欠费/应收历史欠费×100% -- **阶梯水价**:根据用水量的多少分档次计算水费的方式 -- **优惠方案**:针对特定用户或特定情况的水费优惠政策 -- **混合用水方案**:针对多种用水性质的分摊规则 +### 历史欠费回收率 +实收历史欠费/应收历史欠费×100% -## 收费管理相关术语 +### 水表抄见率 +(当期应抄用户数-当期估表用户数)/当期应抄用户数×100% -- **柜台收费**:用户在营业厅缴纳水费的方式 -- **柜台结账**:营业员结束当日收费工作的过程 -- **预付款**:用户提前缴纳的水费 -- **预付款管理**:对用户预付水费的管理 -- **凭证收费**:使用缴费凭证进行收费的方式 -- **结账记录**:柜台结账的历史记录 -- **缴费记录**:用户缴费的历史记录 -- **实时收费**:立即处理的收费方式 -- **银行代扣**:通过银行账户自动扣款的缴费方式 -- **银行托收**:通过银行批量收取水费的方式 -- **第三方支付**:通过微信、支付宝等第三方平台缴纳水费 +### 同比 +(本期-上年同期)/上年同期×100% -## 账务处理相关术语 +### 环比 +(本期-上期)/上期×100% -- **未销调整**:对未缴费账单的调整 -- **违约金减免**:减免用户逾期缴费产生的违约金 -- **特殊开账**:非常规情况下的开账处理 -- **账务退款**:对用户多缴费用的退款处理 -- **销账调正**:对已销账的账单进行调整 -- **预付款退款**:退还用户预付的水费 -- **违约金退款**:退还已收取的违约金 -- **待处理管理**:对需要特殊处理的账务进行管理 -- **账务处理日志**:记录账务处理操作的日志 -- **呆坏账**:长期无法收回的欠费 +## 抄表与收费术语 -## 营业相关术语 +### 人工抄表 +抄表员按照册本顺序,通过人工方式上门抄录水表示数的方式。 -- **客户服务**:为用户提供服务的业务 -- **营业网点**:水务公司的营业服务点 -- **报装管理**:用户申请安装水表的管理流程 -- **微网厅**:线上营业厅,通过网络为用户提供服务 -- **微信、支付宝服务窗**:通过微信、支付宝等平台为用户提供的服务界面 +### 远传抄表 +通过自动抄表系统,远程采集水表数据的方式。 -## 统计分析相关术语 +### 自报抄表 +由用户自行报送水表示数的抄表方式。 -- **同比**:计算公式为(本期-上年同期)/上年同期×100% -- **环比**:计算公式为(本期-上期)/上期×100% -- **量高、量低提示**:系统根据用水量、表卡口径等规则判定用水量异常的提示 -- **报表**:统计和分析水务业务数据的文档 +### 估表 +当无法获取实际水表示数时,系统根据历史用水量估算的当期用水量。 -## 系统管理相关术语 +### 复核抄表 +对抄表数据进行复核确认的过程,通常针对异常数据或抽查。 -- **用户权限**:系统用户的操作权限设置 -- **角色配置**:系统中不同角色的权限配置 -- **系统菜单配置**:系统菜单的设置管理 -- **基本配置**:系统基础参数的配置 -- **自定义列**:用户可自定义的表格列 -- **单点登录**:一次登录即可访问所有相关系统的功能 +### 开账 +根据抄表数据,生成用户水费账单的过程。 -## 接口相关术语 +### 销账 +用户缴纳水费后,系统将应收水费标记为已收的过程。 -- **厂家信息接口**:获取水表厂家信息的接口 -- **水表数据推送接口**:将水表信息推送至集抄平台的接口 -- **水表用户信息同步接口**:同步水表用户信息的接口 -- **实时数据接口**:获取实时抄表数据的接口 -- **银行接口**:与银行系统对接的接口 -- **支付宝接口**:与支付宝系统对接的接口 -- **短信接口**:发送短信通知的接口 \ No newline at end of file +## 表务与报装术语 + +### 表务工单 +针对水表安装、维修、更换等业务的工作单据。 + +### 换表 +将用户的旧水表更换为新水表的业务流程。 + +### 移表 +改变水表安装位置的业务流程。 + +### 校表 +检测并校准水表精度的业务流程。 + +### 报装 +用户申请新装水表,办理用水手续的业务流程。 + +### 一户一表 +每户用户单独安装水表计量用水的管理模式。 + +### 总分表 +一个总表下面有多个分表的水表安装方式,通常用于小区或企业等集中用水场所。 + +## 账务与支付术语 + +### 预付款 +用户预先缴纳的水费,存入用户账户,用于抵扣后续水费的款项。 + +### 银行托收 +通过银行批量自动从用户账户中扣除水费的方式。 + +### 违约金 +用户逾期未缴纳水费,按规定收取的滞纳金。 + +### 退款 +将用户多缴或预付的水费退还给用户的业务流程。 + +### 调价 +水价调整的业务流程,包括调价申请、审批、执行等环节。 + +## 系统管理术语 + +### 多租户 +系统支持多个组织机构独立运营、数据隔离的架构模式。 + +### 单点登录 +用户只需登录一次,就可以访问系统内所有相互信任的应用系统的功能。 + +### 角色权限 +基于角色的权限管理模式,通过角色定义不同用户的操作权限。 + +### 业务参数 +系统中各种可配置的参数,用于适应不同业务场景和需求。 + +### 水价体系 +水务公司制定的各类用户水价标准体系,可能包含基本水价、阶梯水价等多种形式。 + +## 客户服务术语 + +### 微网厅 +通过微信公众号提供的自助服务平台,用户可查询账单、缴费、查看用水情况等。 + +### 服务窗 +支付宝平台上提供的自助服务渠道。 + +### 电子发票 +系统自动生成并发送给用户的电子形式发票。 + +### 催缴 +对欠费用户进行催缴的业务流程,可通过短信、电话、上门等多种方式。 \ No newline at end of file