福建水务营收系统数据库设计说明书
章节导航(精简)
文件状态:
文档密级:
公开
【 】草稿
【 】修改稿
【√】正式发布
当前版本:
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
字段名
类型
是否可空
默认值
注释
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
租户编号
字段名
说明
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操作,特别是对敏感数据的访问和修改。