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** -![图表 1](temp_mermaid_新-数据库设计说明书_5356/diagram_1.png) +![图表 1](temp_mermaid_新-数据库设计说明书_43770/diagram_1.png) ### 业务核心表关系图 **图表 2** -![图表 2](temp_mermaid_新-数据库设计说明书_5356/diagram_2.png) +![图表 2](temp_mermaid_新-数据库设计说明书_43770/diagram_2.png) ## 业务视图设计 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** -![图表 1](temp_mermaid_新-概要设计说明书_5356/diagram_1.png) +![图表 1](temp_mermaid_新-概要设计说明书_43770/diagram_1.png) ### 层级说明 @@ -227,7 +257,7 @@ CJKmainfont: "PingFang SC" **图表 2** -![图表 2](temp_mermaid_新-概要设计说明书_5356/diagram_2.png) +![图表 2](temp_mermaid_新-概要设计说明书_43770/diagram_2.png) ## 物理架构 @@ -239,13 +269,13 @@ CJKmainfont: "PingFang SC" **图表 3** -![图表 3](temp_mermaid_新-概要设计说明书_5356/diagram_3.png) +![图表 3](temp_mermaid_新-概要设计说明书_43770/diagram_3.png) ### 网络连接 **图表 4** -![图表 4](temp_mermaid_新-概要设计说明书_5356/diagram_4.png) +![图表 4](temp_mermaid_新-概要设计说明书_43770/diagram_4.png) ### 硬件配置规格 @@ -282,14 +312,14 @@ CJKmainfont: "PingFang SC" | 跳板服务器 | 4核8G,500GB SSD | 1台 | 运维管理 | | 日志服务器 | 16核32G,5TB SSD | 1台 | 日志收集分析 | -### OpenGauss分布式架构 +### 达梦数据库分布式架构 -系统采用OpenGauss分布式数据库架构,支持高性能、高可用、高扩展性的数据存储服务。 +系统采用达梦数据库分布式架构,支持高性能、高可用、高扩展性的数据存储服务。 **图表 5** -![图表 5](temp_mermaid_新-概要设计说明书_5356/diagram_5.png) +![图表 5](temp_mermaid_新-概要设计说明书_43770/diagram_5.png) ### 容器化部署架构 @@ -299,7 +329,7 @@ CJKmainfont: "PingFang SC" **图表 6** -![图表 6](temp_mermaid_新-概要设计说明书_5356/diagram_6.png) +![图表 6](temp_mermaid_新-概要设计说明书_43770/diagram_6.png) ## 对外接口 @@ -323,6 +353,7 @@ CJKmainfont: "PingFang SC" | SYS-003 | 表务系统 | 表务工单、表务仓库、水表全生命周期管理 | 自行开发 | | SYS-004 | 报装系统 | 报装流程管理、现场踏勘、合同签订、施工验收 | 自行开发 | | SYS-005 | 客户服务 | 微信小程序、支付宝小程序、客户自助服务 | 自行开发 | +| SYS-006 | 手机抄表APP | 移动端抄表、工单处理、数据同步 | 自行开发 | ## 子系统相互关系与接口 @@ -331,7 +362,7 @@ CJKmainfont: "PingFang SC" **图表 7** -![图表 7](temp_mermaid_新-概要设计说明书_5356/diagram_7.png) +![图表 7](temp_mermaid_新-概要设计说明书_43770/diagram_7.png) ### 主要接口定义 @@ -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** -![图表 8](temp_mermaid_新-概要设计说明书_5356/diagram_8.png) +![图表 8](temp_mermaid_新-概要设计说明书_43770/diagram_8.png) **功能群说明:** @@ -412,7 +447,7 @@ CJKmainfont: "PingFang SC" **图表 9** -![图表 9](temp_mermaid_新-概要设计说明书_5356/diagram_9.png) +![图表 9](temp_mermaid_新-概要设计说明书_43770/diagram_9.png) ## 模块设计 @@ -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** -![图表 10](temp_mermaid_新-概要设计说明书_5356/diagram_10.png) +![图表 10](temp_mermaid_新-概要设计说明书_43770/diagram_10.png) ### 客户服务业务群 @@ -556,7 +595,7 @@ CJKmainfont: "PingFang SC" **图表 11** -![图表 11](temp_mermaid_新-概要设计说明书_5356/diagram_11.png) +![图表 11](temp_mermaid_新-概要设计说明书_43770/diagram_11.png) ## 模块设计 @@ -624,7 +663,7 @@ CJKmainfont: "PingFang SC" **图表 12** -![图表 12](temp_mermaid_新-概要设计说明书_5356/diagram_12.png) +![图表 12](temp_mermaid_新-概要设计说明书_43770/diagram_12.png) **业务规则:** @@ -665,7 +704,7 @@ CJKmainfont: "PingFang SC" **图表 13** -![图表 13](temp_mermaid_新-概要设计说明书_5356/diagram_13.png) +![图表 13](temp_mermaid_新-概要设计说明书_43770/diagram_13.png) **业务规则:** @@ -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** - -![图表 14](temp_mermaid_新-概要设计说明书_5356/diagram_14.png) - - -### 模块2: 表务仓库 - -**功能概述:** - -表务仓库模块管理水表的入库、检定、领用、出库、退库、报废等全生命周期流程。 - -**核心功能:** - -- 水表入库管理:新表入库、批次管理、质量检验 -- 水表检定管理:检定计划、检定记录、证书管理 -- 水表领用管理:领用申请、审批流程、出库登记 -- 库存管理:库存统计、预警提醒、盘点管理 - -# 子系统3设计: 报装系统 +# 子系统4设计: 报装系统 ## 功能与界面 @@ -773,52 +858,38 @@ CJKmainfont: "PingFang SC" **主要功能:** -- **报装申请**:用户申请、资料审核、受理登记 -- **现场踏勘**:现场勘查、设计方案、工程预算 -- **合同签订**:合同制作、签订确认、费用收取 -- **施工管理**:施工派工、进度跟踪、质量监督 -- **验收通水**:竣工验收、资料归档、立户通水 +- **报装流程管理**:管理从申请、踏勘到合同签订的完整流程。 +- **工程管理**:负责施工、验收和通水环节。 +- **档案管理**:对报装过程中的所有文档进行归档和管理。 ## 模块设计 -### 模块1: 报装流程 +### 模块1: 报装流程管理 +- **功能描述**: 统一管理新用户报装的核心流程,确保各环节顺畅衔接。 +- **核心功能**: + - **报装申请**: 用户资料收集、申请材料审核、受理登记。 + - **现场踏勘**: 安排并记录现场勘查、制定初步设计方案、进行工程预算。 + - **合同管理**: 根据方案制作、签订供水合同,并收取相关费用。 -**功能概述:** +### 模块2: 工程管理 +- **功能描述**: 聚焦于报装工程的现场实施与交付。 +- **核心功能**: + - **施工管理**: 施工派工、进度监控、质量检查与整改。 + - **竣工验收**: 组织相关部门进行联合验收,确保工程质量达标。 + - **立户通水**: 验收通过后,同步信息至营收系统进行客户立户,并最终开通供水。 -报装流程模块管理新用户从申请到通水的全过程业务流程,实现报装业务的标准化管理。 - -**核心功能:** - -1. **报装申请** - - 用户资料收集 - - 申请材料审核 - - 受理登记 - - 编号分配 - -2. **现场踏勘** - - 现场勘查 - - 工程设计 - - 方案制定 - - 费用预算 - -3. **合同管理** - - 合同制作 - - 合同签订 - - 费用收取 - - 档案归档 - -4. **施工管理** - - 施工派工 - - 进度监控 - - 质量验收 - - 竣工确认 +### 模块3: 档案管理 +- **功能描述**: 负责报装全流程的资料归档和查询。 +- **核心功能**: + - **资料归档**: 对报装申请、踏勘记录、合同、施工图纸等所有文档进行电子化归档。 + - **档案查询**: 提供便捷的查询功能,可按客户名称、报装编号等多种条件检索历史档案。 **新用户报装业务流程图:** -**图表 15** +**图表 14** -![图表 15](temp_mermaid_新-概要设计说明书_5356/diagram_15.png) +![图表 14](temp_mermaid_新-概要设计说明书_43770/diagram_14.png) **业务规则:** @@ -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** -![图表 1](temp_mermaid_新-详细设计说明书_5356/diagram_1.png) +![图表 1](temp_mermaid_新-详细设计说明书_43770/diagram_1.png) ### 系统数据流向图 @@ -462,7 +537,7 @@ CJKmainfont: "PingFang SC" **图表 2** -![图表 2](temp_mermaid_新-详细设计说明书_5356/diagram_2.png) +![图表 2](temp_mermaid_新-详细设计说明书_43770/diagram_2.png) ### 表现层 @@ -483,7 +558,7 @@ CJKmainfont: "PingFang SC" - 客户服务:微信、支付宝等客户服务渠道 ### 数据层 -- 主数据库:OpenGauss 5.0+,采用主从架构,保证数据的高可用性 +- 主数据库:达梦数据库 8.0+,采用主从架构,保证数据的高可用性 - 缓存:Redis 6.0+,分布式缓存集群,提升系统性能 - 文件存储:MinIO分布式文件存储,处理系统文件和附件 @@ -496,7 +571,7 @@ CJKmainfont: "PingFang SC" **图表 3** -![图表 3](temp_mermaid_新-详细设计说明书_5356/diagram_3.png) +![图表 3](temp_mermaid_新-详细设计说明书_43770/diagram_3.png) ### 容器化部署架构 @@ -504,7 +579,7 @@ CJKmainfont: "PingFang SC" **图表 4** -![图表 4](temp_mermaid_新-详细设计说明书_5356/diagram_4.png) +![图表 4](temp_mermaid_新-详细设计说明书_43770/diagram_4.png) ### 硬件配置规格表 @@ -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** -![图表 5](temp_mermaid_新-详细设计说明书_5356/diagram_5.png) +![图表 5](temp_mermaid_新-详细设计说明书_43770/diagram_5.png) ###### 数据设计 @@ -1012,7 +1105,7 @@ h、**错误响应码** **图表 6** -![图表 6](temp_mermaid_新-详细设计说明书_5356/diagram_6.png) +![图表 6](temp_mermaid_新-详细设计说明书_43770/diagram_6.png) ###### 业务规则 @@ -1179,7 +1272,7 @@ f、**响应参数** **图表 7** -![图表 7](temp_mermaid_新-详细设计说明书_5356/diagram_7.png) +![图表 7](temp_mermaid_新-详细设计说明书_43770/diagram_7.png) ###### 数据设计 @@ -1313,7 +1406,7 @@ f、**响应参数** **图表 8** -![图表 8](temp_mermaid_新-详细设计说明书_5356/diagram_8.png) +![图表 8](temp_mermaid_新-详细设计说明书_43770/diagram_8.png) ###### 输入输出数据 @@ -1416,7 +1509,7 @@ f、**响应参数** **图表 9** -![图表 9](temp_mermaid_新-详细设计说明书_5356/diagram_9.png) +![图表 9](temp_mermaid_新-详细设计说明书_43770/diagram_9.png) ###### 数据设计 @@ -1477,7 +1570,7 @@ f、**响应参数** **图表 10** -![图表 10](temp_mermaid_新-详细设计说明书_5356/diagram_10.png) +![图表 10](temp_mermaid_新-详细设计说明书_43770/diagram_10.png) ###### 数据设计 @@ -1538,7 +1631,7 @@ f、**响应参数** **图表 11** -![图表 11](temp_mermaid_新-详细设计说明书_5356/diagram_11.png) +![图表 11](temp_mermaid_新-详细设计说明书_43770/diagram_11.png) ###### 数据设计 @@ -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** -![图表 12](temp_mermaid_新-详细设计说明书_5356/diagram_12.png) +![图表 12](temp_mermaid_新-详细设计说明书_43770/diagram_12.png) ###### 数据设计 @@ -1660,7 +1752,7 @@ f、**响应参数** **图表 13** -![图表 13](temp_mermaid_新-详细设计说明书_5356/diagram_13.png) +![图表 13](temp_mermaid_新-详细设计说明书_43770/diagram_13.png) ###### 数据设计 @@ -1721,7 +1813,7 @@ f、**响应参数** **图表 14** -![图表 14](temp_mermaid_新-详细设计说明书_5356/diagram_14.png) +![图表 14](temp_mermaid_新-详细设计说明书_43770/diagram_14.png) ###### 数据设计 @@ -1799,7 +1891,7 @@ f、**响应参数** **图表 15** -![图表 15](temp_mermaid_新-详细设计说明书_5356/diagram_15.png) +![图表 15](temp_mermaid_新-详细设计说明书_43770/diagram_15.png) ###### 数据设计 @@ -1877,7 +1969,7 @@ f、**响应参数** **图表 16** -![图表 16](temp_mermaid_新-详细设计说明书_5356/diagram_16.png) +![图表 16](temp_mermaid_新-详细设计说明书_43770/diagram_16.png) ###### 数据设计 @@ -2032,7 +2124,7 @@ f、**响应参数** **图表 17** -![图表 17](temp_mermaid_新-详细设计说明书_5356/diagram_17.png) +![图表 17](temp_mermaid_新-详细设计说明书_43770/diagram_17.png) ###### 数据设计 @@ -2074,16 +2166,16 @@ f、**响应参数** **主要功能模块:** - **表务工单管理**:工单创建、派发、处理、验收的全流程管理 -- **仓库管理**:水表库存管理、出入库记录、库存预警 -- **设备档案管理**:水表档案、维修记录、使用历史 +- **表务仓库管理**:水表库存管理、出入库记录、库存预警、物料管理 +- **表务基础管理**:水表档案、维修记录、使用历史、技术参数管理 ## 模块列表 | 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | METER-001 | 表务工单管理 | 水表维修更换工单全流程管理 | 自行开发 | -| METER-002 | 仓库管理 | 水表库存管理和出入库管理 | 自行开发 | -| METER-003 | 设备档案管理 | 水表设备档案和历史记录管理 | 自行开发 | +| METER-002 | 表务仓库管理 | 水表库存管理和出入库管理 | 自行开发 | +| METER-003 | 表务基础管理 | 水表档案和历史记录管理 | 自行开发 | ## 模块设计 @@ -2102,7 +2194,7 @@ f、**响应参数** **图表 18** -![图表 18](temp_mermaid_新-详细设计说明书_5356/diagram_18.png) +![图表 18](temp_mermaid_新-详细设计说明书_43770/diagram_18.png) ###### 业务规则 @@ -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** -![图表 19](temp_mermaid_新-详细设计说明书_5356/diagram_19.png) +![图表 19](temp_mermaid_新-详细设计说明书_43770/diagram_19.png) - 申请受理阶段 **图表 20** -![图表 20](temp_mermaid_新-详细设计说明书_5356/diagram_20.png) +![图表 20](temp_mermaid_新-详细设计说明书_43770/diagram_20.png) - 现场勘查设计阶段 @@ -2216,7 +2366,7 @@ f、**响应参数** **图表 21** -![图表 21](temp_mermaid_新-详细设计说明书_5356/diagram_21.png) +![图表 21](temp_mermaid_新-详细设计说明书_43770/diagram_21.png) - 工程施工阶段 @@ -2224,7 +2374,7 @@ f、**响应参数** **图表 22** -![图表 22](temp_mermaid_新-详细设计说明书_5356/diagram_22.png) +![图表 22](temp_mermaid_新-详细设计说明书_43770/diagram_22.png) - 验收移交阶段 @@ -2232,7 +2382,7 @@ f、**响应参数** **图表 23** -![图表 23](temp_mermaid_新-详细设计说明书_5356/diagram_23.png) +![图表 23](temp_mermaid_新-详细设计说明书_43770/diagram_23.png) ###### 业务规则 @@ -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** -![图表 24](temp_mermaid_新-详细设计说明书_5356/diagram_24.png) +![图表 24](temp_mermaid_新-详细设计说明书_43770/diagram_24.png) +###### 界面设计要点 + +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** + +![图表 27](temp_mermaid_新-详细设计说明书_43770/diagram_27.png) + + +###### 界面设计要点 + +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** - -![图表 25](temp_mermaid_新-详细设计说明书_5356/diagram_25.png) - - -###### 数据设计 - -主要涉及以下数据表: -- `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** - -![图表 26](temp_mermaid_新-详细设计说明书_5356/diagram_26.png) - - -###### 数据设计 - -主要涉及以下数据表: -- `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** -![图表 27](temp_mermaid_新-详细设计说明书_5356/diagram_27.png) +![图表 29](temp_mermaid_新-详细设计说明书_43770/diagram_29.png) **接口参数:** @@ -2725,9 +3429,9 @@ f、**响应参数** **业务流程:** -**图表 28** +**图表 30** -![图表 28](temp_mermaid_新-详细设计说明书_5356/diagram_28.png) +![图表 30](temp_mermaid_新-详细设计说明书_43770/diagram_30.png) **接口参数:** @@ -2764,9 +3468,9 @@ f、**响应参数** **业务流程:** -**图表 29** +**图表 31** -![图表 29](temp_mermaid_新-详细设计说明书_5356/diagram_29.png) +![图表 31](temp_mermaid_新-详细设计说明书_43770/diagram_31.png) ## 物联网接口 @@ -2786,9 +3490,9 @@ f、**响应参数** **业务流程:** -**图表 30** +**图表 32** -![图表 30](temp_mermaid_新-详细设计说明书_5356/diagram_30.png) +![图表 32](temp_mermaid_新-详细设计说明书_43770/diagram_32.png) ## 政务系统接口 @@ -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权限控制模型 - 多租户数据隔离