diff --git a/output/.$08_planb_network.drawio.bkp b/output/.$08_planb_network.drawio.bkp
new file mode 100644
index 0000000..dcffa3c
--- /dev/null
+++ b/output/.$08_planb_network.drawio.bkp
@@ -0,0 +1,453 @@
+
2024年12月19日
+| 文件状态: | +文档密级: | +公开 | +
|---|---|---|
| 【 】草稿 | ++ | + |
| 【 】修改稿 | ++ | + |
| 【√】正式发布 | ++ | + |
| + | 当前版本: | +V1.6 | +
| + | 作者: | +唐伟杰 | +
| + | 完成日期: | +2025-08-01 | +
| 日期 | +版本号 | +作者 | +备注 | +
|---|---|---|---|
| 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相关数据表设计,包括客户端信息表、访问令牌表、刷新令牌表、授权码表。 | +
| 2026-03-12 | +V1.6 | +唐伟杰 | +补充旧系统历史台账迁移与只读查询口径,明确在线主模型承接范围、历史最小保留集与迁移验收对账基线。 | +
# 前言 +本文档详细描述了福建水务营收系统的数据库设计,包括总体架构、E-R图、数据表结构、字段定义和索引策略。旨在为开发和运维人员提供清晰的数据结构参考。
+ +_
+分隔。业务表以 biz_ 开头,系统管理表以 system_
+开头。_
+分隔(如
+user_id),与当前数据库主文档及主表命名口径保持一致。id,类型为
+bigint,自增。id,
+creator, create_time, updater,
+update_time, deleted, tenant_id
+字段。utf8mb4 字符集。 # 数据库设计说明
+数据库设计遵循第三范式(3NF),并采用基于tenant_id字段隔离的SaaS多租户架构。
++说明:本次重点对齐
+SYS-002+相关数据库口径。SYS-002的核心表命名已统一收敛为 +biz_*与 +bk_*,并已清理旧稿中分散的历史表模型。对于旧数据字典中仍未在 +backend +识别到独立实体表的对象,本文以“业务对象/处理场景”描述,不强行拆分为真实表。
| 模块 | +表前缀 | +主要功能 | +当前口径 | +
|---|---|---|---|
| 系统公共 | +system_ |
+用户、角色、权限、部门、租户、字典、日志、OAuth2 +等统一平台能力 | +保持现稿 | +
| SYS-002 基础配置与价格体系 | +biz_community,
+biz_company_*, biz_meter_*,
+biz_price_*, biz_template_* |
+小区、水司账户、水表参数、价格体系、调价快照、优惠方案、模板关系等 | +已按真实表对齐 | +
| SYS-002 客户主数据与账户关系 | +biz_cust*,
+biz_account |
+客户主档、联系人、客户组、水表绑定、开票信息、托收/代扣关系、编号规则等 | +已按真实表对齐 | +
| SYS-002 抄表开账与账单 | +biz_meter,
+biz_meter_book, biz_meter_read,
+biz_reading_*, biz_charge* |
+抄表册本、抄表状态、读数留痕、开账主单与明细 | +已按真实表对齐 | +
| SYS-002 收费票据与操作留痕 | +biz_collection,
+biz_withholding, biz_invoice*,
+biz_operat_log* |
+收费、托收/代扣、发票、操作留痕与审计支撑 | +已按真实表对齐 | +
| SYS-002 业务办理与资料 | +biz_process*,
+biz_business_*, biz_content* |
+业务办理流程、流转、装表资料、附件与扩展数据 | +已按真实表对齐 | +
| SYS-002 银行代收与结算 | +bk_* |
+渠道路由、交易回调、代扣签约、批次、对账、结算 | +已按真实表对齐 | +
| SYS-003 手机抄表 APP | +mobile_* |
+移动作业缓存、登录日志、离线任务与现场上报 | +保持现稿 | +
| METER/INST 专题表 | +biz_meter_*、installation_*、历史
+water_meter_* |
+表务专题与报装签章专题扩展 | +已纳入专题边界(见
+METER/INST 专题表边界) |
+
(基于 sw_system_publcli.sql)
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +部门id | +
| name | +varchar(30) | +Y | ++ | 部门名称 | +
| parent_id | +int8 | +N | +0 | +父部门id | +
| sort | +int4 | +N | +0 | +显示顺序 | +
| leader_user_id | +int8 | +Y | ++ | 负责人 | +
| phone | +varchar(11) | +Y | ++ | 联系电话 | +
| varchar(50) | +Y | ++ | 邮箱 | +|
| type | +varchar(10) | +Y | ++ | 部门类型 | +
| code | +varchar(50) | +Y | ++ | 部门代码 | +
| status | +int2 | +N | ++ | 部门状态(0正常 1停用) | +
| 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 | +租户编号 | +
| longitude | +numeric(10,7) | +Y | ++ | 经度 | +
| latitude | +numeric(10,7) | +Y | ++ | 纬度 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 字典编码 | +
| sort | +int4 | +N | +0 | +字典排序 | +
| label | +varchar(100) | +Y | ++ | 字典标签 | +
| value | +varchar(100) | +Y | ++ | 字典键值 | +
| dict_type | +varchar(100) | +Y | ++ | 字典类型 | +
| status | +int2 | +N | +0 | +状态(0正常 1停用) | +
| color_type | +varchar(100) | +Y | ++ | 颜色类型 | +
| css_class | +varchar(100) | +Y | ++ | css 样式 | +
| remark | +varchar(500) | +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 | +是否删除 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 字典主键 | +
| name | +varchar(100) | +Y | ++ | 字典名称 | +
| type | +varchar(100) | +Y | ++ | 字典类型 | +
| status | +int2 | +N | +0 | +状态(0正常 1停用) | +
| remark | +varchar(500) | +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 | +是否删除 | +
| deleted_time | +timestamp(6) | +Y | ++ | 删除时间 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 访问ID | +
| log_type | +int8 | +N | ++ | 日志类型 | +
| trace_id | +varchar(64) | +Y | ++ | 链路追踪编号 | +
| user_id | +int8 | +N | +0 | +用户编号 | +
| user_type | +int2 | +N | +0 | +用户类型 | +
| username | +varchar(50) | +Y | ++ | 用户账号 | +
| result | +int2 | +N | ++ | 登陆结果 | +
| user_ip | +varchar(50) | +N | ++ | 用户 IP | +
| user_agent | +varchar(512) | +N | ++ | 浏览器 UA | +
| 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 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 主键 | +
| varchar(255) | +N | ++ | 邮箱 | +|
| username | +varchar(255) | +N | ++ | 用户名 | +
| password | +varchar(255) | +N | ++ | 密码 | +
| host | +varchar(255) | +N | ++ | SMTP 服务器域名 | +
| port | +int4 | +N | ++ | SMTP 服务器端口 | +
| ssl_enable | +bool | +N | +false | +是否开启 SSL | +
| starttls_enable | +bool | +N | +false | +是否开启 STARTTLS | +
| 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 | +是否删除 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 编号 | +
| user_id | +int8 | +Y | ++ | 用户编号 | +
| user_type | +int2 | +Y | ++ | 用户类型 | +
| to_mail | +varchar(255) | +N | ++ | 接收邮箱地址 | +
| account_id | +int8 | +N | ++ | 邮箱账号编号 | +
| from_mail | +varchar(255) | +N | ++ | 发送邮箱地址 | +
| template_id | +int8 | +N | ++ | 模板编号 | +
| template_code | +varchar(63) | +N | ++ | 模板编码 | +
| template_nickname | +varchar(255) | +Y | ++ | 模版发送人名称 | +
| template_title | +varchar(255) | +N | ++ | 邮件标题 | +
| template_content | +varchar(10240) | +N | ++ | 邮件内容 | +
| template_params | +varchar(255) | +N | ++ | 邮件参数 | +
| send_status | +int2 | +N | +0 | +发送状态 | +
| send_time | +timestamp(6) | +Y | ++ | 发送时间 | +
| send_message_id | +varchar(255) | +Y | ++ | 发送返回的消息 ID | +
| send_exception | +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 | +是否删除 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 编号 | +
| name | +varchar(63) | +N | ++ | 模板名称 | +
| code | +varchar(63) | +N | ++ | 模板编码 | +
| account_id | +int8 | +N | ++ | 发送的邮箱账号编号 | +
| nickname | +varchar(255) | +Y | ++ | 发送人名称 | +
| title | +varchar(255) | +N | ++ | 模板标题 | +
| content | +varchar(10240) | +N | ++ | 模板内容 | +
| params | +varchar(255) | +N | ++ | 参数数组 | +
| status | +int2 | +N | ++ | 开启状态 | +
| remark | +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 | +是否删除 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 用户ID | +
| username | +varchar(30) | +N | ++ | 用户账号 | +
| password | +varchar(100) | +N | ++ | 密码 | +
| nickname | +varchar(30) | +N | ++ | 用户昵称 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| dept_id | +int8 | +Y | ++ | 部门ID | +
| post_ids | +varchar(255) | +Y | ++ | 岗位编号数组 | +
| varchar(50) | +Y | ++ | 用户邮箱 | +|
| mobile | +varchar(11) | +Y | ++ | 手机号码 | +
| sex | +int2 | +Y | ++ | 用户性别 | +
| avatar | +varchar(512) | +Y | ++ | 头像地址 | +
| status | +int2 | +N | ++ | 帐号状态(0正常 1停用) | +
| login_ip | +varchar(50) | +Y | ++ | 最后登录IP | +
| login_date | +timestamp(6) | +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 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 角色ID | +
| name | +varchar(30) | +N | ++ | 角色名称 | +
| code | +varchar(100) | +N | ++ | 角色权限字符串 | +
| sort | +int4 | +N | ++ | 显示顺序 | +
| data_scope | +int2 | +N | +1 | +数据范围(1:全部数据权限 2:自定数据权限 +3:本部门数据权限 4:本部门及以下数据权限) | +
| data_scope_dept_ids | +varchar(500) | +N | ++ | 数据范围(指定部门数组) | +
| status | +int2 | +N | ++ | 角色状态(0正常 1停用) | +
| type | +int2 | +N | ++ | 角色类型 | +
| remark | +varchar(500) | +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 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 菜单ID | +
| name | +varchar(50) | +N | ++ | 菜单名称 | +
| permission | +varchar(100) | +N | ++ | 权限标识 | +
| type | +int2 | +N | ++ | 菜单类型 | +
| sort | +int4 | +N | +0 | +显示顺序 | +
| parent_id | +int8 | +N | +0 | +父菜单ID | +
| path | +varchar(200) | +Y | ++ | 路由地址 | +
| icon | +varchar(100) | +Y | ++ | 菜单图标 | +
| component | +varchar(255) | +Y | ++ | 组件路径 | +
| component_name | +varchar(255) | +Y | ++ | 组件名 | +
| status | +int2 | +N | ++ | 菜单状态 | +
| visible | +bool | +N | +true | +是否可见 | +
| keep_alive | +bool | +N | +true | +是否缓存 | +
| always_show | +bool | +N | +true | +是否总是显示 | +
| 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 | +是否删除 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | ++ | 租户编号 | +
| name | +varchar(30) | +N | ++ | 租户名 | +
| contact_user_id | +int8 | +Y | ++ | 联系人的用户编号 | +
| contact_name | +varchar(30) | +N | ++ | 联系人 | +
| contact_mobile | +varchar(500) | +Y | ++ | 联系手机 | +
| status | +int2 | +N | ++ | 租户状态(0正常 1停用) | +
| website | +varchar(256) | +Y | ++ | 绑定域名 | +
| package_id | +int8 | +N | ++ | 租户套餐编号 | +
| expire_time | +timestamp(6) | +N | ++ | 过期时间 | +
| account_count | +int4 | +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 | +是否删除 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +会话ID | +
| user_id | +int8 | +N | ++ | 用户ID | +
| session_id | +varchar(100) | +N | ++ | 会话标识 | +
| token | +varchar(500) | +N | ++ | 访问令牌 | +
| refresh_token | +varchar(500) | +Y | ++ | 刷新令牌 | +
| login_ip | +varchar(50) | +N | ++ | 登录IP | +
| login_location | +varchar(100) | +Y | ++ | 登录地点 | +
| user_agent | +varchar(500) | +Y | ++ | 用户代理 | +
| session_timeout | +int4 | +N | +1800 | +会话超时时间(秒) | +
| last_access_time | +timestamp(6) | +N | +pg_systimestamp() | +最后访问时间 | +
| is_active | +int2 | +N | +1 | +是否活跃:0-否,1-是 | +
| logout_time | +timestamp(6) | +Y | ++ | 登出时间 | +
| create_time | +timestamp(6) | +N | +pg_systimestamp() | +创建时间 | +
| update_time | +timestamp(6) | +N | +pg_systimestamp() | +更新时间 | +
| deleted | +int2 | +N | +0 | +是否删除 | +
| tenant_id | +int8 | +N | +0 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| user_id | +int8 | +N | ++ | 用户ID | +
| role_id | +int8 | +N | ++ | 角色ID | +
| 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 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| role_id | +int8 | +N | ++ | 角色ID | +
| menu_id | +int8 | +N | ++ | 菜单ID | +
| 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.0协议的单点登录功能,系统新增以下OAuth2.0相关数据表:
+| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| 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 | +是否删除 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| 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 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| 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 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| 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 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| 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 | +租户编号 | +
营收系统是核心业务系统,包括客户管理、抄表管理、账务管理、发票管理等核心业务功能。
+| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| name | +varchar(200) | +N | ++ | 小区名称 | +
| code | +varchar(100) | +N | ++ | 小区代码 | +
| address | +varchar(500) | +Y | ++ | 小区地址 | +
| contact_number | +varchar(100) | +Y | ++ | 联系号码 | +
| dept_code | +varchar(50) | +N | ++ | 部门代码,关联系统部门表 | +
| parent_id | +int8 | +Y | ++ | 父级小区id,支持小区层级管理 | +
| ancestor_list | +varchar(1000) | +Y | ++ | 祖级列表,格式:1,2,3表示祖级小区id列表 | +
| sort | +int4 | +N | +0 | +排序 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键ID | +
| obj_id | +int8 | +Y | ++ | 对象ID(用户id/角色id等) | +
| config_type | +int2 | +N | ++ | 配置类型:1-个人配置,2-角色配置 | +
| code | +varchar(100) | +N | ++ | 表格标识/模版号(与菜单或功能标识关联) | +
| column_key | +varchar(100) | +N | ++ | 列字段标识 | +
| column_title | +varchar(100) | +Y | ++ | 自定义列标题 | +
| column_width | +int4 | +Y | ++ | 列宽度 | +
| is_visible | +int2 | +N | +0 | +是否显示:0-显示,1-隐藏 | +
| is_printable | +int2 | +N | +0 | +是否可打印:0-是,1-否 | +
| sort_order | +int4 | +N | +0 | +排序序号 | +
| 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 | +租户编号 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| account_name | +varchar(200) | +N | ++ | 账户名称 | +
| account_address | +varchar(500) | +Y | ++ | 账户地址 | +
| bank_name | +varchar(200) | +N | ++ | 开户行名称 | +
| bank_code | +varchar(100) | +N | ++ | 开户行代码 | +
| bank_account | +varchar(100) | +N | ++ | 开户行账户 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| name | +varchar(100) | +Y | ++ | 费用名称 | +
| code | +varchar(100) | +N | ++ | 费用代码 | +
| penalty_coefficient | +numeric(10,4) | +Y | ++ | 违约金系数,违约金计算系数,默认为0表示不收取违约金 | +
| zero_usage_calculation | +int2 | +N | +0 | +零用量是否计算,0-不计算,1-计算 | +
| sort | +int4 | +N | +0 | +排序 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| dept_code | +varchar(50) | +N | ++ | 部门代码,关联系统部门表 | +
| account_id | +int8 | +N | ++ | 水司账户id,关联水司账户表 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| name | +varchar(100) | +Y | ++ | 口径名称 | +
| code | +varchar(100) | +N | ++ | 口径代码 | +
| value | +numeric(10,2) | +Y | ++ | 口径值(单位:毫米) | +
| check_period | +int4 | +Y | ++ | 强检周期(单位:年) | +
| replace_period | +int4 | +Y | ++ | 定换周期(单位:年) | +
| high_coefficient | +numeric(10,4) | +Y | ++ | 量高系数,抄表量高提醒系数 | +
| low_coefficient | +numeric(10,4) | +Y | ++ | 量低系数,抄表量低提醒系数 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| name | +varchar(100) | +Y | ++ | 厂家名称 | +
| code | +varchar(100) | +N | ++ | 厂家代码 | +
| recharge_type | +varchar(10) | +Y | ++ | 充值类型 | +
| address | +varchar(500) | +Y | ++ | 地址 | +
| contact | +varchar(100) | +Y | ++ | 联系人 | +
| contact_number | +varchar(100) | +Y | ++ | 联系号码 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| maker_code | +varchar(100) | +N | ++ | 厂家代码,关联水表厂家表 | +
| name | +varchar(100) | +Y | ++ | 型号名称 | +
| code | +varchar(100) | +N | ++ | 型号代码 | +
| caliber_range | +varchar(200) | +Y | ++ | 口径范围,如:DN15-DN200 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| name | +varchar(100) | +Y | ++ | 量程名称 | +
| code | +varchar(100) | +N | ++ | 量程代码 | +
| value | +numeric(15,3) | +Y | ++ | 量程值 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| name | +varchar(100) | +Y | ++ | 归属名称 | +
| code | +varchar(100) | +N | ++ | 归属代码 | +
| parent_id | +int8 | +Y | ++ | 父级归属id | +
| ancestor_list | +varchar(1000) | +Y | ++ | 祖级列表,格式:1,2,3表示祖级归属id列表 | +
| sort | +int4 | +N | +0 | +排序 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| adjustment_id | +int8 | +N | ++ | 调整id,关联水价调整表 | +
| before_value | +numeric(15,4) | +Y | ++ | 调整前价格 | +
| after_value | +numeric(15,4) | +Y | ++ | 调整后价格 | +
| adjustment_reason | +varchar(500) | +Y | ++ | 调整原因 | +
| effective_date | +timestamp(6) | +Y | ++ | 生效日期 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| cost_component_code | +varchar(100) | +N | ++ | 费用组成代码,关联费用组成表 | +
| price_category_code | +varchar(100) | +N | ++ | 价格归属代码,关联价格归属表 | +
| price_value | +numeric(15,4) | +Y | ++ | 价格值 | +
| effective_date | +timestamp(6) | +Y | ++ | 生效日期 | +
| expire_date | +timestamp(6) | +Y | ++ | 失效日期 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| price_category_code | +varchar(100) | +N | ++ | 价格归属代码,关联价格归属表 | +
| dept_code | +varchar(50) | +N | ++ | 部门代码,关联系统部门表 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| scheme_id | +int8 | +N | ++ | 折扣方案id,关联价格折扣方案表 | +
| cost_component_code | +varchar(100) | +N | ++ | 费用组成代码,关联费用组成表 | +
| discount_rate | +numeric(10,4) | +Y | ++ | 折扣率,0-1之间的小数 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| name | +varchar(100) | +Y | ++ | 方案名称 | +
| code | +varchar(100) | +N | ++ | 方案代码 | +
| price_category_code | +varchar(100) | +N | ++ | 价格归属代码,关联价格归属表 | +
| discount_type | +varchar(20) | +Y | ++ | 折扣类型,如:百分比、固定金额等 | +
| effective_date | +timestamp(6) | +Y | ++ | 生效日期 | +
| expire_date | +timestamp(6) | +Y | ++ | 失效日期 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| scheme_id | +int8 | +N | ++ | 折扣方案id,关联价格折扣方案表 | +
| tier_level | +int4 | +Y | ++ | 阶梯级别 | +
| start_value | +numeric(15,3) | +Y | ++ | 起始值 | +
| end_value | +numeric(15,3) | +Y | ++ | 结束值 | +
| discount_rate | +numeric(10,4) | +Y | ++ | 折扣率 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| cost_component_code | +varchar(100) | +N | ++ | 费用组成代码,关联费用组成表 | +
| price_category_code | +varchar(100) | +N | ++ | 价格归属代码,关联价格归属表 | +
| tier_level | +int4 | +Y | ++ | 阶梯级别 | +
| start_value | +numeric(15,3) | +Y | ++ | 起始值 | +
| end_value | +numeric(15,3) | +Y | ++ | 结束值 | +
| price_value | +numeric(15,4) | +Y | ++ | 价格值 | +
| effective_date | +timestamp(6) | +Y | ++ | 生效日期 | +
| expire_date | +timestamp(6) | +Y | ++ | 失效日期 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| code | +int4 | +N | ++ | 快照编号/版本号,1->2->3递增 | +
| effective_date | +timestamp(6) | +N | ++ | 生效日期 | +
| expiry_date | +timestamp(6) | +Y | ++ | 失效日期,为空表示长期有效 | +
| adjuster | +varchar(100) | +Y | ++ | 调价人 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| name | +varchar(100) | +Y | ++ | 用水性质名称 | +
| code | +varchar(100) | +N | ++ | 模版代码/简号 | +
| price_category_code | +varchar(100) | +N | ++ | 水价归属代码,关联价格归属表 | +
| adjustment_snap_code | +varchar(100) | +N | ++ | 调价快照code,关联水价调整快照表 | +
| meter_start | +int4 | +Y | ++ | 起开量 | +
| sort | +int4 | +N | +0 | +排序 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| dept_code | +varchar(50) | +N | ++ | 部门代码,关联系统部门表 | +
| template_code | +varchar(100) | +N | ++ | 水价调整模版代码 | +
| adjustment_snap_code | +varchar(100) | +N | ++ | 调价快照code | +
| is_default | +int2 | +N | +0 | +是否默认:0-否,1-是 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| cost_adjustment_id | +int8 | +N | ++ | 水价费用调整id | +
| cost_component_code | +varchar(100) | +N | ++ | 费用组成代码 | +
| tier_level | +int4 | +N | +0 | +阶梯级别,如1、2、3等 | +
| start_volume | +numeric(15,3) | +Y | ++ | 开始水量,单位:立方米 | +
| end_volume | +numeric(15,3) | +Y | ++ | 结束水量,为空表示无上限 | +
| price | +numeric(10,4) | +N | ++ | 价格,单位:元/立方米或元 | +
| volume_coefficient | +numeric(10,4) | +N | +1 | +水量系数,用于特殊计算场景 | +
| sort | +int4 | +N | +0 | +排序 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| scheme_name | +varchar(200) | +N | ++ | 方案名称,如:居民用户优惠方案2024 | +
| scheme_code | +varchar(100) | +N | ++ | 方案代码 | +
| template_code | +varchar(100) | +N | ++ | 水价模版代码 | +
| discount_type | +int4 | +N | ++ | 优惠方式:1-按水量,2-按比例 | +
| effective_date | +date | +N | ++ | 生效日期 | +
| expiry_date | +date | +Y | ++ | 失效日期,为空表示长期有效 | +
| scheme_description | +varchar(1000) | +Y | ++ | 方案描述 | +
| sort | +int4 | +N | +0 | +排序 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| scheme_id | +int8 | +N | ++ | 优惠方案id | +
| tier_level | +int4 | +N | +0 | +阶梯级别,如1、2、3等 | +
| start_volume | +numeric(15,3) | +Y | ++ | 开始水量,单位:立方米 | +
| end_volume | +numeric(15,3) | +Y | ++ | 结束水量,为空表示无上限 | +
| include_in_tier | +int2 | +N | +1 | +是否计入阶梯:0-不计入,1-计入 | +
| sort | +int4 | +N | +0 | +排序 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| tier_id | +int8 | +N | ++ | 优惠阶梯id | +
| cost_component_code | +varchar(100) | +N | ++ | 费用组成代码 | +
| discount_price | +numeric(10,4) | +N | ++ | 优惠价格,单位:元/立方米或元 | +
| sort | +int4 | +N | +0 | +排序 | +
| remark | +varchar(500) | +Y | ++ | 备注 | +
| status | +int2 | +N | +0 | +状态:0-否,1-是 | +
| 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 | +
biz_cust* / biz_account)++说明:以下内容按 +
+sql/lhc_数据库设计.md、docs/guides/BACKEND_TABLE_MAPPING.md+与当前 backend +真实表名进行整编,字段以“数据库专项设计阶段需重点关注的核心字段”为主,不再延续旧稿中的 +customer_*系列表命名。
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
code |
+客户编号 | +
name |
+客户名称 | +
cust_type |
+客户类型 | +
id_type /
+id_no |
+证件类型 / 证件号码 | +
mobile /
+address |
+联系电话 / 地址 | +
dept_code |
+所属营业部门 | +
status |
+客户状态 | +
tenant_id |
+租户编号 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
code |
+账户编号 | +
cust_id |
+客户主档 ID | +
balance |
+账户余额 | +
arrears_amount |
+欠费金额 | +
account_status |
+账户状态 | +
tenant_id |
+租户编号 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
cust_id |
+客户主档 ID | +
name |
+联系人姓名 | +
mobile |
+联系电话 | +
contact_type |
+联系人类型 | +
is_default |
+是否默认联系人 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
code |
+分组编码 | +
name |
+分组名称 | +
parent_id |
+上级分组 | +
status |
+状态 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
cust_id |
+客户主档 ID | +
meter_id |
+水表主档 ID | +
bind_type |
+绑定类型 | +
is_main |
+是否主表 | +
status |
+关系状态 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
cust_id |
+客户主档 ID | +
invoice_title |
+开票抬头 | +
tax_no |
+纳税人识别号 | +
email |
+发票接收邮箱 | +
mobile |
+联系手机号 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
cust_id |
+客户主档 ID | +
app_type |
+应用类型 | +
app_user_id |
+外部应用用户标识 | +
status |
+绑定状态 | +
| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_cust_collection_rel |
+cust_id,
+collection_id, status |
+客户与托收关系 | +
biz_cust_withholding_rel |
+cust_id,
+withholding_id, status |
+客户与代扣关系 | +
| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_cust_water_use_scheme |
+cust_id,
+scheme_code, effective_date |
+客户用水方案 | +
biz_cust_water_scheme_rel |
+cust_id,
+template_code, status |
+客户与价格模板关系 | +
| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_cust_no_rule |
+rule_code,
+prefix, dept_code, status |
+客户编号规则 | +
biz_cust_hub_marks |
+cust_id,
+hub_code, mark_type |
+集抄/枢纽标识 | +
biz_meter* / biz_reading_* /
+biz_price_*)| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
code |
+水表编号 | +
meter_no |
+出厂表号 | +
maker_code /
+model_code |
+厂家 / 型号 | +
caliber_code /
+range_code |
+口径 / 量程 | +
install_address |
+安装地址 | +
meter_status |
+水表状态 | +
tenant_id |
+租户编号 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
code |
+册本编号 | +
name |
+册本名称 | +
dept_code |
+所属部门 | +
reader_user |
+抄表员 | +
reading_cycle |
+抄表周期 | +
status |
+册本状态 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
book_id |
+册本 ID | +
cust_id |
+客户 ID | +
meter_id |
+水表 ID | +
read_period |
+抄表期间 | +
read_status |
+抄表状态 | +
read_type |
+抄表方式 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
meter_read_id |
+抄表任务 ID | +
last_reading |
+上次读数 | +
current_reading |
+本次读数 | +
water_usage |
+用水量 | +
read_time |
+抄见时间 | +
photo_url |
+抄表照片 | +
| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_last_reading |
+meter_id,
+last_reading, last_read_time |
+水表最近有效读数 | +
biz_reading_logs |
+meter_id,
+operate_type, operator,
+operate_time |
+抄表处理留痕 | +
| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_price_category |
+code, name,
+parent_id |
+水价归属 | +
biz_price_template |
+code,
+price_category_code, adjustment_snap_code |
+水价模板 | +
biz_price_adjustment_snap |
+code,
+effective_date, expiry_date |
+调价快照 | +
biz_price_cost_adjustment |
+price_category_code,
+cost_component_code, price_value |
+费用调价 | +
biz_price_tier_adjustment |
+cost_component_code,
+tier_level, start_volume,
+end_volume, price |
+阶梯价格 | +
biz_cost_component |
+code, name,
+penalty_coefficient |
+费用组成 | +
biz_water_use_scheme |
+code, name,
+status |
+用水方案 | +
biz_water_use_scheme_tier |
+scheme_code,
+tier_level, start_volume,
+end_volume |
+用水阶梯 | +
biz_exceed_water_use_scheme |
+scheme_code,
+exceed_type, price_rule |
+超计划规则 | +
biz_charge* / biz_collection /
+biz_withholding / biz_invoice*)| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
code |
+账单编号 | +
cust_id |
+客户 ID | +
record_id |
+抄表记录或开账来源 ID | +
bill_period |
+账单期间 | +
total_amount |
+账单总金额 | +
charge_status |
+收费状态 | +
due_date |
+应缴日期 | +
| 字段名 | +说明 | +
|---|---|
id |
+主键 | +
charge_id |
+营业账主表 ID | +
cost_component_code |
+费用组成代码 | +
usage_amount |
+用量 | +
unit_price |
+单价 | +
detail_amount |
+明细金额 | +
| 对象 | +正式口径 | +承接说明 | +
|---|---|---|
biz_charge |
+账单生成主结果对象 | +统一表达客户、账期、抄表/开账来源、账单总金额、收费状态与应缴日期,不单独发明新的在线账单主模型 | +
biz_charge_detail |
+账单生成明细对象 | +统一表达费用组成、用量、单价、明细金额,与主表通过
+charge_id 建立主明细关系 |
+
biz_price_category、biz_price_template、biz_price_adjustment_snap、biz_price_tier_adjustment |
+计费规则来源对象 | +用于表达价格归属、基础价格、调价快照与阶梯规则来源,支撑账单金额计算与追溯 | +
biz_cost_component |
+费用组成定义对象 | +用于表达水费、污水费、附加费、罚款类费用等明细分类,不将费用组成直接硬编码到主表 | +
biz_water_use_scheme、biz_water_use_scheme_tier、biz_exceed_water_use_scheme |
+计划用水与超计划规则对象 | +用于承接计划用水、超计划与阶梯类扩展规则,不额外发明平行的特殊开账规则表 | +
| 历史开账记录、特殊开账 | +历史只读 / 同模型承接对象 | +统一纳入
+biz_charge、biz_charge_detail
+与操作留痕承接,通过来源类型、业务类型、依据说明区分,不单设“特殊开账表” |
+
++REV-002 承接口径:账单生成结果统一由 +
+biz_charge、biz_charge_detail+承接,关键规则来源继续由 +biz_price_*、biz_cost_component+与计划用水相关对象提供;当价格模板、费用组成或规则关系不完整时,应按“阻断生成”口径处理。当前 backend +证据:
+ChargeServiceImpl.generateSingleChargeWithCache+成功路径已执行 +chargeMapper.insert(charge)、chargeDetailService.insertChargeDetail(detail)+与 +updateReadingDataCheckState(readingDataId, 1),说明现有实现已能把按 +readingDataIds复核/开账的结果落入 +biz_charge、biz_charge_detail。当前承接缺口:接口层返回仍为成功条数字符串,失败阻断主要依赖日志与布尔值,且仅支持 +
+ACTUAL_USAGE结算方式;biz_charge/ +biz_charge_detail+的主明细结果、失败对象范围和结构化原因尚未提升为正式 +IF-REV-005契约返回。REV-004 承接口径:水量调整、金额调整、退款、冲正、坏账申请统一以 +
+biz_charge、biz_charge_detail+作为账单主明细承接对象;当前数据库主文档不新增独立账务细表来承接一期场景。
| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_collection |
+code, cust_id,
+charge_id, collection_status |
+托收主表 | +
biz_withholding |
+code, cust_id,
+charge_id, withholding_status |
+代扣主表 | +
| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_invoice |
+code, cust_id,
+charge_id, invoice_status,
+invoice_amount |
+发票主表,统一承接申请单号、账单关联、受理号、开票结果与电子票地址等核心状态 | +
biz_invoice_taxrate |
+tax_code,
+tax_name, tax_rate, status |
+税率基础配置 | +
| 对象 | +已有字段 | +待补字段 | +仅快照/历史只读字段 | +
|---|---|---|---|
biz_invoice
+发票申请/结果主对象 |
+code、cust_id、charge_id、invoice_status、invoice_amount |
+application_no、sys_request_no、invoice_type、invoice_title、tax_no、email、mobile、source_channel、fail_reason、invoice_code、invoice_number、file_url、last_try_time、next_try_time、try_count、push_status、charge_ids_snapshot、charge_bind_status、作废原因/备注、红冲原因/备注、原票/红票关联标识、作废/红冲申请来源、补偿查询/结果回写上下文 |
+旧开票批次号、旧配置版本号、旧平台扩展回执 | +
biz_cust_invoice
+客户开票信息 |
+cust_id、invoice_title、tax_no、email、mobile |
+企业/个人抬头类型、默认推送方式等扩展属性按后续实现补齐 | +旧抬头版本、历史修改快照 | +
biz_invoice_taxrate
+税率配置 |
+tax_code、tax_name、tax_rate、status |
+税率生效区间、适用票种范围等扩展控制字段 | +旧税率版本快照 | +
| 账单-发票关系快照 | +当前主模型通过 biz_invoice 与
+biz_charge* 关联承接 |
+charge_ids_snapshot、账单集合来源、客户侧身份匹配结果、操作留痕标识 |
+旧营业账开票关系表、旧发票明细表 | +
| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_operat_log |
+biz_type,
+biz_id, operate_user,
+operate_time |
+业务操作主日志 | +
biz_operat_log_detail |
+log_id,
+field_name, before_value,
+after_value |
+字段级变更留痕 | +
++REV-004 留痕口径:
+biz_operat_log*+统一承接账务处理的一期留痕,至少覆盖处理类型、目标账单、原交易引用、处理前后差异、原因说明、附件依据与操作人。边界说明:旧数据字典中的“跨周期水量、特账、红冲、已销调整、呆坏账、实时收费日志”等对象,在当前 +backend +范围内未全部识别到独立实体表,数据库专项中统一按业务处理场景描述,不误写为已明确落地的真实表。
+
| 旧对象/旧菜单 | +当前主口径 | +承接方式 | +数据策略 | +
|---|---|---|---|
| 开账记录、特殊开账 | +biz_charge、biz_charge_detail、biz_operat_log* |
+统一纳入营业账主表与明细表,特殊开账按来源类型、业务类型、依据说明留痕,不单设平行“特殊开账表” | +在线保留 | +
| 柜台收费、实时收费、代收代扣 | +biz_collection、biz_withholding、bk_transaction*、bk_withholding_* |
+统一纳入收费主模型与渠道交易模型,柜台班结/实时收费日志按交易结果和操作留痕归并 | +在线保留 | +
| 发票申请、开票结果、票据税率 | +biz_invoice、biz_invoice_taxrate、biz_cust_invoice |
+统一纳入发票主表、税率表和客户开票信息,不为旧“营业账开票表”机械复制新在线表 | +在线保留 | +
| 微网厅业务字段、页面配置、微信参数 | +biz_business_types、biz_business_datas、biz_page_settings*、biz_parameter_settings、sys_wechat_app_settings |
+统一归并为业务类型、页面配置和渠道参数模型 | +在线保留 | +
| 办理附件、电子档案 | +biz_content、biz_content_attach |
+当前新增与迁移后新增资料统一按资料主表与附件表承接 | +在线保留 | +
| 历史对象 | +当前正式口径 | +保留策略 | +查询要求 | +
|---|---|---|---|
| 红冲记录、红冲原因、红冲前后账务快照 | +账单状态 + 账务处理场景 + 操作留痕 | +保留历史只读,不强制拆为新主库独立实体表 | +至少支持原单号、红冲单号、金额、原因、经办人、时间查询 | +
| 预存退款、已销调整、价差调整、分账调整、违约金减免、呆坏账明细 | +REV-004 账务处理业务场景 |
+旧细粒度台账以历史只读方式保留;新发生业务由流程与日志承接 | +至少支持汇总、明细、状态、审批结果和关联账单查询 | +
| 柜台结账、打印记录、补打记录 | +收费结果 + 打印/操作留痕 | +旧查询菜单作为历史只读能力保留,不单独建设新结账台账表 | +至少支持班次、营业所、柜员、打印类型、结账状态查询 | +
| 发票明细、营业账开票关系、开票配置快照 | +发票主模型 + 历史关系快照 | +旧细表和配置快照按历史只读保留;新在线模型只保留开票必需主数据 | +至少支持发票号、账单号、开票批次、配置版本和结果状态查询 | +
| 催缴记录、停水记录、预存短信记录 | +催缴/停复水/消息联动业务场景 | +旧记录菜单按历史只读保留,与
+IF-REV-013
+的任务结果、通知链路和工单处置引用分层承接,不新增同名在线主表 |
+至少支持客户、账期、催缴方式、执行结果、发送对象、发送时间、关联账单、处置引用查询 | +
| 水表检定、领用、出库、退库、报废单据 | +METER-003 生命周期场景 |
+当前在线主表承接水表状态,旧单据与检定证书按历史只读保留 | +至少支持表号、仓库、单据类型、检定结论、证书编号查询 | +
| 对账主题 | +最低核对维度 | +主口径来源 | +验收要求 | +
|---|---|---|---|
| 开账记录 | +客户数、账单数、账期、应收金额 | +biz_charge、biz_charge_detail
++ 历史账单来源 |
+支持按账期、营业所、客户类型汇总比对 | +
| 缴费记录 | +收费笔数、实收金额、渠道、核销状态 | +biz_collection、bk_transaction* |
+支持按渠道、日期、营业所汇总比对 | +
| 发票记录 | +开票笔数、金额、状态、票据类型 | +biz_invoice* +
+历史开票关系 |
+支持按发票状态、开票日期比对 | +
| 红冲与账务调整 | +调整笔数、调整金额、处理结果 | +账务处理结果 + 历史台账 | +支持汇总与单据级差异定位 | +
| 催缴与停复水 | +通知笔数、执行结果、停复水状态 | +IF-REV-013 任务结果 +
+历史记录 |
+支持按账期、客户、执行状态、处置引用比对 | +
| 电子档案 | +附件数、附件类型、关联业务单数 | +biz_content_attach +
+历史档案目录 |
+支持按业务类型、上传时间、来源系统比对 | +
biz_*、bk_* 在线主模型。REV-006 的正式结果状态按
+PENDING、SUCCESS、FAIL、MANUAL_VERIFIED
+四态统一,数据库设计仅约束查询与追溯口径,不反推为已存在独立催缴结果主表。biz_process* / biz_business_* /
+biz_content*)| 表名 | +关键字段 | +说明 | +
|---|---|---|
biz_process |
+code,
+biz_type_code, cust_id,
+process_status |
+业务办理流程主表 | +
biz_process_transfer |
+process_id,
+from_user, to_user,
+transfer_time |
+流转/转办记录 | +
biz_process_cust_contact |
+process_id,
+contact_name, mobile |
+办理过程联系人信息 | +
biz_process_meter_install |
+process_id,
+meter_id, install_addr |
+装表安装信息 | +
biz_process_invoice_modifys |
+process_id,
+invoice_id, modify_type |
+发票变更记录 | +
biz_business_types |
+code, name,
+status |
+业务类型定义 | +
biz_business_datas |
+biz_id,
+data_key, data_value |
+业务扩展数据 | +
biz_content |
+biz_id,
+content_type, content_title |
+办理资料主表 | +
biz_content_attach |
+content_id,
+file_name, file_url |
+办理附件表 | +
bk_*)| 表名 | +关键字段 | +说明 | +
|---|---|---|
bk_payment_channel |
+channel_code,
+channel_name, channel_type,
+status |
+支付渠道主表 | +
bk_channel_api_config |
+channel_code,
+api_type, endpoint,
+crypto_type |
+渠道接口配置 | +
bk_channel_route_rule |
+channel_code,
+route_type, priority, status |
+渠道路由规则 | +
bk_channel_statistics |
+channel_code,
+stat_date, success_count,
+success_amount |
+渠道统计 | +
bk_transaction |
+trade_no,
+biz_order_no, channel_code,
+trade_amount, trade_status |
+渠道交易流水 | +
bk_transaction_callback |
+trade_no,
+callback_time, callback_status,
+raw_message |
+回调留痕 | +
bk_transaction_exception |
+trade_no,
+exception_code, exception_desc,
+handle_status |
+异常处理 | +
++REV-004 原交易校验口径:退款、冲正场景统一依赖 +
+bk_transaction*+校验原交易存在性、状态、回调结果与异常处理状态,数据库专项不再为一期新增平行退款交易表。 +|bk_withholding_agreement|agreement_no, +cust_id,channel_code, +sign_status| 代扣签约 | | +bk_withholding_batch|batch_no, +channel_code,batch_date, +batch_status| 代扣批次 | | +bk_withholding_item|batch_id, +cust_id,charge_id,item_status| +代扣明细 | |bk_reconcile_batch|batch_no, +channel_code,bill_date, +reconcile_status| 对账批次 | | +bk_reconcile_diff|batch_id, +trade_no,diff_type,diff_amount+| 对账差异 | |bk_settlement_batch|batch_no, +channel_code,settlement_date, +settlement_status| 结算批次 |
++当前实现边界说明:
+bk_*+表族已形成较完整的对象承接口径,且签约、解约、交易流水与后台资源管理具备明确实现证据;但送盘、回盘、对账、结算等业务编排仍缺少完整闭环与统一迁移证据,数据库专项不得据此倒推出“银行协同已全部落地”。
本章节用于收敛 SYS-002
+主表之外、但在详细设计与附录中反复出现的表务与报装签章专题表口径,避免“主文档未覆盖、分文档各写一套”。
| 表名 | +角色定位 | +说明 | +
|---|---|---|
biz_meter |
+水表主档 | +水表基础信息、状态、型号、口径、量程等主数据入口 | +
biz_meter_read /
+biz_reading_data / biz_last_reading |
+抄表与读数 | +支撑抄表任务、读数提交、最新读数维护 | +
biz_meter_log |
+表务留痕 | +记录换表、移表、校表、维修等过程动作 | +
biz_meter_in_out /
+biz_meter_in_out_rel |
+库存与出入库 | +支撑领用、退库、报废及批次追踪 | +
biz_process /
+biz_process_transfer |
+工单协同 | +与业务办理流程共享工单流转和处理状态 | +
| 历史命名(存量) | +当前主口径(建议对齐) | +说明 | +
|---|---|---|
water_meter_workorder |
+biz_meter_log +
+biz_process* |
+旧稿“工单”能力在主文档统一并入表务日志与流程流转模型 | +
water_meter_stock /
+water_meter_inventory |
+biz_meter_in_out +
+biz_meter_in_out_rel |
+旧稿库存/出入库能力按
+biz_meter_* 专题表收敛 |
+
water_meter_archive |
+biz_meter +
+biz_last_reading |
+旧稿档案口径统一并入水表主档与读数状态模型 | +
++说明:
+water_meter_*+仅用于历史资料追溯,不作为当前正式交付主口径。
| 表名 | +角色定位 | +说明 | +
|---|---|---|
biz_process /
+biz_process_transfer |
+报装流程主线 | +报装申请受理、节点流转、办理状态 | +
biz_process_meter_install |
+装表落地信息 | +记录安装位置、装表结果等现场信息 | +
biz_business_datas |
+业务扩展数据 | +踏勘、方案、审批扩展字段 | +
biz_content /
+biz_content_attach |
+资料与附件 | +报装材料、验收资料、影像与附件管理 | +
| 表名 | +角色定位 | +说明 | +
|---|---|---|
installation_contract |
+报装合同主表 | +合同主数据、合同状态、文件地址 | +
installation_signature |
+签章记录表 | +签署方、签章任务、签署状态与时间 | +
installation_evidence |
+电子存证表 | +存证凭证、哈希、存证状态 | +
installation_ca_config |
+CA 配置表 | +泛微 CA 对接配置参数 | +
installation_signature_template |
+签章模板表 | +签章模板与签署位置配置 | +
installation_application |
+报装申请映射 | +与报装申请主线对象的关联映射(设计态) | +
++边界说明:
+installation_*+来源于报装签章专项设计与附录,当前在数据库主文档按“专题扩展”纳管。若实施库落地结构与本表不一致,以实施库与主详设联合评审结果为准。
客户服务模块本身不再单独维护旧稿中分散的平行表模型,而是以
+SYS-002
+主数据和交易表为主,按场景复用客户、账单、支付、发票与业务办理数据。
| 场景 | +复用表 | +说明 | +
|---|---|---|
| 账户绑定管理 | +biz_cust,
+biz_cust_app_binds, biz_account |
+支撑账户绑定、默认客户切换与账号关联 | +
| 信息查询服务 | +biz_cust,
+biz_cust_meter, biz_meter,
+biz_charge, biz_charge_detail |
+支撑客户档案、表计信息、账单与费用查询 | +
| 在线缴费服务 | +biz_charge,
+biz_collection, biz_withholding,
+bk_transaction, bk_transaction_callback |
+支撑缴费下单、支付回写与异步回调 | +
| 电子发票服务 | +biz_invoice,
+biz_invoice_taxrate, biz_cust_invoice |
+支撑发票申请、税率匹配与抬头信息 | +
| 业务办理服务 | +biz_process,
+biz_process_transfer, biz_business_datas,
+biz_content_attach |
+支撑业务申请、进度查询与附件资料 | +
++说明:客户服务模块与 +
+SYS-008、SYS-009、SYS-010+的协同在数据库层主要表现为复用SYS-002+主业务表并接收外部服务回写结果,不再单列一套平行客户服务数据库模型。
手机抄表APP为抄表员和外勤人员提供移动作业工具,支持离线操作,提升现场工作效率。
+| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| user_id | +int8 | +N | ++ | 用户ID | +
| device_id | +varchar(100) | +N | ++ | 设备ID | +
| device_type | +varchar(20) | +N | ++ | 设备类型:Android、iOS | +
| app_version | +varchar(20) | +Y | ++ | 应用版本 | +
| login_type | +varchar(20) | +N | ++ | 登录类型:在线、离线 | +
| session_token | +varchar(500) | +N | ++ | 会话令牌 | +
| login_time | +timestamp(6) | +N | +pg_systimestamp() | +登录时间 | +
| last_active_time | +timestamp(6) | +Y | ++ | 最后活跃时间 | +
| logout_time | +timestamp(6) | +Y | ++ | 登出时间 | +
| session_duration | +int4 | +Y | +0 | +会话时长(分钟) | +
| login_ip | +varchar(50) | +Y | ++ | 登录IP | +
| login_location | +varchar(100) | +Y | ++ | 登录位置 | +
| network_type | +varchar(20) | +Y | ++ | 网络类型:WiFi、4G、5G | +
| session_status | +int2 | +N | +1 | +会话状态:0-已结束,1-活跃 | +
| sync_status | +int2 | +N | +0 | +同步状态:0-未同步,1-已同步 | +
| last_sync_time | +timestamp(6) | +Y | ++ | 最后同步时间 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| user_id | +int8 | +N | ++ | 用户ID | +
| device_id | +varchar(100) | +N | ++ | 设备ID | +
| cache_key | +varchar(200) | +N | ++ | 缓存键 | +
| cache_value | +text | +Y | ++ | 缓存值 | +
| cache_type | +varchar(20) | +N | ++ | 缓存类型:用户信息、权限、配置、数据 | +
| cache_size | +int4 | +Y | +0 | +缓存大小(字节) | +
| expire_time | +timestamp(6) | +Y | ++ | 过期时间 | +
| access_count | +int4 | +Y | +0 | +访问次数 | +
| last_access_time | +timestamp(6) | +Y | ++ | 最后访问时间 | +
| cache_status | +int2 | +N | +1 | +缓存状态:0-已过期,1-有效 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| user_id | +int8 | +N | ++ | 用户ID | +
| username | +varchar(50) | +N | ++ | 用户名 | +
| device_id | +varchar(100) | +N | ++ | 设备ID | +
| device_type | +varchar(20) | +N | ++ | 设备类型:Android、iOS | +
| device_model | +varchar(100) | +Y | ++ | 设备型号 | +
| app_version | +varchar(20) | +Y | ++ | 应用版本 | +
| login_type | +varchar(20) | +N | ++ | 登录类型:在线、离线 | +
| login_time | +timestamp(6) | +N | +pg_systimestamp() | +登录时间 | +
| login_result | +int2 | +N | ++ | 登录结果:0-成功,1-失败 | +
| login_ip | +varchar(50) | +Y | ++ | 登录IP | +
| login_location | +varchar(100) | +Y | ++ | 登录位置 | +
| network_type | +varchar(20) | +Y | ++ | 网络类型:WiFi、4G、5G | +
| failure_reason | +varchar(200) | +Y | ++ | 失败原因 | +
| user_agent | +varchar(500) | +Y | ++ | 用户代理 | +
| screen_resolution | +varchar(20) | +Y | ++ | 屏幕分辨率 | +
| operating_system | +varchar(50) | +Y | ++ | 操作系统 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| task_no | +varchar(32) | +N | ++ | 任务编号 | +
| book_id | +int8 | +N | ++ | 册本ID | +
| reader_id | +int8 | +N | ++ | 抄表员ID | +
| task_date | +date | +N | ++ | 任务日期 | +
| total_meters | +int4 | +Y | +0 | +总表数 | +
| completed_meters | +int4 | +Y | +0 | +已完成表数 | +
| task_status | +int2 | +N | +0 | +任务状态:0-待开始,1-进行中,2-已完成 | +
| download_time | +timestamp(6) | +Y | ++ | 下载时间 | +
| upload_time | +timestamp(6) | +Y | ++ | 上传时间 | +
| sync_status | +int2 | +N | +0 | +同步状态:0-未同步,1-已同步 | +
| completion_rate | +numeric(5,2) | +Y | +0 | +完成率 | +
| start_time | +timestamp(6) | +Y | ++ | 开始时间 | +
| end_time | +timestamp(6) | +Y | ++ | 结束时间 | +
| work_duration | +int4 | +Y | +0 | +工作时长(分钟) | +
| exception_count | +int4 | +Y | +0 | +异常数量 | +
| photo_count | +int4 | +Y | +0 | +照片数量 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| task_id | +int8 | +N | ++ | 任务ID | +
| customer_id | +int8 | +N | ++ | 客户ID | +
| meter_id | +int8 | +N | ++ | 水表ID | +
| reading_value | +numeric(15,3) | +Y | +0 | +抄表读数 | +
| reading_time | +timestamp(6) | +N | +pg_systimestamp() | +抄表时间 | +
| reading_type | +varchar(20) | +N | ++ | 抄表类型:正常、异常、估读 | +
| exception_code | +varchar(10) | +Y | ++ | 异常代码 | +
| exception_description | +varchar(500) | +Y | ++ | 异常描述 | +
| photo_path | +varchar(500) | +Y | ++ | 照片路径 | +
| gps_longitude | +numeric(10,6) | +Y | ++ | GPS经度 | +
| gps_latitude | +numeric(10,6) | +Y | ++ | GPS纬度 | +
| location_accuracy | +numeric(8,2) | +Y | ++ | 位置精度 | +
| reading_method | +varchar(20) | +Y | ++ | 抄表方式:手工、扫码、拍照识别 | +
| sync_status | +int2 | +N | +0 | +同步状态:0-未同步,1-已同步 | +
| sync_time | +timestamp(6) | +Y | ++ | 同步时间 | +
| network_type | +varchar(20) | +Y | ++ | 网络类型:WiFi、4G、5G、离线 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| task_id | +int8 | +N | ++ | 任务ID | +
| user_id | +int8 | +N | ++ | 用户ID | +
| progress_time | +timestamp(6) | +N | +pg_systimestamp() | +进度时间 | +
| completed_count | +int4 | +Y | +0 | +已完成数量 | +
| total_count | +int4 | +Y | +0 | +总数量 | +
| completion_rate | +numeric(5,2) | +Y | +0 | +完成率 | +
| current_location | +varchar(200) | +Y | ++ | 当前位置 | +
| working_status | +varchar(20) | +Y | ++ | 工作状态:工作中、休息中、结束 | +
| progress_description | +varchar(500) | +Y | ++ | 进度描述 | +
| device_id | +varchar(100) | +Y | ++ | 设备ID | +
| battery_level | +int4 | +Y | +0 | +电池电量 | +
| network_status | +varchar(20) | +Y | ++ | 网络状态:在线、离线 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| user_id | +int8 | +N | ++ | 用户ID | +
| device_id | +varchar(100) | +N | ++ | 设备ID | +
| data_type | +varchar(20) | +N | ++ | 数据类型:抄表、收费、工单 | +
| data_key | +varchar(200) | +N | ++ | 数据键 | +
| data_value | +text | +Y | ++ | 数据值 | +
| data_size | +int4 | +Y | +0 | +数据大小(字节) | +
| cache_time | +timestamp(6) | +N | +pg_systimestamp() | +缓存时间 | +
| sync_status | +int2 | +N | +0 | +同步状态:0-未同步,1-已同步,2-同步失败 | +
| sync_time | +timestamp(6) | +Y | ++ | 同步时间 | +
| sync_error | +varchar(500) | +Y | ++ | 同步错误 | +
| retry_count | +int4 | +Y | +0 | +重试次数 | +
| priority | +int4 | +Y | +0 | +优先级 | +
| expire_time | +timestamp(6) | +Y | ++ | 过期时间 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| report_no | +varchar(32) | +N | ++ | 上报编号 | +
| reporter_id | +int8 | +N | ++ | 上报人ID | +
| problem_type | +varchar(20) | +N | ++ | 问题类型:水表故障、管道漏水、水质问题 | +
| problem_description | +text | +N | ++ | 问题描述 | +
| problem_location | +varchar(200) | +Y | ++ | 问题位置 | +
| gps_longitude | +numeric(10,6) | +Y | ++ | GPS经度 | +
| gps_latitude | +numeric(10,6) | +Y | ++ | GPS纬度 | +
| urgency_level | +varchar(20) | +N | ++ | 紧急程度:普通、紧急、特急 | +
| report_time | +timestamp(6) | +N | +pg_systimestamp() | +上报时间 | +
| problem_photos | +text | +Y | ++ | 问题照片 | +
| problem_status | +int2 | +N | +0 | +问题状态:0-待处理,1-处理中,2-已处理 | +
| handler | +varchar(100) | +Y | ++ | 处理人 | +
| handle_time | +timestamp(6) | +Y | ++ | 处理时间 | +
| handle_result | +varchar(500) | +Y | ++ | 处理结果 | +
| customer_id | +int8 | +Y | ++ | 客户ID | +
| meter_id | +int8 | +Y | ++ | 水表ID | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +int8 | +N | +nextval() | +主键 | +
| work_order_no | +varchar(32) | +N | ++ | 工单编号 | +
| problem_report_id | +int8 | +Y | ++ | 问题上报ID | +
| work_order_type | +varchar(20) | +N | ++ | 工单类型:维修、更换、检查 | +
| assigned_user | +varchar(100) | +Y | ++ | 指派人员 | +
| assignment_time | +timestamp(6) | +Y | ++ | 指派时间 | +
| work_description | +text | +Y | ++ | 工作描述 | +
| work_location | +varchar(200) | +Y | ++ | 工作位置 | +
| scheduled_time | +timestamp(6) | +Y | ++ | 预约时间 | +
| start_time | +timestamp(6) | +Y | ++ | 开始时间 | +
| end_time | +timestamp(6) | +Y | ++ | 结束时间 | +
| work_duration | +int4 | +Y | +0 | +工作时长(分钟) | +
| work_status | +int2 | +N | +0 | +工单状态:0-待处理,1-处理中,2-已完成 | +
| work_result | +varchar(500) | +Y | ++ | 工作结果 | +
| completion_photos | +text | +Y | ++ | 完成照片 | +
| customer_signature | +varchar(500) | +Y | ++ | 客户签名 | +
| satisfaction_rating | +int2 | +Y | ++ | 满意度评分:1-5分 | +
| device_id | +varchar(100) | +Y | ++ | 设备ID | +
| sync_status | +int2 | +N | +0 | +同步状态:0-未同步,1-已同步 | +
| sync_time | +timestamp(6) | +Y | ++ | 同步时间 | +
| 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 | +
根据移动端表设计优化原则,以下为移动端特有的5个表:
+| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| 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 | +
| 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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +bigint | +N | +AUTO_INCREMENT | +主键 | +
| user_id | +bigint | +N | ++ | 用户ID,关联system_users.id | +
| task_id | +bigint | +N | ++ | 任务ID,关联biz_meter_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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| id | +bigint | +N | +AUTO_INCREMENT | +主键 | +
| work_order_id | +bigint | +N | ++ | 工单ID,关联biz_process.id 或 +biz_content.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 | +
| 字段名 | +类型 | +是否可空 | +默认值 | +注释 | +
|---|---|---|---|---|
| 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端已有表:
+| 表名 | +用途说明 | +备注 | +
|---|---|---|
system_users |
+用户基本信息表 | +复用Web端用户管理 | +
system_login_log |
+登录日志表 | +扩展设备类型字段记录移动端登录 | +
biz_cust |
+客户主档表 | +复用 Web 端客户档案 | +
biz_meter |
+水表主档表 | +复用 Web 端水表档案 | +
biz_meter_book |
+抄表册本表 | +复用 Web 端抄表任务 | +
biz_reading_data |
+抄表数据表 | +复用 Web 端抄表数据 | +
biz_meter_read |
+抄表任务/状态表 | +复用 Web 端抄表过程状态 | +
biz_process |
+业务办理流程表 | +复用 Web 端现场业务工单/办理数据 | +
biz_content_attach |
+办理附件表 | +复用 Web 端附件资料 | +
biz_account |
+客户账户表 | +复用 Web 端账务信息 | +
仅保留移动端特有的功能表:
+| 表名 | +用途说明 | +特有原因 | +
|---|---|---|
mobile_user_cache |
+移动端用户缓存表 | +用于离线缓存,移动端特有需求 | +
mobile_search_history |
+移动端搜索历史表 | +移动端搜索记录管理 | +
mobile_task_sync |
+移动端任务同步表 | +离线任务管理,移动端特有 | +
mobile_work_attachment |
+移动端工单附件表 | +现场附件管理,移动端特有 | +
mobile_app_config |
+移动端应用配置表 | +个性化设置,移动端特有 | +
erDiagram
+ system_tenant ||--o{ system_users : "租户关系"
+ system_users ||--o{ system_user_role : "用户角色"
+ system_role ||--o{ system_user_role : "角色用户"
+ system_role ||--o{ system_role_menu : "角色权限"
+ system_menu ||--o{ system_role_menu : "菜单权限"
+ system_dept ||--o{ system_users : "部门用户"
+
+ system_tenant {
+ int8 id PK
+ varchar name
+ varchar contact_name
+ varchar contact_mobile
+ int2 status
+ timestamp expire_time
+ }
+
+ system_users {
+ int8 id PK
+ varchar username
+ varchar nickname
+ varchar password
+ int8 dept_id FK
+ int8 tenant_id FK
+ int2 status
+ }
+
+ system_role {
+ int8 id PK
+ varchar name
+ varchar code
+ int2 data_scope
+ int8 tenant_id FK
+ }
+
+ system_dept {
+ int8 id PK
+ varchar name
+ int8 parent_id
+ varchar code
+ int8 tenant_id FK
+ }
+
+erDiagram
+ BIZ_CUST ||--|| BIZ_ACCOUNT : 对应账户
+ BIZ_CUST ||--o{ BIZ_CUST_CONTACT : 联系人
+ BIZ_CUST ||--o{ BIZ_CUST_METER : 绑定水表
+ BIZ_METER ||--o{ BIZ_CUST_METER : 被绑定
+ BIZ_METER_BOOK ||--o{ BIZ_METER_READ : 生成任务
+ BIZ_METER_READ ||--o{ BIZ_READING_DATA : 采集读数
+ BIZ_METER ||--o{ BIZ_LAST_READING : 最新读数
+ BIZ_READING_DATA ||--o{ BIZ_CHARGE : 触发开账
+ BIZ_CHARGE ||--o{ BIZ_CHARGE_DETAIL : 明细拆分
+ BIZ_CHARGE ||--o{ BIZ_INVOICE : 开票关联
+ BIZ_CHARGE ||--o{ BK_TRANSACTION : 支付核销
+ BIZ_PRICE_CATEGORY ||--o{ BIZ_PRICE_TEMPLATE : 模板归属
+ BIZ_PRICE_TEMPLATE ||--o{ BIZ_WATER_USE_SCHEME : 计费方案
+ BIZ_PRICE_CATEGORY ||--o{ BIZ_PRICE_COST_ADJUSTMENT : 费用调整
+ BIZ_PRICE_COST_ADJUSTMENT ||--o{ BIZ_PRICE_TIER_ADJUSTMENT : 阶梯规则
+ BK_WITHHOLDING_BATCH ||--o{ BK_WITHHOLDING_ITEM : 批次明细
+ BK_RECONCILE_BATCH ||--o{ BK_RECONCILE_DIFF : 对账差异
+
+ BIZ_CUST {
+ int8 id PK
+ varchar code
+ varchar name
+ varchar cust_type
+ varchar mobile
+ int8 tenant_id FK
+ }
+
+ BIZ_ACCOUNT {
+ int8 id PK
+ varchar code
+ int8 cust_id FK
+ numeric balance
+ numeric arrears_amount
+ }
+
+ BIZ_METER {
+ int8 id PK
+ varchar code
+ varchar meter_no
+ varchar maker_code
+ varchar model_code
+ }
+
+ BIZ_CHARGE {
+ int8 id PK
+ varchar code
+ int8 cust_id FK
+ varchar bill_period
+ numeric total_amount
+ int2 charge_status
+ }
+
+ BK_TRANSACTION {
+ int8 id PK
+ varchar trade_no
+ varchar biz_order_no
+ varchar channel_code
+ numeric trade_amount
+ int2 trade_status
+ }
+
+为简化复杂查询和报表统计,设计以下视图:
+综合展示价格体系信息,包含价格归属、费用组成、调整历史等。
+CREATE VIEW v_price_info AS
+SELECT
+ pc.id as category_id,
+ pc.name as category_name,
+ pc.code as category_code,
+ cc.name as cost_name,
+ cc.code as cost_code,
+ pca.price_value,
+ pca.effective_date,
+ pca.expire_date
+FROM biz_price_category pc
+LEFT JOIN biz_price_cost_adjustment pca ON pc.code = pca.price_category_code
+LEFT JOIN biz_cost_component cc ON pca.cost_component_code = cc.code
+WHERE pc.deleted = 0 AND pca.deleted = 0 AND cc.deleted = 0;整合水表主档、厂家、型号、口径等基础信息,服务于册本分配、现场抄表和档案查询。
+CREATE VIEW v_meter_info AS
+SELECT
+ m.id AS meter_id,
+ m.code AS meter_code,
+ m.meter_no,
+ m.maker_code,
+ maker.name AS maker_name,
+ m.model_code,
+ model.name AS model_name,
+ m.caliber_code,
+ caliber.name AS caliber_name,
+ caliber.value AS caliber_value,
+ m.range_code,
+ range_cfg.name AS range_name,
+ m.install_address,
+ m.meter_status
+FROM biz_meter m
+LEFT JOIN biz_meter_maker maker ON m.maker_code = maker.code AND maker.deleted = 0
+LEFT JOIN biz_meter_model model ON m.model_code = model.code AND model.deleted = 0
+LEFT JOIN biz_meter_caliber caliber ON m.caliber_code = caliber.code AND caliber.deleted = 0
+LEFT JOIN biz_meter_range range_cfg ON m.range_code = range_cfg.code AND range_cfg.deleted = 0
+WHERE m.deleted = 0;展示完整的组织架构层级关系。
+CREATE VIEW v_dept_hierarchy AS
+WITH RECURSIVE dept_tree AS (
+ SELECT id, name, code, parent_id, 0 as level, name as path
+ FROM system_dept
+ WHERE parent_id = 0 AND deleted = 0
+
+ UNION ALL
+
+ SELECT d.id, d.name, d.code, d.parent_id, dt.level + 1,
+ CONCAT(dt.path, ' > ', d.name)
+ FROM system_dept d
+ INNER JOIN dept_tree dt ON d.parent_id = dt.id
+ WHERE d.deleted = 0
+)
+SELECT * FROM dept_tree;按租户维度统计各类数据。
+CREATE VIEW v_tenant_summary AS
+SELECT
+ t.id as tenant_id,
+ t.name as tenant_name,
+ COUNT(DISTINCT u.id) as user_count,
+ COUNT(DISTINCT d.id) as dept_count,
+ COUNT(DISTINCT c.id) as community_count
+FROM system_tenant t
+LEFT JOIN system_users u ON t.id = u.tenant_id AND u.deleted = 0
+LEFT JOIN system_dept d ON t.id = d.tenant_id AND d.deleted = 0
+LEFT JOIN biz_community c ON t.id = c.tenant_id AND c.deleted = 0
+WHERE t.deleted = 0
+GROUP BY t.id, t.name;REV-007
+以在线业务主数据聚合、视图或汇总口径支撑经营统计查询,不在本轮确认独立统计仓库、离线批处理表或专题分析表族。| 统计主题 | +主数据来源 | +最低维度要求 | +最低指标要求 | +承接方式 | +
|---|---|---|---|---|
| 营收汇总 | +biz_charge、biz_charge_detail |
+时间、账期、营业所、客户类别 | +应收金额、账单数、用水量 | +在线聚合 / 汇总口径 | +
| 收费与实收统计 | +biz_collection、bk_transaction |
+时间、渠道、营业所、收费状态 | +实收金额、收费笔数、成功率 | +在线聚合 / 汇总口径 | +
| 欠费规模与账龄统计 | +biz_charge、biz_charge_detail |
+账期、账龄、客户类别、区域 | +欠费余额、欠费户数、账龄分布 | +在线聚合 / 汇总口径 | +
| 客户结构统计 | +biz_cust、biz_account |
+客户类别、区域、状态 | +客户数、账户数、活跃状态分布 | +在线聚合 / 视图口径 | +
| 渠道交易统计 | +bk_transaction、bk_payment_channel |
+渠道、日期、结果状态 | +交易笔数、交易金额、渠道占比 | +在线聚合 / 汇总口径 | +
| 抄表完成率统计 | +biz_meter_book、biz_reading_data、biz_last_reading |
+抄表周期、册本、片区、人员 | +应抄户数、已抄户数、完成率 | +在线聚合 / 汇总口径 | +
stat_*、report_*
+或专题报表表不得写成正式已实现对象。-- 用户表核心索引
+CREATE INDEX idx_system_users_username ON system_users(username);
+CREATE INDEX idx_system_users_dept_tenant ON system_users(dept_id, tenant_id);
+CREATE INDEX idx_system_users_status_tenant ON system_users(status, tenant_id);
+
+-- 部门表索引
+CREATE INDEX idx_system_dept_parent_tenant ON system_dept(parent_id, tenant_id);
+CREATE INDEX idx_system_dept_code ON system_dept(code);
+
+-- 角色权限索引
+CREATE INDEX idx_system_user_role_user_tenant ON system_user_role(user_id, tenant_id);
+CREATE INDEX idx_system_role_menu_role_id ON system_role_menu(role_id);
+
+-- 日志表索引(支持时间范围查询)
+CREATE INDEX idx_system_login_log_user_time ON system_login_log(user_id, create_time);
+CREATE INDEX idx_system_login_log_ip_time ON system_login_log(user_ip, create_time);-- 客户主数据索引
+CREATE INDEX idx_biz_cust_code ON biz_cust(code);
+CREATE INDEX idx_biz_cust_mobile ON biz_cust(mobile);
+CREATE INDEX idx_biz_account_cust_status ON biz_account(cust_id, account_status);
+
+-- 水表与抄表索引
+CREATE INDEX idx_biz_meter_code ON biz_meter(code);
+CREATE INDEX idx_biz_meter_book_dept_status ON biz_meter_book(dept_code, status);
+CREATE INDEX idx_biz_meter_read_book_period ON biz_meter_read(book_id, read_period);
+CREATE INDEX idx_biz_reading_data_read_time ON biz_reading_data(meter_read_id, read_time);
+
+-- 开账收费索引
+CREATE INDEX idx_biz_charge_cust_period ON biz_charge(cust_id, bill_period);
+CREATE INDEX idx_biz_charge_status_due ON biz_charge(charge_status, due_date);
+CREATE INDEX idx_biz_charge_detail_charge_cost ON biz_charge_detail(charge_id, cost_component_code);
+
+-- 价格体系索引
+CREATE INDEX idx_biz_price_category_code ON biz_price_category(code);
+CREATE INDEX idx_biz_price_template_category ON biz_price_template(price_category_code, adjustment_snap_code);
+CREATE INDEX idx_biz_price_cost_adj_category_cost ON biz_price_cost_adjustment(price_category_code, cost_component_code);
+CREATE INDEX idx_biz_price_tier_adj_cost_tier ON biz_price_tier_adjustment(cost_component_code, tier_level);
+
+-- 银行代收与对账索引
+CREATE INDEX idx_bk_transaction_trade_no ON bk_transaction(trade_no);
+CREATE INDEX idx_bk_transaction_biz_order ON bk_transaction(biz_order_no, trade_status);
+CREATE INDEX idx_bk_withholding_batch_date ON bk_withholding_batch(batch_date, batch_status);
+CREATE INDEX idx_bk_reconcile_batch_bill_date ON bk_reconcile_batch(bill_date, reconcile_status);-- 登录日志按月分区
+CREATE TABLE system_login_log_partition (
+ LIKE system_login_log INCLUDING ALL
+) PARTITION BY RANGE (create_time);
+
+-- 创建月度分区
+CREATE TABLE system_login_log_y2024m01 PARTITION OF system_login_log_partition
+ FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');
+
+CREATE TABLE system_login_log_y2024m02 PARTITION OF system_login_log_partition
+ FOR VALUES FROM ('2024-02-01') TO ('2024-03-01');-- 价格调整历史按年分区
+CREATE TABLE biz_price_adjustment_history_partition (
+ LIKE biz_price_adjustment_history INCLUDING ALL
+) PARTITION BY RANGE (create_time);
+
+-- 按年度分区
+CREATE TABLE biz_price_adjustment_history_y2024 PARTITION OF biz_price_adjustment_history_partition
+ FOR VALUES FROM ('2024-01-01') TO ('2025-01-01');-- 建议查询模式:始终带上租户ID
+SELECT * FROM system_users
+WHERE tenant_id = ? AND status = 0 AND dept_id = ?;
+
+-- 使用覆盖索引减少回表
+CREATE INDEX idx_system_users_cover ON system_users(tenant_id, status, dept_id)
+INCLUDE (username, nickname, email);-- 使用递归CTE查询部门层级
+WITH RECURSIVE dept_tree AS (
+ SELECT id, name, parent_id, 1 as level
+ FROM system_dept
+ WHERE id = ? AND tenant_id = ?
+
+ UNION ALL
+
+ SELECT d.id, d.name, d.parent_id, dt.level + 1
+ FROM system_dept d
+ INNER JOIN dept_tree dt ON d.parent_id = dt.id
+ WHERE d.tenant_id = ? AND dt.level < 10 -- 防止无限递归
+)
+SELECT * FROM dept_tree;-- 创建归档表
+CREATE TABLE system_login_log_archive (
+ LIKE system_login_log INCLUDING ALL
+);
+
+-- 归档脚本示例
+INSERT INTO system_login_log_archive
+SELECT * FROM system_login_log
+WHERE create_time < CURRENT_DATE - INTERVAL '3 months';
+
+DELETE FROM system_login_log
+WHERE create_time < CURRENT_DATE - INTERVAL '3 months';# 安全保密设计 - +用户认证: +所有数据库连接均需通过应用层的身份认证,禁止数据库密码在配置文件中明文存储。 +- 权限控制: +数据库用户权限遵循最小权限原则。应用层根据用户角色(RBAC)动态构建SQL,并通过行级安全(RLS)策略限制数据访问范围。 +- 数据加密: +对数据库中的密码、密钥等敏感信息,采用BCrypt或SM3等算法进行加密存储。 - +审计日志: +启用数据库审计功能,记录所有DDL和DML操作,特别是对敏感数据的访问和修改。
+ + diff --git a/output/01_Database_Design.pdf b/output/01_Database_Design.pdf new file mode 100644 index 0000000..a613748 Binary files /dev/null and b/output/01_Database_Design.pdf differ diff --git a/output/01_Database_Design_processed.md b/output/01_Database_Design_processed.md new file mode 100644 index 0000000..25f5f01 --- /dev/null +++ b/output/01_Database_Design_processed.md @@ -0,0 +1,2099 @@ +--- +title: "01_Database_Design" +author: "系统设计团队" +date: "2024年12月19日" +documentclass: article +geometry: margin=1in +fontsize: 11pt +mainfont: "PingFang SC" +CJKmainfont: "PingFang SC" +--- + +--- +doc_id: TC-01-DB +doc_role: master_document +authority: primary +scope: 数据库设计 +source_of_truth: true +last_reviewed: 2026-03-12 +retrieval_priority: P0 +--- + +# 福建水务营收系统数据库设计说明书 + +## 章节导航(精简) + +- [前言](#sec-preface) +- [外部设计](#sec-external-design) +- [数据库设计说明](#sec-database-design-note) +- [表结构设计](#sec-table-design) +- [METER/INST 专题表边界](#sec-meter-inst-topic) +- [移动端表设计优化说明](#sec-mobile-table-optimization) +- [视图的设计](#sec-view-design) +- [索引设计与性能优化](#sec-index-performance) +- [安全保密设计](#sec-security-design) + +| 文件状态: | 文档密级: | 公开 | +| :--- | :--- | :--- | +| 【 】草稿 | | | +| 【 】修改稿 | | | +| 【√】正式发布 | | | +| | **当前版本:** | **V1.6** | +| | **作者:** | **唐伟杰** | +| | **完成日期:** | **2025-08-01** | + +## 版本历史 + +| **日期** | **版本号** | **作者** | **备注** | +| :--- | :--- | :--- | :--- | +| 2025-07-17 | V1.0 | 唐伟杰 | 初稿 | +| 2025-07-17 | V1.1 | 唐伟杰 | 根据用户要求,严格对齐SQL文件,确保所有表和字段的完整性。 | +| 2025-08-01 | V1.2 | 唐伟杰 | 1. 根据详细设计说明书调整目录结构,按6个子系统重新组织表结构。2024年12月19日
+| 文件状态: | +文档密级: | +公开 | +
|---|---|---|
| 【】草稿 | ++ | + |
| 【√】修改稿 | ++ | + |
| 【】正式发布 | ++ | + |
| + | 当前版本: | +V1.6 | +
| + | 作者: | +唐伟杰 | +
| + | 完成日期: | +2026-03-10 | +
| 日期 | +版本号 | +作者 | +备注 | +
|---|---|---|---|
| 2025-07-01 | +V1.0 | +唐伟杰 | +初版 | +
| 2025-07-17 | +V1.1 | +唐伟杰 | +补充详细设计内容 | +
| 2025-08-01 | +V1.2 | +唐伟杰 | +同步更新概要设计中的子系统和模块结构,补充数据库设计章节并统一主要模块逻辑。 | +
| 2025-08-01 | +V1.3 | +唐伟杰 | +数据库系统口径统一为达梦数据库 8.0+。 | +
| 2025-08-01 | +V1.4 | +唐伟杰 | +单点登录采用 OAuth2.0 +协议,补充统一认证相关设计。 | +
| 2026-03-10 | +V1.6 | +唐伟杰 | +将分散的模块设计、数据库设计、接口设计、安全设计、部署设计与报装电子签章设计整合为统一主详设,统一系统名称、章节体系、模块/接口编号及数据库口径,清理重复内容与部署脏片段。 | +
本文档用于指导福建水务营收系统的详细设计、开发实现、联调测试、部署上线及后续运维,是本项目详细设计阶段的统一主说明书。本文档以
+docs/design/02_Detailed_Design/01_Detailed_Design.md
+作为唯一主详设文件,吸收模块设计、数据库设计、接口设计、安全设计、部署设计以及报装电子签章专项设计中的可复用内容,形成可直接交付和实施使用的统一版本。
福建水务营收系统面向集团化、多组织、多渠道的营收业务场景,覆盖客户资料、抄表开账、营业收费、账务处理、表务管理、报装立户、电子签章、客户服务、移动作业、外部支付与政务对接等核心业务。系统建设目标是形成统一平台、统一数据、统一接口、统一安全管控的营收业务支撑体系,满足集团及下属单位的标准化与可扩展管理要求。
+本文档覆盖以下设计内容:
+| 术语/缩略语 | +说明 | +
|---|---|
| SSO | +单点登录 | +
| OAuth2.0 | +统一认证授权协议 | +
| RBAC | +基于角色的访问控制模型 | +
| DM8 | +达梦数据库 8.0+ | +
| API | +应用程序接口 | +
| CA | +电子认证与电子签章能力 | +
| MFA | +多因素认证 | +
| ETL | +数据抽取、转换、加载 | +
docs/design/02_Detailed_Design/02_Module_Traceability_Index.mddocs/design/02_Detailed_Design/03_CA_Esignature_Supplement.mddocs/design/02_Detailed_Design/11_UP_Detailed.mddocs/design/02_Detailed_Design/12_REV_Detailed.mddocs/design/02_Detailed_Design/13_CS_Detailed.mddocs/design/02_Detailed_Design/14_METER_Detailed.mddocs/design/02_Detailed_Design/15_INST_Detailed.mddocs/design/03_Technical_Design/01_Database_Design.mddocs/design/03_Technical_Design/02_Table_Specs.md(历史命名映射补充)docs/design/03_Technical_Design/03_Interface_Design.mddocs/design/03_Technical_Design/04_Security_Design.mddocs/design/03_Technical_Design/05_Deployment_Design.mddocs/design/01_Overview/05_Module_Inventory.mddocs/design/01_Overview/05_Module_Inventory.mddocs/design/02_Detailed_Design/11_UP_Detailed.mddocs/design/02_Detailed_Design/12_REV_Detailed.mddocs/design/02_Detailed_Design/13_CS_Detailed.mddocs/design/02_Detailed_Design/14_METER_Detailed.mddocs/design/02_Detailed_Design/15_INST_Detailed.md福建水务营收系统总体设计遵循“统一平台、业务协同、数据集中、接口标准、安全可控”的原则,实现以下目标:
+graph TB
+ U1[柜台/客服/管理人员] --> A1[PC管理端]
+ U2[抄表员/表务人员] --> A2[移动作业端]
+ U3[客户用户] --> A3[微信/支付宝/微服务窗]
+ U4[第三方系统] --> A4[外部系统接口]
+
+ subgraph G[接入与网关层]
+ G1[统一门户]
+ G2[API网关]
+ G3[统一认证中心]
+ end
+
+ subgraph B[业务服务层]
+ B1[统一平台服务]
+ B2[营收业务服务]
+ B3[表务管理服务]
+ B4[报装与签章服务]
+ B5[客户服务渠道服务]
+ B6[消息通知与任务调度]
+ end
+
+ subgraph D[数据与支撑层]
+ D1[(达梦数据库 8.0+)]
+ D2[(Redis缓存)]
+ D3[对象存储/文件服务]
+ D4[消息队列]
+ D5[日志审计与监控]
+ end
+
+ A1 --> G1
+ A2 --> G1
+ A3 --> G1
+ A4 --> G2
+ G1 --> G2 --> G3
+ G2 --> B1
+ G2 --> B2
+ G2 --> B3
+ G2 --> B4
+ G2 --> B5
+ B1 --> D1
+ B2 --> D1
+ B3 --> D1
+ B4 --> D1
+ B5 --> D1
+ B2 --> D2
+ B3 --> D2
+ B4 --> D3
+ B5 --> D4
+ B1 --> D5
+ B2 --> D5
+ B3 --> D5
+ B4 --> D5
+ B5 --> D5
+
+graph TB
+ INTERNET[互联网/政务外网/合作机构] --> DMZ[DMZ接入区]
+ DMZ --> APP[应用服务区]
+ APP --> DATA[数据服务区]
+ APP --> OPS[管理运维区]
+
+ subgraph DMZ[DMZ接入区]
+ LB[负载均衡/Nginx]
+ WAF[WAF与边界防护]
+ GW[API网关]
+ end
+
+ subgraph APP[应用服务区]
+ APP1[统一平台服务]
+ APP2[营收业务服务]
+ APP3[表务服务]
+ APP4[报装签章服务]
+ APP5[客户渠道服务]
+ end
+
+ subgraph DATA[数据服务区]
+ DBM[(达梦主库)]
+ DBS[(达梦备库/从库)]
+ REDIS[(Redis)]
+ FILE[文件存储]
+ end
+
+ subgraph OPS[管理运维区]
+ MON[监控平台]
+ LOG[日志平台]
+ BAK[备份服务]
+ JUMP[堡垒机/跳板机]
+ end
+
+| 子系统 | +说明 | +核心模块 | +
|---|---|---|
| 统一平台 | +提供统一认证、组织、权限、参数、审计与监控基础能力 | +UP-001 ~ UP-004 | +
| 营收业务 | +覆盖客户、抄表、收费、账务、发票、催缴、统计、代收与业务工单 | +REV-001 ~ REV-009 | +
| 表务管理 | +覆盖水表基础参数、仓储库存、设备档案以及工单和物联网同步等支撑能力 | +METER-001 ~ METER-003 | +
| 报装与签章 | +覆盖报装流程管理、工程管理、档案管理及其下挂签章归档能力 | +INST-001 ~ INST-003 | +
| 客户服务模块 | +覆盖账户绑定、信息查询、在线缴费、电子发票、网点服务、业务办理与柜面扫码支付 | +CS-001 ~ CS-007 | +
../01_Overview/05_Module_Inventory.md 为准。MOBILE-*、WECHAT-*、WORK-*
+单独建立平行正式主稿。WECHAT-* 当前按客户服务渠道视角并入 CS-*
+体系承接;MOBILE-*
+当前作为抄表与表务协同端能力分散承接于营收与表务正文;WORK-*
+当前作为工单协同与流程支撑能力在客户服务、表务、报装正文中交叉引用。为避免主详设与分模块文件重复维护,本章仅保留统一平台模块摘要与入口链接,详细正文统一维护在模块文件中。
+| 模块编号 | +模块名称 | +设计摘要 | +正文链接 | +
|---|---|---|---|
UP-001 |
+统一认证与单点登录 | +统一身份认证、单点登录、令牌生命周期管理与高敏感二次校验 | +UP-001 | +
UP-002 |
+组织用户与权限管理 | +组织、岗位、角色、菜单与数据权限统一管控 | +UP-002 | +
UP-003 |
+参数字典与基础配置 | +统一维护字典、价格、地址、渠道和任务参数 | +UP-003 | +
UP-004 |
+审计监控与运维支撑 | +操作审计、接口监控、任务追踪与告警通知 | +UP-004 | +
本章保留营收业务模块的设计摘要,详细流程、数据域与规则说明统一维护在分模块正文文件中。
+| 模块编号 | +模块名称 | +设计摘要 | +正文链接 | +
|---|---|---|---|
REV-001 |
+客户资料管理 | +客户主档、账户、联系人、绑定关系等主数据管理 | +REV-001 | +
REV-002 |
+抄表开账 | +抄表计划、异常复核、计费与账单生成 | +REV-002 | +
REV-003 |
+营业收费 | +多渠道缴费、账单核销与收费凭证管理 | +REV-003 | +
REV-004 |
+账务处理 | +调整、退款、冲正、呆坏账等账务修正 | +REV-004 | +
REV-005 |
+发票与税务处理 | +发票申请、回写、作废与红冲协同 | +REV-005 | +
REV-006 |
+催缴与通知 | +欠费催缴策略、触达与结果回写 | +REV-006 | +
REV-007 |
+统计分析 | +营收、收费、欠费、渠道等多维统计 | +REV-007 | +
REV-008 |
+代收与银行业务 | +代收代扣、对账、结算与差异处理 | +REV-008 | +
REV-009 |
+业务参数配置 | +价格模板、页面配置与规则参数管理 | +REV-009 | +
本章保留客户服务模块摘要与入口,详细设计内容由分模块正文文件统一承载。
+| 模块编号 | +模块名称 | +设计摘要 | +正文链接 | +
|---|---|---|---|
CS-001 |
+账户绑定管理 | +渠道账号与客户账户绑定、解绑、默认设置 | +CS-001 | +
CS-002 |
+信息查询服务 | +账单、缴费、欠费、用水分析与历史查询 | +CS-002 | +
CS-003 |
+在线缴费服务 | +多渠道在线支付下单、回调确认与补单 | +CS-003 | +
CS-004 |
+电子发票服务 | +发票申请、查询、下载与推送 | +CS-004 | +
CS-005 |
+营业网点服务 | +网点信息、服务范围与办事引导 | +CS-005 | +
CS-006 |
+业务办理服务 | +线上办理入口与办理状态流转协同 | +CS-006 | +
CS-007 |
+柜面扫码支付 | +柜面二维码收款与收费状态联动 | +CS-007 | +
本章保留表务模块摘要,详细流程与对象说明统一在分模块正文文件维护。
+| 模块编号 | +模块名称 | +设计摘要 | +正文链接 | +
|---|---|---|---|
METER-001 |
+表务基础管理 | +水表档案、状态与参数基础管理 | +METER-001 | +
METER-002 |
+仓库与库存管理 | +入库、出库、退库、报废与库存预警 | +METER-002 | +
METER-003 |
+设备档案管理 | +设备主档、状态流转、工单协同与远传同步 | +METER-003 | +
本章保留报装与签章模块摘要,详细流程、CA +集成与异常补偿策略统一维护在分模块正文及 CA 专项补充文档。
+| 模块编号 | +模块名称 | +设计摘要 | +正文链接 | +
|---|---|---|---|
INST-001 |
+报装流程管理 | +申请受理、踏勘流转与方案编制 | +INST-001 | +
INST-002 |
+工程管理 | +施工验收、立户通水与合同签章协同 | +INST-002 | +
INST-003 |
+档案管理 | +材料归档、签章回执留存与过程可追溯 | +INST-003 | +
系统数据库统一采用达梦数据库 8.0+。数据库设计遵循以下原则:
+graph TB
+ APP[业务应用] --> ORM[数据访问层]
+ APP --> CACHE[Redis缓存]
+ ORM --> MASTER[(达梦主库)]
+ MASTER --> SLAVE[(达梦从库/备库)]
+ MASTER --> FILE[文件与归档索引]
+
+erDiagram
+ BIZ_CUST ||--o{ BIZ_CUST_CONTACT : 包含
+ BIZ_CUST ||--o{ BIZ_CUST_METER : 绑定
+ BIZ_CUST ||--|| BIZ_ACCOUNT : 对应
+ BIZ_METER ||--o{ BIZ_READING_DATA : 产生
+ BIZ_READING_DATA ||--|| BIZ_CHARGE : 生成
+ BIZ_CHARGE ||--o{ BIZ_CHARGE_DETAIL : 包含
+ BIZ_CHARGE ||--o{ BK_TRANSACTION : 核销
+ BIZ_CUST ||--o{ BIZ_INVOICE : 开票
+ INSTALLATION_APPLY ||--o{ INSTALLATION_CONTRACT : 生成
+ INSTALLATION_CONTRACT ||--o{ INSTALLATION_SIGNATURE : 签署
+ INSTALLATION_CONTRACT ||--o{ INSTALLATION_EVIDENCE : 存证
+
+| 表名 | +说明 | +关键字段 | +
|---|---|---|
biz_cust |
+客户主档表 | +code、name、cust_type、id_no、mobile、address、status | +
biz_account |
+客户账户表 | +code、cust_id、balance、arrears_amount、status | +
biz_cust_contact |
+客户联系人表 | +cust_id、name、mobile、contact_type、is_default | +
biz_cust_app_binds |
+渠道绑定关系表 | +cust_id、app_type、app_user_id、status | +
biz_cust_invoice |
+客户开票信息表 | +cust_id、invoice_title、tax_no、email、mobile | +
| 表名 | +说明 | +关键字段 | +
|---|---|---|
biz_meter |
+水表信息表 | +code、meter_no、model_code、caliber_code、status | +
biz_cust_meter |
+客户与水表关系表 | +cust_id、meter_id、bind_status、bind_time | +
biz_meter_book |
+抄表册本表 | +code、name、reader_id、cycle_type、status | +
biz_reading_data |
+抄表数据表 | +meter_id、cust_id、reading_time、current_reading、usage_amount | +
biz_last_reading |
+上次抄表结果表 | +meter_id、last_reading、last_reading_time | +
biz_meter_read |
+抄表任务状态表 | +book_id、meter_id、read_status、reader_id | +
| 表名 | +说明 | +关键字段 | +
|---|---|---|
biz_charge |
+营业账主表 | +code、cust_id、record_id、total_amount、charge_status | +
biz_charge_detail |
+营业账明细表 | +charge_id、cost_component_code、usage_amount、detail_amount | +
biz_collection |
+托收资料表 | +cust_id、channel_code、collection_status、apply_time | +
biz_withholding |
+代扣资料表 | +cust_id、agreement_no、withholding_status、sign_time | +
biz_invoice |
+发票主表 | +code、cust_id、invoice_status、invoice_type、issue_time | +
biz_invoice_taxrate |
+发票税率表 | +tax_code、tax_name、tax_rate、status | +
| 表名 | +说明 | +关键字段 | +
|---|---|---|
bk_payment_channel |
+支付渠道表 | +channel_code、channel_name、channel_type、status | +
bk_channel_api_config |
+渠道接口配置表 | +channel_code、api_url、sign_type、status | +
bk_channel_route_rule |
+渠道路由规则表 | +business_type、channel_code、priority、status | +
bk_transaction |
+渠道交易流水表 | +trade_no、biz_order_no、channel_code、trade_amount、trade_status | +
bk_transaction_callback |
+支付回调表 | +trade_no、callback_status、callback_time、payload | +
bk_transaction_exception |
+渠道异常表 | +trade_no、exception_type、exception_status、remark | +
bk_withholding_agreement |
+代扣签约表 | +agreement_no、cust_id、bank_code、status | +
bk_withholding_batch |
+代扣批次表 | +batch_no、batch_date、total_count、status | +
bk_withholding_item |
+代扣明细表 | +batch_no、cust_id、charge_id、item_status | +
bk_reconcile_batch |
+对账批次表 | +batch_no、channel_code、reconcile_date、status | +
bk_reconcile_diff |
+对账差异表 | +batch_no、trade_no、diff_type、diff_amount | +
bk_settlement_batch |
+结算批次表 | +batch_no、channel_code、settlement_date、status | +
| 表名 | +说明 | +关键字段 | +
|---|---|---|
biz_meter_log |
+表务工单/过程留痕表 | +biz_type、biz_id、operate_user、operate_time、remark | +
biz_meter_in_out |
+水表出入库主表 | +code、in_out_type、warehouse_id、operate_time、status | +
biz_meter_in_out_rel |
+出入库关联明细表 | +in_out_id、meter_id、quantity、status | +
biz_process |
+业务工单主表 | +code、biz_type_code、cust_id、process_status | +
| 表名 | +说明 | +关键字段 | +
|---|---|---|
biz_process |
+报装申请主表 | +code、biz_type_code、cust_id、process_status | +
biz_process_transfer |
+现场踏勘与流转表 | +process_id、from_user、to_user、transfer_time | +
installation_contract |
+报装合同表 | +contract_code、installation_id、contract_type、contract_status | +
installation_signature |
+签章记录表 | +signature_code、contract_id、signer_id、signature_time、signature_status | +
installation_evidence |
+存证记录表 | +evidence_code、contract_id、evidence_hash、evidence_status | +
(customer_type, status)(customer_id, bill_month, bill_status)(meter_id, reading_date)(customer_id, payment_time)IF- 或 EXT-
+前缀,与模块编号区分。| 接口编号 | +接口名称 | +功能描述 | +调用方 | +协议 | +
|---|---|---|---|---|
| IF-UP-001 | +用户登录接口 | +用户登录并获取访问令牌 | +PC端/移动端/渠道端 | +HTTPS REST | +
| IF-UP-002 | +用户信息接口 | +获取当前登录用户上下文 | +各业务系统 | +HTTPS REST | +
| IF-UP-003 | +权限校验接口 | +校验菜单、按钮和数据权限 | +各业务模块 | +HTTPS REST | +
| IF-UP-004 | +参数字典接口 | +获取字典与业务参数 | +各业务模块 | +HTTPS REST | +
| 接口编号 | +接口名称 | +功能描述 | +调用方 | +协议 | +
|---|---|---|---|---|
| IF-REV-001 | +客户信息查询接口 | +查询客户档案、账户状态、联系人与水表绑定关系 | +柜台/客户渠道/工单 | +HTTPS REST | +
| IF-REV-004 | +抄表数据提交接口 | +提交人工或远传抄表数据并触发校验 | +抄表APP/集抄系统 | +HTTPS REST | +
| IF-REV-005 | +账单生成接口 | +根据抄表结果、水价模板和费用组成生成账单 | +开账任务 | +HTTPS REST | +
| IF-REV-006 | +缴费处理接口 | +创建收费记录并核销账单 | +柜台/线上渠道 | +HTTPS REST | +
| IF-REV-007 | +账务调整接口 | +发起金额调整、退款、冲正、坏账等业务处理 | +财务/营业人员 | +HTTPS REST | +
| IF-REV-008 | +发票申请接口 | +发起开票申请并接收票据状态回写 | +柜台/客户渠道 | +HTTPS REST | +
| IF-REV-009 | +催缴任务接口 | +生成催缴名单并提交消息触达请求 | +营收系统/消息服务 | +HTTPS REST | +
| IF-REV-010 | +统计查询接口 | +查询营收、收费、欠费、渠道、客户统计结果 | +管理后台/统计分析端 | +HTTPS REST | +
| IF-REV-011 | +银行代收协同接口 | +发起代扣、回盘、对账、结算协同 | +银行代收模块/SYS-009 | +HTTPS REST / 文件交换 | +
| IF-REV-012 | +业务参数配置接口 | +查询和维护价格模板、优惠方案、业务参数配置 | +管理后台/参数管理端 | +HTTPS REST | +
| 接口编号 | +接口名称 | +功能描述 | +调用方 | +协议 | +
|---|---|---|---|---|
| IF-METER-001 | +水表档案查询接口 | +查询水表与生命周期信息 | +表务/营收/报装 | +HTTPS REST | +
| IF-METER-002 | +表务工单处理接口 | +提交换表、移表等结果 | +移动作业端 | +HTTPS REST | +
| IF-METER-003 | +库存出入库接口 | +处理领用、退库、报废 | +仓储管理端 | +HTTPS REST | +
| IF-METER-004 | +集抄数据接收接口 | +接收远程抄表数据 | +物联网平台 | +HTTPS REST | +
| 接口编号 | +接口名称 | +功能描述 | +调用方 | +协议 | +
|---|---|---|---|---|
| IF-INST-001 | +报装申请提交接口 | +提交报装申请与附件 | +柜台/微网厅/政务平台 | +HTTPS REST | +
| IF-INST-002 | +踏勘结果回填接口 | +回填现场踏勘结果 | +报装人员 | +HTTPS REST | +
| IF-INST-003 | +合同签署发起接口 | +创建签章任务 | +报装系统 | +HTTPS REST | +
| IF-INST-004 | +签章回执接口 | +回写签章结果和存证信息 | +CA系统/报装系统 | +HTTPS REST | +
| IF-INST-005 | +报装归档接口 | +归档申请、合同和验收资料 | +报装系统 | +HTTPS REST | +
| 接口编号 | +接口名称 | +功能描述 | +调用方 | +协议 | +
|---|---|---|---|---|
| IF-CS-001 | +账户绑定接口 | +绑定或解绑客户账户 | +微信/支付宝/微网厅 | +HTTPS REST | +
| IF-CS-002 | +历史账单查询接口 | +查询账单、欠费、用水趋势 | +客户端 | +HTTPS REST | +
| IF-CS-003 | +在线支付下单接口 | +创建微信/支付宝支付订单 | +客户端 | +HTTPS REST | +
| IF-CS-004 | +发票申请接口 | +提交电子发票申请 | +客户端 | +HTTPS REST | +
| IF-CS-005 | +网点与业务办理接口 | +查询网点、提交业务办理 | +客户端 | +HTTPS REST | +
| IF-CS-006 | +业务办理进度接口 | +查询业务办理和工单进度 | +客户端 | +HTTPS REST | +
| IF-CS-007 | +柜面扫码支付接口 | +创建柜面扫码支付订单并回写结果 | +柜台终端/营业前台 | +HTTPS REST | +
| 接口编号 | +接口名称 | +功能描述 | +协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|
| EXT-001 | +银行代扣接口 | +批量代扣水费 | +HTTPS/SFTP | +客户信息、账单金额、代扣日期 | +扣款结果 | +
| EXT-101 | +微信支付统一下单 | +创建微信支付订单 | +HTTPS | +订单信息、金额 | +预支付信息 | +
| EXT-201 | +支付宝统一收单 | +创建支付宝支付订单 | +HTTPS | +订单信息、金额 | +支付结果 | +
| 接口编号 | +接口名称 | +功能描述 | +协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|
| EXT-301 | +短信发送接口 | +发送催缴或通知短信 | +HTTPS | +手机号、模板、参数 | +发送结果 | +
| EXT-401 | +邮件发送接口 | +发送电子发票或通知邮件 | +HTTPS | +邮箱、主题、内容 | +发送结果 | +
| EXT-501 | +电子发票开具接口 | +税控平台开票 | +HTTPS | +发票信息、税率 | +发票结果 | +
| 接口编号 | +接口名称 | +功能描述 | +协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|
| EXT-601 | +水表数据采集接口 | +获取远程抄表数据 | +HTTPS | +水表编号、时间范围 | +抄表数据 | +
| EXT-701 | +政务数据汇聚接口 | +向政务平台推送业务数据 | +HTTPS | +业务数据、统计数据 | +推送结果 | +
| EXT-801 | +环卫收费对接接口 | +同步污水费/环卫收费数据 | +HTTPS | +收费数据 | +同步结果 | +
| EXT-901 | +客服工单创建接口 | +与客服系统同步工单 | +HTTPS | +工单信息 | +工单编号 | +
| EXT-1001 | +消火栓控制接口 | +控制取水权限与设备状态 | +HTTPS | +设备信息、控制指令 | +控制结果 | +
| EXT-CA-001 | +身份认证接口 | +验证合同签署方身份 | +HTTPS REST | +用户信息、认证方式 | +认证结果 | +
| EXT-CA-002 | +电子签章接口 | +执行电子签章 | +HTTPS REST | +文档内容、签章位置 | +签章结果 | +
| EXT-CA-003 | +时间戳接口 | +申请签署时间戳 | +HTTPS REST | +文档哈希 | +时间戳凭证 | +
| EXT-CA-004 | +电子存证接口 | +存储签署后合同 | +HTTPS REST | +签署文档、元数据 | +存证凭证 | +
系统安全设计遵循机密性、完整性、可用性、可审计性原则,采用边界安全、应用安全、数据安全、运维安全四层防护模式。
+graph TB
+ T[外部威胁] --> N[边界安全]
+ N --> A[应用安全]
+ A --> D[数据安全]
+ D --> O[运维安全]
+ O --> C[核心业务资产]
+
+系统采用集中部署模式,生产环境分为接入区、应用区、数据区、运维管理区,支持主备容灾与横向扩展。
+graph TB
+ U[外部访问] --> LB[负载均衡/Nginx]
+ LB --> APP1[应用节点1]
+ LB --> APP2[应用节点2]
+ LB --> APP3[应用节点3]
+ APP1 --> DB[(达梦主库)]
+ APP2 --> DB
+ APP3 --> DB
+ DB --> DBS[(达梦备库/从库)]
+ APP1 --> REDIS[(Redis)]
+ APP1 --> FILE[对象存储]
+ APP1 --> MON[监控与日志平台]
+
+| 环境 | +用途 | +说明 | +
|---|---|---|
| 开发环境 | +开发联调 | +功能开发、单元验证 | +
| 测试环境 | +集成测试 | +接口联调、业务测试、性能测试 | +
| 预生产环境 | +上线前验证 | +模拟生产配置,进行发布演练 | +
| 生产环境 | +正式运行 | +双机或多节点高可用部署 | +
| 类别 | +监控项 | +
|---|---|
| 主机监控 | +CPU、内存、磁盘、网络 | +
| 应用监控 | +QPS、响应时间、错误率、线程池 | +
| 数据库监控 | +连接数、慢 SQL、锁等待、主备同步 | +
| 业务监控 | +开账量、收费量、退款量、签章成功率 | +
| 前缀 | +模块域 | +
|---|---|
| UP | +统一平台 | +
| REV | +营收业务 | +
| METER | +表务管理 | +
| INST | +报装与签章 | +
| CS | +客户服务与渠道 | +
| 前缀 | +说明 | +
|---|---|
| IF-UP / IF-REV / IF-CS / IF-METER / IF-INST | +系统内部标准接口 | +
| IF-EXT | +对外系统接口 | +
| EXT-CA | +历史资料中的电子签章专项外部接口编号(存量引用) | +
UP/REV/METER/INST/CS-001 风格。IF-UP/IF-REV/IF-CS/IF-METER/IF-INST/IF-EXT-001 风格,历史
+EXT-* 仅用于存量资料引用。2024年12月19日
+本文档用于说明福建水务营收系统的建设背景、目标、范围边界、涉众角色与基础术语,作为总体设计层的导览入口。
+详细的模块设计、接口定义、数据结构与部署实现,以主文档和专项文档为准,不在本文重复展开。
福建水务营收系统面向水务企业营收管理与客户服务全流程,覆盖抄表、开账、收费、账务、工单、表务、报装与渠道服务。
+项目目标是将分散业务统一到可评审、可交付、可持续维护的体系下,支撑集团化与多组织协同。
| 分类 | +范围说明 | +
|---|---|
| 平台能力 | +统一认证、权限、租户、组织、参数、监控 | +
| 核心业务 | +客户资料、抄表开账、营业收费、账务处理、发票、催缴、统计 | +
| 业务子系统 | +手机抄表 APP、微网厅、工单管理、表务管理、报装业务 | +
| 基础服务 | +发票服务、支付与银行结算、消息服务 | +
| 外部集成 | +银行、第三方支付、短信/邮件/站内信、物联网、CA 能力 | +
| 分类 | +说明 | +
|---|---|
| 代码实现细节 | +具体类设计、SQL、接口字段定义 | +
| 运维脚本实现 | +启停脚本、部署脚本、监控规则细项 | +
| 测试用例细节 | +测试步骤、断言口径、执行结果 | +
| 角色 | +关注重点 | +
|---|---|
| 项目管理与评审人员 | +范围边界、建设目标、交付范围 | +
| 架构与开发人员 | +子系统职责、总体边界、协同关系 | +
| 测试与运维人员 | +系统分层、部署原则、安全与可运维约束 | +
| 甲方技术人员 | +交付口径一致性、可追溯性、后续维护可行性 | +
| 术语 | +说明 | +
|---|---|
| 营收业务系统(SYS-002) | +核心营收业务承载子系统 | +
| 微网厅(SYS-004) | +面向外部客户服务的线上渠道 | +
| 表务管理(SYS-006) | +水表设备与库存相关管理域 | +
| 报装业务(SYS-007) | +新装/改装/流程办理相关业务域 | +
| 术语 | +说明 | +
|---|---|
| SSO | +单点登录能力 | +
| RBAC | +基于角色的访问控制 | +
| OAuth2.0 + CAS | +统一认证与单点登录协议组合 | +
| IF- 编号 | +接口编号前缀,用于与模块编号区分 | +
02_System_Architecture.md03_Summary_Design.md04_System_Diagrams.md../02_Detailed_Design/01_Detailed_Design.md../03_Technical_Design/01_Database_Design.md../03_Technical_Design/03_Interface_Design.md../03_Technical_Design/04_Security_Design.md../03_Technical_Design/05_Deployment_Design.md../../guides/BACKEND_CURRENT_STATUS.md../../guides/BACKEND_TABLE_MAPPING.md../04_Appendix/Archive/03_Summary_Design.md,建立统一口径。02_System_Architecture.md,理解总体边界和架构原则。04_System_Diagrams.md,核对图文一致性。03_Summary_Design.md
+不一致时,以主文档为准并及时修正。make validate-file FILE=docs/design/01_Overview/01_System_Overview.mdmake check-links2024年12月19日
+本文档用于提供“模块编号 → 主详设章节 → 关键接口 → +关键数据域”的统一检索入口,服务于:
+边界说明:
+01_Detailed_Design.md 为准;11_UP_Detailed.md、12_REV_Detailed.md、13_CS_Detailed.md、14_METER_Detailed.md、15_INST_Detailed.md;03_Technical_Design/01_Database_Design.md
+为主,03_Technical_Design/02_Table_Specs.md
+仅用于历史映射补充;03_Technical_Design/03_Interface_Design.md 为准。../01_Overview/05_Module_Inventory.md
+为核对入口;本索引只保留当前详细设计实际承接的模块与必要映射说明。| 子系统/能力域 | +模块范围 | +模块正文定位 | +主要技术专题 | +
|---|---|---|---|
| 统一平台 | +UP-001 ~ UP-004 |
+统一平台模块正文 | +接口设计、安全设计 | +
| 营收业务 | +REV-001 ~ REV-009 |
+营收业务模块正文 | +数据库设计、接口设计 | +
| 客户服务 | +CS-001 ~ CS-007 |
+客户服务模块正文 | +接口设计、安全设计 | +
| 表务管理 | +METER-001 ~ METER-003 |
+表务模块正文 | +数据库设计、接口设计 | +
| 报装与签章 | +INST-001 ~ INST-003 |
+报装与签章模块正文 | +CA 补充说明、安全设计 | +
| 架构图对象 | +当前详设承接方式 | +说明 | +
|---|---|---|
UP-001 ~ UP-005 |
+11_UP_Detailed.md |
+UP-005 当前并入统一平台运维支撑能力表达 |
+
REV-001 ~ REV-009 |
+12_REV_Detailed.md |
+与营收业务主链路一一对齐 | +
CS-001 ~ CS-007 |
+13_CS_Detailed.md |
+与客户服务正文一一对齐 | +
WECHAT-001 ~ WECHAT-008 |
+13_CS_Detailed.md |
+当前作为渠道侧映射,不单独拆出微网厅平行详设 | +
MOBILE-001 ~ MOBILE-006 |
+12_REV_Detailed.md +
+14_METER_Detailed.md |
+当前作为移动抄表 / 现场作业协同能力承接 | +
WORK-001 ~ WORK-004 |
+协同承接 | +当前在客户服务、表务、报装正文中按工单 / 流程支撑能力引用 | +
架构图 METER-001 ~ METER-003 |
+14_METER_Detailed.md |
+当前详设已修正为与架构图一致的三段式编号,多余内容改为子能力章节 | +
架构图 INST-001 ~ INST-003 |
+15_INST_Detailed.md |
+当前详设已修正为与架构图一致的三段式编号,多余内容改为子能力章节 | +
SYS-008/009/010 |
+接口与协同承接 | +当前不在详细设计目录新增平行主稿,主要在概要、接口和相关业务正文中描述 | +
| 模块编号 | +模块名称 | +模块正文定位 | +关键数据域(摘要) | +关键接口编号(摘要) | +主要协同对象 | +
|---|---|---|---|---|---|
UP-001 |
+统一认证与单点登录 | +章节 | +用户、令牌、登录日志 | +IF-UP-001、IF-UP-002 |
+各接入端、统一平台 | +
UP-002 |
+组织用户与权限管理 | +章节 | +组织、岗位、角色、权限 | +IF-UP-003 |
+各业务模块 | +
UP-003 |
+参数字典与基础配置 | +章节 | +字典、价格、地址、任务参数 | +IF-UP-004 |
+营收、表务、报装 | +
UP-004 |
+审计监控与运维支撑 | +章节 | +操作日志、接口日志、任务日志 | +IF-UP-003(审计关联) |
+运维平台、消息服务 | +
REV-001 |
+客户资料管理 | +章节 | +客户、账户、联系人、绑定关系 | +IF-REV-001 |
+客户服务、表务、报装 | +
REV-002 |
+抄表开账 | +章节 | +抄表任务、读数、账单主明细 | +IF-REV-004、IF-REV-005 |
+抄表APP、IoT、表务 | +
REV-003 |
+营业收费 | +章节 | +营业账、交易流水、回调记录 | +IF-REV-006 |
+SYS-009 支付结算 |
+
REV-004 |
+账务处理 | +章节 | +账单调整、日志、审批留痕 | +IF-REV-007 |
+财务、营收后台 | +
REV-005 |
+发票与税务处理 | +章节 | +发票主记录、税率、开票信息 | +IF-REV-008 |
+SYS-008 发票服务 |
+
REV-006 |
+催缴与通知 | +章节 | +欠费账单、催缴结果 | +IF-REV-009 |
+SYS-010 消息服务 |
+
REV-007 |
+统计分析 | +章节 | +客户、抄表、收费、渠道聚合 | +IF-REV-010 |
+报表与管理端 | +
REV-008 |
+代收与银行业务 | +章节 | +渠道、签约、批次、对账、结算 | +IF-REV-011 |
+银行、SYS-009 |
+
REV-009 |
+业务参数配置 | +章节 | +参数配置、页面配置、价格模板 | +IF-REV-012 |
+统一平台、营收模块 | +
CS-001 |
+账户绑定管理 | +章节 | +渠道绑定、客户账户 | +IF-CS-001 |
+微信、支付宝、微网厅 | +
CS-002 |
+信息查询服务 | +章节 | +账单、缴费、发票、流水 | +IF-CS-002 |
+客户渠道、营收系统 | +
CS-003 |
+在线缴费服务 | +章节 | +订单、交易、回调 | +IF-CS-003 |
+SYS-009 支付结算 |
+
CS-004 |
+电子发票服务 | +章节 | +发票申请、税率、下载记录 | +IF-CS-004 |
+SYS-008 发票服务 |
+
CS-005 |
+营业网点服务 | +章节 | +网点信息、业务范围 | +IF-CS-005 |
+客户渠道 | +
CS-006 |
+业务办理服务 | +章节 | +办理申请、办理状态 | +IF-CS-006 |
+工单系统、消息服务 | +
CS-007 |
+柜面扫码支付 | +章节 | +柜面订单、流水、核销状态 | +IF-CS-007 |
+营业厅、SYS-009 |
+
METER-001 |
+表务基础管理 | +章节 | +基础参数、水表主档、状态 | +IF-METER-001 |
+营收、报装 | +
METER-002 |
+仓库与库存管理 | +章节 | +库存、出入库、退库、报废 | +IF-METER-003 |
+仓储管理端 | +
METER-003 |
+设备档案管理 | +章节 | +设备档案、工单留痕、远程同步 | +IF-METER-001、IF-METER-002、IF-METER-004 |
+工单系统、移动作业、IoT 平台 | +
INST-001 |
+报装流程管理 | +章节 | +申请单、资料附件、踏勘方案 | +IF-INST-001、IF-INST-002 |
+柜台、微网厅、政务、报装人员 | +
INST-002 |
+工程管理 | +章节 | +施工节点、验收结果、签章协同 | +IF-INST-003、IF-INST-004、IF-INST-005 |
+表务、客户建档、泛微 CA | +
INST-003 |
+档案管理 | +章节 | +档案、回执、过程日志 | +IF-INST-005 |
+报装、档案管理 | +
更新本索引时遵循以下顺序:
+01_Detailed_Design.md 中模块主内容;03_Technical_Design/03_Interface_Design.md;make validate-file FILE=docs/design/02_Detailed_Design/01_Detailed_Design.mdmake validate-file FILE=docs/design/02_Detailed_Design/02_Module_Traceability_Index.mdmake check-links2024年12月19日
+本文档用于沉淀系统总体架构的分层方式、子系统边界和跨系统协同原则,作为
+03_Summary_Design.md 的架构视图补充。
+本文不承载模块级实现细节、接口字段细节和数据库字段细节,避免与主文档重复维护。
03_Summary_Design.md(唯一真源)../02_Detailed_Design/01_Detailed_Design.md../03_Technical_Design/../04_Appendix/Archive/、../../guides/IF- 前缀。flowchart TB
+ subgraph Layer_Presentation["表现层"]
+ P_Web["Web 管理端"]
+ P_App["手机抄表 APP"]
+ P_Channel["微网厅/渠道端"]
+ end
+
+ subgraph Layer_Gateway["接入与网关层"]
+ G_Api["API 网关"]
+ G_Auth["统一认证与鉴权"]
+ end
+
+ subgraph Layer_Business["业务服务层"]
+ B_SYS001["SYS-001 统一平台"]
+ B_SYS002["SYS-002 营收业务系统"]
+ B_SYS003["SYS-003 手机抄表 APP 服务"]
+ B_SYS004["SYS-004 微网厅系统"]
+ B_SYS005["SYS-005 工单管理系统"]
+ B_SYS006["SYS-006 表务管理系统"]
+ B_SYS007["SYS-007 报装业务系统"]
+ B_SYS008["SYS-008 发票服务子系统"]
+ B_SYS009["SYS-009 支付与银行结算子系统"]
+ B_SYS010["SYS-010 消息服务子系统"]
+ end
+
+ subgraph Layer_Infrastructure["基础能力层"]
+ I_Workflow["工作流能力"]
+ I_File["文件与附件能力"]
+ I_Monitor["监控与审计能力"]
+ I_Integration["外部集成适配能力"]
+ end
+
+ subgraph Layer_Data["数据层"]
+ D_DM["达梦数据库 8.0+"]
+ D_Redis["Redis 缓存"]
+ D_Object["对象存储"]
+ end
+
+ Layer_Presentation --> Layer_Gateway
+ Layer_Gateway --> Layer_Business
+ Layer_Business --> Layer_Infrastructure
+ Layer_Business --> Layer_Data
+
+| 子系统 | +核心职责 | +边界说明 | +
|---|---|---|
| SYS-001 统一平台 | +认证、权限、组织、参数、租户、监控 | +不承载具体行业业务流程 | +
| SYS-002 营收业务系统 | +客户、抄表开账、收费、账务、客服核心能力 | +通过接口调用基础服务,不重复建设 | +
| SYS-003 手机抄表 APP | +现场作业、移动采集、任务处理 | +以移动作业能力为主,不替代后台管理 | +
| SYS-004 微网厅系统 | +客户线上服务与查询缴费 | +以渠道服务为主,不承载后台运营管理 | +
| SYS-005 工单管理系统 | +工单流转、状态跟踪、绩效统计 | +专注工单域,不内嵌收费结算逻辑 | +
| SYS-006 表务管理系统 | +表务档案、库存、设备管理 | +专注设备与库存域,不承担账务处理 | +
| SYS-007 报装业务系统 | +报装流程、工程与档案管理 | +专注报装域流程,不替代统一工单 | +
| SYS-008 发票服务子系统 | +开票与供应商适配 | +对外提供开票能力,不承载支付流程 | +
| SYS-009 支付与银行结算子系统 | +聚合支付、银行结算、对账 | +对外提供资金结算能力,不承载发票逻辑 | +
| SYS-010 消息服务子系统 | +短信/邮件/站内信等消息分发 | +对外提供消息能力,不承载业务决策 | +
IF- 前缀规则,保持可追踪性。../03_Technical_Design/04_Security_Design.md 为准。| 维度 | +架构要求 | +
|---|---|
| 可用性 | +关键链路具备故障隔离与恢复能力 | +
| 可扩展性 | +子系统边界稳定、能力可水平扩展 | +
| 可维护性 | +文档、编号、接口边界可追踪 | +
| 可观测性 | +关键流程具备日志、指标、审计记录 | +
++量化指标、容量规格与性能参数,以主文档和部署专项文档为准。
+
| 本文档章节 | +主文档对应章节 | +
|---|---|
| 总体逻辑架构 | +03_Summary_Design.md
+中“系统架构设计/系统的逻辑架构设计” |
+
| 子系统边界矩阵 | +03_Summary_Design.md 中“子系统定义/子系统列表” |
+
| 跨系统协同原则 | +03_Summary_Design.md 中“子系统间关系/主要接口定义” |
+
| 数据与部署原则 | +03_Summary_Design.md 中“系统的物理架构设计” |
+
make validate-file FILE=docs/design/01_Overview/02_System_Architecture.mdmake check-linksmake validate-mermaid2024年12月19日
+本文档定位为“单表规格补充与历史命名映射”,用于承接存量资料中的旧表名、专题扩展表与主文档之间的对照关系。
+边界约束:
+01_Database_Design.md
+为准;03_Interface_Design.md 为准;数据库相关口径按以下优先级使用:
+docs/design/03_Technical_Design/01_Database_Design.md(主文档)docs/design/03_Technical_Design/03_Interface_Design.md(接口数据对象)docs/design/02_Detailed_Design/01_Detailed_Design.md 与
+11~15 分模块正文docs/design/04_Appendix/Archive/ 历史资料数据库技术口径统一为 达梦数据库 8.0+(兼容 MySQL +语法习惯)。
+ +| 历史表名(存量资料) | +当前主口径 | +状态 | +说明 | +
|---|---|---|---|
water_customer |
+biz_cust |
+已收敛 | +客户主档 | +
water_account |
+biz_account |
+已收敛 | +客户账户 | +
water_meter |
+biz_meter |
+已收敛 | +水表主档 | +
water_meter_reading |
+biz_meter_read +
+biz_reading_data |
+已收敛 | +抄表任务与读数分离建模 | +
water_bill |
+biz_charge +
+biz_charge_detail |
+已收敛 | +账单主表与明细表分离 | +
water_payment |
+biz_collection +
+bk_transaction |
+已收敛 | +收费业务与渠道流水分离 | +
water_invoice |
+biz_invoice +
+biz_invoice_taxrate |
+已收敛 | +发票申请与税率配置 | +
water_meter_workorder |
+biz_meter_log +
+biz_process_transfer |
+已收敛 | +表务工单过程留痕 | +
water_meter_stock |
+biz_meter_in_out |
+已收敛 | +库存主记录 | +
water_meter_inventory |
+biz_meter_in_out_rel |
+已收敛 | +出入库关联明细 | +
water_meter_archive |
+biz_meter +
+biz_last_reading |
+已收敛 | +档案与状态统一收口 | +
++ +说明:上述
+water_*+名称仅用于历史资料追溯,不作为当前正式设计与实施命名。
| 数据域 | +主要表 | +口径 | +
|---|---|---|
| 水表基础档案 | +biz_meter、biz_meter_model、biz_meter_caliber、biz_meter_range |
+实现态 | +
| 抄表与读数 | +biz_meter_read、biz_reading_data、biz_last_reading |
+实现态 | +
| 工单与处理留痕 | +biz_meter_log、biz_process、biz_process_transfer |
+实现态 | +
| 库存与生命周期 | +biz_meter_in_out、biz_meter_in_out_rel |
+实现态 | +
| 数据域 | +主要表 | +口径 | +
|---|---|---|
| 报装流程主线 | +biz_process、biz_process_transfer、biz_business_datas |
+实现态 | +
| 报装资料附件 | +biz_content、biz_content_attach |
+实现态 | +
| 合同签章扩展 | +installation_contract、installation_signature、installation_evidence |
+专题设计态 | +
| CA 配置与模板 | +installation_ca_config、installation_signature_template |
+专题设计态 | +
专题来源参考:
+docs/design/02_Detailed_Design/14_METER_Detailed.mddocs/design/02_Detailed_Design/15_INST_Detailed.mddocs/design/04_Appendix/01_Overview_CA.mddocs/design/04_Appendix/02_Database_Design_CA.md01_Database_Design.md,再更新本映射文档;02_Detailed_Design/02_Module_Traceability_Index.md;make validate-file FILE=docs/design/03_Technical_Design/01_Database_Design.mdmake validate-file FILE=docs/design/03_Technical_Design/02_Table_Specs.mdmake check-links2024年12月19日
+本文件是 01_Detailed_Design.md 中
+INST-002 工程管理
+下“合同签署与电子签章能力”的专项补充文档,重点补充:
权威边界:
+01_Detailed_Design.md 为准;../04_Appendix/03_CA_Integration_Summary.md;../03_Technical_Design/04_Security_Design.md 为准。flowchart LR
+ subgraph INST[报装业务系统]
+ A[合同管理]
+ B[签章任务中心]
+ C[回执处理]
+ D[档案归档]
+ end
+
+ subgraph CA[泛微 CA 电子签章平台]
+ E[身份认证接口]
+ F[签章接口]
+ G[时间戳接口]
+ H[存证接口]
+ end
+
+ A --> B
+ B --> E
+ B --> F
+ B --> G
+ B --> H
+ F --> C
+ G --> C
+ H --> C
+ C --> D
+
+边界说明:
+| 接口方向 | +业务接口编号 | +对接接口名称 | +关键输入 | +关键输出 | +
|---|---|---|---|---|
| 报装系统 → CA | +IF-INST-003 |
+合同签署发起 | +合同ID、签署方、签署位置、业务流水号 | +签章任务ID、受理状态 | +
| 报装系统 → CA | +IF-INST-003 |
+身份认证调用 | +用户标识、认证类型、认证要素 | +认证结果、认证凭证 | +
| 报装系统 → CA | +IF-INST-003 |
+时间戳申请 | +签章摘要哈希、请求时间 | +时间戳令牌、签发时间 | +
| 报装系统 → CA | +IF-INST-003 |
+存证申请 | +签章后文档摘要、元数据 | +存证ID、存证状态 | +
| CA → 报装系统 | +IF-INST-004 |
+签章结果回执 | +任务ID、签章状态、凭证编号、失败原因 | +回写结果、重试标记 | +
| 字段 | +说明 | +约束 | +
|---|---|---|
biz_trace_id |
+业务追踪ID | +必填;同一签署流程全链路唯一 | +
contract_id |
+合同ID | +必填;与报装申请单关联 | +
sign_task_id |
+签章任务ID | +回执必填;用于幂等去重 | +
sign_status |
+签署状态 | +必填;INIT/PROCESSING/SUCCESS/FAILED |
+
evidence_id |
+存证ID | +成功场景必填 | +
error_code |
+异常码 | +失败场景必填 | +
error_message |
+异常描述 | +失败场景必填;可审计 | +
callback_time |
+回执时间 | +必填;用于超时判断 | +
stateDiagram-v2
+ [*] --> INIT
+ INIT --> PROCESSING: 发起签署
+ PROCESSING --> SUCCESS: 回执成功
+ PROCESSING --> FAILED: 回执失败
+ FAILED --> PROCESSING: 人工重试/系统重试
+ SUCCESS --> ARCHIVED: 完成归档
+ ARCHIVED --> [*]
+
+sign_task_id
+回执必须幂等处理,禁止重复更新业务状态;| 异常类型 | +检测方式 | +处理策略 | +人工介入条件 | +
|---|---|---|---|
| 网络超时 | +请求超时/连接异常 | +指数退避重试(最多3次) | +连续失败或超时超过阈值 | +
| CA受理失败 | +返回失败码 | +写入补偿队列并通知业务端 | +失败码为不可恢复类 | +
| 回执丢失 | +超时未回执 | +主动查询 + 重放回执校验 | +超过最大等待窗口 | +
| 数据校验失败 | +字段缺失/签名不匹配 | +拒绝入库并告警 | +连续出现同类异常 | +
补偿要求:
+biz_trace_id;| 指标 | +说明 | +建议阈值 | +
|---|---|---|
| 签章成功率 | +成功任务 / 总任务 | +日均 ≥ 99% | +
| 回执时延P95 | +发起到回执耗时 | +≤ 5 秒 | +
| 补偿队列积压 | +待补偿任务数 | +告警阈值按租户配置 | +
| 幂等冲突次数 | +重复回执冲突数 | +连续异常触发告警 | +
2024年12月19日
+| 项目信息 | +详情 | +
|---|---|
| 项目名称 | +福建水务营收系统 | +
| 文档类型 | +接口设计文档 | +
| 技术框架 | +Spring Cloud Alibaba + RuoYi-Vue-Pro + yudao-ui-admin-vue3 | +
| 文档版本 | +v1.0 | +
| 编写日期 | +2026-03-11 | +
| 文档状态 | +✅ 已完成(按版本迭代) | +
本文档用于描述福建水务营收系统的接口边界、调用方式、核心接口清单以及与外围子系统的协同关系,重点统一
+SYS-002 营收业务系统的接口口径。
本次接口整编遵循以下事实来源:
+docs/design/02_Detailed_Design/01_Detailed_Design.mddocs/design/03_Technical_Design/01_Database_Design.mddocs/guides/BACKEND_CURRENT_STATUS.mddocs/guides/BACKEND_TABLE_MAPPING.mdoutput/preview/福建水务营收系统整体架构图.html++ +说明:本文档优先描述正式设计边界与业务接口职责,不将 backend +中尚未明确识别的内部实现细节误写为既有接口事实。对于历史资料中存在、但当前 +backend 未完全确认的接口对象,统一按“文档先行”处理。
+
IF-UP-*、IF-REV-*、IF-CS-*、IF-METER-*、IF-INST-*、IF-EXT-*
+规则。SYS-002
+负责营收业务主流程,发票、支付结算、消息触达分别通过
+SYS-008、SYS-009、SYS-010
+协同完成。biz_* 与 bk_* 表,不再沿用旧稿中的
+customer_*、billing_*、thirdpay_*、service_*
+等历史命名。内部 REST 接口统一采用如下响应模型:
+{
+ "code": 0,
+ "data": {},
+ "msg": "success"
+}分页响应统一采用:
+{
+ "code": 0,
+ "data": {
+ "list": [],
+ "total": 0,
+ "pageNo": 1,
+ "pageSize": 10
+ },
+ "msg": "success"
+}| 模块编号 | +模块名称 | +接口职责定位 | +
|---|---|---|
| REV-001 | +客户资料管理 | +客户、账户、联系人、水表绑定等主数据查询与维护 | +
| REV-002 | +抄表开账 | +抄表任务、抄表数据、校验、开账触发 | +
| REV-003 | +营业收费 | +收费受理、账单核销、柜台与渠道收款状态回写 | +
| REV-004 | +账务处理 | +调整、退款、冲正、坏账等账务处理申请与结果回写 | +
| REV-005 | +发票管理 | +发票申请、开票结果回写、票据状态查询 | +
| REV-006 | +催缴管理 | +催缴名单生成、催缴任务下发、通知结果回写 | +
| REV-007 | +统计分析 | +营收、抄表、收费、客户、渠道统计查询 | +
| REV-008 | +代收业务 | +银行代收、代扣、送盘、回盘、对账、结算协同 | +
| REV-009 | +业务参数配置 | +水价、费用组成、业务参数、页面参数等配置接口 | +
| 模块编号 | +模块名称 | +接口职责定位 | +
|---|---|---|
| CS-001 | +账户绑定管理 | +客户绑定、解绑、默认客户切换 | +
| CS-002 | +信息查询服务 | +账单、欠费、用水、缴费、停水公告等查询 | +
| CS-003 | +在线缴费服务 | +创建线上支付订单、支付状态查询 | +
| CS-004 | +电子发票服务 | +发票申请、发票列表、下载与推送 | +
| CS-005 | +营业网点服务 | +网点查询、预约、导航、业务事项查询 | +
| CS-006 | +业务办理服务 | +更名、过户、低保、换表、自主抄表等线上办理 | +
| CS-007 | +柜面扫码支付 | +柜台二维码收款、订单生成、支付结果回写 | +
| 协同子系统 | +协同内容 | +SYS-002 职责 | +对方职责 | +
|---|---|---|---|
| SYS-008 发票服务 | +发票开具、作废、红冲、票据查询 | +提供业务上下文、账单信息、客户开票信息,接收结果回写 | +承接税控与电子发票能力 | +
| SYS-009 支付与银行结算 | +微信/支付宝支付、银行实时收费、代扣、对账、结算 | +发起订单、接收支付结果、维护账单核销状态 | +承接支付渠道、交易流水、回调、对账与结算 | +
| SYS-010 消息服务 | +催缴通知、缴费结果通知、办理进度通知 | +生成待通知业务事件与目标用户 | +承接短信、微信公众号、站内信等触达能力 | +
| 接口分类 | +主要对接方 | +典型协议 | +说明 | +
|---|---|---|---|
| 银行代收/代扣接口 | +银行、银联、托收平台 | +文件交换 / HTTPS REST | +主要服务 REV-008 | +
| 聚合支付接口 | +微信支付、支付宝等 | +HTTPS REST + 回调 | +主要服务 REV-003、CS-003、CS-007 | +
| 发票协同接口 | +税控/电子发票平台 | +HTTPS REST | +主要服务 REV-005、CS-004 | +
| 消息通知接口 | +短信平台、消息网关 | +HTTPS REST / MQ | +主要服务 REV-006、CS-006 | +
| 物联网集抄接口 | +集抄平台、IoT 平台 | +HTTPS REST / MQ | +主要服务 REV-002 | +
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-001 | +
| 接口名称 | +银行代扣批次下发接口 | +
| 归属模块 | +REV-008 | +
| 调用方向 | +SYS-002 → SYS-009 / 银行渠道 | +
| 接口方式 | +文件交换或 HTTPS REST | +
| 业务说明 | +按账期生成待代扣账单批次,交由银行渠道执行代扣 | +
| 核心数据支撑 | +biz_withholding、bk_withholding_batch、bk_withholding_item |
+
关键报文信息包括:客户号、签约号、扣款金额、账期、渠道编码、批次号等。
+边界约束: - 当前正式设计包含代扣送盘、回盘与对账的目标边界;其中
+BankWithholding
+已具备送盘、送盘状态查询、取消送盘等六条银行入口的最小实现态闭环证据。 -
+正式文档可将 BankWithholding
+六条银行入口写为“已实现”,但需同时注明真实银行文件解析、SFTP/文件通道联调与运行态样本仍待补证。
+- 涉及批量文件交互时,正式口径保留 HTTP/REST/SFTP
+与文件命名、批次号约束,不下沉到特定银行私有报文字段。 -
+运行时文件传输配置统一由解析器输出
+protocol/resolvedDir/resolvedPath/fileName/sourceScope;优先级固定为
+TENANT_CHANNEL > TENANT > CHANNEL > DEFAULT,高优先级仅覆盖部分字段时按字段级回退。
+- 命中协议缺少
+host/port/username/credentialRef、阶段目录为空或模板变量非法时,接口必须立即返回配置错误,不得回退到错误租户或错误通道。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-002 | +
| 接口名称 | +银行代扣回盘接收接口 | +
| 归属模块 | +REV-008 | +
| 调用方向 | +银行渠道 / SYS-009 → SYS-002 | +
| 接口方式 | +文件交换或 HTTPS REST | +
| 业务说明 | +接收代扣成功、失败、退票等结果并回写业务状态 | +
| 核心数据支撑 | +bk_withholding_batch、bk_withholding_item、bk_transaction、bk_transaction_exception |
+
边界约束: -
+回盘处理、回盘状态查询、差异核对和结算确认属于同一能力簇;其中
+BankWithholding
+的回盘与回盘状态查询已具备最小实现态闭环证据,但完整差异核对、异常补偿和结算确认仍属后续完善项。
+-
+当前正式文档允许保留回盘文件名、批次号、回盘日期、结果状态等正式字段约束,但不得把未落地的真实文件解析、异常补偿和结算闭环写成既成事实。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-003 | +
| 接口名称 | +银行实时收费接口 | +
| 归属模块 | +REV-003 / REV-008 | +
| 调用方向 | +银行渠道 / SYS-009 ↔︎ SYS-002 | +
| 接口方式 | +HTTPS REST | +
| 业务说明 | +支撑柜台、网银、手机银行实时查询应收并完成缴费 | +
| 核心数据支撑 | +biz_charge、biz_charge_detail、bk_transaction、bk_transaction_callback |
+
边界约束: - 当前 backend +已确认欠费查询与缴费处理具备实现证据,可作为正式文档中的已落地基础能力。 +- +代理收费对账、汇总对账和当日未对账红冲等扩展能力当前仍未形成完整实现闭环,正式文档须标注为后续完善项。
+| 接口动作 | +推荐归属 | +当前代码路径 | +当前状态 | +正式口径 | +
|---|---|---|---|---|
| 代扣签约 | +REV-008 / SYS-009 | +BankWithholdingController#signing |
+已实现 | +可作为正式接口能力写入 | +
| 代扣解约 | +REV-008 / SYS-009 | +BankWithholdingController#termination |
+已实现 | +可作为正式接口能力写入 | +
| 托收签约 | +REV-008 / SYS-009 | +BankCollectionController#signing |
+已实现 | +可作为正式接口能力写入 | +
| 托收解约 | +REV-008 / SYS-009 | +BankCollectionController#termination |
+已实现 | +可作为正式接口能力写入 | +
| 客户状态查询 | +REV-008 / SYS-009 | +BankWithholdingController#customerCheck /
+BankCollectionController#customerCheck |
+代扣已实现;托收部分实现 | +代扣可作为正式接口能力写入;托收仅保留正式契约边界与结果状态 | +
| 送盘 | +REV-008 / SYS-009 | +BankWithholdingController#sendDisc /
+BankCollectionController#sendDisc |
+代扣已实现;托收部分实现 | +代扣可作为正式接口能力写入;托收仅保留正式契约边界与批次发送语义 | +
| 送盘状态查询 | +REV-008 / SYS-009 | +BankWithholdingController#sendDiscCheck /
+BankCollectionController#sendDiscCheck |
+代扣已实现;托收部分实现 | +代扣可作为正式接口能力写入;托收仅保留正式契约边界与批次状态语义 | +
| 取消送盘 | +REV-008 / SYS-009 | +BankWithholdingController#cancelDisc /
+BankCollectionController#cancelDisc |
+代扣已实现;托收部分实现 | +代扣可作为正式接口能力写入;托收仅保留正式契约边界与可取消条件 | +
| 回盘 | +REV-008 / SYS-009 | +BankWithholdingController#backDisc /
+BankCollectionController#backDisc |
+代扣已实现;托收部分实现 | +代扣可作为正式接口能力写入;托收仅保留正式契约边界与回盘处理语义 | +
| 回盘状态查询 | +REV-008 / SYS-009 | +BankWithholdingController#backDiscCheck /
+BankCollectionController#backDiscCheck |
+代扣已实现;托收部分实现 | +代扣可作为正式接口能力写入;托收仅保留正式契约边界与回盘状态语义 | +
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-004 | +
| 接口名称 | +聚合支付下单接口 | +
| 归属模块 | +REV-003 / CS-003 / CS-007 | +
| 调用方向 | +SYS-002 → SYS-009 | +
| 接口方式 | +HTTPS REST | +
| 业务说明 | +创建微信、支付宝等支付订单,返回二维码、收银参数或支付跳转信息 | +
| 核心数据支撑 | +biz_charge、biz_collection、bk_transaction |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-005 | +
| 接口名称 | +聚合支付结果回调接口 | +
| 归属模块 | +REV-003 / CS-003 / CS-007 | +
| 调用方向 | +SYS-009 → SYS-002 | +
| 接口方式 | +HTTPS REST + 签名校验 | +
| 业务说明 | +接收支付成功、失败、关闭、退款等异步事件,并更新收费状态 | +
| 核心数据支撑 | +bk_transaction_callback、biz_collection、biz_charge |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-006 | +
| 接口名称 | +发票开具协同接口 | +
| 归属模块 | +REV-005 / CS-004 | +
| 调用方向 | +SYS-002 → SYS-008 | +
| 接口方式 | +HTTPS REST | +
| 业务说明 | +传递账单、客户、抬头、税率等信息,由 SYS-008 承接开票 | +
| 核心数据支撑 | +biz_invoice、biz_invoice_taxrate、biz_cust_invoice |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-007 | +
| 接口名称 | +发票结果回写接口 | +
| 归属模块 | +REV-005 / CS-004 | +
| 调用方向 | +SYS-008 → SYS-002 | +
| 接口方式 | +HTTPS REST | +
| 业务说明 | +回写开票状态、票据编号、下载地址、作废/红冲结果 | +
| 核心数据支撑 | +biz_invoice、biz_process_invoice_modifys |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-008 | +
| 接口名称 | +消息触达接口 | +
| 归属模块 | +REV-006 / CS-006 | +
| 调用方向 | +SYS-002 → SYS-010 | +
| 接口方式 | +HTTPS REST 或 MQ | +
| 业务说明 | +承接催缴通知、办理进度通知、缴费结果通知等消息事件,返回受理结果并回传执行结果 | +
| 核心数据支撑 | +biz_charge、biz_process、biz_operat_log |
+
边界约束: - IF-EXT-008
+只负责渠道触达执行与回执回传,不负责催缴候选对象筛选、任务生成或业务状态主控。
+- SYS-010 回传的渠道执行结果需由 SYS-002
+映射为
+PENDING、SUCCESS、FAIL、MANUAL_VERIFIED
+四态业务状态。 - 当仅返回受理成功但未返回终态时,SYS-002
+维持 PENDING;若长期无终态且人工核查确认,可转
+MANUAL_VERIFIED。 - 消息模板、供应商协议和重试细节由
+SYS-010 管理,不在 IF-EXT-008
+展开实现细节。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-EXT-009 | +
| 接口名称 | +集抄数据接入接口 | +
| 归属模块 | +REV-002 | +
| 调用方向 | +IoT 平台 / 集抄平台 → SYS-002 | +
| 接口方式 | +HTTPS REST / MQ | +
| 业务说明 | +接收远传读数、设备状态、异常告警,触发抄表校验与开账准备 | +
| 核心数据支撑 | +biz_meter_read、biz_reading_data、biz_last_reading |
+
| 接口编号 | +接口名称 | +归属模块 | +主要用途 | +主要数据对象 | +
|---|---|---|---|---|
| IF-REV-001 | +客户信息查询接口 | +REV-001 | +查询客户档案、联系人、账户、水表绑定关系 | +biz_cust、biz_account、biz_cust_contact、biz_cust_meter |
+
| IF-REV-002 | +客户主数据维护接口 | +REV-001 | +新增、变更客户档案及开票/托收/代扣关系 | +biz_cust、biz_cust_invoice、biz_cust_collection_rel、biz_cust_withholding_rel |
+
| IF-REV-003 | +抄表任务下发接口 | +REV-002 | +按册本、片区、抄表周期生成抄表任务 | +biz_meter_book、biz_meter_read |
+
| IF-REV-004 | +抄表数据提交接口 | +REV-002 | +提交抄表数据、图片、异常标记并触发校验 | +biz_reading_data、biz_reading_logs、biz_last_reading |
+
| IF-REV-005 | +账单生成接口 | +REV-002 | +根据抄表结果、价格模板和费用组成生成账单 | +biz_charge、biz_charge_detail、biz_price_template、biz_cost_component |
+
| IF-REV-006 | +缴费处理接口 | +REV-003 | +创建收费记录、核销账单、回写收款结果 | +biz_collection、biz_charge、bk_transaction |
+
| IF-REV-007 | +账务调整接口 | +REV-004 | +发起金额调整、退款、冲正、坏账等业务处理 | +biz_charge、biz_charge_detail、biz_operat_log |
+
| IF-REV-008 | +发票申请接口 | +REV-005 | +后台发起单笔/批量开票申请并生成受理主键 | +biz_invoice、biz_invoice_taxrate、biz_cust_invoice |
+
| IF-REV-009 | +发票结果查询接口 | +REV-005 | +按申请单号/受理号查询开票结果并执行补偿查询 | +biz_invoice、biz_operat_log |
+
| IF-REV-013 | +催缴任务生成与结果承接接口 | +REV-006 | +生成催缴任务、查询任务结果并承接四态状态回写 | +biz_charge、biz_operat_log、历史催缴查询口径 |
+
| IF-REV-010 | +统计查询接口 | +REV-007 | +查询营收、收费、欠费、渠道、客户统计结果 | +聚合视图 / 统计结果集 | +
| IF-REV-011 | +银行代收协同接口 | +REV-008 | +发起代扣、回盘、对账、结算协同 | +biz_withholding、bk_reconcile_batch、bk_settlement_batch |
+
| IF-REV-012 | +业务参数配置接口 | +REV-009 | +查询和维护价格模板、优惠方案、业务参数配置 | +biz_parameter_settings、biz_price_*、biz_page_settings* |
+
| 接口编号 | +接口名称 | +归属模块 | +主要用途 | +主要数据对象 | +
|---|---|---|---|---|
| IF-CS-001 | +账户绑定接口 | +CS-001 | +绑定、解绑、切换默认客户 | +biz_cust_app_binds、biz_cust |
+
| IF-CS-002 | +历史账单查询接口 | +CS-002 | +查询账单、欠费、用水历史、缴费记录 | +biz_charge、biz_charge_detail、biz_reading_data |
+
| IF-CS-003 | +在线支付下单接口 | +CS-003 | +创建微信/支付宝线上支付订单 | +biz_charge、biz_collection、bk_transaction |
+
| IF-CS-004 | +电子发票消费接口 | +CS-004 | +查询、下载、推送本人已开具电子发票 | +biz_invoice、biz_cust_invoice |
+
| IF-CS-005 | +网点与业务办理接口 | +CS-005 | +查询营业网点、预约信息、可办事项 | +biz_outlets、biz_business_types |
+
| IF-CS-006 | +业务办理进度接口 | +CS-006 | +提交业务申请、查询办理进度与附件 | +biz_process、biz_process_transfer、biz_content_attach |
+
| IF-CS-007 | +柜面扫码支付接口 | +CS-007 | +创建柜面扫码支付订单并回写结果 | +biz_collection、bk_transaction、biz_charge |
+
| 接口编号 | +接口名称 | +归属模块 | +主要用途 | +主要数据对象 | +
|---|---|---|---|---|
| IF-UP-001 | +用户登录接口 | +UP-001 | +用户登录并获取访问令牌 | +system_users、system_oauth2_access_token、system_login_log |
+
| IF-UP-002 | +用户信息接口 | +UP-001 | +查询当前登录用户上下文信息 | +system_users、system_dept |
+
| IF-UP-003 | +权限校验接口 | +UP-002 | +校验菜单、按钮、数据权限 | +system_role、system_role_menu、system_user_role |
+
| IF-UP-004 | +参数字典接口 | +UP-003 | +查询字典、参数、配置项 | +system_dict_type、system_dict_data、biz_parameter_settings |
+
| 接口编号 | +接口名称 | +归属模块 | +主要用途 | +主要数据对象 | +
|---|---|---|---|---|
| IF-METER-001 | +水表档案查询接口 | +METER-001 | +查询水表档案、状态与生命周期信息 | +biz_meter、biz_meter_model、biz_meter_caliber、biz_meter_range |
+
| IF-METER-002 | +表务工单处理接口 | +METER-003 | +提交换表、移表、校表、维修等工单处理结果 | +biz_meter_log、biz_process、biz_process_transfer |
+
| IF-METER-003 | +库存出入库接口 | +METER-002 | +处理领用、退库、报废等库存动作 | +biz_meter_in_out、biz_meter_in_out_rel |
+
| IF-METER-004 | +集抄数据接收接口 | +METER-003 | +接收远传抄表、异常告警并同步状态 | +biz_reading_data、biz_meter_read、biz_last_reading |
+
| 接口编号 | +接口名称 | +归属模块 | +主要用途 | +主要数据对象 | +
|---|---|---|---|---|
| IF-INST-001 | +报装申请提交接口 | +INST-001 | +提交报装申请、附件与基础资料 | +biz_process、biz_content、biz_content_attach |
+
| IF-INST-002 | +踏勘结果回填接口 | +INST-001 | +回填现场踏勘、方案与审核结果 | +biz_process_transfer、biz_business_datas |
+
| IF-INST-003 | +合同签署发起接口 | +INST-002 | +发起电子签章任务并传输合同信息 | +installation_contract、installation_signature |
+
| IF-INST-004 | +签章回执接口 | +INST-002 | +回写签章结果、时间戳和存证信息 | +installation_signature、installation_evidence |
+
| IF-INST-005 | +报装归档接口 | +INST-003 | +归档申请、合同、验收与签章回执资料 | +biz_content_attach、installation_evidence |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-UP-001 | +
| 归属模块 | +UP-001 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/system/auth/login |
+
| 功能描述 | +统一认证入口,签发访问令牌并输出用户上下文 | +
| 核心表 | +system_users、system_oauth2_access_token、system_login_log |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-001 | +
| 归属模块 | +REV-001 | +
| 请求方式 | +GET | +
| 请求路径 | +/admin-api/revenue/customer/{id} |
+
| 功能描述 | +查询客户主档、账户状态、联系人、水表绑定及开票资料 | +
| 核心表 | +biz_cust、biz_account、biz_cust_contact、biz_cust_meter、biz_cust_invoice |
+
响应结果以客户主档为中心,组合返回账户余额、欠费金额、联系人列表、水表列表与开票资料摘要。
+| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-004 | +
| 归属模块 | +REV-002 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/revenue/reading-data/create |
+
| 功能描述 | +接收人工或远传抄表数据,执行校验、估抄判断、异常标记 | +
| 核心表 | +biz_meter_read、biz_reading_data、biz_last_reading、biz_reading_logs |
+
典型请求体:
+{
+ "meterReadId": 1001,
+ "meterId": 2001,
+ "readTime": "2026-03-11 09:30:00",
+ "currentReading": 156.32,
+ "readType": "MANUAL",
+ "photoList": [
+ "file-001",
+ "file-002"
+ ],
+ "gps": "119.2965,26.0745",
+ "remark": "现场抄表正常"
+}| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-005 | +
| 归属模块 | +REV-002 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/revenue/charge/generate |
+
| 功能描述 | +基于抄表结果、水价模板、阶梯规则、费用组成生成账单,并返回成功清单、失败清单与生成汇总 | +
| 核心表 | +biz_charge、biz_charge_detail、biz_price_template、biz_price_tier_adjustment、biz_cost_component |
+
边界约束: -
+本接口只负责抄表校验完成后的账单生成,不直接承接收费核销、发票申请、催缴执行或统计汇总。
+- 正式请求范围可按抄表批次、客户集合或抄表任务集合组织;当前 backend
+已实现入口为 /business/charge/charge-batch 与
+/business/charge/check-charge-batch,请求体仅接受
+readingDataIds。 -
+价格模板、费用组成、阶梯规则、计划用水方案等任一关键规则缺失时,应阻断生成并返回失败原因,而不是生成不完整账单。
+- 特殊开账、无码客户开账、罚款类开账等非标准来源仍沿用同一
+biz_charge / biz_charge_detail
+承接口径,不单设平行在线账表。 - 当前实现仅支持
+SettleTypeEnum.ACTUAL_USAGE;固定水量、按人口数、最低消费等结算方式暂未纳入现有开账链路。
当前 backend 证据与契约缺口: -
+ChargeServiceImpl.generateCheckChargeBatch 已支持“批量复核
++ 批量开账”,并通过 generateSingleChargeWithCache 写入
+biz_charge、biz_charge_detail,说明主明细承接路径已存在。
+- 返回值当前为
+CommonResult<String>,仅表达“本次复核成功X条 /
+本次开账成功Y条”,尚未提供正式契约要求的成功清单、失败清单、生成汇总和主明细结果对象。
+- 单条失败当前主要以 log.warn + false
+跳过处理,尚未形成可直接对外返回的结构化阻断码、失败原因集合与对象范围。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-006 | +
| 归属模块 | +REV-003 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/revenue/collection/create |
+
| 功能描述 | +处理柜台收费、预存抵扣、渠道收款确认与账单核销 | +
| 核心表 | +biz_collection、biz_charge、bk_transaction |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-007 | +
| 归属模块 | +REV-004 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/revenue/accounting/adjust |
+
| 功能描述 | +发起水量调整、金额调整、退款、冲正、坏账申请五类账务处理,并统一返回处理结果、审批边界与账单回写状态 | +
| 核心表 | +biz_charge、biz_charge_detail、biz_operat_log、bk_transaction* |
+
边界约束: - 一期仅覆盖
+USAGE、AMOUNT、REFUND、REVERSE、BAD_DEBT
+五类 adjustType。 - 退款、冲正必须提供
+sourceTradeNo
+并完成原交易校验;其他场景不得误用支付流水替代业务依据。 -
+审批相关内容仅保留
+approvalRequired、PENDING_APPROVAL
+与边界说明,不展开 BPM 节点与审批回写实现细节。 -
+resultStatus 与 writeBackStatus
+必须分离表达,前者表示处理结论,后者表示账单状态回写结论。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-008 | +
| 归属模块 | +REV-005 | +
| 请求方式 | +POST | +
| 请求路径 | +/business/invoice/apply |
+
| 功能描述 | +后台对已收费未开票账单发起单笔/批量开票申请,并在同一管理域内受理作废/红冲后处理入口 | +
| 核心表 | +biz_invoice、biz_invoice_taxrate、biz_cust_invoice |
+
边界约束: -
+一期仅支持后台营业收费员/财务人员发起申请,客户侧不直接调用本接口。 -
+发票开具、作废、红冲能力均由 SYS-008
+统一承接税控侧处理,SYS-002
+负责业务单据归集、申请发起、后台作废/红冲触发、查询补偿与结果落账。 -
+后台发票后处理沿同一管理域补充 /business/invoice/invalidate
+与 /business/invoice/red-ink
+两个入口,分别承接作废与红冲动作;处理结果继续通过
+IF-REV-009 或 IF-EXT-007 统一收口。 -
+原始单账单不支持直接任意部分金额开票;如需多张发票,应基于拆账/分账后的账单集合申请。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-009 | +
| 归属模块 | +REV-005 | +
| 请求方式 | +POST | +
| 请求路径 | +/business/invoice/query(补偿查询:/business/invoice/query/compensate) |
+
| 功能描述 | +后台按申请单号/受理号查询开票、作废或红冲结果,并支持系统补偿查询兜底 | +
| 核心表 | +biz_invoice、biz_operat_log |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-013 | +
| 归属模块 | +REV-006 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/revenue/reminder/task(查询:/admin-api/revenue/reminder/task/query,人工核查:/admin-api/revenue/reminder/task/manual-verify) |
+
| 功能描述 | +基于欠费账单、催缴策略和渠道偏好生成催缴任务,查询任务状态,并承接业务侧四态结果与处置引用 | +
| 核心表 | +biz_charge、biz_charge_detail、biz_operat_log、历史催缴查询口径 |
+
边界约束: - IF-REV-013 是 REV-006
+的正式业务接口编号,不再复用 IF-REV-009。 -
+SYS-002
+负责催缴对象筛选、任务生成、业务事件号维护、四态状态承接和历史查询;SYS-010
+只负责触达执行与结果回传。 - 接口状态固定为
+PENDING、SUCCESS、FAIL、MANUAL_VERIFIED
+四态,不在本轮扩展“已阅读”“已补发”等细粒度业务状态。 -
+停复水仅作为联动边界与处置引用承接项,不在本接口中展开停复水内部流程。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-010 | +
| 归属模块 | +REV-007 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/revenue/statistics/query(导出:/admin-api/revenue/statistics/export) |
+
| 功能描述 | +面向营收经营分析场景查询统计主题、维度汇总和指标结果,并在权限范围内支持导出 | +
| 核心表 | +biz_charge、biz_charge_detail、biz_collection、bk_transaction、biz_cust、biz_account、biz_meter_book、biz_reading_data |
+
边界约束: - IF-REV-010
+只承接经营统计查询,不扩展到预测分析、BI 专题大屏或独立数仓查询。 -
+统计口径按“主题 + 维度 + 指标”组织,避免仅以报表名称表达接口范围。 -
+导出属于查询扩展能力,必须受数据权限和导出权限控制。 -
+没有明确实现证据的独立统计表、专题分析表或离线汇总表不得写成既成事实。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-011 | +
| 归属模块 | +REV-008 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/revenue/bank/withholding/batch |
+
| 功能描述 | +创建代扣批次、发起对账、接收结算回写 | +
| 核心表 | +biz_withholding、bk_withholding_batch、bk_reconcile_batch、bk_settlement_batch |
+
边界约束: - IF-REV-011
+在当前阶段主要承接正式业务协同边界,不等同于送盘、回盘、对账、结算全部已闭环。
+- 已确认的后台管理入口可证明批次、差异、结算台账对象存在,但不能替代银行
+app 协同接口的完成度判断。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-REV-012 | +
| 归属模块 | +REV-009 | +
| 请求方式 | +GET / POST | +
| 请求路径 | +/admin-api/revenue/parameter/config |
+
| 功能描述 | +查询与维护价格模板、业务参数、页面参数与规则配置 | +
| 核心表 | +biz_parameter_settings、biz_price_*、biz_page_settings* |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-CS-001 | +
| 归属模块 | +CS-001 | +
| 请求方式 | +POST | +
| 请求路径 | +/app-api/customer/account/bind |
+
| 功能描述 | +绑定、解绑、切换默认客户账户,并校验渠道身份与客户关系 | +
| 核心表 | +biz_cust_app_binds、biz_cust、biz_account |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-CS-002 | +
| 归属模块 | +CS-002 | +
| 请求方式 | +GET | +
| 请求路径 | +/app-api/customer/bill/history |
+
| 功能描述 | +查询账单、欠费、缴费、用水历史及发票摘要 | +
| 核心表 | +biz_charge、biz_charge_detail、biz_reading_data、biz_invoice |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-CS-003 | +
| 归属模块 | +CS-003 | +
| 请求方式 | +POST | +
| 请求路径 | +/app-api/customer/payment/order |
+
| 功能描述 | +面向微网厅、微信、支付宝等客户渠道创建支付订单 | +
| 核心表 | +biz_charge、biz_collection、bk_transaction |
+
边界约束: - 支付通道、支付回调、对账流水由 SYS-009
+负责。 - SYS-002
+负责校验待缴账单、生成业务订单、更新核销结果。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-CS-004 | +
| 归属模块 | +CS-004 | +
| 请求方式 | +POST | +
| 请求路径 | +/business/invoice/customer/query、/business/invoice/customer/download、/business/invoice/customer/push |
+
| 功能描述 | +面向客户渠道查询、下载、推送本人已开具电子发票 | +
| 核心表 | +biz_invoice、biz_cust_invoice、biz_invoice_taxrate |
+
边界约束: - 一期客户侧仅消费已形成 SUCCESS
+终态且具备票据地址的电子发票结果,不直接发起开票申请。 -
+发票作废、红冲仍由 SYS-008
+统一承接税控侧处理;IF-CS-004
+仅消费当前仍可展示、下载、推送的有效电子发票结果,不开放客户侧直接发起作废或红冲。
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-CS-006 | +
| 归属模块 | +CS-006 | +
| 请求方式 | +GET / POST | +
| 请求路径 | +/app-api/customer/process |
+
| 功能描述 | +提交业务办理申请、查询办理进度、补充附件资料 | +
| 核心表 | +biz_process、biz_process_transfer、biz_business_datas、biz_content_attach |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-CS-007 | +
| 归属模块 | +CS-007 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/counter/scan-pay/create |
+
| 功能描述 | +柜台生成扫码订单,接收支付结果并回写收费状态 | +
| 核心表 | +biz_collection、bk_transaction、biz_charge |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-METER-001 | +
| 归属模块 | +METER-001 | +
| 请求方式 | +GET | +
| 请求路径 | +/admin-api/meter/archive/{id} |
+
| 功能描述 | +查询水表档案、状态、参数与生命周期信息 | +
| 核心表 | +biz_meter、biz_meter_model、biz_meter_caliber、biz_meter_range |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-METER-002 | +
| 归属模块 | +METER-003 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/meter/work-order/handle |
+
| 功能描述 | +提交换表、移表、校表、维修等工单处理结果并回写设备状态 | +
| 核心表 | +biz_meter_log、biz_process、biz_process_transfer |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-METER-003 | +
| 归属模块 | +METER-002 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/meter/stock/in-out |
+
| 功能描述 | +处理领用、退库、报废等库存动作并更新生命周期状态 | +
| 核心表 | +biz_meter_in_out、biz_meter_in_out_rel、biz_meter |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-METER-004 | +
| 归属模块 | +METER-003 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/meter/iot/reading/receive |
+
| 功能描述 | +接收远传抄表、设备状态和异常告警并同步读数状态 | +
| 核心表 | +biz_reading_data、biz_meter_read、biz_last_reading |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-INST-001 | +
| 归属模块 | +INST-001 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/installation/apply/create |
+
| 功能描述 | +提交报装申请、基础资料与附件,并创建流程实例 | +
| 核心表 | +biz_process、biz_content、biz_content_attach |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-INST-002 | +
| 归属模块 | +INST-001 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/installation/survey/result |
+
| 功能描述 | +回填现场踏勘结果、方案版本和审核结论 | +
| 核心表 | +biz_process_transfer、biz_business_datas |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-INST-003 | +
| 归属模块 | +INST-002 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/installation/contract/sign/initiate |
+
| 功能描述 | +发起报装合同签署流程,并与 CA 系统协同处理签章、时间戳和存证 | +
| 核心表 | +installation_contract、installation_signature、installation_evidence |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-INST-004 | +
| 归属模块 | +INST-002 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/installation/contract/sign/callback |
+
| 功能描述 | +回写签章结果、时间戳、存证回执与签章文件地址 | +
| 核心表 | +installation_signature、installation_evidence |
+
| 项目 | +说明 | +
|---|---|
| 接口编号 | +IF-INST-005 | +
| 归属模块 | +INST-003 | +
| 请求方式 | +POST | +
| 请求路径 | +/admin-api/installation/archive/submit |
+
| 功能描述 | +归档申请资料、验收附件、合同文件与签章回执 | +
| 核心表 | +biz_content_attach、installation_evidence、biz_process |
+
++说明:以下字段级定义服务于接口设计说明,重点体现业务含义、来源对象与跨系统协同所需关键字段,不等同于数据库表的完整字段清单。
+
| 字段 | +类型 | +必填 | +说明 | +主要来源 | +
|---|---|---|---|---|
| id | +Long | +否 | +客户主键 ID,与 code 二选一 |
+biz_cust.id |
+
| code | +String | +否 | +客户编号,与 id 二选一 |
+biz_cust.code |
+
| mobile | +String | +否 | +客户手机号,支持模糊校验查询 | +biz_cust.mobile /
+biz_cust_contact.mobile |
+
| queryType | +String | +否 | +查询类型:base、account、meter、invoice、all |
+查询控制参数 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| id | +Long | +客户主键 ID | +biz_cust.id |
+
| code | +String | +客户编号 | +biz_cust.code |
+
| name | +String | +客户名称 | +biz_cust.name |
+
| custType | +String | +客户类型 | +biz_cust.cust_type |
+
| mobile | +String | +主要联系电话 | +biz_cust.mobile |
+
| address | +String | +客户地址 | +biz_cust.address |
+
| accountInfo | +Object | +账户信息对象 | +biz_account |
+
| accountInfo.balance | +Decimal | +账户余额 | +biz_account.balance |
+
| accountInfo.arrearsAmount | +Decimal | +欠费金额 | +biz_account.arrears_amount |
+
| accountInfo.status | +String | +账户状态 | +biz_account.status |
+
| contactList | +Array | +联系人列表 | +biz_cust_contact |
+
| meterList | +Array | +绑定水表列表 | +biz_cust_meter、biz_meter |
+
| invoiceInfo | +Object | +开票信息摘要 | +biz_cust_invoice |
+
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| meterReadId | +Long | +是 | +抄表任务 ID | +biz_meter_read.id |
+
| meterId | +Long | +是 | +水表 ID | +biz_meter.id |
+
| readTime | +Datetime | +是 | +抄表时间 | +biz_reading_data.read_time |
+
| currentReading | +Decimal | +是 | +本次读数 | +biz_reading_data.current_reading |
+
| readType | +String | +是 | +抄表方式:MANUAL、IOT、IMPORT |
+biz_reading_data.read_type |
+
| usageAmount | +Decimal | +否 | +本次用量,可由系统自动计算 | +biz_reading_data.usage_amount |
+
| photoList | +Array |
+否 | +表盘照片或现场图片文件标识 | +附件系统 / 文件服务 | +
| gps | +String | +否 | +现场坐标 | +扩展信息 | +
| remark | +String | +否 | +异常说明或现场备注 | +biz_reading_logs.remark |
+
| abnormalFlag | +Boolean | +否 | +是否标记异常 | +过程状态 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| readingId | +Long | +抄表数据主键 | +biz_reading_data.id |
+
| meterReadId | +Long | +抄表任务 ID | +biz_meter_read.id |
+
| validateStatus | +String | +校验状态:PASS、WARN、REJECT |
+校验结果 | +
| abnormalFlag | +Boolean | +是否识别为异常 | +过程判断 | +
| nextAction | +String | +后续动作:BILLING、RECHECK、MANUAL_REVIEW |
+流程控制 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| billPeriod | +String | +是 | +账期,如 2026-03 |
+开账批次参数 | +
| readingBatchNo | +String | +否 | +抄表批次号 | +抄表批次 | +
| customerIds | +Array |
+否 | +指定客户范围 | +biz_cust.id |
+
| meterReadIds | +Array |
+否 | +指定抄表任务范围 | +biz_meter_read.id |
+
| dueDate | +Date | +是 | +应收截止日期 | +biz_charge.due_date |
+
| operatorId | +Long | +否 | +发起操作人 | +操作上下文 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| generateCount | +Integer | +成功生成账单数量 | +汇总信息 | +
| successList | +Array | +成功明细列表 | +biz_charge |
+
| successList[].chargeId | +Long | +账单主键 | +biz_charge.id |
+
| successList[].chargeCode | +String | +账单编号 | +biz_charge.code |
+
| successList[].custId | +Long | +客户 ID | +biz_charge.cust_id |
+
| successList[].totalAmount | +Decimal | +账单总金额 | +biz_charge.total_amount |
+
| failureList | +Array | +失败明细列表 | +处理结果 | +
| failureList[].reason | +String | +失败原因 | +异常信息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| custId | +Long | +是 | +客户 ID | +biz_charge.cust_id |
+
| chargeIds | +Array |
+是 | +待核销账单 ID 列表 | +biz_charge.id |
+
| paymentChannel | +String | +是 | +支付渠道:CASH、WECHAT、ALIPAY、BANK、PREPAY |
+渠道参数 | +
| paymentAmount | +Decimal | +是 | +本次支付金额 | +biz_collection.amount |
+
| actualAmount | +Decimal | +否 | +实收金额,柜台收费场景使用 | +柜台收费扩展 | +
| tradeNo | +String | +否 | +外部交易流水号 | +bk_transaction.trade_no |
+
| outletCode | +String | +否 | +柜台或网点编号 | +biz_outlets.code |
+
| remark | +String | +否 | +收费备注 | +biz_collection.remark |
+
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| collectionId | +Long | +收费记录 ID | +biz_collection.id |
+
| collectionCode | +String | +收费业务编号 | +biz_collection.code |
+
| writeOffStatus | +String | +核销状态:SUCCESS、PARTIAL、PENDING |
+业务状态 | +
| paidAmount | +Decimal | +已支付金额 | +汇总结果 | +
| remainAmount | +Decimal | +剩余待支付金额 | +汇总结果 | +
| tradeNo | +String | +渠道交易流水号 | +bk_transaction.trade_no |
+
| invoiceAvailable | +Boolean | +是否可发起开票 | +业务判断 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| chargeId | +Long | +是 | +目标账单 ID | +biz_charge.id |
+
| adjustType | +String | +是 | +调整类型:USAGE、AMOUNT、REFUND、REVERSE、BAD_DEBT |
+业务类型 | +
| adjustAmount | +Decimal | +否 | +调整金额 | +biz_charge_detail / 业务计算 |
+
| adjustUsage | +Decimal | +否 | +调整水量 | +业务计算 | +
| sourceTradeNo | +String | +否 | +原交易流水号,退款/冲正场景使用 | +bk_transaction.trade_no |
+
| reasonCode | +String | +是 | +调整原因编码 | +业务字典 | +
| remark | +String | +否 | +调整说明 | +biz_operat_log.remark |
+
| attachmentList | +Array |
+否 | +依据附件 | +附件系统 | +
| operatorId | +Long | +是 | +操作人 ID | +操作上下文 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| adjustmentNo | +String | +调整业务编号 | +业务流水 | +
| chargeId | +Long | +目标账单 ID | +biz_charge.id |
+
| resultStatus | +String | +处理状态:SUCCESS、PENDING_APPROVAL、FAIL |
+业务状态 | +
| writeBackStatus | +String | +账单回写状态 | +业务状态 | +
| approvalRequired | +Boolean | +是否进入审批 | +流程判断 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| applicationNo | +String | +否 | +发票申请单号 | +服务端生成,作为幂等主键之一 | +
| custId | +Long | +是 | +客户 ID | +biz_invoice.cust_id |
+
| chargeIds | +Array |
+是 | +开票关联账单 ID 列表 | +业务单据关联 | +
| invoiceType | +String | +是 | +发票类型:ELECTRONIC、PAPER |
+biz_invoice.invoice_type |
+
| invoiceTitle | +String | +是 | +发票抬头 | +biz_cust_invoice.invoice_title |
+
| taxNo | +String | +否 | +税号 | +biz_cust_invoice.tax_no |
+
| String | +否 | +电子发票接收邮箱 | +biz_cust_invoice.email |
+|
| mobile | +String | +否 | +接收手机号 | +biz_cust_invoice.mobile |
+
| sourceChannel | +String | +是 | +来源渠道:COUNTER、FINANCE_BACKOFFICE |
+业务来源 | +
| remark | +String | +否 | +申请备注 | +操作留痕 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| invoiceId | +Long | +发票申请记录 ID | +biz_invoice.id |
+
| applicationNo | +String | +发票申请单号 | +biz_invoice.application_no |
+
| invoiceStatus | +String | +状态:SUBMITTED、PENDING、REJECTED |
+biz_invoice.invoice_status |
+
| sysRequestNo | +String | +发往 SYS-008 的受理号 |
+协同流水 | +
| msg | +String | +处理说明 | +返回消息 | +
taxNo 完整性;电子发票场景优先校验
+email 或 mobile 至少一项可用。applicationNo,未传入时按
+custId + chargeIds 组合控制重复申请。/business/invoice/invalidate)| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| invoiceId | +Long | +是 | +发票记录 ID | +biz_invoice.id |
+
| invalidReason | +String | +是 | +作废原因 | +biz_invoice.invalid_reason |
+
| invalidRemark | +String | +否 | +作废备注 | +biz_invoice.invalid_remark |
+
| originalInvoiceCode | +String | +否 | +原发票代码;传入时必须与当前发票记录一致 | +biz_invoice.original_invoice_code |
+
| originalInvoiceNumber | +String | +否 | +原发票号码;传入时必须与当前发票记录一致 | +biz_invoice.original_invoice_number |
+
/business/invoice/red-ink)| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| invoiceId | +Long | +是 | +发票记录 ID | +biz_invoice.id |
+
| redInkReason | +String | +是 | +红冲原因 | +biz_invoice.red_ink_reason |
+
| redInkRemark | +String | +否 | +红冲备注 | +biz_invoice.red_ink_remark |
+
| originalInvoiceCode | +String | +否 | +原发票代码;传入时必须与当前发票记录一致 | +biz_invoice.original_invoice_code |
+
| originalInvoiceNumber | +String | +否 | +原发票号码;传入时必须与当前发票记录一致 | +biz_invoice.original_invoice_number |
+
invoiceStatus=SUCCESS
+的记录发起;已进入 INVALID 或 RED_INK
+的记录必须拒绝重复处理。ADMIN_INVALIDATE、ADMIN_RED_INK。IF-REV-009 查询补偿或 IF-EXT-007
+回写统一收口。| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| applicationNo | +String | +否 | +发票申请单号,与 sysRequestNo 二选一 |
+biz_invoice.application_no |
+
| sysRequestNo | +String | +否 | +SYS-008 受理号,与 applicationNo
+二选一 |
+biz_invoice.sys_request_no |
+
| querySource | +String | +是 | +查询来源:MANUAL、AUTO_COMPENSATE、CALLBACK_VERIFY |
+查询触发上下文 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| invoiceId | +Long | +发票主记录 ID | +biz_invoice.id |
+
| applicationNo | +String | +发票申请单号 | +biz_invoice.application_no |
+
| sysRequestNo | +String | +SYS-008 受理号 |
+biz_invoice.sys_request_no |
+
| invoiceStatus | +String | +状态:SUBMITTED、PENDING、SUCCESS、FAIL、INVALID、RED_INK |
+biz_invoice.invoice_status |
+
| invoiceCode | +String | +发票代码 | +biz_invoice.invoice_code |
+
| invoiceNumber | +String | +发票号码 | +biz_invoice.invoice_number |
+
| fileUrl | +String | +电子发票文件地址 | +biz_invoice.file_url |
+
| failReason | +String | +失败原因 | +biz_invoice.fail_reason |
+
| pushStatus | +String | +电子发票推送状态 | +biz_invoice.push_status |
+
| lastQueryTime | +DateTime | +最近一次查询时间 | +biz_invoice.last_try_time |
+
| tryCount | +Integer | +累计查询次数 | +biz_invoice.try_count |
+
| latestResult | +String | +最近一次查询结果摘要 | +biz_invoice.latest_result |
+
| latestError | +String | +最近一次查询异常说明 | +biz_invoice.latest_error |
+
| msg | +String | +处理说明 | +返回消息 | +
querySource=AUTO_COMPENSATE
+时,接口语义表示由系统补偿任务触发一次兜底查询,并刷新最近查询时间、下次计划时间与累计次数。PENDING 并更新补偿上下文。INVALID 或 RED_INK,并同步刷新
+latestResult、latestError、账单关联状态与后处理上下文。SUCCESS
+的正常开票终态不得被后续失败查询结果覆盖;若外部返回异常,应记录到操作留痕并保留人工核查入口。| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| taskNo | +String | +否 | +催缴任务号;查询/人工核查时必填 | +任务主键 | +
| custId | +Long | +是 | +客户标识 | +biz_charge.cust_id |
+
| chargeIds | +Array |
+是 | +欠费账单集合 | +biz_charge.id |
+
| billPeriod | +String | +是 | +账期 | +biz_charge.bill_period |
+
| arrearsAmount | +Decimal | +是 | +欠费金额汇总 | +欠费汇总结果 | +
| strategyCode | +String | +是 | +命中的催缴策略编码 | +策略规则 | +
| channelType | +String | +是 | +触达渠道:短信/微信公众号/站内信等 | +任务分组结果 | +
| triggerType | +String | +是 | +触发方式:AUTO / MANUAL |
+任务触发上下文 | +
| eventNo | +String | +否 | +业务事件号;生成后返回,回写承接时作为关联键 | +协同事件主键 | +
| relatedDisposalRef | +String | +否 | +关联停复水或工单引用 | +联动追溯信息 | +
| manualVerifyNote | +String | +否 | +人工核查说明;仅人工核查时填写 | +核查留痕 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| taskNo | +String | +催缴任务号 | +任务主键 | +
| interfaceCode | +String | +固定返回 IF-REV-013 |
+接口常量 | +
| eventNo | +String | +业务事件号 | +协同主键 | +
| status | +String | +状态:PENDING、SUCCESS、FAIL、MANUAL_VERIFIED |
+任务状态 | +
| resultTime | +DateTime | +最近结果时间 | +结果回写时间 | +
| failureReason | +String | +失败原因 | +失败回写 | +
| resultChannel | +String | +实际触达渠道 | +协同结果 | +
| relatedDisposalRef | +String | +关联停复水或工单引用 | +联动追溯 | +
| msg | +String | +处理说明 | +返回消息 | +
triggerType=MANUAL。PENDING 表示已生成任务并发起协同,等待
+SYS-010
+回写或人工核查;SUCCESS、FAIL
+由协同结果或明确失败确认触发。MANUAL_VERIFIED,并保留核查人和核查说明。relatedDisposalRef
+仅用于追溯停复水、复水或工单处置引用,不表示本接口承担下游流程控制。FAIL,保持
+PENDING 并等待回执或进入人工核查流程。taskNo 存在且
+manualVerifyNote
+非空;不满足条件时应拒绝补记并返回校验错误。SYS-010
+的渠道执行职责,也不扩展停复水/工单内部流程控制。| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| themeCode | +String | +是 | +统计主题编码 | +查询主题 | +
| dateFrom | +Date | +是 | +开始日期 | +时间维度 | +
| dateTo | +Date | +是 | +结束日期 | +时间维度 | +
| billPeriod | +String | +否 | +账期 | +biz_charge.bill_period |
+
| deptId | +Long | +否 | +营业所/部门 | +system_dept.id |
+
| regionCode | +String | +否 | +片区/区域编码 | +区域维度 | +
| customerCategory | +String | +否 | +客户类别 | +客户标签/分类 | +
| channelCode | +String | +否 | +收费/交易渠道 | +bk_payment_channel.channel_code |
+
| accountId | +Long | +否 | +账户标识 | +biz_account.id |
+
| custId | +Long | +否 | +客户标识 | +biz_cust.id |
+
| statusSet | +Array |
+否 | +状态集合 | +账单/收费/抄表等状态筛选 | +
| groupBy | +Array |
+否 | +分组维度集合 | +结果分组 | +
| exportFlag | +Boolean | +否 | +是否导出 | +导出控制 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| themeCode | +String | +统计主题编码 | +查询主题 | +
| themeName | +String | +统计主题名称 | +主题定义 | +
| dimensionSummary | +Object | +查询维度摘要 | +查询条件 | +
| indicatorList | +Array | +指标结果集合 | +聚合结果 | +
| indicatorList[].indicatorCode | +String | +指标编码 | +指标定义 | +
| indicatorList[].indicatorName | +String | +指标名称 | +指标定义 | +
| indicatorList[].indicatorValue | +Decimal/String | +指标值 | +聚合结果 | +
| indicatorList[].unit | +String | +指标单位 | +指标定义 | +
| groupRows | +Array | +分组结果集合 | +维度分组结果 | +
| exportAllowed | +Boolean | +是否允许导出 | +权限结果 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| batchNo | +String | +是 | +代扣批次号 | +bk_withholding_batch.batch_no |
+
| businessType | +String | +是 | +业务类型:WITHHOLDING、RECONCILE、SETTLEMENT |
+协同类型 | +
| channelCode | +String | +是 | +渠道编码 | +bk_payment_channel.channel_code |
+
| billPeriod | +String | +否 | +账期 | +批处理参数 | +
| itemList | +Array | +否 | +批次明细列表 | +bk_withholding_item |
+
| itemList[].custId | +Long | +是 | +客户 ID | +bk_withholding_item.cust_id |
+
| itemList[].chargeId | +Long | +是 | +账单 ID | +bk_withholding_item.charge_id |
+
| itemList[].amount | +Decimal | +是 | +扣款金额 | +业务金额 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| batchNo | +String | +批次号 | +bk_withholding_batch.batch_no |
+
| batchStatus | +String | +批次状态:CREATED、SENT、RETURNED、RECONCILED、SETTLED |
+批次状态 | +
| successCount | +Integer | +成功处理条数 | +汇总结果 | +
| failCount | +Integer | +失败条数 | +汇总结果 | +
| reconcileStatus | +String | +对账状态 | +bk_reconcile_batch.status |
+
| settlementStatus | +String | +结算状态 | +bk_settlement_batch.status |
+
| diffList | +Array | +差异清单摘要 | +bk_reconcile_diff |
+
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| action | +String | +是 | +动作:QUERY、CREATE、UPDATE |
+配置动作 | +
| configType | +String | +是 | +配置类型:PRICE、RULE、PAGE、NOTICE |
+biz_parameter_settings.config_type |
+
| configCode | +String | +否 | +配置编码 | +biz_parameter_settings.config_code |
+
| configValue | +String | +否 | +配置值或 JSON 内容 | +biz_parameter_settings.config_value |
+
| deptId | +Long | +否 | +生效单位 | +作用域参数 | +
| effectiveDate | +Date | +否 | +生效日期 | +生效控制 | +
| operatorId | +Long | +否 | +操作人 ID | +操作上下文 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| configId | +Long | +配置主键 | +biz_parameter_settings.id |
+
| configCode | +String | +配置编码 | +biz_parameter_settings.config_code |
+
| configVersion | +String | +配置版本 | +版本信息 | +
| effectScope | +String | +生效范围 | +作用域结果 | +
| effectStatus | +String | +生效状态:DRAFT、ACTIVE、EXPIRED |
+业务状态 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| action | +String | +是 | +动作:BIND、UNBIND、SET_DEFAULT |
+绑定动作 | +
| channelType | +String | +是 | +渠道类型:WECHAT、ALIPAY、MINIAPP |
+渠道上下文 | +
| channelUserId | +String | +是 | +渠道用户标识,如 OpenId | +渠道上下文 | +
| custId | +Long | +是 | +客户 ID | +biz_cust.id |
+
| accountId | +Long | +否 | +账户 ID | +biz_account.id |
+
| verifyCode | +String | +否 | +验证码或身份校验码 | +安全校验 | +
| defaultFlag | +Boolean | +否 | +是否设为默认账户 | +biz_cust_app_binds.is_default |
+
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| bindId | +Long | +绑定关系 ID | +biz_cust_app_binds.id |
+
| bindStatus | +String | +绑定状态:BOUND、UNBOUND |
+业务状态 | +
| defaultFlag | +Boolean | +是否默认账户 | +biz_cust_app_binds.is_default |
+
| custSummary | +Object | +客户摘要信息 | +biz_cust |
+
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| custId | +Long | +是 | +客户 ID | +客户上下文 | +
| queryType | +String | +是 | +查询类型:BILL、PAYMENT、USAGE、ARREARS、INVOICE |
+查询控制 | +
| billPeriod | +String | +否 | +账期,如 2026-03 |
+biz_charge.bill_period |
+
| chargeStatus | +String | +否 | +账单状态筛选 | +biz_charge.status |
+
| pageNo | +Integer | +否 | +页码 | +分页参数 | +
| pageSize | +Integer | +否 | +每页数量 | +分页参数 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| total | +Integer | +总记录数 | +分页结果 | +
| list | +Array | +查询结果列表 | +聚合结果 | +
| list[].chargeId | +Long | +账单 ID | +biz_charge.id |
+
| list[].billPeriod | +String | +账期 | +biz_charge.bill_period |
+
| list[].usageAmount | +Decimal | +用量 | +biz_reading_data.usage_amount |
+
| list[].payStatus | +String | +缴费状态 | +业务状态 | +
| list[].invoiceStatus | +String | +开票状态 | +biz_invoice.invoice_status |
+
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| custId | +Long | +是 | +客户 ID | +biz_invoice.cust_id |
+
| invoiceId | +Long | +否 | +发票记录 ID,三选一优先键 | +biz_invoice.id |
+
| applicationNo | +String | +否 | +发票申请单号 | +biz_invoice.application_no |
+
| sysRequestNo | +String | +否 | +SYS-008 受理号 |
+biz_invoice.sys_request_no |
+
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| custId | +Long | +是 | +客户 ID | +biz_invoice.cust_id |
+
| invoiceId | +Long | +是 | +发票记录 ID | +biz_invoice.id |
+
| applicationNo | +String | +否 | +发票申请单号 | +biz_invoice.application_no |
+
| pushChannel | +String | +是 | +推送方式:EMAIL、SMS |
+推送动作 | +
| pushEmail | +String | +否 | +推送邮箱,EMAIL 时优先使用 |
+目标地址 | +
| pushMobile | +String | +否 | +推送手机号,SMS 时优先使用 |
+目标地址 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| invoiceId | +Long | +发票记录 ID | +biz_invoice.id |
+
| applicationNo | +String | +发票申请单号 | +biz_invoice.application_no |
+
| invoiceStatus | +String | +当前状态 | +biz_invoice.invoice_status |
+
| invoiceCode | +String | +发票代码 | +biz_invoice.invoice_code |
+
| invoiceNumber | +String | +发票号码 | +biz_invoice.invoice_number |
+
| fileUrl | +String | +发票下载地址 | +biz_invoice.file_url |
+
| pushStatus | +String | +推送状态:NONE、PUSHED、FAIL |
+biz_invoice.push_status |
+
| chargeBindStatus | +String | +账单关联状态:UNBOUND、BOUND |
+biz_invoice.charge_bind_status |
+
| msg | +String | +处理说明 | +返回消息 | +
custId
+名下发票记录,invoiceId、applicationNo、sysRequestNo
+任一定位成功后仍需再次校验客户归属。invoiceStatus=SUCCESS 且
+fileUrl
+非空;已作废、已红冲或缺少电子票地址的记录一律返回不可消费原因。pushStatus=PUSHED;失败则更新为
+FAIL 并记录失败原因。| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| custId | +Long | +是 | +客户 ID | +客户上下文 | +
| chargeIds | +Array |
+是 | +待支付账单 ID 列表 | +biz_charge.id |
+
| paymentChannel | +String | +是 | +支付渠道:WECHAT、ALIPAY |
+渠道参数 | +
| paymentAmount | +Decimal | +是 | +支付金额 | +bk_transaction.trade_amount |
+
| openId | +String | +否 | +微信渠道用户标识 | +微信场景 | +
| returnUrl | +String | +否 | +前端完成跳转地址 | +前端场景 | +
| notifyUrl | +String | +否 | +支付结果通知地址 | +回调地址 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| bizOrderNo | +String | +SYS-002 业务订单号 | +biz_collection.code / 业务单号 |
+
| tradeNo | +String | +渠道交易流水号 | +bk_transaction.trade_no |
+
| orderStatus | +String | +订单状态:INIT、PAYING、SUCCESS、FAIL |
+交易状态 | +
| payUrl | +String | +支付链接或二维码地址 | +渠道返回 | +
| prepayInfo | +Object | +预支付参数对象 | +渠道返回 | +
| expireTime | +Datetime | +订单失效时间 | +交易参数 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| processId | +Long | +否 | +办理流程 ID,查询场景使用 | +biz_process.id |
+
| businessTypeCode | +String | +否 | +业务类型编码,如更名、过户、低保、换表 | +biz_business_types.code |
+
| custId | +Long | +否 | +客户 ID | +客户上下文 | +
| applyData | +Object | +否 | +业务申请主体数据 | +biz_business_datas |
+
| attachmentList | +Array |
+否 | +附件文件标识列表 | +biz_content_attach |
+
| action | +String | +否 | +动作:CREATE、QUERY、SUPPLEMENT |
+流程动作 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| processId | +Long | +办理流程 ID | +biz_process.id |
+
| processCode | +String | +流程编号 | +biz_process.code |
+
| processStatus | +String | +当前状态:INIT、ACCEPTED、PROCESSING、DONE、REJECTED |
+biz_process.status |
+
| currentNode | +String | +当前办理节点 | +流程状态 | +
| transferList | +Array | +流转轨迹 | +biz_process_transfer |
+
| attachmentRequired | +Boolean | +是否需要补件 | +业务判断 | +
| msg | +String | +办理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| counterCode | +String | +是 | +柜台编号 | +柜面终端 | +
| chargeIds | +Array |
+是 | +待支付账单 ID 列表 | +biz_charge.id |
+
| paymentChannel | +String | +是 | +支付渠道:WECHAT、ALIPAY |
+渠道参数 | +
| orderAmount | +Decimal | +是 | +订单金额 | +bk_transaction.trade_amount |
+
| operatorId | +Long | +是 | +柜台操作员 ID | +操作上下文 | +
| scene | +String | +否 | +场景标识,默认 COUNTER_SCAN_PAY |
+场景参数 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| bizOrderNo | +String | +柜面业务订单号 | +biz_collection.code |
+
| tradeNo | +String | +渠道交易流水号 | +bk_transaction.trade_no |
+
| qrCode | +String | +柜面展示二维码内容 | +渠道返回 | +
| orderStatus | +String | +当前订单状态:INIT、PAYING、SUCCESS、FAIL |
+交易状态 | +
| writeBackStatus | +String | +营收状态回写结果 | +业务状态 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源 | +
|---|---|---|---|---|
| id | +Long | +否 | +水表主键 ID,与 code 二选一 |
+biz_meter.id |
+
| code | +String | +否 | +水表编号,与 id 二选一 |
+biz_meter.code |
+
| queryType | +String | +否 | +查询类型:base、status、lifeCycle、all |
+查询控制参数 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| id | +Long | +水表主键 ID | +biz_meter.id |
+
| code | +String | +水表编号 | +biz_meter.code |
+
| meterStatus | +String | +水表状态 | +biz_meter.status |
+
| modelCode | +String | +型号编码 | +biz_meter.model_code |
+
| caliberCode | +String | +口径编码 | +biz_meter.caliber_code |
+
| rangeCode | +String | +量程编码 | +biz_meter.range_code |
+
| installAddress | +String | +安装地址 | +biz_meter.install_address |
+
| lastReading | +Decimal | +最近有效读数 | +biz_last_reading.last_reading |
+
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| action | +String | +是 | +动作:IN、OUT、RETURN、SCRAP |
+库存动作 | +
| batchNo | +String | +是 | +批次号 | +biz_meter_in_out.batch_no |
+
| warehouseCode | +String | +否 | +仓库编码 | +仓储参数 | +
| meterIds | +Array |
+是 | +水表 ID 列表 | +biz_meter.id |
+
| remark | +String | +否 | +出入库说明 | +biz_meter_in_out.remark |
+
| operatorId | +Long | +是 | +操作人 ID | +操作上下文 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| inOutId | +Long | +出入库主记录 ID | +biz_meter_in_out.id |
+
| batchNo | +String | +批次号 | +biz_meter_in_out.batch_no |
+
| actionStatus | +String | +处理状态:SUCCESS、PARTIAL、FAIL |
+业务状态 | +
| successCount | +Integer | +成功处理数量 | +汇总结果 | +
| failCount | +Integer | +失败数量 | +汇总结果 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| meterCode | +String | +是 | +水表编号 | +biz_meter.code |
+
| readTime | +Datetime | +是 | +采集时间 | +biz_reading_data.read_time |
+
| currentReading | +Decimal | +是 | +当前读数 | +biz_reading_data.current_reading |
+
| deviceStatus | +String | +否 | +设备状态:ONLINE、OFFLINE、ALARM |
+设备状态 | +
| alarmList | +Array |
+否 | +告警编码列表 | +告警结果 | +
| fileSerialNo | +String | +否 | +上送批次或文件序列号 | +幂等辅助键 | +
| sourceSystem | +String | +是 | +来源系统:IOT、MDC |
+来源标识 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| readingId | +Long | +读数记录 ID | +biz_reading_data.id |
+
| meterReadId | +Long | +对应抄表任务 ID | +biz_meter_read.id |
+
| acceptStatus | +String | +接收状态:SUCCESS、WARN、REJECT |
+处理状态 | +
| abnormalFlag | +Boolean | +是否异常 | +过程判断 | +
| nextAction | +String | +后续动作:BILLING、RECHECK、MANUAL_REVIEW |
+流程控制 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| applyType | +String | +是 | +报装类型:NEW、REBUILD、ONE_METER_ONE_HOME |
+业务类型 | +
| applicantName | +String | +是 | +申请人姓名 | +申请资料 | +
| mobile | +String | +是 | +联系手机号 | +申请资料 | +
| address | +String | +是 | +申请地址 | +申请资料 | +
| waterUseType | +String | +是 | +用水性质 | +业务字典 | +
| sourceChannel | +String | +是 | +来源渠道:COUNTER、MINIAPP、GOV |
+来源标识 | +
| attachmentList | +Array |
+否 | +申请附件列表 | +biz_content_attach |
+
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| processId | +Long | +流程实例 ID | +biz_process.id |
+
| processCode | +String | +报装流程编号 | +biz_process.code |
+
| processStatus | +String | +当前状态:INIT、ACCEPTED、SURVEYING |
+biz_process.process_status |
+
| acceptStatus | +String | +受理结果 | +业务状态 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| processId | +Long | +是 | +报装流程 ID | +biz_process.id |
+
| schemeVersion | +String | +是 | +方案版本号 | +biz_business_datas |
+
| surveyResult | +String | +是 | +踏勘结论 | +biz_business_datas |
+
| estimateAmount | +Decimal | +否 | +预估费用 | +biz_business_datas |
+
| attachmentList | +Array |
+否 | +现场照片与方案附件 | +biz_content_attach |
+
| auditResult | +String | +否 | +审核结果:PASS、REJECT |
+审核结果 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| transferId | +Long | +流转记录 ID | +biz_process_transfer.id |
+
| processStatus | +String | +当前流程状态 | +biz_process.process_status |
+
| nextNode | +String | +下一节点 | +流程控制 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| contractId | +Long | +是 | +合同 ID | +installation_contract.id |
+
| requestNo | +String | +是 | +签章请求号 | +协同流水 | +
| signStatus | +String | +是 | +签章状态:SUCCESS、FAIL、CANCEL |
+installation_signature.signature_status |
+
| signerId | +String | +否 | +签署人标识 | +installation_signature.signer_id |
+
| signatureTime | +Datetime | +否 | +签章时间 | +installation_signature.signature_time |
+
| evidenceNo | +String | +否 | +存证编号 | +installation_evidence.evidence_no |
+
| fileUrl | +String | +否 | +已签文件地址 | +结果回写 | +
| hashValue | +String | +否 | +存证哈希 | +installation_evidence.hash_value |
+
| resultMsg | +String | +否 | +结果说明 | +返回消息 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| signatureId | +Long | +签章记录 ID | +installation_signature.id |
+
| evidenceId | +Long | +存证记录 ID | +installation_evidence.id |
+
| writeBackStatus | +String | +回写状态:SUCCESS、IGNORE_REPEAT、FAIL |
+业务状态 | +
| msg | +String | +处理说明 | +返回消息 | +
| 字段 | +类型 | +必填 | +说明 | +主要来源/去向 | +
|---|---|---|---|---|
| processId | +Long | +是 | +报装流程 ID | +biz_process.id |
+
| archiveType | +String | +是 | +归档类型:APPLY、ACCEPT、CHECK、CONTRACT、FINISH |
+归档分类 | +
| attachmentList | +Array |
+是 | +归档附件列表 | +biz_content_attach |
+
| contractId | +Long | +否 | +合同 ID | +installation_contract.id |
+
| evidenceId | +Long | +否 | +存证记录 ID | +installation_evidence.id |
+
| operatorId | +Long | +否 | +归档操作人 | +操作上下文 | +
| 字段 | +类型 | +说明 | +主要来源 | +
|---|---|---|---|
| archiveBatchNo | +String | +归档批次号 | +业务流水 | +
| archiveStatus | +String | +归档状态:SUCCESS、PARTIAL、FAIL |
+业务状态 | +
| archiveCount | +Integer | +已归档文件数量 | +汇总结果 | +
| msg | +String | +处理说明 | +返回消息 | +
++说明:以下时序图用于说明 SYS-002 +与客户渠道、外部协同子系统之间的交互边界,重点体现业务校验、协同调用、结果回写与状态更新链路。
+
sequenceDiagram
+ autonumber
+ participant Client as 客户渠道
+ participant SYS002 as SYS-002营收系统
+ participant SYS009 as SYS-009支付结算
+ participant Channel as 支付渠道
+
+ Client->>SYS002: 提交缴费下单请求(IF-CS-003)
+ SYS002->>SYS002: 校验客户、账单状态与应付金额
+ SYS002->>SYS002: 生成业务订单与收费记录草稿
+ SYS002->>SYS009: 发起支付下单协同(IF-EXT-004)
+ SYS009->>Channel: 调用微信/支付宝统一下单
+ Channel-->>SYS009: 返回tradeNo、payUrl/prepayInfo
+ SYS009-->>SYS002: 返回交易流水与支付参数
+ SYS002-->>Client: 返回bizOrderNo、payUrl、expireTime
+
+ Channel-->>SYS009: 异步支付结果通知
+ SYS009->>SYS009: 校验签名与交易状态
+ SYS009->>SYS002: 回写支付结果(IF-EXT-005)
+ SYS002->>SYS002: 幂等校验并更新biz_collection/biz_charge
+ SYS002-->>Client: 查询订单时返回最新支付状态
+
+sequenceDiagram
+ autonumber
+ participant Counter as 柜台或客户渠道
+ participant SYS002 as SYS-002营收系统
+ participant SYS008 as SYS-008发票服务
+ participant Tax as 税控/开票平台
+ participant Job as 查询补偿任务
+
+ Counter->>SYS002: 提交发票申请(IF-REV-008/IF-CS-004)
+ SYS002->>SYS002: 校验客户、账单、开票抬头与金额
+ SYS002->>SYS002: 生成发票申请记录biz_invoice(SUBMITTED)
+ SYS002->>SYS008: 发起开票协同(IF-EXT-006)
+ SYS008->>Tax: 调用税控或电子发票平台
+ Tax-->>SYS008: 返回受理结果/票号/文件地址
+ SYS008-->>SYS002: 返回受理号或异步结果
+ SYS002->>SYS002: 记录sysRequestNo并更新为PENDING
+ alt 发票服务主动回写
+ SYS008-->>SYS002: 回写开票结果(IF-EXT-007)
+ SYS002->>SYS002: 更新biz_invoice状态、票据地址与账单关联
+ else 未收到终态结果
+ Job->>SYS002: 触发补偿查询(IF-REV-009)
+ SYS002->>SYS008: 按申请单号/受理号查询结果
+ SYS008-->>SYS002: 返回处理中/成功/失败
+ SYS002->>SYS002: 刷新查询上下文并按终态规则落账
+ end
+ SYS002-->>Counter: 返回申请结果或供后续查询
+
+sequenceDiagram
+ autonumber
+ participant BatchJob as 代扣批处理任务
+ participant SYS002 as SYS-002营收系统
+ participant SYS009 as SYS-009支付结算
+ participant Bank as 银行渠道
+
+ BatchJob->>SYS002: 发起代扣批次处理(IF-REV-011)
+ SYS002->>SYS002: 汇总代扣客户、账单与协议关系
+ SYS002->>SYS002: 生成bk_withholding_batch/bk_withholding_item
+ SYS002->>SYS002: 解析 send/back/reconcile 目录并固化协议、目录、文件路径
+ SYS002->>SYS009: 下发银行代扣批次(IF-EXT-001)
+ SYS009->>Bank: 发送代扣文件或报文
+ Bank-->>SYS009: 返回受理结果
+ SYS009-->>SYS002: 回写批次发送状态
+
+ Bank-->>SYS009: 回盘文件/结果通知(IF-EXT-002)
+ SYS009->>SYS009: 解析成功、失败、异常明细
+ SYS009->>SYS002: 回写代扣结果、差异与结算状态
+ SYS002->>SYS002: 更新biz_withholding、账单核销、对账结算状态
+ SYS002-->>BatchJob: 返回批次处理汇总结果
+
+sequenceDiagram
+ autonumber
+ participant Job as 催缴任务
+ participant SYS002 as SYS-002营收系统
+ participant SYS010 as SYS-010消息服务
+ participant User as 客户
+
+ Job->>SYS002: 触发催缴任务(IF-REV-013)
+ SYS002->>SYS002: 按欠费账单、渠道偏好生成催缴名单
+ SYS002->>SYS010: 提交通知下发请求(IF-EXT-008)
+ SYS010->>User: 发送短信/公众号/APP消息
+ User-->>SYS010: 触达回执或阅读反馈
+ SYS010-->>SYS002: 回写发送结果与触达状态
+ SYS002->>SYS002: 更新催缴记录、四态状态与后续策略
+ SYS002-->>Job: 返回催缴任务执行结果
+
+
+| 数据域 | +代表表 | +接口说明 | +
|---|---|---|
| 客户与账户 | +biz_cust、biz_account、biz_cust_contact |
+用于客户查询、账户绑定、资料维护 | +
| 客户扩展关系 | +biz_cust_meter、biz_cust_invoice、biz_cust_app_binds、biz_cust_collection_rel、biz_cust_withholding_rel |
+用于客户关联对象查询与服务协同 | +
| 抄表与开账 | +biz_meter_book、biz_meter_read、biz_reading_data、biz_last_reading、biz_charge、biz_charge_detail |
+用于抄表任务、账单生成、费用明细查询 | +
| 价格与参数 | +biz_price_*、biz_cost_component、biz_parameter_settings、biz_page_settings* |
+用于价格模板、业务参数、页面配置 | +
| 收费与票据 | +biz_collection、biz_withholding、biz_invoice、biz_invoice_taxrate |
+用于收费、代扣、发票申请与回写 | +
| 办理与资料 | +biz_process*、biz_business_datas、biz_content* |
+用于业务办理与进度跟踪 | +
| 银行代收与结算 | +bk_transaction*、bk_withholding_*、bk_reconcile_*、bk_settlement_batch |
+用于支付流水、批次、回调、对账和结算 | +
customer_*、water_*、billing_*、thirdpay_*、service_*
+作为 SYS-002 正式接口数据口径。++说明:以下映射表用于说明 SYS-002 与 +
+SYS-008、SYS-009、SYS-010+之间的关键报文字段对应关系,重点体现业务主键、状态字段、金额字段与结果回写字段,不展开各外部平台私有扩展字段。
| 协同场景 | +SYS-002 字段 | +SYS-009/渠道字段 | +说明 | +主要来源 | +
|---|---|---|---|---|
| 支付下单 | +bizOrderNo |
+businessOrderNo |
+SYS-002 业务订单号,作为支付协同主键 | +biz_collection.code |
+
| 支付下单 | +chargeIds[] |
+orderItems[].sourceId |
+待缴账单明细标识 | +biz_charge.id |
+
| 支付下单 | +custId |
+buyer.customerId |
+客户标识 | +biz_charge.cust_id / biz_cust.id |
+
| 支付下单 | +paymentAmount |
+tradeAmount |
+交易总金额 | +bk_transaction.trade_amount |
+
| 支付下单 | +paymentChannel |
+channelCode |
+支付渠道编码 | +渠道参数 / bk_payment_channel.channel_code |
+
| 支付下单 | +notifyUrl |
+notifyUrl |
+支付结果异步通知地址 | +协同参数 | +
| 下单返回 | +tradeNo |
+tradeNo |
+渠道交易流水号 | +bk_transaction.trade_no |
+
| 下单返回 | +payUrl/prepayInfo |
+payUrl/payParams |
+二维码链接或预支付参数 | +渠道返回 | +
| 结果回写 | +orderStatus |
+tradeStatus |
+交易状态映射:INIT/PAYING/SUCCESS/FAIL |
+bk_transaction.status |
+
| 结果回写 | +paidAmount |
+successAmount |
+实际支付成功金额 | +biz_collection.amount / 渠道结果 |
+
| 结果回写 | +callbackTime |
+notifyTime |
+回调时间 | +bk_transaction_callback.create_time |
+
| 结果回写 | +writeOffStatus |
+writeBackStatus |
+SYS-002 核销处理结果 | +业务状态 | +
| 协同场景 | +SYS-002 字段 | +SYS-008 字段 | +说明 | +主要来源 | +
|---|---|---|---|---|
| 发票申请 | +invoiceCode |
+requestNo |
+发票申请单号 / 协同请求号 | +biz_invoice.code |
+
| 发票申请 | +custId |
+customerId |
+客户标识 | +biz_invoice.cust_id |
+
| 发票申请 | +chargeIds[] |
+billList[].sourceBillId |
+开票关联账单标识 | +业务单据关联 | +
| 发票申请 | +invoiceTitle |
+buyerName |
+购方名称 / 抬头 | +biz_cust_invoice.invoice_title |
+
| 发票申请 | +taxNo |
+buyerTaxNo |
+购方税号 | +biz_cust_invoice.tax_no |
+
| 发票申请 | +invoiceType |
+invoiceType |
+电子/纸质发票类型 | +biz_invoice.invoice_type |
+
| 发票申请 | +taxRateCode |
+taxRateCode |
+税率编码 | +biz_invoice_taxrate.tax_code |
+
| 发票申请 | +email / mobile |
+receiver.email / receiver.mobile |
+票据接收信息 | +biz_cust_invoice.email /
+biz_cust_invoice.mobile |
+
| 结果回写 | +invoiceStatus |
+invoiceStatus |
+开票状态:受理中、成功、失败、作废、红冲等 | +biz_invoice.invoice_status |
+
| 结果回写 | +invoiceNo |
+invoiceNo |
+发票号码 | +开票结果 | +
| 结果回写 | +fileUrl |
+fileUrl |
+发票文件下载地址 | +回写结果 | +
| 结果回写 | +msg |
+resultMsg |
+结果说明 | +返回消息 | +
| 协同场景 | +SYS-002 字段 | +SYS-009/银行字段 | +说明 | +主要来源 | +
|---|---|---|---|---|
| 批次下发 | +batchNo |
+batchNo |
+代扣批次号 | +bk_withholding_batch.batch_no |
+
| 批次下发 | +businessType |
+businessType |
+代扣/对账/结算类型 | +协同参数 | +
| 批次下发 | +channelCode |
+channelCode |
+渠道编码 | +bk_payment_channel.channel_code |
+
| 批次下发 | +protocol |
+protocol |
+SFTP/FTP 传输协议 |
+统一解析结果 | +
| 批次下发 | +sendDir / sendFilePath |
+sendDir / sendFilePath |
+送盘目录与文件路径 | +bk_withholding_batch |
+
| 批次下发 | +billPeriod |
+billPeriod |
+账期 | +批处理参数 | +
| 批次明细 | +itemList[].custId |
+itemList[].customerId |
+客户标识 | +bk_withholding_item.cust_id |
+
| 批次明细 | +itemList[].chargeId |
+itemList[].sourceBillId |
+账单标识 | +bk_withholding_item.charge_id |
+
| 批次明细 | +itemList[].amount |
+itemList[].withholdingAmount |
+代扣金额 | +业务金额 | +
| 回盘回写 | +batchStatus |
+batchStatus |
+批次状态:已发送、已回盘等 | +bk_withholding_batch.status |
+
| 回盘回写 | +backProtocol / backDir /
+backFilePath |
+backProtocol / backDir /
+backFilePath |
+回盘阶段最终解析结果 | +bk_withholding_batch |
+
| 回盘回写 | +successCount / failCount |
+successCount / failCount |
+成功失败数量汇总 | +汇总结果 | +
| 对账回写 | +protocol / dir /
+filePath |
+protocol / dir /
+filePath |
+对账文件最终解析结果 | +bk_reconcile_batch |
+
| 对账回写 | +reconcileStatus |
+reconcileStatus |
+对账状态 | +bk_reconcile_batch.status |
+
| 对账回写 | +diffList[] |
+diffList[] |
+差异明细摘要 | +bk_reconcile_diff |
+
| 结算回写 | +settlementStatus |
+settlementStatus |
+结算状态 | +bk_settlement_batch.status |
+
| 协同场景 | +SYS-002 字段 | +SYS-010 字段 | +说明 | +主要来源 | +
|---|---|---|---|---|
| 催缴通知 | +messageBizNo |
+eventNo |
+消息事件编号 | +业务事件编号 | +
| 催缴通知 | +custId |
+receiver.customerId |
+接收客户标识 | +biz_charge.cust_id /
+biz_process.cust_id |
+
| 催缴通知 | +mobile |
+receiver.mobile |
+接收手机号 | +客户联系方式 | +
| 催缴通知 | +templateCode |
+templateCode |
+消息模板编码 | +模板参数 | +
| 催缴通知 | +arrearsAmount |
+payload.arrearsAmount |
+欠费金额 | +biz_charge.total_amount / 汇总结果 |
+
| 催缴通知 | +billPeriod |
+payload.billPeriod |
+账期 | +biz_charge.bill_period |
+
| 催缴通知 | +strategyCode |
+payload.strategyCode |
+命中的催缴策略编码 | +任务分组结果 | +
| 催缴通知 | +triggerType |
+payload.triggerType |
+自动/人工触发方式 | +任务触发上下文 | +
| 办理进度通知 | +processCode |
+payload.processCode |
+业务办理单号 | +biz_process.code |
+
| 办理进度通知 | +processStatus |
+payload.processStatus |
+办理状态 | +biz_process.status |
+
| 发送结果回写 | +status |
+sendStatus |
+渠道回执由 SYS-002 统一映射为
+PENDING/SUCCESS/FAIL/MANUAL_VERIFIED 四态 |
+消息结果 | +
| 发送结果回写 | +reachStatus |
+reachStatus |
+触达/阅读状态 | +渠道回执 | +
| 发送结果回写 | +sendTime |
+sendTime |
+发送时间 | +消息结果 | +
| 发送结果回写 | +msg |
+resultMsg |
+结果说明 | +返回消息 | +
| 错误码段 | +说明 | +
|---|---|
| 0 | +成功 | +
| 400~499 | +请求参数、权限、资源不存在等通用错误 | +
| 1_002_001_xxx | +客户主数据类错误 | +
| 1_002_002_xxx | +抄表开账类错误 | +
| 1_002_003_xxx | +收费与核销类错误 | +
| 1_002_004_xxx | +账务处理类错误 | +
| 1_002_005_xxx | +发票协同类错误 | +
| 1_002_006_xxx | +银行代收与结算类错误 | +
| 1_002_007_xxx | +客户渠道与业务办理类错误 | +
| 1_002_008_xxx | +消息通知与触达类错误 | +
| 错误码 | +适用接口/场景 | +说明 | +处理建议 | +
|---|---|---|---|
1_002_001_001 |
+IF-REV-001 / IF-REV-002 | +客户不存在或已停用 | +返回客户状态并阻断后续处理 | +
1_002_001_002 |
+IF-CS-001 | +账户绑定关系不存在 | +引导重新绑定客户 | +
1_002_002_001 |
+IF-REV-004 | +抄表任务不存在或已关闭 | +禁止提交抄表数据 | +
1_002_002_002 |
+IF-REV-004 | +本次读数小于上次读数且未通过异常审批 | +标记异常并进入复核 | +
1_002_002_003 |
+IF-REV-005 | +价格模板或费用组成缺失 | +阻断账单生成并提示补齐配置 | +
1_002_003_001 |
+IF-REV-006 / IF-CS-003 / IF-CS-007 | +账单已核销或不允许重复支付 | +返回当前账单支付状态 | +
1_002_003_002 |
+IF-REV-006 | +支付金额与待核销金额不一致 | +阻断核销并返回差额 | +
1_002_003_003 |
+IF-EXT-005 | +支付回调签名校验失败 | +记录异常回调并拒绝入账 | +
1_002_004_001 |
+IF-REV-007 | +账务调整目标状态不允许变更 | +返回当前账务状态 | +
1_002_005_001 |
+IF-REV-008 / IF-CS-004 | +发票申请单据不满足开票条件 | +返回不可开票原因 | +
1_002_005_002 |
+IF-EXT-007 | +发票结果回写状态非法或重复 | +按请求号执行幂等回写 | +
1_002_006_001 |
+IF-REV-011 / IF-EXT-001 | +代扣批次不存在或已发送 | +禁止重复下发批次 | +
1_002_006_002 |
+IF-EXT-002 | +银行回盘文件格式非法或批次号不匹配 | +记录异常并进入人工核查 | +
1_002_006_003 |
+IF-REV-011 | +对账差异未处理,禁止结算确认 | +需先完成差异处置 | +
1_002_007_001 |
+IF-CS-006 | +业务办理单不存在 | +返回空结果并提示核对单号 | +
1_002_007_002 |
+IF-CS-006 | +当前节点不允许补件或重复提交 | +返回当前流程节点状态 | +
1_002_008_001 |
+IF-REV-013 / IF-EXT-008 | +消息模板不存在或目标联系方式缺失 | +记录失败原因并允许后续补发 | +
1_002_008_002 |
+IF-EXT-008 | +消息通道调用超时 | +标记待重试,不直接判定业务失败 | +
1_002_008_003 |
+IF-REV-013 | +人工核查补记缺少核查说明或关联任务不存在 | +拒绝补记并提示补齐核查上下文 | +
| 场景 | +接口 | +建议幂等键 | +幂等判定说明 | +
|---|---|---|---|
| 支付下单 | +IF-CS-003 / IF-CS-007 | +bizOrderNo 或
+custId + chargeIds + paymentChannel |
+相同业务订单仅允许创建一次有效支付单 | +
| 支付回调 | +IF-EXT-005 | +tradeNo + tradeStatus + notifyTime |
+同一交易成功回调只允许入账一次 | +
| 发票申请 | +IF-REV-008 / IF-CS-004 | +invoiceCode 或 custId + chargeIds |
+相同账单组合避免重复申请开票 | +
| 发票结果回写 | +IF-EXT-007 | +requestNo + invoiceStatus |
+相同发票状态重复回写仅更新回执日志 | +
| 银行批次下发 | +IF-REV-011 / IF-EXT-001 | +batchNo |
+同一代扣批次禁止重复发送 | +
| 银行回盘接收 | +IF-EXT-002 | +batchNo + fileSerialNo |
+同一回盘文件只处理一次 | +
| 催缴通知 | +IF-REV-013 / IF-EXT-008 | +messageBizNo + templateCode + receiver |
+同一业务事件与同一接收方避免重复发送 | +
| 业务补件 | +IF-CS-006 | +processId + action + attachmentDigest |
+相同补件内容重复提交仅保留一次 | +
| 场景 | +冲突条件 | +处理原则 | +
|---|---|---|
| 支付核销 | +账单已完成核销后再次支付 | +拒绝重复核销,返回现有 writeOffStatus |
+
| 支付回调 | +先收到失败回调,后收到成功回调 | +以最终成功状态为准,但全过程保留回调日志 | +
| 发票申请 | +单据已开票成功后再次申请 | +拒绝重复申请,返回既有发票信息 | +
| 发票回写 | +已成功开票后收到失败回写 | +不覆盖成功状态,转入异常核查 | +
| 银行代扣 | +批次已发送后再次下发 | +拒绝重复发送,保留原批次状态 | +
| 对账结算 | +差异未消除即发起结算 | +禁止结算,提示先处理差异明细 | +
| 催缴通知 | +同一账期、同一模板短时间内重复催缴 | +按通知频控策略拦截重复下发 | +
| 业务办理 | +流程已办结后再次补件 | +拒绝补件,返回当前流程终态 | +
IF-REV-*、IF-CS-*、IF-METER-*
+接口族扩展查询能力。| 查询主题 | +挂靠接口族 | +主要数据来源 | +最低返回要求 | +说明 | +
|---|---|---|---|---|
| 历史账单、特殊开账 | +IF-CS-002、IF-REV-005 |
+biz_charge* + 历史账单来源 |
+原账单号、新账单号、客户号、账期、金额、状态、来源类型 | +支撑账单迁移核查与客户侧历史查询 | +
| 缴费记录、柜台结账、实时收费 | +IF-CS-002、IF-REV-006、IF-REV-011 |
+biz_collection、bk_transaction* +
+历史收费记录 |
+原流水号、渠道、实收金额、收费时间、柜员/营业所、核销状态 | +支撑渠道对账、柜面核查和历史收据核对 | +
| 红冲与账务调整 | +IF-REV-007 |
+操作留痕、流程结果 + 历史调整台账 | +调整类型、关联原单号、调整金额、原因、审批状态、处理时间 | +支撑预存退款、已销调整、价差调整、分账调整、呆坏账查询 | +
| 发票与开票关系 | +IF-REV-008、IF-CS-004 |
+biz_invoice* + 历史开票关系快照 |
+发票号、申请单号、关联账单、票据状态、票据类型、文件地址 | +支撑发票结果核查与历史补打定位 | +
| 催缴、停复水、预存短信 | +IF-REV-013、IF-METER-002 |
+通知结果、流程工单 + 历史催缴记录 | +客户号、账期、催缴方式、消息状态、停复水状态、执行人、执行时间、处置引用 | +支撑催缴处置闭环核查 | +
| 业务进度与电子档案 | +IF-CS-006 |
+biz_process*、biz_content* +
+历史附件目录 |
+业务单号、节点状态、处理轨迹、附件数量、附件元数据 | +支撑微网厅与柜台办理进度、电子档案查询 | +
| 水表生命周期、检定与库存流转 | +IF-METER-001、IF-METER-003 |
+biz_meter* + 历史仓储/检定单据 |
+表号、当前状态、单据类型、仓库、检定结论、证书编号、时间 | +支撑表务迁移核查与历史作业追溯 | +
| 页面参数、业务字段、微信配置 | +IF-REV-012、IF-CS-006 |
+biz_parameter_settings、biz_page_settings*、sys_wechat_app_settings |
+参数编码、原值、新值、启用状态、生效时间、适用渠道 | +支撑微网厅后台配置迁移核查 | +
| 验收场景 | +推荐挂靠接口 | +最低查询维度 | +输出要求 | +
|---|---|---|---|
| 开账迁移核对 | +IF-REV-005、IF-CS-002 |
+账期、营业所、客户类型、账单状态 | +同时提供汇总金额/笔数与可追溯明细清单 | +
| 收费迁移核对 | +IF-REV-006、IF-REV-011、IF-CS-002 |
+日期、渠道、营业所、收费状态 | +同时提供实收金额、流水数量和异常流水列表 | +
| 发票迁移核对 | +IF-REV-008、IF-CS-004 |
+开票日期、票据类型、开票状态 | +同时提供开票汇总、失败原因和票据明细定位 | +
| 催缴与停复水核对 | +IF-REV-013、IF-METER-002 |
+账期、催缴方式、执行状态、处理人 | +同时提供任务统计、执行明细与处置引用 | +
| 业务办理与档案核对 | +IF-CS-006 |
+业务类型、流程状态、附件类型、创建时间 | +同时提供流程轨迹、附件元数据和缺失标记 | +
| 表务仓储与检定核对 | +IF-METER-001、IF-METER-003 |
+仓库、单据类型、水表状态、检定结论 | +同时提供数量汇总和单据级追溯信息 | +
结合 backend
+当前已确认模块与真实表,可明确支撑以下接口域:
以下接口域已有主线支撑,但部分细粒度对象仍需结合后续实现继续核实:
+以下内容可保留设计说明,但当前不应直接表述为已完全落地:
+当前主文档已覆盖 UP / REV / CS / METER / INST / EXT
+六类接口域的统一编号、清单、关键接口与字段级定义。后续版本迭代按以下顺序增量维护:
SYS-008、SYS-009、SYS-010
+报文映射;02_Detailed_Design/01_Detailed_Design.md
+与本主文档的一致性。2024年12月19日
+| 文件状态: | +文档密级: | +公开 | +
|---|---|---|
| 【√】草稿 | ++ | + |
| 【】修改稿 | ++ | + |
| 【】正式发布 | ++ | + |
| + | 当前版本: | +V1.7 | +
| + | 作者: | +唐伟杰 | +
| + | 完成日期: | +2025-08-18 | +
| 日期 | +版本号 | +作者 | +备注 | +
|---|---|---|---|
| 2025-07-01 | +V1.0 | +唐伟杰 | +初版 | +
| 2025-07-17 | +V1.1 | +唐伟杰 | +1.
+同步详细设计中的模块,补充缺失模块。 2. +调整子系统划分与编号,确保逻辑清晰、编号连续。 3. +重构表务、报装、客户服务子系统,优化模块设计。 4. +统一概要设计与详细设计的结构,提升一致性。 |
+
| 2025-08-01 | +V1.2 | +唐伟杰 | +完善 APP相关的模块设计 | +
| 2025-08-01 | +V1.3 | +唐伟杰 | +数据库系统变更:将OpenGauss替换为达梦数据库 +8.0+,更新所有相关架构图和技术描述。 | +
| 2025-08-01 | +V1.4 | +唐伟杰 | +单点登录采用OAuth2.0+CAS协议:更新单点登录模块描述,强调基于OAuth2.0+CAS协议实现。 | +
| 2025-08-18 | +V1.5 | +唐伟杰 | +架构调整:将营收业务系统中的工单、表务、报装剥离为独立子系统(SYS-005/006/007),更新目录、功能范围、子系统列表、关系图与接口定义;保留客户服务模块在营收业务系统中的作用。 | +
| 2025-08-18 | +V1.6 | +唐伟杰 | +合并第三方支付能力至SYS-009”支付与银行结算子系统”,统一消息服务重编号为SYS-010;更新总体目标、功能范围、接口定义、子系统列表与相关架构图。 | +
| 2026-03-12 | +V1.7 | +唐伟杰 | +对照
+Archive/03_Design_Docs/营业收费管理系统-概要设计说明书20250912.md
+完成来源对齐:补充历史来源说明与引用路径,确认系统拆分、基础服务定位、外部集成与非功能约束已同步;保留当前正式系统名称、模块编号与接口编号标准,不沿用历史别名编码作为正式口径。 |
+
本文档是《福建水务营收系统详细设计说明书》的前导文档,旨在从总体架构和概要设计的角度对系统进行全面的技术规划和设计。
+主要目的:
+预期读者:
+福建水务营收系统是为满足福建省水投数字科技有限公司客户服务管理领域的业务需求而建设的信息化系统。系统以客户为核心和基础,实现客户全生命周期管理。
+建设背景:
+福建水投集团注册资本46亿元,在全省40多个县市区投资重大水利项目超过450亿元,拥有全级次子公司超过67家,职工人数超3500人。当前,集团正紧紧抓住城乡供水一体化建设的机遇,需要构建以客户为中心的数字化服务体系。
+| 术语、缩写 | +解释 | +
|---|---|
| SaaS | +Software as a Service,软件即服务 | +
| RBAC | +Role-Based Access Control,基于角色的访问控制 | +
| JWT | +JSON Web Token,基于JSON的Web令牌 | +
| OAuth2 | +开放授权标准 | +
| RESTful | +Representational State Transfer,表现层状态转化 | +
| OpenAPI | +开放应用程序接口规范 | +
| DDL | +Data Definition Language,数据定义语言 | +
| DML | +Data Manipulation Language,数据操作语言 | +
| IoT | +Internet of Things,物联网 | +
| CAS | +Central Authentication Service,中央认证服务 | +
| DevOps | +Development和Operations的组合词,开发运维一体化 | +
| 业务参数 | +业务参数配置 | +
| 站点 | +用于划分用户所属管辖区域,站点可以进行多级管理 | +
| 册本 | +又称抄表本或抄表簿,根据抄表线路规划,按排相邻的一些水表给某一个抄表员进行抄表 | +
| 用户编号 | +为签定了供用水合同的正式用户分配的唯一识别号 | +
| 售水量 | +抄收水量+查处水量±调整水量 | +
| 当期应收水费 | +当期售水量乘以不同类别的水价(到户价)所得的金额 | +
| 水表抄见率 | +(当期应抄用户数-当期估表用户数)/当期应抄用户数×100% | +
../04_Appendix/Archive/03_Design_Docs/营业收费管理系统-概要设计说明书20250912.md本主文档已对齐
+../04_Appendix/Archive/03_Design_Docs/营业收费管理系统-概要设计说明书20250912.md
+中对当前正式设计仍有效的内容,主要包括:
SYS-001 ~ SYS-010
+的职责边界、基础服务分层与跨系统协同关系。以下内容仅保留在 Archive +中作为历史来源,不直接作为当前正式主文档口径:
+UP-SSO、REV-CUSTOM、WECHAT-*。IF-S-*、IF-C-*。当前正式口径继续统一采用:
+福建水务营收系统UP-001、REV-001、CS-001、METER-001、INST-001IF-UP-*、IF-REV-*、IF-CS-*、IF-METER-*、IF-INST-*、IF-EXT-*福建水务营收系统采用分层解耦与子系统化建设,形成”业务服务层 + +基础服务层”的整体架构:
+业务服务层:SYS-001 统一平台、SYS-002 营收业务系统、SYS-003 +手机抄表APP、SYS-004 微网厅系统、SYS-005 工单管理系统、SYS-006 +表务管理系统、SYS-007 报装业务系统
基础服务层:SYS-008 发票服务子系统(统一开票)、SYS-009 +支付与银行结算子系统(统一聚合支付/退款/渠道适配/第三方支付平台/银行实时收费、代扣/托收签解约、批次与对账契约、加解密与支付回调,夜间批量代扣/完整对账结算按后续完善项管理)、SYS-010 +消息服务子系统(统一短信/邮件/站内信/模板消息/微信通知/数科系统对接)、注册/配置中心、任务调度等基础服务
通过系统的建设,实现福建省水投数字科技有限公司客户服务管理领域的业务流程梳理再造、组织架构的优化、管理制度的建设、绩效考核标准的建设。构建以客户为中心的一体化服务体系,将客户的所有信息进行有机的关联,方便企业对营收信息进行综合分析和管理,为客户提供更多、更便捷、更主动的个性化服务,提高客户服务的质量和客户满意度。
+系统整体架构特点:
+本系统功能涵盖水务企业完整的营收业务流程,包括客户资料管理、抄表开账、营业收费、账务处理、催缴管理、发票管理(经SYS-008)、表务管理、报装业务、客户服务、工单管理,以及支付与银行结算(经SYS-009)等;还包含查询统计与报表打印功能。
+BankWithholding
+六条银行入口(客户状态查询、送盘、送盘状态查询、取消送盘、回盘、回盘状态查询)、代扣/托收签约解约和后台资源管理具备证据;其中
+BankCollection
+平行链路、夜间批量代扣、完整对账与结算仍按部分实现或后续完善项管理系统涉众:
+本系统主要涉及用户为各水务公司与系统相关的业务参与者、福建省水投数字科技有限公司研发运维团队。
+用户特点:
+公司领导:对信息化在企业生产经营管理活动中的积极作用有深刻认识,并具有前瞻视角。
公司管理层:有丰富的企业管理经验,有良好的业务管理类系统使用经验。
系统管理人员:具有本科以上教育背景,计算机操作熟练,具有良好的软件系统维护经验,主要维护系统的后台权限管理、人员管理、部门管理等功能。
操作人员:部分用户已经使用过其他厂商提供的水务营收系统,部分用户对软件系统使用经验不足。
技术约束:
+性能约束:
+安全约束:
+本系统需要与以下外部系统进行接口集成:
+| 接口类型 | +接口名称 | +功能描述 | +接口协议 | +
|---|---|---|---|
| 金融支付 | +银行代扣接口 | +银行托收代扣缴费 | +HTTPS | +
| 金融支付 | +微信支付接口 | +微信在线支付 | +HTTPS | +
| 金融支付 | +支付宝支付接口 | +支付宝在线支付 | +HTTPS | +
| 通信服务 | +短信平台接口 | +短信通知发送 | +HTTPS | +
| 通信服务 | +邮件服务接口 | +邮件通知发送 | +HTTPS/SMTP | +
| 通信服务 | +微信模板消息接口 | +微信模板消息下发 | +HTTPS | +
| 物联网 | +集抄系统接口 | +智能水表数据采集 | +TCP/HTTPS | +
| 税务服务 | +电子发票接口 | +第三方发票开具 | +HTTPS | +
| 认证服务 | +身份认证接口 | +第三方身份验证 | +HTTPS | +
| 认证服务 | +CAS单点登录 | +第三方身份验证 | +HTTPS | +
| 认证服务 | +OAuth2.0单点登录 | +第三方身份验证 | +HTTPS | +
| 外部系统 | +CA电子签章 | +CA签发/验章/存证 | +HTTPS | +
| 外部系统 | +邮件服务 | +邮件服务 | +HTTPS | +
| 外部系统 | +摄像表AI接口 | +表AI识别服务 | +HTTPS | +
架构设计方案:
+系统采用现代化的多层分布式架构,基于微服务设计思想,实现松耦合、高内聚的系统架构。整体架构分为表现层、网关层、业务服务层、基础服务层和数据层五个层次。
+技术选型方案:
+部署方案:
+采用容器化部署架构,支持多环境部署(开发、测试、生产),提供自动化部署脚本,支持弹性扩缩容。
+系统采用现代化的多层分布式架构,基于微服务设计思想,实现松耦合、高内聚的系统架构。
+graph TB
+ %% 表现层
+ subgraph "表现层"
+ ADMIN[Web管理端]
+ H5[微网厅H5]
+ APP[手机抄表APP]
+ end
+
+ %% 网关层
+ subgraph "网关层"
+ GATEWAY[API网关]
+ SSO[统一认证/SSO]
+ end
+
+ %% 业务服务层
+ subgraph "业务服务层"
+ UP[SYS-001 统一平台]
+ REV[SYS-002 营收业务系统]
+ WO[SYS-005 工单管理系统]
+ METER[SYS-006 表务管理系统]
+ INST[SYS-007 报装业务系统]
+ end
+
+ %% 基础服务层
+ subgraph "基础服务层"
+ INV[SYS-008 发票服务]
+ PAY[SYS-009 支付与银行结算]
+ MSG[SYS-010 消息服务]
+ MQ[RabbitMQ 消息队列]
+ FILE[MinIO 文件存储]
+ REDIS[Redis 缓存]
+ MON[监控/日志]
+ CONFIG[注册/配置中心]
+ SCHED[任务调度]
+ end
+
+ %% 数据层
+ subgraph "数据层"
+ DM[(达梦数据库集群)]
+ CACHE[(Redis集群)]
+ STORE[(MinIO集群)]
+ end
+
+ %% 外部系统
+ subgraph "外部系统"
+ EXT_CA[CA电子签章]
+ EXT_BANK[银行]
+ EXT_PSP[支付渠道 微信/支付宝/银联聚合]
+ EXT_INV[发票供应商 航天/博思]
+ EXT_SMS[短信平台]
+ EXT_MAIL[邮件服务]
+ EXT_IOT[集抄系统]
+ end
+
+ %% 连接关系
+ ADMIN --> GATEWAY
+ H5 --> GATEWAY
+ APP --> GATEWAY
+ GATEWAY --> SSO
+ GATEWAY --> UP
+ GATEWAY --> REV
+ GATEWAY --> WO
+ GATEWAY --> METER
+ GATEWAY --> INST
+
+ REV --> INV
+ REV --> PAY
+ REV --> MQ
+ REV -.-> MSG
+ REV --> FILE
+ REV --> REDIS
+
+ INST -.-> EXT_CA
+
+ INV -.-> EXT_INV
+ MSG -.-> EXT_SMS
+ MSG -.-> EXT_MAIL
+ PAY -.-> EXT_BANK
+ PAY -.-> EXT_PSP
+
+ %% 数据层连接
+ UP --> CACHE
+ REV --> DM
+ WO --> DM
+ METER --> DM
+ INST --> DM
+ FILE --> STORE
+
+表现层(Presentation Layer)
+网关层(Gateway Layer)
+业务服务层(Business Service Layer)
+基础服务层(Infrastructure Service Layer)
+数据层(Data Layer)
+外部系统(External Systems)
+INST-002 工程管理)flowchart TB
+ %% 分层横向排布,垂直贯通,允许直连线穿越模块
+ subgraph L1["数据采集层"]
+ direction LR
+ A1[手机抄表APP/SYS-003]
+ A2[智能水表]
+ A3[管理后台/SYS-001]
+ A4[微网厅/SYS-004]
+ A5[外部系统]
+ end
+
+ subgraph L2["接入层"]
+ direction LR
+ GW[API网关]
+ AUTH[统一平台SSO/SYS-001]
+ CLEAN[数据清洗]
+ MQ[消息队列]
+ CACHE_TMP[临时缓存]
+ end
+
+ subgraph L3["业务层"]
+ direction LR
+ REV[营收系统/SYS-002]
+ WO[工单系统/SYS-005]
+ METER[表务系统/SYS-006]
+ INST[报装系统/SYS-007]
+ INV[发票服务/SYS-008]
+ PAY[支付与结算/SYS-009]
+ MSG[消息服务/SYS-010]
+ end
+
+ subgraph L4["存储层"]
+ direction LR
+ DM_MASTER[达梦主库]
+ DM_SLAVE[达梦从库]
+ REDIS[Redis缓存]
+ MINIO[MinIO对象存储]
+ BACKUP[备份库]
+ end
+
+ subgraph L5["数据服务层"]
+ direction LR
+ QRY[查询服务]
+ RPT[报表服务]
+ API[接口服务]
+ PUSH[推送服务]
+ end
+
+ subgraph L6["展现层"]
+ direction LR
+ F1[管理后台]
+ F2[统计大屏]
+ F3[移动端]
+ F4[微网厅]
+ F5[第三方系统]
+ end
+
+ %% 连接(精简且保持层间垂直分层,线可穿越模块)
+ A1 --> GW
+ A2 --> GW
+ A3 --> GW
+ A4 --> GW
+ A5 --> GW
+
+ %% 相邻层连线:采集层 → 接入层 已在上方;以下为 接入层 → 业务层
+ GW --> REV
+ GW --> WO
+ GW --> METER
+ GW --> INST
+
+ MQ --> REV
+ MQ --> WO
+ MQ --> METER
+ MQ --> INST
+
+ REV --> DM_MASTER
+ WO --> DM_MASTER
+ METER --> DM_MASTER
+ INST --> DM_MASTER
+ INV --> MINIO
+ MSG --> REDIS
+ %% 存储层内部链路省略,保持仅向下一层输出
+
+ DM_MASTER --> QRY
+ DM_MASTER --> RPT
+ DM_MASTER --> API
+ REDIS --> API
+ MINIO --> API
+ MSG --> PUSH
+ QRY --> F1
+ RPT --> F2
+ API --> F1
+ API --> F3
+ API --> F4
+ API --> F5
+ PUSH --> F3
+ PUSH --> F4
+
+系统采用分布式部署架构,通过多个服务器集群实现高可用和高性能,支持 +DevOps 持续交付。
+graph TB
+ subgraph "DMZ区域"
+ subgraph "负载均衡集群"
+ LB1[Nginx 主<br/>8核16G]
+ LB2[Nginx 备<br/>8核16G]
+ WAF[Web应用防火墙]
+ end
+ end
+
+ subgraph "应用服务区"
+ subgraph "Web服务集群"
+ WEB1[Web服务器1<br/>8核32G]
+ WEB2[Web服务器2<br/>8核32G]
+ end
+
+ subgraph "应用服务集群"
+ APP1[应用服务器1<br/>16核64G]
+ APP2[应用服务器2<br/>16核64G]
+ end
+
+ subgraph "中间件集群"
+ MQ1[消息队列1<br/>8核16G]
+ MQ2[消息队列2<br/>8核16G]
+ end
+ end
+
+ subgraph "数据服务区"
+ subgraph "数据库集群"
+ DB1[达梦数据库主库<br/>32核128G]
+ DB2[达梦数据库从库<br/>32核128G]
+ DB3[达梦数据库备库<br/>32核128G]
+ end
+
+ subgraph "缓存集群"
+ REDIS1[Redis主节点<br/>16核32G]
+ REDIS2[Redis从节点<br/>16核32G]
+ REDIS3[Redis哨兵<br/>8核16G]
+ end
+
+ subgraph "文件存储集群"
+ FILE1[MinIO节点1<br/>8核32G 10TB]
+ FILE2[MinIO节点2<br/>8核32G 10TB]
+ FILE3[MinIO节点3<br/>8核32G 10TB]
+ end
+ end
+
+ subgraph "管理服务区"
+ MONITOR[监控服务器<br/>Prometheus + Grafana<br/>8核16G]
+ BACKUP[备份服务器<br/>8核32G 20TB]
+ JUMP[跳板服务器<br/>4核8G]
+ LOG[日志服务器<br/>ELK Stack<br/>16核32G]
+ end
+
+
+
+graph TB
+
+ Internet[互联网] -.->|HTTPS| DMZ[DMZ区域]
+ DMZ -.->|HTTP/RPC| APP[应用服务区]
+ APP -.->|数据访问| DATA[数据服务区]
+ MGMT[管理服务区] -.->|监控管理| APP
+ MGMT -.->|监控管理| DATA
+
+DMZ区域配置
+| 设备类型 | +配置规格 | +数量 | +主要作用 | +
|---|---|---|---|
| 负载均衡器 | +8核16G,双网卡 | +2台 | +负载均衡、高可用 | +
| Web应用防火墙 | +硬件WAF设备 | +1台 | +安全防护 | +
应用服务区配置
+| 设备类型 | +配置规格 | +数量 | +主要作用 | +
|---|---|---|---|
| Web服务器 | +8核32G,1TB SSD | +2台 | +前端应用部署 | +
| 应用服务器 | +32核128G,2TB SSD | +3台 | +后端服务部署 | +
| 消息队列服务器 | +8核16G,1TB SSD | +2台 | +异步消息处理 | +
数据服务区配置
+| 设备类型 | +配置规格 | +数量 | +主要作用 | +
|---|---|---|---|
| 数据库服务器 | +32核128G,10TB SSD | +3台 | +主从备数据库 | +
| 缓存服务器 | +16核32G,1TB SSD | +3台 | +Redis集群 | +
| 文件存储服务器 | +8核32G,10TB HDD | +3台 | +分布式文件存储 | +
管理服务区配置
+| 设备类型 | +配置规格 | +数量 | +主要作用 | +
|---|---|---|---|
| 监控服务器 | +8核16G,1TB SSD | +1台 | +系统监控 | +
| 备份服务器 | +8核32G,20TB HDD | +1台 | +数据备份 | +
| 跳板服务器 | +4核8G,500GB SSD | +1台 | +运维管理 | +
| 日志服务器 | +16核32G,5TB SSD | +1台 | +日志收集分析 | +
系统采用达梦数据库分布式架构,支持高性能、高可用、高扩展性的数据存储服务。
+graph TB
+ subgraph "达梦数据库分布式架构"
+ subgraph "协调节点"
+ CN1[协调节点1<br/>Coordinator Node]
+ CN2[协调节点2<br/>Coordinator Node]
+ end
+
+ subgraph "数据节点组1"
+ DN1_1[数据节点1-主<br/>Datanode Primary]
+ DN1_2[数据节点1-备<br/>Datanode Standby]
+ DN1_1 -.->|主备同步| DN1_2
+ end
+
+ subgraph "数据节点组2"
+ DN2_1[数据节点2-主<br/>Datanode Primary]
+ DN2_2[数据节点2-备<br/>Datanode Standby]
+ DN2_1 -.->|主备同步| DN2_2
+ end
+
+ subgraph "GTM节点"
+ GTM[全局事务管理器<br/>GTM Master]
+ GTM_S[GTM备节点<br/>GTM Standby]
+ GTM -.->|备份| GTM_S
+ end
+ end
+
+ %% 分布式架构调用关系
+ CN1 -.->|分片路由<br/>查询协调| DN1_1
+ CN1 -.->|分片路由<br/>查询协调| DN2_1
+ CN2 -.->|分片路由<br/>查询协调| DN1_1
+ CN2 -.->|分片路由<br/>查询协调| DN2_1
+ CN1 -.->|事务管理<br/>全局一致性| GTM
+ CN2 -.->|事务管理<br/>全局一致性| GTM
+
+系统采用基于Docker的容器化部署,使用Docker +Compose进行容器编排,使用Kubernetes进行容器编排和调度,支持DevOps持续交付。
+graph TB
+ subgraph "容器化部署架构"
+ subgraph "前端服务层"
+ WEB_CONTAINER[前端容器<br/>Nginx + Vue3]
+ end
+
+ subgraph "后端服务层"
+ APP_CONTAINER[后端容器<br/>Spring Boot]
+ end
+
+ subgraph "数据存储层"
+ DB_CONTAINER[数据库容器<br/>达梦数据库]
+ CACHE_CONTAINER[缓存容器<br/>Redis]
+ FILE_CONTAINER[文件存储容器<br/>MinIO]
+ end
+
+ subgraph "监控服务层"
+ MONITOR_CONTAINER[监控容器<br/>Prometheus + Grafana]
+ LOG_CONTAINER[日志容器<br/>ELK Stack]
+ end
+ end
+
+ %% 容器服务调用关系
+ WEB_CONTAINER -.->|API请求<br/>静态资源| APP_CONTAINER
+ APP_CONTAINER -.->|数据操作| DB_CONTAINER
+ APP_CONTAINER -.->|缓存访问| CACHE_CONTAINER
+ APP_CONTAINER -.->|文件存储| FILE_CONTAINER
+ APP_CONTAINER -.->|监控数据| MONITOR_CONTAINER
+ APP_CONTAINER -.->|日志数据| LOG_CONTAINER
+
+| 子系统编号 | +子系统名称(标识) | +功能描述 | +开发方式 | +
|---|---|---|---|
| SYS-001 | +统一平台 | +单点登录、统一认证(SSO/OAuth2+CAS)、审计与监控、权限、组织、参数、多租户、字典等基础能力 | +自行开发 | +
| SYS-002 | +营收业务系统 | +客户管理、抄表开账、营业收费、账务处理、发票管理、催缴管理、统计分析、代收业务、客户服务、业务参数配置 | +自行开发 | +
| SYS-003 | +手机抄表APP | +移动端抄表、调用外部AI识别服务、现场作业、数据同步、离线支持 | +自行开发 | +
| SYS-004 | +微网厅系统 | +微信公众号平台、账户绑定、在线缴费、信息查询、业务办理、网点服务 | +自行开发 | +
| SYS-005 | +工单管理系统 | +统一工单中心、工单流程引擎、监控预警、绩效统计 | +自行开发 | +
| SYS-006 | +表务管理系统 | +设备档案、表务全生命周期管理 | +自行开发 | +
| SYS-007 | +报装业务系统 | +报装流程管理、合同签订与电子签章、工程管理、档案管理 | +自行开发 | +
| SYS-008 | +发票服务子系统 | +统一开票网关、供应商适配器(优先对接航天)、回执处理与存证 | +自行开发 | +
| SYS-009 | +支付与银行结算子系统 | +聚合支付/退款、渠道适配(微信/支付宝/银联)、支付通知、银行实时收费、代扣/托收签解约、送盘/回盘/对账契约、加解密签名;夜间批量代扣与完整结算闭环按后续完善项管理 | +自行开发 | +
| SYS-010 | +消息服务子系统 | +短信/邮件/站内信模板与发送、回执查询、批量推送 | +自行开发 | +
---
+title: 子系统调用关系图
+---
+graph TB
+ %%{
+ run: {
+ "flowchart": {
+
+ "curve": "basis"
+ }
+ "sequence": {
+ "curve": "basis"
+ }
+
+ }
+ }%%
+
+ UP[ 【SYS-001 统一平台】<br/>单点登录<br/>统一认证SSO/OAuth2+CAS<br/>审计监控<br/>权限、组织<br/>参数、多租户<br/>字典管理]
+ REV_CORE[【SYS-002 营收业务子系统-营收核心模块群】<br/>客户管理<br/>抄表开账<br/>营业收费<br/>账务处理<br/>发票催缴<br/>统计代收<br/>业务参数配置]
+ CS_MOD[【SYS-002 营收业务子系统-客户服务模块群】<br/>账户绑定管理<br/>信息查询服务<br/>在线缴费服务<br/>业务办理服务]
+
+
+
+ APP[【SYS-003 手机抄表APP】<br/>移动抄表<br/>调用外部AI服务<br/>现场作业<br/>数据同步<br/>离线支持]
+
+ WECHAT[【SYS-004 微网厅子系统】<br/>账户绑定管理<br/>信息查询服务<br/>在线缴费服务<br/>业务办理服务]
+
+ WO_CENTER[【SYS-005 工单管理子系统】<br/>统一工单中心<br/>创建/派发/处理/验收<br/>监控预警]
+
+
+ METER_SYS[【SYS-006 表务管理子系统】 <br/>设备档案<br/>表务全生命周期管理]
+
+
+ INSTALL_SYS[【SYS-007 报装业务子系统】<br/>报装流程<br/>合同签订与电子签章<br/>工程管理<br/>档案管理]
+
+ PAY_SYS[【SYS-009 支付与银行结算子系统】<br/>聚合支付/退款/回调<br/>渠道适配/代扣/对账/加解密]
+
+ INVOICE_SYS[【SYS-008 发票服务子系统】<br/>统一开票网关<br/>供应商适配器<br/>回执/存证]
+
+
+
+
+ MSG_SYS[【SYS-010 消息服务子系统】<br/>统一短信/邮件/推送<br/>模板与回执]
+
+
+ %% 统一平台权限管理
+ UP -.->|用户认证/权限| REV_CORE
+ UP -.->|用户认证/权限| CS_MOD
+ UP -.->|用户认证/权限| APP
+ UP -.->|用户认证/权限| WECHAT
+ UP -.->|用户认证/权限| WO_CENTER
+ UP -.->|用户认证/权限| METER_SYS
+ UP -.->|用户认证/权限| INSTALL_SYS
+
+ %% 系统间协作
+ REV_CORE -.->|库存状态/换表结果| METER_SYS
+ REV_CORE -.->|支付/退款/代扣/对账| PAY_SYS
+ REV_CORE -.->|立户/工程结果| INSTALL_SYS
+ REV_CORE -.->|开票申请/作废/红冲| INVOICE_SYS
+ REV_CORE -.->|业务异常/流程触发| WO_CENTER
+ CS_MOD -.->|客户申请/服务工单| WO_CENTER
+
+ WO_CENTER -.->|换表派发| METER_SYS
+ WO_CENTER -.->|报装派发| INSTALL_SYS
+ WO_CENTER -.->|处理结果回填| REV_CORE
+ WO_CENTER -.->|结果通知| CS_MOD
+
+ %% 手机APP与营收业务系统协作关系
+ APP -.->|抄表数据/收费数据| REV_CORE
+ APP -.->|现场工单/问题上报| WO_CENTER
+ WO_CENTER -.->|工单派发/任务分配| APP
+ REV_CORE -.->|抄表任务/客户信息| APP
+
+ %% 微网厅与营收业务系统协作关系
+ WECHAT -.->|账单查询/在线缴费| REV_CORE
+ WECHAT -.->|业务申请/服务工单| WO_CENTER
+ REV_CORE -.->|账单信息/缴费状态| WECHAT
+ INVOICE_SYS -.->|电子发票链接/推送| WECHAT
+ MSG_SYS -.->|短信/邮件/推送| WECHAT
+ REV_CORE -.->|推送| MSG_SYS
+ WO_CENTER -.->|推送| MSG_SYS
+ CS_MOD -.->|推送| MSG_SYS
+ METER_SYS -.->|推送| MSG_SYS
+ INSTALL_SYS -.->|推送| MSG_SYS
+ INVOICE_SYS -.->|推送| MSG_SYS
+ PAY_SYS -.->|推送| MSG_SYS
+
+ WO_CENTER -.->|办理进度/结果通知| WECHAT
+
+ %% 样式定义
+ classDef coreSystem fill:#e3f2fd,stroke:#1976d2,stroke-width:4px,color:#000
+ classDef mobileSystem fill:#e8f5e8,stroke:#388e3c,stroke-width:3px,color:#000
+ classDef wechatSystem fill:#f3e5f5,stroke:#9c27b0,stroke-width:3px,color:#000
+ classDef platform fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+
+ class REV_CORE,CS_MOD coreSystem
+ class APP mobileSystem
+ class WECHAT wechatSystem
+ class UP platform
+ class WO_CENTER,METER_SYS,INSTALL_SYS coreSystem
+
+统一平台对外接口
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-UP-001 | +OAuth2认证接口 | +基于OAuth2.0的统一认证服务 | +所有子系统 | +HTTP/REST | +客户端凭证、授权类型、作用域 | +访问令牌、刷新令牌、过期时间 | +
| IF-UP-002 | +组织架构接口 | +获取部门和员工组织信息 | +营收/工单/表务系统 | +HTTP/REST | +组织ID、查询层级、用户权限 | +组织树结构、员工信息、权限范围 | +
| IF-UP-003 | +权限验证接口 | +验证用户操作权限和资源访问 | +所有子系统 | +HTTP/REST | +用户Token、操作资源、权限类型 | +验证结果、权限详情、有效期限 | +
| IF-UP-004 | +数据字典接口 | +提供系统基础数据字典服务 | +所有子系统 | +HTTP/REST | +字典类型、字典编码、租户ID | +字典数据、层级关系、多语言支持 | +
| IF-UP-005 | +多租户管理接口 | +多租户数据隔离和权限管理 | +所有子系统 | +HTTP/REST | +租户ID、操作类型、数据范围 | +租户配置、数据权限、隔离策略 | +
营收业务系统对外接口
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-REV-001 | +客户信息查询接口 | +查询客户档案、账户状态、联系人与水表绑定关系 | +柜台/客户渠道/工单 | +HTTPS REST | +客户ID、客户编号、手机号、查询类型 | +客户档案、账户信息、联系人列表、水表绑定关系 | +
| IF-REV-004 | +抄表数据提交接口 | +提交人工或远传抄表数据并触发校验 | +手机抄表APP/集抄系统 | +HTTPS REST | +抄表任务ID、水表ID、读数、图片证据、GPS位置 | +上传结果、校验状态、异常标记 | +
| IF-REV-005 | +账单生成接口 | +根据抄表结果、水价模板和费用组成生成账单 | +开账任务/批量任务 | +HTTPS REST | +抄表批次、账期、客户范围、应收日期 | +账单结果、失败清单、生成汇总 | +
| IF-REV-006 | +缴费处理接口 | +创建收费记录并核销账单 | +柜台/线上渠道 | +HTTPS REST | +客户ID、账单ID列表、支付方式、实收金额 | +收费结果、核销状态、交易流水 | +
| IF-REV-008 | +发票申请接口 | +发起电子发票申请并接收票据状态回写 | +柜台/客户渠道 | +HTTPS REST | +客户ID、账单ID列表、开票抬头、税号、邮箱 | +发票申请结果、票据状态、下载地址 | +
| IF-REV-011 | +银行代收协同接口 | +发起代扣、回盘、对账、结算协同 | +银行代收模块/SYS-009 | +HTTPS REST / 文件交换 | +批次号、渠道编码、账期、账单明细 | +批次状态、回盘结果、对账差异、结算结果 | +
| IF-REV-012 | +业务参数配置接口 | +查询和维护价格模板、优惠方案、业务参数配置 | +管理后台/参数管理端 | +HTTPS REST | +参数分类、模板编码、站点范围 | +参数明细、模板信息、更新结果 | +
| IF-CS-001 | +账户绑定接口 | +绑定、解绑、切换默认客户 | +微信/支付宝/微网厅 | +HTTPS REST | +渠道用户标识、客户编号、身份校验信息 | +绑定结果、默认客户信息、绑定关系 | +
| IF-CS-002 | +历史账单查询接口 | +查询账单、欠费、用水历史、缴费记录 | +客户端 | +HTTPS REST | +客户ID、账期范围、查询类型 | +账单列表、欠费金额、用水趋势、缴费记录 | +
| IF-CS-003 | +在线支付下单接口 | +创建微信/支付宝线上支付订单 | +客户端 | +HTTPS REST | +客户ID、账单ID列表、支付渠道、支付金额 | +订单号、支付二维码/预支付信息、订单状态 | +
| IF-CS-004 | +发票申请接口 | +提交电子发票申请、查询发票状态 | +客户端 | +HTTPS REST | +缴费订单号、发票抬头、邮箱/手机号 | +发票状态、发票链接、申请结果 | +
| IF-CS-005 | +网点与业务办理接口 | +查询营业网点、预约信息、可办事项 | +客户端 | +HTTPS REST | +行政区划、关键字、业务类型 | +网点列表、营业时间、可办业务、预约信息 | +
| IF-CS-006 | +业务办理进度接口 | +提交业务申请、查询办理进度与附件 | +客户端 | +HTTPS REST | +申请类型、客户资料、附件清单、申请单号 | +受理结果、流程状态、进度轨迹、补件要求 | +
| IF-CS-007 | +柜面扫码支付接口 | +创建柜面扫码支付订单并回写结果 | +柜台终端/营业前台 | +HTTPS REST | +柜台编号、账单ID列表、订单金额、支付渠道 | +订单号、支付状态、回写结果 | +
手机抄表APP对外接口
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-MOBILE-001 | +任务下载接口 | +下载抄表任务与客户信息 | +手机抄表APP | +HTTP/REST | +抄表员ID、任务日期范围 | +任务列表、客户信息、水表信息 | +
| IF-MOBILE-002 | +抄表数据上传接口 | +上传抄表数据与现场图片 | +手机抄表APP | +HTTP/REST | +抄表记录、现场图片、GPS位置 | +上传状态、数据校验结果 | +
| IF-MOBILE-003 | +工单接收接口 | +接收工单任务 | +工单管理系统 | +HTTP/REST | +工单ID、工单类型、派发信息 | +接收确认、预计处理时间 | +
| IF-MOBILE-004 | +工单回填接口 | +回填处理结果与附件 | +手机抄表APP | +HTTP/REST | +工单ID、处理结果、现场图片 | +回填状态、审核结果 | +
| IF-MOBILE-005 | +离线同步接口 | +离线数据同步 | +手机抄表APP | +HTTP/REST | +离线数据包、时间戳 | +同步状态、冲突处理结果 | +
微网厅系统对外接口
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-WECHAT-001 | +微信授权登录接口 | +通过微信OAuth2.0实现用户授权登录 | +微网厅系统 | +HTTP/REST | +微信授权码、AppID、AppSecret | +用户OpenID、访问令牌、用户基本信息 | +
| IF-WECHAT-002 | +微信支付接口 | +调用微信支付完成在线缴费 | +微网厅系统 | +HTTP/REST | +订单信息、支付金额、用户OpenID | +预支付交易会话标识、支付结果 | +
| IF-WECHAT-005 | +客户信息查询接口 | +查询绑定客户的基本信息 | +微网厅系统 | +HTTP/REST | +客户编号/手机号/OpenID | +客户详细信息、绑定状态 | +
| IF-WECHAT-006 | +账单信息查询接口 | +查询客户账单和欠费信息 | +微网厅系统 | +HTTP/REST | +客户编号、查询月份范围 | +账单明细、欠费金额、阶梯用量 | +
| IF-WECHAT-007 | +缴费处理接口 | +处理微信端发起的缴费业务 | +微网厅系统 | +HTTP/REST | +客户编号、缴费金额、支付方式 | +缴费订单号、支付状态、发票信息 | +
| IF-WECHAT-008 | +业务申请提交接口 | +提交报装、过户等业务申请 | +微网厅系统 | +HTTP/REST | +申请类型、客户资料、申请材料 | +申请单号、预审结果、处理时限 | +
| IF-WECHAT-009 | +电子发票申请接口 | +申请开具电子发票 | +微网厅系统 | +HTTP/REST | +缴费订单号、发票抬头信息 | +电子发票PDF、发票代码和号码 | +
| IF-WECHAT-011 | +账户绑定验证接口 | +验证客户身份并绑定微信账户 | +微网厅系统 | +HTTP/REST | +客户编号、身份证号、手机号码 | +绑定验证结果、绑定关系ID | +
工单管理系统对外接口
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-WO-001 | +工单创建接口 | +创建各类业务工单 | +营收/表务/报装/微网厅/APP | +HTTP/REST | +工单类型、客户信息、问题描述、紧急程度 | +工单编号、预计处理时间、派发状态 | +
| IF-WO-002 | +工单派发接口 | +向处理人/APP派发任务 | +工单管理系统 | +HTTP/REST | +工单ID、处理人员、预期完成时间 | +派发结果、接收确认状态 | +
| IF-WO-003 | +工单回填接口 | +回填处理结果与附件 | +APP/各业务系统 | +HTTP/REST | +工单ID、处理结果、现场图片、完成时间 | +回填状态、审核结果、客户满意度 | +
| IF-WO-004 | +工单查询接口 | +查询工单状态和处理轨迹 | +各业务系统/客户端 | +HTTP/REST | +工单编号/客户编号、查询条件 | +工单状态、处理进度、历史轨迹 | +
表务管理系统对外接口
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-METER-001 | +库存查询接口 | +查询仓库库存状态和预警信息 | +工单/营收/报装系统 | +HTTP/REST | +仓库编号、水表型号、库存状态 | +库存明细、预警状态、可用数量 | +
| IF-METER-002 | +领用出库接口 | +支持换表/施工水表领用出库 | +工单管理系统 | +HTTP/REST | +领用单号、水表型号、领用数量、领用人 | +出库状态、库存余量、领用凭证 | +
| IF-METER-003 | +档案查询接口 | +查询水表设备档案信息 | +营收/工单/报装系统 | +HTTP/REST | +水表编号、客户编号、查询类型 | +设备档案、安装历史、维修记录 | +
报装业务系统对外接口(SYS-007)
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-INST-001 | +报装申请接口 | +提交报装申请信息与材料 | +微网厅/营收系统 | +HTTP/REST | +申请人信息、用水地址、申请材料、联系方式 | +申请单号、预审结果、处理时限 | +
| IF-INST-002 | +踏勘派工接口 | +现场踏勘任务派发 | +工单管理系统 | +HTTP/REST | +报装单号、踏勘要求、预约时间 | +派工结果、踏勘人员、预计完成时间 | +
| IF-INST-003 | +签章接口 | +调用CA系统进行电子签章 | +CA电子签章系统 | +HTTP/REST | +合同文档、签章类型、签章方信息 | +签章状态、签章文档、存证信息 | +
| IF-INST-004 | +签章回执接口 | +接收CA系统签章完成回执 | +CA电子签章系统 | +HTTP/REST | +签章任务ID、签章结果、时间戳 | +接收确认、存档状态 | +
| IF-INST-006 | +验收通水接口 | +验收合格并开通供水 | +营收业务系统 | +HTTP/REST | +报装单号、验收结果、水表信息 | +开户结果、客户编号、通水状态 | +
发票服务子系统对外接口
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-INV-001 | +统一开票接口 | +统一受理电子发票开具请求 | +营收业务系统/微网厅 | +HTTP/REST | +开票信息、购买方信息、商品明细、税额 | +发票申请ID、开票状态、预计完成时间 | +
| IF-INV-002 | +作废红冲接口 | +发票作废和红字发票处理 | +营收业务系统 | +HTTP/REST | +原发票号码、作废/红冲原因、操作类型 | +处理结果、新发票信息、作废状态 | +
| IF-INV-003 | +发票查询接口 | +查询发票状态和下载链接 | +营收系统/微网厅/客户端 | +HTTP/REST | +发票代码、发票号码、查询类型 | +发票状态、PDF下载链接、发票详情 | +
| IF-INV-004 | +回执推送接口 | +接收供应商发票处理回执 | +航天信息/博思等供应商 | +HTTP/REST | +回执ID、处理结果、发票文件、时间戳 | +接收确认、存储状态、通知结果 | +
支付与银行结算子系统对外接口(SYS-009)
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-PAY-001 | +统一支付下单接口 | +统一处理各渠道支付下单请求 | +营收系统/微网厅 | +HTTP/REST | +订单信息、支付方式、支付金额、用户标识 | +预支付订单号、支付参数、二维码 | +
| IF-PAY-002 | +统一关单接口 | +订单关闭和撤销处理 | +营收系统/微网厅 | +HTTP/REST | +订单号、关闭原因、操作类型 | +关单状态、退款信息、处理结果 | +
| IF-PAY-003 | +统一退款接口 | +原路退款和部分退款处理 | +营收系统/微网厅 | +HTTP/REST | +原订单号、退款金额、退款原因 | +退款单号、退款状态、预计到账时间 | +
| IF-PAY-004 | +支付回调接口 | +接收渠道支付结果回调 | +微信/支付宝/银联 | +HTTP/REST | +回调数据、签名、时间戳 | +处理确认、业务更新状态 | +
| IF-PAY-005 | +批量代扣送盘接口 | +银行批量代扣文件发送 | +营收业务系统 | +HTTP/REST/SFTP | +代扣清单、客户签约信息、扣款金额 | +送盘状态、批次号、预计处理时间 | +
| IF-PAY-006 | +批量代扣回盘接口 | +银行代扣结果回盘处理 | +银行系统 | +HTTP/REST/SFTP | +回盘文件、处理结果、失败原因 | +解析结果、状态更新、异常处理 | +
| IF-PAY-007 | +批量对账文件接口 | +银行对账文件处理分析 | +银行系统/营收系统 | +HTTP/REST/SFTP | +对账文件、对账日期、差异规则 | +对账结果、差异明细、调整建议 | +
消息服务子系统对外接口(SYS-010)
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-MSG-001 | +短信发送接口 | +发送短信通知消息 | +营收/微网厅/工单系统 | +HTTP/REST | +手机号、消息内容、模板ID、发送时间 | +发送状态、消息ID、预计到达时间 | +
| IF-MSG-002 | +邮件发送接口 | +发送邮件通知消息 | +营收/工单/报装系统 | +HTTP/REST | +邮箱地址、邮件主题、邮件内容、附件 | +发送状态、邮件ID、送达确认 | +
| IF-MSG-003 | +站内信接口 | +发送系统站内消息 | +各业务系统 | +HTTP/REST | +用户ID、消息标题、消息内容、消息类型 | +发送结果、消息状态、已读状态 | +
| IF-MSG-005 | +外部系统对接接口 | +对接OA/智水擎等外部系统 | +OA系统/智水擎/水投数科APP | +HTTP/REST | +系统标识、消息类型、接收用户、消息内容 | +对接状态、消息分发结果 | +
统一平台是整个福建水务营收系统的基础支撑平台,负责为所有子系统提供统一的用户认证、权限管理、组织管理等基础服务。
+设计目标:
+功能范围:
+技术约束:
+性能约束:
+安全约束:
+接口设计说明:
+统一平台为整个系统提供基础认证、权限、组织、字典等服务能力,采用OAuth2.0+CAS统一认证机制,支持多租户数据隔离和权限管理,为各业务子系统提供标准化的基础服务接口。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-UP-001 | +用户认证接口 | +用户登录认证和JWT令牌生成 | +所有业务子系统 | +HTTP/REST | +用户名、密码、机构编号、验证码 | +JWT令牌、用户信息、权限范围 | +
| IF-UP-002 | +权限验证接口 | +验证用户访问资源权限 | +所有业务子系统 | +HTTP/REST | +JWT令牌、资源URL、操作类型 | +权限验证结果、资源访问权限 | +
| IF-UP-003 | +用户信息接口 | +获取用户基本信息 | +营收/工单/表务系统 | +HTTP/REST | +用户ID、查询范围 | +用户详细信息、角色权限 | +
| IF-UP-004 | +组织架构接口 | +获取部门和员工组织信息 | +营收/工单/表务系统 | +HTTP/REST | +部门ID、查询层级 | +部门信息、员工列表、权限范围 | +
| IF-UP-005 | +实时通知接口 | +推送系统通知消息 | +所有业务子系统 | +WebSocket | +消息内容、接收用户、消息类型 | +推送结果、送达状态 | +
架构设计:
+统一平台采用基于Spring Boot的微服务架构,使用Spring Security + +OAuth2.0+CAS协议实现认证授权,Redis存储会话和缓存数据,支持水平扩展。
+技术选型:
+统一平台采用分层架构设计,从下至上分为数据层、业务层、服务层和应用层,确保系统的可维护性和可扩展性。
+graph TB
+ subgraph "统一平台架构"
+ subgraph "应用层"
+ A1[Web管理界面]
+ A2[移动端界面]
+ A3[API网关]
+ end
+
+ subgraph "服务层"
+ B1[认证服务]
+ B2[权限服务]
+ B3[用户服务]
+ B4[组织服务]
+ B5[监控服务]
+ end
+
+ subgraph "业务层"
+ C1[登录业务]
+ C2[权限业务]
+ C3[用户管理业务]
+ C4[组织管理业务]
+ C5[系统监控业务]
+ end
+
+ subgraph "数据层"
+ D1[(用户数据库)]
+ D2[(权限数据库)]
+ D3[(日志数据库)]
+ D4[Redis缓存]
+ end
+ end
+
+ A1 --> B1
+ A2 --> B1
+ A3 --> B2
+ B1 --> C1
+ B2 --> C2
+ B3 --> C3
+ B4 --> C4
+ B5 --> C5
+ C1 --> D1
+ C2 --> D2
+ C3 --> D1
+ C4 --> D1
+ C5 --> D3
+ C1 --> D4
+ C2 --> D4
+
+| 模块编号 | +模块名称(标识) | +功能描述 | +开发方式 | +
|---|---|---|---|
| UP-001 | +单点登录模块 | +用户认证、授权管理、多种登录方式支持 | +自行开发 | +
| UP-002 | +系统管理模块 | +用户、角色、部门、菜单等基础数据管理 | +自行开发 | +
| UP-003 | +权限控制模块 | +RBAC权限模型、菜单权限、数据权限 | +自行开发 | +
| UP-004 | +租户管理模块 | +多租户数据隔离、租户配置管理 | +自行开发 | +
| UP-005 | +系统监控模块 | +在线用户监控、系统性能监控、操作日志 | +自行开发 | +
权限管理功能群:
+权限管理功能群是统一平台的核心,实现了完整的RBAC权限控制模型。
+graph TB
+ subgraph "权限管理功能群"
+ A[UP-002 系统管理模块-用户管理功能]
+ B[UP-003 系统管理模块-角色管理功能]
+ C[UP-003 系统管理模块-菜单管理功能]
+ D[UP-004 系统管理模块-部门管理功能]
+ E[UP-005 权限控制模块-权限控制功能]
+ end
+
+ A -->|用户角色关联| B
+ B -->|角色权限关联| C
+ A -->|用户部门关联| D
+ E -->|权限验证| A
+ E -->|权限验证| B
+ E -->|权限验证| C
+
+ A -.->|数据权限| D
+ B -.->|功能权限| C
+
+功能群说明:
+系统监控功能群:
+系统监控功能群提供对整个系统运行状态的监控和管理。
+graph TB
+ subgraph "系统监控功能群"
+ F[在线用户监控]
+ G[系统性能监控]
+ H[操作日志管理]
+ I[系统配置管理]
+ end
+
+ F -->|用户行为| H
+ G -->|性能数据| H
+ I -->|配置变更| H
+
+ F -.->|实时监控| G
+ H -.->|日志分析| G
+
+功能描述:
+单点登录模块基于OAuth2.0+CAS协议实现,提供统一的用户认证入口,支持多种登录方式和安全策略。该模块是整个系统安全的第一道防线,确保只有合法用户才能访问系统。
+主要功能:
+技术实现:
+功能描述:
+系统管理模块提供系统基础数据的维护功能,包括用户、角色、部门、菜单等核心数据的管理。
+主要功能:
+业务规则:
+功能描述:
+权限控制模块基于”主库+租户库”的多数据库架构,实现RBAC(基于角色的访问控制)模型的权限管理。通过统一的权限控制中心与租户独立的权限数据相结合,提供细粒度的功能权限和数据权限控制,同时支持跨租户用户授权的复杂场景。
+多库权限架构设计:
+graph TB
+ subgraph "主库(Master Database)"
+ MP[统一平台权限]
+ MT[租户管理权限]
+ MU[跨租户用户关系]
+ MA[全局审计日志]
+ end
+
+ subgraph "租户库A(Tenant-A Database)"
+ TA_U[用户表 system_user]
+ TA_R[角色表 system_role]
+ TA_UR[用户角色关系 system_user_role]
+ TA_RM[角色菜单权限 system_role_menu]
+ TA_D[部门表 system_dept]
+ end
+
+ subgraph "租户库B(Tenant-B Database)"
+ TB_U[用户表 system_user]
+ TB_R[角色表 system_role]
+ TB_UR[用户角色关系 system_user_role]
+ TB_RM[角色菜单权限 system_role_menu]
+ TB_D[部门表 system_dept]
+ end
+
+ subgraph "权限控制引擎"
+ PE[权限验证引擎]
+ PC[权限缓存层]
+ PR[权限路由器]
+ end
+
+ MP -.->|统一平台管理| PE
+ MT -.->|租户权限元数据| PE
+ MU -.->|跨租户关系| PE
+
+ PE -->|权限路由| PR
+ PR -->|租户A权限| TA_U
+ PR -->|租户B权限| TB_U
+
+ PE --> PC
+ PC -.->|缓存同步| TA_R
+ PC -.->|缓存同步| TB_R
+
+主要功能:
+多库数据模型:
+主库权限数据结构:
+1. 租户与用户关系表(tenant_user_relation) - +表功能:管理跨租户用户授权关系,记录用户在不同租户中的授权状态 +- 核心字段: - 主键标识:唯一标识每条授权关系 - +租户标识:指向被授权的目标租户 - 用户标识:指向被授权的用户 - +授权类型:区分所有者(owner)、成员(member)、访客(guest)三种类型 - +授权人标识:记录执行授权操作的管理员 - 授权时间:记录授权建立的时间戳 - +过期时间:设置授权的有效期限,支持临时访问 - +状态标识:标记授权关系是否有效,支持动态启用/禁用
+2. 全局权限配置表(global_permission) - +表功能:维护系统级别的权限定义,为各租户提供统一的权限基准 +- 核心字段: - 主键标识:唯一标识每个权限配置 - +权限代码:系统内唯一的权限标识符,如”USER_MANAGE”、“BILL_QUERY” - +权限名称:面向用户的权限描述,支持多语言 - +权限类型:区分菜单权限(menu)、按钮权限(button)、接口权限(api) - +父权限标识:构建权限树形结构,支持权限继承 - +排序序号:控制权限在界面上的显示顺序 - +状态标识:标记权限是否启用,支持权限的动态管理
+租户库权限数据结构:
+1. 用户基础信息表(system_user) - +表功能:存储租户内部的用户基础信息和账户状态 - +核心字段: - 主键标识:租户内用户的唯一标识 - +用户账号:登录用户名,在租户内保持唯一性 - 密码哈希:加密存储的用户密码 +- 用户昵称:显示名称,提升用户体验 - 部门标识:关联用户所属的组织部门 - +电子邮箱:用户联系邮箱,支持邮件通知 - +手机号码:用户联系电话,支持短信验证 - 用户性别:基础个人信息 - +账户状态:标记用户是否启用、锁定等状态 - +租户编号:明确用户所属的租户,支持数据隔离
+2. 角色定义表(system_role) - +表功能:定义租户内的角色体系,实现权限的集中管理 - +核心字段: - 主键标识:租户内角色的唯一标识 - +角色名称:角色的显示名称,如”水务管理员”、“收费员” - +角色代码:系统内部的角色标识符,用于权限验证 - +显示顺序:控制角色在选择列表中的排序 - +数据范围:定义角色的数据访问范围(全部、本部门、仅本人等) - +角色状态:标记角色是否启用 - 角色类型:区分系统内置角色和自定义角色 - +租户编号:明确角色所属的租户
+3. 用户角色关联表(system_user_role) - +表功能:建立用户与角色的多对多关联关系 - +核心字段: - 主键标识:唯一标识每个用户-角色关联关系 - +用户标识:关联到具体的用户记录 - 角色标识:关联到具体的角色记录 - +租户编号:确保关联关系在正确的租户范围内
+4. 角色菜单权限关联表(system_role_menu) - +表功能:定义角色具体拥有的菜单和功能权限 - +核心字段: - 主键标识:唯一标识每个角色-菜单权限关联 - +角色标识:关联到具体的角色记录 - 菜单标识:关联到具体的菜单或功能权限 - +租户编号:确保权限配置在正确的租户范围内
+权限验证流程:
+flowchart TD
+ A[用户请求] --> B{用户已登录?}
+ B -->|否| C[跳转登录页面]
+ B -->|是| D[解析JWT令牌]
+
+ D --> E[获取当前租户上下文]
+ E --> F{是否跨租户操作?}
+
+ F -->|否| G[连接当前租户数据库]
+ F -->|是| H[验证跨租户授权关系]
+
+ H --> I{授权关系有效?}
+ I -->|否| J[权限拒绝]
+ I -->|是| K[切换目标租户上下文]
+
+ G --> L[查询用户权限]
+ K --> L
+
+ L --> M[权限缓存查询]
+ M --> N{缓存命中?}
+
+ N -->|是| O[返回缓存权限]
+ N -->|否| P[数据库查询权限]
+
+ P --> Q[更新权限缓存]
+ Q --> O
+ O --> R[权限验证]
+
+ R --> S{权限验证通过?}
+ S -->|是| T[允许访问]
+ S -->|否| J
+
+ T --> U[记录访问日志]
+ J --> V[记录拒绝日志]
+
+技术实现:
+核心业务规则:
+功能描述:
+租户管理模块基于”主库+租户库”的多数据库架构,提供完整的多租户架构支持,实现租户间物理级别的数据隔离、配置管理,以及跨租户用户授权等高级功能。该模块是实现集团化管理的核心基础设施。
+多库租户架构设计:
+graph TB
+ subgraph "主库(Master Database)"
+ MT[租户基础信息 sys_tenant]
+ MTC[租户配置参数 sys_tenant_config]
+ MTD[租户数据库映射 sys_tenant_database]
+ MTU[跨租户用户关系 tenant_user_relation]
+ MTA[全局审计日志 sys_audit_log]
+ end
+
+ subgraph "租户库A(福州水务)"
+ TA_USER[租户用户 tenant_user]
+ TA_DEPT[组织架构 tenant_department]
+ TA_CONFIG[业务配置 tenant_business_config]
+ TA_BIZ[业务数据表群]
+ end
+
+ subgraph "租户库B(厦门水务)"
+ TB_USER[租户用户 tenant_user]
+ TB_DEPT[组织架构 tenant_department]
+ TB_CONFIG[业务配置 tenant_business_config]
+ TB_BIZ[业务数据表群]
+ end
+
+ subgraph "租户管理引擎"
+ TME[租户管理引擎]
+ TR[租户路由器]
+ TCC[跨库事务协调器]
+ TDM[数据库动态管理器]
+ end
+
+ MT -.->|租户信息管理| TME
+ MTC -.->|配置参数管理| TME
+ MTD -.->|数据库映射| TME
+ MTU -.->|跨租户授权| TME
+
+ TME --> TR
+ TR -->|路由A| TA_USER
+ TR -->|路由B| TB_USER
+
+ TME --> TCC
+ TCC -.->|分布式事务| TA_BIZ
+ TCC -.->|分布式事务| TB_BIZ
+
+ TME --> TDM
+ TDM -.->|动态管理| TA_CONFIG
+ TDM -.->|动态管理| TB_CONFIG
+
+主要功能:
+跨租户用户授权业务流程:
+graph TD
+ A[租户A管理员] --> B{选择授权用户}
+ B --> C[搜索其他租户用户]
+ C --> D[选择租户B的用户X]
+ D --> E[配置在租户A中的角色]
+ E --> H[设置数据权限范围]
+ H --> I[建立用户X在租户A的权限关系]
+ I --> J[用户X可访问租户A系统]
+ J --> K[用户X可在租户A/B间切换]
+
+ M[用户X登录] --> N{选择租户}
+ N --> O[租户A - 角色A权限]
+ N --> P[租户B - 角色B权限]
+
+多库租户管理数据模型:
+主库租户管理数据结构:
+1. 租户基础信息表(sys_tenant) - +表功能:统一管理所有租户的基础信息和层级关系 - +核心字段: - 主键标识:全系统唯一的租户标识符 - +租户编码:业务层面的租户唯一编码,格式规范化 - +租户名称:面向用户的租户显示名称 - 父租户标识:支持母子公司层级结构 - +租户类型:区分集团总部、分公司、子公司等类型 - +联系信息:租户联系人、电话、邮箱等 - +数据库配置:租户专属数据库的连接配置信息 - +状态标识:租户启用、禁用、过期等状态 - +创建信息:创建时间、创建人等审计信息
+2. 租户配置参数表(sys_tenant_config) - +表功能:管理租户级别的业务参数和系统配置 - +核心字段: - 主键标识:配置项的唯一标识 - +租户标识:关联的租户信息 - 配置分类:区分业务参数、系统配置、集成配置等 +- 配置键名:配置项的标识符 - 配置值:具体的配置内容,支持JSON格式 - +配置描述:配置项的说明信息 - 是否加密:敏感配置的加密标识 - +生效状态:配置是否启用
+3. 租户数据库映射表(sys_tenant_database) - +表功能:管理租户与数据库实例的映射关系 - +核心字段: - 主键标识:映射关系的唯一标识 - +租户标识:关联的租户信息 - 数据库标识:租户专属数据库的标识符 - +连接配置:数据库连接字符串和参数 - 读写配置:支持读写分离的配置信息 - +容量配置:数据库容量限制和监控阈值 - 备份配置:备份策略和恢复配置 - +状态信息:数据库运行状态和健康检查
+租户库业务数据结构:
+1. 租户用户信息表(tenant_user) - +表功能:存储租户内部的用户信息和组织关系 - +核心字段: - 主键标识:租户内用户的唯一标识 - +全局用户标识:关联主库中的用户信息 - 用户编号:租户内部的用户编号 - +部门标识:用户所属的组织部门 - 职位信息:用户在租户内的职位和级别 - +入职信息:用户在租户的入职时间和状态 - +权限范围:用户在租户内的数据访问范围 - +业务角色:用户在业务流程中的角色定位
+2. 租户组织架构表(tenant_department) - +表功能:管理租户内部的组织架构和部门层级 - +核心字段: - 主键标识:部门的唯一标识 - +部门编码:租户内部的部门编码 - 部门名称:部门的显示名称 - +父部门标识:构建部门层级结构 - 部门层级:部门在组织架构中的层级深度 - +负责人信息:部门负责人和联系方式 - 业务范围:部门负责的业务领域 - +状态信息:部门的启用状态和变更历史
+3. 租户业务配置表(tenant_business_config) - +表功能:管理租户特定的业务参数和流程配置 - +核心字段: - 主键标识:配置项的唯一标识 - +业务模块:配置所属的业务模块 - 配置类型:区分费率、流程、规则等配置类型 +- 配置内容:具体的业务配置参数 - 生效范围:配置的适用范围和条件 - +生效时间:配置的生效和失效时间 - 审核信息:配置变更的审核记录
+跨租户授权核心规则:
+多库架构技术实现:
+1. 主库租户管理引擎 - +租户信息统一管理:主库集中管理所有租户的基础信息、配置参数、层级关系 +- +数据库实例管理:动态创建、配置和管理租户专属数据库实例 +- +跨库事务协调:分布式事务管理器确保跨租户操作的数据一致性 +- +租户路由器:根据用户上下文自动路由到正确的租户数据库
+2. 租户数据库动态管理 - +数据库实例创建:基于模板自动为新租户创建独立数据库实例 +- Schema同步管理:统一的数据库结构版本管理和升级机制 - +连接池管理:每个租户数据库的独立连接池配置和监控 - +数据迁移工具:支持租户数据的导入、导出和迁移功能
+3. 多租户会话管理 - +租户上下文传递:ThreadLocal + Request +Header的租户标识传递机制 - +会话状态隔离:Redis分布式缓存的租户命名空间隔离 - +权限缓存分层:主库权限 + 租户权限的两级缓存策略 - +切换状态同步:租户切换时的权限重载和会话状态更新
+4. 跨租户授权协调 - +授权关系存储:主库统一存储和管理所有跨租户授权关系 - +权限验证引擎:跨库权限验证和数据访问控制 - +授权流程引擎:支持复杂的多级审批和自动化授权流程 - +审计日志统一:所有跨租户操作的统一审计和监控
+多库架构业务规则:
+1. 租户管理规则 - +租户编码全局唯一,格式:水务公司简称+年份+3位流水号 - +每个租户必须拥有独立的数据库实例,不允许共享 - +租户创建时自动生成标准的数据库Schema结构 - +租户删除前必须先完成数据备份和迁移确认
+2. 数据隔离规则 - +租户数据库之间严格物理隔离,禁止直接跨库访问 - +跨租户数据访问必须通过主库的授权关系验证 - +租户数据库连接池独立配置,避免资源争用 - +敏感数据在租户库中加密存储,密钥独立管理
+3. 用户授权规则 - 用户在单个租户下最多可拥有5个角色 +- 跨租户授权操作需要双方租户管理员审批 - 一个用户最多可以绑定10个租户 - +用户在不同租户下的身份信息完全独立 - +跨租户授权关系统一在主库中管理和审计
+4. 事务协调规则 - +涉及多个租户的操作必须使用分布式事务 - +单租户内的操作在租户库内保证ACID特性 - +跨库操作失败时自动回滚所有相关变更 - +重要业务操作需要在主库记录操作日志
+5. 性能管理规则 - +每个租户数据库设置容量上限和性能监控 - +大租户可配置读写分离和分库分表策略 - +租户切换操作限制频率,防止系统资源滥用 - +定期清理过期的授权关系和会话数据
+功能描述:
+系统监控模块提供全面的系统运行状态监控、性能指标收集和运维管理功能。
+主要功能:
+技术实现:
+营收业务系统是整个福建水务营收系统的核心业务系统,负责处理从客户管理到账务处理的完整营收业务流程,整合了原营收系统、表务系统、报装系统、客户服务、微网厅等所有核心业务功能。
+设计目标:
+功能范围:
+营收业务系统包含两大核心模块群,实现水务企业营收业务闭环:
+IF-REV-007
+承接,并按共性能力先统一、场景能力再分批推进核心业务流程: 客户建档 → 抄表录入 → 复核开账 → +营业收费 → 账务处理 → 发票管理 → 催缴管理
+技术约束:
+性能约束:
+安全约束:
+接口设计说明:
+营收业务系统作为核心业务平台,整合客户管理、账务处理、抄表计费、工单管理、报装业务等完整业务流程。系统提供标准化的RESTful接口,支持多租户业务配置,确保水务营收业务的高效运营和数据一致性。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-REV-001 | +客户信息查询接口 | +查询客户档案、账户状态、联系人与水表绑定关系 | +柜台/客户渠道/工单 | +HTTPS REST | +客户ID、客户编号、手机号、查询类型 | +客户档案、账户信息、联系人列表、水表绑定关系 | +
| IF-REV-004 | +抄表数据提交接口 | +提交人工或远传抄表数据并触发校验 | +手机抄表APP/集抄系统 | +HTTPS REST | +抄表任务ID、水表ID、读数、图片证据、GPS位置 | +上传结果、校验状态、异常标记 | +
| IF-REV-005 | +账单生成接口 | +根据抄表结果、水价模板和费用组成生成账单 | +开账任务/批量任务 | +HTTPS REST | +抄表批次、账期、客户范围、应收日期 | +账单结果、失败清单、生成汇总 | +
| IF-REV-006 | +缴费处理接口 | +创建收费记录并核销账单 | +柜台/线上渠道 | +HTTPS REST | +客户ID、账单ID列表、支付方式、实收金额 | +收费结果、核销状态、交易流水 | +
| IF-REV-008 | +发票申请接口 | +发起电子发票申请并接收票据状态回写 | +柜台/客户渠道 | +HTTPS REST | +客户ID、账单ID列表、开票抬头、税号、邮箱 | +发票申请结果、票据状态、下载地址 | +
| IF-REV-011 | +银行代收协同接口 | +发起代扣、回盘、对账、结算协同 | +银行代收模块/SYS-009 | +HTTPS REST / 文件交换 | +批次号、渠道编码、账期、账单明细 | +批次状态、回盘结果、对账差异、结算结果 | +
| IF-REV-012 | +业务参数配置接口 | +查询和维护价格模板、优惠方案、业务参数配置 | +管理后台/参数管理端 | +HTTPS REST | +参数分类、模板编码、站点范围 | +参数明细、模板信息、更新结果 | +
| IF-CS-001 | +账户绑定接口 | +绑定、解绑、切换默认客户 | +微信/支付宝/微网厅 | +HTTPS REST | +渠道用户标识、客户编号、身份校验信息 | +绑定结果、默认客户信息、绑定关系 | +
| IF-CS-002 | +历史账单查询接口 | +查询账单、欠费、用水历史、缴费记录 | +客户端 | +HTTPS REST | +客户ID、账期范围、查询类型 | +账单列表、欠费金额、用水趋势、缴费记录 | +
| IF-CS-003 | +在线支付下单接口 | +创建微信/支付宝线上支付订单 | +客户端 | +HTTPS REST | +客户ID、账单ID列表、支付渠道、支付金额 | +订单号、支付二维码/预支付信息、订单状态 | +
| IF-CS-004 | +发票申请接口 | +提交电子发票申请、查询发票状态 | +客户端 | +HTTPS REST | +缴费订单号、发票抬头、邮箱/手机号 | +发票状态、发票链接、申请结果 | +
| IF-CS-005 | +网点与业务办理接口 | +查询营业网点、预约信息、可办事项 | +客户端 | +HTTPS REST | +行政区划、关键字、业务类型 | +网点列表、营业时间、可办业务、预约信息 | +
| IF-CS-006 | +业务办理进度接口 | +提交业务申请、查询办理进度与附件 | +客户端 | +HTTPS REST | +申请类型、客户资料、附件清单、申请单号 | +受理结果、流程状态、进度轨迹、补件要求 | +
| IF-CS-007 | +柜面扫码支付接口 | +创建柜面扫码支付订单并回写结果 | +柜台终端/营业前台 | +HTTPS REST | +柜台编号、账单ID列表、订单金额、支付渠道 | +订单号、支付状态、回写结果 | +
架构设计:
+营收系统采用领域驱动设计(DDD),按业务领域划分为客户域、抄表域、收费域、账务域等,每个域独立部署,通过事件驱动实现域间协作。
+技术选型:
+营收系统采用DDD领域驱动设计,按业务领域进行模块划分,实现高内聚低耦合的架构设计。系统核心分为营收核心模块群和客户服务模块群两大业务板块。
+graph TB
+ subgraph "营收系统整体架构"
+ subgraph "应用层 - Application Layer"
+ A1[Web管理界面<br/> 管理端]
+ A2[移动收费界面<br/> 收费端]
+ A3[API接口层<br/> 接口网关]
+ end
+
+ subgraph "业务服务层 - Business Service Layer"
+ subgraph " 营收核心模块群 REV-001~009"
+ subgraph "核心业务流程"
+ B1[REV-001<br/>客户管理服务<br/> 客户基础]
+ B2[REV-002<br/>抄表开账服务<br/> 业务源头]
+ B3[REV-003<br/>营业收费服务<br/> 收入核心]
+ B4[REV-004<br/>账务处理服务<br/> 财务核心]
+ end
+
+ subgraph "辅助业务支撑"
+ B5[REV-005<br/>发票管理服务<br/> 票据管理]
+ B6[REV-006<br/>催缴管理服务<br/> 收益保障]
+ B7[REV-007<br/>统计分析服务<br/> 决策支持]
+ B8[REV-008<br/>代收业务服务<br/> 渠道扩展]
+ B9[REV-009<br/>业务参数配置<br/> 基础配置]
+ end
+ end
+
+ %% 工单管理模块群已独立为SYS-005
+ end
+
+ subgraph "领域层 - Domain Layer"
+ subgraph "营收核心业务领域"
+ C1[客户领域<br/>Customer Domain<br/>]
+ C2[抄表领域<br/>Meter Reading Domain<br/>]
+ C3[收费领域<br/>Billing Domain<br/>]
+ C4[账务领域<br/>Accounting Domain<br/>]
+ C5[发票领域<br/>Invoice Domain<br/>]
+ end
+
+ subgraph "工单管理业务领域"
+ C6[工单统一领域<br/>WorkOrder Domain<br/>]
+ C61[工单流程引擎<br/>Workflow Engine<br/>]
+ C62[工单状态管理<br/>Status Management<br/>]
+ C63[工单智能监控<br/>Monitor & Alert<br/>🔔]
+ end
+ end
+
+ subgraph "基础设施层 - Infrastructure Layer"
+ D1[(达梦数据库集群<br/>DM Database Cluster<br/> 核心存储)]
+ D2[Redis分布式缓存<br/>Distributed Cache<br/> 高速缓存]
+ D3[MinIO文件存储<br/>Distributed File Storage<br/> 文件管理]
+ D4[RabbitMQ消息队列<br/>Message Queue<br/> 异步通信]
+ D5[支付与结算服务(SYS-009)<br/>Payment & Settlement<br/> 聚合支付/代扣/对账]
+ D6[Flowable工作流引擎<br/>Workflow Engine<br/> 流程引擎]
+ end
+
+ subgraph "外部系统集成"
+ E1[手机抄表APP<br/> 移动端]
+ E2[微网厅系统<br/> 线上服务]
+ E3[表务系统<br/> 设备管理]
+ end
+ end
+
+ %% 应用层到业务服务层连接
+ A1 --> B1
+ A1 --> B9
+ A2 --> B3
+ A3 --> B8
+ A3 --> B9
+
+ %% 营收核心模块群内部业务流程
+ B1 -->|客户数据| B2
+ B2 -->|账单数据| B3
+ B3 -->|收费数据| B4
+ B4 -->|财务数据| B5
+ B1 -.->|客户信息| B6
+ B3 -.->|收费统计| B7
+ B8 -.->|代收数据| B3
+
+ %% 工单管理模块群已独立为SYS-005
+
+ %% 业务服务层到领域层映射
+ B1 --> C1
+ B2 --> C2
+ B3 --> C3
+ B4 --> C4
+ B5 --> C5
+ B6 --> C1
+ B7 --> C3
+ B8 --> C3
+
+ %% 工单领域移至SYS-005
+
+ %% 领域层到基础设施层
+ C1 --> D1
+ C2 --> D1
+ C3 --> D1
+ C4 --> D1
+ C5 --> D3
+ C6 --> D4
+ C61 --> D6
+ C62 --> D2
+ C63 --> D4
+ B8 --> D5
+
+ %% 外部系统集成(工单流转由SYS-005承担)
+
+ %% 样式定义
+ classDef coreModuleGroup fill:#e3f2fd,stroke:#1976d2,stroke-width:4px,color:#000
+ classDef workorderModuleGroup fill:#fce4ec,stroke:#c2185b,stroke-width:4px,color:#000
+ classDef coreModule fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
+ classDef workorderModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef coreDomain fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
+ classDef workorderDomain fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+ classDef infrastructure fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px
+ classDef external fill:#e0f2f1,stroke:#00695c,stroke-width:2px
+
+ %% 应用样式
+ class B1,B2,B3,B4,B5,B6,B7,B8,B9 coreModule
+ class B9,B91,B92,B93,B94 workorderModule
+ class C1,C2,C3,C4,C5 coreDomain
+ class C6,C61,C62,C63 workorderDomain
+ class D1,D2,D3,D4,D5,D6 infrastructure
+ class E1,E2,E3 external
+
+营收系统的模块按业务性质分为两大模块群:
+营收核心业务模块,实现从客户管理到收费账务的完整业务链条,并通过 +SYS-008 发票服务、SYS-009 支付与银行结算、SYS-010 +消息服务形成跨子系统协同闭环:
+| 模块编号 | +模块名称(标识) | +功能描述 | +开发方式 | +
|---|---|---|---|
| REV-001 | +客户资料管理 | +客户档案管理、客户分组、信息变更 | +自行开发 | +
| REV-002 | +抄表开账 | +抄表录入、复核开账、异常处理 | +自行开发 | +
| REV-003 | +营业收费 | +柜台收费、移动收费、在线缴费 | +自行开发 | +
| REV-004 | +账务处理 | +账务调整、退款处理、坏账管理 | +自行开发 | +
| REV-005 | +发票管理 | +发票开具、查询管理、电子发票 | +自行开发 | +
| REV-006 | +催缴管理 | +欠费催缴、短信通知、停水管理 | +自行开发 | +
| REV-007 | +统计分析 | +多维度数据统计和报表分析功能 | +自行开发 | +
| REV-008 | +代收业务 | +集成银行渠道与聚合支付等代收方式 | +自行开发 | +
| REV-009 | +业务参数配置 | +业务参数配置、参数管理 | +自行开发 | +
为外部渠道(微网厅、第三方平台)和内部渠道(客服前台)提供服务接入能力:
+| 模块编号 | +模块名称(标识) | +功能描述 | +开发方式 | +
|---|---|---|---|
| CS-001 | +账户绑定管理 | +微信/支付宝账户绑定与解绑、多账户管理 | +自行开发 | +
| CS-002 | +信息查询服务 | +账单查询、用水历史、缴费记录、停水公告 | +自行开发 | +
| CS-003 | +在线缴费服务 | +快捷缴费、充值、代缴、结果查询(经SYS-009) | +自行开发 | +
| CS-004 | +电子发票服务 | +发票查看、推送、下载(经SYS-008) | +自行开发 | +
| CS-005 | +营业网点服务 | +网点查询、地图导航、预约(可选) | +自行开发 | +
| CS-006 | +业务办理服务 | +联系方式/开票方式变更、更名过户、低保、换表、自主抄表等 | +自行开发 | +
| CS-007 | +柜面扫码支付 | +柜台二维码收款、票据关联、结果回传(经SYS-009) | +自行开发 | +
营收系统的两大模块群既相对独立又紧密协作,形成完整的业务生态系统。
+营收核心业务群实现了从客户管理到账务处理的完整营收业务流程:
+graph TD
+ subgraph "营收核心业务流程"
+ A[REV-001<br/>客户资料管理<br/>] --> B[REV-002<br/>抄表开账<br/>]
+ B --> C[REV-003<br/>营业收费<br/>]
+ C --> D[REV-004<br/>账务处理<br/>]
+ D --> E[REV-005<br/>发票管理<br/>]
+
+ subgraph "辅助业务流程"
+ F[REV-006<br/>催缴管理<br/>]
+ G[REV-007<br/>统计分析<br/>]
+ H[REV-008<br/>代收业务<br/>]
+ I[REV-009<br/>业务参数配置<br/>]
+ end
+ end
+
+ %% 主流程依赖关系
+ A -.->|客户信息| C
+ A -.->|客户信息| E
+ A -.->|客户信息| F
+ B -.->|账单信息| D
+ B -.->|欠费信息| F
+ C -.->|收费记录| E
+ C -.->|收费数据| G
+ D -.->|账务数据| G
+ H -.->|代收记录| C
+ I -.->|水价/参数| B
+ I -.->|打印/税率/参数| E
+ I -.->|收费参数| C
+
+ %% 样式
+ classDef coreFlow fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
+ classDef supportFlow fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+
+ class A,B,C,D,E coreFlow
+ class F,G,H,I supportFlow
+
+客户服务模块群为对外提供服务的核心入口,构建以客户为中心的一体化服务体系:
+graph TD
+ subgraph "客户服务核心流程"
+ A[CS-001<br/>账户绑定管理<br/>] --> B[CS-002<br/>信息查询服务<br/>]
+ B --> C[CS-003<br/>在线缴费服务<br/>]
+ C --> D[CS-004<br/>电子发票服务<br/>]
+
+ subgraph "辅助服务模块"
+ E[CS-005<br/>营业网点服务<br/>]
+ F[CS-006<br/>业务办理服务<br/>]
+ G[CS-007<br/>柜面扫码支付<br/>]
+ end
+ end
+
+ %% 服务调用关系
+ A -.->|绑定验证| F
+ B -.->|查询支撑| C
+ B -.->|查询支撑| D
+ B -.->|查询支撑| F
+ C -.->|支付回调| D
+ G -.->|线下支付| D
+ E -.->|网点导航| F
+ F -.->|办理结果| B
+
+ %% 外部系统依赖
+ C -.->|支付处理| SYS009[SYS-009<br/>支付系统]
+ D -.->|发票开具| SYS008[SYS-008<br/>发票系统]
+ G -.->|扫码支付| SYS009
+ F -.->|工单流转| SYS005[SYS-005<br/>工单系统]
+
+ %% 样式
+ classDef coreService fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
+ classDef supportService fill:#fff3e0,stroke:#ff9800,stroke-width:2px
+ classDef externalSys fill:#f3e5f5,stroke:#9c27b0,stroke-width:2px
+
+ class A,B,C,D coreService
+ class E,F,G supportService
+ class SYS008,SYS009,SYS005 externalSys
+
+服务流程说明:
+两大模块群通过标准化接口进行协作,实现业务闭环:
+graph TB
+ subgraph "营收核心模块群"
+ CORE[REV-001~009<br/>客户/抄表/收费/账务/发票/催缴/统计/代收/参数]
+ end
+
+ subgraph "客户服务模块群"
+ CS[CS-001~007<br/>账户绑定/查询/在线缴费/电子发票/网点/办理/柜面扫码]
+ end
+
+ subgraph "工单管理系统"
+ WO[SYS-005<br/>统一工单中心]
+ end
+
+ CORE <-->|标准API| CS
+ CORE -.->|业务异常/流程触发| WO
+ CS -.->|客户申请/服务工单| WO
+
+ classDef coreGroup fill:#e1f5fe,stroke:#0277bd,stroke-width:3px
+ classDef csGroup fill:#e8f5e8,stroke:#388e3c,stroke-width:3px
+ classDef workorderGroup fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px
+
+ class CORE coreGroup
+ class CS csGroup
+ class WO workorderGroup
+
+功能概述:
+客户资料管理模块是营收系统的基础,负责维护所有用水客户的基本信息和档案资料。
+核心功能:
+子功能扩展:
+业务规则:
+功能概述:
+抄表开账模块实现了从抄表数据录入到自动生成账单的完整业务流程。
+核心功能:
+子功能扩展:
+业务流程图:
+flowchart TD
+ A[开始抄表] --> B{选择抄表方式}
+ B -->|手工抄表| C[手工录入抄表数据]
+ B -->|PDA抄表| D[PDA现场抄表]
+ B -->|远传抄表| E[自动采集抄表数据]
+ B -->|批量导入| F[Excel批量导入]
+
+ C --> G[系统数据验证]
+ D --> H[PDA数据上传]
+ E --> I[远传数据同步]
+ F --> J[批量数据校验]
+
+ H --> G
+ I --> G
+ J --> G
+
+ G --> K{数据是否有效?}
+ K -->|否| L[数据修正]
+ L --> G
+ K -->|是| M[抄表数据复核]
+
+ M --> N{复核是否通过?}
+ N -->|否| O[标记异常数据]
+ O --> P[人工处理异常]
+ P --> M
+ N -->|是| Q[计算用水量]
+
+ Q --> R[计算水费金额]
+ R --> S[生成账单]
+ S --> T[开账确认]
+ T --> U[结束]
+
+业务规则:
+功能概述:
+营业收费模块提供完整的收费业务流程管理,支持多种收费方式和支付渠道。
+核心功能:
+子功能扩展:
+业务流程图:
+flowchart TD
+ A[客户缴费] --> B{选择缴费方式}
+ B -->|柜台缴费| C[到营业厅缴费]
+ B -->|在线缴费| D[选择在线支付]
+ B -->|银行代扣| E[银行自动扣费]
+
+ C --> F[查询客户账单]
+ D --> G[微信/支付宝支付]
+ E --> H[银行代扣处理]
+
+ F --> I{账单是否正确?}
+ I -->|否| J[账单调整]
+ J --> F
+ I -->|是| K[选择支付方式]
+
+ K --> L{支付方式}
+ L -->|现金| M[现金收费]
+ L -->|POS机| N[刷卡收费]
+ L -->|扫码| O[扫码支付]
+
+ G --> P[渠道支付确认]
+ H --> Q[银行扣费确认]
+ M --> R[收费确认]
+ N --> R
+ O --> R
+ P --> R
+ Q --> R
+
+ R --> S[更新账单状态]
+ S --> T[生成收费凭证]
+ T --> U{需要发票?}
+ U -->|是| V[开具发票]
+ U -->|否| W[完成收费]
+ V --> W
+ W --> X[结束]
+
+业务规则:
+功能概述:
+负责处理各类复杂的账务调整、退款、坏账等业务,确保账务的准确性和合规性。
+核心功能:
+功能概述:
+提供全面的发票管理功能,支持电子发票和纸质发票的开具、查询、作废等操作。
+核心功能:
+实现说明:
+SYS-008 发票服务子系统的”统一开票接口/作废红冲接口/发票查询接口”实现具体的开票与回执处理,营收系统不直接对接供应商。功能概述:
+对逾期未缴费的客户进行有效的催缴管理,提高水费回收率。
+核心功能:
+功能概述:
+提供多维度的数据统计和报表分析功能,为管理决策提供数据支持。
+核心功能:
+功能概述:
+集成银行渠道与聚合支付等代收方式,方便客户缴费。
+核心功能:
+功能概述:
+集中管理与营收业务相关的参数与基础资料,提升配置一致性与运营效率。
+核心功能:
+功能概述:
+账户绑定管理模块是客户服务体系的入口,负责处理客户与第三方平台账户的绑定关系管理,为后续的信息查询、在线缴费等服务奠定基础。
+核心功能:
+技术实现: - 基于OAuth2.0协议实现第三方授权 - +Redis缓存绑定关系提升查询性能 - 数据加密存储保护客户隐私
+功能概述:
+信息查询服务模块为客户提供全方位的信息查询功能,包括账单查询、用水历史、缴费记录等,是客户服务的核心模块之一。
+核心功能:
+技术实现: - 分页查询优化大数据量处理 - +数据缓存策略提升响应速度 - 接口聚合减少客户端调用
+功能概述:
+在线缴费服务模块提供便捷的线上缴费功能,支持多种支付方式,与SYS-009支付系统深度集成,确保支付的安全性和可靠性。
+核心功能:
+技术实现: - 与SYS-009支付系统标准化对接 - +订单状态实时同步机制 - 支付安全策略与风控
+功能概述:
+电子发票服务模块与SYS-008发票系统集成,为客户提供电子发票的查看、下载、推送等服务,满足客户对发票的个性化需求。
+核心功能:
+技术实现: - 与SYS-008发票系统API对接 - +文件流处理与下载优化 - 发票防伪与验真机制
+功能概述:
+营业网点服务模块为客户提供营业网点相关的信息服务,包括网点查询、地图导航、预约服务等,提升客户线下服务体验。
+核心功能:
+技术实现: - 地理位置服务集成 - 地图API调用优化 - +预约队列管理机制
+功能概述:
+业务办理服务模块为客户提供各类水务业务的在线申请和办理功能,与SYS-005工单系统协作实现业务流程的数字化处理。
+核心功能:
+技术实现: - 与SYS-005工单系统流程集成 - +动态表单引擎支持 - 文件上传与存储管理
+功能概述:
+柜面扫码支付模块为营业厅提供便捷的扫码收款功能,与SYS-009支付系统集成,实现线下支付的数字化处理。
+核心功能:
+技术实现: - 与SYS-009支付系统深度集成 - +二维码动态生成与管理 - POS机硬件设备对接
+ +手机抄表APP为抄表员、外勤人员提供移动作业工具,支持离线操作,通过调用外部摄像表AI系统实现抄表读数自动识别,提升现场工作效率。
+设计目标:
+功能范围:
+核心业务流程: 任务下载 → 现场抄表 → 问题上报 → +工单处理 → 数据上传 → 结果同步
+技术约束:
+性能约束:
+安全约束:
+接口设计说明:
+手机抄表APP系统作为移动端现场作业工具,需要与营收业务系统、工单管理系统保持数据同步。所有接口均采用HTTP/REST协议,支持离线缓存和在线同步模式,确保现场作业的连续性和数据一致性。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-MOBILE-001 | +任务下载接口 | +下载抄表任务与客户信息 | +手机抄表APP | +HTTP/REST | +抄表员ID、任务日期范围 | +任务列表、客户信息、水表信息 | +
| IF-MOBILE-002 | +抄表数据上传接口 | +上传抄表数据与现场图片 | +手机抄表APP | +HTTP/REST | +抄表记录、现场图片、GPS位置 | +上传状态、数据校验结果 | +
| IF-MOBILE-003 | +工单接收接口 | +接收工单任务 | +工单管理系统 | +HTTP/REST | +工单ID、工单类型、派发信息 | +接收确认、预计处理时间 | +
| IF-MOBILE-004 | +工单回填接口 | +回填处理结果与附件 | +手机抄表APP | +HTTP/REST | +工单ID、处理结果、现场图片 | +回填状态、审核结果 | +
| IF-MOBILE-005 | +离线同步接口 | +离线数据同步 | +手机抄表APP | +HTTP/REST | +离线数据包、时间戳 | +同步状态、冲突处理结果 | +
架构设计:
+端云协同架构,APP端提供离线能力(本地缓存与任务包),在线时通过增量同步接口与服务端完成任务下载、数据上传与工单回填,确保弱网环境可用。
+关键技术:
+手机抄表APP采用原生移动应用架构,支持Android平台部署。系统采用端云协同模式,APP端具备强大的离线工作能力,通过本地存储任务数据和抄表记录,支持弱网环境下的连续作业。
+graph TB
+ subgraph "手机抄表APP"
+ Login[登录认证]
+ Home[首页/搜索]
+ Task[采集任务]
+ Report[现场上报]
+ Sync[数据同步]
+ Settings[个人与设置]
+ end
+
+ subgraph "服务端"
+ AUTH[统一平台]
+ REV[营收业务系统]
+ WO[工单管理系统]
+ end
+
+ Login --> AUTH
+ Home --> REV
+ Task --> REV
+ Report --> WO
+ Sync <--> REV
+ WO -.-> Task
+
+| 模块编号 | +模块名称(标识) | +功能描述 | +开发方式 | +
|---|---|---|---|
| MOBILE-001 | +登录认证 | +机构编号、用户名/密码、自动登录、令牌管理 | +自行开发 | +
| MOBILE-002 | +首页搜索 | +多维度搜索、最近记录、任务快捷入口 | +自行开发 | +
| MOBILE-003 | +采集任务管理 | +任务列表、批量下载、单户采集、调用外部AI识别、读数校验 | +自行开发 | +
| MOBILE-004 | +现场上报 | +问题上报、拍照取证、定位信息、异常标记 | +自行开发 | +
| MOBILE-005 | +个人与设置 | +个人资料、偏好设置、缓存管理、安全退出 | +自行开发 | +
| MOBILE-006 | +数据同步 | +任务包增量同步、离线数据包上传、冲突处理 | +自行开发 | +
graph TD
+ subgraph "手机抄表APP模块关系"
+ A[MOBILE-001<br/>登录认证]
+ B[MOBILE-002<br/>首页搜索]
+ C[MOBILE-003<br/>采集任务管理]
+ D[MOBILE-004<br/>现场上报]
+ E[MOBILE-005<br/>个人与设置]
+ F[MOBILE-006<br/>数据同步]
+ end
+
+ subgraph "外部系统"
+ AI[摄像表AI系统<br/>(外部服务)]
+ end
+
+ A -->|认证通过| C
+ B -->|搜索定位| C
+ C -.->|API调用| AI
+ AI -.->|识别结果| C
+ C -->|任务数据| F
+ D -->|上报数据| F
+ E -.->|配置同步| F
+ F -->|数据上传| UP[统一平台]
+ F -->|任务下载| CS[营收业务系统]
+
+ %% 样式定义
+ classDef coreModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
+ classDef syncModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef externalModule fill:#fff3e0,stroke:#e65100,stroke-width:2px,stroke-dasharray: 5 5
+
+ class A,B,C,D coreModule
+ class E,F syncModule
+ class AI externalModule
+
+微网厅系统(SYS-004)基于微信公众号平台开发,为客户提供便民的自助服务平台。系统支持账户绑定、账单查询、在线缴费、电子发票、营业网点查询和各类业务办理等功能。通过微信生态为用户提供7×24小时不间断的自助服务,显著提升客户服务体验。
+技术约束:
+安全约束:
+业务约束:
+接口设计说明:
+微网厅系统基于微信公众号平台,为用户提供便捷的水务服务。系统与微信平台、营收业务系统、发票服务、支付系统等多个外部系统进行集成,支持账户绑定、在线查询、移动缴费、电子发票、业务申请等全流程服务。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-WECHAT-001 | +微信授权登录接口 | +通过微信OAuth2.0实现用户授权登录 | +微网厅系统 | +HTTP/REST | +微信授权码、AppID、AppSecret | +用户OpenID、访问令牌、用户基本信息 | +
| IF-WECHAT-002 | +微信支付接口 | +调用微信支付完成在线缴费 | +微网厅系统 | +HTTP/REST | +订单信息、支付金额、用户OpenID | +预支付交易会话标识、支付结果 | +
| IF-WECHAT-003 | +微信模板消息接口 | +推送缴费成功、账单提醒等消息 | +消息服务系统 | +HTTP/REST | +模板ID、用户OpenID、消息数据 | +消息推送状态、消息ID | +
| IF-WECHAT-004 | +微信JS-SDK接口 | +调用微信JS-SDK实现前端功能 | +微网厅前端 | +HTTP/REST | +页面URL、时间戳、随机字符串 | +JS-SDK配置信息、签名 | +
| IF-WECHAT-005 | +客户信息查询接口 | +查询绑定客户的基本信息 | +微网厅系统 | +HTTP/REST | +客户编号/手机号/OpenID | +客户详细信息、绑定状态 | +
| IF-WECHAT-006 | +账单信息查询接口 | +查询客户账单和欠费信息 | +微网厅系统 | +HTTP/REST | +客户编号、查询月份范围 | +账单明细、欠费金额、阶梯用量 | +
| IF-WECHAT-007 | +缴费处理接口 | +处理微信端发起的缴费业务 | +微网厅系统 | +HTTP/REST | +客户编号、缴费金额、支付方式 | +缴费订单号、支付状态、发票信息 | +
| IF-WECHAT-008 | +业务申请提交接口 | +提交报装、过户等业务申请 | +微网厅系统 | +HTTP/REST | +申请类型、客户资料、申请材料 | +申请单号、预审结果、处理时限 | +
| IF-WECHAT-009 | +电子发票申请接口 | +申请开具电子发票 | +微网厅系统 | +HTTP/REST | +缴费订单号、发票抬头信息 | +电子发票PDF、发票代码和号码 | +
| IF-WECHAT-010 | +营业网点查询接口 | +查询就近营业网点信息 | +微网厅系统 | +HTTP/REST | +地理位置坐标、搜索半径 | +网点列表、营业时间、联系方式 | +
| IF-WECHAT-011 | +账户绑定验证接口 | +验证客户身份并绑定微信账户 | +微网厅系统 | +HTTP/REST | +客户编号、身份证号、手机号码 | +绑定验证结果、绑定关系ID | +
| IF-WECHAT-012 | +用水历史查询接口 | +查询客户用水历史记录 | +微网厅系统 | +HTTP/REST | +客户编号、查询时间段 | +用水量明细、趋势分析数据 | +
采用微信公众号H5页面开发模式,前端使用响应式Web技术,后端基于Spring +Boot微服务架构。通过微信OAuth2.0实现用户授权,通过唯一标识实现账户绑定,确保数据安全和用户体验。
+微网厅系统基于微信公众号生态,采用前后端分离架构。前端采用Vue.js框架开发响应式H5页面,适配微信浏览器环境;后端采用Spring +Boot微服务架构,通过API Gateway统一接口管理。
+graph TB
+ subgraph "微信平台"
+ WeChat[微信公众号]
+ WeMsg[微信消息]
+ end
+
+ subgraph "微网厅系统"
+ Frontend[前端H5页面]
+ Backend[后端服务]
+ Cache[缓存层]
+ end
+
+ subgraph "营收业务系统"
+ Customer[客户管理]
+ Billing[账务处理]
+ Payment[收费管理]
+ Service[客户服务]
+ end
+
+ WeChat --> Frontend
+ Frontend --> Backend
+ Backend --> Cache
+ Backend --> Customer
+ Backend --> Billing
+ Backend --> Payment
+ Backend --> Service
+ Backend -.->|支付调用| PAY_SYS[支付与结算(SYS-009)]
+ Backend --> WeMsg
+
+| 模块编号 | +模块名称 | +功能描述 | +开发方式 | +
|---|---|---|---|
| WECHAT-001 | +账户绑定管理 | +微信授权、账户绑定与解绑、多账户管理 | +自行开发 | +
| WECHAT-002 | +信息查询服务 | +账单查询、用水历史、缴费记录、停水公告 | +自行开发 | +
| WECHAT-003 | +在线缴费服务 | +快捷缴费、充值服务、多种支付方式 | +自行开发 | +
| WECHAT-004 | +电子发票服务 | +发票查看、发票推送、电子发票管理 | +自行开发 | +
| WECHAT-005 | +营业网点服务 | +网点查询、地图导航、距离计算 | +自行开发 | +
| WECHAT-006 | +业务办理服务 | +联系方式变更、开票方式变更、更名业务、过户业务、一户多人口申请、水价变更、低保申请、换表申请、自主抄表 | +自行开发 | +
| WECHAT-007 | +账户流水 | +账户历史缴费流水查询与导出 | +自行开发 | +
| WECHAT-008 | +账号与机构管理 | +切换机构、添加/解绑客户、设置默认客户、客户详情 | +自行开发 | +
graph TD
+ subgraph "微网厅系统模块关系"
+ A[WECHAT-001<br/>账户绑定管理]
+ B[WECHAT-002<br/>信息查询服务]
+ C[WECHAT-003<br/>在线缴费服务]
+ D[WECHAT-004<br/>电子发票服务]
+ E[WECHAT-005<br/>营业网点服务]
+ F[WECHAT-006<br/>业务办理服务]
+ G[WECHAT-007<br/>账户流水]
+ H[WECHAT-008<br/>账号与机构管理]
+ end
+
+ A -->|身份验证| B
+ A -->|授权支付| C
+ A -->|授权开票| D
+ A -->|位置服务| E
+ A -->|业务授权| F
+ A -->|流水授权| G
+ A -->|账号管理| H
+
+ B -.->|查询后开票| D
+ C -.->|支付后开票| D
+ F -.->|业务查询| B
+ F -.->|业务缴费| C
+
+ %% 样式定义
+ classDef coreService fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
+ classDef supportService fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef bindingModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+
+ class A bindingModule
+ class B,C,D,F coreService
+ class E,G,H supportService
+
+业务办理流程:
+flowchart TD
+ Start([用户发起业务申请]) --> Select[选择业务类型]
+ Select --> Fill[填写申请信息]
+ Fill --> Upload[上传相关材料]
+ Upload --> Submit[提交申请]
+ Submit --> Review[系统审核]
+ Review --> Approve{审核结果}
+ Approve -->|通过| Process[业务处理]
+ Approve -->|退回| Modify[修改申请]
+ Modify --> Submit
+ Process --> Complete[办理完成]
+ Complete --> Notify[结果通知]
+ Notify --> End([结束])
+
+
+工单管理系统(SYS-005)负责全业务工单统一受理、创建、派发、处理、验收与归档,覆盖营收、表务、报装、客户服务等场景,提供统一流程引擎与监控预警能力。
+工单管理系统作为统一的工单处理平台,接收来自营收、表务、报装、微网厅、APP等各业务系统的工单需求,实现工单全生命周期管理。系统提供标准化的工单接口,支持多种工单类型的创建、派发、处理、跟踪全流程管理。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-WO-001 | +工单创建接口 | +创建各类业务工单 | +营收/表务/报装/微网厅/APP | +HTTP/REST | +工单类型、客户信息、问题描述、紧急程度 | +工单编号、预计处理时间、派发状态 | +
| IF-WO-002 | +工单派发接口 | +向处理人/APP派发任务 | +工单管理系统 | +HTTP/REST | +工单ID、处理人员、预期完成时间 | +派发结果、接收确认状态 | +
| IF-WO-003 | +工单回填接口 | +回填处理结果与附件 | +APP/各业务系统 | +HTTP/REST | +工单ID、处理结果、现场图片、完成时间 | +回填状态、审核结果、客户满意度 | +
| IF-WO-004 | +工单查询接口 | +查询工单状态和处理轨迹 | +各业务系统/客户端 | +HTTP/REST | +工单编号/客户编号、查询条件 | +工单状态、处理进度、历史轨迹 | +
| IF-WO-005 | +工单统计接口 | +工单处理绩效统计分析 | +管理后台 | +HTTP/REST | +统计维度、时间范围、部门筛选 | +统计报表、效率分析、排名数据 | +
| IF-WO-006 | +工单预警接口 | +超时工单监控预警 | +监控系统 | +HTTP/REST | +预警规则、时间阈值 | +预警工单列表、通知配置 | +
架构采用”工单中心 + 流程编排 + 监控预警 + +绩效统计”的分层设计,提供统一API网关对接各业务系统,并通过可配置流程实现多类型工单的快速上线。
+工单管理系统采用微服务分层架构,通过统一工单中心集中管理各类业务工单,配置化流程引擎支持不同工单类型的个性化流转,实时监控预警确保服务质量,绩效统计提供数据分析支撑。
+graph TB
+ subgraph "工单管理系统"
+ WO_CENTER[统一工单中心]
+ FLOW[流程引擎]
+ MON[监控预警]
+ STAT[绩效统计]
+ end
+
+ subgraph "协作系统"
+ REV[营收业务系统]
+ METER[表务管理系统]
+ INSTALL[报装业务系统]
+ APP[手机抄表APP]
+ WECHAT[微网厅]
+ end
+
+ REV -.->|业务异常/申请| WO_CENTER
+ METER -.->|换表申请| WO_CENTER
+ INSTALL -.->|报装派单| WO_CENTER
+ WECHAT -.->|客户服务申请| WO_CENTER
+ APP -.->|问题上报/结果回填| WO_CENTER
+
+ WO_CENTER -.-> FLOW
+ WO_CENTER -.-> MON
+ WO_CENTER -.-> STAT
+ WO_CENTER -.->|派发任务| APP
+
+| 模块编号 | +模块名称 | +功能描述 | +开发方式 | +
|---|---|---|---|
| WORK-001 | +工单中心 | +统一受理、路由、分派、跟踪 | +自行开发 | +
| WORK-002 | +流程引擎 | +节点编排、条件路由、并行网关 | +自行开发 | +
| WORK-003 | +监控预警 | +超时/积压/异常预警、看板 | +自行开发 | +
| WORK-004 | +绩效统计 | +人员/环节时长、SLA达成率 | +自行开发 | +
graph TD
+ subgraph "工单管理系统模块关系"
+ A[WORK-001<br/>工单中心]
+ B[WORK-002<br/>流程引擎]
+ C[WORK-003<br/>监控预警]
+ D[WORK-004<br/>绩效统计]
+ end
+
+ A -->|流程调度| B
+ A -->|状态监控| C
+ A -->|数据统计| D
+ B -.->|流程状态| C
+ C -.->|监控数据| D
+
+ %% 样式定义
+ classDef coreModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
+ classDef processModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef monitorModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+
+ class A coreModule
+ class B processModule
+ class C,D monitorModule
+
+表务管理系统(SYS-006)聚焦设备档案和表务全生命周期管理,面向换表等业务提供资源保障。
+表务管理系统负责水表资产的全生命周期管理,包括基础参数配置、仓库库存管理、设备档案管理。系统与工单管理、营收业务等系统协作,支持水表领用、更换、维修、报废等全流程作业,确保水表资产的准确管理和有效利用。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-METER-001 | +库存查询接口 | +查询仓库库存状态和预警信息 | +工单/营收/报装系统 | +HTTP/REST | +仓库编号、水表型号、库存状态 | +库存明细、预警状态、可用数量 | +
| IF-METER-002 | +领用出库接口 | +支持换表/施工水表领用出库 | +工单管理系统 | +HTTP/REST | +领用单号、水表型号、领用数量、领用人 | +出库状态、库存余量、领用凭证 | +
| IF-METER-003 | +档案查询接口 | +查询水表设备档案信息 | +营收/工单/报装系统 | +HTTP/REST | +水表编号、客户编号、查询类型 | +设备档案、安装历史、维修记录 | +
| IF-METER-004 | +集抄数据接收接口 | +接收远传抄表、异常告警并同步状态 | +物联网平台 | +HTTP/REST | +设备标识、采集时间、读数值、告警信息 | +接收结果、校验状态、异常标记 | +
| IF-METER-005 | +资产调拨接口 | +仓库间水表调拨转移 | +表务管理系统 | +HTTP/REST | +调出仓库、调入仓库、调拨清单 | +调拨状态、库存变更结果 | +
| IF-METER-006 | +盘点核实接口 | +定期盘点和库存核实 | +表务管理系统 | +HTTP/REST | +盘点计划、盘点范围、盘点人员 | +盘点结果、差异分析、调整建议 | +
以”基础参数-仓库库存-设备档案”三层模型实现资产全生命周期管理;通过与工单系统联动完成领用/回填闭环,支持库存预警与追溯。
+表务管理系统采用分层数据架构,通过基础参数管理建立水表标准规范,通过仓库库存管理实现设备资源调配,通过设备档案管理实现全生命周期跟踪。系统与工单管理系统深度集成,形成”需求-领用-安装-回收”的完整闭环。 + 周转率、维修频次等统计分析
+graph TB
+ subgraph "表务管理系统"
+ BASE[基础参数]
+ WH[仓库与库存]
+ DOC[设备档案]
+ end
+
+ WO[工单系统] -.->|领用/回填| WH
+ REV[营收系统] -.->|档案/库存状态| DOC
+
+| 模块编号 | +模块名称 | +功能描述 | +开发方式 | +
|---|---|---|---|
| METER-001 | +表务基础管理 | +厂家/型号/口径/量程等基础参数 | +自行开发 | +
| METER-002 | +仓库与库存管理 | +入库/出库/盘点/调拨/预警 | +自行开发 | +
| METER-003 | +设备档案管理 | +档案建档/状态管理/追溯 | +自行开发 | +
graph TD
+ subgraph "表务管理系统模块关系"
+ A[METER-001<br/>表务基础管理]
+ B[METER-002<br/>仓库与库存管理]
+ C[METER-003<br/>设备档案管理]
+ end
+
+ A -->|基础参数| B
+ B -->|库存状态| C
+ C -.->|规格验证| A
+
+ %% 样式定义
+ classDef baseModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
+ classDef warehouseModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef docModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+
+ class A baseModule
+ class B warehouseModule
+ class C docModule
+
+报装业务系统(SYS-007)覆盖从申请、踏勘、设计、施工到验收通水的全流程,支持调用泛微进行合同签订和电子签章,并与工单系统协作完成现场派工与过程留痕。
+报装业务系统负责新用户报装全流程管理,从申请受理到通水验收的全生命周期业务处理。系统与微网厅、营收系统、工单管理、表务管理、CA电子签章等外部系统协作,实现报装业务的规范化、数字化管理和全流程追溯。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-INST-001 | +报装申请接口 | +提交报装申请信息与材料 | +微网厅/营收系统 | +HTTP/REST | +申请人信息、用水地址、申请材料、联系方式 | +申请单号、预审结果、处理时限 | +
| IF-INST-002 | +踏勘派工接口 | +现场踏勘任务派发 | +工单管理系统 | +HTTP/REST | +报装单号、踏勘要求、预约时间 | +派工结果、踏勘人员、预计完成时间 | +
| IF-INST-003 | +签章接口 | +调用CA系统进行电子签章 | +CA电子签章系统 | +HTTP/REST | +合同文档、签章类型、签章方信息 | +签章状态、签章文档、存证信息 | +
| IF-INST-004 | +签章回执接口 | +接收CA系统签章完成回执 | +CA电子签章系统 | +HTTP/REST | +签章任务ID、签章结果、时间戳 | +接收确认、存档状态 | +
| IF-INST-005 | +报装归档接口 | +归档申请、合同、验收与签章回执资料 | +报装系统 | +HTTP/REST | +报装单号、资料清单、签章回执、验收文档 | +归档状态、档案编号、存储位置 | +
| IF-INST-006 | +验收通水接口 | +验收合格并开通供水 | +营收业务系统 | +HTTP/REST | +报装单号、验收结果、水表信息 | +开户结果、客户编号、通水状态 | +
| IF-INST-007 | +档案归档接口 | +竣工档案归档管理 | +档案管理系统 | +HTTP/REST | +报装单号、竣工资料、验收文档 | +归档状态、档案编号、存储位置 | +
报装业务系统采用阶段式流程架构,将复杂的报装业务分解为申请受理、现场踏勘、施工管理、验收通水四个核心阶段,每个阶段具有明确的输入输出和验收标准。系统与CA电子签章系统深度集成,实现合同文档的电子化签署和存证。
+graph TB
+ subgraph "报装业务系统"
+ APPLY[申请受理]
+ SURVEY[现场踏勘]
+ BUILD[施工管理]
+ ACCEPT[验收通水]
+ ARCH[资料归档]
+ end
+
+ WECHAT[微网厅] -.->|报装申请| APPLY
+ APPLY -.-> SURVEY -.-> BUILD -.-> ACCEPT -.-> ARCH
+ INST_WO[工单系统] -.->|派工/回填| SURVEY
+ INST_WO -.->|派工/回填| BUILD
+ CA[CA电子签章]
+ ARCH -.->|签章/验章/存证| CA
+
+| 模块编号 | +模块名称 | +功能描述 | +开发方式 | +
|---|---|---|---|
| INST-001 | +报装流程管理 | +端到端阶段流转,里程碑控制 | +自行开发 | +
| INST-002 | +工程管理 | +进度/资源/质量/安全管理 | +自行开发 | +
| INST-003 | +档案管理 | +资料归档、过程留痕、竣工档案 | +自行开发 | +
graph TD
+ subgraph "报装业务系统模块关系"
+ A[INST-001<br/>报装流程管理]
+ B[INST-002<br/>工程管理]
+ C[INST-003<br/>档案管理]
+ end
+
+ A -->|流程驱动| B
+ B -->|工程资料| C
+ C -.->|档案反馈| A
+
+ %% 样式定义
+ classDef flowModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
+ classDef projectModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef archiveModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+
+ class A flowModule
+ class B projectModule
+ class C archiveModule
+
+功能概述:
+报装流程管理模块负责端到端的报装业务流程控制,涵盖从申请受理到资料归档的完整生命周期管理。
+核心功能:
+功能概述:
+工程管理模块负责报装工程的施工全过程管理,包括派工、安装、验收等关键环节的控制与监督。
+核心功能:
+功能概述:
+档案管理模块负责报装业务全过程的资料归档、电子签章和竣工档案管理,确保业务合规性和可追溯性。
+核心功能:
+发票服务子系统(SYS-008)定位为”基础服务层”的统一开票能力中心,通过统一开票网关与供应商适配器屏蔽不同厂商差异,当前优先对接”航天信息”,预留”博思”等供应商接入能力。
+发票服务子系统作为基础服务层的统一开票能力中心,为上游业务系统提供标准化的发票服务。系统采用适配器模式,支持多供应商接入,当前优先对接航天信息,预留博思等其他供应商接入能力,确保发票业务的合规性和可扩展性。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-INV-001 | +统一开票接口 | +统一受理电子发票开具请求 | +营收业务系统/微网厅 | +HTTP/REST | +开票信息、购买方信息、商品明细、税额 | +发票申请ID、开票状态、预计完成时间 | +
| IF-INV-002 | +作废红冲接口 | +发票作废和红字发票处理 | +营收业务系统 | +HTTP/REST | +原发票号码、作废/红冲原因、操作类型 | +处理结果、新发票信息、作废状态 | +
| IF-INV-003 | +发票查询接口 | +查询发票状态和下载链接 | +营收系统/微网厅/客户端 | +HTTP/REST | +发票代码、发票号码、查询类型 | +发票状态、PDF下载链接、发票详情 | +
| IF-INV-004 | +回执推送接口 | +接收供应商发票处理回执 | +航天信息/博思等供应商 | +HTTP/REST | +回执ID、处理结果、发票文件、时间戳 | +接收确认、存储状态、通知结果 | +
| IF-INV-005 | +供应商切换接口 | +供应商服务切换和负载均衡 | +发票服务网关 | +HTTP/REST | +供应商标识、切换原因、备用方案 | +切换状态、新供应商信息、影响评估 | +
| IF-INV-006 | +存证签章接口 | +发票电子存证和数字签章 | +存证签章模块 | +HTTP/REST | +发票文件、签章类型、存证要求 | +存证凭证、签章状态、法律效力确认 | +
发票服务子系统采用统一网关和适配器模式架构,通过统一开票网关屏蔽不同供应商的接口差异,供应商适配器实现具体厂商的协议转换,回执处理模块确保业务闭环,存证签章模块保障发票的法律效力。
+graph TB
+ subgraph "发票服务子系统"
+ GW[统一开票网关]
+ ADP[供应商适配器]
+ RCPT[回执处理]
+ EVID[存证与签章]
+ end
+
+ subgraph "上游系统"
+ REV[营收业务系统]
+ WECHAT[微网厅]
+ end
+
+ subgraph "供应商"
+ HT[航天信息]
+ BOS[博思/预留]
+ end
+
+ REV -.->|INV-001/002/003| GW
+ WECHAT -.->|发票查询/下载| GW
+ GW --> ADP --> HT
+ ADP -.-> BOS
+ HT -.-> RCPT --> EVID
+
+| 模块编号 | +模块名称 | +功能描述 | +开发方式 | +
|---|---|---|---|
| INV-001 | +统一开票网关 | +统一鉴权、参数校验、基础路由 | +自行开发 | +
| INV-002 | +供应商适配器 | +航天/博思等供应商协议适配、签名加验签 | +自行开发 | +
| INV-003 | +回执处理 | +回执解析、状态机、失败重试、告警通知 | +自行开发 | +
| INV-004 | +存证与签章 | +发票PDF/JSON存证、签章与链接生成、合规审计 | +自行开发 | +
graph TD
+ subgraph "发票服务子系统模块关系"
+ A[INV-001<br/>统一开票网关]
+ B[INV-002<br/>供应商适配器]
+ C[INV-003<br/>回执处理]
+ D[INV-004<br/>存证与签章]
+ end
+
+ A -->|请求路由| B
+ B -->|供应商回调| C
+ C -->|状态更新| D
+ C -.->|状态回馈| A
+
+ %% 样式定义
+ classDef gatewayModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
+ classDef adapterModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef processModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+
+ class A gatewayModule
+ class B adapterModule
+ class C,D processModule
+
+支付与银行结算子系统(SYS-009)统一承载聚合支付/退款、渠道适配(微信/支付宝/银联聚合)、支付回调验签入账,以及银行实时收费、代扣/托收签约解约、送盘/回盘/对账契约与安全加解密/签名,向上对营收/微网厅等系统提供标准化支付与结算能力。夜间批量代扣、完整回盘状态补偿、对账差异处理与结算确认当前仍按后续完善项管理。
+ 支付与银行结算子系统作为统一的支付能力中心,为上游业务系统提供聚合支付、银行实时收费、代扣/托收签解约、退款处理、对账管理等支付结算服务。以下接口表表达的是正式设计目标边界,其中聚合支付、实时收费查询/缴费、代扣/托收签解约已具备较明确实现证据;BankWithholding
+六条银行入口已形成最小实现态闭环,托收平行链路、对账和完整结算闭环仍按部分实现或后续完善项管理。
| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-PAY-001 | +统一支付下单接口 | +统一处理各渠道支付下单请求 | +营收系统/微网厅 | +HTTP/REST | +订单信息、支付方式、支付金额、用户标识 | +预支付订单号、支付参数、二维码 | +
| IF-PAY-002 | +统一关单接口 | +订单关闭和撤销处理 | +营收系统/微网厅 | +HTTP/REST | +订单号、关闭原因、操作类型 | +关单状态、退款信息、处理结果 | +
| IF-PAY-003 | +统一退款接口 | +原路退款和部分退款处理 | +营收系统/微网厅 | +HTTP/REST | +原订单号、退款金额、退款原因 | +退款单号、退款状态、预计到账时间 | +
| IF-PAY-004 | +支付回调接口 | +接收渠道支付结果回调 | +微信/支付宝/银联 | +HTTP/REST | +回调数据、签名、时间戳 | +处理确认、业务更新状态 | +
| IF-PAY-005 | +批量代扣送盘接口 | +银行批量代扣文件发送 | +营收业务系统 | +HTTP/REST/SFTP | +代扣清单、客户签约信息、扣款金额 | +送盘状态、批次号、预计处理时间(BankWithholding
+已具备最小实现态闭环;真实文件通道联调仍待补证) |
+
| IF-PAY-006 | +批量代扣回盘接口 | +银行代扣结果回盘处理 | +银行系统 | +HTTP/REST/SFTP | +回盘文件、处理结果、失败原因 | +解析结果、状态更新、异常处理(BankWithholding
+已具备最小实现态闭环;真实文件解析与异常补偿仍待补证) |
+
| IF-PAY-007 | +批量对账文件接口 | +银行对账文件处理分析 | +银行系统/营收系统 | +HTTP/REST/SFTP | +对账文件、对账日期、差异规则 | +对账结果、差异明细、调整建议(当前仍按部分实现或后续完善项管理) | +
| IF-PAY-008 | +加解密签名接口 | +支付数据安全处理 | +内部模块调用 | +HTTP/REST | +待处理数据、加密类型、签名算法 | +处理结果、安全凭证、验证状态 | +
支付与银行结算子系统采用统一网关和多适配器架构,通过统一支付网关提供标准化支付接口,渠道适配器处理不同支付渠道的协议差异,银行适配器实现批量代扣和对账功能,回调处理确保支付结果的及时处理,加解密模块保障交易安全。
+graph TB
+ subgraph "支付与银行结算子系统"
+ GW[统一支付与结算网关]
+ ADP_CH[渠道适配器]
+ ADP_BANK[银行适配器]
+ CB[回调处理]
+ RECON[对账处理]
+ CRYPTO[加解密/签名]
+ end
+
+ subgraph "上游系统"
+ REV[营收业务系统]
+ WECHAT[微网厅]
+ end
+
+ subgraph "外部机构"
+ WX[微信]
+ ALI[支付宝]
+ UPG[银联聚合]
+ BANK[银行]
+ end
+
+ REV -.->|PAY-001/002/003/005/006/007| GW
+ WECHAT -.->|下单/查询| GW
+ GW --> ADP_CH --> WX
+ ADP_CH --> ALI
+ ADP_CH --> UPG
+ GW --> ADP_BANK --> BANK
+ WX -.-> CB
+ ALI -.-> CB
+ UPG -.-> CB
+ ADP_BANK -.-> RECON
+ GW -.-> CRYPTO
+
+| 模块编号 | +模块名称 | +功能描述 | +开发方式 | +
|---|---|---|---|
| PAY-001 | +统一支付与结算网关 | +鉴权、参数校验、幂等、基础路由 | +自行开发 | +
| PAY-002 | +渠道适配器 | +渠道参数映射、签名/验签、错误码转换 | +自行开发 | +
| PAY-003 | +银行适配器 | +协议/文件规范适配、编码转换、SFTP/HTTP | +自行开发 | +
| PAY-004 | +回调处理 | +回调验签、订单入账、补偿重试 | +自行开发 | +
| PAY-005 | +批量对账处理 | +对账接收/解析、差错处理、账务回填、报告 | +自行开发 | +
| PAY-006 | +加解密/签名 | +SM2/SM4/3DES等算法、密钥管理 | +自行开发 | +
graph TD
+ subgraph "支付与银行结算子系统模块关系"
+ A[PAY-001<br/>统一支付与结算网关]
+ B[PAY-002<br/>渠道适配器]
+ C[PAY-003<br/>银行适配器]
+ D[PAY-004<br/>回调处理]
+ E[PAY-005<br/>批量对账处理]
+ F[PAY-006<br/>加解密/签名]
+ end
+
+ A -->|渠道路由| B
+ A -->|银行对接| C
+ B -->|支付回调| D
+ C -->|对账数据| E
+ A -->|安全加密| F
+
+ B -.->|状态反馈| A
+ C -.->|状态反馈| A
+ D -.->|结果通知| A
+ E -.->|对账结果| A
+ F -.->|密钥服务| A
+
+ %% 样式定义
+ classDef gatewayModule fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
+ classDef adapterModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef processModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+ classDef securityModule fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
+
+ class A gatewayModule
+ class B,C adapterModule
+ class D,E processModule
+ class F securityModule
+
+消息服务子系统(SYS-010)负责统一消息推送、接收与处理,为各业务子系统提供消息通知服务。
+设计目标:
+功能范围:
+技术约束:
+性能约束:
+安全约束:
+消息服务子系统作为统一的消息通知中心,为各业务系统提供多渠道消息推送能力。系统支持短信、邮件、站内信等多种消息渠道,与外部系统(OA、智水擎、水投数科APP)对接,实现消息的统一管理和分发。
+| 接口编号 | +接口名称 | +功能描述 | +调用方 | +接口协议 | +输入参数 | +输出结果 | +
|---|---|---|---|---|---|---|
| IF-MSG-001 | +短信发送接口 | +发送短信通知消息 | +营收/微网厅/工单系统 | +HTTP/REST | +手机号、消息内容、模板ID、发送时间 | +发送状态、消息ID、预计到达时间 | +
| IF-MSG-002 | +邮件发送接口 | +发送邮件通知消息 | +营收/工单/报装系统 | +HTTP/REST | +邮箱地址、邮件主题、邮件内容、附件 | +发送状态、邮件ID、送达确认 | +
| IF-MSG-003 | +站内信接口 | +发送系统站内消息 | +各业务系统 | +HTTP/REST | +用户ID、消息标题、消息内容、消息类型 | +发送结果、消息状态、已读状态 | +
| IF-MSG-004 | +微信消息推送接口 | +发送微信模板消息 | +微网厅系统 | +HTTP/REST | +用户OpenID、模板ID、模板数据 | +推送状态、消息ID、送达状态 | +
| IF-MSG-005 | +外部系统对接接口 | +对接OA/智水擎等外部系统 | +OA系统/智水擎/水投数科APP | +HTTP/REST | +系统标识、消息类型、接收用户、消息内容 | +对接状态、消息分发结果 | +
| IF-MSG-006 | +固定模板管理接口 | +管理消息固定模板 | +系统管理员 | +HTTP/REST | +模板类型、模板内容、适用场景 | +模板ID、保存状态、生效时间 | +
架构设计:
+消息服务子系统采用消息队列技术实现消息的异步处理。通过RabbitMQ实现消息的可靠传输和幂等处理。
+技术选型:
+消息服务子系统采用消息中心架构模式,通过统一消息网关接收各业务系统的消息发送请求,通过渠道适配器实现不同消息渠道的协议转换,固定模板管理确保消息内容的规范性,外部系统对接实现与OA、智水擎等系统的消息互通。
+graph TB
+ subgraph "消息服务子系统"
+ PUB[消息推送]
+ SUB[消息接收]
+ MQ[RabbitMQ]
+ end
+
+ PUB --> MQ
+ SUB --> MQ
+
+| 模块编号 | +模块名称 | +功能描述 | +开发方式 | +
|---|---|---|---|
| MSG-001 | +消息网关模块 | +统一接入、鉴权、路由、幂等控制 | +自行开发 | +
| MSG-002 | +短信服务模块 | +短信发送、回执处理、失败重试、供应商适配 | +自行开发 | +
| MSG-003 | +邮件服务模块 | +邮件发送、附件管理、批量发送、回执处理 | +自行开发 | +
| MSG-004 | +站内信模块 | +站内信管理、用户消息推送、已读状态跟踪 | +自行开发 | +
| MSG-005 | +微信通知模块 | +微信模板消息、公众号推送通知 | +自行开发 | +
| MSG-006 | +模板管理模块 | +消息模板管理、固定模板维护 | +自行开发 | +
| MSG-007 | +外部系统适配模块 | +对接OA、智水擎、水投数科app等数科系统 | +自行开发 | +
graph TD
+ subgraph "消息服务子系统模块关系"
+ A[MSG-001<br/>消息网关模块]
+ B[MSG-002<br/>短信服务模块]
+ C[MSG-003<br/>邮件服务模块]
+ D[MSG-004<br/>站内信模块]
+ E[MSG-005<br/>微信通知模块]
+ F[MSG-006<br/>模板管理模块]
+ G[MSG-007<br/>外部系统适配模块]
+ end
+
+ %% 核心流程
+ A -->|短信路由| B
+ A -->|邮件路由| C
+ A -->|站内信路由| D
+ A -->|微信路由| E
+ A -->|外部系统路由| G
+
+ %% 模板服务
+ F -->|短信模板| B
+ F -->|邮件模板| C
+ F -->|站内信模板| D
+ F -->|微信模板| E
+ F -->|外部模板| G
+
+ %% 回执反馈
+ B -.->|短信回执| A
+ C -.->|邮件回执| A
+ D -.->|已读状态| A
+ E -.->|微信回执| A
+ G -.->|外部回执| A
+
+ %% 样式定义
+ classDef gatewayModule fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
+ classDef channelModule fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
+ classDef templateModule fill:#fff3e0,stroke:#f57c00,stroke-width:2px
+ classDef externalModule fill:#e8f5e8,stroke:#388e3c,stroke-width:2px
+
+ class A gatewayModule
+ class B,C,D,E channelModule
+ class F templateModule
+ class G externalModule
+
+设计目标:
+设计措施:
+浏览器兼容性:
+数据库兼容性:
+操作系统兼容性:
+身份认证:
+权限控制:
+数据安全:
+系统安全:
+平台无关性:
+云平台适配:
+集成策略:
+测试策略:
+架构扩展:
+功能扩展:
+高可用设计:
+容错机制:
+数据备份:
+代码质量:
+运维友好:
+文档管理:
+2024年12月19日
+| 项目信息 | +详情 | +
|---|---|
| 项目名称 | +福建水务营收系统 | +
| 文档类型 | +安全设计文档 | +
| 技术框架 | +RuoYi-Vue-Pro + 达梦数据库 8.0+ | +
| 文档版本 | +v1.0 | +
| 编写日期 | +2024-12-19 | +
| 文档状态 | +✅ 已完成 | +
福建水务营收系统安全设计结合水务行业特点和国产化要求,构建全方位、多层次的安全防护体系。
+graph TB
+ subgraph "外部威胁"
+ THREAT1[网络攻击]
+ THREAT2[恶意软件]
+ THREAT3[数据泄露]
+ THREAT4[内部威胁]
+ end
+
+ subgraph "安全防护层"
+ subgraph "边界安全"
+ WAF[Web应用防火墙]
+ FW[网络防火墙]
+ IPS[入侵防护系统]
+ VPN[VPN网关]
+ end
+
+ subgraph "应用安全"
+ AUTH[身份认证]
+ AUTHZ[访问控制]
+ AUDIT[操作审计]
+ ENCRYPT[数据加密]
+ end
+
+ subgraph "数据安全"
+ TDE[透明数据加密]
+ RLS[行级安全]
+ MASK[数据脱敏]
+ BACKUP[安全备份]
+ end
+
+ subgraph "运维安全"
+ MONITOR[安全监控]
+ LOG[日志分析]
+ ALERT[告警响应]
+ PATCH[安全更新]
+ end
+ end
+
+ subgraph "核心资产"
+ APP[水务营收系统]
+ DB[达梦数据库]
+ FILE[文件存储]
+ API[接口服务]
+ end
+
+ THREAT1 --> WAF
+ THREAT2 --> FW
+ THREAT3 --> IPS
+ THREAT4 --> VPN
+
+ WAF --> AUTH
+ FW --> AUTHZ
+ IPS --> AUDIT
+ VPN --> ENCRYPT
+
+ AUTH --> TDE
+ AUTHZ --> RLS
+ AUDIT --> MASK
+ ENCRYPT --> BACKUP
+
+ TDE --> MONITOR
+ RLS --> LOG
+ MASK --> ALERT
+ BACKUP --> PATCH
+
+ MONITOR --> APP
+ LOG --> DB
+ ALERT --> FILE
+ PATCH --> API
+
+
+graph TB
+ subgraph "达梦数据库安全特性"
+ subgraph "身份认证"
+ PWD[密码认证]
+ CERT[证书认证]
+ LDAP_AUTH[LDAP认证]
+ KERBEROS[Kerberos认证]
+ end
+
+ subgraph "访问控制"
+ RBAC_DB[基于角色的访问控制]
+ RLS_DB[行级安全策略]
+ CLS_DB[列级访问控制]
+ SCHEMA[模式权限控制]
+ end
+
+ subgraph "数据加密"
+ TDE_SM4[TDE透明加密<br/>SM4国密算法]
+ SSL_SM[SSL传输加密<br/>SM2/SM3/SM4]
+ FIELD_ENC[字段级加密]
+ BACKUP_ENC[备份加密]
+ end
+
+ subgraph "审计监控"
+ AUDIT_LOG[操作审计日志]
+ LOGIN_LOG[登录审计]
+ DDL_LOG[DDL操作记录]
+ SECURITY_LOG[安全事件日志]
+ end
+ end
+
+ PWD --> RBAC_DB
+ CERT --> RLS_DB
+ LDAP_AUTH --> CLS_DB
+ KERBEROS --> SCHEMA
+
+ RBAC_DB --> TDE_SM4
+ RLS_DB --> SSL_SM
+ CLS_DB --> FIELD_ENC
+ SCHEMA --> BACKUP_ENC
+
+ TDE_SM4 --> AUDIT_LOG
+ SSL_SM --> LOGIN_LOG
+ FIELD_ENC --> DDL_LOG
+ BACKUP_ENC --> SECURITY_LOG
+
+SFTP;FTP
+仅作为兼容能力保留,需在风险评估通过后启用。credentialRef
+引用形式由环境配置或配置中心承接,不在正式文档、默认仓库配置样例或测试样本中写入明文密码、私钥、证书。host/port/username/credentialRef
+时必须立即阻断当前文件动作,避免以残缺配置尝试连接银行通道。graph TB
+ subgraph "外网区域"
+ INTERNET[互联网]
+ CDN[CDN加速]
+ DNS[DNS服务]
+ end
+
+ subgraph "边界防护"
+ WAF[Web应用防火墙<br/>国产WAF产品]
+ FW_BORDER[边界防火墙<br/>安全审计]
+ IPS[入侵防护系统<br/>威胁检测]
+ DPI[深度包检测<br/>流量分析]
+ end
+
+ subgraph "DMZ区域"
+ LB[负载均衡器<br/>SSL卸载]
+ WEB1[Web服务器1]
+ WEB2[Web服务器2]
+ PROXY[反向代理]
+ end
+
+ subgraph "内网安全"
+ FW_INTERNAL[内部防火墙]
+ VLAN_APP[应用VLAN]
+ VLAN_DB[数据库VLAN]
+ VLAN_MGT[管理VLAN]
+ end
+
+ subgraph "应用层"
+ APP1[应用服务器1]
+ APP2[应用服务器2]
+ APP3[应用服务器3]
+ end
+
+ subgraph "数据层"
+ DB_MASTER[达梦主库]
+ DB_SLAVE[达梦从库]
+ REDIS[Redis集群]
+ end
+
+ subgraph "管理层"
+ JUMP[跳板机]
+ MONITOR[监控服务器]
+ LOG[日志服务器]
+ end
+
+ INTERNET --> CDN
+ CDN --> DNS
+ DNS --> WAF
+ WAF --> FW_BORDER
+ FW_BORDER --> IPS
+ IPS --> DPI
+ DPI --> LB
+
+ LB --> WEB1
+ LB --> WEB2
+ WEB1 --> PROXY
+ WEB2 --> PROXY
+
+ PROXY --> FW_INTERNAL
+ FW_INTERNAL --> VLAN_APP
+ FW_INTERNAL --> VLAN_DB
+ FW_INTERNAL --> VLAN_MGT
+
+ VLAN_APP --> APP1
+ VLAN_APP --> APP2
+ VLAN_APP --> APP3
+
+ VLAN_DB --> DB_MASTER
+ VLAN_DB --> DB_SLAVE
+ VLAN_DB --> REDIS
+
+ VLAN_MGT --> JUMP
+ VLAN_MGT --> MONITOR
+ VLAN_MGT --> LOG
+
+graph TB
+ subgraph "数据分类"
+ SECRET[机密级<br/>重要业务数据]
+ INTERNAL[内部级<br/>一般业务数据]
+ PUBLIC[公开级<br/>公开业务数据]
+ end
+
+ subgraph "水务业务数据"
+ CUSTOMER[客户身份信息<br/>机密级]
+ METER[水表计量数据<br/>内部级]
+ BILLING[收费账务数据<br/>机密级]
+ REPORT[统计报表数据<br/>内部级]
+ CONFIG[系统配置数据<br/>内部级]
+ LOG[日志审计数据<br/>内部级]
+ end
+
+ subgraph "保护措施"
+ ENC_HIGH[强加密<br/>SM4+数字签名]
+ ENC_MID[访问控制<br/>权限管理]
+ ENC_LOW[公开访问<br/>无特殊保护]
+ end
+
+ SECRET --> ENC_HIGH
+ INTERNAL --> ENC_MID
+ PUBLIC --> ENC_LOW
+
+ CUSTOMER --> SECRET
+ BILLING --> SECRET
+ METER --> INTERNAL
+ REPORT --> INTERNAL
+ CONFIG --> INTERNAL
+ LOG --> INTERNAL
+
+graph TB
+ subgraph "数据采集层"
+ AGENT1[系统日志采集]
+ AGENT2[应用日志采集]
+ AGENT3[数据库日志采集]
+ AGENT4[网络流量采集]
+ end
+
+ subgraph "数据处理层"
+ KAFKA[消息队列<br/>Kafka集群]
+ STREAM[流处理<br/>Flink/Storm]
+ ETL[数据清洗<br/>Logstash]
+ end
+
+ subgraph "存储分析层"
+ ES[Elasticsearch<br/>日志存储]
+ SIEM[安全信息事件管理<br/>SIEM平台]
+ AI[智能分析<br/>机器学习]
+ end
+
+ subgraph "可视化层"
+ DASHBOARD[监控仪表盘<br/>Grafana]
+ ALERT[告警系统<br/>AlertManager]
+ REPORT[安全报告<br/>自动生成]
+ end
+
+ AGENT1 --> KAFKA
+ AGENT2 --> KAFKA
+ AGENT3 --> KAFKA
+ AGENT4 --> KAFKA
+
+ KAFKA --> STREAM
+ STREAM --> ETL
+ ETL --> ES
+
+ ES --> SIEM
+ SIEM --> AI
+ AI --> DASHBOARD
+
+ DASHBOARD --> ALERT
+ ALERT --> REPORT
+
+graph LR
+ DISCOVER[漏洞发现] --> ASSESS[风险评估]
+ ASSESS --> PLAN[补丁计划]
+ PLAN --> TEST[测试验证]
+ TEST --> DEPLOY[生产部署]
+ DEPLOY --> VERIFY[部署验证]
+ VERIFY --> DOCUMENT[文档记录]
+
+ subgraph "评估标准"
+ HIGH[高危<br/>24小时内]
+ MEDIUM[中危<br/>7天内]
+ LOW[低危<br/>30天内]
+ end
+
+ ASSESS --> HIGH
+ ASSESS --> MEDIUM
+ ASSESS --> LOW
+
+| 级别 | +描述 | +响应时间 | +处理措施 | +
|---|---|---|---|
| P0 | +系统完全不可用,数据泄露 | +15分钟 | +立即启动应急预案,通知管理层 | +
| P1 | +核心功能受影响,安全风险高 | +30分钟 | +启动应急预案,组建应急小组 | +
| P2 | +部分功能受影响,安全风险中等 | +2小时 | +安排专人处理,定期汇报 | +
| P3 | +轻微影响,安全风险较低 | +8小时 | +正常工作时间处理 | +
graph TB
+ INCIDENT[安全事件发生] --> DETECT[事件检测]
+ DETECT --> REPORT[事件上报]
+ REPORT --> ASSESS[影响评估]
+ ASSESS --> RESPONSE[应急响应]
+
+ subgraph "应急响应措施"
+ ISOLATE[系统隔离]
+ PRESERVE[证据保全]
+ RECOVER[系统恢复]
+ INVESTIGATE[调查分析]
+ end
+
+ subgraph "后续处理"
+ LESSON[经验总结]
+ IMPROVE[流程改进]
+ TRAIN[培训加强]
+ DOC[文档更新]
+ end
+
+ RESPONSE --> ISOLATE
+ RESPONSE --> PRESERVE
+ RESPONSE --> RECOVER
+ RESPONSE --> INVESTIGATE
+
+ INVESTIGATE --> LESSON
+ LESSON --> IMPROVE
+ IMPROVE --> TRAIN
+ TRAIN --> DOC
+
+
+graph TB
+ CEO[总经理<br/>安全最高责任人]
+ CISO[信息安全负责人<br/>CISO]
+
+ subgraph "安全管理委员会"
+ IT_DIR[IT总监]
+ SECURITY_DIR[安全总监]
+ COMPLIANCE[合规负责人]
+ LEGAL[法务负责人]
+ end
+
+ subgraph "安全执行团队"
+ SEC_ADMIN[安全管理员]
+ SYS_ADMIN[系统管理员]
+ DBA[数据库管理员]
+ NET_ADMIN[网络管理员]
+ end
+
+ subgraph "业务安全责任人"
+ BUS_OWNER[业务负责人]
+ DATA_OWNER[数据负责人]
+ USER_ADMIN[用户管理员]
+ end
+
+ CEO --> CISO
+ CISO --> IT_DIR
+ CISO --> SECURITY_DIR
+ CISO --> COMPLIANCE
+ CISO --> LEGAL
+
+ IT_DIR --> SEC_ADMIN
+ IT_DIR --> SYS_ADMIN
+ IT_DIR --> DBA
+ IT_DIR --> NET_ADMIN
+
+ SECURITY_DIR --> BUS_OWNER
+ SECURITY_DIR --> DATA_OWNER
+ SECURITY_DIR --> USER_ADMIN
+
+福建水务营收系统安全设计结合达梦数据库的安全特性,建立了全方位、多层次的安全防护体系。通过技术防护、管理制度、人员培训等多重措施,确保系统安全稳定运行,满足水务行业的安全要求。
+本安全设计方案的核心特点: 1. +国产化安全:采用达梦数据库和国密算法 2. +纵深防御:网络、应用、数据多层安全防护 3. +持续改进:建立安全监控和应急响应机制 4. +管理规范:完善的安全管理制度和流程
+ + diff --git a/output/04_Security_Design.pdf b/output/04_Security_Design.pdf new file mode 100644 index 0000000..8058f3a Binary files /dev/null and b/output/04_Security_Design.pdf differ diff --git a/output/04_Security_Design_processed.md b/output/04_Security_Design_processed.md new file mode 100644 index 0000000..d4606d1 --- /dev/null +++ b/output/04_Security_Design_processed.md @@ -0,0 +1,698 @@ +--- +title: "04_Security_Design" +author: "系统设计团队" +date: "2024年12月19日" +documentclass: article +geometry: margin=1in +fontsize: 11pt +mainfont: "PingFang SC" +CJKmainfont: "PingFang SC" +--- + +--- +doc_id: TC-04-SECURITY +doc_role: master_document +authority: primary +scope: 安全设计 +source_of_truth: true +last_reviewed: 2026-03-11 +retrieval_priority: P0 +--- + +# 福建水务营收系统安全设计文档 + +## 文档信息 +| 项目信息 | 详情 | +|---------|------| +| **项目名称** | 福建水务营收系统 | +| **文档类型** | 安全设计文档 | +| **技术框架** | RuoYi-Vue-Pro + 达梦数据库 8.0+ | +| **文档版本** | v1.0 | +| **编写日期** | 2024-12-19 | +| **文档状态** | ✅ 已完成 | + +## 章节导航(精简) +- [安全设计概述](#sec-overview) +- [达梦数据库安全](#sec-db-security) +- [应用系统安全](#sec-application-security) +- [网络安全设计](#sec-network-security) +- [数据安全设计](#sec-data-security) +- [运维安全设计](#sec-ops-security) +- [安全管理制度](#sec-governance) +- [总结](#sec-summary) + + +## 安全设计概述 + +福建水务营收系统安全设计结合水务行业特点和国产化要求,构建全方位、多层次的安全防护体系。 + +### 安全目标 +- **机密性**:确保敏感数据不被未授权访问 +- **完整性**:防止数据被恶意篡改或损坏 +- **可用性**:保障系统7×24小时稳定运行 +- **可审计性**:完整记录系统操作审计轨迹 +- **合规性**:满足行业监管要求 + +### 安全原则 +- **纵深防御**:多层安全防护,避免单点故障 +- **最小权限**:用户和应用仅具备必要的最小权限 +- **默认安全**:系统默认采用最严格的安全配置 +- **持续监控**:7×24小时安全监控和威胁检测 +- **国产化优先**:优先采用国产安全产品和技术 + +### 总体安全架构 + + +```mermaid +graph TB + subgraph "外部威胁" + THREAT1[网络攻击] + THREAT2[恶意软件] + THREAT3[数据泄露] + THREAT4[内部威胁] + end + + subgraph "安全防护层" + subgraph "边界安全" + WAF[Web应用防火墙] + FW[网络防火墙] + IPS[入侵防护系统] + VPN[VPN网关] + end + + subgraph "应用安全" + AUTH[身份认证] + AUTHZ[访问控制] + AUDIT[操作审计] + ENCRYPT[数据加密] + end + + subgraph "数据安全" + TDE[透明数据加密] + RLS[行级安全] + MASK[数据脱敏] + BACKUP[安全备份] + end + + subgraph "运维安全" + MONITOR[安全监控] + LOG[日志分析] + ALERT[告警响应] + PATCH[安全更新] + end + end + + subgraph "核心资产" + APP[水务营收系统] + DB[达梦数据库] + FILE[文件存储] + API[接口服务] + end + + THREAT1 --> WAF + THREAT2 --> FW + THREAT3 --> IPS + THREAT4 --> VPN + + WAF --> AUTH + FW --> AUTHZ + IPS --> AUDIT + VPN --> ENCRYPT + + AUTH --> TDE + AUTHZ --> RLS + AUDIT --> MASK + ENCRYPT --> BACKUP + + TDE --> MONITOR + RLS --> LOG + MASK --> ALERT + BACKUP --> PATCH + + MONITOR --> APP + LOG --> DB + ALERT --> FILE + PATCH --> API + +``` + + + +## 达梦数据库安全 + +### 数据库安全架构 + + +```mermaid +graph TB + subgraph "达梦数据库安全特性" + subgraph "身份认证" + PWD[密码认证] + CERT[证书认证] + LDAP_AUTH[LDAP认证] + KERBEROS[Kerberos认证] + end + + subgraph "访问控制" + RBAC_DB[基于角色的访问控制] + RLS_DB[行级安全策略] + CLS_DB[列级访问控制] + SCHEMA[模式权限控制] + end + + subgraph "数据加密" + TDE_SM4[TDE透明加密2024年12月19日
+| 项目信息 | +详情 | +
|---|---|
| 项目名称 | +福建水务营收系统 | +
| 文档类型 | +概要设计文档 | +
| 技术框架 | +RuoYi-Vue-Pro + yudao-ui-admin-vue3 | +
| 文档版本 | +v1.0 | +
| 编写日期 | +2024-12-19 | +
| 文档状态 | +✅ 已完成 | +
福建水务营收系统采用集中化部署模式,基于集团私有云环境进行部署,构建高可用、可扩展的系统架构,满足集团及下属各水务公司的业务需求。
+sw-business-bank 继续沿用
+application-{profile}.yaml + Nacos
+加载环境默认文件传输规则,不在代码中硬编码送盘、回盘、对账目录。protocol/host/port/username/credentialRef/sendDir/backDir/reconcileDir/archiveDir/localTempDir;银行通道、租户、租户-通道覆盖通过
+bk_channel_api_config 的 FILE_TRANSFER_CONFIG
+记录补充。graph
+ subgraph EXTERNAL["外部用户访问"]
+ direction TB
+ A[移动端用户]
+ B[PC端用户]
+ C[第三方系统]
+ end
+
+ subgraph LOADBALANCER["负载均衡层"]
+ direction TB
+ D[主负载均衡器]
+ E[备负载均衡器]
+ end
+
+ subgraph WEBSERVICE["Web服务层"]
+ direction TB
+ F[Web服务器1]
+ G[Web服务器2]
+ H[Web服务器3]
+ end
+
+ subgraph APPSERVICE["应用服务层"]
+ direction TB
+ I[应用服务器1]
+ J[应用服务器2]
+ K[应用服务器3]
+ L[应用服务器4]
+ end
+
+ subgraph DATASERVICE["数据服务层"]
+ direction TB
+ M[(主数据库<br/>达梦数据库 8.0+)]
+ N[(备数据库<br/>达梦数据库 8.0+)]
+ O[缓存服务器<br/>Redis]
+ P[文件服务器<br/>MinIO]
+
+ M -.->|数据同步| N
+ end
+
+ %% 层级间调用关系
+ EXTERNAL -.->|用户请求<br/>接口调用| LOADBALANCER
+ LOADBALANCER -.->|负载分发<br/>故障切换| WEBSERVICE
+ WEBSERVICE -.->|业务请求<br/>服务调用| APPSERVICE
+ APPSERVICE -.->|数据访问<br/>缓存读写<br/>文件操作| DATASERVICE
+
+系统部署分为四个环境:开发环境、测试环境、预生产环境和生产环境。
+系统采用Docker容器化部署,使用Docker Compose进行服务编排。
+graph
+ direction TB
+ subgraph FRONTEND["前端服务层"]
+ A[前端容器<br/>Nginx + Vue3]
+ end
+
+ subgraph BACKEND["后端服务层"]
+ B[后端容器<br/>Spring Boot]
+ end
+
+ subgraph DATASTORAGE["数据存储层"]
+ direction TB
+ C[数据库容器<br/>达梦数据库 8.0+]
+ D[缓存容器<br/>Redis]
+ E[文件存储容器<br/>MinIO]
+ end
+
+ %% 容器服务调用关系
+ FRONTEND -.->|API请求<br/>静态资源| BACKEND
+ BACKEND -.->|数据操作<br/>缓存访问<br/>文件存储| DATASTORAGE
+
+SFTP/FTP 白名单、账户与凭据由环境运维统一开通部署设计以“集中部署、分层防护、可观测运维”为主线,覆盖了环境规划、架构设计、部署实施与运维治理。后续若进入实施细节阶段,建议将脚本、参数模板和操作手册沉淀到附录或运维手册,不在本主文档中重复维护。
+ + diff --git a/output/05_Deployment_Design.pdf b/output/05_Deployment_Design.pdf new file mode 100644 index 0000000..c46c6c2 Binary files /dev/null and b/output/05_Deployment_Design.pdf differ diff --git a/output/05_Deployment_Design_processed.md b/output/05_Deployment_Design_processed.md new file mode 100644 index 0000000..e5d4611 --- /dev/null +++ b/output/05_Deployment_Design_processed.md @@ -0,0 +1,361 @@ +--- +title: "05_Deployment_Design" +author: "系统设计团队" +date: "2024年12月19日" +documentclass: article +geometry: margin=1in +fontsize: 11pt +mainfont: "PingFang SC" +CJKmainfont: "PingFang SC" +--- + +--- +doc_id: TC-05-DEPLOYMENT +doc_role: master_document +authority: primary +scope: 部署设计 +source_of_truth: true +last_reviewed: 2026-03-11 +retrieval_priority: P0 +--- + +# 福建水务营收系统部署设计文档 + +## 文档信息 +| 项目信息 | 详情 | +|---------|------| +| **项目名称** | 福建水务营收系统 | +| **文档类型** | 概要设计文档 | +| **技术框架** | RuoYi-Vue-Pro + yudao-ui-admin-vue3 | +| **文档版本** | v1.0 | +| **编写日期** | 2024-12-19 | +| **文档状态** | ✅ 已完成 | + +## 章节导航(精简) +- [部署概述](#sec-overview) +- [部署架构](#sec-architecture) +- [环境配置](#sec-environment) +- [部署方案](#sec-solution) +- [网络安全](#sec-network-security) +- [监控运维](#sec-operations) +- [总结](#sec-summary) + + +## 部署概述 + +福建水务营收系统采用集中化部署模式,基于集团私有云环境进行部署,构建高可用、可扩展的系统架构,满足集团及下属各水务公司的业务需求。 + +### 部署目标 +- 实现系统的集中部署和统一管理 +- 确保系统高可用性和可靠性 +- 支持业务动态扩展和弹性伸缩 +- 保障数据安全和业务连续性 +- 降低运维成本,提高管理效率 + +### 部署原则 +- **集中部署**:核心业务系统集中部署在集团数据中心,统一管理和维护 +- **多级架构**:采用多级架构设计,实现前端负载分担和后端高可用 +- **灾备设计**:重要系统和数据实现灾备,确保业务连续性 +- **安全防护**:多层次安全防护体系,确保系统和数据安全 +- **弹性扩展**:支持系统横向和纵向扩展,适应业务增长需求 + +### 银行文件传输配置部署约束 +- `sw-business-bank` 继续沿用 `application-{profile}.yaml + Nacos` 加载环境默认文件传输规则,不在代码中硬编码送盘、回盘、对账目录。 +- 环境默认规则承接 `protocol/host/port/username/credentialRef/sendDir/backDir/reconcileDir/archiveDir/localTempDir`;银行通道、租户、租户-通道覆盖通过 `bk_channel_api_config` 的 `FILE_TRANSFER_CONFIG` 记录补充。 +- 配置切换只影响新发起文件动作;已落库批次继续沿用已固化的协议、目录和文件路径审计结果,不要求重算旧批次。 + + +## 部署架构 + +### 总体部署架构 + + +```mermaid +graph + subgraph EXTERNAL["外部用户访问"] + direction TB + A[移动端用户] + B[PC端用户] + C[第三方系统] + end + + subgraph LOADBALANCER["负载均衡层"] + direction TB + D[主负载均衡器] + E[备负载均衡器] + end + + subgraph WEBSERVICE["Web服务层"] + direction TB + F[Web服务器1] + G[Web服务器2] + H[Web服务器3] + end + + subgraph APPSERVICE["应用服务层"] + direction TB + I[应用服务器1] + J[应用服务器2] + K[应用服务器3] + L[应用服务器4] + end + + subgraph DATASERVICE["数据服务层"] + direction TB + M[(主数据库2024年12月19日
+| 项目信息 | +详情 | +
|---|---|
| 项目名称 | +福建水务营收系统 | +
| 文档类型 | +技术方案汇报 | +
| 适用范围 | +用户个人信息加密存储与搜索 | +
| 编写日期 | +2025年12月 | +
| 文档版本 | +V1.0 | +
根据等保测评要求,用户的敏感个人信息(身份证、手机号、银行卡等)必须加密存储,否则无法通过安全检查。
+ ┌─────────────────────────────────────┐
+ │ 等保测评要求 │
+ └─────────────────────────────────────┘
+ │
+ ┌──────────────────────────────┼──────────────────────────────┐
+ ▼ ▼ ▼
+ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐
+ │ 存储加密 │ │ 传输加密 │ │ 访问控制 │
+ │ ✓ 必须做 │ │ ✓ 已完成 │ │ ✓ 已完成 │
+ └───────────────┘ └───────────────┘ └───────────────┘
+| 敏感数据类型 | +示例 | +加密要求 | +
|---|---|---|
| 身份证号 | +350xxx19900101xxxx | +✅ 必须加密 | +
| 手机号 | +138xxxx8888 | +✅ 必须加密 | +
| 银行卡号 | +6222xxxxxxxx1234 | +✅ 必须加密 | +
| 邮箱地址 | +xxx@xxx.com | +✅ 必须加密 | +
| 真实姓名 | +张xx | +✅ 必须加密 | +
“先加密存储,再建立索引” —— +既保证安全,又保证能搜索
+┌─────────────────────────────────────────────────────────────────────┐
+│ 技术方案整体架构 │
+├─────────────────────────────────────────────────────────────────────┤
+│ │
+│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
+│ │ 应用层 │ ──────► │ 加密插件 │ ──────► │ 数据库 │ │
+│ │ (业务代码) │ │(MyBatis-Plus)│ │ (加密存储) │ │
+│ └─────────────┘ └─────────────┘ └─────────────┘ │
+│ │ │
+│ ▼ │
+│ ┌─────────────┐ │
+│ │ 搜索索引 │ │
+│ │ (支持查询) │ │
+│ └─────────────┘ │
+│ │
+└─────────────────────────────────────────────────────────────────────┘
+| 技术组件 | +说明 | +选择理由 | +
|---|---|---|
| MyBatis-Plus 加密插件 | +自动对数据进行加密和解密 | +框架自带功能,改造成本低 | +
| SM4 加密算法 | +国产加密算法,符合等保要求 | +安全等级高,符合等保要求 | +
| 搜索索引技术 | +支持加密后的数据查询 | +保证业务搜索功能正常使用 | +
加密前(明文存储,不安全): | id | real_name | +id_card | phone | |—-|———–|———|——-| | 1 | 张三 | 350102199001011234 | +13812345678 |
+加密后(密文存储,安全): | id | real_name | +id_card | phone | |—-|———–|———|——-| | 1 | aGF4ZmRz… | YmVydGlu… | +c2VjdXJl… |
+ 【自动加密/解密流程】
+
+ ┌──────────┐ ┌──────────┐
+ │ 保存数据 │ │ 查询数据 │
+ └────┬─────┘ └────┬─────┘
+ │ │
+ ▼ ▼
+ ┌──────────┐ ┌──────────┐
+ │ 明文数据 │ │ 密文数据 │
+ │ 张三 │ │ aGF4ZmRz │
+ └────┬─────┘ └────┬─────┘
+ │ │
+ │ 【加密插件自动处理】 │ 【加密插件自动处理】
+ │ │
+ ▼ ▼
+ ┌──────────┐ ┌──────────┐
+ │ 密文数据 │ │ 明文数据 │
+ │ aGF4ZmRz │ │ 张三 │
+ └────┬─────┘ └────┬─────┘
+ │ │
+ ▼ ▼
+ ┌──────────┐ ┌──────────┐
+ │ 数据库 │ ◄────────────────────────── │ 数据库 │
+ └──────────┘ └──────────┘
+优势说明: - ✅ 对业务代码透明 —— +开发人员无需修改业务逻辑 - ✅ 自动加密解密 —— +框架自动处理,不易出错 - ✅ 改造成本低 —— +只需添加配置和注解
+加密后的数据是乱码,无法直接用SQL的 LIKE
+查询。我们的解决方案是:建立搜索索引。
┌───────────────────────────────────────────────────────────────────┐
+│ 搜索索引设计思路 │
+├───────────────────────────────────────────────────────────────────┤
+│ │
+│ 原始数据 索引数据 用途 │
+│ ────── ────── ──── │
+│ 身份证:350102199001011234 ➜ 哈希值:a1b2c3... 精确查询 │
+│ 手机号:13812345678 ➜ 前7位:1381234 前缀查询 │
+│ 姓名:张三 ➜ 拼音:zhangsan 模糊查询 │
+│ │
+└───────────────────────────────────────────────────────────────────┘
+| 查询类型 | +适用场景 | +实现方式 | +
|---|---|---|
| 精确查询 | +身份证查用户 | +哈希索引(完全匹配) | +
| 前缀查询 | +手机号前几位 | +前缀索引(部分匹配) | +
| 模糊查询 | +姓名搜索 | +拼音索引(支持模糊) | +
场景:根据身份证号查询用户
+用户输入身份证号
+ │
+ ▼
+┌──────────────┐
+│ 计算哈希索引 │ ──────► a1b2c3d4e5...
+└──────────────┘
+ │
+ ▼
+┌──────────────┐
+│ 查询索引字段 │ ──────► SELECT * FROM user WHERE id_card_hash = 'a1b2c3d4e5...'
+└──────────────┘
+ │
+ ▼
+┌──────────────┐
+│ 返回匹配记录 │ ──────► 找到用户张三
+└──────────────┘
+┌─────────────────────────────────────────────────────────────────────┐
+│ 用户信息表 (user_info) │
+├─────────────────────────────────────────────────────────────────────┤
+│ │
+│ 【加密存储的字段】 【搜索索引字段】 │
+│ ──────────────── ──────────────── │
+│ • real_name(真实姓名) • id_card_hash(身份证哈希) │
+│ • id_card(身份证号) • phone_prefix(手机号前缀) │
+│ • phone(手机号) • name_pinyin(姓名拼音) │
+│ • email(邮箱) • bank_card_prefix(银行卡前缀)│
+│ • bank_card(银行卡号) │
+│ │
+└─────────────────────────────────────────────────────────────────────┘
+| 敏感字段 | +存储方式 | +对应索引字段 | +索引用途 | +
|---|---|---|---|
| id_card | +SM4加密 | +id_card_hash | +精确匹配 | +
| phone | +SM4加密 | +phone_prefix | +前缀查询 | +
| real_name | +SM4加密 | +name_pinyin | +模糊搜索 | +
| bank_card | +SM4加密 | +bank_card_prefix | +前缀查询 | +
| SM4加密 | +— | +不支持搜索 | +
| 等保要求 | +我们的方案 | +符合性 | +
|---|---|---|
| 个人信息加密存储 | +SM4算法加密 | +✅ 完全符合 | +
| 数据传输安全 | +HTTPS + 加密字段 | +✅ 完全符合 | +
| 访问权限控制 | +数据库权限 + 应用权限 | +✅ 完全符合 | +
| 安全审计 | +操作日志 + 加解密审计 | +✅ 完全符合 | +
| 密钥安全管理 | +配置加密 + 独立存储 | +✅ 完全符合 | +
┌─────────────────────────────────────┐
+ │ 密钥管理中心 │
+ │ (独立安全存储) │
+ └─────────────────────────────────────┘
+ │
+ │ 获取密钥
+ ▼
+┌─────────────┐ HTTPS ┌─────────────────┐ 加密写入 ┌─────────────┐
+│ 前端应用 │ ────────► │ 应用服务器 │ ────────────► │ 数据库 │
+│ │ ◄──────── │ (加密/解密) │ ◄──────────── │ (密文存储) │
+└─────────────┘ 脱敏显示 └─────────────────┘ 解密读取 └─────────────┘
+ │
+ ▼
+ ┌─────────────────────────────────────┐
+ │ 审计日志系统 │
+ │ (记录所有操作) │
+ └─────────────────────────────────────┘
+| 阶段 | +工作内容 | +时间 | +负责人 | +
|---|---|---|---|
| 第一阶段 | +基础加密功能开发 | +1-2天 | +开发团队 | +
| 第二阶段 | +搜索索引功能开发 | +2-3天 | +开发团队 | +
| 第三阶段 | +历史数据迁移加密 | +1天 | +运维 + 开发 | +
| 第四阶段 | +测试与验收 | +1天 | +测试团队 | +
| 合计 | +— | +5-7个工作日 | +— | +
第1-2天 第3-5天 第6天 第7天
+ │ │ │ │
+ ▼ ▼ ▼ ▼
+┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
+│ 加密功能 │ ────► │ 搜索功能 │ ────► │ 数据迁移 │ ────► │ 测试验收 │
+│ 开发 │ │ 开发 │ │ 执行 │ │ 上线 │
+└─────────┘ └─────────┘ └─────────┘ └─────────┘
+ │ │ │ │
+ ▼ ▼ ▼ ▼
+ 配置加密器 精确搜索 备份数据 功能测试
+ 添加注解 前缀搜索 执行迁移 性能测试
+ 测试验证 模糊搜索 验证完整 安全测试
+| 风险类型 | +风险描述 | +应对措施 | +
|---|---|---|
| 密钥泄露风险 | +加密密钥被窃取 | +密钥独立存储,定期轮换 | +
| 数据迁移风险 | +迁移过程数据丢失 | +先备份后迁移,分批执行 | +
| 性能影响风险 | +加解密影响系统性能 | +添加索引,使用缓存优化 | +
| 功能影响风险 | +现有功能受影响 | +充分测试,灰度发布 | +
┌───────────────────────────────────────────────────────────────────┐
+│ 应急处理流程 │
+├───────────────────────────────────────────────────────────────────┤
+│ │
+│ 发现问题 ────► 评估影响 ────► 启动回滚 ────► 恢复服务 │
+│ │
+│ · 监控告警 · 影响范围 · 数据回滚 · 验证功能 │
+│ · 用户反馈 · 业务影响 · 代码回滚 · 恢复上线 │
+│ │
+└───────────────────────────────────────────────────────────────────┘
+| 优势 | +说明 | +
|---|---|
| ✅ 安全性高 | +采用SM4国产加密算法,符合等保要求 | +
| ✅ 搜索能力强 | +加密后仍支持精确、前缀、模糊多种搜索 | +
| ✅ 改造成本低 | +使用MyBatis-Plus插件,对业务代码侵入小 | +
| ✅ 实施周期短 | +5-7个工作日可完成全部改造 | +
| ✅ 运维友好 | +自动加解密,无需人工干预 | +
┌───────────────────────────────────────────────────────────────────┐
+│ 投入产出分析 │
+├───────────────────────────────────────────────────────────────────┤
+│ │
+│ 【投入】 【产出】 │
+│ ──── ──── │
+│ · 开发工时:5-7个工作日 · 通过等保测评检查 │
+│ · 测试工时:1-2个工作日 · 符合数据安全法规要求 │
+│ · 运维工时:1个工作日 · 降低数据泄露风险 │
+│ · 提升用户数据安全保障 │
+│ │
+│ 【总计:约7-10个工作日】 【价值:等保合规 + 安全保障】│
+│ │
+└───────────────────────────────────────────────────────────────────┘
+本方案采用MyBatis-Plus加密插件 + +搜索索引的技术路线,能够:
+| 建议事项 | +说明 | +
|---|---|
| 1. 尽快启动 | +等保测评时间紧迫,建议尽快安排实施 | +
| 2. 分阶段实施 | +先完成核心功能,再优化性能 | +
| 3. 充分测试 | +上线前做好功能和性能测试 | +
| 4. 保留回滚方案 | +确保出现问题可快速回滚 | +
如有疑问,请随时沟通!
+ + diff --git a/output/06_Sensitive_Data_Encryption.pdf b/output/06_Sensitive_Data_Encryption.pdf new file mode 100644 index 0000000..b775b07 Binary files /dev/null and b/output/06_Sensitive_Data_Encryption.pdf differ diff --git a/output/06_Sensitive_Data_Encryption_processed.md b/output/06_Sensitive_Data_Encryption_processed.md new file mode 100644 index 0000000..c227b92 --- /dev/null +++ b/output/06_Sensitive_Data_Encryption_processed.md @@ -0,0 +1,377 @@ +--- +title: "06_Sensitive_Data_Encryption" +author: "系统设计团队" +date: "2024年12月19日" +documentclass: article +geometry: margin=1in +fontsize: 11pt +mainfont: "PingFang SC" +CJKmainfont: "PingFang SC" +--- + +# 用户敏感数据加密存储技术方案 + +## 文档信息 +| 项目信息 | 详情 | +|---------|------| +| **项目名称** | 福建水务营收系统 | +| **文档类型** | 技术方案汇报 | +| **适用范围** | 用户个人信息加密存储与搜索 | +| **编写日期** | 2025年12月 | +| **文档版本** | V1.0 | + +--- + +## 一、方案背景 + +### 为什么要做加密? + +根据**等保测评要求**,用户的敏感个人信息(身份证、手机号、银行卡等)必须**加密存储**,否则无法通过安全检查。 + +```text + ┌─────────────────────────────────────┐ + │ 等保测评要求 │ + └─────────────────────────────────────┘ + │ + ┌──────────────────────────────┼──────────────────────────────┐ + ▼ ▼ ▼ + ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ + │ 存储加密 │ │ 传输加密 │ │ 访问控制 │ + │ ✓ 必须做 │ │ ✓ 已完成 │ │ ✓ 已完成 │ + └───────────────┘ └───────────────┘ └───────────────┘ +``` + +### 涉及哪些数据? + +| 敏感数据类型 | 示例 | 加密要求 | +|-------------|------|----------| +| 身份证号 | 350xxx19900101xxxx | ✅ 必须加密 | +| 手机号 | 138xxxx8888 | ✅ 必须加密 | +| 银行卡号 | 6222xxxxxxxx1234 | ✅ 必须加密 | +| 邮箱地址 | xxx@xxx.com | ✅ 必须加密 | +| 真实姓名 | 张xx | ✅ 必须加密 | + +--- + +## 二、技术方案概述 + +### 核心思路 + +**"先加密存储,再建立索引"** —— 既保证安全,又保证能搜索 + +```text +┌─────────────────────────────────────────────────────────────────────┐ +│ 技术方案整体架构 │ +├─────────────────────────────────────────────────────────────────────┤ +│ │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ +│ │ 应用层 │ ──────► │ 加密插件 │ ──────► │ 数据库 │ │ +│ │ (业务代码) │ │(MyBatis-Plus)│ │ (加密存储) │ │ +│ └─────────────┘ └─────────────┘ └─────────────┘ │ +│ │ │ +│ ▼ │ +│ ┌─────────────┐ │ +│ │ 搜索索引 │ │ +│ │ (支持查询) │ │ +│ └─────────────┘ │ +│ │ +└─────────────────────────────────────────────────────────────────────┘ +``` + +### 采用的技术 + +| 技术组件 | 说明 | 选择理由 | +|---------|------|---------| +| **MyBatis-Plus 加密插件** | 自动对数据进行加密和解密 | 框架自带功能,改造成本低 | +| **SM4 加密算法** | 国产加密算法,符合等保要求 | 安全等级高,符合等保要求 | +| **搜索索引技术** | 支持加密后的数据查询 | 保证业务搜索功能正常使用 | + +--- + +## 三、加密存储方案 + +### 加密前后对比 + +**加密前(明文存储,不安全):** +| id | real_name | id_card | phone | +|----|-----------|---------|-------| +| 1 | 张三 | 350102199001011234 | 13812345678 | + +**加密后(密文存储,安全):** +| id | real_name | id_card | phone | +|----|-----------|---------|-------| +| 1 | aGF4ZmRz... | YmVydGlu... | c2VjdXJl... | + +### MyBatis-Plus 加密插件原理 + +```text + 【自动加密/解密流程】 + + ┌──────────┐ ┌──────────┐ + │ 保存数据 │ │ 查询数据 │ + └────┬─────┘ └────┬─────┘ + │ │ + ▼ ▼ + ┌──────────┐ ┌──────────┐ + │ 明文数据 │ │ 密文数据 │ + │ 张三 │ │ aGF4ZmRz │ + └────┬─────┘ └────┬─────┘ + │ │ + │ 【加密插件自动处理】 │ 【加密插件自动处理】 + │ │ + ▼ ▼ + ┌──────────┐ ┌──────────┐ + │ 密文数据 │ │ 明文数据 │ + │ aGF4ZmRz │ │ 张三 │ + └────┬─────┘ └────┬─────┘ + │ │ + ▼ ▼ + ┌──────────┐ ┌──────────┐ + │ 数据库 │ ◄────────────────────────── │ 数据库 │ + └──────────┘ └──────────┘ +``` + +**优势说明:** +- ✅ **对业务代码透明** —— 开发人员无需修改业务逻辑 +- ✅ **自动加密解密** —— 框架自动处理,不易出错 +- ✅ **改造成本低** —— 只需添加配置和注解 + +--- + +## 四、搜索功能方案 + +### 为什么加密后还能搜索? + +加密后的数据是乱码,无法直接用SQL的 `LIKE` 查询。我们的解决方案是:**建立搜索索引**。 + +```text +┌───────────────────────────────────────────────────────────────────┐ +│ 搜索索引设计思路 │ +├───────────────────────────────────────────────────────────────────┤ +│ │ +│ 原始数据 索引数据 用途 │ +│ ────── ────── ──── │ +│ 身份证:350102199001011234 ➜ 哈希值:a1b2c3... 精确查询 │ +│ 手机号:13812345678 ➜ 前7位:1381234 前缀查询 │ +│ 姓名:张三 ➜ 拼音:zhangsan 模糊查询 │ +│ │ +└───────────────────────────────────────────────────────────────────┘ +``` + +### 支持的查询类型 + +| 查询类型 | 适用场景 | 实现方式 | +|---------|---------|---------| +| **精确查询** | 身份证查用户 | 哈希索引(完全匹配) | +| **前缀查询** | 手机号前几位 | 前缀索引(部分匹配) | +| **模糊查询** | 姓名搜索 | 拼音索引(支持模糊) | + +### 查询流程示例 + +**场景:根据身份证号查询用户** + +```text +用户输入身份证号 + │ + ▼ +┌──────────────┐ +│ 计算哈希索引 │ ──────► a1b2c3d4e5... +└──────────────┘ + │ + ▼ +┌──────────────┐ +│ 查询索引字段 │ ──────► SELECT * FROM user WHERE id_card_hash = 'a1b2c3d4e5...' +└──────────────┘ + │ + ▼ +┌──────────────┐ +│ 返回匹配记录 │ ──────► 找到用户张三 +└──────────────┘ +``` + +--- + +## 五、数据库表设计 + +### 表结构说明 + +```text +┌─────────────────────────────────────────────────────────────────────┐ +│ 用户信息表 (user_info) │ +├─────────────────────────────────────────────────────────────────────┤ +│ │ +│ 【加密存储的字段】 【搜索索引字段】 │ +│ ──────────────── ──────────────── │ +│ • real_name(真实姓名) • id_card_hash(身份证哈希) │ +│ • id_card(身份证号) • phone_prefix(手机号前缀) │ +│ • phone(手机号) • name_pinyin(姓名拼音) │ +│ • email(邮箱) • bank_card_prefix(银行卡前缀)│ +│ • bank_card(银行卡号) │ +│ │ +└─────────────────────────────────────────────────────────────────────┘ +``` + +### 字段对照表 + +| 敏感字段 | 存储方式 | 对应索引字段 | 索引用途 | +|---------|---------|-------------|---------| +| id_card | SM4加密 | id_card_hash | 精确匹配 | +| phone | SM4加密 | phone_prefix | 前缀查询 | +| real_name | SM4加密 | name_pinyin | 模糊搜索 | +| bank_card | SM4加密 | bank_card_prefix | 前缀查询 | +| email | SM4加密 | — | 不支持搜索 | + +--- + +## 六、等保符合性说明 + +### 安全控制措施对照 + +| 等保要求 | 我们的方案 | 符合性 | +|---------|-----------|--------| +| **个人信息加密存储** | SM4算法加密 | ✅ 完全符合 | +| **数据传输安全** | HTTPS + 加密字段 | ✅ 完全符合 | +| **访问权限控制** | 数据库权限 + 应用权限 | ✅ 完全符合 | +| **安全审计** | 操作日志 + 加解密审计 | ✅ 完全符合 | +| **密钥安全管理** | 配置加密 + 独立存储 | ✅ 完全符合 | + +### 安全架构 + +```text + ┌─────────────────────────────────────┐ + │ 密钥管理中心 │ + │ (独立安全存储) │ + └─────────────────────────────────────┘ + │ + │ 获取密钥 + ▼ +┌─────────────┐ HTTPS ┌─────────────────┐ 加密写入 ┌─────────────┐ +│ 前端应用 │ ────────► │ 应用服务器 │ ────────────► │ 数据库 │ +│ │ ◄──────── │ (加密/解密) │ ◄──────────── │ (密文存储) │ +└─────────────┘ 脱敏显示 └─────────────────┘ 解密读取 └─────────────┘ + │ + ▼ + ┌─────────────────────────────────────┐ + │ 审计日志系统 │ + │ (记录所有操作) │ + └─────────────────────────────────────┘ +``` + +--- + +## 七、实施计划 + +### 实施时间表 + +| 阶段 | 工作内容 | 时间 | 负责人 | +|------|---------|------|--------| +| **第一阶段** | 基础加密功能开发 | 1-2天 | 开发团队 | +| **第二阶段** | 搜索索引功能开发 | 2-3天 | 开发团队 | +| **第三阶段** | 历史数据迁移加密 | 1天 | 运维 + 开发 | +| **第四阶段** | 测试与验收 | 1天 | 测试团队 | +| **合计** | — | **5-7个工作日** | — | + +### 实施步骤 + +```text + 第1-2天 第3-5天 第6天 第7天 + │ │ │ │ + ▼ ▼ ▼ ▼ +┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ +│ 加密功能 │ ────► │ 搜索功能 │ ────► │ 数据迁移 │ ────► │ 测试验收 │ +│ 开发 │ │ 开发 │ │ 执行 │ │ 上线 │ +└─────────┘ └─────────┘ └─────────┘ └─────────┘ + │ │ │ │ + ▼ ▼ ▼ ▼ + 配置加密器 精确搜索 备份数据 功能测试 + 添加注解 前缀搜索 执行迁移 性能测试 + 测试验证 模糊搜索 验证完整 安全测试 +``` + +--- + +## 八、风险控制 + +### 风险识别与应对 + +| 风险类型 | 风险描述 | 应对措施 | +|---------|---------|---------| +| **密钥泄露风险** | 加密密钥被窃取 | 密钥独立存储,定期轮换 | +| **数据迁移风险** | 迁移过程数据丢失 | 先备份后迁移,分批执行 | +| **性能影响风险** | 加解密影响系统性能 | 添加索引,使用缓存优化 | +| **功能影响风险** | 现有功能受影响 | 充分测试,灰度发布 | + +### 应急预案 + +```text +┌───────────────────────────────────────────────────────────────────┐ +│ 应急处理流程 │ +├───────────────────────────────────────────────────────────────────┤ +│ │ +│ 发现问题 ────► 评估影响 ────► 启动回滚 ────► 恢复服务 │ +│ │ +│ · 监控告警 · 影响范围 · 数据回滚 · 验证功能 │ +│ · 用户反馈 · 业务影响 · 代码回滚 · 恢复上线 │ +│ │ +└───────────────────────────────────────────────────────────────────┘ +``` + +--- + +## 九、方案优势总结 + +### 核心优势 + +| 优势 | 说明 | +|------|------| +| ✅ **安全性高** | 采用SM4国产加密算法,符合等保要求 | +| ✅ **搜索能力强** | 加密后仍支持精确、前缀、模糊多种搜索 | +| ✅ **改造成本低** | 使用MyBatis-Plus插件,对业务代码侵入小 | +| ✅ **实施周期短** | 5-7个工作日可完成全部改造 | +| ✅ **运维友好** | 自动加解密,无需人工干预 | + +### 投入产出分析 + +```text +┌───────────────────────────────────────────────────────────────────┐ +│ 投入产出分析 │ +├───────────────────────────────────────────────────────────────────┤ +│ │ +│ 【投入】 【产出】 │ +│ ──── ──── │ +│ · 开发工时:5-7个工作日 · 通过等保测评检查 │ +│ · 测试工时:1-2个工作日 · 符合数据安全法规要求 │ +│ · 运维工时:1个工作日 · 降低数据泄露风险 │ +│ · 提升用户数据安全保障 │ +│ │ +│ 【总计:约7-10个工作日】 【价值:等保合规 + 安全保障】│ +│ │ +└───────────────────────────────────────────────────────────────────┘ +``` + +--- + +## 十、结论与建议 + +### 方案结论 + +本方案采用**MyBatis-Plus加密插件 + 搜索索引**的技术路线,能够: + +1. ✅ **满足等保要求** —— 敏感数据全部加密存储 +2. ✅ **保持业务功能** —— 加密后仍可正常搜索查询 +3. ✅ **低成本实施** —— 对现有系统改动小,周期短 +4. ✅ **安全可控** —— 密钥独立管理,审计可追溯 + +### 建议 + +| 建议事项 | 说明 | +|---------|------| +| **1. 尽快启动** | 等保测评时间紧迫,建议尽快安排实施 | +| **2. 分阶段实施** | 先完成核心功能,再优化性能 | +| **3. 充分测试** | 上线前做好功能和性能测试 | +| **4. 保留回滚方案** | 确保出现问题可快速回滚 | + +--- + +**如有疑问,请随时沟通!** + diff --git a/output/08_Integrated_Deployment_Design_PlanB.docx b/output/08_Integrated_Deployment_Design_PlanB.docx new file mode 100644 index 0000000..9272d78 Binary files /dev/null and b/output/08_Integrated_Deployment_Design_PlanB.docx differ diff --git a/output/08_Integrated_Deployment_Design_PlanB_processed.md b/output/08_Integrated_Deployment_Design_PlanB_processed.md new file mode 100644 index 0000000..d818c1e --- /dev/null +++ b/output/08_Integrated_Deployment_Design_PlanB_processed.md @@ -0,0 +1,706 @@ +--- +title: "08_Integrated_Deployment_Design_PlanB" +author: "系统设计团队" +date: "2024年12月19日" +documentclass: article +geometry: margin=1in +fontsize: 11pt +mainfont: "PingFang SC" +CJKmainfont: "PingFang SC" +--- + +--- +doc_id: TC-08-INTEGRATED-DEPLOYMENT +doc_role: supplemental_document +authority: secondary +scope: 方案二整体部署 +source_of_truth: false +last_reviewed: 2026-03-26 +retrieval_priority: P1 +--- + +# 福建水务营收系统整体部署方案说明书 + +## 文档信息 +| 项目信息 | 详情 | +|---------|------| +| **项目名称** | 福建水务营收系统 | +| **文档类型** | 技术专题说明 | +| **方案定位** | 已采纳 PostgreSQL 16 方案二作为数据库部署方案后的整体部署方案 | +| **文档版本** | v1.0 | +| **编写日期** | 2026-03-26 | +| **文档状态** | ✅ 正式建议稿 | + +## 目录 + +1. 编制目的 +2. 方案前提 +3. 整体部署原则 +4. 软件拓扑图 +5. 主机部署图 +6. 数据库访问链路图 +7. 备份恢复链路图 +8. 网络拓扑图 +9. 主机角色与部署内容 +10. 资源配置建议 +11. 资源审批汇总表 +12. 基础软件与版本清单 +13. 部署方式说明 +14. 网络需求 +15. 网络开通清单 +16. 访问控制与端口建议 +17. 实施步骤 +18. 验收标准 +19. 部署结论 + +## 编制目的 + +本文档用于在已采纳 PostgreSQL 16 方案二作为数据库部署方案的前提下,形成覆盖前端、后端、中间件、静态存储及数据库的一体化整体部署方案,作为甲方进行主机、网络、存储与基础软件资源审批的依据。 + +## 方案前提 + +本方案以以下前提为基础: + +1. 数据库部署方案已采纳 `docs/design/03_Technical_Design/07_PostgreSQL16_DR_Resource_Application.md` 中的方案二,即“同城双可用区主备容灾方案”。 +2. 前端继续采用 `Nginx + Vue3` 的静态部署模式。 +3. 对外访问经甲方或第三方管理的公网入口进行薄转发,不纳入本方案主机资源范围。 +4. `Nginx` 入口单独部署在互联网区 `DMZ`,负责承接办公网、公网入口和外部授权链路转发,并将开放 API 端点负载到两台业务应用节点。 +5. 两台业务应用节点部署在互联网区 `DMZ`,节点内均部署 `Spring Boot Gateway`,作为微服务集群统一接入入口,并同时承载业务服务。 +6. 中间件集中部署在 1 台主机上。 +7. 数据库控制组件与中间件部署在同一台主机上。 +8. `RustFS` 作为静态存储与对象存储统一入口,与中间件同机部署。 +9. 一期口径下,原“数据与中间件节点”和“文件存储节点”合并为 1 台综合节点。 +10. 银行文件交换采用独立 `SFTP/FTP` 文件交换服务器,并部署在互联网区 `DMZ`,作为银行送盘、回盘、对账文件交换专用前置机。 +11. 当前已知可用于本方案的业务与基础设施主机资源如下: + - DMZ Nginx 入口节点:8 核 CPU / 16 GB 内存 / 300 GB 存储,共 1 台 + - 业务应用节点(主):32 核 CPU / 64 GB 内存 / 300 GB 存储,共 2 台 + - 数据、中间件与文件存储综合节点:16 核 CPU / 32 GB 内存 / 2300 GB 存储,共 1 台 + - 银行文件交换服务器:2 核 CPU / 8 GB 内存 / 200 GB 存储,共 1 台 + - 另行配置 PostgreSQL 主库与热备库各 1 台 + +## 整体部署原则 + +整体部署遵循以下原则: + +1. 前后端逻辑分层部署,避免数据库节点与业务节点混部。 +2. 中间件集中部署,降低主机数量和运维复杂度。 +3. 数据库主备分离部署,避免与中间件、应用节点混部。 +4. 数据库控制组件集中部署,通过统一代理地址屏蔽主备切换细节。 +5. 网络按办公区、公网区域、互联网区 `DMZ`、内网区分层隔离;其中数据库、中间件控制与备份归档均落在内网区。 +6. 在现有主机数量约束下,优先复用现有业务应用节点、DMZ Nginx 入口节点及综合节点资源。 + +## 软件拓扑图 + +**图 4-1 访问与应用软件拓扑图** + + +```mermaid +flowchart LR + classDef source fill:#ecfeff,stroke:#0891b2,stroke-width:1.2px,color:#083344; + classDef access fill:#fff7ed,stroke:#ea580c,stroke-width:1.4px,color:#7c2d12; + classDef app fill:#eff6ff,stroke:#2563eb,stroke-width:1.4px,color:#1e3a8a; + classDef zone fill:#f8fafc,stroke:#94a3b8,stroke-width:1.2px,color:#0f172a; + + subgraph OFFICE[办公区] + direction TB + U1[PC 端用户该文件用于替代当前 Mermaid 版本,便于你审阅更接近正式交付效果的网络图与访问图。
+ +2024年12月19日
+本文档为 01_Detailed_Design.md
+中“统一平台详细设计”章节的模块正文拆分稿,便于按模块独立维护。正式交付口径以主详设为准。
UP-001 为全系统提供统一身份认证与单点登录能力,支撑 PC +管理端、移动作业端、客户渠道及外部集成应用的统一接入。
+sequenceDiagram
+ participant 用户
+ participant 接入端
+ participant 认证中心
+ participant 用户中心
+
+ 用户->>接入端: 提交登录信息
+ 接入端->>认证中心: 发起认证请求
+ 认证中心->>用户中心: 校验用户/角色/状态
+ 用户中心-->>认证中心: 返回校验结果
+ 认证中心-->>接入端: 返回Token/权限上下文
+ 接入端-->>用户: 登录成功并进入目标系统
+
+system_users:用户基本信息。system_oauth2_client:客户端信息。system_oauth2_access_token:访问令牌。system_oauth2_refresh_token:刷新令牌。system_login_log:登录审计日志。UP-002 +管理组织机构、岗位、角色、菜单、数据权限和用户授权关系,是业务系统权限控制与数据隔离的基础。
+UP-003 +用于统一维护业务参数、地址参数、水价规则、短信模板、打印模板、字典数据与定时任务参数。
+| 配置类别 | +典型内容 | +用途 | +
|---|---|---|
| 业务字典 | +客户类型、抄表方式、工单状态 | +统一编码与展示 | +
| 地址参数 | +行政区划、片区、册本归属 | +客户与表务归属管理 | +
| 价格体系 | +用水性质、阶梯水价、污水费规则 | +开账与账务计算 | +
| 渠道参数 | +支付渠道、短信模板、税控配置 | +外部接口集成 | +
| 任务参数 | +自动开账、对账、备份周期 | +运维调度 | +
UP-004 +提供操作日志、登录日志、接口日志、异常监控、在线用户、任务监控、性能监控等能力。
+2024年12月19日
+本文档为 01_Detailed_Design.md
+中“营收业务详细设计”章节的模块正文拆分稿,便于按模块独立维护。正式交付口径以主详设为准。
SYS-002
+负责营收主流程,发票、支付结算、消息触达分别通过
+SYS-008、SYS-009、SYS-010
+协同完成,外部系统仅回写结果状态。biz_* 与 bk_*
+命名体系,历史命名仅用于追溯,不作为本章节正式设计口径。++说明:详细字段与报文以 +
+../03_Technical_Design/03_Interface_Design.md+为准,数据库字段口径以 +../03_Technical_Design/01_Database_Design.md为准。
| REV 模块 | +关键接口 | +核心数据域(摘要) | +主要协同对象 | +
|---|---|---|---|
| REV-001 客户资料管理 | +IF-REV-001 |
+biz_cust、biz_account、biz_cust_* |
+客户服务模块、报装模块 | +
| REV-002 抄表开账 | +IF-REV-004、IF-REV-005 |
+biz_meter_book、biz_meter_read、biz_reading_*、biz_charge* |
+抄表APP、物联网集抄 | +
| REV-003 营业收费 | +IF-REV-006 |
+biz_charge*、biz_collection、bk_transaction* |
+SYS-009 |
+
| REV-004 账务处理 | +IF-REV-007 |
+biz_charge*、biz_operat_log* |
+财务与营业人员 | +
| REV-005 发票与税务处理 | +IF-REV-008 |
+biz_invoice*、biz_cust_invoice |
+SYS-008 |
+
| REV-006 催缴与通知 | +IF-REV-013 |
+biz_charge*、催缴结果留痕 |
+SYS-010 |
+
| REV-007 统计分析 | +IF-REV-010 |
+客户、抄表、收费、渠道聚合对象 | +统计分析端 | +
| REV-008 代收与银行业务 | +IF-REV-011 |
+bk_withholding_*、bk_reconcile_*、bk_settlement_* |
+SYS-009、银行 |
+
| REV-009 业务参数配置 | +IF-REV-012 |
+biz_parameter_settings、biz_page_settings*、biz_price_* |
+统一平台、营收模块 | +
负责客户主档、账户主档、联系人、客户分组、客户与水表关系、客户开票信息、客户渠道绑定及托收/代扣关系维护,是抄表、收费、发票、代扣等后续业务的主数据基础。
+biz_cust:客户主档。biz_account:客户账户与账户状态。biz_cust_contact:联系人及联系方式。biz_cust_group:客户分组。biz_cust_meter:客户与水表绑定关系。biz_cust_invoice:客户开票信息。biz_cust_app_binds:渠道绑定关系。biz_cust_collection_rel:客户托收关系。biz_cust_withholding_rel:客户代扣关系。biz_cust_water_use_scheme、biz_cust_water_scheme_rel:客户计划用水方案关系。biz_cust_no_rule:客户编号规则。biz_cust_hub_marks:集收号/集收标记关系。IF-REV-001:客户档案、账户状态、联系人与水表绑定关系查询。IF-CS-001、IF-CS-002:客户服务侧账户绑定与信息查询场景复用客户域数据。负责抄表计划、册本管理、抄表录入、抄表状态跟踪、异常复核、计费计算与账单生成,是营收核心处理链路的起点。
+flowchart TD
+ A[制定抄表计划] --> B[生成抄表册本]
+ B --> C[分配抄表任务]
+ C --> D[人工/远传/自报抄表]
+ D --> E[数据校验]
+ E --> F{是否异常}
+ F -->|是| G[异常复核处理]
+ F -->|否| H[生成开账数据]
+ G --> H
+ H --> I[按价格模板与费用组成计费]
+ I --> J[生成营业账与明细]
+ J --> K[账单审核确认]
+ K --> L[进入收费/催缴/开票]
+
+IF-REV-005
+的正式边界是“抄表校验完成后的账单生成”,不负责收费核销、发票开具、催缴执行和统计分析。biz_charge 与
+biz_charge_detail
+承接:主表表达客户、账期、应收日期、账单总金额和主状态,明细表表达费用组成、用量、单价和明细金额。SYS-006 / IoT
+能力提供采集支撑,但账单生成仍归属 SYS-002。readingDataIds
+批量复核并开账,对应
+ChargeController.generateCheckChargeBatch、ChargeServiceImpl.generateCheckChargeBatch
+与 ReadingDataServiceImpl.batchReCheckReadingData。ChargeServiceImpl.generateSingleChargeWithCache
+成功路径会写入 biz_charge 主表、循环写入
+biz_charge_detail
+明细,并回写抄表数据开账状态,说明现有实现已具备“按抄表数据 ID
+生成营业账主明细”的 backend 基础。IF-REV-005
+应返回成功清单、失败清单、生成汇总及主明细级结果;当前 backend
+返回仍为“本次复核成功X条 /
+本次开账成功Y条”的字符串拼接,尚未形成结构化成功/失败结果对象。ACTUAL_USAGE
+等场景当前会直接阻断单条生成;其中固定水量、按人口数、最低消费等非实际水量结算方式仍未纳入当前实现。REV-002
+只负责生成营业账结果并交由后续审核/收费链路消费,不在本章节扩展收费核销、发票申请或催缴执行细节。biz_meter_book:册本与抄表计划。biz_meter_read:抄表任务状态/执行状态。biz_reading_data:抄表数据。biz_last_reading:上次抄表结果。biz_reading_logs:抄表日志与过程留痕。biz_meter:计量水表主档引用。biz_charge:营业账主表。biz_charge_detail:营业账明细。biz_price_category:价格归属。biz_price_template:价格模板。biz_price_adjustment_snap:调价快照。biz_price_tier_adjustment:阶梯规则。biz_cost_component:费用组成。biz_water_use_scheme、biz_water_use_scheme_tier:计划用水方案与阶梯。biz_charge、biz_charge_detail
+作为开账结果承载对象,不建议额外平行建设“特殊开账账表”。IF-REV-004:抄表数据提交与异常标记。IF-REV-005:账单生成与开账结果返回。IF-METER-004:远传抄表数据接收后进入开账流程。支持柜台收费、预存款/余额抵扣、线上缴费回写、柜面扫码、营业网点收费及收费凭证管理,统一承接营收账单的核销处理。
+flowchart TD
+ A[查询客户及待缴账单] --> B[选择账单与核销方式]
+ B --> C[选择支付渠道]
+ C --> D{支付方式}
+ D -->|柜台现金/POS/扫码| E[现场收费]
+ D -->|微信/支付宝/聚合支付| F[渠道下单]
+ D -->|预存款/余额抵扣| G[账户余额核销]
+ E --> H[更新营业账状态]
+ F --> I[等待异步回调确认]
+ G --> H
+ I --> H
+ H --> J[生成收费记录与凭证]
+ J --> K[进入发票/对账流程]
+
+SYS-009 提供,SYS-002
+负责账单核销与业务状态回写。PayCeb
+的欠费查询、缴费处理基础闭环可用,但代理收费对账仍为预留能力;正式文档不得将实时收费对账写成已闭环能力。biz_charge、biz_charge_detail:待缴与已缴账单主明细。biz_collection:托收/代收主表。biz_withholding:代扣/托收主表。bk_transaction:渠道交易流水。bk_transaction_callback:支付回调记录。bk_transaction_exception:支付异常记录。IF-REV-006:创建收费记录、执行账单核销并回写状态。IF-CS-003、IF-CS-007:客户渠道与柜面扫码支付场景复用收费核销链路。REV-004
+一期仅覆盖水量调整、金额调整、退款、冲正、坏账申请五类场景,统一挂靠
+IF-REV-007
+作为账务处理入口,目标是在既有正式文档体系内先收敛范围、承接口径、留痕要求与审批边界。
本阶段按“共性能力先统一、场景能力再分批”组织:先统一账单承接、原交易校验、结果表达、操作留痕与审批边界,再分别展开五类场景。违约金减免、分账调整、价差调整、跨周期水量、预存退款细表等内容仅作为旧系统迁移语义或后续扩展参考,不作为一期新增独立范围。
+flowchart TD
+ A[发起账务调整申请] --> B[校验账单状态与权限]
+ B --> C{是否通过}
+ C -->|否| D[驳回并记录原因]
+ C -->|是| E[执行重算或退款冲正]
+ E --> F[更新账单与明细状态]
+ F --> G[写入操作日志与审批留痕]
+ G --> H[返回处理结果]
+
+biz_charge /
+biz_charge_detail 为主承接对象,并通过
+biz_operat_log / biz_operat_log_detail
+记录处理依据、前后变化和责任归属。bk_transaction、bk_transaction_callback、bk_transaction_exception
+等原支付流水及渠道状态校验,不允许仅依据账单状态直接处理。resultStatus、writeBackStatus,其中
+resultStatus 表示处理结论,writeBackStatus
+表示账单状态回写结论,两者不得混用。approvalRequired、PENDING_APPROVAL
+与审批边界说明,不展开完整 BPM
+流程、节点、流转规则或审批回写实现细节。biz_charge、biz_charge_detail:账务调整的核心对象,承接调整前后账单主明细状态。bk_transaction、bk_transaction_callback、bk_transaction_exception:退款、冲正场景的原交易校验与异常追溯对象。biz_operat_log、biz_operat_log_detail:操作与变更留痕,记录字段差异、处理说明、附件依据与责任归属。| 场景 | +说明 | +控制要点 | +
|---|---|---|
| 水量调整 | +更正异常水量 | +需复核原因、附件和原抄表依据 | +
| 金额调整 | +更正账单金额 | +需记录依据、差异金额和审批边界 | +
| 退款 | +退回客户支付资金或预存款 | +需校验原交易、退款余额与幂等性 | +
| 冲正 | +修正误收/误核销记录 | +需关联原交易与账单状态 | +
| 坏账申请 | +对长期欠费进行分类处理 | +需结合账龄、客户状态与审批边界 | +
| 旧账务对象 | +当前承接方式 | +迁移口径 | +
|---|---|---|
| 预存退款 / 预存退款详情 | +作为账务处理场景承接 | +保留申请单、原支付引用、退款结果与审批留痕 | +
| 已销调整汇总 / 明细 | +作为已收费后修正场景承接 | +保留原账单、调整原因、前后差异、处理结果 | +
| 价差调整汇总 / 明细 | +作为重算与差额修正场景承接 | +保留原价格口径、新价格口径、差额和生效时间 | +
| 分账调整汇总 / 明细 | +作为费用组成重分摊场景承接 | +保留原分摊结果、调整后结果、责任人和审批链 | +
| 账单-违约金减免 | +作为滞纳金修正场景承接 | +保留减免原因、减免金额、审批结果和生效时间 | +
| 账单-呆坏账 | +作为坏账申请与生效场景承接 | +保留账龄、申请原因、审批结果、核销状态 | +
IF-REV-007:账务调整、退款、冲正、坏账等处理入口。IF-REV-006:与收费核销状态联动,确保调账后账单状态一致。负责发票业务闭环的业务接入与状态落账,覆盖后台发票申请、开票校验、SYS-008
+异步协同、查询兜底、结果回写、账单关联、客户侧已开票电子发票查询/下载/推送,以及后台作废与红冲处理。
flowchart TD
+ A[后台提交发票申请] --> B[校验账单、客户开票信息、税率与限额]
+ B --> C{是否满足开票条件}
+ C -->|否| D[返回不可开票原因]
+ C -->|是| E[生成申请单号并写入SUBMITTED]
+ E --> F[调用SYS-008发起异步开票]
+ F --> G[记录受理号并转为PENDING]
+ G --> H[系统轮询或后台查询兜底]
+ H --> I{开票结果}
+ I -->|成功| J[回写SUCCESS并更新账单-发票关联]
+ I -->|失败| K[回写FAIL并记录失败原因]
+ J --> L[客户侧查询/下载/推送电子发票]
+
+SUBMITTED:后台申请已受理,已完成本地校验并生成申请单。PENDING:已提交
+SYS-008,等待异步结果或查询补偿结果。SUCCESS:已取得有效发票代码、号码或电子票地址,且账单关联已完成更新。FAIL:开票失败,需保留失败原因、最近查询结果与后续人工核查依据。INVALID:发票已作废,作为后续能力预留状态。RED_INK:发票已红冲,作为后续能力预留状态。SYS-008 采用“异步申请 +
+查询兜底”模式,成功状态不得被后续失败查询结果覆盖。SUCCESS
+且存在票据文件地址时允许客户侧下载或推送。SYS-008
+统一承接税控侧处理,SYS-002
+负责后台触发入口、状态校验、查询补偿、结果落账与日志留痕;当前轮次按二期范围补齐
+backend 实现入口。SUBMITTED/PENDING
+状态流转,失败校验场景不进入外部协同。applicationNo 或
+custId + chargeIds 为主,避免相同账单组合重复申请。SYS-002 先写入
+biz_invoice 申请记录,再向 SYS-008
+发起异步开票请求,并记录 sysRequestNo
+作为后续查询与回写的协同主键。SYS-008 返回“已受理”后,发票状态转为
+PENDING;若仅完成本地受理但尚未拿到受理号,则保留
+SUBMITTED 并进入待补偿查询状态。IF-EXT-007
+回写为首选结果来源,后台人工查询与系统定时补偿查询共用同一结果落账逻辑。SUCCESS
+属于正常开票闭环终态,一旦已取得有效发票代码、发票号码或电子票据地址,后续失败查询结果不得覆盖成功状态。FAIL 仅在 SYS-008
+明确返回失败结论或多次补偿查询确认失败时写入,并同步保留失败原因、最近查询结果与人工核查依据。IF-EXT-007 回写成功结果时,除更新
+biz_invoice.invoice_status、invoice_code、invoice_number、file_url
+外,还应同步刷新账单快照、账单关联状态与推送状态初值。biz_invoice.charge_id +
+charge_ids_snapshot 记录本次开票覆盖账单集合,并同步把对应
+biz_charge.invoice_state
+更新为“开票完成”,保留失败原因与开票时间,便于账单明细、收费记录和客户侧结果统一展示。custId
+访问已存在的发票记录;可通过
+invoiceId、applicationNo 或
+sysRequestNo 定位,但都必须命中同一客户名下记录。SUCCESS 且
+fileUrl
+非空;不满足条件时仅返回不可下载/推送原因,不得伪造文件地址。pushStatus=PUSHED,失败则写入 FAIL
+并保留失败原因供人工处理。biz_invoice:发票主记录。biz_invoice_taxrate:税率配置。biz_cust_invoice:客户开票信息。biz_invoice、biz_invoice_taxrate、biz_cust_invoice,但迁移时不能忽略旧开票明细和账单关联关系。IF-REV-008:后台发票申请接口,负责单笔/批量申请、幂等控制与受理号生成。IF-REV-009:发票结果查询接口,负责后台按申请单号/受理号查询以及系统补偿查询。IF-CS-004:客户侧电子发票消费接口,负责已开票结果查看、下载、推送。IF-EXT-007:发票结果回写协同接口(由发票服务侧回传)。SYS-008
+统一承接,但当前轮次补齐后台触发入口、状态流转、结果回写与日志留痕,不再仅停留于文档预留。针对欠费账单按账龄、金额、客户类别等规则生成催缴任务,通过短信、微信、站内通知等方式触达客户,并回写催缴结果;本模块同时定义催缴与停复水/工单处置之间的联动边界与追溯关系,但不展开停复水内部处置流程。
+flowchart TD
+ A[生成欠费客户清单] --> B[按策略分组催缴任务]
+ B --> C[触发IF-REV-013生成催缴任务]
+ C --> D[调用IF-EXT-008协同SYS-010]
+ D --> E[接收发送结果回写]
+ E --> F[更新催缴状态与后续策略]
+ F --> G[按联动边界挂接停复水/工单处置]
+
+SYS-002
+负责催缴对象筛选、任务生成、业务事件编号、结果承接与历史查询;SYS-010
+负责短信、微信公众号、站内信等触达执行与结果回传。REV-006 正式结果状态固定为
+PENDING、SUCCESS、FAIL、MANUAL_VERIFIED
+四态,其中 MANUAL_VERIFIED
+仅用于外部结果未定或需人工核查补记的场景。IF-REV-013
+任务生成前必须完成候选筛选,筛选最小维度为:欠费状态、欠费金额、账龄分组、客户类别、渠道偏好和策略编码。triggerType
+区分自动与人工;自动用于批量触发,人工用于补发、核查和例外补记,不改变正式接口编号与状态语义。biz_charge、biz_charge_detail:催缴对象来源。Reminder Candidate:由欠费账单、客户类别、账龄分组、欠费金额、联系方式集合和命中策略编码组成,是催缴任务的输入对象。Reminder Strategy:定义账龄规则、金额规则、客户类别规则、渠道优先级、重复触达拦截窗口和是否触发后续处置关注。Reminder Task:一次正式催缴执行单元,至少包含
+taskNo、eventNo、strategyCode、channelType、triggerType、status
+和关联账单信息;正式业务接口编号固定为 IF-REV-013。Reminder Result:承接 IF-EXT-008
+回传结果后由业务侧映射的正式四态结果,最少记录
+status、lastCallbackTime、failReason
+与回传摘要。Disposal Link:用于记录催缴结果与停水、复水、工单或人工跟进之间的关联引用,只承担追溯职责,不替代下游业务对象。PENDING:已生成任务并完成外部受理或等待外部终态回传,尚未形成业务终态。SUCCESS:外部触达结果明确成功,且业务侧已完成结果承接。FAIL:外部返回明确失败或业务判定失败,必须记录失败原因。MANUAL_VERIFIED:仅用于外部结果长期未定、人工核查补记或例外核销说明场景;必须留存核查说明与核查人。REV-006 中展开停复水内部流程设计。Disposal Link
+的处置引用承接,最少包含任务号、处置类型、处置引用号和建联时间。IF-REV-013:催缴任务生成、任务查询与结果承接接口,负责业务侧任务生成、四态状态维护和历史查询挂接。IF-EXT-008:消息协同结果回写接口(由
+SYS-010 协同)。提供营收、抄表、收费、欠费、渠道、客户等多维度统计查询能力,为经营分析、业务监管和迁移核查提供统一的数据口径支撑;本模块以经营查询为主,不扩展到预测分析、专题大屏或独立 +BI 平台实现。
+biz_cust、biz_account。biz_meter_book、biz_reading_data、biz_last_reading。biz_charge、biz_charge_detail。biz_collection、bk_transaction。bk_transaction、bk_payment_channel。system_dept、数据权限控制结果。Statistics Theme:按经营主题组织查询,至少覆盖营收、收费、欠费、客户、渠道、抄表完成率和必要的业务概览。Statistics Dimension:按时间、账期、营业所/片区、客户类别、渠道、客户/账户、状态等条件筛选或分组。Statistics Indicator:至少明确应收金额、实收金额、欠费余额、账单数、客户数、交易笔数、渠道占比、完成率等指标含义和单位。Aggregation Source:统计结果以现有在线主数据聚合、视图或汇总口径承接,不反推为已存在独立统计表族。IF-REV-010:营收、收费、欠费、渠道、客户等统计查询接口,承接主题查询、维度筛选、指标汇总和权限/导出边界。支持银行代收、银行代扣、实时收费、夜间批量扣款、对账与结算处理,是
+SYS-002 面向 SYS-009 支付与银行结算能力的业务承接模块。
flowchart TD
+ A[生成代扣批次] --> B[校验签约与待扣账单]
+ B --> C[调用IF-REV-011下发批次]
+ C --> D[SYS-009对接银行处理]
+ D --> E[回写扣款结果]
+ E --> F[执行对账与差异识别]
+ F --> G{差异是否已处理}
+ G -->|否| H[进入人工补偿]
+ G -->|是| I[确认结算并更新状态]
+
+SYS-009
+承载,SYS-002 保留业务规则与状态协同。BankWithholding
+六条银行入口(客户状态查询、送盘、送盘状态查询、取消送盘、回盘、回盘状态查询)已形成最小实现态闭环;BankCollection
+平行链路、对账与结算协同仍以“部分实现或文档先行”表述,不得统一写成已闭环能力。TENANT_CHANNEL > TENANT > CHANNEL > DEFAULT。send/back/reconcile/archive/localTemp
+五类阶段;上层覆盖未完整定义时按字段级回退,不允许生成空路径。{tenantId}、{companyId}、{channelCode}、{yyyyMMdd}、{yyyyMM}、{batchNo}、{fileName}
+七个固定变量;命中未声明变量或缺少变量取值时立即阻断文件动作。BankWithholding 在送盘创建时固化
+sendProtocol/sendDir/sendFilePath 与
+backProtocol/backDir,配置切换仅影响新发起文件动作,已落库批次继续沿用原解析结果。bk_payment_channel:支付渠道。bk_channel_api_config:渠道接口配置。bk_channel_route_rule:渠道路由规则。bk_withholding_agreement:代扣签约。bk_withholding_batch、bk_withholding_item:代扣批次与明细。bk_reconcile_batch、bk_reconcile_diff:对账批次与差异。bk_settlement_batch:结算批次。bk_transaction、bk_transaction_callback、bk_transaction_exception:交易、回调、异常。biz_collection、biz_withholding:代收/代扣业务主对象。bk_channel_api_config 使用专用
+apiType=FILE_TRANSFER_CONFIG
+承接文件传输覆盖配置,extParams
+记录作用域、业务类型、协议、连接引用和五类目录字段。bk_withholding_batch
+固化送盘/回盘目录与协议,bk_reconcile_batch
+固化对账阶段最终
+protocol/dir/filePath/fileName,用于审计与问题回放。biz_collection + bk_*
+渠道模型,迁移时应补出“旧托收菜单 →
+托收批次/交易/回盘结果”的映射,而不是按旧菜单名平移建模。bk_transaction*
+作为主承接对象,并补充按结算日期、银行/渠道、收费结果、差异状态查询和导出能力说明。PayCeb
+路径已具备欠费查询、缴费处理、流水唯一性校验和交易日志留痕,可作为实时收费基础闭环的实现证据。BankWithholding
+路径已具备签约、解约、客户状态查询、送盘、送盘状态查询、取消送盘、回盘、回盘状态查询及对应交易留痕的实现证据,可作为代扣最小实现态闭环依据。BankCollection
+路径当前仍仅能确认签约、解约与协议/交易日志处理具备实现证据。IF-REV-011:代扣批次、对账与结算协同入口。IF-EXT-001:银行代扣批次下发与回盘协同。IF-EXT-003:银行实时收费查询、缴费与结果确认协同。BankWithholding
+的客户状态查询、送盘、送盘状态查询、取消送盘、回盘、回盘状态查询和对应日志留痕等主对象已具备明确实现证据。BankCollection
+批次、明细、送盘、回盘、状态查询、差异台账和后台资源管理入口已具备对象或骨架,但不等同于银行协同闭环全部完成;BankWithholding
+的真实文件解析、异常补偿和运行态联调证据仍待补齐。负责营收域的价格参数、客户编号规则、页面配置、打印与渠道相关业务参数配置,为客户、开账、收费、发票、催缴等模块提供统一配置支撑。
+biz_parameter_settings:业务参数配置。biz_page_settings、biz_page_settings_detail:页面配置。biz_price_category、biz_price_template、biz_template_dept_rel:价格归属与模板站点关系。biz_cust_no_rule:客户编号规则。sys_wechat_app_settings:微信/微网厅基础配置。IF-REV-012:查询与维护价格模板、业务参数、页面参数配置。IF-UP-004:统一平台参数字典能力协同,为营收域参数提供基础字典支撑。2024年12月19日
+本文档为 01_Detailed_Design.md
+中“客户服务模块详细设计”章节的模块正文拆分稿,便于按模块独立维护。正式交付口径以主详设为准。
整体架构图中,客户渠道相关模块同时使用了 CS-* 与
+WECHAT-* 两套编号:
CS-* 用于 SYS-002
+营收业务子系统中的客户服务模块群表达;WECHAT-* 用于 SYS-004
+微网厅子系统中的渠道形态表达。当前详细设计采用“能力域优先”的承接方式,即以 CS-*
+作为正式详细设计编号,将 WECHAT-*
+视为渠道侧同源能力映射,不另建平行正式主稿。
| 架构图模块 | +当前详设承接章节 | +说明 | +
|---|---|---|
WECHAT-001 账户绑定管理 |
+CS-001 |
+微网厅渠道形态映射到统一账户绑定能力 | +
WECHAT-002 信息查询服务 |
+CS-002 |
+微网厅账单、发票、流水查询能力映射 | +
WECHAT-003 在线缴费服务 |
+CS-003 |
+微网厅渠道缴费入口映射 | +
WECHAT-004 电子发票服务 |
+CS-004 |
+微网厅电子发票查看/推送/下载映射 | +
WECHAT-005 营业网点服务 |
+CS-005 |
+微网厅网点查询与预约引导映射 | +
WECHAT-006 业务办理服务 |
+CS-006 |
+微网厅线上办理入口映射 | +
WECHAT-007 账户流水 |
+CS-002 |
+当前并入信息查询服务,不单列平行正文 | +
WECHAT-008 账号与机构管理 |
+CS-001 |
+当前并入账户绑定与账户切换能力 | +
SYS-002 统一落账与回写。SYS-009、SYS-008、SYS-010
+协同完成,客户服务模块不直接承载外部平台业务规则。++说明:详细接口字段与报文以 +
+../03_Technical_Design/03_Interface_Design.md为准。
| CS 模块 | +关键接口 | +核心数据域(摘要) | +主要协同对象 | +
|---|---|---|---|
| CS-001 账户绑定管理 | +IF-CS-001 |
+biz_cust_app_binds、biz_cust、biz_account |
+微信、支付宝、微网厅 | +
| CS-002 信息查询服务 | +IF-CS-002 |
+biz_charge*、biz_reading_data、biz_invoice |
+客户渠道、SYS-002 |
+
| CS-003 在线缴费服务 | +IF-CS-003 |
+biz_charge*、biz_collection、bk_transaction* |
+SYS-009 |
+
| CS-004 电子发票服务 | +IF-CS-004 |
+biz_invoice*、biz_cust_invoice |
+SYS-008 |
+
| CS-005 营业网点服务 | +IF-CS-005 |
+biz_outlets、biz_business_types |
+客户渠道 | +
| CS-006 业务办理服务 | +IF-CS-006 |
+biz_process*、biz_content_attach |
+工单系统、SYS-010 |
+
| CS-007 柜面扫码支付 | +IF-CS-007 |
+biz_collection、bk_transaction*、biz_charge |
+营业厅、SYS-009 |
+
面向微信、支付宝、微网厅等渠道实现客户账户绑定、解绑、默认账户设置、多账户切换与身份校验。
+biz_cust_app_bindsbiz_custbiz_accountIF-CS-001:渠道账户绑定、解绑、默认账户切换。IF-REV-001:客户与账户信息查询,校验绑定对象合法性。提供账单查询、缴费记录查询、用水分析、欠费查询、账户流水、历史账单等服务。
+biz_custbiz_accountbiz_chargebiz_charge_detailbiz_invoiceIF-CS-002:账单、欠费、缴费、用水、发票等聚合查询。IF-REV-001:客户基础信息查询与状态校验。IF-REV-010:统计类查询场景复用营收统计接口能力。提供微信支付、支付宝支付、银行卡支付、预存款支付等在线缴费能力。
+flowchart TD
+ A[提交缴费请求] --> B[校验账单与应缴金额]
+ B --> C[创建业务订单]
+ C --> D[调用SYS-009下单]
+ D --> E[接收支付回调/查询结果]
+ E --> F[更新核销状态]
+ F --> G[返回缴费结果]
+
+SYS-009 回调/查询确认为准。biz_chargebiz_charge_detailbk_transactionbk_transaction_callbackIF-CS-003:客户渠道支付下单入口。IF-EXT-004、IF-EXT-005:支付下单协同与结果回写。IF-REV-006:账单核销与收费状态更新。在客户渠道中提供电子发票申请、查询、下载以及缴费后发票推送能力。
+SYS-008 统一提供。biz_invoicebiz_cust_invoicebiz_invoice_taxrateIF-CS-004:客户侧发票申请与状态查询。IF-EXT-006、IF-EXT-007:发票开具协同与结果回写。IF-REV-008:营收侧发票主流程协同。提供营业网点查询、服务范围查看、办事指引与营业时间展示能力。
+biz_outletsbiz_business_typesIF-CS-005:网点信息、可办事项、预约入口查询。提供更名、过户、联系方式变更、开票方式变更、一户多人口、自主抄表、换表申请等线上业务办理入口。
+SYS-010 完成结果通知。biz_processbiz_process_transferbiz_content_attachIF-CS-006:办理申请提交、进度查询、补件上传。IF-EXT-008:办理结果通知协同。支持营业厅柜台二维码收款、票据关联、结果回传,是柜台收费场景对线上支付能力的补充入口。
+flowchart TD
+ A[柜面发起扫码收款] --> B[生成支付订单]
+ B --> C[客户扫码支付]
+ C --> D[接收支付结果回写]
+ D --> E[更新账单核销状态]
+ E --> F[打印或展示收费凭证]
+
+SYS-009 回传后更新收费状态。biz_chargebk_transactionbk_transaction_callbackIF-CS-007:柜面扫码支付订单创建与结果回写。IF-EXT-004、IF-EXT-005:支付渠道协同。IF-REV-006:收费核销与账单状态更新。2024年12月19日
+本文档为 01_Detailed_Design.md
+中“表务详细设计”章节的模块正文拆分稿,便于按模块独立维护。正式交付口径以主详设为准。
SYS-002 营收主流程。SYS-002
+后,必须先完成校验和异常判断,再进入抄表开账链路。++说明:接口字段以 +
+../03_Technical_Design/03_Interface_Design.md+为准,数据库口径以 +../03_Technical_Design/01_Database_Design.md为准。
| METER 模块 | +关键接口 | +核心数据域(摘要) | +主要协同对象 | +
|---|---|---|---|
| METER-001 表务基础管理 | +IF-METER-001 |
+biz_meter、biz_meter_model、biz_meter_caliber、biz_meter_range |
+营收、报装 | +
| METER-002 仓库与库存管理 | +IF-METER-003 |
+biz_meter_in_out、biz_meter_in_out_rel、biz_meter |
+仓储管理端 | +
| METER-003 设备档案管理 | +IF-METER-001、IF-METER-002、IF-METER-004 |
+biz_meter、biz_meter_log、biz_process*、biz_meter_read、biz_reading_data、biz_last_reading |
+工单系统、移动作业、IoT 平台、营收开账 | +
管理水表档案、厂家、型号、口径、量程、检定证书、安装位置、当前状态等基础信息。
+biz_meter:水表主档。biz_meter_model:水表型号。biz_meter_caliber:水表口径。biz_meter_range:水表量程。biz_last_reading:最近有效读数状态。IF-METER-001:查询水表档案、状态与生命周期信息。IF-REV-001:客户侧查询场景复用表计关联信息。管理新表入库、领用、出库、退库、报废及库存预警,是架构图中“仓库与库存管理”模块的正式承接章节。
+biz_meter_in_out:出入库主表。biz_meter_in_out_rel:出入库明细关系。biz_meter_log:库存与生命周期动作留痕。biz_meter:生命周期状态主对象。IF-METER-003:领用、退库、报废等库存动作处理。管理水表唯一电子档案、状态流转、安装历史、质检追溯,并统一承接表务工单和物联网同步相关能力。
+biz_meter:水表主档与状态主对象。biz_meter_log:设备过程留痕与工单回写对象。biz_process、biz_process_transfer:表务工单流程主线。biz_meter_read、biz_reading_data、biz_last_reading:读数、状态与同步对象。IF-METER-001:查询水表档案、状态与生命周期信息。IF-METER-002:换表、移表、校表、维修等处理结果提交。IF-METER-004:远传抄表、告警与状态同步接收。接入集抄系统、智能表平台及厂家物联网平台,实现远程抄表、状态查询、设备参数同步与异常告警。
+flowchart TD
+ A[定时采集任务] --> B[发送采集请求]
+ B --> C[物联网平台返回数据]
+ C --> D[数据校验]
+ D --> E{是否有效}
+ E -->|有效| F[写入抄表记录]
+ E -->|无效| G[异常标记并告警]
+ F --> H[参与开账]
+ G --> I[人工复核处理]
+
+biz_meter_read:抄表任务或状态承接对象。biz_reading_data:远传读数数据。biz_last_reading:最新有效读数。biz_meter:设备状态与参数关联对象。IF-METER-004:远传抄表、告警与状态同步接收。IF-EXT-009:IoT/集抄平台数据接入协同。IF-REV-004、IF-REV-005:校验通过后进入抄表提交与开账流程。处理换表、移表、拆表、复装、校表、稽查、维修等表务工单,是
+METER-003 设备档案管理的实施态过程能力。
flowchart TD
+ A[创建表务工单] --> B[派发现场任务]
+ B --> C[现场处理并采集结果]
+ C --> D[回写旧表/新表信息]
+ D --> E[更新水表状态与客户绑定]
+ E --> F[写入过程日志与附件]
+ F --> G[工单办结]
+
+2024年12月19日
+本文档为 01_Detailed_Design.md
+中“报装与签章详细设计”章节的模块正文拆分稿,便于按模块独立维护。正式交付口径以主详设为准。
SYS-002
+中“申请受理、踏勘方案、施工验收、立户通水、合同签章、档案归档”的完整主流程,流程主线以
+biz_process* 与 biz_content*
+为当前实现态口径。installation_*
+当前为“专题扩展口径”,若实施库结构与专题设计不一致,以实施库与主详设联合评审结果为准。++说明:接口字段以 +
+../03_Technical_Design/03_Interface_Design.md+为准,数据库口径以 +../03_Technical_Design/01_Database_Design.md为准。
| INST 模块 | +关键接口 | +核心数据域(摘要) | +主要协同对象 | +
|---|---|---|---|
| INST-001 报装流程管理 | +IF-INST-001、IF-INST-002 |
+biz_process、biz_content、biz_content_attach、biz_process_transfer、biz_business_datas |
+柜台、微网厅、政务平台、报装人员 | +
| INST-002 工程管理 | +IF-INST-003、IF-INST-004、IF-INST-005 |
+biz_process_meter_install、biz_process、biz_meter、installation_contract、installation_signature、installation_evidence |
+表务、客户建档、泛微 CA | +
| INST-003 档案管理 | +IF-INST-005 |
+biz_content_attach、installation_evidence、过程日志 |
+报装、档案管理 | +
承接新装、改造、一户一表等业务从申请受理到现场踏勘、方案编制的前半段主流程,是架构图中“报装流程管理”模块的正式承接章节。
+flowchart TD
+ A[提交报装申请] --> B[采集申请信息与附件]
+ B --> C[受理校验]
+ C --> D{是否通过}
+ D -->|否| E[退回补充资料]
+ D -->|是| F[生成报装编号]
+ F --> G[创建流程实例]
+ G --> H[进入踏勘环节]
+
+biz_process:报装流程主表。biz_content:申请资料主对象。biz_content_attach:申请附件。installation_application:报装申请映射对象(设计态)。IF-INST-001:提交报装申请、申请资料与附件。IF-INST-002:回填踏勘结果、方案、审核结果。IF-CS-006:客户渠道办理入口可复用报装申请主线。installation_application
+当前按设计态保留,不宣称为实施库既有事实表。组织现场勘查、工程条件确认、材料测算、施工方案与费用方案编制。
+flowchart TD
+ A[接收踏勘任务] --> B[现场勘查与拍照]
+ B --> C[记录供水条件与施工约束]
+ C --> D[编制方案与费用]
+ D --> E[提交审核]
+ E --> F{审核是否通过}
+ F -->|否| G[退回修改]
+ F -->|是| H[进入施工或合同环节]
+
+biz_process_transfer:节点流转与处理记录。biz_business_datas:踏勘与方案扩展数据。biz_content_attach:现场照片与附件资料。IF-INST-002:回填踏勘结果、方案、审核结果。承接施工派工、安装实施、竣工验收、立户通水以及合同签章协同,是架构图中“工程管理”模块的正式承接章节。
+flowchart TD
+ A[下发施工任务] --> B[现场安装实施]
+ B --> C[录入装表与施工结果]
+ C --> D[提交竣工验收]
+ D --> E{验收是否通过}
+ E -->|否| F[整改后复验]
+ E -->|是| G[触发客户建档与水表绑定]
+ G --> H[初始化账户并确认通水]
+
+biz_process:施工与验收流程主线。biz_process_meter_install:装表落地信息。biz_meter:水表安装与状态回写对象。biz_cust、biz_account:立户后续创建对象。IF-INST-005:归档验收资料并提交最终办结信息。IF-INST-003:发起电子签章任务并传输合同信息。IF-INST-004:回写签章结果、时间戳和存证信息。IF-METER-001、IF-METER-002:装表与表务状态协同。IF-REV-001:立户后客户主档进入营收主数据域。通过集成泛微 CA +电子签章系统,实现报装合同、用水协议等文件的电子签署、时间戳和电子存证。
+graph TD
+ subgraph INST[报装业务系统]
+ A[申请受理]
+ B[合同管理]
+ C[电子签章模块]
+ D[档案归档]
+ end
+
+ subgraph CA[泛微CA电子签章系统]
+ E[身份认证服务]
+ F[电子签章服务]
+ G[时间戳服务]
+ H[电子存证服务]
+ end
+
+ A --> B
+ B --> C
+ C --> E
+ C --> F
+ C --> G
+ C --> H
+ C --> D
+
+sequenceDiagram
+ participant 客户
+ participant 报装系统
+ participant 电子签章模块
+ participant 泛微CA系统
+
+ 客户->>报装系统: 提交签署申请
+ 报装系统->>电子签章模块: 生成签署任务
+ 电子签章模块->>泛微CA系统: 发起身份认证
+ 泛微CA系统-->>电子签章模块: 返回认证结果
+ 电子签章模块->>泛微CA系统: 发起电子签章
+ 泛微CA系统-->>电子签章模块: 返回签章结果
+ 电子签章模块->>泛微CA系统: 申请时间戳与存证
+ 泛微CA系统-->>电子签章模块: 返回凭证
+ 电子签章模块-->>报装系统: 返回签署结果
+ 报装系统-->>客户: 通知合同签署完成
+
+| 数据对象 | +说明 | +
|---|---|
installation_contract |
+报装合同主表(设计态专题扩展) | +
installation_signature |
+电子签章记录表(设计态专题扩展) | +
installation_evidence |
+电子存证记录表(设计态专题扩展) | +
installation_signature_template |
+签章模板与签署位置配置 | +
IF-INST-003:发起合同签署任务并传递合同信息。IF-INST-004:回写签章结果、时间戳和存证信息。installation_*
+当前在数据库主文档中按专题扩展纳管,实施库需联合评审确认最终落表。归集申请材料、设计方案、合同文件、验收资料、签章回执和过程日志,形成完整报装档案。
+biz_content_attach:报装材料、验收附件、影像资料。installation_evidence:签章存证与回执资料。biz_process、biz_process_transfer:过程留痕主线。IF-INST-005:归档申请、合同、验收资料与签章回执。IF-INST-004:签章回执结果进入归档链路。