diff --git a/GEMINI.md b/GEMINI.md
new file mode 100644
index 0000000..281010f
--- /dev/null
+++ b/GEMINI.md
@@ -0,0 +1,41 @@
+# GEMINI.md - Fujian Water Revenue System Documentation
+
+## Directory Overview
+
+This directory contains the comprehensive design documentation for the Fujian Water Revenue System. The project is a non-code project, focusing on the detailed documentation of a software system. The documentation is written in Markdown and can be exported to various formats like Word, PDF, and HTML using the provided `Makefile`.
+
+The system is designed as a modern, microservices-based application for managing a water utility's revenue operations. It utilizes a tech stack centered around Java (RuoYi-Vue-Pro framework) and Vue.js for the frontend, with a notable use of the OpenGauss database, a domestic Chinese database solution.
+
+## Key Files
+
+* `README.md`: Provides a high-level overview of the project, its status, and key deliverables.
+* `Makefile`: Contains a set of commands for managing the documentation, including validation, exporting to different formats, and other maintenance tasks.
+* `water_biz_system_architecture.md`: Describes the overall system architecture, including the technology stack, deployment model, and security considerations.
+* `water_biz_module_design.md`: Details the design of each module in the system, including business logic, user interfaces, and API specifications.
+* `water_biz_database_design.md`: Provides a complete data model for the system, including table structures, relationships, and strategies for performance optimization and security.
+* `new_doc/`: This directory contains the final, polished versions of the design documents in `.docx` format.
+* `ori_doc/`: This directory contains the original source documents and requirements that the design is based on.
+* `output/`: This directory contains the exported versions of the documentation in various formats (Word, PDF, HTML).
+* `scripts/`: This directory contains various scripts used by the `Makefile` to manage and process the documentation.
+
+## Usage
+
+The primary purpose of this directory is to house the design documentation for the Fujian Water Revenue System. The `Makefile` provides a convenient way to manage and export the documentation.
+
+**Common `make` commands:**
+
+* `make help`: Displays a list of all available commands.
+* `make validate`: Validates all the documentation files.
+* `make export-word`: Exports the documentation to Microsoft Word format.
+* `make export-pdf`: Exports the documentation to PDF format.
+* `make export-html`: Exports the documentation to HTML format.
+* `make unified-export`: A recommended command to export the documentation to all formats, ensuring consistency.
+* `make quick-export`: A faster export option that doesn't process diagrams.
+
+To use these commands, simply run them from the root of the project directory in your terminal. For example:
+
+```bash
+make unified-export
+```
+
+This will generate the complete documentation set in the `output/` directory.
diff --git a/ori_doc/新营收系统需求相关材料/抄表APP详细设计.docx b/ori_doc/新营收系统需求相关材料/抄表APP详细设计.docx
new file mode 100644
index 0000000..69254c0
Binary files /dev/null and b/ori_doc/新营收系统需求相关材料/抄表APP详细设计.docx differ
diff --git a/output/新-数据库设计说明书.docx b/output/新-数据库设计说明书.docx
index 6120784..26e6aca 100644
Binary files a/output/新-数据库设计说明书.docx and b/output/新-数据库设计说明书.docx differ
diff --git a/output/新-数据库设计说明书_processed.md b/output/新-数据库设计说明书_processed.md
index 74396ec..2d0123e 100644
--- a/output/新-数据库设计说明书_processed.md
+++ b/output/新-数据库设计说明书_processed.md
@@ -16,16 +16,19 @@ CJKmainfont: "PingFang SC"
| 【 】草稿 | | |
| 【 】修改稿 | | |
| 【√】正式发布 | | |
-| | **当前版本:** | **V1.1** |
-| | **作者:** | **Gemini** |
-| | **完成日期:** | **2025-07-17** |
+| | **当前版本:** | **V1.5** |
+| | **作者:** | **唐伟杰** |
+| | **完成日期:** | **2025-08-01** |
## 版本历史
| **日期** | **版本号** | **作者** | **备注** |
| :--- | :--- | :--- | :--- |
-| 2025-07-17 | V1.0 | Gemini | 初稿 |
-| 2025-07-17 | V1.1 | Gemini | 根据用户要求,严格对齐SQL文件,确保所有表和字段的完整性。 |
+| 2025-07-17 | V1.0 | 唐伟杰 | 初稿 |
+| 2025-07-17 | V1.1 | 唐伟杰 | 根据用户要求,严格对齐SQL文件,确保所有表和字段的完整性。 |
+| 2025-08-01 | V1.2 | 唐伟杰 | 1. 根据详细设计说明书调整目录结构,按6个子系统重新组织表结构。
2. 补充移动端表设计优化说明,明确移动端与Web端表复用策略。
3. 新增5个移动端特有表的详细设计,符合表设计优化原则。 |
+| 2025-08-01 | V1.3 | 唐伟杰 | 数据库系统变更:将OpenGauss替换为达梦数据库 8.0+,作为主力国产数据库方案。 |
+| 2025-08-01 | V1.4 | 唐伟杰 | 单点登录采用OAuth2.0协议:新增OAuth2.0相关数据表设计,包括客户端信息表、访问令牌表、刷新令牌表、授权码表。 |
# 目录
@@ -35,16 +38,22 @@ CJKmainfont: "PingFang SC"
- [4. 表结构设计](#4-表结构设计)
- [4.1. 数据表总体概览](#41-数据表总体概览)
- [4.2. 系统公共表 (system_*)](#42-系统公共表-system_)
- - [4.3. 业务核心表 (biz_*)](#43-业务核心表-biz_)
-- [5. 视图的设计](#5-视图的设计)
-- [6. 安全保密设计](#6-安全保密设计)
+ - [4.3. 子系统1: 统一平台数据表](#43-子系统1-统一平台数据表)
+ - [4.4. 子系统2: 营收系统数据表](#44-子系统2-营收系统数据表)
+ - [4.5. 子系统3: 表务系统数据表](#45-子系统3-表务系统数据表)
+ - [4.6. 子系统4: 报装系统数据表](#46-子系统4-报装系统数据表)
+ - [4.7. 子系统5: 客户服务数据表](#47-子系统5-客户服务数据表)
+ - [4.8. 子系统6: 手机抄表APP数据表](#48-子系统6-手机抄表app数据表)
+- [5. 移动端表设计优化说明](#5-移动端表设计优化说明)
+- [6. 视图的设计](#6-视图的设计)
+- [7. 安全保密设计](#7-安全保密设计)
# 前言
本文档详细描述了福建水务数智营收管理系统的数据库设计,包括总体架构、E-R图、数据表结构、字段定义和索引策略。旨在为开发和运维人员提供清晰的数据结构参考。
# 外部设计
-- **数据库系统**: 主力采用 **MySQL 8.x** 或 **MariaDB 10.x**。系统设计上兼容国产数据库 **OpenGauss**。
+- **数据库系统**: 主力采用国产数据库 **达梦数据库 8.0+**。系统设计上兼容 **MySQL 8.x** 或 **MariaDB 10.x**。
- **数据库工具**: 使用 Navicat, DBeaver, DataGrip 等主流数据库管理工具。
- **约定**:
- **表名**: 全部小写,单词间使用下划线 `_` 分隔。业务表以 `biz_` 开头,系统管理表以 `system_` 开头。
@@ -362,11 +371,122 @@ CJKmainfont: "PingFang SC"
-## 业务核心表 (biz_*)
-(基于 `sw_biz_table.sql`)
+## 子系统1: 统一平台数据表
+
+统一平台主要负责系统基础功能,包括用户管理、权限管理、部门管理等。这些表主要为system_*系列,已在上一节详细描述。
+
+### OAuth2.0单点登录相关表
+
+为支持OAuth2.0协议的单点登录功能,系统新增以下OAuth2.0相关数据表:
-点击展开/折叠业务表详情
+点击展开/折叠OAuth2.0表详情
+
+### system_oauth2_client (OAuth2客户端表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| secret | varchar(255) | N | | 客户端密钥 |
+| name | varchar(255) | N | | 应用名 |
+| logo | varchar(255) | N | | 应用图标 |
+| description | varchar(255) | Y | | 应用描述 |
+| status | int2 | N | | 状态 |
+| access_token_validity_seconds | int4 | N | | 访问令牌的有效期 |
+| refresh_token_validity_seconds | int4 | N | | 刷新令牌的有效期 |
+| redirect_uris | varchar(255) | N | | 可重定向的 URI 地址 |
+| authorized_grant_types | varchar(255) | N | | 授权类型 |
+| scopes | varchar(255) | Y | | 授权范围 |
+| auto_approve_scopes | varchar(255) | Y | | 自动通过的授权范围 |
+| authorities | varchar(255) | Y | | 权限 |
+| resource_ids | varchar(255) | Y | | 资源 |
+| additional_information | varchar(4096) | Y | | 附加信息 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+
+### system_oauth2_access_token (OAuth2访问令牌表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| user_id | int8 | N | | 用户编号 |
+| user_type | int2 | N | | 用户类型 |
+| user_info | varchar(512) | N | | 用户信息 |
+| access_token | varchar(255) | N | | 访问令牌 |
+| refresh_token | varchar(32) | N | | 刷新令牌 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| scopes | varchar(255) | Y | | 授权范围 |
+| expires_time | timestamp(6) | N | | 过期时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+| tenant_id | int8 | N | 0 | 租户编号 |
+
+### system_oauth2_refresh_token (OAuth2刷新令牌表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| user_id | int8 | N | | 用户编号 |
+| refresh_token | varchar(32) | N | | 刷新令牌 |
+| user_type | int2 | N | | 用户类型 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| scopes | varchar(255) | Y | | 授权范围 |
+| expires_time | timestamp(6) | N | | 过期时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+| tenant_id | int8 | N | 0 | 租户编号 |
+
+### system_oauth2_code (OAuth2授权码表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| user_id | int8 | N | | 用户编号 |
+| user_type | int2 | N | | 用户类型 |
+| code | varchar(32) | N | | 授权码 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| scopes | varchar(255) | Y | | 授权范围 |
+| expires_time | timestamp(6) | N | | 过期时间 |
+| redirect_uri | varchar(255) | Y | | 可重定向的 URI 地址 |
+| state | varchar(255) | Y | | 状态 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+| tenant_id | int8 | N | 0 | 租户编号 |
+
+### system_oauth2_approve (OAuth2批准表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| user_id | int8 | N | | 用户编号 |
+| user_type | int2 | N | | 用户类型 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| scope | varchar(255) | Y | | 授权范围 |
+| approved | bool | N | false | 是否接受 |
+| expires_time | timestamp(6) | N | | 过期时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+| tenant_id | int8 | N | 0 | 租户编号 |
+
+
+
+## 子系统2: 营收系统数据表
+
+营收系统是核心业务系统,包括客户管理、抄表管理、账务管理、发票管理等核心业务功能。
+
+
+点击展开/折叠营收系统表详情
### biz_community (所属小区表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
@@ -2258,7 +2378,17 @@ CJKmainfont: "PingFang SC"
| deleted | int2 | N | 0 | 是否删除 |
| tenant_id | int8 | N | 0 | 租户id |
-## 表务管理表 (meter_work_*)
+
+
+
+## 子系统3: 表务系统数据表
+
+表务系统负责水表的全生命周期管理,包括表务工单管理、表务仓库管理、表务基础管理等功能。
+
+
+点击展开/折叠表务系统表详情
+
+### 表务管理表 (meter_work_*)
### meter_work_order (表务工单表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
@@ -2467,7 +2597,16 @@ CJKmainfont: "PingFang SC"
| deleted | int2 | N | 0 | 是否删除 |
| tenant_id | int8 | N | 0 | 租户id |
-## 报装工程表 (construction_*)
+
+
+## 子系统4: 报装系统数据表
+
+报装系统负责用户报装申请的全流程管理,包括报装申请管理、现场踏勘管理、档案管理等功能。
+
+
+点击展开/折叠报装系统表详情
+
+### 报装工程表 (construction_*)
### site_survey (现场踏勘表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
@@ -2605,7 +2744,36 @@ CJKmainfont: "PingFang SC"
| deleted | int2 | N | 0 | 是否删除 |
| tenant_id | int8 | N | 0 | 租户id |
-## 移动端表 (mobile_*)
+
+
+## 子系统5: 客户服务数据表
+
+客户服务系统负责为客户提供便民服务,包括账户绑定管理、信息查询服务、在线缴费服务、电子发票服务等功能。
+
+
+点击展开/折叠客户服务系统表详情
+
+### 客户服务相关表
+
+客户服务系统主要复用营收系统的核心表,包括:
+- `customer_info`:客户基本信息表
+- `customer_account`:客户账户信息表
+- `billing_record`:开账记录表
+- `payment_record`:缴费记录表
+- `invoice_info`:发票信息表
+- `thirdpay_binding`:第三方绑定表
+- `thirdpay_transaction`:第三方支付交易表
+
+
+
+## 子系统6: 手机抄表APP数据表
+
+手机抄表APP为抄表员和外勤人员提供移动作业工具,支持离线操作,提升现场工作效率。
+
+
+点击展开/折叠手机抄表APP表详情
+
+### 移动端表 (mobile_*)
### mobile_user_session (移动端用户会话表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
@@ -2851,32 +3019,156 @@ CJKmainfont: "PingFang SC"
| deleted | int2 | N | 0 | 是否删除 |
| tenant_id | int8 | N | 0 | 租户id |
-### mobile_problem_photo (移动端问题照片表)
+### 移动端特有表(优化后)
+
+根据移动端表设计优化原则,以下为移动端特有的5个表:
+
+### mobile_user_cache (移动端用户缓存表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
| :--- | :--- | :--- | :--- | :--- |
-| id | int8 | N | nextval() | 主键 |
-| report_id | int8 | N | | 上报ID |
-| photo_type | varchar(20) | N | | 照片类型:现场照片、问题照片、完成照片 |
-| photo_path | varchar(500) | N | | 照片路径 |
-| photo_size | int4 | Y | 0 | 照片大小(字节) |
-| photo_time | timestamp(6) | N | pg_systimestamp() | 拍照时间 |
-| gps_longitude | numeric(10,6) | Y | | GPS经度 |
-| gps_latitude | numeric(10,6) | Y | | GPS纬度 |
-| upload_status | int2 | N | 0 | 上传状态:0-未上传,1-已上传 |
-| upload_time | timestamp(6) | Y | | 上传时间 |
-| compress_ratio | numeric(5,2) | Y | 0 | 压缩比例 |
-| original_size | int4 | Y | 0 | 原始大小 |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| user_id | bigint | N | | 用户ID,关联system_users.id |
+| device_id | varchar(100) | N | | 设备唯一标识 |
+| cache_data | longtext | Y | | 缓存数据(JSON格式) |
+| cache_type | varchar(50) | N | | 缓存类型:user_info、task_data、config_data |
+| expire_time | datetime | Y | | 过期时间 |
+| version | int | N | 1 | 版本号,用于数据同步 |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+
+### mobile_search_history (移动端搜索历史表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| user_id | bigint | N | | 用户ID,关联system_users.id |
+| search_keyword | varchar(200) | N | | 搜索关键词 |
+| search_type | varchar(50) | N | | 搜索类型:customer、meter、address |
+| search_result_count | int | N | 0 | 搜索结果数量 |
+| search_time | datetime | N | CURRENT_TIMESTAMP | 搜索时间 |
| device_id | varchar(100) | Y | | 设备ID |
-| remark | varchar(500) | Y | | 备注 |
-| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
-| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
-| creator | varchar(100) | Y | | 创建人id |
-| updater | varchar(100) | Y | | 更新人id |
-| deleted | int2 | N | 0 | 是否删除 |
-| tenant_id | int8 | N | 0 | 租户id |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+
+### mobile_task_sync (移动端任务同步表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| user_id | bigint | N | | 用户ID,关联system_users.id |
+| task_id | bigint | N | | 任务ID,关联reading_book.id |
+| sync_status | varchar(20) | N | pending | 同步状态:pending、syncing、completed、failed |
+| sync_type | varchar(20) | N | | 同步类型:download、upload |
+| data_size | int | N | 0 | 数据大小(字节) |
+| sync_progress | decimal(5,2) | N | 0.00 | 同步进度(百分比) |
+| error_message | text | Y | | 错误信息 |
+| last_sync_time | datetime | Y | | 最后同步时间 |
+| retry_count | int | N | 0 | 重试次数 |
+| device_id | varchar(100) | Y | | 设备ID |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+
+### mobile_work_attachment (移动端工单附件表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| work_order_id | bigint | N | | 工单ID,关联meter_work_order.id |
+| attachment_type | varchar(20) | N | | 附件类型:image、video、document |
+| attachment_name | varchar(200) | N | | 附件名称 |
+| attachment_path | varchar(500) | N | | 附件存储路径 |
+| attachment_size | bigint | N | 0 | 附件大小(字节) |
+| mime_type | varchar(100) | Y | | MIME类型 |
+| upload_status | varchar(20) | N | pending | 上传状态:pending、uploading、completed、failed |
+| upload_progress | decimal(5,2) | N | 0.00 | 上传进度(百分比) |
+| gps_longitude | decimal(10,6) | Y | | GPS经度 |
+| gps_latitude | decimal(10,6) | Y | | GPS纬度 |
+| capture_time | datetime | Y | | 拍摄/录制时间 |
+| device_id | varchar(100) | Y | | 设备ID |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+
+### mobile_app_config (移动端应用配置表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| user_id | bigint | N | | 用户ID,关联system_users.id |
+| config_key | varchar(100) | N | | 配置项键名 |
+| config_value | text | Y | | 配置项值 |
+| config_type | varchar(50) | N | | 配置类型:system、user、app |
+| config_description | varchar(500) | Y | | 配置描述 |
+| is_active | tinyint | N | 1 | 是否启用:0-禁用,1-启用 |
+| device_id | varchar(100) | Y | | 设备ID |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+# 移动端表设计优化说明
+
+## 设计原则
+
+根据系统架构设计原则,移动端优先使用Web端已有的数据表,避免重复建表,确保数据一致性和降低维护成本。
+
+## 表复用策略
+
+### 复用Web端表(10个)
+移动端直接复用以下Web端已有表:
+
+| 表名 | 用途说明 | 备注 |
+|------|----------|------|
+| `system_users` | 用户基本信息表 | 复用Web端用户管理 |
+| `system_login_log` | 登录日志表 | 扩展设备类型字段记录移动端登录 |
+| `customer_info` | 客户基本信息表 | 复用Web端客户档案 |
+| `meter_info` | 水表信息表 | 复用Web端水表档案 |
+| `reading_book` | 抄表册本表 | 复用Web端抄表任务 |
+| `reading_record` | 抄表记录表 | 复用Web端抄表数据 |
+| `meter_work_order` | 表务工单表 | 复用Web端工单管理 |
+| `meter_replacement_log` | 水表更换日志表 | 复用Web端换表记录 |
+| `work_order_material` | 工单用料表 | 复用Web端物料管理 |
+| `customer_account` | 客户账户信息表 | 复用Web端账务信息 |
+
+### 移动端特有表(5个)
+仅保留移动端特有的功能表:
+
+| 表名 | 用途说明 | 特有原因 |
+|------|----------|----------|
+| `mobile_user_cache` | 移动端用户缓存表 | 用于离线缓存,移动端特有需求 |
+| `mobile_search_history` | 移动端搜索历史表 | 移动端搜索记录管理 |
+| `mobile_task_sync` | 移动端任务同步表 | 离线任务管理,移动端特有 |
+| `mobile_work_attachment` | 移动端工单附件表 | 现场附件管理,移动端特有 |
+| `mobile_app_config` | 移动端应用配置表 | 个性化设置,移动端特有 |
+
+## 优化效果
+
+1. **减少冗余**:避免了15+个重复表的创建
+2. **提升一致性**:移动端和Web端共享核心业务数据
+3. **降低维护成本**:统一的数据模型减少维护复杂度
+4. **符合架构原则**:遵循DRY(Don't Repeat Yourself)原则
+
+## 数据同步策略
+
+- **实时同步**:共用表自然保证数据一致性
+- **离线缓存**:移动端特有表支持离线操作
+- **冲突处理**:通过时间戳和版本控制处理数据冲突
+
# 视图的设计
## 数据库ER图设计
@@ -2885,14 +3177,14 @@ CJKmainfont: "PingFang SC"
**图表 1**
-
+
### 业务核心表关系图
**图表 2**
-
+
## 业务视图设计
diff --git a/output/新-概要设计说明书.docx b/output/新-概要设计说明书.docx
index f63beea..2c4b81d 100644
Binary files a/output/新-概要设计说明书.docx and b/output/新-概要设计说明书.docx differ
diff --git a/output/新-概要设计说明书_processed.md b/output/新-概要设计说明书_processed.md
index 90c14e0..e92f6d8 100644
--- a/output/新-概要设计说明书_processed.md
+++ b/output/新-概要设计说明书_processed.md
@@ -16,18 +16,19 @@ CJKmainfont: "PingFang SC"
| 【√】草稿 | | |
| 【】修改稿 | | |
| 【】正式发布 | | |
-| | **当前版本:** | **V1.0** |
+| | **当前版本:** | **V1.4** |
| | **作者:** | **唐伟杰** |
-| | **完成日期:** | **2025-07-01** |
+| | **完成日期:** | **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协议实现。 |
# 目录
@@ -48,7 +49,7 @@ CJKmainfont: "PingFang SC"
- [物理部署图](#物理部署图)
- [网络连接](#网络连接)
- [硬件配置规格](#硬件配置规格)
- - [OpenGauss分布式架构](#opengauss分布式架构)
+ - [达梦数据库分布式架构](#达梦数据库分布式架构)
- [容器化部署架构](#容器化部署架构)
- [对外接口](#对外接口)
- [子系统列表](#子系统列表)
@@ -79,20 +80,49 @@ CJKmainfont: "PingFang SC"
- [模块1: 客户资料管理](#模块1-客户资料管理)
- [模块2: 抄表开账](#模块2-抄表开账)
- [模块3: 营业收费](#模块3-营业收费)
+ - [模块4: 账务处理](#模块4-账务处理)
+ - [模块5: 发票管理](#模块5-发票管理)
+ - [模块6: 催缴管理](#模块6-催缴管理)
+ - [模块7: 统计分析](#模块7-统计分析)
+ - [模块8: 代收业务](#模块8-代收业务)
- [中间件和其他设计](#中间件和其他设计-1)
- [对外接口](#对外接口-2)
-- [子系统2设计: 表务系统](#子系统2设计-表务系统)
+- [子系统3设计: 表务系统](#子系统3设计-表务系统)
- [功能与界面](#功能与界面-2)
+ - [模块列表](#模块列表-2)
- [模块设计](#模块设计-2)
- - [模块1: 表务工单](#模块1-表务工单)
- - [模块2: 表务仓库](#模块2-表务仓库)
-- [子系统3设计: 报装系统](#子系统3设计-报装系统)
+ - [模块1: 表务基础管理](#模块1-表务基础管理)
+ - [模块2: 表务工单管理](#模块2-表务工单管理)
+ - [模块3: 仓库与库存管理](#模块3-仓库与库存管理)
+ - [模块4: 设备档案管理](#模块4-设备档案管理)
+- [子系统4设计: 报装系统](#子系统4设计-报装系统)
- [功能与界面](#功能与界面-3)
- [模块设计](#模块设计-3)
- - [模块1: 报装流程](#模块1-报装流程)
-- [子系统4设计: 客户服务](#子系统4设计-客户服务)
+ - [模块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-个人信息与系统设置模块)
+ - [关键技术特性](#关键技术特性)
+ - [离线作业能力](#离线作业能力)
+ - [数据安全保障](#数据安全保障)
+ - [用户体验优化](#用户体验优化)
- [非功能性需求的设计](#非功能性需求的设计)
- [性能的考虑](#性能的考虑)
- [兼容性的考虑](#兼容性的考虑)
@@ -192,7 +222,7 @@ CJKmainfont: "PingFang SC"
**图表 1**
-
+
### 层级说明
@@ -227,7 +257,7 @@ CJKmainfont: "PingFang SC"
**图表 2**
-
+
## 物理架构
@@ -239,13 +269,13 @@ CJKmainfont: "PingFang SC"
**图表 3**
-
+
### 网络连接
**图表 4**
-
+
### 硬件配置规格
@@ -282,14 +312,14 @@ CJKmainfont: "PingFang SC"
| 跳板服务器 | 4核8G,500GB SSD | 1台 | 运维管理 |
| 日志服务器 | 16核32G,5TB SSD | 1台 | 日志收集分析 |
-### OpenGauss分布式架构
+### 达梦数据库分布式架构
-系统采用OpenGauss分布式数据库架构,支持高性能、高可用、高扩展性的数据存储服务。
+系统采用达梦数据库分布式架构,支持高性能、高可用、高扩展性的数据存储服务。
**图表 5**
-
+
### 容器化部署架构
@@ -299,7 +329,7 @@ CJKmainfont: "PingFang SC"
**图表 6**
-
+
## 对外接口
@@ -323,6 +353,7 @@ CJKmainfont: "PingFang SC"
| SYS-003 | 表务系统 | 表务工单、表务仓库、水表全生命周期管理 | 自行开发 |
| SYS-004 | 报装系统 | 报装流程管理、现场踏勘、合同签订、施工验收 | 自行开发 |
| SYS-005 | 客户服务 | 微信小程序、支付宝小程序、客户自助服务 | 自行开发 |
+| SYS-006 | 手机抄表APP | 移动端抄表、工单处理、数据同步 | 自行开发 |
## 子系统相互关系与接口
@@ -331,7 +362,7 @@ CJKmainfont: "PingFang SC"
**图表 7**
-
+
### 主要接口定义
@@ -352,6 +383,8 @@ CJKmainfont: "PingFang SC"
| 账单查询接口 | 查询客户账单信息 | 客户服务 | HTTP/REST |
| 缴费处理接口 | 处理在线缴费 | 客户服务 | HTTP/REST |
| 立户接口 | 新客户立户 | 报装系统 | HTTP/REST |
+| 抄表任务接口 | 下发抄表任务和客户信息 | 手机抄表APP | HTTP/REST |
+| 抄表数据上传接口 | 上传抄表数据 | 手机抄表APP | HTTP/REST |
**表务系统对外接口**
@@ -359,6 +392,8 @@ CJKmainfont: "PingFang SC"
|---------|----------|--------|----------|
| 水表库存查询接口 | 查询水表库存信息 | 营收系统 | HTTP/REST |
| 换表通知接口 | 换表完成通知 | 营收系统 | HTTP/REST |
+| 工单查询接口 | 查询待办工单 | 手机抄表APP | HTTP/REST |
+| 工单回填接口 | 回填工单处理结果 | 手机抄表APP | HTTP/REST |
# 子系统1设计: 统一平台
@@ -395,7 +430,7 @@ CJKmainfont: "PingFang SC"
**图表 8**
-
+
**功能群说明:**
@@ -412,7 +447,7 @@ CJKmainfont: "PingFang SC"
**图表 9**
-
+
## 模块设计
@@ -421,14 +456,14 @@ CJKmainfont: "PingFang SC"
**功能描述:**
-单点登录模块提供统一的用户认证入口,支持多种登录方式和安全策略。该模块是整个系统安全的第一道防线,确保只有合法用户才能访问系统。
+单点登录模块基于OAuth2.0协议实现,提供统一的用户认证入口,支持多种登录方式和安全策略。该模块是整个系统安全的第一道防线,确保只有合法用户才能访问系统。
**主要功能:**
1. **用户名密码登录**:传统的用户名密码认证方式
2. **手机号短信登录**:基于短信验证码的快速登录
3. **第三方登录**:支持微信、支付宝等第三方平台登录
-4. **单点登录**:一次登录,多系统访问
+4. **OAuth2.0单点登录**:基于OAuth2.0协议,一次登录,多系统访问
5. **自动登录**:支持"记住我"功能
6. **安全控制**:密码策略、登录限制、验证码等
@@ -515,6 +550,8 @@ CJKmainfont: "PingFang SC"
**核心业务流程:**
客户建档 → 抄表录入 → 复核开账 → 营业收费 → 账务处理 → 发票管理 → 催缴管理
+
+
**主要功能模块:**
- **客户资料管理**:客户档案建立、信息维护、分组管理
@@ -536,6 +573,8 @@ CJKmainfont: "PingFang SC"
| REV-004 | 账务处理 | 账务调整、退款处理、坏账管理 | 自行开发 |
| REV-005 | 发票管理 | 发票开具、查询管理、电子发票 | 自行开发 |
| REV-006 | 催缴管理 | 欠费催缴、短信通知、停水管理 | 自行开发 |
+| REV-007 | 统计分析 | 提供多维度的数据统计和报表分析功能 | 自行开发 |
+| REV-008 | 代收业务 | 集成银行、第三方支付等代收渠道 | 自行开发 |
## 模块间关系
@@ -546,7 +585,7 @@ CJKmainfont: "PingFang SC"
**图表 10**
-
+
### 客户服务业务群
@@ -556,7 +595,7 @@ CJKmainfont: "PingFang SC"
**图表 11**
-
+
## 模块设计
@@ -624,7 +663,7 @@ CJKmainfont: "PingFang SC"
**图表 12**
-
+
**业务规则:**
@@ -665,7 +704,7 @@ CJKmainfont: "PingFang SC"
**图表 13**
-
+
**业务规则:**
@@ -676,6 +715,68 @@ CJKmainfont: "PingFang SC"
4. 在线支付需要实时确认支付结果
5. 银行代扣需要客户事先签约授权
+### 模块4: 账务处理
+
+**功能概述:**
+
+负责处理各类复杂的账务调整、退款、坏账等业务,确保账务的准确性和合规性。
+
+**核心功能:**
+
+- **未销账调整**: 对未支付账单进行调整。
+- **分账调整**: 将一笔总账单拆分为多笔子账单。
+- **预付款退款**: 处理客户预付款的退还流程。
+- **呆坏账处理**: 对长期无法收回的欠款进行核销。
+
+### 模块5: 发票管理
+
+**功能概述:**
+
+提供全面的发票管理功能,支持电子发票和纸质发票的开具、查询、作废等操作。
+
+**核心功能:**
+
+- **发票开具**: 根据缴费记录为客户开具发票。
+- **发票查询与管理**: 查询发票历史,处理红冲、作废等请求。
+- **电子发票集成**: 对接第三方电子发票平台,实现自动开具和推送。
+
+### 模块6: 催缴管理
+
+**功能概述:**
+
+对逾期未缴费的客户进行有效的催缴管理,提高水费回收率。
+
+**核心功能:**
+
+- **欠费分析**: 统计和分析欠费客户数据。
+- **催缴通知**: 通过短信、电话、通知单等多种方式进行催缴。
+- **停复水管理**: 对恶意欠费用户执行停水,缴清后进行复水操作。
+
+### 模块7: 统计分析
+
+**功能概述:**
+
+提供多维度的数据统计和报表分析功能,为管理决策提供数据支持。
+
+**核心功能:**
+
+- **售水统计**: 按日、月、年统计售水量、售水收入等。
+- **收费统计**: 统计不同收费渠道、方式的收费情况。
+- **欠费分析**: 多维度分析欠费构成和趋势。
+- **自定义报表**: 提供灵活的报表自定义工具。
+
+### 模块8: 代收业务
+
+**功能概述:**
+
+集成银行、第三方支付等代收渠道,方便客户缴费。
+
+**核心功能:**
+
+- **银行代扣**: 与银行签订协议,实现自动批量扣费。
+- **第三方支付**: 集成微信、支付宝等支付网关。
+- **对账管理**: 定期与各渠道进行账务核对。
+
## 中间件和其他设计
**缓存设计:**
@@ -703,69 +804,53 @@ CJKmainfont: "PingFang SC"
| REST API | 缴费处理接口 | 处理在线缴费业务 | HTTP/REST | 供客户服务系统调用 |
| REST API | 立户接口 | 新客户立户 | HTTP/REST | 供报装系统调用 |
-# 子系统2设计: 表务系统
+# 子系统3设计: 表务系统
## 功能与界面
-表务系统负责水表全生命周期管理,从采购入库到报废退库的完整管理流程。
+表务系统负责水表全生命周期管理,从采购入库到报废退库的完整管理流程。其核心是确保水表资产的准确、高效流转,并为营收计量提供可靠的设备保障。
-**主要功能:**
+## 模块列表
-- **表务工单**:换表工单、修表工单、检表工单管理
-- **表务仓库**:水表入库、出库、盘点、调拨管理
-- **设备档案**:水表档案、检定记录、维修历史
-- **库存管理**:库存统计、预警提醒、采购建议
+| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
+|---|---|---|---|
+| METER-001 | 表务基础管理 | 管理水表相关的基础参数 | 自行开发 |
+| METER-002 | 表务工单管理 | 处理换表、修表、检表等日常业务 | 自行开发 |
+| METER-003 | 仓库与库存管理 | 管理水表的入库、出库、盘点和调拨 | 自行开发 |
+| METER-004 | 设备档案管理 | 管理每一块水表的唯一电子档案 | 自行开发 |
## 模块设计
-### 模块1: 表务工单
+### 模块1: 表务基础管理
+- **功能描述**: 定义和维护表务管理所需的基础数据和配置参数。
+- **核心功能**:
+ - **水表厂家管理**: 维护水表供应商信息。
+ - **水表口径管理**: 管理不同口径水表的规格、检定周期等。
+ - **水表型号管理**: 根据厂家和口径,管理具体的水表型号。
+ - **水表量程管理**: 定义水表的计量范围。
-**功能概述:**
+### 模块2: 表务工单管理
+- **功能描述**: 聚焦于业务流程驱动,管理所有与水表相关的现场作业任务。
+- **核心功能**:
+ - **工单创建**: 可由系统(如到期提醒)、其他子系统(如营收系统上报故障)或人工创建换表、维修、巡检等工单。
+ - **工单流转**: 实现工单的派发、接收、处理、回填、审核的全流程闭环管理。
+ - **领料与退料**: 工单处理过程中,涉及水表更换时,触发向仓库的领料申请;旧表则触发退料入库流程。
-表务工单模块管理因故障、到期等原因需要更换水表的业务流程,实现工单的全生命周期管理。
+### 模块3: 仓库与库存管理
+- **功能描述**: 负责水表的实物管理,与工单流程解耦,作为一个独立的资源中心。
+- **核心功能**:
+ - **入库管理**: 包括新表采购入库、旧表回收(维修或报废)入库。
+ - **出库管理**: 根据工单领料申请,发放新水表。
+ - **库存管理**: 提供库存查询、盘点、调拨、库存预警等功能。
-**核心功能:**
+### 模块4: 设备档案管理
+- **功能描述**: 作为表务系统的核心,统一管理所有水表的基础信息和生命周期状态。
+- **核心功能**:
+ - **水表信息登录**: 记录新购水表的型号、规格、供应商、批次等信息。
+ - **水表档案建立**: 为每一块入库的水表建立唯一的、全生命周期跟踪的电子档案。
+ - **状态管理**: 实时更新水表的状态(如:在库、在用、待检、报废等)。
-1. **工单创建**
- - 抄表故障上报
- - 客户自报故障
- - 定期换表计划
- - 水表到期提醒
-
-2. **工单派发**
- - 工单指派
- - 人员调度
- - 时间安排
- - 资源配置
-
-3. **工单回填**
- - 现场处理
- - 结果记录
- - 照片上传
- - 完成确认
-
-**换表工单业务流程图:**
-
-
-**图表 14**
-
-
-
-
-### 模块2: 表务仓库
-
-**功能概述:**
-
-表务仓库模块管理水表的入库、检定、领用、出库、退库、报废等全生命周期流程。
-
-**核心功能:**
-
-- 水表入库管理:新表入库、批次管理、质量检验
-- 水表检定管理:检定计划、检定记录、证书管理
-- 水表领用管理:领用申请、审批流程、出库登记
-- 库存管理:库存统计、预警提醒、盘点管理
-
-# 子系统3设计: 报装系统
+# 子系统4设计: 报装系统
## 功能与界面
@@ -773,52 +858,38 @@ CJKmainfont: "PingFang SC"
**主要功能:**
-- **报装申请**:用户申请、资料审核、受理登记
-- **现场踏勘**:现场勘查、设计方案、工程预算
-- **合同签订**:合同制作、签订确认、费用收取
-- **施工管理**:施工派工、进度跟踪、质量监督
-- **验收通水**:竣工验收、资料归档、立户通水
+- **报装流程管理**:管理从申请、踏勘到合同签订的完整流程。
+- **工程管理**:负责施工、验收和通水环节。
+- **档案管理**:对报装过程中的所有文档进行归档和管理。
## 模块设计
-### 模块1: 报装流程
+### 模块1: 报装流程管理
+- **功能描述**: 统一管理新用户报装的核心流程,确保各环节顺畅衔接。
+- **核心功能**:
+ - **报装申请**: 用户资料收集、申请材料审核、受理登记。
+ - **现场踏勘**: 安排并记录现场勘查、制定初步设计方案、进行工程预算。
+ - **合同管理**: 根据方案制作、签订供水合同,并收取相关费用。
-**功能概述:**
+### 模块2: 工程管理
+- **功能描述**: 聚焦于报装工程的现场实施与交付。
+- **核心功能**:
+ - **施工管理**: 施工派工、进度监控、质量检查与整改。
+ - **竣工验收**: 组织相关部门进行联合验收,确保工程质量达标。
+ - **立户通水**: 验收通过后,同步信息至营收系统进行客户立户,并最终开通供水。
-报装流程模块管理新用户从申请到通水的全过程业务流程,实现报装业务的标准化管理。
-
-**核心功能:**
-
-1. **报装申请**
- - 用户资料收集
- - 申请材料审核
- - 受理登记
- - 编号分配
-
-2. **现场踏勘**
- - 现场勘查
- - 工程设计
- - 方案制定
- - 费用预算
-
-3. **合同管理**
- - 合同制作
- - 合同签订
- - 费用收取
- - 档案归档
-
-4. **施工管理**
- - 施工派工
- - 进度监控
- - 质量验收
- - 竣工确认
+### 模块3: 档案管理
+- **功能描述**: 负责报装全流程的资料归档和查询。
+- **核心功能**:
+ - **资料归档**: 对报装申请、踏勘记录、合同、施工图纸等所有文档进行电子化归档。
+ - **档案查询**: 提供便捷的查询功能,可按客户名称、报装编号等多种条件检索历史档案。
**新用户报装业务流程图:**
-**图表 15**
+**图表 14**
-
+
**业务规则:**
@@ -830,27 +901,146 @@ CJKmainfont: "PingFang SC"
5. **验收规则**:施工完成后由工程部门、质检部门联合验收
6. **归档规则**:验收合格后所有资料必须完整归档并同步系统信息
-# 子系统4设计: 客户服务
+# 子系统5设计: 客户服务
## 功能与界面
-客户服务系统为用水客户提供多渠道的线上服务。
+客户服务系统为用水客户提供多渠道、便捷的线上自助服务,主要通过微信和支付宝小程序实现。
-**服务渠道:**
+## 模块列表
+
+| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
+|---|---|---|---|
+| SERVICE-001 | 账户绑定管理 | 客户账户绑定和管理 | 自行开发 |
+| SERVICE-002 | 信息查询服务 | 各类信息查询服务 | 自行开发 |
+| SERVICE-003 | 在线缴费服务 | 多渠道在线缴费服务 | 自行开发 |
+| SERVICE-004 | 电子发票服务 | 电子发票管理服务 | 自行开发 |
-- **微信小程序**:账户绑定、账单查询、在线缴费
-- **支付宝小程序**:生活缴费、电子发票、服务咨询
-- **手机APP**:完整的移动端服务
-- **客服热线**:电话客服、在线客服
## 模块设计
-**主要功能模块:**
+客户服务系统围绕功能维度进行组织,渠道作为功能的实现方式。
-- **账户绑定**:手机号绑定、实名认证、多户绑定
-- **信息查询**:账单查询、用水历史、缴费记录
-- **在线缴费**:微信支付、支付宝支付、银联支付
-- **电子发票**:发票申请、下载查看、重新发送
+### 模块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: 个人信息与系统设置模块
+- **功能描述**: 管理个人信息和系统设置,提供系统维护功能。
+- **核心功能**:
+ - **个人信息管理**: 姓名修改、手机号设置、信息查看
+ - **账户安全配置**: 密码修改、退出登录
+ - **系统维护选项**: 日志上传、缓存清理、数据备份、版本信息
+
+## 关键技术特性
+
+### 离线作业能力
+- **离线操作**: 已下载任务支持无网络环境操作
+- **数据缓存**: 本地缓存用户档案、抄表记录、工单信息
+- **自动同步**: 网络恢复后自动同步本地数据到服务器
+
+### 数据安全保障
+- **数据校验**: 必填字段验证、格式校验、数值合理性检查
+- **状态一致性**: 任务状态管理、工单状态流转控制
+- **防误操作**: 二次确认机制、数据完整性保护
+
+### 用户体验优化
+- **界面友好**: 清晰的界面布局、直观的操作流程
+- **智能搜索**: 实时搜索、关键词高亮、历史记录
+- **便捷导航**: 户间切换、快速定位、批量操作
# 非功能性需求的设计
@@ -866,7 +1056,7 @@ CJKmainfont: "PingFang SC"
**设计措施:**
1. **数据库优化**
- - 采用OpenGauss主从架构,读写分离
+ - 采用达梦数据库主从架构,读写分离
- 对核心业务表建立合适索引
- 大表分区存储,历史数据归档
- 连接池配置优化
@@ -894,7 +1084,7 @@ CJKmainfont: "PingFang SC"
**数据库兼容性:**
-- 主要支持:OpenGauss 5.0+
+- 主要支持:达梦数据库 8.0+
- 备选方案:PostgreSQL 12+
- 预留接口:MySQL 8.0+
@@ -907,6 +1097,7 @@ CJKmainfont: "PingFang SC"
**身份认证:**
+- 基于OAuth2.0协议的单点登录
- 基于JWT的无状态认证
- 支持多因子认证(MFA)
- OAuth2第三方登录集成
diff --git a/output/新-详细设计说明书.docx b/output/新-详细设计说明书.docx
index e4406fb..9206c84 100644
Binary files a/output/新-详细设计说明书.docx and b/output/新-详细设计说明书.docx differ
diff --git a/output/新-详细设计说明书_processed.md b/output/新-详细设计说明书_processed.md
index 6037d18..b6c23cc 100644
--- a/output/新-详细设计说明书_processed.md
+++ b/output/新-详细设计说明书_processed.md
@@ -13,21 +13,22 @@ CJKmainfont: "PingFang SC"
| 文件状态: | 文档密级: | 公开 |
| :--- | :--- | :--- |
-| 【√】草稿 | | |
-| 【】修改稿 | | |
+| 【】草稿 | | |
+| 【√】修改稿 | | |
| 【】正式发布 | | |
-| | **当前版本:** | **V1.1** |
+| | **当前版本:** | **V1.5** |
| | **作者:** | **唐伟杰** |
-| | **完成日期:** | **2025-07-17** |
+| | **完成日期:** | **2025-08-01** |
## 版本历史
| 日期 | 版本号 | 作者 | 备注 |
| :--- | :--- | :--- | :--- |
| 2025-07-01 | V1.0 | 唐伟杰 | 初版 |
-| **修改内容** | 根据模板和需求规格说明书编写完整的详细设计文档 | | |
-| **增加内容** | 补充了所有子系统和模块的详细设计内容,包括功能描述、业务规则、业务流程、接口定义等 | | |
-| **删除内容** | | | |
+| 2025-07-17 | V1.1 | 唐伟杰 | 补充详细设计内容 |
+| 2025-08-01 | V1.2 | 唐伟杰 | 1. 同步更新概要设计中的子系统和模块结构。
2. 重构表务、报装、客户服务子系统,确保逻辑清晰。
3. 补充和完善数据库设计章节,解决缺失和不明确的问题。
4. 全面审查并修正文档,提升整体质量和一致性。 |
+| 2025-08-01 | V1.3 | 唐伟杰 | 数据库系统变更:将OpenGauss替换为达梦数据库 8.0+,更新所有相关架构图和技术描述。 |
+| 2025-08-01 | V1.4 | 唐伟杰 | 单点登录采用OAuth2.0协议:完善单点登录模块设计,新增OAuth2.0授权流程、接口设计和相关数据表。 |
# 目录
@@ -249,87 +250,161 @@ CJKmainfont: "PingFang SC"
- [业务规则](#业务规则-22)
- [数据设计](#数据设计-17)
- [方法说明](#方法说明-17)
- - [功能2: 仓库管理](#功能2-仓库管理)
+ - [模块2: 表务仓库管理](#模块2-表务仓库管理)
+ - [功能](#功能-11)
+ - [功能1: 水表库存管理](#功能1-水表库存管理)
- [功能描述](#功能描述-26)
- [业务规则](#业务规则-23)
- - [模块2: 仓库管理](#模块2-仓库管理)
- - [模块3: 设备档案管理](#模块3-设备档案管理)
+ - [数据设计](#数据设计-18)
+ - [方法说明](#方法说明-18)
+ - [功能2: 物料管理](#功能2-物料管理)
+ - [功能描述](#功能描述-27)
+ - [业务规则](#业务规则-24)
+ - [模块3: 表务基础管理](#模块3-表务基础管理)
+ - [功能](#功能-12)
+ - [功能1: 水表档案管理](#功能1-水表档案管理)
+ - [功能描述](#功能描述-28)
+ - [业务规则](#业务规则-25)
+ - [数据设计](#数据设计-19)
+ - [方法说明](#方法说明-19)
- [子系统4设计: 报装系统](#子系统4设计-报装系统)
- [功能与界面](#功能与界面-3)
- [模块列表](#模块列表-3)
- [模块设计](#模块设计-3)
- [模块1: 报装流程管理](#模块1-报装流程管理)
- - [功能](#功能-11)
- - [功能1: 报装流程](#功能1-报装流程)
- - [功能描述](#功能描述-27)
- - [新用户报装业务流程图](#新用户报装业务流程图)
- - [业务规则](#业务规则-24)
- - [数据设计](#数据设计-18)
- - [方法说明](#方法说明-18)
- - [功能2: 现场踏勘](#功能2-现场踏勘)
- - [功能描述](#功能描述-28)
- - [业务规则](#业务规则-25)
- - [模块2: 工程管理](#模块2-工程管理)
- - [模块3: 档案管理](#模块3-档案管理)
-- [子系统5设计: 客户服务](#子系统5设计-客户服务)
- - [功能与界面](#功能与界面-4)
- - [模块设计](#模块设计-4)
- - [模块1: 微信支付宝服务窗](#模块1-微信支付宝服务窗)
- - [功能](#功能-12)
- - [功能1: 账户绑定](#功能1-账户绑定)
- - [功能描述](#功能描述-29)
- - [功能2: 在线缴费](#功能2-在线缴费)
- - [功能描述](#功能描述-30)
-- [子系统6设计: 手机抄表APP](#子系统6设计-手机抄表app)
- - [功能与界面](#功能与界面-5)
- - [模块列表](#模块列表-4)
- - [模块设计](#模块设计-5)
- - [模块1: 用户认证模块](#模块1-用户认证模块)
- [功能](#功能-13)
- - [功能1: 移动端登录](#功能1-移动端登录)
- - [功能描述](#功能描述-31)
+ - [功能1: 报装流程](#功能1-报装流程)
+ - [功能描述](#功能描述-29)
+ - [新用户报装业务流程图](#新用户报装业务流程图)
- [业务规则](#业务规则-26)
- - [业务流程](#业务流程-13)
- - [数据设计](#数据设计-19)
- - [方法说明](#方法说明-19)
- - [功能2: 个人信息管理](#功能2-个人信息管理)
- - [功能描述](#功能描述-32)
- - [业务规则](#业务规则-27)
- - [模块2: 抄表任务模块](#模块2-抄表任务模块)
- - [功能](#功能-14)
- - [功能1: 抄表任务管理](#功能1-抄表任务管理)
- - [功能描述](#功能描述-33)
- - [业务规则](#业务规则-28)
- - [业务流程](#业务流程-14)
- [数据设计](#数据设计-20)
- [方法说明](#方法说明-20)
- - [功能2: 现场抄表](#功能2-现场抄表)
- - [功能描述](#功能描述-34)
- - [业务规则](#业务规则-29)
- - [功能3: 欠费查询](#功能3-欠费查询)
- - [功能描述](#功能描述-35)
- - [模块3: 工单管理模块](#模块3-工单管理模块)
- - [功能](#功能-15)
- - [功能1: 问题上报](#功能1-问题上报)
- - [功能描述](#功能描述-36)
- - [业务规则](#业务规则-30)
- - [业务流程](#业务流程-15)
+ - [模块2: 现场踏勘管理](#模块2-现场踏勘管理)
+ - [功能](#功能-14)
+ - [功能1: 现场勘查](#功能1-现场勘查)
+ - [功能描述](#功能描述-30)
+ - [业务规则](#业务规则-27)
- [数据设计](#数据设计-21)
- [方法说明](#方法说明-21)
- - [功能2: 代办工单](#功能2-代办工单)
- - [功能描述](#功能描述-37)
- - [功能3: 停水复水工单](#功能3-停水复水工单)
- - [功能描述](#功能描述-38)
- - [功能4: 稽查工单](#功能4-稽查工单)
- - [功能描述](#功能描述-39)
- - [模块4: 数据同步模块](#模块4-数据同步模块)
+ - [功能2: 技术方案设计](#功能2-技术方案设计)
+ - [功能描述](#功能描述-31)
+ - [业务规则](#业务规则-28)
+ - [模块3: 报装档案管理](#模块3-报装档案管理)
+ - [功能](#功能-15)
+ - [功能1: 报装档案管理](#功能1-报装档案管理)
+ - [功能描述](#功能描述-32)
+ - [业务规则](#业务规则-29)
+ - [数据设计](#数据设计-22)
+ - [方法说明](#方法说明-22)
+- [子系统5设计: 客户服务](#子系统5设计-客户服务)
+ - [功能与界面](#功能与界面-4)
+ - [模块列表](#模块列表-4)
+ - [模块设计](#模块设计-4)
+ - [模块1: 账户绑定管理](#模块1-账户绑定管理)
- [功能](#功能-16)
- - [功能1: 离线存储](#功能1-离线存储)
+ - [功能1: 账户绑定](#功能1-账户绑定)
+ - [功能描述](#功能描述-33)
+ - [业务规则](#业务规则-30)
+ - [数据设计](#数据设计-23)
+ - [方法说明](#方法说明-23)
+ - [功能2: 账户管理](#功能2-账户管理)
+ - [功能描述](#功能描述-34)
+ - [业务规则](#业务规则-31)
+ - [模块2: 信息查询服务](#模块2-信息查询服务)
+ - [功能](#功能-17)
+ - [功能1: 账单查询](#功能1-账单查询)
+ - [功能描述](#功能描述-35)
+ - [业务规则](#业务规则-32)
+ - [数据设计](#数据设计-24)
+ - [方法说明](#方法说明-24)
+ - [模块3: 在线缴费服务](#模块3-在线缴费服务)
+ - [功能](#功能-18)
+ - [功能1: 多渠道支付](#功能1-多渠道支付)
+ - [功能描述](#功能描述-36)
+ - [业务规则](#业务规则-33)
+ - [数据设计](#数据设计-25)
+ - [方法说明](#方法说明-25)
+ - [模块4: 电子发票服务](#模块4-电子发票服务)
+ - [功能](#功能-19)
+ - [功能1: 发票管理](#功能1-发票管理)
+ - [功能描述](#功能描述-37)
+ - [业务规则](#业务规则-34)
+ - [数据设计](#数据设计-26)
+ - [方法说明](#方法说明-26)
+- [子系统6设计: 手机抄表APP](#子系统6设计-手机抄表app)
+ - [功能与界面](#功能与界面-5)
+ - [模块列表](#模块列表-5)
+ - [模块设计](#模块设计-5)
+ - [模块1: 登录模块](#模块1-登录模块)
+ - [功能](#功能-20)
+ - [功能1: 核心登录功能](#功能1-核心登录功能)
+ - [功能描述](#功能描述-38)
+ - [业务规则](#业务规则-35)
+ - [业务流程](#业务流程-13)
+ - [界面设计要点](#界面设计要点)
+ - [数据设计](#数据设计-27)
+ - [方法说明](#方法说明-27)
+ - [模块2: 首页搜索模块](#模块2-首页搜索模块)
+ - [功能](#功能-21)
+ - [功能1: 搜索框功能](#功能1-搜索框功能)
+ - [功能描述](#功能描述-39)
+ - [业务规则](#业务规则-36)
+ - [业务流程](#业务流程-14)
+ - [界面设计要点](#界面设计要点-1)
+ - [数据设计](#数据设计-28)
+ - [方法说明](#方法说明-28)
+ - [模块3: 采集任务管理模块](#模块3-采集任务管理模块)
+ - [功能](#功能-22)
+ - [功能1: 任务列表管理](#功能1-任务列表管理)
- [功能描述](#功能描述-40)
- - [功能2: 在线同步](#功能2-在线同步)
+ - [业务规则](#业务规则-37)
+ - [业务流程](#业务流程-15)
+ - [界面设计要点](#界面设计要点-2)
+ - [数据设计](#数据设计-29)
+ - [方法说明](#方法说明-29)
+ - [功能2: 单户采集详情](#功能2-单户采集详情)
- [功能描述](#功能描述-41)
- - [功能3: 冲突处理](#功能3-冲突处理)
+ - [业务规则](#业务规则-38)
+ - [界面设计要点](#界面设计要点-3)
+ - [模块4: 换表工单模块](#模块4-换表工单模块)
+ - [功能](#功能-23)
+ - [功能1: 换表工单处理流程](#功能1-换表工单处理流程)
- [功能描述](#功能描述-42)
+ - [业务规则](#业务规则-39)
+ - [业务流程](#业务流程-16)
+ - [界面设计要点](#界面设计要点-4)
+ - [数据设计](#数据设计-30)
+ - [方法说明](#方法说明-30)
+ - [模块5: 其他工单模块](#模块5-其他工单模块)
+ - [功能](#功能-24)
+ - [功能1: 复水工单](#功能1-复水工单)
+ - [功能描述](#功能描述-43)
+ - [业务流程](#业务流程-17)
+ - [功能2: 稽查任务](#功能2-稽查任务)
+ - [功能描述](#功能描述-44)
+ - [功能3: 抄表稽查](#功能3-抄表稽查)
+ - [功能描述](#功能描述-45)
+ - [界面设计要点](#界面设计要点-5)
+ - [功能4: 问题上报](#功能4-问题上报)
+ - [功能描述](#功能描述-46)
+ - [界面设计要点](#界面设计要点-6)
+ - [数据设计](#数据设计-31)
+ - [模块6: 个人信息与系统设置模块](#模块6-个人信息与系统设置模块)
+ - [功能](#功能-25)
+ - [功能1: 个人信息管理](#功能1-个人信息管理)
+ - [功能描述](#功能描述-47)
+ - [界面设计要点](#界面设计要点-7)
+ - [功能2: 账户安全配置](#功能2-账户安全配置)
+ - [功能描述](#功能描述-48)
+ - [功能3: 系统维护选项](#功能3-系统维护选项)
+ - [功能描述](#功能描述-49)
+ - [界面设计要点](#界面设计要点-8)
+ - [数据设计](#数据设计-32)
+ - [关键业务规则与注意事项](#关键业务规则与注意事项)
+ - [数据校验规则](#数据校验规则)
+ - [状态一致性规则](#状态一致性规则)
+ - [离线能力支持](#离线能力支持)
+ - [防误操作机制](#防误操作机制)
- [中间件和其他设计](#中间件和其他设计)
- [缓存设计](#缓存设计)
- [Redis](#redis)
@@ -454,7 +529,7 @@ CJKmainfont: "PingFang SC"
**图表 1**
-
+
### 系统数据流向图
@@ -462,7 +537,7 @@ CJKmainfont: "PingFang SC"
**图表 2**
-
+
### 表现层
@@ -483,7 +558,7 @@ CJKmainfont: "PingFang SC"
- 客户服务:微信、支付宝等客户服务渠道
### 数据层
-- 主数据库:OpenGauss 5.0+,采用主从架构,保证数据的高可用性
+- 主数据库:达梦数据库 8.0+,采用主从架构,保证数据的高可用性
- 缓存:Redis 6.0+,分布式缓存集群,提升系统性能
- 文件存储:MinIO分布式文件存储,处理系统文件和附件
@@ -496,7 +571,7 @@ CJKmainfont: "PingFang SC"
**图表 3**
-
+
### 容器化部署架构
@@ -504,7 +579,7 @@ CJKmainfont: "PingFang SC"
**图表 4**
-
+
### 硬件配置规格表
@@ -528,7 +603,7 @@ CJKmainfont: "PingFang SC"
| 设备类型 | 配置规格 | 数量 | 主要作用 | 备注 |
|---------|---------|------|----------|------|
-| 数据库服务器 | 32核128G,10TB SSD,万兆网卡 | 3台 | 主从备数据库 | OpenGauss分布式架构 |
+| 数据库服务器 | 32核128G,10TB SSD,万兆网卡 | 3台 | 主从备数据库 | 达梦数据库分布式架构 |
| 缓存服务器 | 16核32G,1TB SSD,万兆网卡 | 3台 | Redis集群 | 主从哨兵模式 |
| 文件存储服务器 | 8核32G,10TB HDD,千兆网卡 | 3台 | 分布式文件存储 | MinIO集群模式 |
@@ -550,7 +625,7 @@ CJKmainfont: "PingFang SC"
- 应用服务集群:2台服务器,16核64G,部署后端微服务应用
### 数据服务区
-- 数据库集群:OpenGauss主从架构,32核128G,保证数据高可用
+- 数据库集群:达梦数据库主从架构,32核128G,保证数据高可用
- 缓存集群:Redis集群,16核32G,提升系统响应性能
- 文件存储:分布式文件存储,8核32G 10TB,处理业务文件
@@ -641,7 +716,7 @@ CJKmainfont: "PingFang SC"
1. **功能概述**
- 提供统一的用户登录认证功能,支持用户名密码登录、手机号短信验证码登录等多种认证方式。登录成功后生成JWT令牌,用于后续请求的身份验证。
+ 提供统一的用户登录认证功能,基于OAuth2.0协议实现单点登录,支持用户名密码登录、手机号短信验证码登录等多种认证方式。登录成功后生成JWT令牌,用于后续请求的身份验证。
2. **操作权限**
@@ -672,10 +747,12 @@ CJKmainfont: "PingFang SC"
1. **密码规则**:密码必须包含字母和数字,长度6-20位
2. **验证码规则**:验证码区分大小写,有效期5分钟
3. **账户锁定规则**:连续5次密码错误将锁定账户30分钟
-4. **令牌管理规则**:JWT令牌有效期2小时,支持滑动过期
+4. **OAuth2.0协议支持**:支持授权码模式(Authorization Code)和客户端凭证模式(Client Credentials)
+5. **令牌管理规则**:JWT令牌有效期2小时,支持自动刷新,OAuth2.0访问令牌有效期4小时
###### 业务流程
+**标准登录流程:**
1. 用户访问登录页面
2. 输入用户名、密码、验证码
3. 系统验证输入参数的有效性
@@ -685,12 +762,25 @@ CJKmainfont: "PingFang SC"
7. 返回用户信息和令牌给前端
8. 前端保存令牌并跳转到首页
+**OAuth2.0授权码模式流程:**
+1. 客户端应用重定向用户到授权服务器(/oauth/authorize)
+2. 用户在授权服务器进行身份认证
+3. 用户授权后,授权服务器重定向回客户端并携带授权码
+4. 客户端使用授权码向授权服务器请求访问令牌(/oauth/token)
+5. 授权服务器验证授权码并返回访问令牌和刷新令牌
+6. 客户端使用访问令牌访问受保护的资源
+
###### 数据设计
涉及的主要数据表:
- `system_users`:用户基本信息表
- `system_login_log`:登录日志表
- `system_user_session`:用户会话表
+- `system_oauth2_client`:OAuth2客户端表
+- `system_oauth2_access_token`:OAuth2访问令牌表
+- `system_oauth2_refresh_token`:OAuth2刷新令牌表
+- `system_oauth2_code`:OAuth2授权码表
+- `system_oauth2_approve`:OAuth2批准表
###### 方法说明
@@ -699,6 +789,9 @@ CJKmainfont: "PingFang SC"
| login | 用户登录 | username:用户名(必填)
password:密码(必填)
captcha:验证码(必填) | 登录结果、用户信息、JWT令牌 |
| logout | 用户登出 | token:JWT令牌(必填) | 登出结果 |
| refreshToken | 刷新令牌 | refreshToken:刷新令牌(必填) | 新的JWT令牌 |
+| oauthAuthorize | OAuth2.0授权 | client_id:客户端ID(必填)
response_type:响应类型(必填)
redirect_uri:重定向URI(必填)
scope:权限范围(可选) | 授权页面或授权码 |
+| oauthToken | OAuth2.0获取令牌 | grant_type:授权类型(必填)
code:授权码(必填)
client_id:客户端ID(必填)
client_secret:客户端密钥(必填) | 访问令牌、刷新令牌、令牌类型 |
+| oauthRefresh | OAuth2.0刷新令牌 | grant_type:授权类型(必填)
refresh_token:刷新令牌(必填)
client_id:客户端ID(必填) | 新的访问令牌、刷新令牌 |
###### 其他说明
@@ -977,7 +1070,7 @@ h、**错误响应码**
**图表 5**
-
+
###### 数据设计
@@ -1012,7 +1105,7 @@ h、**错误响应码**
**图表 6**
-
+
###### 业务规则
@@ -1179,7 +1272,7 @@ f、**响应参数**
**图表 7**
-
+
###### 数据设计
@@ -1313,7 +1406,7 @@ f、**响应参数**
**图表 8**
-
+
###### 输入输出数据
@@ -1416,7 +1509,7 @@ f、**响应参数**
**图表 9**
-
+
###### 数据设计
@@ -1477,7 +1570,7 @@ f、**响应参数**
**图表 10**
-
+
###### 数据设计
@@ -1538,7 +1631,7 @@ f、**响应参数**
**图表 11**
-
+
###### 数据设计
@@ -1556,7 +1649,6 @@ f、**响应参数**
| submitRefundApplication | 提交退款申请 | refundData:退款数据(必填) | RefundResult对象 |
| approveRefundApplication | 审批退款申请 | refundId:退款ID(必填)
approvalResult:审批结果(必填) | Boolean类型:true/false |
| executeRefundOperation | 执行退款操作 | refundId:退款ID(必填) | Boolean类型:true/false |
-
##### 功能4: 呆坏账申请
###### 功能描述
@@ -1599,7 +1691,7 @@ f、**响应参数**
**图表 12**
-
+
###### 数据设计
@@ -1660,7 +1752,7 @@ f、**响应参数**
**图表 13**
-
+
###### 数据设计
@@ -1721,7 +1813,7 @@ f、**响应参数**
**图表 14**
-
+
###### 数据设计
@@ -1799,7 +1891,7 @@ f、**响应参数**
**图表 15**
-
+
###### 数据设计
@@ -1877,7 +1969,7 @@ f、**响应参数**
**图表 16**
-
+
###### 数据设计
@@ -2032,7 +2124,7 @@ f、**响应参数**
**图表 17**
-
+
###### 数据设计
@@ -2074,16 +2166,16 @@ f、**响应参数**
**主要功能模块:**
- **表务工单管理**:工单创建、派发、处理、验收的全流程管理
-- **仓库管理**:水表库存管理、出入库记录、库存预警
-- **设备档案管理**:水表档案、维修记录、使用历史
+- **表务仓库管理**:水表库存管理、出入库记录、库存预警、物料管理
+- **表务基础管理**:水表档案、维修记录、使用历史、技术参数管理
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| METER-001 | 表务工单管理 | 水表维修更换工单全流程管理 | 自行开发 |
-| METER-002 | 仓库管理 | 水表库存管理和出入库管理 | 自行开发 |
-| METER-003 | 设备档案管理 | 水表设备档案和历史记录管理 | 自行开发 |
+| METER-002 | 表务仓库管理 | 水表库存管理和出入库管理 | 自行开发 |
+| METER-003 | 表务基础管理 | 水表档案和历史记录管理 | 自行开发 |
## 模块设计
@@ -2102,7 +2194,7 @@ f、**响应参数**
**图表 18**
-
+
###### 业务规则
@@ -2139,25 +2231,83 @@ f、**响应参数**
| completeWorkOrder | 完成工单 | workOrderId:工单ID(必填),completionInfo:完成信息(必填) | Boolean类型:true/false |
| queryWorkOrderList | 查询工单列表 | queryCondition:查询条件(选填) | PageInfo |
-##### 功能2: 仓库管理
+### 模块2: 表务仓库管理
+
+#### 功能
+
+##### 功能1: 水表库存管理
###### 功能描述
-管理水表库存,包括入库、出库、库存查询、库存预警等功能。
+管理水表库存,包括入库、出库、库存查询、库存预警、物料管理等功能。
###### 业务规则
-1. **入库规则**:新水表采购入库需要验收确认
-2. **出库规则**:维修工单领取需要审核批准
-3. **库存预警**:库存低于安全库存时自动预警
+1. **入库规则**:新水表采购入库需要验收确认,记录水表型号、规格、生产厂家等信息
+2. **出库规则**:维修工单领取需要审核批准,记录领用人、用途、数量等信息
+3. **库存预警**:库存低于安全库存时自动预警,支持邮件和短信通知
+4. **盘点规则**:定期进行库存盘点,处理盘盈盘亏
-### 模块2: 仓库管理
+###### 数据设计
-详细功能设计参考表务工单管理。
+主要涉及以下数据表:
+- `meter_warehouse`:水表仓库表
+- `meter_stock`:水表库存表
+- `meter_in_out_record`:水表出入库记录表
+- `meter_inventory`:水表盘点表
-### 模块3: 设备档案管理
+###### 方法说明
-详细功能设计参考表务工单管理。
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| meterStockIn | 水表入库 | stockInfo:入库信息(必填) | Boolean类型:true/false |
+| meterStockOut | 水表出库 | stockOutInfo:出库信息(必填) | Boolean类型:true/false |
+| queryStockList | 查询库存列表 | queryCondition:查询条件(选填) | PageInfo |
+| stockWarning | 库存预警 | warehouseId:仓库ID(选填) | List |
+
+##### 功能2: 物料管理
+
+###### 功能描述
+
+管理表务相关的物料,包括管材、配件、工具等辅助材料的管理。
+
+###### 业务规则
+
+1. **物料分类**:按照用途对物料进行分类管理
+2. **领用管理**:工单领用物料需要登记,完工后核销
+3. **采购管理**:根据消耗情况制定采购计划
+
+### 模块3: 表务基础管理
+
+#### 功能
+
+##### 功能1: 水表档案管理
+
+###### 功能描述
+
+管理水表的基础档案信息,包括水表技术参数、安装记录、维修历史等。
+
+###### 业务规则
+
+1. **档案建立**:新水表安装时建立档案,记录基本信息
+2. **信息更新**:水表更换、维修时更新档案信息
+3. **历史追踪**:完整记录水表的使用历史和维修记录
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `meter_archive`:水表档案表
+- `meter_maintenance_record`:水表维修记录表
+- `meter_replacement_history`:水表更换历史表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| createMeterArchive | 创建水表档案 | meterInfo:水表信息(必填) | MeterArchive对象 |
+| updateMeterArchive | 更新水表档案 | archiveId:档案ID(必填),updateInfo:更新信息(必填) | Boolean类型:true/false |
+| queryMeterHistory | 查询水表历史 | meterId:水表ID(必填) | List |
+| getMeterMaintenanceRecord | 获取维修记录 | meterId:水表ID(必填) | List |
# 子系统4设计: 报装系统
@@ -2170,17 +2320,17 @@ f、**响应参数**
**主要功能模块:**
-- **报装流程管理**:申请受理、踏勘设计、施工管理、验收通水
-- **工程管理**:施工计划、进度监控、质量验收、成本核算
-- **档案管理**:报装档案、工程档案、图纸管理
+- **报装流程管理**:申请受理、踏勘设计、合同签订、施工协调、验收通水
+- **现场踏勘管理**:现场勘查、技术方案设计、工程预算、可行性评估
+- **报装档案管理**:报装档案、工程档案、图纸管理、客户资料管理
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| INSTALL-001 | 报装流程管理 | 新用户报装全流程管理 | 自行开发 |
-| INSTALL-002 | 工程管理 | 报装工程施工和监管 | 自行开发 |
-| INSTALL-003 | 档案管理 | 报装和工程档案管理 | 自行开发 |
+| INSTALL-002 | 现场踏勘管理 | 现场勘查和技术方案设计 | 自行开发 |
+| INSTALL-003 | 报装档案管理 | 报装和工程档案管理 | 自行开发 |
## 模块设计
@@ -2201,14 +2351,14 @@ f、**响应参数**
**图表 19**
-
+
- 申请受理阶段
**图表 20**
-
+
- 现场勘查设计阶段
@@ -2216,7 +2366,7 @@ f、**响应参数**
**图表 21**
-
+
- 工程施工阶段
@@ -2224,7 +2374,7 @@ f、**响应参数**
**图表 22**
-
+
- 验收移交阶段
@@ -2232,7 +2382,7 @@ f、**响应参数**
**图表 23**
-
+
###### 业务规则
@@ -2271,7 +2421,11 @@ f、**响应参数**
| signContract | 签订报装合同 | contractInfo:合同信息(必填) | Contract对象 |
| trackProgress | 跟踪施工进度 | contractId:合同ID(必填) | ProgressInfo对象 |
-##### 功能2: 现场踏勘
+### 模块2: 现场踏勘管理
+
+#### 功能
+
+##### 功能1: 现场勘查
###### 功能描述
@@ -2283,23 +2437,94 @@ f、**响应参数**
2. **信息收集**:记录现场地理位置、管网分布、施工条件等
3. **方案建议**:提出初步的工程实施方案和注意事项
-### 模块2: 工程管理
+###### 数据设计
-详细功能设计参考报装流程管理。
+主要涉及以下数据表:
+- `site_survey`:现场踏勘表
+- `survey_photo`:踏勘照片表
+- `survey_measurement`:踏勘测量数据表
-### 模块3: 档案管理
+###### 方法说明
-详细功能设计参考报装流程管理。
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| scheduleSurvey | 安排现场踏勘 | applicationId:申请ID(必填),surveyDate:踏勘日期(必填) | Boolean类型:true/false |
+| recordSurveyData | 记录踏勘数据 | surveyData:踏勘数据(必填) | SurveyRecord对象 |
+| generateTechPlan | 生成技术方案 | surveyId:踏勘ID(必填) | TechnicalPlan对象 |
+| calculateCost | 计算工程造价 | planId:方案ID(必填) | CostEstimate对象 |
+
+##### 功能2: 技术方案设计
+
+###### 功能描述
+
+根据现场踏勘结果,设计技术实施方案,包括管线走向、施工方案、材料清单等。
+
+###### 业务规则
+
+1. **方案设计**:根据踏勘结果制定详细的技术方案
+2. **材料清单**:计算所需材料的种类和数量
+3. **造价预算**:根据方案和材料清单计算工程造价
+
+### 模块3: 报装档案管理
+
+#### 功能
+
+##### 功能1: 报装档案管理
+
+###### 功能描述
+
+管理报装过程中产生的各类档案资料,包括申请资料、踏勘资料、施工资料、验收资料等。
+
+###### 业务规则
+
+1. **档案分类**:按照业务类型对档案进行分类管理
+2. **档案归档**:报装完成后及时归档相关资料
+3. **档案查询**:支持多种方式查询档案信息
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `installation_archive`:报装档案表
+- `archive_document`:档案文档表
+- `archive_category`:档案分类表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| createArchive | 创建报装档案 | archiveInfo:档案信息(必填) | Archive对象 |
+| uploadDocument | 上传档案文档 | archiveId:档案ID(必填),document:文档(必填) | Boolean类型:true/false |
+| queryArchive | 查询报装档案 | queryCondition:查询条件(选填) | PageInfo |
+| archiveComplete | 档案归档 | archiveId:档案ID(必填) | Boolean类型:true/false |
# 子系统5设计: 客户服务
## 功能与界面
-客户服务系统为客户提供微信、支付宝等线上服务渠道。
+客户服务系统为用水客户提供多渠道、便捷的线上自助服务,主要通过微信和支付宝小程序实现。
+
+**核心业务流程:**
+账户绑定 → 信息查询 → 在线缴费 → 电子发票 → 客户服务
+
+**主要功能模块:**
+
+- **账户绑定管理**:客户账户绑定、解绑、验证、多账户管理
+- **信息查询服务**:账单查询、缴费记录查询、用水量查询、欠费查询
+- **在线缴费服务**:微信支付、支付宝支付、银行卡支付、预存款缴费
+- **电子发票服务**:发票申请、发票查询、发票下载、发票推送
+
+## 模块列表
+
+| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
+|---|---|---|---|
+| SERVICE-001 | 账户绑定管理 | 客户账户绑定和管理 | 自行开发 |
+| SERVICE-002 | 信息查询服务 | 各类信息查询服务 | 自行开发 |
+| SERVICE-003 | 在线缴费服务 | 多渠道在线缴费服务 | 自行开发 |
+| SERVICE-004 | 电子发票服务 | 电子发票管理服务 | 自行开发 |
## 模块设计
-### 模块1: 微信支付宝服务窗
+### 模块1: 账户绑定管理
#### 功能
@@ -2307,13 +2532,137 @@ f、**响应参数**
###### 功能描述
-用户通过微信或支付宝绑定水务账户,实现在线查询和缴费。
+用户通过微信或支付宝绑定水务账户,实现在线查询和缴费功能。支持多种绑定方式和多账户管理。
-##### 功能2: 在线缴费
+###### 业务规则
+
+1. **绑定验证**:通过客户编号、手机号、身份证等信息验证身份
+2. **多账户管理**:一个微信/支付宝账户可以绑定多个水务账户
+3. **安全控制**:绑定和解绑操作需要短信验证码确认
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `customer_binding`:客户绑定关系表
+- `binding_verification`:绑定验证记录表
+- `binding_log`:绑定操作日志表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| bindAccount | 绑定客户账户 | bindingInfo:绑定信息(必填) | BindingResult对象 |
+| unbindAccount | 解绑客户账户 | bindingId:绑定ID(必填) | Boolean类型:true/false |
+| verifyBinding | 验证绑定信息 | customerCode:客户编号(必填),verifyInfo:验证信息(必填) | Boolean类型:true/false |
+| getBindingList | 获取绑定列表 | openId:微信/支付宝ID(必填) | List |
+
+##### 功能2: 账户管理
###### 功能描述
-用户可以通过微信、支付宝在线缴纳水费,支持多种支付方式。
+管理已绑定的客户账户,包括账户信息更新、绑定状态管理、账户切换等。
+
+###### 业务规则
+
+1. **状态管理**:支持启用、停用绑定关系
+2. **信息同步**:定期同步客户基础信息
+3. **异常处理**:处理账户异常情况(如销户、过户等)
+
+### 模块2: 信息查询服务
+
+#### 功能
+
+##### 功能1: 账单查询
+
+###### 功能描述
+
+提供客户账单查询服务,包括当期账单、历史账单、欠费信息等查询功能。
+
+###### 业务规则
+
+1. **查询权限**:只能查询已绑定账户的信息
+2. **数据范围**:支持查询最近24个月的账单信息
+3. **实时更新**:账单信息实时同步更新
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `billing_record`:开账记录表
+- `payment_record`:缴费记录表
+- `customer_info`:客户信息表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| getBillInfo | 获取账单信息 | customerCode:客户编号(必填),billMonth:账单月份(选填) | BillInfo对象 |
+| getPaymentHistory | 获取缴费历史 | customerCode:客户编号(必填),startDate:开始日期(选填),endDate:结束日期(选填) | List |
+| getArrearsInfo | 获取欠费信息 | customerCode:客户编号(必填) | ArrearsInfo对象 |
+| getUsageHistory | 获取用水历史 | customerCode:客户编号(必填),months:查询月数(选填) | List |
+
+### 模块3: 在线缴费服务
+
+#### 功能
+
+##### 功能1: 多渠道支付
+
+###### 功能描述
+
+支持微信支付、支付宝支付、银行卡支付等多种支付方式,为客户提供便捷的在线缴费服务。
+
+###### 业务规则
+
+1. **支付限额**:单次支付金额不超过5000元
+2. **支付确认**:支付完成后实时更新账户状态
+3. **退款处理**:支持支付失败和错误支付的退款处理
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `online_payment`:在线支付记录表
+- `payment_channel`:支付渠道表
+- `refund_record`:退款记录表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| createPayment | 创建支付订单 | paymentInfo:支付信息(必填) | PaymentOrder对象 |
+| confirmPayment | 确认支付结果 | orderId:订单ID(必填) | PaymentResult对象 |
+| processRefund | 处理退款申请 | refundInfo:退款信息(必填) | RefundResult对象 |
+| getPaymentStatus | 查询支付状态 | orderId:订单ID(必填) | PaymentStatus对象 |
+
+### 模块4: 电子发票服务
+
+#### 功能
+
+##### 功能1: 发票管理
+
+###### 功能描述
+
+提供电子发票申请、查询、下载等服务,支持个人和企业发票需求。
+
+###### 业务规则
+
+1. **发票类型**:支持普通发票和专用发票
+2. **开票时限**:缴费后30天内可申请发票
+3. **发票推送**:发票开具成功后自动推送给客户
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `invoice_application`:发票申请表
+- `invoice_info`:发票信息表
+- `invoice_push_log`:发票推送日志表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| applyInvoice | 申请电子发票 | invoiceRequest:发票申请(必填) | InvoiceApplication对象 |
+| getInvoiceList | 获取发票列表 | customerCode:客户编号(必填) | List |
+| downloadInvoice | 下载电子发票 | invoiceId:发票ID(必填) | InvoiceFile对象 |
+| pushInvoice | 推送电子发票 | invoiceId:发票ID(必填),pushChannel:推送渠道(必填) | Boolean类型:true/false |
# 子系统6设计: 手机抄表APP
@@ -2326,33 +2675,37 @@ f、**响应参数**
**主要功能模块:**
-- **用户认证**:登录验证、个人信息管理、权限控制
-- **抄表任务**:任务下载、现场抄表、抄表汇总、欠费查询
-- **工单管理**:问题上报、代办工单、停水复水、稽查工单
-- **数据同步**:离线存储、在线同步、冲突处理
+- **登录模块**:机构编号、用户名密码认证、自动登录、版权标识
+- **首页搜索**:多维度搜索、最近搜索记录、抄表任务列表
+- **采集任务管理**:任务列表、批量下载、单户采集详情
+- **换表工单**:工单处理流程、设备信息录入、附件上传
+- **其他工单**:复水工单、稽查任务、抄表稽查、问题上报
+- **个人信息与系统设置**:个人信息管理、账户安全、系统维护
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
-| MOBILE-001 | 用户认证模块 | 登录验证、个人信息管理 | 自行开发 |
-| MOBILE-002 | 抄表任务模块 | 抄表任务管理和现场抄表 | 自行开发 |
-| MOBILE-003 | 工单管理模块 | 各类工单处理和管理 | 自行开发 |
-| MOBILE-004 | 数据同步模块 | 离线存储和在线同步 | 自行开发 |
+| MOBILE-001 | 登录模块 | 机构编号、用户名密码认证、自动登录 | 自行开发 |
+| MOBILE-002 | 首页搜索模块 | 多维度搜索、最近搜索记录、抄表任务 | 自行开发 |
+| MOBILE-003 | 采集任务管理模块 | 任务列表管理、批量下载、单户采集 | 自行开发 |
+| MOBILE-004 | 换表工单模块 | 换表工单处理、设备信息录入 | 自行开发 |
+| MOBILE-005 | 其他工单模块 | 复水、稽查、问题上报等工单处理 | 自行开发 |
+| MOBILE-006 | 个人信息与系统设置模块 | 个人信息管理、系统设置维护 | 自行开发 |
## 模块设计
-### 模块1: 用户认证模块
+### 模块1: 登录模块
#### 功能
-##### 功能1: 移动端登录
+##### 功能1: 核心登录功能
###### 功能描述
1. **功能概述**
- 提供移动端用户登录认证功能,支持在线和离线两种登录方式。在线登录时验证用户身份,离线登录时使用本地缓存验证。
+ 提供移动端用户登录认证功能,支持机构编号、用户名、密码三要素登录,包含自动登录选项和登录问题支持。
2. **操作权限**
@@ -2362,232 +2715,586 @@ f、**响应参数**
3. **功能约束**
- - 支持在线和离线两种登录方式
- - 登录状态保持7天,超期需重新登录
- - 首次登录必须在线验证
+ - 必须输入机构编号、用户名、密码三要素
+ - 支持自动登录功能(默认未勾选)
+ - 登录失败提供客服支持途径
###### 业务规则
-1. **在线登录规则**:需要网络连接,验证用户名密码
-2. **离线登录规则**:使用本地缓存的用户信息验证
-3. **权限控制规则**:根据用户角色控制功能访问权限
+1. **登录验证规则**:机构编号、用户名、密码三要素缺一不可
+2. **自动登录规则**:勾选后下次打开应用自动提交历史凭证登录
+3. **安全控制规则**:密码输入内容自动掩码显示
###### 业务流程
**图表 24**
-
+
+###### 界面设计要点
+
+1. **欢迎语**:顶部显示"您好!欢迎使用「手机抄表」功能"
+2. **登录表单**:
+ - 机构编号输入框:占位提示"请输入机构ID"
+ - 用户名输入框:占位提示"输入账号"
+ - 密码输入框:占位提示"输入密码",内容自动掩码
+ - 自动登录复选框:标签为"自动登录",默认未勾选
+ - 登录按钮:标签为"登录",主操作按钮
+3. **辅助功能**:
+ - 底部提示"登录遇到问题联系客服"
+ - 底部版权标识"福建水投集团"
+
###### 数据设计
主要涉及以下数据表:
-- `mobile_user_session`:移动端用户会话表
-- `mobile_user_cache`:移动端用户缓存表
-- `mobile_login_log`:移动端登录日志表
+- `system_users`:用户基本信息表(复用Web端)
+- `system_login_log`:登录日志表(复用Web端,扩展设备类型字段)
+- `mobile_user_cache`:移动端用户缓存表(移动端特有,用于离线缓存)
###### 方法说明
| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
|---|---|---|---|
-| onlineLogin | 在线登录验证 | username:用户名(必填)
password:密码(必填)
deviceId:设备ID(必填) | LoginResult对象 |
-| offlineLogin | 离线登录验证 | username:用户名(必填)
localPassword:本地密码(必填) | LoginResult对象 |
-| updateUserCache | 更新用户缓存 | userInfo:用户信息(必填) | Boolean类型:true/false |
-| checkPermission | 检查用户权限 | userId:用户ID(必填)
functionCode:功能代码(必填) | Boolean类型:true/false |
+| submitLogin | 提交登录验证 | orgCode:机构编号(必填)
username:用户名(必填)
password:密码(必填)
autoLogin:自动登录(可选) | LoginResult对象 |
+| checkAutoLogin | 检查自动登录 | deviceId:设备ID(必填) | AutoLoginResult对象 |
+| saveLoginCredentials | 保存登录凭证 | credentials:登录凭证(必填) | Boolean类型:true/false |
+| clearLoginCache | 清除登录缓存 | userId:用户ID(必填) | Boolean类型:true/false |
-##### 功能2: 个人信息管理
-
-###### 功能描述
-
-管理抄表员的个人信息,包括基本信息修改、密码变更、抄表设置等。
-
-###### 业务规则
-
-1. **信息修改规则**:手机号等敏感信息需要验证
-2. **密码变更规则**:新密码需要符合安全要求
-3. **设置同步规则**:个人设置需要同步到服务器
-
-### 模块2: 抄表任务模块
+### 模块2: 首页搜索模块
#### 功能
-##### 功能1: 抄表任务管理
+##### 功能1: 搜索框功能
###### 功能描述
1. **功能概述**
- 管理抄表员的抄表任务,包括任务下载、任务分配、进度跟踪等功能。支持按册本、按区域、按时间等多种任务组织方式。
+ 提供多维度客户搜索功能,支持户号、户名、地址、钢印号、手机号等多种搜索条件,实现快速定位客户信息。
2. **操作权限**
- - 抄表员:查看和执行自己的抄表任务
- - 抄表组长:查看和分配所有抄表任务
+ - 所有登录用户均可使用搜索功能
+ - 搜索结果根据用户权限进行过滤
3. **功能约束**
- - 任务数据支持离线存储
- - 支持任务优先级管理
- - 任务完成后需要及时上传
+ - 支持实时搜索和关键词高亮
+ - 搜索历史自动保存和去重
+ - 异常状态需要友好提示
###### 业务规则
-1. **任务下载规则**:
- - 系统根据抄表周期自动生成任务
- - 抄表员只能下载自己负责的任务
- - 任务数据包含客户信息、历史抄表记录等
+1. **搜索条件规则**:支持户号、户名、地址、钢印号、手机号模糊匹配
+2. **搜索历史规则**:最近搜索记录自动去重,显示关键信息
+3. **结果展示规则**:搜索结果实时显示,支持关键词高亮
-2. **任务执行规则**:
- - 按照册本顺序进行抄表
- - 支持跳过和延后处理
- - 异常情况需要拍照记录
+###### 业务流程
-3. **数据上传规则**:
+
+```mermaid
+flowchart TD
+ A[进入首页] --> B[显示搜索框]
+ B --> C[显示最近搜索记录]
+ C --> D[显示抄表任务列表]
+
+ B --> E[输入搜索关键词]
+ E --> F[实时搜索匹配]
+ F --> G{是否有结果}
+ G -->|有结果| H[显示搜索结果]
+ G -->|无结果| I[显示"未找到相关用户"]
+
+ H --> J[点击搜索结果]
+ C --> K[点击最近搜索]
+ D --> L[点击抄表任务]
+
+ J --> M[跳转用户详情页]
+ K --> M
+ L --> M
+
+ M --> N[携带用户信息]
+ N --> O[加载用户档案]
+ O --> P[显示水表数据]
+ P --> Q[显示欠费账单]
+ Q --> R([完成用户信息加载])
+
+```
+
+
+###### 界面设计要点
+
+1. **搜索框区域**:
+ - 占位提示:"户号/户名/地址/钢印号/手机号"
+ - 右侧取消按钮:清空内容并退出搜索状态
+2. **最近搜索记录**:
+ - 显示"最近搜索"标签
+ - 条目包含户号、户名、地址末段
+ - 点击条目跳转用户详情页
+3. **抄表任务列表**:
+ - 显示"抄表任务"标签
+ - 每户显示户号、户名、完整地址
+ - 相同户号的多条记录合并显示
+4. **搜索结果列表**:
+ - 实时展示匹配结果
+ - 支持关键词高亮显示
+ - 无结果时显示友好提示
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `mobile_search_history`:移动端搜索历史表(移动端特有)
+- `reading_book`:抄表册本表(复用Web端)
+- `customer_info`:客户基本信息表(复用Web端)
+- `meter_info`:水表信息表(复用Web端)
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| searchCustomer | 搜索客户信息 | keyword:搜索关键词(必填)
searchType:搜索类型(可选) | List对象 |
+| getSearchHistory | 获取搜索历史 | userId:用户ID(必填)
limit:条数限制(可选) | List对象 |
+| saveSearchHistory | 保存搜索历史 | userId:用户ID(必填)
keyword:关键词(必填) | Boolean类型:true/false |
+| getReadingTaskList | 获取抄表任务列表 | employeeId:抄表员ID(必填) | List对象 |
+
+### 模块3: 采集任务管理模块
+
+#### 功能
+
+##### 功能1: 任务列表管理
+
+###### 功能描述
+
+1. **功能概述**
+
+ 管理抄表员的采集任务,包括任务列表展示、数据统计面板、任务筛选分类、批量下载等功能。
+
+2. **操作权限**
+
+ - 抄表员:查看和执行自己的任务
+ - 抄表组长:查看所有任务和分配权限
+
+3. **功能约束**
+
+ - 任务按册本组织,支持离线操作
+ - 未下载任务需要联网下载数据包
+ - 支持全选和批量操作
+
+###### 业务规则
+
+1. **任务状态规则**:未下载(需联网)、已下载(支持离线)
+2. **任务筛选规则**:按"全部/未采集/采集"分类查看
+3. **批量操作规则**:支持全选和多选批量下载
+
+###### 业务流程
+
+
+```mermaid
+flowchart TD
+ A[进入任务管理] --> B[显示操作员姓名]
+ B --> C[显示全局搜索框]
+ C --> D[显示数据统计面板]
+ D --> E[显示任务筛选标签]
+ E --> F[显示任务列表]
+
+ F --> G[选择任务项]
+ G --> H[批量操作]
+ H --> I[全选功能]
+ I --> J[点击下载按钮]
+
+ J --> K{网络状态}
+ K -->|有网络| L[下载任务数据包]
+ K -->|无网络| M[提示网络异常]
+
+ L --> N[更新任务状态]
+ N --> O[显示"已下载"]
+ O --> P[支持离线操作]
+ P --> Q([任务下载完成])
+
+ M --> R[等待网络恢复]
+ R --> J
+
+```
+
+
+###### 界面设计要点
+
+1. **页面头部**:
+ - 显示当前操作员姓名(如"张三")
+ - 全局搜索框:支持按"户号/户名/地址/钢印"搜索
+2. **数据统计面板**:
+ - 分栏显示"应采集X|已采集Y|已上传Z"
+ - 实时反映任务进度
+3. **任务筛选**:
+ - 标签页导航:"全部/未采集/采集"
+ - 支持按状态分类查看
+4. **任务列表**:
+ - 单条任务项:册本编号、备注、状态标签
+ - 左侧单选按钮:支持勾选任务项
+ - 状态标识:"未下载"或"已下载"
+5. **批量操作区**:
+ - 底部"全选"按钮:勾选所有任务
+ - 显示"已选册本(N)"计数
+ - 蓝色"下载"按钮:批量下载选中任务
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `reading_book`:抄表册本表(复用Web端)
+- `reading_record`:抄表记录表(复用Web端)
+- `customer_info`:客户基本信息表(复用Web端)
+- `meter_info`:水表信息表(复用Web端)
+- `mobile_task_sync`:移动端任务同步表(移动端特有,用于离线任务管理)
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| getTaskList | 获取任务列表 | employeeId:抄表员ID(必填)
status:任务状态(可选) | List对象 |
+| downloadTaskData | 下载任务数据包 | taskIds:任务ID列表(必填) | DownloadResult对象 |
+| getTaskStatistics | 获取任务统计 | employeeId:抄表员ID(必填) | TaskStatistics对象 |
+| updateTaskStatus | 更新任务状态 | taskId:任务ID(必填)
status:状态(必填) | Boolean类型:true/false |
+
+##### 功能2: 单户采集详情
+
+###### 功能描述
+
+1. **功能概述**
+
+ 提供单个客户的详细采集功能,包括住户档案展示、多种采集方式选择、户间导航等。
+
+2. **功能约束**
+
+ - 显示完整的客户档案信息
+ - 支持定位、NFC、扫码三种采集方式
+ - 支持按任务列表顺序切换客户
+
+###### 业务规则
+
+1. **档案展示规则**:显示户号、户名、地址、表钢印号、水表编号、安装位置等
+2. **采集方式规则**:定位(GPS)、NFC(电子标签)、扫码(二维码/条形码)
+3. **导航规则**:按任务列表顺序支持上一户/下一户切换
+
+###### 界面设计要点
+
+1. **住户档案区域**:
+ - 显示户号、户名、完整地址
+ - 显示表钢印号、水表编号、安装位置
+ - 右上角显示状态标签(如"正常""欠费")
+2. **采集方式选择**:
+ - 并列提供三种采集入口
+ - 定位:获取GPS坐标
+ - NFC:读取电子标签
+ - 扫码:识别二维码/条形码
+3. **户间导航**:
+ - 底部"上一户/下一户"按钮
+ - 按任务列表顺序切换
+
+### 模块4: 换表工单模块
+
+#### 功能
+
+##### 功能1: 换表工单处理流程
+
+###### 功能描述
+
+1. **功能概述**
+
+ 处理换表工单的完整流程,从待办工单列表到工单完成,包括工单信息填写、设备信息录入、附件上传等。
+
+2. **操作权限**
+
+ - 表务人员:处理换表工单
+ - 工单管理员:工单分配和审核
+
+3. **功能约束**
+
+ - 必填字段必须完整填写
+ - 必须上传现场照片和视频
+ - 支持工单退单和说明原因
+
+###### 业务规则
+
+1. **工单筛选规则**:支持按用户名、时间、工单类型、抄表员多维度筛选
+2. **信息录入规则**:旧表底码、新表底码为必填项
+3. **设备信息规则**:IMEI为强制录入,IMSI和通讯模块号可选
+4. **附件要求规则**:必须上传图片或视频作为现场证据
+
+###### 业务流程
+
+
+**图表 27**
+
+
+
+
+###### 界面设计要点
+
+1. **待办工单列表**:
+ - 筛选功能:用户名、开始时间、工单类型、抄表员
+ - 时间选择器:支持跨年度选择(2023-2025年)
+ - 工单信息:编号、户主姓名、地址、联系方式、创建时间
+2. **工单信息填写**:
+ - 基础信息:户号、户名、地址、联系电话(自动带出,不可编辑)
+ - 表具数据:旧表底码(必填)、新表底码(必填)、表钢印号/水表编号/条形码
+ - 技术参数:新表口径、新表量程、新表厂家/型号
+ - 设备标识:IMEI(强制录入)、IMSI、通讯模块号
+ - 备注框:支持长文本输入
+3. **附件上传**:
+ - 支持图片(拍照/相册)
+ - 支持视频(现场录制)
+4. **操作按钮**:
+ - 蓝色"完成"按钮:提交工单
+ - 红色"退单"按钮:终止并说明原因
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `meter_work_order`:表务工单表(复用Web端)
+- `meter_replacement_log`:水表更换日志表(复用Web端)
+- `work_order_material`:工单用料表(复用Web端)
+- `mobile_work_attachment`:移动端工单附件表(移动端特有,用于现场附件管理)
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| getWorkOrderList | 获取待办工单列表 | employeeId:抄表员ID(必填)
filter:筛选条件(可选) | List对象 |
+| submitMeterChange | 提交换表工单 | workOrderId:工单ID(必填)
meterChangeData:换表数据(必填) | SubmitResult对象 |
+| uploadAttachment | 上传附件 | workOrderId:工单ID(必填)
attachmentData:附件数据(必填) | UploadResult对象 |
+| rejectWorkOrder | 退单处理 | workOrderId:工单ID(必填)
reason:退单原因(必填) | Boolean类型:true/false |
+
+### 模块5: 其他工单模块
+
+#### 功能
+
+##### 功能1: 复水工单
+
+###### 功能描述
+
+1. **功能概述**
+
+ 处理客户复水工单,包括日期选择、用户信息展示、欠费状态校验、二次确认操作等。
+
+2. **业务规则**
+
+ - 必须校验欠费结清状态
+ - 需要二次确认操作
+ - 记录复水操作时间和操作人
+
+###### 业务流程
+
+
+```mermaid
+flowchart TD
+ A[选择复水工单] --> B[选择日期]
+ B --> C[展示用户信息]
+ C --> D[显示欠费结清状态]
+ D --> E{欠费是否结清}
+ E -->|是| F[显示"确认开水"按钮]
+ E -->|否| G[提示需要结清欠费]
+ F --> H[点击确认开水]
+ H --> I[二次弹窗确认]
+ I --> J{确认操作}
+ J -->|是| K[执行复水操作]
+ J -->|否| L[取消操作]
+ K --> M[更新客户状态]
+ M --> N[记录操作日志]
+ N --> O([复水工单完成])
+
+```
+
+
+##### 功能2: 稽查任务
+
+###### 功能描述
+
+1. **功能概述**
+
+ 执行抄表稽查任务,包括待办列表、采集任务管理、数据看板、离线数据下载等。
+
+2. **业务规则**
+
+ - 支持双模式入口:待办列表和采集任务管理
+ - 实时显示稽查进度
+ - 支持册本批量下载
+
+##### 功能3: 抄表稽查
+
+###### 功能描述
+
+1. **功能概述**
+
+ 对抄表数据进行稽查验证,包括用户档案核对、抄表数据对比、稽查结论填写、过程存证等。
+
+2. **业务规则**
+
+ - 必须填写稽查结论(合格/不合格)
+ - 必须上传图片和视频证据
+ - 记录上期读数和本期读数
+
+###### 界面设计要点
+
+1. **信息结构**:
+ - 用户档案:编号、姓名、地址、钢印号
+ - 抄表数据:上期读数→本期读数
+ - 稽查结论:"合格"单选按钮(强制选择)
+ - 过程存证:图片+视频附件上传(必传)
+2. **操作按钮**:
+ - 蓝色"保存"按钮:完成稽查
+
+##### 功能4: 问题上报
+
+###### 功能描述
+
+1. **功能概述**
+
+ 支持现场问题上报,包括问题类型选择、处理时效设置、溯源证据上传等。
+
+2. **业务规则**
+
+ - 上报类型固定为"换表申请"
+ - 处理时效精确到小时
+ - 必须上传图片或视频证据
+
+###### 界面设计要点
+
+1. **核心字段**:
+ - 上报类型:固定为"换表申请"
+ - 处理时效:精确到小时(如2025-06-06至2025-06-06)
+ - 溯源证据:强制上传图片/视频
+2. **操作流程**:
+ - 保存提交后触发后台工单派发
+
+###### 数据设计
+
+其他工单模块主要涉及以下数据表:
+- `meter_work_order`:表务工单表(复用Web端,包括复水、稽查、维修等工单)
+- `customer_info`:客户基本信息表(复用Web端)
+- `customer_account`:客户账户信息表(复用Web端,用于欠费状态查询)
+- `reading_record`:抄表记录表(复用Web端,用于稽查数据对比)
+- `mobile_work_attachment`:移动端工单附件表(移动端特有,用于现场证据存储)
+
+### 模块6: 个人信息与系统设置模块
+
+#### 功能
+
+##### 功能1: 个人信息管理
+
+###### 功能描述
+
+1. **功能概述**
+
+ 管理个人基本信息,包括姓名修改、手机号设置、信息查看等功能。
+
+2. **业务规则**
+
+ - 姓名可以修改,需要二次确认
+ - 手机号首次设置后可以修改
+ - 账号信息不可修改
+
+###### 界面设计要点
+
+1. **信息展示**:
+ - 姓名、账号、手机号码状态
+2. **编辑功能**:
+ - 修改姓名:进入子页面,点击"完成"提交
+ - 设置手机号:未设置时填写,点击"完成"保存
+
+##### 功能2: 账户安全配置
+
+###### 功能描述
+
+1. **功能概述**
+
+ 管理账户安全相关设置,包括密码修改、退出登录等。
+
+2. **业务规则**
+
+ - 新密码需要符合安全要求
+ - 需要输入新密码和确认密码
+ - 退出登录清除本地会话
+
+##### 功能3: 系统维护选项
+
+###### 功能描述
+
+1. **功能概述**
+
+ 提供系统维护相关功能,包括日志上传、缓存清理、数据备份、版本信息等。
+
+2. **业务规则**
+
+ - 重要操作需要二次确认
+ - 支持异常水量预警开关
+ - 显示当前应用版本
+
+###### 界面设计要点
+
+1. **系统维护功能**:
+ - 日志上传:弹出确认框,发送至服务器
+ - 清理缓存:弹出提示确认,清空本地记录
+ - 抄表设置:启用"异常水量预警"开关
+ - 备份数据库:保存本地数据
+ - 版本信息:显示当前版本(如V1.0.3)
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `system_users`:用户基本信息表(复用Web端)
+- `system_login_log`:登录日志表(复用Web端,记录密码修改等操作)
+- `mobile_app_config`:移动端应用配置表(移动端特有,用于个性化设置)
+
+## 关键业务规则与注意事项
+
+### 数据校验规则
+
+1. **必填字段验证**:
+ - 标*字段必须完整填写
+ - 换表工单的旧表底码、新表底码为必填
+ - IMEI设备识别码为强制录入项
+
+2. **格式校验规则**:
+ - 手机号格式验证
+ - 日期范围不超过当前日期
+ - 表底码数值合理性检查
+
+### 状态一致性规则
+
+1. **任务状态管理**:
+ - 未下载任务不可直接采集
+ - 相同户号在列表中合并显示
+ - 任务状态实时同步更新
+
+2. **工单状态流转**:
+ - 工单状态按流程严格流转
+ - 退单操作需要填写原因
+ - 完成工单需要附件证据
+
+### 离线能力支持
+
+1. **离线操作规则**:
+ - 已下载任务支持无网环境操作
+ - 网络恢复后自动同步数据
+ - 本地缓存数据完整性保证
+
+2. **数据同步策略**:
- 支持实时上传和批量上传
- - 网络异常时自动缓存本地
- 冲突数据需要人工处理
+ - 重要数据多重备份保护
-###### 业务流程
+### 防误操作机制
+1. **二次确认操作**:
+ - 复水操作需要二次确认
+ - 退单操作需要填写原因
+ - 清理缓存需要确认提示
-**图表 25**
-
-
-
-
-###### 数据设计
-
-主要涉及以下数据表:
-- `mobile_reading_task`:移动端抄表任务表
-- `mobile_reading_record`:移动端抄表记录表
-- `mobile_task_progress`:移动端任务进度表
-- `mobile_data_cache`:移动端数据缓存表
-
-###### 方法说明
-
-| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
-|---|---|---|---|
-| downloadTask | 下载抄表任务 | employeeId:抄表员ID(必填)
taskDate:任务日期(必填) | List对象 |
-| submitReading | 提交抄表数据 | readingData:抄表数据(必填)
photoPath:照片路径(可选) | SubmitResult对象 |
-| uploadCachedData | 上传缓存数据 | cacheDataList:缓存数据列表(必填) | UploadResult对象 |
-| getTaskProgress | 获取任务进度 | taskId:任务ID(必填) | TaskProgress对象 |
-
-##### 功能2: 现场抄表
-
-###### 功能描述
-
-支持现场抄表操作,包括抄表数据录入、异常处理、照片上传等功能。
-
-###### 业务规则
-
-1. **抄表数据规则**:本期抄数必须大于等于上期抄数
-2. **异常处理规则**:异常情况需要选择原因并拍照
-3. **GPS定位规则**:记录抄表位置信息用于监督
-
-##### 功能3: 欠费查询
-
-###### 功能描述
-
-查询客户欠费情况,支持现场收费和欠费提醒功能。
-
-### 模块3: 工单管理模块
-
-#### 功能
-
-##### 功能1: 问题上报
-
-###### 功能描述
-
-1. **功能概述**
-
- 支持抄表员在现场发现问题时进行上报,包括水表故障、客户投诉、环境异常等各种问题的记录和上报。
-
-2. **操作权限**
-
- - 抄表员:可以上报各类问题
- - 维修人员:可以处理和回填问题
-
-3. **功能约束**
-
- - 问题上报需要包含详细描述
- - 必须上传现场照片作为证据
- - 支持离线上报,联网时自动同步
-
-###### 业务规则
-
-1. **问题分类规则**:
- - 水表故障:表停、表坏、表歪等
- - 客户问题:客户投诉、信息错误等
- - 环境问题:道路损坏、安全隐患等
-
-2. **上报审核规则**:
- - 紧急问题需要立即处理
- - 一般问题按照优先级排队
- - 重复问题需要合并处理
-
-###### 业务流程
-
-
-**图表 26**
-
-
-
-
-###### 数据设计
-
-主要涉及以下数据表:
-- `mobile_problem_report`:移动端问题上报表
-- `mobile_work_order`:移动端工单表
-- `mobile_problem_photo`:移动端问题照片表
-
-###### 方法说明
-
-| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
-|---|---|---|---|
-| submitProblem | 提交问题上报 | problemData:问题数据(必填)
photoList:照片列表(必填) | ProblemReport对象 |
-| getProblemStatus | 获取问题状态 | problemId:问题ID(必填) | ProblemStatus对象 |
-| updateProblemStatus | 更新问题状态 | problemId:问题ID(必填)
status:状态(必填) | Boolean类型:true/false |
-
-##### 功能2: 代办工单
-
-###### 功能描述
-
-处理系统分配的各类工单,包括换表工单、维修工单、稽查工单等。
-
-##### 功能3: 停水复水工单
-
-###### 功能描述
-
-处理客户停水和复水相关的工单,包括欠费停水、故障停水、恢复供水等。
-
-##### 功能4: 稽查工单
-
-###### 功能描述
-
-执行抄表稽查和水价稽查任务,确保抄表数据准确性和水价执行正确性。
-
-### 模块4: 数据同步模块
-
-#### 功能
-
-##### 功能1: 离线存储
-
-###### 功能描述
-
-提供离线数据存储功能,确保在网络不稳定的情况下也能正常工作。
-
-##### 功能2: 在线同步
-
-###### 功能描述
-
-当网络恢复时,自动同步本地数据到服务器,并下载最新的任务和配置信息。
-
-##### 功能3: 冲突处理
-
-###### 功能描述
-
-处理数据同步过程中的冲突,包括版本冲突、数据冲突等。
+2. **数据完整性保护**:
+ - 附件上传需要清晰可辨
+ - 安装位置照片必须上传
+ - 关键操作记录审计日志
# 中间件和其他设计
@@ -2595,9 +3302,6 @@ f、**响应参数**
### Redis
-| IP | 端口 | 用户名 | 密码 |
-|---|---|---|---|
-| 192.168.1.10 | 6379 | default | water2024 |
| 作用 | Key | Value | 过期时间 |
|---|---|---|---|
@@ -2658,9 +3362,9 @@ f、**响应参数**
**业务流程:**
-**图表 27**
+**图表 29**
-
+
**接口参数:**
@@ -2725,9 +3429,9 @@ f、**响应参数**
**业务流程:**
-**图表 28**
+**图表 30**
-
+
**接口参数:**
@@ -2764,9 +3468,9 @@ f、**响应参数**
**业务流程:**
-**图表 29**
+**图表 31**
-
+
## 物联网接口
@@ -2786,9 +3490,9 @@ f、**响应参数**
**业务流程:**
-**图表 30**
+**图表 32**
-
+
## 政务系统接口
@@ -2876,7 +3580,7 @@ f、**响应参数**
为满足系统性能要求,采取以下设计措施:
1. **数据库优化**
- - 采用OpenGauss主从架构,读写分离
+ - 采用达梦数据库主从架构,读写分离
- 关键查询建立合适索引
- 大表分区存储,历史数据归档
@@ -2893,7 +3597,7 @@ f、**响应参数**
## 兼容性的考虑
1. **数据库兼容性**
- - 支持OpenGauss 5.0+
+ - 支持达梦数据库 8.0+
- 兼容PostgreSQL语法
- 预留MySQL适配接口
@@ -2905,6 +3609,7 @@ f、**响应参数**
## 安全的考虑
1. **认证授权**
+ - 基于OAuth2.0协议的单点登录认证
- 基于JWT的身份认证
- RBAC权限控制模型
- 多租户数据隔离
diff --git a/parsed_docs_new/抄表APP详细设计.md b/parsed_docs_new/抄表APP详细设计.md
new file mode 100644
index 0000000..5a1104e
--- /dev/null
+++ b/parsed_docs_new/抄表APP详细设计.md
@@ -0,0 +1,194 @@
+### 一、登录模块功能逻辑
+
+#### 1. 核心登录功能
+
+- **欢迎语**:顶部显示应用名称及欢迎信息(如“您好!欢迎使用「手机抄表」功能”),明确应用用途。
+
+- **登录表单输入域**
+
+ - **机构编号输入框**:标签为“机构编号”,提供占位提示(如“请输入机构ID”),支持文本输入唯一机构标识码。
+
+ - **用户名输入框**:标签为“用户名”,占位提示“输入账号”,支持个人登录账号输入。
+
+ - **密码输入框**:标签为“密码”,占位提示“输入密码”,输入内容自动掩码(如显示圆点),保护隐私。
+
+ - **自动登录选项**:复选框标签为“自动登录”,默认未勾选;勾选后下次打开应用自动提交历史凭证登录。
+
+ - **核心操作按钮**:**登录按钮**:标签清晰标注“登录”,点击后提交机构编号、用户名、密码进行身份验证(主操作按钮)。
+
+#### 2. 辅助功能
+
+- **登录问题支持**:界面底部提示“登录遇到问题联系客服”,提供异常情况(如忘记密码)的求助途径。
+
+- **版权归属标识**:底部标注应用开发单位(如“福建水投集团”),增强信任感。
+
+### 二、首页搜索模块功能逻辑
+
+#### 1. 搜索框区域
+
+- **占位提示**:输入框提示“户号/户名/地址/钢印号/手机号”,支持多维度搜索条件。
+
+- **取消按钮**:位于输入框右侧,点击后清空内容并退出搜索状态。
+
+#### 2. 搜索结果相关模块
+
+- **最近搜索记录**
+
+ - **展示逻辑**:搜索框下方显示“最近搜索”标签(非搜索状态时可见),条目包含户号、户名、地址末段等关键信息;业务层需去重重复条目。
+
+ - **交互功能**:点击任一条目跳转至对应用户详情页。
+
+- **抄表任务列表**
+
+ - **展示逻辑**:“最近搜索”下方显示“抄表任务”标签(未主动搜索时默认展示),每户显示户号、户名、完整地址;相同户号的多条记录合并显示(需优化重复问题)。
+
+ - **交互功能**:点击任务条目跳转至详情页执行抄表或收费操作。
+
+- **搜索结果列表**
+
+ - **触发逻辑**:输入关键词后实时展示匹配结果,条目显示户号、户名、地址核心片段;支持对关键词高亮显示(建议功能)。
+
+ - **交互功能**:点击结果跳转至详情页。
+
+ - **异常状态处理**:无匹配数据时显示“未找到相关用户”提示;过滤特殊字符或超长输入。
+
+#### 3. 功能联动
+
+- **搜索→详情页**:跳转时自动携带户号等信息,详情页基于户号动态加载用户档案、水表数据、欠费账单。
+
+- **详情页→收费操作**:欠费账单页提供“去收费”按钮,关联支付模块并继承用户信息(户名、欠费金额),支持“上一户/下一户”快速切换。
+
+### 三、采集任务管理模块功能逻辑
+
+#### 1. 任务列表页
+
+- **用户身份标识**:顶部标注当前操作员姓名(如“张三”)。
+
+- **全局搜索**:提供按“户号/户名/地址/钢印”多维度检索的输入框。
+
+- **数据统计面板**:分栏显示“应采集X|已采集Y|已上传Z”,实时反映任务进度。
+
+- **任务筛选与状态分类**:通过标签页导航按“全部/未采集/采集”分类查看任务。
+
+- **任务列表结构**
+
+ - **单条任务项**:显示册本编号(如“0015”)、备注(如“每月抄”)、状态标签(“未下载”或“已下载”)。
+
+ - **状态标识规则**:未下载(需联网下载数据)、已下载(支持离线操作)。
+
+ - **选择控制**:左侧提供单选按钮勾选任务项。
+
+- **批量操作区**
+
+ - **全选功能**:底部“全选”按钮勾选所有任务,动态显示“已选册本(N)”计数。
+
+ - **核心操作**:蓝色“下载”按钮将选中任务的户数据包下载至本地。
+
+#### 2. 单户采集详情页
+
+- **住户档案展示**:显示户号、户名、完整地址、表钢印号、水表编号、安装位置等物理标识;右上角显示状态标签(如“正常”“欠费”)。
+
+- **采集方式选择**:并列提供“定位(获取GPS坐标)/NFC(读取电子标签)/扫码(识别二维码/条形码)”三种数据采集入口。
+
+- **户间导航**:底部“上一户/下一户”按钮按任务列表顺序切换。
+
+### 四、换表工单模块功能逻辑
+
+#### 1. 处理流程
+
+待办工单列表 → 选择换表工单 → 填写换表信息 → 设备信息录入 → 附件上传 →
+提交/退单
+
+#### 2. 核心功能模块
+
+- **待办工单列表**
+
+ - **筛选功能**:支持按“用户名/开始时间/工单类型/抄表员”多维度组合筛选,时间选择器支持跨年度日期选择(如2023 -
+ 2025年)。
+
+ - **工单展示**:显示关键信息(如工单编号HB000007、户主姓名、地址、联系方式、水表定位描述、创建时间)。
+
+- **工单信息填写**
+
+ - **基础信息**:户号、户名、地址、联系电话(自动带出,不可编辑)。
+
+ - **表具数据**:旧表底码(必填,手动录入)、新表底码(必填,手动录入)、表钢印号/水表编号/条形码(扫码或手动录入)。
+
+ - **技术参数**:新表口径(下拉选择如DN80/DN100)、新表量程(默认值可修改)、新表厂家/型号(级联选择)。
+
+ - **设备与备注**
+
+ - **设备标识**:IMEI(设备唯一识别码,强制录入)、IMSI(SIM卡识别码)、通讯模块号(硬件编号)。
+
+ - **备注框**:支持长文本输入;附件上传支持图片(拍照/相册)、视频(现场录制)。
+
+ - **操作控制**:底部蓝色“完成”按钮提交工单,红色“退单”按钮终止并说明原因。
+
+### 五、其他工单功能模块逻辑(复水/稽查/问题上报)
+
+#### 1. 复水工单
+
+- **流程节点**:选择日期 → 展示用户信息(姓名、地址、欠费结清状态)→
+ 二次确认(蓝色“确认开水”按钮)。
+
+- **安全机制**:校验欠费结清状态(如“已于2024 - 12 -
+ 30结清欠费”),二次弹窗确认操作。
+
+#### 2. 稽查任务
+
+- **双模式入口**:待办列表(总任务数统计)、采集任务管理(通过搜索定位用户)、数据看板(实时进度如应查46/已查5/已上传5)。
+
+- **操作逻辑**:勾选册本批量下载离线数据。
+
+#### 3. 抄表稽查
+
+- **信息结构**:用户档案(编号/姓名/地址/钢印号)、抄表数据(上期读数→本期读数,数值型关键证据)、稽查结论(“合格”单选按钮,强制选择)、过程存证(图片+视频附件上传,必传)。
+
+- **闭环操作**:填写完整后点击蓝色“保存”按钮。
+
+#### 4. 问题上报
+
+- **核心字段**:上报类型固定为“换表申请”、处理时效精确到小时(如2025 -
+ 06 - 06至2025 - 06 - 06)、溯源证据(强制上传图片/视频)。
+
+- **操作逻辑**:保存提交后触发后台工单派发。
+
+### 六、个人信息与系统设置模块功能逻辑
+
+#### 1. 个人信息管理
+
+- **查看信息**:主界面显示固定信息(姓名、账号、手机号码状态)。
+
+- **编辑功能**
+
+ - **修改姓名**:进入子页面输入新姓名,点击“完成”提交更新。
+
+ - **设置手机号码**:未设置时填写有效号码,点击“完成”保存。
+
+#### 2. 账户安全配置
+
+- **密码修改**:输入新密码及确认密码,点击“完成”提交(需校验一致性)。
+
+- **退出登录**:底部点击清除本地会话。
+
+#### 3. 系统维护选项
+
+- **日志上传**:点击后弹出确认框,选择后发送日志至服务器。
+
+- **清理缓存**:弹出提示确认后清空本地记录(含缓存、日志)。
+
+- **抄表设置**:启用“异常水量预警”开关(预警功能)。
+
+- **备份数据库**:保存本地数据。
+
+- **版本信息**:显示当前应用版本(如V1.0.3)。
+
+### 七、关键业务规则与注意事项
+
+- **数据校验**:必填字段(标\*)需完整填写(如换表工单的旧表底码、新表底码);手机号格式、日期范围(不超过当前日)等需符合规则。
+
+- **状态一致性**:未下载任务不可直接采集;相同户号在列表中合并显示避免重复。
+
+- **离线能力**:已下载任务支持无网环境操作,网络恢复后自动同步数据。
+
+- **防误操作**:重要操作(如退单、清理缓存)需二次确认;附件上传需清晰可辨(如安装位置照片)。
diff --git a/project_progress.md b/project_progress.md
index 246e727..0193ff6 100644
--- a/project_progress.md
+++ b/project_progress.md
@@ -147,6 +147,15 @@
| 2024-12-19 | 数据库设计表补完 | 对比lhc_数据库设计.md、新-详细设计说明书.md和营收数据字典,补完新-数据库设计说明书.md中缺失的业务表,新增20个重要业务表,总表数量从54个增加到74个 | 用户要求检查并补完数据库设计中遗漏的表 | 正面影响,数据库设计更加完整,覆盖了水价调整快照、优惠方案、阶梯调整、客户服务、发票管理、营业网点、消息通知等重要业务功能 |
| 2024-12-19 | 文档工程目录移除 | 根据用户要求"不要有工程目录",移除新-详细设计说明书.md和新-概要设计说明书.md中的工程目录章节,调整相关章节编号 | 用户明确要求移除工程目录相关内容 | 正面影响,文档更符合用户要求,去除了过于具体的实现细节,保持概要设计的抽象层次 |
| 2024-12-19 | 详细设计说明书内容全面补充 | 根据需求规格说明书对比,补充详细设计说明书中的7个重要模块设计,包括手机抄表APP子系统、统计分析模块、代收业务模块、催缴管理模块、账务处理模块、发票管理模块、接口需求等 | 用户要求对比需求规格说明书补足遗漏内容 | 正面影响,详细设计说明书内容完整性大幅提升,从5个子系统扩展到6个子系统,模块功能设计更加详细完整,包含完整的业务流程、数据设计、方法说明等 |
+| 2024-12-19 | 三个子系统核心模块设计逻辑重构 | 1. 表务系统:解决工单管理中包含仓库管理的矛盾,重新划分为表务工单管理、表务仓库管理、表务基础管理三个独立模块。2. 报装系统:将工程管理重新定义为现场踏勘管理,明确功能边界。3. 客户服务系统:按功能维度重新组织为账户绑定管理、信息查询服务、在线缴费服务、电子发票服务四个模块,统一编号为SERVICE-001到SERVICE-004 | 用户要求对三个子系统进行逻辑重构,确保模块划分清晰、符合业务流程、名称与内容匹配、避免重复或归属错误 | 正面影响,子系统模块设计更加清晰合理,功能边界明确,避免了模块功能重复和归属混乱,提升了系统架构的专业性和可实施性 |
+| 2024-12-19 | 概要设计与详细设计一致性修正 | 同步更新概要设计说明书中客户服务系统的模块编号和功能描述,确保与详细设计说明书保持高度一致,统一使用SERVICE-001到SERVICE-004编号体系 | 用户要求确保概要设计与详细设计的模块结构和功能描述高度一致 | 正面影响,两个设计文档的一致性得到保证,避免了开发过程中的混乱,提升了文档体系的完整性和专业性 |
+| 2024-12-19 | 手机抄表APP子系统设计全面重构 | 根据抄表APP详细设计.md文档,完全重构手机抄表APP子系统设计,包括6个核心模块:登录模块、首页搜索模块、采集任务管理模块、换表工单模块、其他工单模块、个人信息与系统设置模块,新增详细的界面设计要点、业务流程图、数据设计、方法说明等 | 用户要求采用抄表APP详细设计文档的设计方案 | 正面影响,手机抄表APP设计更加详细和实用,包含完整的用户界面设计、业务流程、数据校验规则、离线能力支持、防误操作机制等,符合实际移动端应用开发需求,大幅提升设计文档的实用性和可实施性 |
+| 2024-12-19 | 概要设计说明书手机抄表APP部分同步更新 | 同步更新概要设计说明书中的手机抄表APP子系统设计,保持与详细设计的一致性,统一模块编号为MOBILE-001到MOBILE-006,补充核心业务流程、主要功能特点、关键技术特性等内容 | 用户要求同时更新概要设计相关内容 | 正面影响,确保概要设计与详细设计的高度一致性,避免开发过程中的混乱,提升文档体系的完整性和专业性,形成从概要到详细的完整设计链条 |
+| 2024-12-19 | 手机抄表APP数据表设计优化 | 优化手机抄表APP的数据表设计,明确区分移动端特有表和Web端公用表,避免重复建表。移动端优先使用Web端已有表:system_users、customer_info、meter_info、reading_record、meter_work_order等,仅保留移动端特有表:mobile_user_cache、mobile_search_history、mobile_task_sync、mobile_work_attachment、mobile_app_config | 用户要求移动端优先采用Web端的表,不要重复建表 | 正面影响,避免了数据表的重复定义,减少了数据库设计复杂度,提高了数据一致性,降低了系统维护成本。明确了移动端与Web端的数据共享策略,符合系统架构设计原则 |
+| 2024-12-19 | 数据库设计说明书结构调整与内容补充 | 根据详细设计说明书的6个子系统重新调整数据库设计说明书的目录结构,按子系统组织表结构设计。补充移动端表设计优化说明,新增5个移动端特有表的详细设计:mobile_user_cache、mobile_search_history、mobile_task_sync、mobile_work_attachment、mobile_app_config,明确移动端与Web端表复用策略 | 用户要求根据详细设计说明书调整数据库设计说明书目录结构,同时补充缺失的表设计 | 正面影响,数据库设计说明书与详细设计说明书的结构保持一致,便于开发人员理解和使用。移动端表设计优化说明为开发提供了明确的指导原则,5个新增表设计完善了移动端功能支持,整体提升了数据库设计文档的完整性和实用性 |
+| 2024-12-19 | 数据库系统变更为达梦数据库 | 将三个设计文档中的数据库从OpenGauss 5.0+替换为达梦数据库 8.0+,包括:1. 详细设计说明书中的13处架构图和技术描述更新;2. 概要设计说明书中的13处分布式架构和容器配置更新;3. 数据库设计说明书中的数据库系统描述更新。同时更新所有文档版本至V1.3,完善版本历史记录 | 用户要求采用达梦数据库而不是OpenGauss | 正面影响,采用国产达梦数据库作为主力数据库方案,符合国产化替代要求。达梦数据库8.0+具有良好的性能和稳定性,支持主从架构和分布式部署,满足水务营收系统的高可用性和扩展性需求。文档的一致性得到保证,为后续的数据库选型和部署提供了明确指导 |
+| 2024-12-19 | 单点登录采用OAuth2.0协议 | 在三个设计文档中完善单点登录设计,明确采用OAuth2.0协议实现。包括:1. 详细设计说明书中新增OAuth2.0授权码模式流程、6个OAuth2.0接口设计、4个相关数据表;2. 概要设计说明书中更新单点登录模块描述,强调基于OAuth2.0协议;3. 数据库设计说明书中新增OAuth2.0客户端信息表、访问令牌表、刷新令牌表、授权码表。所有文档版本更新至V1.4 | 用户要求单点登录采用OAuth2.0协议 | 正面影响,OAuth2.0是业界标准的开放授权协议,具有良好的安全性和扩展性。支持授权码模式和客户端凭证模式,满足不同应用场景需求。完善的数据表设计支持令牌管理、客户端管理等功能,为系统的安全认证和第三方集成提供了标准化的技术基础 |
+| 2024-12-19 | OAuth2.0表设计修正 | 根据实际SQL文件(oauth_table.sql)修正OAuth2.0表设计,确保文档与实际表结构保持一致。包括:1. 数据库设计说明书中更新5个OAuth2.0表的详细字段定义:system_oauth2_client、system_oauth2_access_token、system_oauth2_refresh_token、system_oauth2_code、system_oauth2_approve;2. 详细设计说明书中更新OAuth2.0数据表引用,修正表名为system_oauth2_*系列;3. 文档版本更新至V1.5 | 用户提供实际的OAuth2.0表SQL文件 | 正面影响,确保设计文档与实际SQL表结构完全一致,避免开发过程中的混乱。实际的表结构更加完善,包含了OAuth2.0批准表(system_oauth2_approve),支持用户授权记录管理,字段设计更加规范,符合PostgreSQL数据库特性,为OAuth2.0功能的实现提供了准确的数据模型指导 |
## 项目完成总结
diff --git a/sql/oauth_table.sql b/sql/oauth_table.sql
new file mode 100644
index 0000000..66401c7
--- /dev/null
+++ b/sql/oauth_table.sql
@@ -0,0 +1,256 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : sw-system
+ Source Server Type : PostgreSQL
+ Source Server Version : 90204 (90204)
+ Source Host : 192.168.10.130:5432
+ Source Catalog : sw_system
+ Source Schema : public
+
+ Target Server Type : PostgreSQL
+ Target Server Version : 90204 (90204)
+ File Encoding : 65001
+
+ Date: 06/08/2025 16:30:40
+*/
+
+
+-- ----------------------------
+-- Table structure for system_oauth2_access_token
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."system_oauth2_access_token";
+CREATE TABLE "public"."system_oauth2_access_token" (
+ "id" int8 NOT NULL,
+ "user_id" int8 NOT NULL,
+ "user_type" int2 NOT NULL,
+ "user_info" varchar(512) COLLATE "pg_catalog"."default" NOT NULL,
+ "access_token" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "refresh_token" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
+ "client_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "scopes" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "expires_time" timestamp(6) NOT NULL,
+ "creator" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "create_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "updater" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "update_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "deleted" int2 NOT NULL DEFAULT 0,
+ "tenant_id" int8 NOT NULL DEFAULT 0
+)
+;
+ALTER TABLE "public"."system_oauth2_access_token" OWNER TO "sw_system";
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."id" IS '编号';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."user_id" IS '用户编号';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."user_type" IS '用户类型';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."user_info" IS '用户信息';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."access_token" IS '访问令牌';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."refresh_token" IS '刷新令牌';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."client_id" IS '客户端编号';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."scopes" IS '授权范围';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."expires_time" IS '过期时间';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."creator" IS '创建者';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."create_time" IS '创建时间';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."updater" IS '更新者';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."update_time" IS '更新时间';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."deleted" IS '是否删除';
+COMMENT ON COLUMN "public"."system_oauth2_access_token"."tenant_id" IS '租户编号';
+COMMENT ON TABLE "public"."system_oauth2_access_token" IS 'OAuth2 访问令牌';
+
+-- ----------------------------
+-- Table structure for system_oauth2_approve
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."system_oauth2_approve";
+CREATE TABLE "public"."system_oauth2_approve" (
+ "id" int8 NOT NULL,
+ "user_id" int8 NOT NULL,
+ "user_type" int2 NOT NULL,
+ "client_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "scope" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "approved" bool NOT NULL DEFAULT false,
+ "expires_time" timestamp(6) NOT NULL,
+ "creator" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "create_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "updater" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "update_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "deleted" int2 NOT NULL DEFAULT 0,
+ "tenant_id" int8 NOT NULL DEFAULT 0
+)
+;
+ALTER TABLE "public"."system_oauth2_approve" OWNER TO "sw_system";
+COMMENT ON COLUMN "public"."system_oauth2_approve"."id" IS '编号';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."user_id" IS '用户编号';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."user_type" IS '用户类型';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."client_id" IS '客户端编号';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."scope" IS '授权范围';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."approved" IS '是否接受';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."expires_time" IS '过期时间';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."creator" IS '创建者';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."create_time" IS '创建时间';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."updater" IS '更新者';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."update_time" IS '更新时间';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."deleted" IS '是否删除';
+COMMENT ON COLUMN "public"."system_oauth2_approve"."tenant_id" IS '租户编号';
+COMMENT ON TABLE "public"."system_oauth2_approve" IS 'OAuth2 批准表';
+
+-- ----------------------------
+-- Table structure for system_oauth2_client
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."system_oauth2_client";
+CREATE TABLE "public"."system_oauth2_client" (
+ "id" int8 NOT NULL,
+ "client_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "secret" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "name" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "logo" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "description" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "status" int2 NOT NULL,
+ "access_token_validity_seconds" int4 NOT NULL,
+ "refresh_token_validity_seconds" int4 NOT NULL,
+ "redirect_uris" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "authorized_grant_types" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "scopes" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "auto_approve_scopes" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "authorities" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "resource_ids" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "additional_information" varchar(4096) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "creator" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "create_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "updater" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "update_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "deleted" int2 NOT NULL DEFAULT 0
+)
+;
+ALTER TABLE "public"."system_oauth2_client" OWNER TO "sw_system";
+COMMENT ON COLUMN "public"."system_oauth2_client"."id" IS '编号';
+COMMENT ON COLUMN "public"."system_oauth2_client"."client_id" IS '客户端编号';
+COMMENT ON COLUMN "public"."system_oauth2_client"."secret" IS '客户端密钥';
+COMMENT ON COLUMN "public"."system_oauth2_client"."name" IS '应用名';
+COMMENT ON COLUMN "public"."system_oauth2_client"."logo" IS '应用图标';
+COMMENT ON COLUMN "public"."system_oauth2_client"."description" IS '应用描述';
+COMMENT ON COLUMN "public"."system_oauth2_client"."status" IS '状态';
+COMMENT ON COLUMN "public"."system_oauth2_client"."access_token_validity_seconds" IS '访问令牌的有效期';
+COMMENT ON COLUMN "public"."system_oauth2_client"."refresh_token_validity_seconds" IS '刷新令牌的有效期';
+COMMENT ON COLUMN "public"."system_oauth2_client"."redirect_uris" IS '可重定向的 URI 地址';
+COMMENT ON COLUMN "public"."system_oauth2_client"."authorized_grant_types" IS '授权类型';
+COMMENT ON COLUMN "public"."system_oauth2_client"."scopes" IS '授权范围';
+COMMENT ON COLUMN "public"."system_oauth2_client"."auto_approve_scopes" IS '自动通过的授权范围';
+COMMENT ON COLUMN "public"."system_oauth2_client"."authorities" IS '权限';
+COMMENT ON COLUMN "public"."system_oauth2_client"."resource_ids" IS '资源';
+COMMENT ON COLUMN "public"."system_oauth2_client"."additional_information" IS '附加信息';
+COMMENT ON COLUMN "public"."system_oauth2_client"."creator" IS '创建者';
+COMMENT ON COLUMN "public"."system_oauth2_client"."create_time" IS '创建时间';
+COMMENT ON COLUMN "public"."system_oauth2_client"."updater" IS '更新者';
+COMMENT ON COLUMN "public"."system_oauth2_client"."update_time" IS '更新时间';
+COMMENT ON COLUMN "public"."system_oauth2_client"."deleted" IS '是否删除';
+COMMENT ON TABLE "public"."system_oauth2_client" IS 'OAuth2 客户端表';
+
+-- ----------------------------
+-- Table structure for system_oauth2_code
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."system_oauth2_code";
+CREATE TABLE "public"."system_oauth2_code" (
+ "id" int8 NOT NULL,
+ "user_id" int8 NOT NULL,
+ "user_type" int2 NOT NULL,
+ "code" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
+ "client_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "scopes" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "expires_time" timestamp(6) NOT NULL,
+ "redirect_uri" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "state" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "creator" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "create_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "updater" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "update_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "deleted" int2 NOT NULL DEFAULT 0,
+ "tenant_id" int8 NOT NULL DEFAULT 0
+)
+;
+ALTER TABLE "public"."system_oauth2_code" OWNER TO "sw_system";
+COMMENT ON COLUMN "public"."system_oauth2_code"."id" IS '编号';
+COMMENT ON COLUMN "public"."system_oauth2_code"."user_id" IS '用户编号';
+COMMENT ON COLUMN "public"."system_oauth2_code"."user_type" IS '用户类型';
+COMMENT ON COLUMN "public"."system_oauth2_code"."code" IS '授权码';
+COMMENT ON COLUMN "public"."system_oauth2_code"."client_id" IS '客户端编号';
+COMMENT ON COLUMN "public"."system_oauth2_code"."scopes" IS '授权范围';
+COMMENT ON COLUMN "public"."system_oauth2_code"."expires_time" IS '过期时间';
+COMMENT ON COLUMN "public"."system_oauth2_code"."redirect_uri" IS '可重定向的 URI 地址';
+COMMENT ON COLUMN "public"."system_oauth2_code"."state" IS '状态';
+COMMENT ON COLUMN "public"."system_oauth2_code"."creator" IS '创建者';
+COMMENT ON COLUMN "public"."system_oauth2_code"."create_time" IS '创建时间';
+COMMENT ON COLUMN "public"."system_oauth2_code"."updater" IS '更新者';
+COMMENT ON COLUMN "public"."system_oauth2_code"."update_time" IS '更新时间';
+COMMENT ON COLUMN "public"."system_oauth2_code"."deleted" IS '是否删除';
+COMMENT ON COLUMN "public"."system_oauth2_code"."tenant_id" IS '租户编号';
+COMMENT ON TABLE "public"."system_oauth2_code" IS 'OAuth2 授权码表';
+
+-- ----------------------------
+-- Table structure for system_oauth2_refresh_token
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."system_oauth2_refresh_token";
+CREATE TABLE "public"."system_oauth2_refresh_token" (
+ "id" int8 NOT NULL,
+ "user_id" int8 NOT NULL,
+ "refresh_token" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
+ "user_type" int2 NOT NULL,
+ "client_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+ "scopes" varchar(255) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "expires_time" timestamp(6) NOT NULL,
+ "creator" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "create_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "updater" varchar(64) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
+ "update_time" timestamp(6) NOT NULL DEFAULT pg_systimestamp(),
+ "deleted" int2 NOT NULL DEFAULT 0,
+ "tenant_id" int8 NOT NULL DEFAULT 0
+)
+;
+ALTER TABLE "public"."system_oauth2_refresh_token" OWNER TO "sw_system";
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."id" IS '编号';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."user_id" IS '用户编号';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."refresh_token" IS '刷新令牌';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."user_type" IS '用户类型';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."client_id" IS '客户端编号';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."scopes" IS '授权范围';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."expires_time" IS '过期时间';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."creator" IS '创建者';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."create_time" IS '创建时间';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."updater" IS '更新者';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."update_time" IS '更新时间';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."deleted" IS '是否删除';
+COMMENT ON COLUMN "public"."system_oauth2_refresh_token"."tenant_id" IS '租户编号';
+COMMENT ON TABLE "public"."system_oauth2_refresh_token" IS 'OAuth2 刷新令牌';
+
+-- ----------------------------
+-- Indexes structure for table system_oauth2_access_token
+-- ----------------------------
+CREATE INDEX "idx_system_oauth2_access_token_01" ON "public"."system_oauth2_access_token" USING btree (
+ "access_token" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_system_oauth2_access_token_02" ON "public"."system_oauth2_access_token" USING btree (
+ "refresh_token" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table system_oauth2_access_token
+-- ----------------------------
+ALTER TABLE "public"."system_oauth2_access_token" ADD CONSTRAINT "pk_system_oauth2_access_token" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table system_oauth2_approve
+-- ----------------------------
+ALTER TABLE "public"."system_oauth2_approve" ADD CONSTRAINT "pk_system_oauth2_approve" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table system_oauth2_client
+-- ----------------------------
+ALTER TABLE "public"."system_oauth2_client" ADD CONSTRAINT "pk_system_oauth2_client" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table system_oauth2_code
+-- ----------------------------
+ALTER TABLE "public"."system_oauth2_code" ADD CONSTRAINT "pk_system_oauth2_code" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table system_oauth2_refresh_token
+-- ----------------------------
+ALTER TABLE "public"."system_oauth2_refresh_token" ADD CONSTRAINT "pk_system_oauth2_refresh_token" PRIMARY KEY ("id");
diff --git a/新-数据库设计说明书.md b/新-数据库设计说明书.md
index 49f3a1e..cfdc084 100644
--- a/新-数据库设计说明书.md
+++ b/新-数据库设计说明书.md
@@ -5,16 +5,19 @@
| 【 】草稿 | | |
| 【 】修改稿 | | |
| 【√】正式发布 | | |
-| | **当前版本:** | **V1.1** |
-| | **作者:** | **Gemini** |
-| | **完成日期:** | **2025-07-17** |
+| | **当前版本:** | **V1.5** |
+| | **作者:** | **唐伟杰** |
+| | **完成日期:** | **2025-08-01** |
## 版本历史
| **日期** | **版本号** | **作者** | **备注** |
| :--- | :--- | :--- | :--- |
-| 2025-07-17 | V1.0 | Gemini | 初稿 |
-| 2025-07-17 | V1.1 | Gemini | 根据用户要求,严格对齐SQL文件,确保所有表和字段的完整性。 |
+| 2025-07-17 | V1.0 | 唐伟杰 | 初稿 |
+| 2025-07-17 | V1.1 | 唐伟杰 | 根据用户要求,严格对齐SQL文件,确保所有表和字段的完整性。 |
+| 2025-08-01 | V1.2 | 唐伟杰 | 1. 根据详细设计说明书调整目录结构,按6个子系统重新组织表结构。
2. 补充移动端表设计优化说明,明确移动端与Web端表复用策略。
3. 新增5个移动端特有表的详细设计,符合表设计优化原则。 |
+| 2025-08-01 | V1.3 | 唐伟杰 | 数据库系统变更:将OpenGauss替换为达梦数据库 8.0+,作为主力国产数据库方案。 |
+| 2025-08-01 | V1.4 | 唐伟杰 | 单点登录采用OAuth2.0协议:新增OAuth2.0相关数据表设计,包括客户端信息表、访问令牌表、刷新令牌表、授权码表。 |
# 目录
@@ -24,16 +27,22 @@
- [4. 表结构设计](#4-表结构设计)
- [4.1. 数据表总体概览](#41-数据表总体概览)
- [4.2. 系统公共表 (system_*)](#42-系统公共表-system_)
- - [4.3. 业务核心表 (biz_*)](#43-业务核心表-biz_)
-- [5. 视图的设计](#5-视图的设计)
-- [6. 安全保密设计](#6-安全保密设计)
+ - [4.3. 子系统1: 统一平台数据表](#43-子系统1-统一平台数据表)
+ - [4.4. 子系统2: 营收系统数据表](#44-子系统2-营收系统数据表)
+ - [4.5. 子系统3: 表务系统数据表](#45-子系统3-表务系统数据表)
+ - [4.6. 子系统4: 报装系统数据表](#46-子系统4-报装系统数据表)
+ - [4.7. 子系统5: 客户服务数据表](#47-子系统5-客户服务数据表)
+ - [4.8. 子系统6: 手机抄表APP数据表](#48-子系统6-手机抄表app数据表)
+- [5. 移动端表设计优化说明](#5-移动端表设计优化说明)
+- [6. 视图的设计](#6-视图的设计)
+- [7. 安全保密设计](#7-安全保密设计)
# 前言
本文档详细描述了福建水务数智营收管理系统的数据库设计,包括总体架构、E-R图、数据表结构、字段定义和索引策略。旨在为开发和运维人员提供清晰的数据结构参考。
# 外部设计
-- **数据库系统**: 主力采用 **MySQL 8.x** 或 **MariaDB 10.x**。系统设计上兼容国产数据库 **OpenGauss**。
+- **数据库系统**: 主力采用国产数据库 **达梦数据库 8.0+**。系统设计上兼容 **MySQL 8.x** 或 **MariaDB 10.x**。
- **数据库工具**: 使用 Navicat, DBeaver, DataGrip 等主流数据库管理工具。
- **约定**:
- **表名**: 全部小写,单词间使用下划线 `_` 分隔。业务表以 `biz_` 开头,系统管理表以 `system_` 开头。
@@ -351,11 +360,122 @@
-## 业务核心表 (biz_*)
-(基于 `sw_biz_table.sql`)
+## 子系统1: 统一平台数据表
+
+统一平台主要负责系统基础功能,包括用户管理、权限管理、部门管理等。这些表主要为system_*系列,已在上一节详细描述。
+
+### OAuth2.0单点登录相关表
+
+为支持OAuth2.0协议的单点登录功能,系统新增以下OAuth2.0相关数据表:
-点击展开/折叠业务表详情
+点击展开/折叠OAuth2.0表详情
+
+### system_oauth2_client (OAuth2客户端表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| secret | varchar(255) | N | | 客户端密钥 |
+| name | varchar(255) | N | | 应用名 |
+| logo | varchar(255) | N | | 应用图标 |
+| description | varchar(255) | Y | | 应用描述 |
+| status | int2 | N | | 状态 |
+| access_token_validity_seconds | int4 | N | | 访问令牌的有效期 |
+| refresh_token_validity_seconds | int4 | N | | 刷新令牌的有效期 |
+| redirect_uris | varchar(255) | N | | 可重定向的 URI 地址 |
+| authorized_grant_types | varchar(255) | N | | 授权类型 |
+| scopes | varchar(255) | Y | | 授权范围 |
+| auto_approve_scopes | varchar(255) | Y | | 自动通过的授权范围 |
+| authorities | varchar(255) | Y | | 权限 |
+| resource_ids | varchar(255) | Y | | 资源 |
+| additional_information | varchar(4096) | Y | | 附加信息 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+
+### system_oauth2_access_token (OAuth2访问令牌表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| user_id | int8 | N | | 用户编号 |
+| user_type | int2 | N | | 用户类型 |
+| user_info | varchar(512) | N | | 用户信息 |
+| access_token | varchar(255) | N | | 访问令牌 |
+| refresh_token | varchar(32) | N | | 刷新令牌 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| scopes | varchar(255) | Y | | 授权范围 |
+| expires_time | timestamp(6) | N | | 过期时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+| tenant_id | int8 | N | 0 | 租户编号 |
+
+### system_oauth2_refresh_token (OAuth2刷新令牌表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| user_id | int8 | N | | 用户编号 |
+| refresh_token | varchar(32) | N | | 刷新令牌 |
+| user_type | int2 | N | | 用户类型 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| scopes | varchar(255) | Y | | 授权范围 |
+| expires_time | timestamp(6) | N | | 过期时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+| tenant_id | int8 | N | 0 | 租户编号 |
+
+### system_oauth2_code (OAuth2授权码表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| user_id | int8 | N | | 用户编号 |
+| user_type | int2 | N | | 用户类型 |
+| code | varchar(32) | N | | 授权码 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| scopes | varchar(255) | Y | | 授权范围 |
+| expires_time | timestamp(6) | N | | 过期时间 |
+| redirect_uri | varchar(255) | Y | | 可重定向的 URI 地址 |
+| state | varchar(255) | Y | | 状态 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+| tenant_id | int8 | N | 0 | 租户编号 |
+
+### system_oauth2_approve (OAuth2批准表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | int8 | N | | 编号 |
+| user_id | int8 | N | | 用户编号 |
+| user_type | int2 | N | | 用户类型 |
+| client_id | varchar(255) | N | | 客户端编号 |
+| scope | varchar(255) | Y | | 授权范围 |
+| approved | bool | N | false | 是否接受 |
+| expires_time | timestamp(6) | N | | 过期时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
+| updater | varchar(64) | Y | | 更新者 |
+| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
+| deleted | int2 | N | 0 | 是否删除 |
+| tenant_id | int8 | N | 0 | 租户编号 |
+
+
+
+## 子系统2: 营收系统数据表
+
+营收系统是核心业务系统,包括客户管理、抄表管理、账务管理、发票管理等核心业务功能。
+
+
+点击展开/折叠营收系统表详情
### biz_community (所属小区表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
@@ -2247,7 +2367,17 @@
| deleted | int2 | N | 0 | 是否删除 |
| tenant_id | int8 | N | 0 | 租户id |
-## 表务管理表 (meter_work_*)
+
+
+
+## 子系统3: 表务系统数据表
+
+表务系统负责水表的全生命周期管理,包括表务工单管理、表务仓库管理、表务基础管理等功能。
+
+
+点击展开/折叠表务系统表详情
+
+### 表务管理表 (meter_work_*)
### meter_work_order (表务工单表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
@@ -2456,7 +2586,16 @@
| deleted | int2 | N | 0 | 是否删除 |
| tenant_id | int8 | N | 0 | 租户id |
-## 报装工程表 (construction_*)
+
+
+## 子系统4: 报装系统数据表
+
+报装系统负责用户报装申请的全流程管理,包括报装申请管理、现场踏勘管理、档案管理等功能。
+
+
+点击展开/折叠报装系统表详情
+
+### 报装工程表 (construction_*)
### site_survey (现场踏勘表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
@@ -2594,7 +2733,36 @@
| deleted | int2 | N | 0 | 是否删除 |
| tenant_id | int8 | N | 0 | 租户id |
-## 移动端表 (mobile_*)
+
+
+## 子系统5: 客户服务数据表
+
+客户服务系统负责为客户提供便民服务,包括账户绑定管理、信息查询服务、在线缴费服务、电子发票服务等功能。
+
+
+点击展开/折叠客户服务系统表详情
+
+### 客户服务相关表
+
+客户服务系统主要复用营收系统的核心表,包括:
+- `customer_info`:客户基本信息表
+- `customer_account`:客户账户信息表
+- `billing_record`:开账记录表
+- `payment_record`:缴费记录表
+- `invoice_info`:发票信息表
+- `thirdpay_binding`:第三方绑定表
+- `thirdpay_transaction`:第三方支付交易表
+
+
+
+## 子系统6: 手机抄表APP数据表
+
+手机抄表APP为抄表员和外勤人员提供移动作业工具,支持离线操作,提升现场工作效率。
+
+
+点击展开/折叠手机抄表APP表详情
+
+### 移动端表 (mobile_*)
### mobile_user_session (移动端用户会话表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
@@ -2840,32 +3008,156 @@
| deleted | int2 | N | 0 | 是否删除 |
| tenant_id | int8 | N | 0 | 租户id |
-### mobile_problem_photo (移动端问题照片表)
+### 移动端特有表(优化后)
+
+根据移动端表设计优化原则,以下为移动端特有的5个表:
+
+### mobile_user_cache (移动端用户缓存表)
| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
| :--- | :--- | :--- | :--- | :--- |
-| id | int8 | N | nextval() | 主键 |
-| report_id | int8 | N | | 上报ID |
-| photo_type | varchar(20) | N | | 照片类型:现场照片、问题照片、完成照片 |
-| photo_path | varchar(500) | N | | 照片路径 |
-| photo_size | int4 | Y | 0 | 照片大小(字节) |
-| photo_time | timestamp(6) | N | pg_systimestamp() | 拍照时间 |
-| gps_longitude | numeric(10,6) | Y | | GPS经度 |
-| gps_latitude | numeric(10,6) | Y | | GPS纬度 |
-| upload_status | int2 | N | 0 | 上传状态:0-未上传,1-已上传 |
-| upload_time | timestamp(6) | Y | | 上传时间 |
-| compress_ratio | numeric(5,2) | Y | 0 | 压缩比例 |
-| original_size | int4 | Y | 0 | 原始大小 |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| user_id | bigint | N | | 用户ID,关联system_users.id |
+| device_id | varchar(100) | N | | 设备唯一标识 |
+| cache_data | longtext | Y | | 缓存数据(JSON格式) |
+| cache_type | varchar(50) | N | | 缓存类型:user_info、task_data、config_data |
+| expire_time | datetime | Y | | 过期时间 |
+| version | int | N | 1 | 版本号,用于数据同步 |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+
+### mobile_search_history (移动端搜索历史表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| user_id | bigint | N | | 用户ID,关联system_users.id |
+| search_keyword | varchar(200) | N | | 搜索关键词 |
+| search_type | varchar(50) | N | | 搜索类型:customer、meter、address |
+| search_result_count | int | N | 0 | 搜索结果数量 |
+| search_time | datetime | N | CURRENT_TIMESTAMP | 搜索时间 |
| device_id | varchar(100) | Y | | 设备ID |
-| remark | varchar(500) | Y | | 备注 |
-| create_time | timestamp(6) | N | pg_systimestamp() | 创建时间 |
-| update_time | timestamp(6) | N | pg_systimestamp() | 更新时间 |
-| creator | varchar(100) | Y | | 创建人id |
-| updater | varchar(100) | Y | | 更新人id |
-| deleted | int2 | N | 0 | 是否删除 |
-| tenant_id | int8 | N | 0 | 租户id |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+
+### mobile_task_sync (移动端任务同步表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| user_id | bigint | N | | 用户ID,关联system_users.id |
+| task_id | bigint | N | | 任务ID,关联reading_book.id |
+| sync_status | varchar(20) | N | pending | 同步状态:pending、syncing、completed、failed |
+| sync_type | varchar(20) | N | | 同步类型:download、upload |
+| data_size | int | N | 0 | 数据大小(字节) |
+| sync_progress | decimal(5,2) | N | 0.00 | 同步进度(百分比) |
+| error_message | text | Y | | 错误信息 |
+| last_sync_time | datetime | Y | | 最后同步时间 |
+| retry_count | int | N | 0 | 重试次数 |
+| device_id | varchar(100) | Y | | 设备ID |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+
+### mobile_work_attachment (移动端工单附件表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| work_order_id | bigint | N | | 工单ID,关联meter_work_order.id |
+| attachment_type | varchar(20) | N | | 附件类型:image、video、document |
+| attachment_name | varchar(200) | N | | 附件名称 |
+| attachment_path | varchar(500) | N | | 附件存储路径 |
+| attachment_size | bigint | N | 0 | 附件大小(字节) |
+| mime_type | varchar(100) | Y | | MIME类型 |
+| upload_status | varchar(20) | N | pending | 上传状态:pending、uploading、completed、failed |
+| upload_progress | decimal(5,2) | N | 0.00 | 上传进度(百分比) |
+| gps_longitude | decimal(10,6) | Y | | GPS经度 |
+| gps_latitude | decimal(10,6) | Y | | GPS纬度 |
+| capture_time | datetime | Y | | 拍摄/录制时间 |
+| device_id | varchar(100) | Y | | 设备ID |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+
+### mobile_app_config (移动端应用配置表)
+| 字段名 | 类型 | 是否可空 | 默认值 | 注释 |
+| :--- | :--- | :--- | :--- | :--- |
+| id | bigint | N | AUTO_INCREMENT | 主键 |
+| user_id | bigint | N | | 用户ID,关联system_users.id |
+| config_key | varchar(100) | N | | 配置项键名 |
+| config_value | text | Y | | 配置项值 |
+| config_type | varchar(50) | N | | 配置类型:system、user、app |
+| config_description | varchar(500) | Y | | 配置描述 |
+| is_active | tinyint | N | 1 | 是否启用:0-禁用,1-启用 |
+| device_id | varchar(100) | Y | | 设备ID |
+| create_time | datetime | N | CURRENT_TIMESTAMP | 创建时间 |
+| update_time | datetime | N | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 |
+| creator | varchar(64) | Y | | 创建者 |
+| updater | varchar(64) | Y | | 更新者 |
+| deleted | tinyint | N | 0 | 是否删除:0-未删除,1-已删除 |
+| tenant_id | bigint | N | 0 | 租户ID |
+# 移动端表设计优化说明
+
+## 设计原则
+
+根据系统架构设计原则,移动端优先使用Web端已有的数据表,避免重复建表,确保数据一致性和降低维护成本。
+
+## 表复用策略
+
+### 复用Web端表(10个)
+移动端直接复用以下Web端已有表:
+
+| 表名 | 用途说明 | 备注 |
+|------|----------|------|
+| `system_users` | 用户基本信息表 | 复用Web端用户管理 |
+| `system_login_log` | 登录日志表 | 扩展设备类型字段记录移动端登录 |
+| `customer_info` | 客户基本信息表 | 复用Web端客户档案 |
+| `meter_info` | 水表信息表 | 复用Web端水表档案 |
+| `reading_book` | 抄表册本表 | 复用Web端抄表任务 |
+| `reading_record` | 抄表记录表 | 复用Web端抄表数据 |
+| `meter_work_order` | 表务工单表 | 复用Web端工单管理 |
+| `meter_replacement_log` | 水表更换日志表 | 复用Web端换表记录 |
+| `work_order_material` | 工单用料表 | 复用Web端物料管理 |
+| `customer_account` | 客户账户信息表 | 复用Web端账务信息 |
+
+### 移动端特有表(5个)
+仅保留移动端特有的功能表:
+
+| 表名 | 用途说明 | 特有原因 |
+|------|----------|----------|
+| `mobile_user_cache` | 移动端用户缓存表 | 用于离线缓存,移动端特有需求 |
+| `mobile_search_history` | 移动端搜索历史表 | 移动端搜索记录管理 |
+| `mobile_task_sync` | 移动端任务同步表 | 离线任务管理,移动端特有 |
+| `mobile_work_attachment` | 移动端工单附件表 | 现场附件管理,移动端特有 |
+| `mobile_app_config` | 移动端应用配置表 | 个性化设置,移动端特有 |
+
+## 优化效果
+
+1. **减少冗余**:避免了15+个重复表的创建
+2. **提升一致性**:移动端和Web端共享核心业务数据
+3. **降低维护成本**:统一的数据模型减少维护复杂度
+4. **符合架构原则**:遵循DRY(Don't Repeat Yourself)原则
+
+## 数据同步策略
+
+- **实时同步**:共用表自然保证数据一致性
+- **离线缓存**:移动端特有表支持离线操作
+- **冲突处理**:通过时间戳和版本控制处理数据冲突
+
# 视图的设计
## 数据库ER图设计
diff --git a/新-概要设计说明书.md b/新-概要设计说明书.md
index a5f4cc6..bc76920 100644
--- a/新-概要设计说明书.md
+++ b/新-概要设计说明书.md
@@ -5,16 +5,19 @@
| 【√】草稿 | | |
| 【】修改稿 | | |
| 【】正式发布 | | |
-| | **当前版本:** | **V1.2** |
-| | **作者:** | **Gemini** |
-| | **完成日期:** | **2025-08-06** |
+| | **当前版本:** | **V1.4** |
+| | **作者:** | **唐伟杰** |
+| | **完成日期:** | **2025-08-01** |
## 版本历史
| 日期 | 版本号 | 作者 | 备注 |
| :--- | :--- | :--- | :--- |
| 2025-07-01 | V1.0 | 唐伟杰 | 初版 |
-| 2025-08-06 | V1.2 | Gemini | 1. 同步详细设计中的模块,补充缺失模块。
2. 调整子系统划分与编号,确保逻辑清晰、编号连续。
3. 重构表务、报装、客户服务子系统,优化模块设计。
4. 统一概要设计与详细设计的结构,提升一致性。 |
+| 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协议实现。 |
# 目录
@@ -35,7 +38,7 @@
- [物理部署图](#物理部署图)
- [网络连接](#网络连接)
- [硬件配置规格](#硬件配置规格)
- - [OpenGauss分布式架构](#opengauss分布式架构)
+ - [达梦数据库分布式架构](#达梦数据库分布式架构)
- [容器化部署架构](#容器化部署架构)
- [对外接口](#对外接口)
- [子系统列表](#子系统列表)
@@ -75,16 +78,40 @@
- [对外接口](#对外接口-2)
- [子系统3设计: 表务系统](#子系统3设计-表务系统)
- [功能与界面](#功能与界面-2)
+ - [模块列表](#模块列表-2)
- [模块设计](#模块设计-2)
+ - [模块1: 表务基础管理](#模块1-表务基础管理)
+ - [模块2: 表务工单管理](#模块2-表务工单管理)
+ - [模块3: 仓库与库存管理](#模块3-仓库与库存管理)
+ - [模块4: 设备档案管理](#模块4-设备档案管理)
- [子系统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-个人信息与系统设置模块)
+ - [关键技术特性](#关键技术特性)
+ - [离线作业能力](#离线作业能力)
+ - [数据安全保障](#数据安全保障)
+ - [用户体验优化](#用户体验优化)
- [非功能性需求的设计](#非功能性需求的设计)
- [性能的考虑](#性能的考虑)
- [兼容性的考虑](#兼容性的考虑)
@@ -213,7 +240,7 @@ graph TB
end
subgraph "数据层"
- E1[(OpenGauss 5.0+
主从架构)]
+ E1[(达梦数据库 8.0+
主从架构)]
E2[(Redis 6.0+
分布式缓存)]
E3[MinIO
分布式文件存储]
end
@@ -300,8 +327,8 @@ flowchart TD
end
subgraph "数据存储层"
- D1[(OpenGauss主库
核心业务数据)]
- D2[(OpenGauss从库
查询数据)]
+ D1[(达梦数据库主库
核心业务数据)]
+ D2[(达梦数据库从库
查询数据)]
D3[(Redis缓存
热点数据)]
D4[文件存储
附件图片]
D5[(备份库
历史数据)]
@@ -392,9 +419,9 @@ graph TB
subgraph "数据服务区"
subgraph "数据库集群"
- DB1[OpenGauss主库
32核128G]
- DB2[OpenGauss从库
32核128G]
- DB3[OpenGauss备库
32核128G]
+ DB1[达梦数据库主库
32核128G]
+ DB2[达梦数据库从库
32核128G]
+ DB3[达梦数据库备库
32核128G]
end
subgraph "缓存集群"
@@ -464,13 +491,13 @@ graph TB
| 跳板服务器 | 4核8G,500GB SSD | 1台 | 运维管理 |
| 日志服务器 | 16核32G,5TB SSD | 1台 | 日志收集分析 |
-### OpenGauss分布式架构
+### 达梦数据库分布式架构
-系统采用OpenGauss分布式数据库架构,支持高性能、高可用、高扩展性的数据存储服务。
+系统采用达梦数据库分布式架构,支持高性能、高可用、高扩展性的数据存储服务。
```mermaid
graph TB
- subgraph "OpenGauss分布式架构"
+ subgraph "达梦数据库分布式架构"
subgraph "协调节点"
CN1[协调节点1
Coordinator Node]
CN2[协调节点2
Coordinator Node]
@@ -520,7 +547,7 @@ graph TB
end
subgraph "数据存储层"
- DB_CONTAINER[数据库容器
OpenGauss]
+ DB_CONTAINER[数据库容器
达梦数据库]
CACHE_CONTAINER[缓存容器
Redis]
FILE_CONTAINER[文件存储容器
MinIO]
end
@@ -732,14 +759,14 @@ graph TB
**功能描述:**
-单点登录模块提供统一的用户认证入口,支持多种登录方式和安全策略。该模块是整个系统安全的第一道防线,确保只有合法用户才能访问系统。
+单点登录模块基于OAuth2.0协议实现,提供统一的用户认证入口,支持多种登录方式和安全策略。该模块是整个系统安全的第一道防线,确保只有合法用户才能访问系统。
**主要功能:**
1. **用户名密码登录**:传统的用户名密码认证方式
2. **手机号短信登录**:基于短信验证码的快速登录
3. **第三方登录**:支持微信、支付宝等第三方平台登录
-4. **单点登录**:一次登录,多系统访问
+4. **OAuth2.0单点登录**:基于OAuth2.0协议,一次登录,多系统访问
5. **自动登录**:支持"记住我"功能
6. **安全控制**:密码策略、登录限制、验证码等
@@ -1158,30 +1185,41 @@ flowchart TD
表务系统负责水表全生命周期管理,从采购入库到报废退库的完整管理流程。其核心是确保水表资产的准确、高效流转,并为营收计量提供可靠的设备保障。
-**主要功能:**
+## 模块列表
-- **表务工单管理**:处理换表、修表、检表等日常业务,驱动水表状态的流转。
-- **仓库管理**:管理水表的入库、出库、盘点和调拨,确保库存准确。
-- **设备档案管理**:管理水表的基础信息、型号、供应商等,是整个表务系统的基石。
+| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
+|---|---|---|---|
+| METER-001 | 表务基础管理 | 管理水表相关的基础参数 | 自行开发 |
+| METER-002 | 表务工单管理 | 处理换表、修表、检表等日常业务 | 自行开发 |
+| METER-003 | 仓库与库存管理 | 管理水表的入库、出库、盘点和调拨 | 自行开发 |
+| METER-004 | 设备档案管理 | 管理每一块水表的唯一电子档案 | 自行开发 |
## 模块设计
-### 模块1: 表务工单管理
-- **功能描述**: 解决“工单管理”中包含“仓库管理”的逻辑矛盾,将工单聚焦于业务流程驱动,而仓库仅作为资源(水表)的提供方。
+### 模块1: 表务基础管理
+- **功能描述**: 定义和维护表务管理所需的基础数据和配置参数。
+- **核心功能**:
+ - **水表厂家管理**: 维护水表供应商信息。
+ - **水表口径管理**: 管理不同口径水表的规格、检定周期等。
+ - **水表型号管理**: 根据厂家和口径,管理具体的水表型号。
+ - **水表量程管理**: 定义水表的计量范围。
+
+### 模块2: 表务工单管理
+- **功能描述**: 聚焦于业务流程驱动,管理所有与水表相关的现场作业任务。
- **核心功能**:
- **工单创建**: 可由系统(如到期提醒)、其他子系统(如营收系统上报故障)或人工创建换表、维修、巡检等工单。
- **工单流转**: 实现工单的派发、接收、处理、回填、审核的全流程闭环管理。
- **领料与退料**: 工单处理过程中,涉及水表更换时,触发向仓库的领料申请;旧表则触发退料入库流程。
-### 模块2: 仓库管理
+### 模块3: 仓库与库存管理
- **功能描述**: 负责水表的实物管理,与工单流程解耦,作为一个独立的资源中心。
- **核心功能**:
- **入库管理**: 包括新表采购入库、旧表回收(维修或报废)入库。
- **出库管理**: 根据工单领料申请,发放新水表。
- **库存管理**: 提供库存查询、盘点、调拨、库存预警等功能。
-### 模块3: 设备档案管理
-- **功能描述**: 作为表务系统的基础,统一管理所有水表的基础信息和生命周期状态。
+### 模块4: 设备档案管理
+- **功能描述**: 作为表务系统的核心,统一管理所有水表的基础信息和生命周期状态。
- **核心功能**:
- **水表信息登录**: 记录新购水表的型号、规格、供应商、批次等信息。
- **水表档案建立**: 为每一块入库的水表建立唯一的、全生命周期跟踪的电子档案。
@@ -1195,26 +1233,25 @@ flowchart TD
**主要功能:**
-- **报装申请**:用户申请、资料审核、受理登记
-- **现场踏勘**:现场勘查、设计方案、工程预算
-- **合同签订**:合同制作、签订确认、费用收取
-- **工程管理**:施工管理、竣工验收、资料归档
-- **立户通水**:信息同步、立户建档、开通供水
+- **报装流程管理**:管理从申请、踏勘到合同签订的完整流程。
+- **工程管理**:负责施工、验收和通水环节。
+- **档案管理**:对报装过程中的所有文档进行归档和管理。
## 模块设计
### 模块1: 报装流程管理
-- **功能描述**: 报装流程模块管理新用户从申请到通水的全过程业务流程,实现报装业务的标准化管理。
+- **功能描述**: 统一管理新用户报装的核心流程,确保各环节顺畅衔接。
- **核心功能**:
- - **报装申请**: 用户资料收集、申请材料审核、受理登记、编号分配。
- - **现场踏勘**: 现场勘查、工程设计、方案制定、费用预算。
- - **合同管理**: 合同制作、合同签订、费用收取、档案归档。
+ - **报装申请**: 用户资料收集、申请材料审核、受理登记。
+ - **现场踏勘**: 安排并记录现场勘查、制定初步设计方案、进行工程预算。
+ - **合同管理**: 根据方案制作、签订供水合同,并收取相关费用。
### 模块2: 工程管理
-- **功能描述**: 工程管理作为报装流程的关键环节,涵盖了从设计、预算到施工、验收的全过程。
+- **功能描述**: 聚焦于报装工程的现场实施与交付。
- **核心功能**:
- - **施工管理**: 施工派工、进度监控、质量验收、竣工确认。
- - **验收通水**: 竣工验收、资料归档、立户通水。
+ - **施工管理**: 施工派工、进度监控、质量检查与整改。
+ - **竣工验收**: 组织相关部门进行联合验收,确保工程质量达标。
+ - **立户通水**: 验收通过后,同步信息至营收系统进行客户立户,并最终开通供水。
### 模块3: 档案管理
- **功能描述**: 负责报装全流程的资料归档和查询。
@@ -1280,23 +1317,53 @@ flowchart TD
## 功能与界面
-客户服务系统为用水客户提供多渠道、便捷的线上自助服务。
+客户服务系统为用水客户提供多渠道、便捷的线上自助服务,主要通过微信和支付宝小程序实现。
-**服务渠道:**
+## 模块列表
+
+| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
+|---|---|---|---|
+| SERVICE-001 | 账户绑定管理 | 客户账户绑定和管理 | 自行开发 |
+| SERVICE-002 | 信息查询服务 | 各类信息查询服务 | 自行开发 |
+| SERVICE-003 | 在线缴费服务 | 多渠道在线缴费服务 | 自行开发 |
+| SERVICE-004 | 电子发票服务 | 电子发票管理服务 | 自行开发 |
-- **微信小程序**
-- **支付宝小程序**
## 模块设计
客户服务系统围绕功能维度进行组织,渠道作为功能的实现方式。
-### 模块1: 微信支付宝服务窗
+### 模块1: 账户绑定管理
- **功能描述**: 提供客户账户的绑定、解绑及多户管理功能。
- **核心功能**:
- - **户号绑定**: 客户通过手机号、身份证等信息绑定用水户号。
- - **实名认证**: 与第三方认证服务对接,完成用户实名认证。
- - **多户管理**: 允许一个账号绑定和管理多个用水户号。
+ - **账户绑定**: 客户通过客户编号、手机号、身份证等信息绑定水务账户。
+ - **绑定验证**: 通过短信验证码等方式确保绑定安全。
+ - **多账户管理**: 一个微信/支付宝账户可以绑定多个水务账户。
+ - **账户管理**: 支持启用、停用绑定关系,处理账户异常情况。
+
+### 模块2: 信息查询服务
+- **功能描述**: 提供全面的用水信息查询服务。
+- **核心功能**:
+ - **账单查询**: 查询当期账单、历史账单、欠费信息等。
+ - **用水历史**: 以图表形式展示历史用水量趋势。
+ - **缴费记录**: 查询历史缴费记录详情。
+ - **停水公告**: 查看所在区域的计划性或临时性停水通知。
+
+### 模块3: 在线缴费服务
+- **功能描述**: 提供多种在线支付方式,为客户提供便捷的缴费服务。
+- **核心功能**:
+ - **多渠道支付**: 支持微信支付、支付宝支付、银行卡支付等多种支付方式。
+ - **支付限额**: 单次支付金额不超过5000元,确保资金安全。
+ - **支付确认**: 支付完成后实时更新账户状态,推送缴费成功通知。
+ - **退款处理**: 支持支付失败和错误支付的退款处理。
+
+### 模块4: 电子发票服务
+- **功能描述**: 提供电子发票申请、查询、下载等服务。
+- **核心功能**:
+ - **发票申请**: 客户可为已缴费项目申请电子发票,支持个人和企业发票。
+ - **发票管理**: 查看已开具的电子发票列表和详情。
+ - **发票下载**: 下载PDF格式的电子发票文件。
+ - **发票推送**: 发票开具成功后自动推送给客户。
# 子系统6设计: 手机抄表APP
@@ -1304,44 +1371,88 @@ flowchart TD
为抄表员、外勤人员提供移动作业工具,支持离线操作,提升现场工作效率。
+**核心业务流程:**
+任务下载 → 现场抄表 → 问题上报 → 工单处理 → 数据上传 → 结果同步
+
+**主要功能特点:**
+- **多维度搜索**:支持户号、户名、地址、钢印号、手机号等多种搜索方式
+- **离线作业**:支持无网络环境下的现场抄表和工单处理
+- **智能采集**:提供定位、NFC、扫码三种数据采集方式
+- **工单闭环**:从问题上报到工单完成的完整处理流程
+- **数据同步**:网络恢复后自动同步本地数据到服务器
+
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
-| APP-001 | 用户认证模块 | 移动端登录、个人信息管理 | 自行开发 |
-| APP-002 | 抄表任务模块 | 抄表任务管理、现场抄表 | 自行开发 |
-| APP-003 | 工单管理模块 | 问题上报、待办工单处理 | 自行开发 |
-| APP-004 | 数据同步模块 | 离线存储、在线同步 | 自行开发 |
+| MOBILE-001 | 登录模块 | 机构编号、用户名密码认证、自动登录 | 自行开发 |
+| MOBILE-002 | 首页搜索模块 | 多维度搜索、最近搜索记录、抄表任务 | 自行开发 |
+| MOBILE-003 | 采集任务管理模块 | 任务列表管理、批量下载、单户采集 | 自行开发 |
+| MOBILE-004 | 换表工单模块 | 换表工单处理、设备信息录入 | 自行开发 |
+| MOBILE-005 | 其他工单模块 | 复水、稽查、问题上报等工单处理 | 自行开发 |
+| MOBILE-006 | 个人信息与系统设置模块 | 个人信息管理、系统设置维护 | 自行开发 |
## 模块设计
-### 模块1: 用户认证模块
-- **功能描述**: 提供安全可靠的移动端登录和个人信息管理。
+### 模块1: 登录模块
+- **功能描述**: 提供移动端用户登录认证功能,支持机构编号、用户名、密码三要素登录。
- **核心功能**:
- - **移动端登录**: 支持账号密码、指纹、面容等多种登录方式。
- - **个人信息管理**: 查看和修改个人基本信息,修改登录密码。
+ - **核心登录功能**: 机构编号、用户名、密码三要素认证,支持自动登录选项
+ - **登录辅助功能**: 登录问题支持、版权标识展示
+ - **安全控制**: 密码自动掩码显示、登录状态保持
-### 模块2: 抄表任务模块
-- **功能描述**: 核心抄表业务的移动化实现。
+### 模块2: 首页搜索模块
+- **功能描述**: 提供多维度客户搜索功能,实现快速定位客户信息。
- **核心功能**:
- - **抄表任务管理**: 从服务端下载抄表任务,并进行本地管理。
- - **现场抄表**: 支持录入表数、选择表状态、拍照记录等。
- - **欠费查询**: 现场查询用户历史欠费信息。
+ - **搜索框功能**: 支持户号、户名、地址、钢印号、手机号等多维度搜索
+ - **最近搜索记录**: 自动保存搜索历史,支持去重和快速访问
+ - **抄表任务列表**: 展示当前抄表员的任务列表,支持直接跳转
-### 模块3: 工单管理模块
-- **功能描述**: 移动端工单处理,实现外勤业务闭环。
+### 模块3: 采集任务管理模块
+- **功能描述**: 管理抄表员的采集任务,包括任务下载、现场采集等功能。
- **核心功能**:
- - **问题上报**: 现场发现问题(如水表损坏、漏水)可立即上报生成工单。
- - **待办工单**: 接收、处理、流转各类工单(换表、维修、停复水等)。
- - **停水复水工单**: 移动端处理停水和复水工单。
- - **稽查工单**: 移动端处理稽查工单。
+ - **任务列表管理**: 数据统计面板、任务筛选分类、批量下载操作
+ - **单户采集详情**: 住户档案展示、多种采集方式(定位、NFC、扫码)
+ - **户间导航**: 支持按任务列表顺序进行上一户/下一户切换
-### 模块4: 数据同步模块
-- **功能描述**: 保证移动端与服务端数据的一致性。
+### 模块4: 换表工单模块
+- **功能描述**: 处理换表工单的完整流程,从工单接收到完成提交。
- **核心功能**:
- - **离线存储**: 在网络不佳时,将业务数据暂存本地。
- - **在线同步**: 网络恢复后,自动或手动将本地数据同步至服务器。
- - **冲突处理**: 提供简单有效的数据冲突解决方案。
+ - **换表工单处理**: 待办工单列表、工单信息填写、设备信息录入
+ - **附件管理**: 支持图片和视频上传,作为现场证据
+ - **工单操作**: 支持工单完成提交和退单处理
+
+### 模块5: 其他工单模块
+- **功能描述**: 处理除换表外的其他类型工单,实现外勤业务闭环。
+- **核心功能**:
+ - **复水工单**: 欠费状态校验、二次确认操作
+ - **稽查任务**: 双模式入口、实时进度显示
+ - **抄表稽查**: 用户档案核对、稽查结论填写、过程存证
+ - **问题上报**: 问题类型选择、处理时效设置、溯源证据上传
+
+### 模块6: 个人信息与系统设置模块
+- **功能描述**: 管理个人信息和系统设置,提供系统维护功能。
+- **核心功能**:
+ - **个人信息管理**: 姓名修改、手机号设置、信息查看
+ - **账户安全配置**: 密码修改、退出登录
+ - **系统维护选项**: 日志上传、缓存清理、数据备份、版本信息
+
+## 关键技术特性
+
+### 离线作业能力
+- **离线操作**: 已下载任务支持无网络环境操作
+- **数据缓存**: 本地缓存用户档案、抄表记录、工单信息
+- **自动同步**: 网络恢复后自动同步本地数据到服务器
+
+### 数据安全保障
+- **数据校验**: 必填字段验证、格式校验、数值合理性检查
+- **状态一致性**: 任务状态管理、工单状态流转控制
+- **防误操作**: 二次确认机制、数据完整性保护
+
+### 用户体验优化
+- **界面友好**: 清晰的界面布局、直观的操作流程
+- **智能搜索**: 实时搜索、关键词高亮、历史记录
+- **便捷导航**: 户间切换、快速定位、批量操作
# 非功能性需求的设计
@@ -1357,7 +1468,7 @@ flowchart TD
**设计措施:**
1. **数据库优化**
- - 采用OpenGauss主从架构,读写分离
+ - 采用达梦数据库主从架构,读写分离
- 对核心业务表建立合适索引
- 大表分区存储,历史数据归档
- 连接池配置优化
@@ -1385,7 +1496,7 @@ flowchart TD
**数据库兼容性:**
-- 主要支持:OpenGauss 5.0+
+- 主要支持:达梦数据库 8.0+
- 备选方案:PostgreSQL 12+
- 预留接口:MySQL 8.0+
@@ -1398,6 +1509,7 @@ flowchart TD
**身份认证:**
+- 基于OAuth2.0协议的单点登录
- 基于JWT的无状态认证
- 支持多因子认证(MFA)
- OAuth2第三方登录集成
diff --git a/新-详细设计说明书.md b/新-详细设计说明书.md
index 4e14966..e536c26 100644
--- a/新-详细设计说明书.md
+++ b/新-详细设计说明书.md
@@ -5,9 +5,9 @@
| 【】草稿 | | |
| 【√】修改稿 | | |
| 【】正式发布 | | |
-| | **当前版本:** | **V1.2** |
-| | **作者:** | **Gemini** |
-| | **完成日期:** | **2025-08-06** |
+| | **当前版本:** | **V1.5** |
+| | **作者:** | **唐伟杰** |
+| | **完成日期:** | **2025-08-01** |
## 版本历史
@@ -15,7 +15,9 @@
| :--- | :--- | :--- | :--- |
| 2025-07-01 | V1.0 | 唐伟杰 | 初版 |
| 2025-07-17 | V1.1 | 唐伟杰 | 补充详细设计内容 |
-| 2025-08-06 | V1.2 | Gemini | 1. 同步更新概要设计中的子系统和模块结构。
2. 重构表务、报装、客户服务子系统,确保逻辑清晰。
3. 补充和完善数据库设计章节,解决缺失和不明确的问题。
4. 全面审查并修正文档,提升整体质量和一致性。 |
+| 2025-08-01 | V1.2 | 唐伟杰 | 1. 同步更新概要设计中的子系统和模块结构。
2. 重构表务、报装、客户服务子系统,确保逻辑清晰。
3. 补充和完善数据库设计章节,解决缺失和不明确的问题。
4. 全面审查并修正文档,提升整体质量和一致性。 |
+| 2025-08-01 | V1.3 | 唐伟杰 | 数据库系统变更:将OpenGauss替换为达梦数据库 8.0+,更新所有相关架构图和技术描述。 |
+| 2025-08-01 | V1.4 | 唐伟杰 | 单点登录采用OAuth2.0协议:完善单点登录模块设计,新增OAuth2.0授权流程、接口设计和相关数据表。 |
# 目录
@@ -237,87 +239,161 @@
- [业务规则](#业务规则-22)
- [数据设计](#数据设计-17)
- [方法说明](#方法说明-17)
- - [功能2: 仓库管理](#功能2-仓库管理)
+ - [模块2: 表务仓库管理](#模块2-表务仓库管理)
+ - [功能](#功能-11)
+ - [功能1: 水表库存管理](#功能1-水表库存管理)
- [功能描述](#功能描述-26)
- [业务规则](#业务规则-23)
- - [模块2: 仓库管理](#模块2-仓库管理)
- - [模块3: 设备档案管理](#模块3-设备档案管理)
+ - [数据设计](#数据设计-18)
+ - [方法说明](#方法说明-18)
+ - [功能2: 物料管理](#功能2-物料管理)
+ - [功能描述](#功能描述-27)
+ - [业务规则](#业务规则-24)
+ - [模块3: 表务基础管理](#模块3-表务基础管理)
+ - [功能](#功能-12)
+ - [功能1: 水表档案管理](#功能1-水表档案管理)
+ - [功能描述](#功能描述-28)
+ - [业务规则](#业务规则-25)
+ - [数据设计](#数据设计-19)
+ - [方法说明](#方法说明-19)
- [子系统4设计: 报装系统](#子系统4设计-报装系统)
- [功能与界面](#功能与界面-3)
- [模块列表](#模块列表-3)
- [模块设计](#模块设计-3)
- [模块1: 报装流程管理](#模块1-报装流程管理)
- - [功能](#功能-11)
- - [功能1: 报装流程](#功能1-报装流程)
- - [功能描述](#功能描述-27)
- - [新用户报装业务流程图](#新用户报装业务流程图)
- - [业务规则](#业务规则-24)
- - [数据设计](#数据设计-18)
- - [方法说明](#方法说明-18)
- - [功能2: 现场踏勘](#功能2-现场踏勘)
- - [功能描述](#功能描述-28)
- - [业务规则](#业务规则-25)
- - [模块2: 工程管理](#模块2-工程管理)
- - [模块3: 档案管理](#模块3-档案管理)
-- [子系统5设计: 客户服务](#子系统5设计-客户服务)
- - [功能与界面](#功能与界面-4)
- - [模块设计](#模块设计-4)
- - [模块1: 微信支付宝服务窗](#模块1-微信支付宝服务窗)
- - [功能](#功能-12)
- - [功能1: 账户绑定](#功能1-账户绑定)
- - [功能描述](#功能描述-29)
- - [功能2: 在线缴费](#功能2-在线缴费)
- - [功能描述](#功能描述-30)
-- [子系统6设计: 手机抄表APP](#子系统6设计-手机抄表app)
- - [功能与界面](#功能与界面-5)
- - [模块列表](#模块列表-4)
- - [模块设计](#模块设计-5)
- - [模块1: 用户认证模块](#模块1-用户认证模块)
- [功能](#功能-13)
- - [功能1: 移动端登录](#功能1-移动端登录)
- - [功能描述](#功能描述-31)
+ - [功能1: 报装流程](#功能1-报装流程)
+ - [功能描述](#功能描述-29)
+ - [新用户报装业务流程图](#新用户报装业务流程图)
- [业务规则](#业务规则-26)
- - [业务流程](#业务流程-13)
- - [数据设计](#数据设计-19)
- - [方法说明](#方法说明-19)
- - [功能2: 个人信息管理](#功能2-个人信息管理)
- - [功能描述](#功能描述-32)
- - [业务规则](#业务规则-27)
- - [模块2: 抄表任务模块](#模块2-抄表任务模块)
- - [功能](#功能-14)
- - [功能1: 抄表任务管理](#功能1-抄表任务管理)
- - [功能描述](#功能描述-33)
- - [业务规则](#业务规则-28)
- - [业务流程](#业务流程-14)
- [数据设计](#数据设计-20)
- [方法说明](#方法说明-20)
- - [功能2: 现场抄表](#功能2-现场抄表)
- - [功能描述](#功能描述-34)
- - [业务规则](#业务规则-29)
- - [功能3: 欠费查询](#功能3-欠费查询)
- - [功能描述](#功能描述-35)
- - [模块3: 工单管理模块](#模块3-工单管理模块)
- - [功能](#功能-15)
- - [功能1: 问题上报](#功能1-问题上报)
- - [功能描述](#功能描述-36)
- - [业务规则](#业务规则-30)
- - [业务流程](#业务流程-15)
+ - [模块2: 现场踏勘管理](#模块2-现场踏勘管理)
+ - [功能](#功能-14)
+ - [功能1: 现场勘查](#功能1-现场勘查)
+ - [功能描述](#功能描述-30)
+ - [业务规则](#业务规则-27)
- [数据设计](#数据设计-21)
- [方法说明](#方法说明-21)
- - [功能2: 代办工单](#功能2-代办工单)
- - [功能描述](#功能描述-37)
- - [功能3: 停水复水工单](#功能3-停水复水工单)
- - [功能描述](#功能描述-38)
- - [功能4: 稽查工单](#功能4-稽查工单)
- - [功能描述](#功能描述-39)
- - [模块4: 数据同步模块](#模块4-数据同步模块)
+ - [功能2: 技术方案设计](#功能2-技术方案设计)
+ - [功能描述](#功能描述-31)
+ - [业务规则](#业务规则-28)
+ - [模块3: 报装档案管理](#模块3-报装档案管理)
+ - [功能](#功能-15)
+ - [功能1: 报装档案管理](#功能1-报装档案管理)
+ - [功能描述](#功能描述-32)
+ - [业务规则](#业务规则-29)
+ - [数据设计](#数据设计-22)
+ - [方法说明](#方法说明-22)
+- [子系统5设计: 客户服务](#子系统5设计-客户服务)
+ - [功能与界面](#功能与界面-4)
+ - [模块列表](#模块列表-4)
+ - [模块设计](#模块设计-4)
+ - [模块1: 账户绑定管理](#模块1-账户绑定管理)
- [功能](#功能-16)
- - [功能1: 离线存储](#功能1-离线存储)
+ - [功能1: 账户绑定](#功能1-账户绑定)
+ - [功能描述](#功能描述-33)
+ - [业务规则](#业务规则-30)
+ - [数据设计](#数据设计-23)
+ - [方法说明](#方法说明-23)
+ - [功能2: 账户管理](#功能2-账户管理)
+ - [功能描述](#功能描述-34)
+ - [业务规则](#业务规则-31)
+ - [模块2: 信息查询服务](#模块2-信息查询服务)
+ - [功能](#功能-17)
+ - [功能1: 账单查询](#功能1-账单查询)
+ - [功能描述](#功能描述-35)
+ - [业务规则](#业务规则-32)
+ - [数据设计](#数据设计-24)
+ - [方法说明](#方法说明-24)
+ - [模块3: 在线缴费服务](#模块3-在线缴费服务)
+ - [功能](#功能-18)
+ - [功能1: 多渠道支付](#功能1-多渠道支付)
+ - [功能描述](#功能描述-36)
+ - [业务规则](#业务规则-33)
+ - [数据设计](#数据设计-25)
+ - [方法说明](#方法说明-25)
+ - [模块4: 电子发票服务](#模块4-电子发票服务)
+ - [功能](#功能-19)
+ - [功能1: 发票管理](#功能1-发票管理)
+ - [功能描述](#功能描述-37)
+ - [业务规则](#业务规则-34)
+ - [数据设计](#数据设计-26)
+ - [方法说明](#方法说明-26)
+- [子系统6设计: 手机抄表APP](#子系统6设计-手机抄表app)
+ - [功能与界面](#功能与界面-5)
+ - [模块列表](#模块列表-5)
+ - [模块设计](#模块设计-5)
+ - [模块1: 登录模块](#模块1-登录模块)
+ - [功能](#功能-20)
+ - [功能1: 核心登录功能](#功能1-核心登录功能)
+ - [功能描述](#功能描述-38)
+ - [业务规则](#业务规则-35)
+ - [业务流程](#业务流程-13)
+ - [界面设计要点](#界面设计要点)
+ - [数据设计](#数据设计-27)
+ - [方法说明](#方法说明-27)
+ - [模块2: 首页搜索模块](#模块2-首页搜索模块)
+ - [功能](#功能-21)
+ - [功能1: 搜索框功能](#功能1-搜索框功能)
+ - [功能描述](#功能描述-39)
+ - [业务规则](#业务规则-36)
+ - [业务流程](#业务流程-14)
+ - [界面设计要点](#界面设计要点-1)
+ - [数据设计](#数据设计-28)
+ - [方法说明](#方法说明-28)
+ - [模块3: 采集任务管理模块](#模块3-采集任务管理模块)
+ - [功能](#功能-22)
+ - [功能1: 任务列表管理](#功能1-任务列表管理)
- [功能描述](#功能描述-40)
- - [功能2: 在线同步](#功能2-在线同步)
+ - [业务规则](#业务规则-37)
+ - [业务流程](#业务流程-15)
+ - [界面设计要点](#界面设计要点-2)
+ - [数据设计](#数据设计-29)
+ - [方法说明](#方法说明-29)
+ - [功能2: 单户采集详情](#功能2-单户采集详情)
- [功能描述](#功能描述-41)
- - [功能3: 冲突处理](#功能3-冲突处理)
+ - [业务规则](#业务规则-38)
+ - [界面设计要点](#界面设计要点-3)
+ - [模块4: 换表工单模块](#模块4-换表工单模块)
+ - [功能](#功能-23)
+ - [功能1: 换表工单处理流程](#功能1-换表工单处理流程)
- [功能描述](#功能描述-42)
+ - [业务规则](#业务规则-39)
+ - [业务流程](#业务流程-16)
+ - [界面设计要点](#界面设计要点-4)
+ - [数据设计](#数据设计-30)
+ - [方法说明](#方法说明-30)
+ - [模块5: 其他工单模块](#模块5-其他工单模块)
+ - [功能](#功能-24)
+ - [功能1: 复水工单](#功能1-复水工单)
+ - [功能描述](#功能描述-43)
+ - [业务流程](#业务流程-17)
+ - [功能2: 稽查任务](#功能2-稽查任务)
+ - [功能描述](#功能描述-44)
+ - [功能3: 抄表稽查](#功能3-抄表稽查)
+ - [功能描述](#功能描述-45)
+ - [界面设计要点](#界面设计要点-5)
+ - [功能4: 问题上报](#功能4-问题上报)
+ - [功能描述](#功能描述-46)
+ - [界面设计要点](#界面设计要点-6)
+ - [数据设计](#数据设计-31)
+ - [模块6: 个人信息与系统设置模块](#模块6-个人信息与系统设置模块)
+ - [功能](#功能-25)
+ - [功能1: 个人信息管理](#功能1-个人信息管理)
+ - [功能描述](#功能描述-47)
+ - [界面设计要点](#界面设计要点-7)
+ - [功能2: 账户安全配置](#功能2-账户安全配置)
+ - [功能描述](#功能描述-48)
+ - [功能3: 系统维护选项](#功能3-系统维护选项)
+ - [功能描述](#功能描述-49)
+ - [界面设计要点](#界面设计要点-8)
+ - [数据设计](#数据设计-32)
+ - [关键业务规则与注意事项](#关键业务规则与注意事项)
+ - [数据校验规则](#数据校验规则)
+ - [状态一致性规则](#状态一致性规则)
+ - [离线能力支持](#离线能力支持)
+ - [防误操作机制](#防误操作机制)
- [中间件和其他设计](#中间件和其他设计)
- [缓存设计](#缓存设计)
- [Redis](#redis)
@@ -471,7 +547,7 @@ graph TB
end
subgraph "数据层"
- E1[(OpenGauss 5.0+
主从架构)]
+ E1[(达梦数据库 8.0+
主从架构)]
E2[(Redis 6.0+
分布式缓存)]
E3[MinIO
分布式文件存储]
end
@@ -532,8 +608,8 @@ flowchart TD
end
subgraph "数据存储层"
- D1[(OpenGauss主库
核心业务数据)]
- D2[(OpenGauss从库
查询数据)]
+ D1[(达梦数据库主库
核心业务数据)]
+ D2[(达梦数据库从库
查询数据)]
D3[(Redis缓存
热点数据)]
D4[文件存储
附件图片]
D5[(备份库
历史数据)]
@@ -607,7 +683,7 @@ flowchart TD
- 客户服务:微信、支付宝等客户服务渠道
### 数据层
-- 主数据库:OpenGauss 5.0+,采用主从架构,保证数据的高可用性
+- 主数据库:达梦数据库 8.0+,采用主从架构,保证数据的高可用性
- 缓存:Redis 6.0+,分布式缓存集群,提升系统性能
- 文件存储:MinIO分布式文件存储,处理系统文件和附件
@@ -646,9 +722,9 @@ graph TB
subgraph "数据服务区"
subgraph "数据库集群"
- DB1[OpenGauss主库
32核128G]
- DB2[OpenGauss从库
32核128G]
- DB3[OpenGauss备库
32核128G]
+ DB1[达梦数据库主库
32核128G]
+ DB2[达梦数据库从库
32核128G]
+ DB3[达梦数据库备库
32核128G]
end
subgraph "缓存集群"
@@ -714,8 +790,8 @@ graph TB
end
subgraph "数据存储容器"
- DB_C1[OpenGauss主容器
opengauss:5.0.1
8核16G]
- DB_C2[OpenGauss从容器
opengauss:5.0.1
8核16G]
+ DB_C1[达梦数据库主容器
dm:8.0
8核16G]
+ DB_C2[达梦数据库从容器
dm:8.0
8核16G]
REDIS_C[Redis容器
redis:7-alpine
2核4G]
MINIO_C[MinIO容器
minio/minio
2核4G]
end
@@ -779,7 +855,7 @@ graph TB
| 设备类型 | 配置规格 | 数量 | 主要作用 | 备注 |
|---------|---------|------|----------|------|
-| 数据库服务器 | 32核128G,10TB SSD,万兆网卡 | 3台 | 主从备数据库 | OpenGauss分布式架构 |
+| 数据库服务器 | 32核128G,10TB SSD,万兆网卡 | 3台 | 主从备数据库 | 达梦数据库分布式架构 |
| 缓存服务器 | 16核32G,1TB SSD,万兆网卡 | 3台 | Redis集群 | 主从哨兵模式 |
| 文件存储服务器 | 8核32G,10TB HDD,千兆网卡 | 3台 | 分布式文件存储 | MinIO集群模式 |
@@ -801,7 +877,7 @@ graph TB
- 应用服务集群:2台服务器,16核64G,部署后端微服务应用
### 数据服务区
-- 数据库集群:OpenGauss主从架构,32核128G,保证数据高可用
+- 数据库集群:达梦数据库主从架构,32核128G,保证数据高可用
- 缓存集群:Redis集群,16核32G,提升系统响应性能
- 文件存储:分布式文件存储,8核32G 10TB,处理业务文件
@@ -892,7 +968,7 @@ graph TB
1. **功能概述**
- 提供统一的用户登录认证功能,支持用户名密码登录、手机号短信验证码登录等多种认证方式。登录成功后生成JWT令牌,用于后续请求的身份验证。
+ 提供统一的用户登录认证功能,基于OAuth2.0协议实现单点登录,支持用户名密码登录、手机号短信验证码登录等多种认证方式。登录成功后生成JWT令牌,用于后续请求的身份验证。
2. **操作权限**
@@ -923,10 +999,12 @@ graph TB
1. **密码规则**:密码必须包含字母和数字,长度6-20位
2. **验证码规则**:验证码区分大小写,有效期5分钟
3. **账户锁定规则**:连续5次密码错误将锁定账户30分钟
-4. **令牌管理规则**:JWT令牌有效期2小时,支持滑动过期
+4. **OAuth2.0协议支持**:支持授权码模式(Authorization Code)和客户端凭证模式(Client Credentials)
+5. **令牌管理规则**:JWT令牌有效期2小时,支持自动刷新,OAuth2.0访问令牌有效期4小时
###### 业务流程
+**标准登录流程:**
1. 用户访问登录页面
2. 输入用户名、密码、验证码
3. 系统验证输入参数的有效性
@@ -936,12 +1014,25 @@ graph TB
7. 返回用户信息和令牌给前端
8. 前端保存令牌并跳转到首页
+**OAuth2.0授权码模式流程:**
+1. 客户端应用重定向用户到授权服务器(/oauth/authorize)
+2. 用户在授权服务器进行身份认证
+3. 用户授权后,授权服务器重定向回客户端并携带授权码
+4. 客户端使用授权码向授权服务器请求访问令牌(/oauth/token)
+5. 授权服务器验证授权码并返回访问令牌和刷新令牌
+6. 客户端使用访问令牌访问受保护的资源
+
###### 数据设计
涉及的主要数据表:
- `system_users`:用户基本信息表
- `system_login_log`:登录日志表
- `system_user_session`:用户会话表
+- `system_oauth2_client`:OAuth2客户端表
+- `system_oauth2_access_token`:OAuth2访问令牌表
+- `system_oauth2_refresh_token`:OAuth2刷新令牌表
+- `system_oauth2_code`:OAuth2授权码表
+- `system_oauth2_approve`:OAuth2批准表
###### 方法说明
@@ -950,6 +1041,9 @@ graph TB
| login | 用户登录 | username:用户名(必填)
password:密码(必填)
captcha:验证码(必填) | 登录结果、用户信息、JWT令牌 |
| logout | 用户登出 | token:JWT令牌(必填) | 登出结果 |
| refreshToken | 刷新令牌 | refreshToken:刷新令牌(必填) | 新的JWT令牌 |
+| oauthAuthorize | OAuth2.0授权 | client_id:客户端ID(必填)
response_type:响应类型(必填)
redirect_uri:重定向URI(必填)
scope:权限范围(可选) | 授权页面或授权码 |
+| oauthToken | OAuth2.0获取令牌 | grant_type:授权类型(必填)
code:授权码(必填)
client_id:客户端ID(必填)
client_secret:客户端密钥(必填) | 访问令牌、刷新令牌、令牌类型 |
+| oauthRefresh | OAuth2.0刷新令牌 | grant_type:授权类型(必填)
refresh_token:刷新令牌(必填)
client_id:客户端ID(必填) | 新的访问令牌、刷新令牌 |
###### 其他说明
@@ -2650,16 +2744,16 @@ flowchart TD
**主要功能模块:**
- **表务工单管理**:工单创建、派发、处理、验收的全流程管理
-- **仓库管理**:水表库存管理、出入库记录、库存预警
-- **设备档案管理**:水表档案、维修记录、使用历史
+- **表务仓库管理**:水表库存管理、出入库记录、库存预警、物料管理
+- **表务基础管理**:水表档案、维修记录、使用历史、技术参数管理
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| METER-001 | 表务工单管理 | 水表维修更换工单全流程管理 | 自行开发 |
-| METER-002 | 仓库管理 | 水表库存管理和出入库管理 | 自行开发 |
-| METER-003 | 设备档案管理 | 水表设备档案和历史记录管理 | 自行开发 |
+| METER-002 | 表务仓库管理 | 水表库存管理和出入库管理 | 自行开发 |
+| METER-003 | 表务基础管理 | 水表档案和历史记录管理 | 自行开发 |
## 模块设计
@@ -2752,25 +2846,83 @@ flowchart TD
| completeWorkOrder | 完成工单 | workOrderId:工单ID(必填),completionInfo:完成信息(必填) | Boolean类型:true/false |
| queryWorkOrderList | 查询工单列表 | queryCondition:查询条件(选填) | PageInfo |
-##### 功能2: 仓库管理
+### 模块2: 表务仓库管理
+
+#### 功能
+
+##### 功能1: 水表库存管理
###### 功能描述
-管理水表库存,包括入库、出库、库存查询、库存预警等功能。
+管理水表库存,包括入库、出库、库存查询、库存预警、物料管理等功能。
###### 业务规则
-1. **入库规则**:新水表采购入库需要验收确认
-2. **出库规则**:维修工单领取需要审核批准
-3. **库存预警**:库存低于安全库存时自动预警
+1. **入库规则**:新水表采购入库需要验收确认,记录水表型号、规格、生产厂家等信息
+2. **出库规则**:维修工单领取需要审核批准,记录领用人、用途、数量等信息
+3. **库存预警**:库存低于安全库存时自动预警,支持邮件和短信通知
+4. **盘点规则**:定期进行库存盘点,处理盘盈盘亏
-### 模块2: 仓库管理
+###### 数据设计
-详细功能设计参考表务工单管理。
+主要涉及以下数据表:
+- `meter_warehouse`:水表仓库表
+- `meter_stock`:水表库存表
+- `meter_in_out_record`:水表出入库记录表
+- `meter_inventory`:水表盘点表
-### 模块3: 设备档案管理
+###### 方法说明
-详细功能设计参考表务工单管理。
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| meterStockIn | 水表入库 | stockInfo:入库信息(必填) | Boolean类型:true/false |
+| meterStockOut | 水表出库 | stockOutInfo:出库信息(必填) | Boolean类型:true/false |
+| queryStockList | 查询库存列表 | queryCondition:查询条件(选填) | PageInfo |
+| stockWarning | 库存预警 | warehouseId:仓库ID(选填) | List |
+
+##### 功能2: 物料管理
+
+###### 功能描述
+
+管理表务相关的物料,包括管材、配件、工具等辅助材料的管理。
+
+###### 业务规则
+
+1. **物料分类**:按照用途对物料进行分类管理
+2. **领用管理**:工单领用物料需要登记,完工后核销
+3. **采购管理**:根据消耗情况制定采购计划
+
+### 模块3: 表务基础管理
+
+#### 功能
+
+##### 功能1: 水表档案管理
+
+###### 功能描述
+
+管理水表的基础档案信息,包括水表技术参数、安装记录、维修历史等。
+
+###### 业务规则
+
+1. **档案建立**:新水表安装时建立档案,记录基本信息
+2. **信息更新**:水表更换、维修时更新档案信息
+3. **历史追踪**:完整记录水表的使用历史和维修记录
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `meter_archive`:水表档案表
+- `meter_maintenance_record`:水表维修记录表
+- `meter_replacement_history`:水表更换历史表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| createMeterArchive | 创建水表档案 | meterInfo:水表信息(必填) | MeterArchive对象 |
+| updateMeterArchive | 更新水表档案 | archiveId:档案ID(必填),updateInfo:更新信息(必填) | Boolean类型:true/false |
+| queryMeterHistory | 查询水表历史 | meterId:水表ID(必填) | List |
+| getMeterMaintenanceRecord | 获取维修记录 | meterId:水表ID(必填) | List |
# 子系统4设计: 报装系统
@@ -2783,17 +2935,17 @@ flowchart TD
**主要功能模块:**
-- **报装流程管理**:申请受理、踏勘设计、施工管理、验收通水
-- **工程管理**:施工计划、进度监控、质量验收、成本核算
-- **档案管理**:报装档案、工程档案、图纸管理
+- **报装流程管理**:申请受理、踏勘设计、合同签订、施工协调、验收通水
+- **现场踏勘管理**:现场勘查、技术方案设计、工程预算、可行性评估
+- **报装档案管理**:报装档案、工程档案、图纸管理、客户资料管理
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
| INSTALL-001 | 报装流程管理 | 新用户报装全流程管理 | 自行开发 |
-| INSTALL-002 | 工程管理 | 报装工程施工和监管 | 自行开发 |
-| INSTALL-003 | 档案管理 | 报装和工程档案管理 | 自行开发 |
+| INSTALL-002 | 现场踏勘管理 | 现场勘查和技术方案设计 | 自行开发 |
+| INSTALL-003 | 报装档案管理 | 报装和工程档案管理 | 自行开发 |
## 模块设计
@@ -2970,7 +3122,11 @@ flowchart LR
| signContract | 签订报装合同 | contractInfo:合同信息(必填) | Contract对象 |
| trackProgress | 跟踪施工进度 | contractId:合同ID(必填) | ProgressInfo对象 |
-##### 功能2: 现场踏勘
+### 模块2: 现场踏勘管理
+
+#### 功能
+
+##### 功能1: 现场勘查
###### 功能描述
@@ -2982,23 +3138,94 @@ flowchart LR
2. **信息收集**:记录现场地理位置、管网分布、施工条件等
3. **方案建议**:提出初步的工程实施方案和注意事项
-### 模块2: 工程管理
+###### 数据设计
-详细功能设计参考报装流程管理。
+主要涉及以下数据表:
+- `site_survey`:现场踏勘表
+- `survey_photo`:踏勘照片表
+- `survey_measurement`:踏勘测量数据表
-### 模块3: 档案管理
+###### 方法说明
-详细功能设计参考报装流程管理。
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| scheduleSurvey | 安排现场踏勘 | applicationId:申请ID(必填),surveyDate:踏勘日期(必填) | Boolean类型:true/false |
+| recordSurveyData | 记录踏勘数据 | surveyData:踏勘数据(必填) | SurveyRecord对象 |
+| generateTechPlan | 生成技术方案 | surveyId:踏勘ID(必填) | TechnicalPlan对象 |
+| calculateCost | 计算工程造价 | planId:方案ID(必填) | CostEstimate对象 |
+
+##### 功能2: 技术方案设计
+
+###### 功能描述
+
+根据现场踏勘结果,设计技术实施方案,包括管线走向、施工方案、材料清单等。
+
+###### 业务规则
+
+1. **方案设计**:根据踏勘结果制定详细的技术方案
+2. **材料清单**:计算所需材料的种类和数量
+3. **造价预算**:根据方案和材料清单计算工程造价
+
+### 模块3: 报装档案管理
+
+#### 功能
+
+##### 功能1: 报装档案管理
+
+###### 功能描述
+
+管理报装过程中产生的各类档案资料,包括申请资料、踏勘资料、施工资料、验收资料等。
+
+###### 业务规则
+
+1. **档案分类**:按照业务类型对档案进行分类管理
+2. **档案归档**:报装完成后及时归档相关资料
+3. **档案查询**:支持多种方式查询档案信息
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `installation_archive`:报装档案表
+- `archive_document`:档案文档表
+- `archive_category`:档案分类表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| createArchive | 创建报装档案 | archiveInfo:档案信息(必填) | Archive对象 |
+| uploadDocument | 上传档案文档 | archiveId:档案ID(必填),document:文档(必填) | Boolean类型:true/false |
+| queryArchive | 查询报装档案 | queryCondition:查询条件(选填) | PageInfo |
+| archiveComplete | 档案归档 | archiveId:档案ID(必填) | Boolean类型:true/false |
# 子系统5设计: 客户服务
## 功能与界面
-客户服务系统为客户提供微信、支付宝等线上服务渠道。
+客户服务系统为用水客户提供多渠道、便捷的线上自助服务,主要通过微信和支付宝小程序实现。
+
+**核心业务流程:**
+账户绑定 → 信息查询 → 在线缴费 → 电子发票 → 客户服务
+
+**主要功能模块:**
+
+- **账户绑定管理**:客户账户绑定、解绑、验证、多账户管理
+- **信息查询服务**:账单查询、缴费记录查询、用水量查询、欠费查询
+- **在线缴费服务**:微信支付、支付宝支付、银行卡支付、预存款缴费
+- **电子发票服务**:发票申请、发票查询、发票下载、发票推送
+
+## 模块列表
+
+| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
+|---|---|---|---|
+| SERVICE-001 | 账户绑定管理 | 客户账户绑定和管理 | 自行开发 |
+| SERVICE-002 | 信息查询服务 | 各类信息查询服务 | 自行开发 |
+| SERVICE-003 | 在线缴费服务 | 多渠道在线缴费服务 | 自行开发 |
+| SERVICE-004 | 电子发票服务 | 电子发票管理服务 | 自行开发 |
## 模块设计
-### 模块1: 微信支付宝服务窗
+### 模块1: 账户绑定管理
#### 功能
@@ -3006,13 +3233,137 @@ flowchart LR
###### 功能描述
-用户通过微信或支付宝绑定水务账户,实现在线查询和缴费。
+用户通过微信或支付宝绑定水务账户,实现在线查询和缴费功能。支持多种绑定方式和多账户管理。
-##### 功能2: 在线缴费
+###### 业务规则
+
+1. **绑定验证**:通过客户编号、手机号、身份证等信息验证身份
+2. **多账户管理**:一个微信/支付宝账户可以绑定多个水务账户
+3. **安全控制**:绑定和解绑操作需要短信验证码确认
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `customer_binding`:客户绑定关系表
+- `binding_verification`:绑定验证记录表
+- `binding_log`:绑定操作日志表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| bindAccount | 绑定客户账户 | bindingInfo:绑定信息(必填) | BindingResult对象 |
+| unbindAccount | 解绑客户账户 | bindingId:绑定ID(必填) | Boolean类型:true/false |
+| verifyBinding | 验证绑定信息 | customerCode:客户编号(必填),verifyInfo:验证信息(必填) | Boolean类型:true/false |
+| getBindingList | 获取绑定列表 | openId:微信/支付宝ID(必填) | List |
+
+##### 功能2: 账户管理
###### 功能描述
-用户可以通过微信、支付宝在线缴纳水费,支持多种支付方式。
+管理已绑定的客户账户,包括账户信息更新、绑定状态管理、账户切换等。
+
+###### 业务规则
+
+1. **状态管理**:支持启用、停用绑定关系
+2. **信息同步**:定期同步客户基础信息
+3. **异常处理**:处理账户异常情况(如销户、过户等)
+
+### 模块2: 信息查询服务
+
+#### 功能
+
+##### 功能1: 账单查询
+
+###### 功能描述
+
+提供客户账单查询服务,包括当期账单、历史账单、欠费信息等查询功能。
+
+###### 业务规则
+
+1. **查询权限**:只能查询已绑定账户的信息
+2. **数据范围**:支持查询最近24个月的账单信息
+3. **实时更新**:账单信息实时同步更新
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `billing_record`:开账记录表
+- `payment_record`:缴费记录表
+- `customer_info`:客户信息表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| getBillInfo | 获取账单信息 | customerCode:客户编号(必填),billMonth:账单月份(选填) | BillInfo对象 |
+| getPaymentHistory | 获取缴费历史 | customerCode:客户编号(必填),startDate:开始日期(选填),endDate:结束日期(选填) | List |
+| getArrearsInfo | 获取欠费信息 | customerCode:客户编号(必填) | ArrearsInfo对象 |
+| getUsageHistory | 获取用水历史 | customerCode:客户编号(必填),months:查询月数(选填) | List |
+
+### 模块3: 在线缴费服务
+
+#### 功能
+
+##### 功能1: 多渠道支付
+
+###### 功能描述
+
+支持微信支付、支付宝支付、银行卡支付等多种支付方式,为客户提供便捷的在线缴费服务。
+
+###### 业务规则
+
+1. **支付限额**:单次支付金额不超过5000元
+2. **支付确认**:支付完成后实时更新账户状态
+3. **退款处理**:支持支付失败和错误支付的退款处理
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `online_payment`:在线支付记录表
+- `payment_channel`:支付渠道表
+- `refund_record`:退款记录表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| createPayment | 创建支付订单 | paymentInfo:支付信息(必填) | PaymentOrder对象 |
+| confirmPayment | 确认支付结果 | orderId:订单ID(必填) | PaymentResult对象 |
+| processRefund | 处理退款申请 | refundInfo:退款信息(必填) | RefundResult对象 |
+| getPaymentStatus | 查询支付状态 | orderId:订单ID(必填) | PaymentStatus对象 |
+
+### 模块4: 电子发票服务
+
+#### 功能
+
+##### 功能1: 发票管理
+
+###### 功能描述
+
+提供电子发票申请、查询、下载等服务,支持个人和企业发票需求。
+
+###### 业务规则
+
+1. **发票类型**:支持普通发票和专用发票
+2. **开票时限**:缴费后30天内可申请发票
+3. **发票推送**:发票开具成功后自动推送给客户
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `invoice_application`:发票申请表
+- `invoice_info`:发票信息表
+- `invoice_push_log`:发票推送日志表
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| applyInvoice | 申请电子发票 | invoiceRequest:发票申请(必填) | InvoiceApplication对象 |
+| getInvoiceList | 获取发票列表 | customerCode:客户编号(必填) | List |
+| downloadInvoice | 下载电子发票 | invoiceId:发票ID(必填) | InvoiceFile对象 |
+| pushInvoice | 推送电子发票 | invoiceId:发票ID(必填),pushChannel:推送渠道(必填) | Boolean类型:true/false |
# 子系统6设计: 手机抄表APP
@@ -3025,33 +3376,37 @@ flowchart LR
**主要功能模块:**
-- **用户认证**:登录验证、个人信息管理、权限控制
-- **抄表任务**:任务下载、现场抄表、抄表汇总、欠费查询
-- **工单管理**:问题上报、代办工单、停水复水、稽查工单
-- **数据同步**:离线存储、在线同步、冲突处理
+- **登录模块**:机构编号、用户名密码认证、自动登录、版权标识
+- **首页搜索**:多维度搜索、最近搜索记录、抄表任务列表
+- **采集任务管理**:任务列表、批量下载、单户采集详情
+- **换表工单**:工单处理流程、设备信息录入、附件上传
+- **其他工单**:复水工单、稽查任务、抄表稽查、问题上报
+- **个人信息与系统设置**:个人信息管理、账户安全、系统维护
## 模块列表
| 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 |
|---|---|---|---|
-| MOBILE-001 | 用户认证模块 | 登录验证、个人信息管理 | 自行开发 |
-| MOBILE-002 | 抄表任务模块 | 抄表任务管理和现场抄表 | 自行开发 |
-| MOBILE-003 | 工单管理模块 | 各类工单处理和管理 | 自行开发 |
-| MOBILE-004 | 数据同步模块 | 离线存储和在线同步 | 自行开发 |
+| MOBILE-001 | 登录模块 | 机构编号、用户名密码认证、自动登录 | 自行开发 |
+| MOBILE-002 | 首页搜索模块 | 多维度搜索、最近搜索记录、抄表任务 | 自行开发 |
+| MOBILE-003 | 采集任务管理模块 | 任务列表管理、批量下载、单户采集 | 自行开发 |
+| MOBILE-004 | 换表工单模块 | 换表工单处理、设备信息录入 | 自行开发 |
+| MOBILE-005 | 其他工单模块 | 复水、稽查、问题上报等工单处理 | 自行开发 |
+| MOBILE-006 | 个人信息与系统设置模块 | 个人信息管理、系统设置维护 | 自行开发 |
## 模块设计
-### 模块1: 用户认证模块
+### 模块1: 登录模块
#### 功能
-##### 功能1: 移动端登录
+##### 功能1: 核心登录功能
###### 功能描述
1. **功能概述**
- 提供移动端用户登录认证功能,支持在线和离线两种登录方式。在线登录时验证用户身份,离线登录时使用本地缓存验证。
+ 提供移动端用户登录认证功能,支持机构编号、用户名、密码三要素登录,包含自动登录选项和登录问题支持。
2. **操作权限**
@@ -3061,296 +3416,619 @@ flowchart LR
3. **功能约束**
- - 支持在线和离线两种登录方式
- - 登录状态保持7天,超期需重新登录
- - 首次登录必须在线验证
+ - 必须输入机构编号、用户名、密码三要素
+ - 支持自动登录功能(默认未勾选)
+ - 登录失败提供客服支持途径
###### 业务规则
-1. **在线登录规则**:需要网络连接,验证用户名密码
-2. **离线登录规则**:使用本地缓存的用户信息验证
-3. **权限控制规则**:根据用户角色控制功能访问权限
+1. **登录验证规则**:机构编号、用户名、密码三要素缺一不可
+2. **自动登录规则**:勾选后下次打开应用自动提交历史凭证登录
+3. **安全控制规则**:密码输入内容自动掩码显示
###### 业务流程
```mermaid
flowchart TD
- A[启动APP] --> B{网络连接状态}
- B -->|有网络| C[在线登录]
- B -->|无网络| D[离线登录]
+ A[启动APP] --> B[显示欢迎语]
+ B --> C[显示登录表单]
+ C --> D[输入机构编号]
+ D --> E[输入用户名]
+ E --> F[输入密码]
+ F --> G[选择自动登录]
+ G --> H[点击登录按钮]
- C --> E[输入用户名密码]
- E --> F[服务器验证]
- F --> G{验证结果}
- G -->|成功| H[获取用户权限]
- G -->|失败| I[提示登录失败]
+ H --> I[提交身份验证]
+ I --> J{验证结果}
+ J -->|成功| K[进入主界面]
+ J -->|失败| L[显示登录失败]
- D --> J[检查本地缓存]
- J --> K{缓存是否有效}
- K -->|有效| L[离线验证成功]
- K -->|无效| M[提示需要在线登录]
-
- H --> N[下载抄表任务]
- L --> N
- N --> O[进入主界面]
- O --> P([登录完成])
-
- I --> E
+ L --> M[提示联系客服]
M --> C
+
+ K --> N[保存登录状态]
+ N --> O([登录完成])
```
+###### 界面设计要点
+
+1. **欢迎语**:顶部显示"您好!欢迎使用「手机抄表」功能"
+2. **登录表单**:
+ - 机构编号输入框:占位提示"请输入机构ID"
+ - 用户名输入框:占位提示"输入账号"
+ - 密码输入框:占位提示"输入密码",内容自动掩码
+ - 自动登录复选框:标签为"自动登录",默认未勾选
+ - 登录按钮:标签为"登录",主操作按钮
+3. **辅助功能**:
+ - 底部提示"登录遇到问题联系客服"
+ - 底部版权标识"福建水投集团"
+
###### 数据设计
主要涉及以下数据表:
-- `mobile_user_session`:移动端用户会话表
-- `mobile_user_cache`:移动端用户缓存表
-- `mobile_login_log`:移动端登录日志表
+- `system_users`:用户基本信息表(复用Web端)
+- `system_login_log`:登录日志表(复用Web端,扩展设备类型字段)
+- `mobile_user_cache`:移动端用户缓存表(移动端特有,用于离线缓存)
###### 方法说明
| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
|---|---|---|---|
-| onlineLogin | 在线登录验证 | username:用户名(必填)
password:密码(必填)
deviceId:设备ID(必填) | LoginResult对象 |
-| offlineLogin | 离线登录验证 | username:用户名(必填)
localPassword:本地密码(必填) | LoginResult对象 |
-| updateUserCache | 更新用户缓存 | userInfo:用户信息(必填) | Boolean类型:true/false |
-| checkPermission | 检查用户权限 | userId:用户ID(必填)
functionCode:功能代码(必填) | Boolean类型:true/false |
+| submitLogin | 提交登录验证 | orgCode:机构编号(必填)
username:用户名(必填)
password:密码(必填)
autoLogin:自动登录(可选) | LoginResult对象 |
+| checkAutoLogin | 检查自动登录 | deviceId:设备ID(必填) | AutoLoginResult对象 |
+| saveLoginCredentials | 保存登录凭证 | credentials:登录凭证(必填) | Boolean类型:true/false |
+| clearLoginCache | 清除登录缓存 | userId:用户ID(必填) | Boolean类型:true/false |
-##### 功能2: 个人信息管理
-
-###### 功能描述
-
-管理抄表员的个人信息,包括基本信息修改、密码变更、抄表设置等。
-
-###### 业务规则
-
-1. **信息修改规则**:手机号等敏感信息需要验证
-2. **密码变更规则**:新密码需要符合安全要求
-3. **设置同步规则**:个人设置需要同步到服务器
-
-### 模块2: 抄表任务模块
+### 模块2: 首页搜索模块
#### 功能
-##### 功能1: 抄表任务管理
+##### 功能1: 搜索框功能
###### 功能描述
1. **功能概述**
- 管理抄表员的抄表任务,包括任务下载、任务分配、进度跟踪等功能。支持按册本、按区域、按时间等多种任务组织方式。
+ 提供多维度客户搜索功能,支持户号、户名、地址、钢印号、手机号等多种搜索条件,实现快速定位客户信息。
2. **操作权限**
- - 抄表员:查看和执行自己的抄表任务
- - 抄表组长:查看和分配所有抄表任务
+ - 所有登录用户均可使用搜索功能
+ - 搜索结果根据用户权限进行过滤
3. **功能约束**
- - 任务数据支持离线存储
- - 支持任务优先级管理
- - 任务完成后需要及时上传
+ - 支持实时搜索和关键词高亮
+ - 搜索历史自动保存和去重
+ - 异常状态需要友好提示
###### 业务规则
-1. **任务下载规则**:
- - 系统根据抄表周期自动生成任务
- - 抄表员只能下载自己负责的任务
- - 任务数据包含客户信息、历史抄表记录等
+1. **搜索条件规则**:支持户号、户名、地址、钢印号、手机号模糊匹配
+2. **搜索历史规则**:最近搜索记录自动去重,显示关键信息
+3. **结果展示规则**:搜索结果实时显示,支持关键词高亮
-2. **任务执行规则**:
- - 按照册本顺序进行抄表
- - 支持跳过和延后处理
- - 异常情况需要拍照记录
+###### 业务流程
-3. **数据上传规则**:
+```mermaid
+flowchart TD
+ A[进入首页] --> B[显示搜索框]
+ B --> C[显示最近搜索记录]
+ C --> D[显示抄表任务列表]
+
+ B --> E[输入搜索关键词]
+ E --> F[实时搜索匹配]
+ F --> G{是否有结果}
+ G -->|有结果| H[显示搜索结果]
+ G -->|无结果| I[显示"未找到相关用户"]
+
+ H --> J[点击搜索结果]
+ C --> K[点击最近搜索]
+ D --> L[点击抄表任务]
+
+ J --> M[跳转用户详情页]
+ K --> M
+ L --> M
+
+ M --> N[携带用户信息]
+ N --> O[加载用户档案]
+ O --> P[显示水表数据]
+ P --> Q[显示欠费账单]
+ Q --> R([完成用户信息加载])
+```
+
+###### 界面设计要点
+
+1. **搜索框区域**:
+ - 占位提示:"户号/户名/地址/钢印号/手机号"
+ - 右侧取消按钮:清空内容并退出搜索状态
+2. **最近搜索记录**:
+ - 显示"最近搜索"标签
+ - 条目包含户号、户名、地址末段
+ - 点击条目跳转用户详情页
+3. **抄表任务列表**:
+ - 显示"抄表任务"标签
+ - 每户显示户号、户名、完整地址
+ - 相同户号的多条记录合并显示
+4. **搜索结果列表**:
+ - 实时展示匹配结果
+ - 支持关键词高亮显示
+ - 无结果时显示友好提示
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `mobile_search_history`:移动端搜索历史表(移动端特有)
+- `reading_book`:抄表册本表(复用Web端)
+- `customer_info`:客户基本信息表(复用Web端)
+- `meter_info`:水表信息表(复用Web端)
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| searchCustomer | 搜索客户信息 | keyword:搜索关键词(必填)
searchType:搜索类型(可选) | List对象 |
+| getSearchHistory | 获取搜索历史 | userId:用户ID(必填)
limit:条数限制(可选) | List对象 |
+| saveSearchHistory | 保存搜索历史 | userId:用户ID(必填)
keyword:关键词(必填) | Boolean类型:true/false |
+| getReadingTaskList | 获取抄表任务列表 | employeeId:抄表员ID(必填) | List对象 |
+
+### 模块3: 采集任务管理模块
+
+#### 功能
+
+##### 功能1: 任务列表管理
+
+###### 功能描述
+
+1. **功能概述**
+
+ 管理抄表员的采集任务,包括任务列表展示、数据统计面板、任务筛选分类、批量下载等功能。
+
+2. **操作权限**
+
+ - 抄表员:查看和执行自己的任务
+ - 抄表组长:查看所有任务和分配权限
+
+3. **功能约束**
+
+ - 任务按册本组织,支持离线操作
+ - 未下载任务需要联网下载数据包
+ - 支持全选和批量操作
+
+###### 业务规则
+
+1. **任务状态规则**:未下载(需联网)、已下载(支持离线)
+2. **任务筛选规则**:按"全部/未采集/采集"分类查看
+3. **批量操作规则**:支持全选和多选批量下载
+
+###### 业务流程
+
+```mermaid
+flowchart TD
+ A[进入任务管理] --> B[显示操作员姓名]
+ B --> C[显示全局搜索框]
+ C --> D[显示数据统计面板]
+ D --> E[显示任务筛选标签]
+ E --> F[显示任务列表]
+
+ F --> G[选择任务项]
+ G --> H[批量操作]
+ H --> I[全选功能]
+ I --> J[点击下载按钮]
+
+ J --> K{网络状态}
+ K -->|有网络| L[下载任务数据包]
+ K -->|无网络| M[提示网络异常]
+
+ L --> N[更新任务状态]
+ N --> O[显示"已下载"]
+ O --> P[支持离线操作]
+ P --> Q([任务下载完成])
+
+ M --> R[等待网络恢复]
+ R --> J
+```
+
+###### 界面设计要点
+
+1. **页面头部**:
+ - 显示当前操作员姓名(如"张三")
+ - 全局搜索框:支持按"户号/户名/地址/钢印"搜索
+2. **数据统计面板**:
+ - 分栏显示"应采集X|已采集Y|已上传Z"
+ - 实时反映任务进度
+3. **任务筛选**:
+ - 标签页导航:"全部/未采集/采集"
+ - 支持按状态分类查看
+4. **任务列表**:
+ - 单条任务项:册本编号、备注、状态标签
+ - 左侧单选按钮:支持勾选任务项
+ - 状态标识:"未下载"或"已下载"
+5. **批量操作区**:
+ - 底部"全选"按钮:勾选所有任务
+ - 显示"已选册本(N)"计数
+ - 蓝色"下载"按钮:批量下载选中任务
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `reading_book`:抄表册本表(复用Web端)
+- `reading_record`:抄表记录表(复用Web端)
+- `customer_info`:客户基本信息表(复用Web端)
+- `meter_info`:水表信息表(复用Web端)
+- `mobile_task_sync`:移动端任务同步表(移动端特有,用于离线任务管理)
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| getTaskList | 获取任务列表 | employeeId:抄表员ID(必填)
status:任务状态(可选) | List对象 |
+| downloadTaskData | 下载任务数据包 | taskIds:任务ID列表(必填) | DownloadResult对象 |
+| getTaskStatistics | 获取任务统计 | employeeId:抄表员ID(必填) | TaskStatistics对象 |
+| updateTaskStatus | 更新任务状态 | taskId:任务ID(必填)
status:状态(必填) | Boolean类型:true/false |
+
+##### 功能2: 单户采集详情
+
+###### 功能描述
+
+1. **功能概述**
+
+ 提供单个客户的详细采集功能,包括住户档案展示、多种采集方式选择、户间导航等。
+
+2. **功能约束**
+
+ - 显示完整的客户档案信息
+ - 支持定位、NFC、扫码三种采集方式
+ - 支持按任务列表顺序切换客户
+
+###### 业务规则
+
+1. **档案展示规则**:显示户号、户名、地址、表钢印号、水表编号、安装位置等
+2. **采集方式规则**:定位(GPS)、NFC(电子标签)、扫码(二维码/条形码)
+3. **导航规则**:按任务列表顺序支持上一户/下一户切换
+
+###### 界面设计要点
+
+1. **住户档案区域**:
+ - 显示户号、户名、完整地址
+ - 显示表钢印号、水表编号、安装位置
+ - 右上角显示状态标签(如"正常""欠费")
+2. **采集方式选择**:
+ - 并列提供三种采集入口
+ - 定位:获取GPS坐标
+ - NFC:读取电子标签
+ - 扫码:识别二维码/条形码
+3. **户间导航**:
+ - 底部"上一户/下一户"按钮
+ - 按任务列表顺序切换
+
+### 模块4: 换表工单模块
+
+#### 功能
+
+##### 功能1: 换表工单处理流程
+
+###### 功能描述
+
+1. **功能概述**
+
+ 处理换表工单的完整流程,从待办工单列表到工单完成,包括工单信息填写、设备信息录入、附件上传等。
+
+2. **操作权限**
+
+ - 表务人员:处理换表工单
+ - 工单管理员:工单分配和审核
+
+3. **功能约束**
+
+ - 必填字段必须完整填写
+ - 必须上传现场照片和视频
+ - 支持工单退单和说明原因
+
+###### 业务规则
+
+1. **工单筛选规则**:支持按用户名、时间、工单类型、抄表员多维度筛选
+2. **信息录入规则**:旧表底码、新表底码为必填项
+3. **设备信息规则**:IMEI为强制录入,IMSI和通讯模块号可选
+4. **附件要求规则**:必须上传图片或视频作为现场证据
+
+###### 业务流程
+
+```mermaid
+flowchart TD
+ A[待办工单列表] --> B[筛选工单]
+ B --> C[选择换表工单]
+ C --> D[查看工单详情]
+ D --> E[填写基础信息]
+
+ E --> F[录入表具数据]
+ F --> G[填写技术参数]
+ G --> H[录入设备标识]
+ H --> I[填写备注信息]
+ I --> J[上传附件]
+
+ J --> K{信息是否完整}
+ K -->|否| L[提示必填项]
+ L --> F
+ K -->|是| M[选择操作]
+
+ M --> N{完成还是退单}
+ N -->|完成| O[提交工单]
+ N -->|退单| P[填写退单原因]
+
+ O --> Q[工单状态更新]
+ P --> R[工单退回]
+
+ Q --> S[通知相关人员]
+ R --> T[记录退单日志]
+
+ S --> U([工单处理完成])
+ T --> U
+```
+
+###### 界面设计要点
+
+1. **待办工单列表**:
+ - 筛选功能:用户名、开始时间、工单类型、抄表员
+ - 时间选择器:支持跨年度选择(2023-2025年)
+ - 工单信息:编号、户主姓名、地址、联系方式、创建时间
+2. **工单信息填写**:
+ - 基础信息:户号、户名、地址、联系电话(自动带出,不可编辑)
+ - 表具数据:旧表底码(必填)、新表底码(必填)、表钢印号/水表编号/条形码
+ - 技术参数:新表口径、新表量程、新表厂家/型号
+ - 设备标识:IMEI(强制录入)、IMSI、通讯模块号
+ - 备注框:支持长文本输入
+3. **附件上传**:
+ - 支持图片(拍照/相册)
+ - 支持视频(现场录制)
+4. **操作按钮**:
+ - 蓝色"完成"按钮:提交工单
+ - 红色"退单"按钮:终止并说明原因
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `meter_work_order`:表务工单表(复用Web端)
+- `meter_replacement_log`:水表更换日志表(复用Web端)
+- `work_order_material`:工单用料表(复用Web端)
+- `mobile_work_attachment`:移动端工单附件表(移动端特有,用于现场附件管理)
+
+###### 方法说明
+
+| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
+|---|---|---|---|
+| getWorkOrderList | 获取待办工单列表 | employeeId:抄表员ID(必填)
filter:筛选条件(可选) | List对象 |
+| submitMeterChange | 提交换表工单 | workOrderId:工单ID(必填)
meterChangeData:换表数据(必填) | SubmitResult对象 |
+| uploadAttachment | 上传附件 | workOrderId:工单ID(必填)
attachmentData:附件数据(必填) | UploadResult对象 |
+| rejectWorkOrder | 退单处理 | workOrderId:工单ID(必填)
reason:退单原因(必填) | Boolean类型:true/false |
+
+### 模块5: 其他工单模块
+
+#### 功能
+
+##### 功能1: 复水工单
+
+###### 功能描述
+
+1. **功能概述**
+
+ 处理客户复水工单,包括日期选择、用户信息展示、欠费状态校验、二次确认操作等。
+
+2. **业务规则**
+
+ - 必须校验欠费结清状态
+ - 需要二次确认操作
+ - 记录复水操作时间和操作人
+
+###### 业务流程
+
+```mermaid
+flowchart TD
+ A[选择复水工单] --> B[选择日期]
+ B --> C[展示用户信息]
+ C --> D[显示欠费结清状态]
+ D --> E{欠费是否结清}
+ E -->|是| F[显示"确认开水"按钮]
+ E -->|否| G[提示需要结清欠费]
+ F --> H[点击确认开水]
+ H --> I[二次弹窗确认]
+ I --> J{确认操作}
+ J -->|是| K[执行复水操作]
+ J -->|否| L[取消操作]
+ K --> M[更新客户状态]
+ M --> N[记录操作日志]
+ N --> O([复水工单完成])
+```
+
+##### 功能2: 稽查任务
+
+###### 功能描述
+
+1. **功能概述**
+
+ 执行抄表稽查任务,包括待办列表、采集任务管理、数据看板、离线数据下载等。
+
+2. **业务规则**
+
+ - 支持双模式入口:待办列表和采集任务管理
+ - 实时显示稽查进度
+ - 支持册本批量下载
+
+##### 功能3: 抄表稽查
+
+###### 功能描述
+
+1. **功能概述**
+
+ 对抄表数据进行稽查验证,包括用户档案核对、抄表数据对比、稽查结论填写、过程存证等。
+
+2. **业务规则**
+
+ - 必须填写稽查结论(合格/不合格)
+ - 必须上传图片和视频证据
+ - 记录上期读数和本期读数
+
+###### 界面设计要点
+
+1. **信息结构**:
+ - 用户档案:编号、姓名、地址、钢印号
+ - 抄表数据:上期读数→本期读数
+ - 稽查结论:"合格"单选按钮(强制选择)
+ - 过程存证:图片+视频附件上传(必传)
+2. **操作按钮**:
+ - 蓝色"保存"按钮:完成稽查
+
+##### 功能4: 问题上报
+
+###### 功能描述
+
+1. **功能概述**
+
+ 支持现场问题上报,包括问题类型选择、处理时效设置、溯源证据上传等。
+
+2. **业务规则**
+
+ - 上报类型固定为"换表申请"
+ - 处理时效精确到小时
+ - 必须上传图片或视频证据
+
+###### 界面设计要点
+
+1. **核心字段**:
+ - 上报类型:固定为"换表申请"
+ - 处理时效:精确到小时(如2025-06-06至2025-06-06)
+ - 溯源证据:强制上传图片/视频
+2. **操作流程**:
+ - 保存提交后触发后台工单派发
+
+###### 数据设计
+
+其他工单模块主要涉及以下数据表:
+- `meter_work_order`:表务工单表(复用Web端,包括复水、稽查、维修等工单)
+- `customer_info`:客户基本信息表(复用Web端)
+- `customer_account`:客户账户信息表(复用Web端,用于欠费状态查询)
+- `reading_record`:抄表记录表(复用Web端,用于稽查数据对比)
+- `mobile_work_attachment`:移动端工单附件表(移动端特有,用于现场证据存储)
+
+### 模块6: 个人信息与系统设置模块
+
+#### 功能
+
+##### 功能1: 个人信息管理
+
+###### 功能描述
+
+1. **功能概述**
+
+ 管理个人基本信息,包括姓名修改、手机号设置、信息查看等功能。
+
+2. **业务规则**
+
+ - 姓名可以修改,需要二次确认
+ - 手机号首次设置后可以修改
+ - 账号信息不可修改
+
+###### 界面设计要点
+
+1. **信息展示**:
+ - 姓名、账号、手机号码状态
+2. **编辑功能**:
+ - 修改姓名:进入子页面,点击"完成"提交
+ - 设置手机号:未设置时填写,点击"完成"保存
+
+##### 功能2: 账户安全配置
+
+###### 功能描述
+
+1. **功能概述**
+
+ 管理账户安全相关设置,包括密码修改、退出登录等。
+
+2. **业务规则**
+
+ - 新密码需要符合安全要求
+ - 需要输入新密码和确认密码
+ - 退出登录清除本地会话
+
+##### 功能3: 系统维护选项
+
+###### 功能描述
+
+1. **功能概述**
+
+ 提供系统维护相关功能,包括日志上传、缓存清理、数据备份、版本信息等。
+
+2. **业务规则**
+
+ - 重要操作需要二次确认
+ - 支持异常水量预警开关
+ - 显示当前应用版本
+
+###### 界面设计要点
+
+1. **系统维护功能**:
+ - 日志上传:弹出确认框,发送至服务器
+ - 清理缓存:弹出提示确认,清空本地记录
+ - 抄表设置:启用"异常水量预警"开关
+ - 备份数据库:保存本地数据
+ - 版本信息:显示当前版本(如V1.0.3)
+
+###### 数据设计
+
+主要涉及以下数据表:
+- `system_users`:用户基本信息表(复用Web端)
+- `system_login_log`:登录日志表(复用Web端,记录密码修改等操作)
+- `mobile_app_config`:移动端应用配置表(移动端特有,用于个性化设置)
+
+## 关键业务规则与注意事项
+
+### 数据校验规则
+
+1. **必填字段验证**:
+ - 标*字段必须完整填写
+ - 换表工单的旧表底码、新表底码为必填
+ - IMEI设备识别码为强制录入项
+
+2. **格式校验规则**:
+ - 手机号格式验证
+ - 日期范围不超过当前日期
+ - 表底码数值合理性检查
+
+### 状态一致性规则
+
+1. **任务状态管理**:
+ - 未下载任务不可直接采集
+ - 相同户号在列表中合并显示
+ - 任务状态实时同步更新
+
+2. **工单状态流转**:
+ - 工单状态按流程严格流转
+ - 退单操作需要填写原因
+ - 完成工单需要附件证据
+
+### 离线能力支持
+
+1. **离线操作规则**:
+ - 已下载任务支持无网环境操作
+ - 网络恢复后自动同步数据
+ - 本地缓存数据完整性保证
+
+2. **数据同步策略**:
- 支持实时上传和批量上传
- - 网络异常时自动缓存本地
- 冲突数据需要人工处理
+ - 重要数据多重备份保护
-###### 业务流程
+### 防误操作机制
-```mermaid
-flowchart TD
- A[登录成功] --> B[检查任务更新]
- B --> C[下载抄表任务]
- C --> D[选择抄表册本]
- D --> E[开始抄表]
-
- E --> F[查看客户信息]
- F --> G[录入抄表数据]
- G --> H[拍照记录]
- H --> I[保存抄表记录]
-
- I --> J{是否完成册本}
- J -->|否| K[下一个客户]
- K --> F
- J -->|是| L[册本完成确认]
-
- L --> M{是否有网络}
- M -->|是| N[实时上传数据]
- M -->|否| O[本地缓存数据]
-
- N --> P[更新服务器状态]
- O --> Q[等待网络恢复]
- Q --> R[批量上传缓存]
-
- P --> S[任务完成]
- R --> S
- S --> T([抄表任务结束])
-```
+1. **二次确认操作**:
+ - 复水操作需要二次确认
+ - 退单操作需要填写原因
+ - 清理缓存需要确认提示
-###### 数据设计
-
-主要涉及以下数据表:
-- `mobile_reading_task`:移动端抄表任务表
-- `mobile_reading_record`:移动端抄表记录表
-- `mobile_task_progress`:移动端任务进度表
-- `mobile_data_cache`:移动端数据缓存表
-
-###### 方法说明
-
-| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
-|---|---|---|---|
-| downloadTask | 下载抄表任务 | employeeId:抄表员ID(必填)
taskDate:任务日期(必填) | List对象 |
-| submitReading | 提交抄表数据 | readingData:抄表数据(必填)
photoPath:照片路径(可选) | SubmitResult对象 |
-| uploadCachedData | 上传缓存数据 | cacheDataList:缓存数据列表(必填) | UploadResult对象 |
-| getTaskProgress | 获取任务进度 | taskId:任务ID(必填) | TaskProgress对象 |
-
-##### 功能2: 现场抄表
-
-###### 功能描述
-
-支持现场抄表操作,包括抄表数据录入、异常处理、照片上传等功能。
-
-###### 业务规则
-
-1. **抄表数据规则**:本期抄数必须大于等于上期抄数
-2. **异常处理规则**:异常情况需要选择原因并拍照
-3. **GPS定位规则**:记录抄表位置信息用于监督
-
-##### 功能3: 欠费查询
-
-###### 功能描述
-
-查询客户欠费情况,支持现场收费和欠费提醒功能。
-
-### 模块3: 工单管理模块
-
-#### 功能
-
-##### 功能1: 问题上报
-
-###### 功能描述
-
-1. **功能概述**
-
- 支持抄表员在现场发现问题时进行上报,包括水表故障、客户投诉、环境异常等各种问题的记录和上报。
-
-2. **操作权限**
-
- - 抄表员:可以上报各类问题
- - 维修人员:可以处理和回填问题
-
-3. **功能约束**
-
- - 问题上报需要包含详细描述
- - 必须上传现场照片作为证据
- - 支持离线上报,联网时自动同步
-
-###### 业务规则
-
-1. **问题分类规则**:
- - 水表故障:表停、表坏、表歪等
- - 客户问题:客户投诉、信息错误等
- - 环境问题:道路损坏、安全隐患等
-
-2. **上报审核规则**:
- - 紧急问题需要立即处理
- - 一般问题按照优先级排队
- - 重复问题需要合并处理
-
-###### 业务流程
-
-```mermaid
-flowchart TD
- A[发现问题] --> B[选择问题类型]
- B --> C[填写问题描述]
- C --> D[上传现场照片]
- D --> E[选择紧急程度]
- E --> F[提交问题上报]
-
- F --> G{网络状态}
- G -->|有网络| H[立即上传服务器]
- G -->|无网络| I[本地缓存]
-
- H --> J[生成工单编号]
- I --> K[等待网络恢复]
- K --> L[自动上传缓存]
- L --> J
-
- J --> M[通知相关人员]
- M --> N[工单派发]
- N --> O[处理人员接收]
- O --> P[现场处理]
- P --> Q[处理结果回填]
- Q --> R[问题解决]
- R --> S([问题处理完成])
-```
-
-###### 数据设计
-
-主要涉及以下数据表:
-- `mobile_problem_report`:移动端问题上报表
-- `mobile_work_order`:移动端工单表
-- `mobile_problem_photo`:移动端问题照片表
-
-###### 方法说明
-
-| 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 |
-|---|---|---|---|
-| submitProblem | 提交问题上报 | problemData:问题数据(必填)
photoList:照片列表(必填) | ProblemReport对象 |
-| getProblemStatus | 获取问题状态 | problemId:问题ID(必填) | ProblemStatus对象 |
-| updateProblemStatus | 更新问题状态 | problemId:问题ID(必填)
status:状态(必填) | Boolean类型:true/false |
-
-##### 功能2: 代办工单
-
-###### 功能描述
-
-处理系统分配的各类工单,包括换表工单、维修工单、稽查工单等。
-
-##### 功能3: 停水复水工单
-
-###### 功能描述
-
-处理客户停水和复水相关的工单,包括欠费停水、故障停水、恢复供水等。
-
-##### 功能4: 稽查工单
-
-###### 功能描述
-
-执行抄表稽查和水价稽查任务,确保抄表数据准确性和水价执行正确性。
-
-### 模块4: 数据同步模块
-
-#### 功能
-
-##### 功能1: 离线存储
-
-###### 功能描述
-
-提供离线数据存储功能,确保在网络不稳定的情况下也能正常工作。
-
-##### 功能2: 在线同步
-
-###### 功能描述
-
-当网络恢复时,自动同步本地数据到服务器,并下载最新的任务和配置信息。
-
-##### 功能3: 冲突处理
-
-###### 功能描述
-
-处理数据同步过程中的冲突,包括版本冲突、数据冲突等。
+2. **数据完整性保护**:
+ - 附件上传需要清晰可辨
+ - 安装位置照片必须上传
+ - 关键操作记录审计日志
# 中间件和其他设计
@@ -3358,9 +4036,6 @@ flowchart TD
### Redis
-| IP | 端口 | 用户名 | 密码 |
-|---|---|---|---|
-| 192.168.1.10 | 6379 | default | water2024 |
| 作用 | Key | Value | 过期时间 |
|---|---|---|---|
@@ -3668,7 +4343,7 @@ flowchart TD
为满足系统性能要求,采取以下设计措施:
1. **数据库优化**
- - 采用OpenGauss主从架构,读写分离
+ - 采用达梦数据库主从架构,读写分离
- 关键查询建立合适索引
- 大表分区存储,历史数据归档
@@ -3685,7 +4360,7 @@ flowchart TD
## 兼容性的考虑
1. **数据库兼容性**
- - 支持OpenGauss 5.0+
+ - 支持达梦数据库 8.0+
- 兼容PostgreSQL语法
- 预留MySQL适配接口
@@ -3697,6 +4372,7 @@ flowchart TD
## 安全的考虑
1. **认证授权**
+ - 基于OAuth2.0协议的单点登录认证
- 基于JWT的身份认证
- RBAC权限控制模型
- 多租户数据隔离