title, author, date, documentclass, geometry, fontsize, mainfont, CJKmainfont
| title |
author |
date |
documentclass |
geometry |
fontsize |
mainfont |
CJKmainfont |
| 01_Database_Design |
系统设计团队 |
2024年12月19日 |
article |
margin=1in |
11pt |
PingFang SC |
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
福建水务营收系统数据库设计说明书
章节导航(精简)
| 文件状态: |
文档密级: |
公开 |
| 【 】草稿 |
|
|
| 【 】修改稿 |
|
|
| 【√】正式发布 |
|
|
|
当前版本: |
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图、数据表结构、字段定义和索引策略。旨在为开发和运维人员提供清晰的数据结构参考。
外部设计
- 数据库系统: 主力采用国产数据库 达梦数据库 8.0+。系统设计上兼容 MySQL 8.x 或 MariaDB 10.x。
- 数据库工具: 使用 Navicat, DBeaver, DataGrip 等主流数据库管理工具。
- 约定:
- 表名: 全部小写,单词间使用下划线
_ 分隔。业务表以 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 专题表边界) |
系统公共表 (system_*)
(基于 sw_system_publcli.sql)
点击展开/折叠系统表详情
system_dept (部门表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
|
联系电话 |
| email |
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 |
|
备注 |
system_dict_data (字典数据表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
是否删除 |
system_dict_type (字典类型表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
|
删除时间 |
system_login_log (系统访问记录)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
租户编号 |
system_mail_account (邮箱账号表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
主键 |
| mail |
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 |
是否删除 |
system_mail_log (邮件日志表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
是否删除 |
system_mail_template (邮件模版表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
是否删除 |
system_users (用户表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
|
岗位编号数组 |
| email |
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 |
租户编号 |
system_role (角色信息表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
是否删除 |
system_tenant (租户表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
是否删除 |
system_user_session (用户会话表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
租户编号 |
system_user_role (用户角色关联表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
租户编号 |
子系统1: 统一平台数据表
统一平台主要负责系统基础功能,包括用户管理、权限管理、部门管理等。这些表主要为system_*系列,已在上一节详细描述。
OAuth2.0单点登录相关表
为支持OAuth2.0协议的单点登录功能,系统新增以下OAuth2.0相关数据表:
点击展开/折叠OAuth2.0表详情
system_oauth2_client (OAuth2客户端表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| secret |
varchar(255) |
N |
|
客户端密钥 |
| name |
varchar(255) |
N |
|
应用名 |
| logo |
varchar(255) |
N |
|
应用图标 |
| description |
varchar(255) |
Y |
|
应用描述 |
| status |
int2 |
N |
|
状态 |
| access_token_validity_seconds |
int4 |
N |
|
访问令牌的有效期 |
| refresh_token_validity_seconds |
int4 |
N |
|
刷新令牌的有效期 |
| redirect_uris |
varchar(255) |
N |
|
可重定向的 URI 地址 |
| authorized_grant_types |
varchar(255) |
N |
|
授权类型 |
| scopes |
varchar(255) |
Y |
|
授权范围 |
| auto_approve_scopes |
varchar(255) |
Y |
|
自动通过的授权范围 |
| authorities |
varchar(255) |
Y |
|
权限 |
| resource_ids |
varchar(255) |
Y |
|
资源 |
| additional_information |
varchar(4096) |
Y |
|
附加信息 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
system_oauth2_access_token (OAuth2访问令牌表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
N |
|
用户编号 |
| user_type |
int2 |
N |
|
用户类型 |
| user_info |
varchar(512) |
N |
|
用户信息 |
| access_token |
varchar(255) |
N |
|
访问令牌 |
| refresh_token |
varchar(32) |
N |
|
刷新令牌 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| scopes |
varchar(255) |
Y |
|
授权范围 |
| expires_time |
timestamp(6) |
N |
|
过期时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_oauth2_refresh_token (OAuth2刷新令牌表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
N |
|
用户编号 |
| refresh_token |
varchar(32) |
N |
|
刷新令牌 |
| user_type |
int2 |
N |
|
用户类型 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| scopes |
varchar(255) |
Y |
|
授权范围 |
| expires_time |
timestamp(6) |
N |
|
过期时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_oauth2_code (OAuth2授权码表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
N |
|
用户编号 |
| user_type |
int2 |
N |
|
用户类型 |
| code |
varchar(32) |
N |
|
授权码 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| scopes |
varchar(255) |
Y |
|
授权范围 |
| expires_time |
timestamp(6) |
N |
|
过期时间 |
| redirect_uri |
varchar(255) |
Y |
|
可重定向的 URI 地址 |
| state |
varchar(255) |
Y |
|
状态 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_oauth2_approve (OAuth2批准表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
N |
|
用户编号 |
| user_type |
int2 |
N |
|
用户类型 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| scope |
varchar(255) |
Y |
|
授权范围 |
| approved |
bool |
N |
false |
是否接受 |
| expires_time |
timestamp(6) |
N |
|
过期时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
子系统2: 营收系统数据表
营收系统是核心业务系统,包括客户管理、抄表管理、账务管理、发票管理等核心业务功能。
点击展开/折叠营收系统表详情
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
system_user_form_config (用户表单字段配置表-标准)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
租户编号 |
biz_company_account (水司账户表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_cost_component (费用组成表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_dept_account_rel (部门和水司账户关系表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_meter_caliber (水表口径表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_meter_maker (水表厂家表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_meter_model (水表型号表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_meter_range (水表量程表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_category (水价归属表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_adjustment_history (水价调整历史表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_cost_adjustment (价格成本调整表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_dept_rel (价格部门关系表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_discount_cost (价格折扣成本表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_discount_scheme (价格折扣方案表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_discount_tier (价格折扣阶梯表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_tier_adjustment (价格阶梯调整表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_adjustment_snap (水价调整快照表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_template (水价调整模版表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_template_dept_rel (模版部门关系表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_tier_adjustment (水价阶梯调整表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_discount_scheme (水价优惠方案表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_discount_tier (水价优惠阶梯表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
biz_price_discount_cost (水价优惠费用表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
SYS-002 客户与账户关系表 (biz_cust* / biz_account)
说明:以下内容按 sql/lhc_数据库设计.md、docs/guides/BACKEND_TABLE_MAPPING.md 与当前 backend 真实表名进行整编,字段以“数据库专项设计阶段需重点关注的核心字段”为主,不再延续旧稿中的 customer_* 系列表命名。
biz_cust (客户主档表)
| 字段名 |
说明 |
id |
主键 |
code |
客户编号 |
name |
客户名称 |
cust_type |
客户类型 |
id_type / id_no |
证件类型 / 证件号码 |
mobile / address |
联系电话 / 地址 |
dept_code |
所属营业部门 |
status |
客户状态 |
tenant_id |
租户编号 |
biz_account (客户账户表)
| 字段名 |
说明 |
id |
主键 |
code |
账户编号 |
cust_id |
客户主档 ID |
balance |
账户余额 |
arrears_amount |
欠费金额 |
account_status |
账户状态 |
tenant_id |
租户编号 |
biz_cust_contact (客户联系人表)
| 字段名 |
说明 |
id |
主键 |
cust_id |
客户主档 ID |
name |
联系人姓名 |
mobile |
联系电话 |
contact_type |
联系人类型 |
is_default |
是否默认联系人 |
biz_cust_group (客户分组表)
| 字段名 |
说明 |
id |
主键 |
code |
分组编码 |
name |
分组名称 |
parent_id |
上级分组 |
status |
状态 |
biz_cust_meter (客户与水表关系表)
| 字段名 |
说明 |
id |
主键 |
cust_id |
客户主档 ID |
meter_id |
水表主档 ID |
bind_type |
绑定类型 |
is_main |
是否主表 |
status |
关系状态 |
biz_cust_invoice (客户开票信息表)
| 字段名 |
说明 |
id |
主键 |
cust_id |
客户主档 ID |
invoice_title |
开票抬头 |
tax_no |
纳税人识别号 |
email |
发票接收邮箱 |
mobile |
联系手机号 |
biz_cust_app_binds (客户应用绑定表)
| 字段名 |
说明 |
id |
主键 |
cust_id |
客户主档 ID |
app_type |
应用类型 |
app_user_id |
外部应用用户标识 |
status |
绑定状态 |
biz_cust_collection_rel / biz_cust_withholding_rel (托收/代扣关系表)
| 表名 |
关键字段 |
说明 |
biz_cust_collection_rel |
cust_id, collection_id, status |
客户与托收关系 |
biz_cust_withholding_rel |
cust_id, withholding_id, status |
客户与代扣关系 |
biz_cust_water_use_scheme / biz_cust_water_scheme_rel (用水方案关系表)
| 表名 |
关键字段 |
说明 |
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 / biz_cust_hub_marks (客户编号与集抄标识表)
| 表名 |
关键字段 |
说明 |
biz_cust_no_rule |
rule_code, prefix, dept_code, status |
客户编号规则 |
biz_cust_hub_marks |
cust_id, hub_code, mark_type |
集抄/枢纽标识 |
SYS-002 抄表、水表与价格支撑表 (biz_meter* / biz_reading_* / biz_price_*)
biz_meter (水表主档表)
| 字段名 |
说明 |
id |
主键 |
code |
水表编号 |
meter_no |
出厂表号 |
maker_code / model_code |
厂家 / 型号 |
caliber_code / range_code |
口径 / 量程 |
install_address |
安装地址 |
meter_status |
水表状态 |
tenant_id |
租户编号 |
biz_meter_book (抄表册本表)
| 字段名 |
说明 |
id |
主键 |
code |
册本编号 |
name |
册本名称 |
dept_code |
所属部门 |
reader_user |
抄表员 |
reading_cycle |
抄表周期 |
status |
册本状态 |
biz_meter_read (抄表任务/状态表)
| 字段名 |
说明 |
id |
主键 |
book_id |
册本 ID |
cust_id |
客户 ID |
meter_id |
水表 ID |
read_period |
抄表期间 |
read_status |
抄表状态 |
read_type |
抄表方式 |
biz_reading_data (抄表数据表)
| 字段名 |
说明 |
id |
主键 |
meter_read_id |
抄表任务 ID |
last_reading |
上次读数 |
current_reading |
本次读数 |
water_usage |
用水量 |
read_time |
抄见时间 |
photo_url |
抄表照片 |
biz_last_reading / biz_reading_logs (上次读数与抄表日志)
| 表名 |
关键字段 |
说明 |
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 |
超计划规则 |
SYS-002 开账、收费与票据表 (biz_charge* / biz_collection / biz_withholding / biz_invoice*)
biz_charge (营业账主表)
| 字段名 |
说明 |
id |
主键 |
code |
账单编号 |
cust_id |
客户 ID |
record_id |
抄表记录或开账来源 ID |
bill_period |
账单期间 |
total_amount |
账单总金额 |
charge_status |
收费状态 |
due_date |
应缴日期 |
biz_charge_detail (营业账明细表)
| 字段名 |
说明 |
id |
主键 |
charge_id |
营业账主表 ID |
cost_component_code |
费用组成代码 |
usage_amount |
用量 |
unit_price |
单价 |
detail_amount |
明细金额 |
REV-002 账单生成承接口径
| 对象 |
正式口径 |
承接说明 |
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 / biz_withholding (托收与代扣主表)
| 表名 |
关键字段 |
说明 |
biz_collection |
code, cust_id, charge_id, collection_status |
托收主表 |
biz_withholding |
code, cust_id, charge_id, withholding_status |
代扣主表 |
biz_invoice / biz_invoice_taxrate (发票主表与税率表)
| 表名 |
关键字段 |
说明 |
biz_invoice |
code, cust_id, charge_id, invoice_status, invoice_amount |
发票主表,统一承接申请单号、账单关联、受理号、开票结果与电子票地址等核心状态 |
biz_invoice_taxrate |
tax_code, tax_name, tax_rate, status |
税率基础配置 |
REV-005 发票承接口径
| 对象 |
已有字段 |
待补字段 |
仅快照/历史只读字段 |
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_operat_log_detail (操作留痕表)
| 表名 |
关键字段 |
说明 |
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_* 在线主模型。
- 对 backend 当前未识别到独立实体表的旧细粒度台账,仅写为“历史只读查询对象”,不误写为“已存在新在线表”。
- 历史只读对象必须保留原系统关键标识(原单号、原客户号、原批次号或原附件标识)以支撑迁移验收与问题追溯。
- 涉及历史附件、影像、高拍仪资料时,正式数据库设计只约束“资料元数据 + 文件引用”口径,不在本轮臆造新的文件表族。
REV-006 的正式结果状态按 PENDING、SUCCESS、FAIL、MANUAL_VERIFIED 四态统一,数据库设计仅约束查询与追溯口径,不反推为已存在独立催缴结果主表。
- 停复水、复水和工单处置在本轮仅保留“关联引用 + 状态摘要 + 建链时间”三类追溯字段要求,不展开下游业务表设计。
SYS-002 业务办理与资料表 (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 |
办理附件表 |
SYS-002 银行代收与结算表 (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_* 表族已形成较完整的对象承接口径,且签约、解约、交易流水与后台资源管理具备明确实现证据;但送盘、回盘、对账、结算等业务编排仍缺少完整闭环与统一迁移证据,数据库专项不得据此倒推出“银行协同已全部落地”。
METER/INST 专题表边界
本章节用于收敛 SYS-002 主表之外、但在详细设计与附录中反复出现的表务与报装签章专题表口径,避免“主文档未覆盖、分文档各写一套”。
METER 专题(表务管理)
实现态(当前主库口径)
| 表名 |
角色定位 |
说明 |
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_* 仅用于历史资料追溯,不作为当前正式交付主口径。
INST 专题(报装与签章)
实现态(当前主库口径)
| 表名 |
角色定位 |
说明 |
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_* 来源于报装签章专项设计与附录,当前在数据库主文档按“专题扩展”纳管。若实施库落地结构与本表不一致,以实施库与主详设联合评审结果为准。
子系统5: 客户服务数据表(复用 SYS-002 主数据)
客户服务模块本身不再单独维护旧稿中分散的平行表模型,而是以 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 主业务表并接收外部服务回写结果,不再单列一套平行客户服务数据库模型。
子系统6: 手机抄表APP数据表
手机抄表APP为抄表员和外勤人员提供移动作业工具,支持离线操作,提升现场工作效率。
点击展开/折叠手机抄表APP表详情
移动端表 (mobile_*)
mobile_user_session (移动端用户会话表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_user_cache (移动端用户缓存表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_login_log (移动端登录日志表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_reading_task (移动端抄表任务表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_reading_record (移动端抄表记录表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_task_progress (移动端任务进度表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_data_cache (移动端数据缓存表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_problem_report (移动端问题上报表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_work_order (移动端工单表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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个表:
mobile_user_cache (移动端用户缓存表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| user_id |
bigint |
N |
|
用户ID,关联system_users.id |
| device_id |
varchar(100) |
N |
|
设备唯一标识 |
| cache_data |
longtext |
Y |
|
缓存数据(JSON格式) |
| cache_type |
varchar(50) |
N |
|
缓存类型:user_info、task_data、config_data |
| expire_time |
datetime |
Y |
|
过期时间 |
| version |
int |
N |
1 |
版本号,用于数据同步 |
| create_time |
datetime |
N |
CURRENT_TIMESTAMP |
创建时间 |
| update_time |
datetime |
N |
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
更新时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| updater |
varchar(64) |
Y |
|
更新者 |
| deleted |
tinyint |
N |
0 |
是否删除:0-未删除,1-已删除 |
| tenant_id |
bigint |
N |
0 |
租户ID |
mobile_search_history (移动端搜索历史表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| user_id |
bigint |
N |
|
用户ID,关联system_users.id |
| search_keyword |
varchar(200) |
N |
|
搜索关键词 |
| search_type |
varchar(50) |
N |
|
搜索类型:customer、meter、address |
| search_result_count |
int |
N |
0 |
搜索结果数量 |
| search_time |
datetime |
N |
CURRENT_TIMESTAMP |
搜索时间 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| create_time |
datetime |
N |
CURRENT_TIMESTAMP |
创建时间 |
| update_time |
datetime |
N |
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
更新时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| updater |
varchar(64) |
Y |
|
更新者 |
| deleted |
tinyint |
N |
0 |
是否删除:0-未删除,1-已删除 |
| tenant_id |
bigint |
N |
0 |
租户ID |
mobile_task_sync (移动端任务同步表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| user_id |
bigint |
N |
|
用户ID,关联system_users.id |
| task_id |
bigint |
N |
|
任务ID,关联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 |
mobile_work_attachment (移动端工单附件表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| 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 |
mobile_app_config (移动端应用配置表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| user_id |
bigint |
N |
|
用户ID,关联system_users.id |
| config_key |
varchar(100) |
N |
|
配置项键名 |
| config_value |
text |
Y |
|
配置项值 |
| config_type |
varchar(50) |
N |
|
配置类型:system、user、app |
| config_description |
varchar(500) |
Y |
|
配置描述 |
| is_active |
tinyint |
N |
1 |
是否启用:0-禁用,1-启用 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| create_time |
datetime |
N |
CURRENT_TIMESTAMP |
创建时间 |
| update_time |
datetime |
N |
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
更新时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| updater |
varchar(64) |
Y |
|
更新者 |
| deleted |
tinyint |
N |
0 |
是否删除:0-未删除,1-已删除 |
| tenant_id |
bigint |
N |
0 |
租户ID |
移动端表设计优化说明
设计原则
根据系统架构设计原则,移动端优先使用Web端已有的数据表,避免重复建表,确保数据一致性和降低维护成本。
表复用策略
复用Web端表(10个)
移动端直接复用以下Web端已有表:
| 表名 |
用途说明 |
备注 |
system_users |
用户基本信息表 |
复用Web端用户管理 |
system_login_log |
登录日志表 |
扩展设备类型字段记录移动端登录 |
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 端账务信息 |
移动端特有表(5个)
仅保留移动端特有的功能表:
| 表名 |
用途说明 |
特有原因 |
mobile_user_cache |
移动端用户缓存表 |
用于离线缓存,移动端特有需求 |
mobile_search_history |
移动端搜索历史表 |
移动端搜索记录管理 |
mobile_task_sync |
移动端任务同步表 |
离线任务管理,移动端特有 |
mobile_work_attachment |
移动端工单附件表 |
现场附件管理,移动端特有 |
mobile_app_config |
移动端应用配置表 |
个性化设置,移动端特有 |
优化效果
- 减少冗余:避免了15+个重复表的创建
- 提升一致性:移动端和Web端共享核心业务数据
- 降低维护成本:统一的数据模型减少维护复杂度
- 符合架构原则:遵循DRY(Don't Repeat Yourself)原则
数据同步策略
- 实时同步:共用表自然保证数据一致性
- 离线缓存:移动端特有表支持离线操作
- 冲突处理:通过时间戳和版本控制处理数据冲突
视图的设计
数据库ER图设计
系统核心表关系图
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
}
业务视图设计
为简化复杂查询和报表统计,设计以下视图:
v_price_info (价格信息视图)
综合展示价格体系信息,包含价格归属、费用组成、调整历史等。
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;
v_meter_info (水表信息视图)
整合水表主档、厂家、型号、口径等基础信息,服务于册本分配、现场抄表和档案查询。
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;
v_dept_hierarchy (部门层级视图)
展示完整的组织架构层级关系。
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;
统计分析视图
v_tenant_summary (租户汇总视图)
按租户维度统计各类数据。
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 统计承接口径
设计定位
REV-007 以在线业务主数据聚合、视图或汇总口径支撑经营统计查询,不在本轮确认独立统计仓库、离线批处理表或专题分析表族。
- 统计结果必须能够追溯到现有客户、账单、收费、交易、抄表和组织维度数据来源。
- 当前数据库主文档仅约束“统计查询如何承接”,不反推 backend 已存在专门统计模块或已固化全部统计视图。
最小统计主题承接口径
| 统计主题 |
主数据来源 |
最低维度要求 |
最低指标要求 |
承接方式 |
| 营收汇总 |
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 |
抄表周期、册本、片区、人员 |
应抄户数、已抄户数、完成率 |
在线聚合 / 汇总口径 |
设计约束
- 统计查询可以由视图、临时汇总结果或聚合 SQL 承接,但未确认存在的
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;
数据归档策略
日志数据归档
- 保留策略: 在线保留3个月,历史数据转移到归档表
- 归档周期: 每月执行一次归档作业
- 存储方式: 使用列式存储优化查询性能
历史数据处理
-- 创建归档表
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操作,特别是对敏感数据的访问和修改。