fujian_water_biz_doc/output/12_REV_Detailed.html

1300 lines
78 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="系统设计团队" />
<title>福建水务营收系统-营收业务模块正文</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
<link rel="stylesheet" href="output/document_style.css" />
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<header id="title-block-header">
<h1 class="title">福建水务营收系统-营收业务模块正文</h1>
<p class="author">系统设计团队</p>
<p class="date">2024年12月19日</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#福建水务营收系统详细设计-营收业务模块正文"
id="toc-福建水务营收系统详细设计-营收业务模块正文"><span
class="toc-section-number">1</span>
福建水务营收系统详细设计-营收业务模块正文</a>
<ul>
<li><a href="#章节导航精简" id="toc-章节导航精简"><span
class="toc-section-number">1.1</span> 章节导航(精简)</a></li>
<li><a href="#文档定位" id="toc-文档定位"><span
class="toc-section-number">1.2</span> 文档定位</a></li>
</ul></li>
<li><a href="#营收业务详细设计" id="toc-营收业务详细设计"><span
class="toc-section-number">2</span> 营收业务详细设计</a>
<ul>
<li><a href="#营收模块统一约束" id="toc-营收模块统一约束"><span
class="toc-section-number">2.1</span> 营收模块统一约束</a></li>
<li><a href="#接口与数据追溯矩阵" id="toc-接口与数据追溯矩阵"><span
class="toc-section-number">2.2</span> 接口与数据追溯矩阵</a></li>
<li><a href="#rev-001-客户资料管理" id="toc-rev-001-客户资料管理"><span
class="toc-section-number">2.3</span> REV-001 客户资料管理</a>
<ul>
<li><a href="#功能说明" id="toc-功能说明"><span
class="toc-section-number">2.3.1</span> 功能说明</a></li>
<li><a href="#关键设计" id="toc-关键设计"><span
class="toc-section-number">2.3.2</span> 关键设计</a></li>
<li><a href="#核心数据" id="toc-核心数据"><span
class="toc-section-number">2.3.3</span> 核心数据</a></li>
<li><a href="#迁移补充旧系统承接" id="toc-迁移补充旧系统承接"><span
class="toc-section-number">2.3.4</span> 迁移补充(旧系统承接)</a>
<ul>
<li><a href="#定额共享" id="toc-定额共享"><span
class="toc-section-number">2.3.4.1</span> 定额共享</a></li>
<li><a href="#定额核定" id="toc-定额核定"><span
class="toc-section-number">2.3.4.2</span> 定额核定</a></li>
<li><a href="#批量修改" id="toc-批量修改"><span
class="toc-section-number">2.3.4.3</span> 批量修改</a></li>
</ul></li>
<li><a href="#接口映射" id="toc-接口映射"><span
class="toc-section-number">2.3.5</span> 接口映射</a></li>
<li><a href="#落地边界" id="toc-落地边界"><span
class="toc-section-number">2.3.6</span> 落地边界</a></li>
</ul></li>
<li><a href="#rev-002-抄表开账" id="toc-rev-002-抄表开账"><span
class="toc-section-number">2.4</span> REV-002 抄表开账</a>
<ul>
<li><a href="#功能说明-1" id="toc-功能说明-1"><span
class="toc-section-number">2.4.1</span> 功能说明</a></li>
<li><a href="#业务流程" id="toc-业务流程"><span
class="toc-section-number">2.4.2</span> 业务流程</a></li>
<li><a href="#关键规则" id="toc-关键规则"><span
class="toc-section-number">2.4.3</span> 关键规则</a></li>
<li><a href="#开账触发与结果表达" id="toc-开账触发与结果表达"><span
class="toc-section-number">2.4.4</span> 开账触发与结果表达</a></li>
<li><a href="#核心数据-1" id="toc-核心数据-1"><span
class="toc-section-number">2.4.5</span> 核心数据</a></li>
<li><a href="#迁移补充旧系统承接-1" id="toc-迁移补充旧系统承接-1"><span
class="toc-section-number">2.4.6</span> 迁移补充(旧系统承接)</a>
<ul>
<li><a href="#特殊开账" id="toc-特殊开账"><span
class="toc-section-number">2.4.6.1</span> 特殊开账</a></li>
<li><a href="#开账记录迁移" id="toc-开账记录迁移"><span
class="toc-section-number">2.4.6.2</span> 开账记录迁移</a></li>
</ul></li>
<li><a href="#接口映射-1" id="toc-接口映射-1"><span
class="toc-section-number">2.4.7</span> 接口映射</a></li>
<li><a href="#落地边界-1" id="toc-落地边界-1"><span
class="toc-section-number">2.4.8</span> 落地边界</a></li>
</ul></li>
<li><a href="#rev-003-营业收费" id="toc-rev-003-营业收费"><span
class="toc-section-number">2.5</span> REV-003 营业收费</a>
<ul>
<li><a href="#功能说明-2" id="toc-功能说明-2"><span
class="toc-section-number">2.5.1</span> 功能说明</a></li>
<li><a href="#业务流程-1" id="toc-业务流程-1"><span
class="toc-section-number">2.5.2</span> 业务流程</a></li>
<li><a href="#关键规则-1" id="toc-关键规则-1"><span
class="toc-section-number">2.5.3</span> 关键规则</a></li>
<li><a href="#核心数据-2" id="toc-核心数据-2"><span
class="toc-section-number">2.5.4</span> 核心数据</a></li>
<li><a href="#迁移补充旧系统承接-2" id="toc-迁移补充旧系统承接-2"><span
class="toc-section-number">2.5.5</span> 迁移补充(旧系统承接)</a>
<ul>
<li><a href="#柜台结账" id="toc-柜台结账"><span
class="toc-section-number">2.5.5.1</span> 柜台结账</a></li>
<li><a href="#账单打印服务" id="toc-账单打印服务"><span
class="toc-section-number">2.5.5.2</span> 账单打印服务</a></li>
<li><a href="#红冲记录" id="toc-红冲记录"><span
class="toc-section-number">2.5.5.3</span> 红冲记录</a></li>
</ul></li>
<li><a href="#接口映射-2" id="toc-接口映射-2"><span
class="toc-section-number">2.5.6</span> 接口映射</a></li>
<li><a href="#落地边界-2" id="toc-落地边界-2"><span
class="toc-section-number">2.5.7</span> 落地边界</a></li>
</ul></li>
<li><a href="#rev-004-账务处理" id="toc-rev-004-账务处理"><span
class="toc-section-number">2.6</span> REV-004 账务处理</a>
<ul>
<li><a href="#功能说明-3" id="toc-功能说明-3"><span
class="toc-section-number">2.6.1</span> 功能说明</a></li>
<li><a href="#业务流程-2" id="toc-业务流程-2"><span
class="toc-section-number">2.6.2</span> 业务流程</a></li>
<li><a href="#关键规则-2" id="toc-关键规则-2"><span
class="toc-section-number">2.6.3</span> 关键规则</a></li>
<li><a href="#核心数据-3" id="toc-核心数据-3"><span
class="toc-section-number">2.6.4</span> 核心数据</a></li>
<li><a href="#主要场景" id="toc-主要场景"><span
class="toc-section-number">2.6.5</span> 主要场景</a></li>
<li><a href="#迁移补充旧系统承接-3" id="toc-迁移补充旧系统承接-3"><span
class="toc-section-number">2.6.6</span> 迁移补充(旧系统承接)</a></li>
<li><a href="#接口映射-3" id="toc-接口映射-3"><span
class="toc-section-number">2.6.7</span> 接口映射</a></li>
<li><a href="#落地边界-3" id="toc-落地边界-3"><span
class="toc-section-number">2.6.8</span> 落地边界</a></li>
</ul></li>
<li><a href="#rev-005-发票与税务处理"
id="toc-rev-005-发票与税务处理"><span
class="toc-section-number">2.7</span> REV-005 发票与税务处理</a>
<ul>
<li><a href="#功能说明-4" id="toc-功能说明-4"><span
class="toc-section-number">2.7.1</span> 功能说明</a></li>
<li><a href="#业务流程-3" id="toc-业务流程-3"><span
class="toc-section-number">2.7.2</span> 业务流程</a></li>
<li><a href="#状态说明" id="toc-状态说明"><span
class="toc-section-number">2.7.3</span> 状态说明</a></li>
<li><a href="#关键规则-3" id="toc-关键规则-3"><span
class="toc-section-number">2.7.4</span> 关键规则</a></li>
<li><a href="#后台申请入口与校验补充"
id="toc-后台申请入口与校验补充"><span
class="toc-section-number">2.7.5</span> 后台申请入口与校验补充</a></li>
<li><a href="#sys-008-异步协同与查询补偿"
id="toc-sys-008-异步协同与查询补偿"><span
class="toc-section-number">2.7.6</span> SYS-008
异步协同与查询补偿</a></li>
<li><a href="#终态保护与异常核查" id="toc-终态保护与异常核查"><span
class="toc-section-number">2.7.7</span> 终态保护与异常核查</a></li>
<li><a href="#结果回写账单关联与客户侧消费"
id="toc-结果回写账单关联与客户侧消费"><span
class="toc-section-number">2.7.8</span>
结果回写、账单关联与客户侧消费</a></li>
<li><a href="#核心数据-4" id="toc-核心数据-4"><span
class="toc-section-number">2.7.9</span> 核心数据</a></li>
<li><a href="#迁移补充旧系统承接-4" id="toc-迁移补充旧系统承接-4"><span
class="toc-section-number">2.7.10</span> 迁移补充(旧系统承接)</a></li>
<li><a href="#接口映射-4" id="toc-接口映射-4"><span
class="toc-section-number">2.7.11</span> 接口映射</a></li>
<li><a href="#落地边界-4" id="toc-落地边界-4"><span
class="toc-section-number">2.7.12</span> 落地边界</a></li>
</ul></li>
<li><a href="#rev-006-催缴与通知" id="toc-rev-006-催缴与通知"><span
class="toc-section-number">2.8</span> REV-006 催缴与通知</a>
<ul>
<li><a href="#功能说明-5" id="toc-功能说明-5"><span
class="toc-section-number">2.8.1</span> 功能说明</a></li>
<li><a href="#业务流程-4" id="toc-业务流程-4"><span
class="toc-section-number">2.8.2</span> 业务流程</a></li>
<li><a href="#关键规则-4" id="toc-关键规则-4"><span
class="toc-section-number">2.8.3</span> 关键规则</a>
<ul>
<li><a href="#催缴对象筛选排除与频控边界"
id="toc-催缴对象筛选排除与频控边界"><span
class="toc-section-number">2.8.3.1</span>
催缴对象筛选、排除与频控边界</a></li>
</ul></li>
<li><a href="#核心数据-5" id="toc-核心数据-5"><span
class="toc-section-number">2.8.4</span> 核心数据</a>
<ul>
<li><a href="#催缴对象与规则摘要" id="toc-催缴对象与规则摘要"><span
class="toc-section-number">2.8.4.1</span> 催缴对象与规则摘要</a></li>
<li><a href="#四态与人工核查边界" id="toc-四态与人工核查边界"><span
class="toc-section-number">2.8.4.2</span> 四态与人工核查边界</a></li>
</ul></li>
<li><a href="#迁移补充旧系统承接-5" id="toc-迁移补充旧系统承接-5"><span
class="toc-section-number">2.8.5</span> 迁移补充(旧系统承接)</a>
<ul>
<li><a href="#催缴记录" id="toc-催缴记录"><span
class="toc-section-number">2.8.5.1</span> 催缴记录</a></li>
<li><a href="#停水记录" id="toc-停水记录"><span
class="toc-section-number">2.8.5.2</span> 停水记录</a></li>
<li><a href="#预存短信" id="toc-预存短信"><span
class="toc-section-number">2.8.5.3</span> 预存短信</a></li>
</ul></li>
<li><a href="#接口映射-5" id="toc-接口映射-5"><span
class="toc-section-number">2.8.6</span> 接口映射</a></li>
<li><a href="#落地边界-5" id="toc-落地边界-5"><span
class="toc-section-number">2.8.7</span> 落地边界</a></li>
</ul></li>
<li><a href="#rev-007-统计分析" id="toc-rev-007-统计分析"><span
class="toc-section-number">2.9</span> REV-007 统计分析</a>
<ul>
<li><a href="#功能说明-6" id="toc-功能说明-6"><span
class="toc-section-number">2.9.1</span> 功能说明</a></li>
<li><a href="#关键设计-1" id="toc-关键设计-1"><span
class="toc-section-number">2.9.2</span> 关键设计</a></li>
<li><a href="#核心数据-6" id="toc-核心数据-6"><span
class="toc-section-number">2.9.3</span> 核心数据</a>
<ul>
<li><a href="#统计主题与口径摘要" id="toc-统计主题与口径摘要"><span
class="toc-section-number">2.9.3.1</span> 统计主题与口径摘要</a></li>
</ul></li>
<li><a href="#接口映射-6" id="toc-接口映射-6"><span
class="toc-section-number">2.9.4</span> 接口映射</a></li>
<li><a href="#落地边界-6" id="toc-落地边界-6"><span
class="toc-section-number">2.9.5</span> 落地边界</a></li>
</ul></li>
<li><a href="#rev-008-代收与银行业务"
id="toc-rev-008-代收与银行业务"><span
class="toc-section-number">2.10</span> REV-008 代收与银行业务</a>
<ul>
<li><a href="#功能说明-7" id="toc-功能说明-7"><span
class="toc-section-number">2.10.1</span> 功能说明</a></li>
<li><a href="#业务流程-5" id="toc-业务流程-5"><span
class="toc-section-number">2.10.2</span> 业务流程</a></li>
<li><a href="#关键规则-5" id="toc-关键规则-5"><span
class="toc-section-number">2.10.3</span> 关键规则</a></li>
<li><a href="#核心数据-7" id="toc-核心数据-7"><span
class="toc-section-number">2.10.4</span> 核心数据</a>
<ul>
<li><a href="#文件传输配置与审计补充"
id="toc-文件传输配置与审计补充"><span
class="toc-section-number">2.10.4.1</span>
文件传输配置与审计补充</a></li>
</ul></li>
<li><a href="#迁移补充旧系统承接-6" id="toc-迁移补充旧系统承接-6"><span
class="toc-section-number">2.10.5</span> 迁移补充(旧系统承接)</a>
<ul>
<li><a href="#银行托收" id="toc-银行托收"><span
class="toc-section-number">2.10.5.1</span> 银行托收</a></li>
<li><a href="#实时收费查询与对账" id="toc-实时收费查询与对账"><span
class="toc-section-number">2.10.5.2</span> 实时收费查询与对账</a></li>
<li><a href="#当前实现对齐说明" id="toc-当前实现对齐说明"><span
class="toc-section-number">2.10.5.3</span> 当前实现对齐说明</a></li>
</ul></li>
<li><a href="#接口映射-7" id="toc-接口映射-7"><span
class="toc-section-number">2.10.6</span> 接口映射</a></li>
<li><a href="#落地边界-7" id="toc-落地边界-7"><span
class="toc-section-number">2.10.7</span> 落地边界</a></li>
</ul></li>
<li><a href="#rev-009-业务参数配置" id="toc-rev-009-业务参数配置"><span
class="toc-section-number">2.11</span> REV-009 业务参数配置</a>
<ul>
<li><a href="#功能说明-8" id="toc-功能说明-8"><span
class="toc-section-number">2.11.1</span> 功能说明</a></li>
<li><a href="#关键设计-2" id="toc-关键设计-2"><span
class="toc-section-number">2.11.2</span> 关键设计</a></li>
<li><a href="#核心数据-8" id="toc-核心数据-8"><span
class="toc-section-number">2.11.3</span> 核心数据</a></li>
<li><a href="#迁移补充旧系统承接-7" id="toc-迁移补充旧系统承接-7"><span
class="toc-section-number">2.11.4</span> 迁移补充(旧系统承接)</a></li>
<li><a href="#接口映射-8" id="toc-接口映射-8"><span
class="toc-section-number">2.11.5</span> 接口映射</a></li>
<li><a href="#落地边界-8" id="toc-落地边界-8"><span
class="toc-section-number">2.11.6</span> 落地边界</a></li>
</ul></li>
</ul></li>
</ul>
</nav>
<h1 data-number="1" id="福建水务营收系统详细设计-营收业务模块正文"><span
class="header-section-number">1</span>
福建水务营收系统详细设计-营收业务模块正文</h1>
<h2 data-number="1.1" id="章节导航精简"><span
class="header-section-number">1.1</span> 章节导航(精简)</h2>
<ul>
<li><a href="#sec-position">文档定位</a></li>
<li><a href="#sec-content">营收业务详细设计正文</a>
<ul>
<li><a href="#sec-rev-rules">营收模块统一约束</a></li>
<li><a href="#sec-rev-trace">接口与数据追溯矩阵</a></li>
<li><a href="#mod-rev-001">REV-001 客户资料管理</a></li>
<li><a href="#mod-rev-002">REV-002 抄表开账</a></li>
<li><a href="#mod-rev-003">REV-003 营业收费</a></li>
<li><a href="#mod-rev-004">REV-004 账务处理</a></li>
<li><a href="#mod-rev-005">REV-005 发票与税务处理</a></li>
<li><a href="#mod-rev-006">REV-006 催缴与通知</a></li>
<li><a href="#mod-rev-007">REV-007 统计分析</a></li>
<li><a href="#mod-rev-008">REV-008 代收与银行业务</a></li>
<li><a href="#mod-rev-009">REV-009 业务参数配置</a></li>
</ul></li>
</ul>
<p><a id="sec-position"></a></p>
<h2 data-number="1.2" id="文档定位"><span
class="header-section-number">1.2</span> 文档定位</h2>
<p>本文档为 <code>01_Detailed_Design.md</code>
中“营收业务详细设计”章节的模块正文拆分稿,便于按模块独立维护。正式交付口径以主详设为准。</p>
<p><a id="sec-content"></a></p>
<h1 data-number="2" id="营收业务详细设计"><span
class="header-section-number">2</span> 营收业务详细设计</h1>
<p><a id="sec-rev-rules"></a></p>
<h2 data-number="2.1" id="营收模块统一约束"><span
class="header-section-number">2.1</span> 营收模块统一约束</h2>
<ol type="1">
<li><code>SYS-002</code>
负责营收主流程,发票、支付结算、消息触达分别通过
<code>SYS-008</code><code>SYS-009</code><code>SYS-010</code>
协同完成,外部系统仅回写结果状态。</li>
<li>账单、收费、发票、代扣等关键状态变更必须通过业务流程驱动,不允许绕过业务校验直接改写主业务对象。</li>
<li>幂等控制遵循接口主键约束:支付以业务订单号为主,发票以申请单号或账单组合为主,代扣以批次号为主,消息以业务事件号为主。</li>
<li>账务调整、发票申请、催缴触达、银行批次下发等关键动作必须写入操作留痕,满足审计与问题追踪要求。</li>
<li>数据口径统一采用 <code>biz_*</code><code>bk_*</code>
命名体系,历史命名仅用于追溯,不作为本章节正式设计口径。</li>
</ol>
<p><a id="sec-rev-trace"></a></p>
<h2 data-number="2.2" id="接口与数据追溯矩阵"><span
class="header-section-number">2.2</span> 接口与数据追溯矩阵</h2>
<blockquote>
<p>说明:详细字段与报文以
<code>../03_Technical_Design/03_Interface_Design.md</code>
为准,数据库字段口径以
<code>../03_Technical_Design/01_Database_Design.md</code> 为准。</p>
</blockquote>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr>
<th>REV 模块</th>
<th>关键接口</th>
<th>核心数据域(摘要)</th>
<th>主要协同对象</th>
</tr>
</thead>
<tbody>
<tr>
<td>REV-001 客户资料管理</td>
<td><code>IF-REV-001</code></td>
<td><code>biz_cust</code><code>biz_account</code><code>biz_cust_*</code></td>
<td>客户服务模块、报装模块</td>
</tr>
<tr>
<td>REV-002 抄表开账</td>
<td><code>IF-REV-004</code><code>IF-REV-005</code></td>
<td><code>biz_meter_book</code><code>biz_meter_read</code><code>biz_reading_*</code><code>biz_charge*</code></td>
<td>抄表APP、物联网集抄</td>
</tr>
<tr>
<td>REV-003 营业收费</td>
<td><code>IF-REV-006</code></td>
<td><code>biz_charge*</code><code>biz_collection</code><code>bk_transaction*</code></td>
<td><code>SYS-009</code></td>
</tr>
<tr>
<td>REV-004 账务处理</td>
<td><code>IF-REV-007</code></td>
<td><code>biz_charge*</code><code>biz_operat_log*</code></td>
<td>财务与营业人员</td>
</tr>
<tr>
<td>REV-005 发票与税务处理</td>
<td><code>IF-REV-008</code></td>
<td><code>biz_invoice*</code><code>biz_cust_invoice</code></td>
<td><code>SYS-008</code></td>
</tr>
<tr>
<td>REV-006 催缴与通知</td>
<td><code>IF-REV-013</code></td>
<td><code>biz_charge*</code>、催缴结果留痕</td>
<td><code>SYS-010</code></td>
</tr>
<tr>
<td>REV-007 统计分析</td>
<td><code>IF-REV-010</code></td>
<td>客户、抄表、收费、渠道聚合对象</td>
<td>统计分析端</td>
</tr>
<tr>
<td>REV-008 代收与银行业务</td>
<td><code>IF-REV-011</code></td>
<td><code>bk_withholding_*</code><code>bk_reconcile_*</code><code>bk_settlement_*</code></td>
<td><code>SYS-009</code>、银行</td>
</tr>
<tr>
<td>REV-009 业务参数配置</td>
<td><code>IF-REV-012</code></td>
<td><code>biz_parameter_settings</code><code>biz_page_settings*</code><code>biz_price_*</code></td>
<td>统一平台、营收模块</td>
</tr>
</tbody>
</table>
<p><a id="mod-rev-001"></a></p>
<h2 data-number="2.3" id="rev-001-客户资料管理"><span
class="header-section-number">2.3</span> REV-001 客户资料管理</h2>
<h3 data-number="2.3.1" id="功能说明"><span
class="header-section-number">2.3.1</span> 功能说明</h3>
<p>负责客户主档、账户主档、联系人、客户分组、客户与水表关系、客户开票信息、客户渠道绑定及托收/代扣关系维护,是抄表、收费、发票、代扣等后续业务的主数据基础。</p>
<h3 data-number="2.3.2" id="关键设计"><span
class="header-section-number">2.3.2</span> 关键设计</h3>
<ol type="1">
<li>客户建档覆盖立户、变更、更名、过户、销户、报停等全生命周期处理。</li>
<li>客户资料支持按客户类型、用水性质、片区、集团客户、重点客户等维度管理。</li>
<li>客户与水表、开票主体、托收/代扣签约关系按关联表维护,避免在主表中堆叠多类属性。</li>
<li>客户编号、集收标记、计划用水方案等规则类数据由统一配置与客户关系表共同支撑。</li>
</ol>
<h3 data-number="2.3.3" id="核心数据"><span
class="header-section-number">2.3.3</span> 核心数据</h3>
<ul>
<li><code>biz_cust</code>:客户主档。</li>
<li><code>biz_account</code>:客户账户与账户状态。</li>
<li><code>biz_cust_contact</code>:联系人及联系方式。</li>
<li><code>biz_cust_group</code>:客户分组。</li>
<li><code>biz_cust_meter</code>:客户与水表绑定关系。</li>
<li><code>biz_cust_invoice</code>:客户开票信息。</li>
<li><code>biz_cust_app_binds</code>:渠道绑定关系。</li>
<li><code>biz_cust_collection_rel</code>:客户托收关系。</li>
<li><code>biz_cust_withholding_rel</code>:客户代扣关系。</li>
<li><code>biz_cust_water_use_scheme</code><code>biz_cust_water_scheme_rel</code>:客户计划用水方案关系。</li>
<li><code>biz_cust_no_rule</code>:客户编号规则。</li>
<li><code>biz_cust_hub_marks</code>:集收号/集收标记关系。</li>
</ul>
<h3 data-number="2.3.4" id="迁移补充旧系统承接"><span
class="header-section-number">2.3.4</span> 迁移补充(旧系统承接)</h3>
<h4 data-number="2.3.4.1" id="定额共享"><span
class="header-section-number">2.3.4.1</span> 定额共享</h4>
<ul>
<li>旧系统在“客户资料”下提供定额主客户、子客户绑定与共享清单管理能力。</li>
<li>当前正式设计不新增并行主模型,统一归入客户与计划用水方案关系对象承接。</li>
<li>迁移时必须至少保留主客户、子客户、绑定状态、生效时间、解除时间、备注与操作留痕,确保共享清单可查询、可解绑、可追溯。</li>
</ul>
<h4 data-number="2.3.4.2" id="定额核定"><span
class="header-section-number">2.3.4.2</span> 定额核定</h4>
<ul>
<li>旧系统支持对已建立共享关系的客户执行定额核定、撤销核定和共享清单联查。</li>
<li>当前建议以客户关系对象和计划用水方案关系为主承接核定结果,不额外发明独立账务主表。</li>
<li>核定结果迁移后应支持按客户、站点、核定状态、核定时间查询,并保留核定依据、操作人和变更留痕。</li>
</ul>
<h4 data-number="2.3.4.3" id="批量修改"><span
class="header-section-number">2.3.4.3</span> 批量修改</h4>
<ul>
<li>旧系统已形成“手工修改 + 模板导入修改”的双模式客户资料维护能力。</li>
<li>当前正式设计应将其视为客户主数据治理能力的一部分,而不是临时导入工具。</li>
<li>迁移时需明确三类口径:可批量修改字段范围、导入模板校验规则、批量修改审计留痕;历史批量修改结果至少需保留任务来源、修改字段、执行结果和失败原因。</li>
</ul>
<h3 data-number="2.3.5" id="接口映射"><span
class="header-section-number">2.3.5</span> 接口映射</h3>
<ul>
<li><code>IF-REV-001</code>:客户档案、账户状态、联系人与水表绑定关系查询。</li>
<li><code>IF-CS-001</code><code>IF-CS-002</code>:客户服务侧账户绑定与信息查询场景复用客户域数据。</li>
</ul>
<h3 data-number="2.3.6" id="落地边界"><span
class="header-section-number">2.3.6</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:客户主档、账户、联系人、分组、绑定、开票、托收/代扣关系。</li>
<li><strong>部分落地</strong>:客户扩展关系、集收与规则类对象已见明确关系表,但具体业务场景仍需结合流程进一步细化。</li>
<li><strong>文档先行</strong>:主副卡、部分复杂客户关系对象在当前
backend 中未见完全独立表族,文档中仅保留业务对象表述。</li>
</ul>
<p><a id="mod-rev-002"></a></p>
<h2 data-number="2.4" id="rev-002-抄表开账"><span
class="header-section-number">2.4</span> REV-002 抄表开账</h2>
<h3 data-number="2.4.1" id="功能说明-1"><span
class="header-section-number">2.4.1</span> 功能说明</h3>
<p>负责抄表计划、册本管理、抄表录入、抄表状态跟踪、异常复核、计费计算与账单生成,是营收核心处理链路的起点。</p>
<h3 data-number="2.4.2" id="业务流程"><span
class="header-section-number">2.4.2</span> 业务流程</h3>
<pre class="mermaid"><code>flowchart TD
A[制定抄表计划] --&gt; B[生成抄表册本]
B --&gt; C[分配抄表任务]
C --&gt; D[人工/远传/自报抄表]
D --&gt; E[数据校验]
E --&gt; F{是否异常}
F --&gt;|是| G[异常复核处理]
F --&gt;|否| H[生成开账数据]
G --&gt; H
H --&gt; I[按价格模板与费用组成计费]
I --&gt; J[生成营业账与明细]
J --&gt; K[账单审核确认]
K --&gt; L[进入收费/催缴/开票]
</code></pre>
<h3 data-number="2.4.3" id="关键规则"><span
class="header-section-number">2.4.3</span> 关键规则</h3>
<ol type="1">
<li>抄表数据同时校验本次读数、上次读数、用量波动和抄表状态,只有通过校验或完成异常复核的数据才能进入开账。</li>
<li>异常抄表支持估抄、补抄、重录、人工复核;异常处理的目标是形成可继续开账或明确阻断的统一结论,而不是绕开开账规则单独落账。</li>
<li><code>IF-REV-005</code>
的正式边界是“抄表校验完成后的账单生成”,不负责收费核销、发票开具、催缴执行和统计分析。</li>
<li>开账计费按价格归属、价格模板、费用组成、阶梯规则、计划用水方案综合计算;价格配置缺失、费用组成不完整或规则冲突时,必须阻断生成并返回失败原因。</li>
<li>账单生成结果统一由 <code>biz_charge</code>
<code>biz_charge_detail</code>
承接:主表表达客户、账期、应收日期、账单总金额和主状态,明细表表达费用组成、用量、单价和明细金额。</li>
<li>特殊开账、无码客户开账、罚款类开账等非标准来源,仍纳入同一营业账主明细模型承接,通过来源类型、业务类型、依据说明和操作留痕区分,不单独扩展平行账表。</li>
<li>审核通过后的营业账方可进入收费、催缴和发票流程;后续链路只能消费已生成账单结果,不反向改变本接口的生成边界。</li>
<li>远传抄表数据可由 <code>SYS-006</code> / IoT
能力提供采集支撑,但账单生成仍归属 SYS-002。</li>
</ol>
<h3 data-number="2.4.4" id="开账触发与结果表达"><span
class="header-section-number">2.4.4</span> 开账触发与结果表达</h3>
<ul>
<li>触发前提:正式口径下可按抄表批次、指定客户范围或指定抄表任务范围组织生成;当前
backend 已落地的入口为按 <code>readingDataIds</code>
批量复核并开账,对应
<code>ChargeController.generateCheckChargeBatch</code><code>ChargeServiceImpl.generateCheckChargeBatch</code>
<code>ReadingDataServiceImpl.batchReCheckReadingData</code></li>
<li>规则来源:价格归属决定客户适用的价格口径;价格模板、阶梯规则、费用组成和计划用水方案共同决定营业账主表金额与明细拆分方式。</li>
<li>当前承接证据:<code>ChargeServiceImpl.generateSingleChargeWithCache</code>
成功路径会写入 <code>biz_charge</code> 主表、循环写入
<code>biz_charge_detail</code>
明细,并回写抄表数据开账状态,说明现有实现已具备“按抄表数据 ID
生成营业账主明细”的 backend 基础。</li>
<li>结果表达:正式 <code>IF-REV-005</code>
应返回成功清单、失败清单、生成汇总及主明细级结果;当前 backend
返回仍为“本次复核成功X条 /
本次开账成功Y条”的字符串拼接尚未形成结构化成功/失败结果对象。</li>
<li>阻断与限制:价格模板不存在、费用调整配置缺失、结算方式非
<code>ACTUAL_USAGE</code>
等场景当前会直接阻断单条生成;其中固定水量、按人口数、最低消费等非实际水量结算方式仍未纳入当前实现。</li>
<li>下游边界:<code>REV-002</code>
只负责生成营业账结果并交由后续审核/收费链路消费,不在本章节扩展收费核销、发票申请或催缴执行细节。</li>
</ul>
<h3 data-number="2.4.5" id="核心数据-1"><span
class="header-section-number">2.4.5</span> 核心数据</h3>
<ul>
<li><code>biz_meter_book</code>:册本与抄表计划。</li>
<li><code>biz_meter_read</code>:抄表任务状态/执行状态。</li>
<li><code>biz_reading_data</code>:抄表数据。</li>
<li><code>biz_last_reading</code>:上次抄表结果。</li>
<li><code>biz_reading_logs</code>:抄表日志与过程留痕。</li>
<li><code>biz_meter</code>:计量水表主档引用。</li>
<li><code>biz_charge</code>:营业账主表。</li>
<li><code>biz_charge_detail</code>:营业账明细。</li>
<li><code>biz_price_category</code>:价格归属。</li>
<li><code>biz_price_template</code>:价格模板。</li>
<li><code>biz_price_adjustment_snap</code>:调价快照。</li>
<li><code>biz_price_tier_adjustment</code>:阶梯规则。</li>
<li><code>biz_cost_component</code>:费用组成。</li>
<li><code>biz_water_use_scheme</code><code>biz_water_use_scheme_tier</code>:计划用水方案与阶梯。</li>
</ul>
<h3 data-number="2.4.6" id="迁移补充旧系统承接-1"><span
class="header-section-number">2.4.6</span> 迁移补充(旧系统承接)</h3>
<h4 data-number="2.4.6.1" id="特殊开账"><span
class="header-section-number">2.4.6.1</span> 特殊开账</h4>
<ul>
<li>旧系统支持在非标准客户、无码客户或罚款类场景下直接开账。</li>
<li>新系统仍以 <code>biz_charge</code><code>biz_charge_detail</code>
作为开账结果承载对象,不建议额外平行建设“特殊开账账表”。</li>
<li>迁移与新建场景均需保留特殊开账来源、业务类型、经办人、依据说明、打印状态与后续收费关联,避免与普通抄表开账混淆。</li>
</ul>
<h4 data-number="2.4.6.2" id="开账记录迁移"><span
class="header-section-number">2.4.6.2</span> 开账记录迁移</h4>
<ul>
<li>旧系统“开账记录”是历史查询与账务核对的核心入口,必须纳入迁移最小保留集。</li>
<li>迁移后的开账记录应至少支持按站点、账务年月、册本、客户、抄表员、欠费状态查询,并支持统计水量、总金额及费用构成。</li>
<li>对已收费、已作废、销户拆表、特殊开账等旧状态,不要求照搬旧表结构,但必须保留可对照的新状态映射关系。</li>
</ul>
<h3 data-number="2.4.7" id="接口映射-1"><span
class="header-section-number">2.4.7</span> 接口映射</h3>
<ul>
<li><code>IF-REV-004</code>:抄表数据提交与异常标记。</li>
<li><code>IF-REV-005</code>:账单生成与开账结果返回。</li>
<li><code>IF-METER-004</code>:远传抄表数据接收后进入开账流程。</li>
</ul>
<h3 data-number="2.4.8" id="落地边界-1"><span
class="header-section-number">2.4.8</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:册本、抄表数据、上次抄表、抄表日志、营业账主明细、价格模板与阶梯规则。</li>
<li><strong>部分落地</strong>:部分异常场景对象可能仍通过状态字段和日志表承载,而非全部拆成独立业务表。</li>
<li><strong>文档先行</strong>:个别精细稽查、轨迹、下载同步对象当前未在本轮映射中确认为独立表。</li>
</ul>
<p><a id="mod-rev-003"></a></p>
<h2 data-number="2.5" id="rev-003-营业收费"><span
class="header-section-number">2.5</span> REV-003 营业收费</h2>
<h3 data-number="2.5.1" id="功能说明-2"><span
class="header-section-number">2.5.1</span> 功能说明</h3>
<p>支持柜台收费、预存款/余额抵扣、线上缴费回写、柜面扫码、营业网点收费及收费凭证管理,统一承接营收账单的核销处理。</p>
<h3 data-number="2.5.2" id="业务流程-1"><span
class="header-section-number">2.5.2</span> 业务流程</h3>
<pre class="mermaid"><code>flowchart TD
A[查询客户及待缴账单] --&gt; B[选择账单与核销方式]
B --&gt; C[选择支付渠道]
C --&gt; D{支付方式}
D --&gt;|柜台现金/POS/扫码| E[现场收费]
D --&gt;|微信/支付宝/聚合支付| F[渠道下单]
D --&gt;|预存款/余额抵扣| G[账户余额核销]
E --&gt; H[更新营业账状态]
F --&gt; I[等待异步回调确认]
G --&gt; H
I --&gt; H
H --&gt; J[生成收费记录与凭证]
J --&gt; K[进入发票/对账流程]
</code></pre>
<h3 data-number="2.5.3" id="关键规则-1"><span
class="header-section-number">2.5.3</span> 关键规则</h3>
<ol type="1">
<li>一次缴费可对应多个账单或账单明细的组合核销。</li>
<li>收费记录必须保留渠道、流水号、网点、操作员、终端信息。</li>
<li>线上支付必须以回调或查询确认结果为准,不得以发起状态直接记账。</li>
<li>支付能力由 <code>SYS-009</code> 提供SYS-002
负责账单核销与业务状态回写。</li>
<li>当前实现侧已确认 <code>PayCeb</code>
的欠费查询、缴费处理基础闭环可用,但代理收费对账仍为预留能力;正式文档不得将实时收费对账写成已闭环能力。</li>
</ol>
<h3 data-number="2.5.4" id="核心数据-2"><span
class="header-section-number">2.5.4</span> 核心数据</h3>
<ul>
<li><code>biz_charge</code><code>biz_charge_detail</code>:待缴与已缴账单主明细。</li>
<li><code>biz_collection</code>:托收/代收主表。</li>
<li><code>biz_withholding</code>:代扣/托收主表。</li>
<li><code>bk_transaction</code>:渠道交易流水。</li>
<li><code>bk_transaction_callback</code>:支付回调记录。</li>
<li><code>bk_transaction_exception</code>:支付异常记录。</li>
</ul>
<h3 data-number="2.5.5" id="迁移补充旧系统承接-2"><span
class="header-section-number">2.5.5</span> 迁移补充(旧系统承接)</h3>
<h4 data-number="2.5.5.1" id="柜台结账"><span
class="header-section-number">2.5.5.1</span> 柜台结账</h4>
<ul>
<li>旧系统将“柜台收费”和“柜台结账”拆分为两个菜单,结账阶段包含未结/已结查询、结账红冲、追加抄表和打印动作。</li>
<li>当前设计可继续采用统一收费核销模型,但必须补出“收费记录 → 班结结果 →
打印/红冲/查询”的业务闭环,避免柜面日终处理缺口。</li>
<li>迁移时需保留结账时间、结账人、网点、收费汇总口径和结账后红冲痕迹,保证财务对账与审计连续。</li>
</ul>
<h4 data-number="2.5.5.2" id="账单打印服务"><span
class="header-section-number">2.5.5.2</span> 账单打印服务</h4>
<ul>
<li>旧系统存在账单打印、补打、打印次数控制与打印记录查询能力。</li>
<li>新系统不要求单独建立打印主模块,但必须明确打印模板、补打权限、打印状态与打印留痕的承接关系。</li>
<li>对历史账单迁移,应允许基于账单主明细和打印配置恢复打印视图,避免割接后只能查账不能补打。</li>
</ul>
<h4 data-number="2.5.5.3" id="红冲记录"><span
class="header-section-number">2.5.5.3</span> 红冲记录</h4>
<ul>
<li>旧系统支持红冲记录查询、导出与明细展开,是收费差错追溯的重要入口。</li>
<li>当前设计可将红冲视为收费核销后的修正场景,不强制要求独立实体表,但必须提供历史只读查询口径。</li>
<li>红冲迁移最小保留信息应包括原收费记录、红冲时间、红冲金额、原因、经办人、关联账单和后续账务状态。</li>
</ul>
<h3 data-number="2.5.6" id="接口映射-2"><span
class="header-section-number">2.5.6</span> 接口映射</h3>
<ul>
<li><code>IF-REV-006</code>:创建收费记录、执行账单核销并回写状态。</li>
<li><code>IF-CS-003</code><code>IF-CS-007</code>:客户渠道与柜面扫码支付场景复用收费核销链路。</li>
</ul>
<h3 data-number="2.5.7" id="落地边界-2"><span
class="header-section-number">2.5.7</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:营业账主明细、交易流水、回调、异常、托收/代扣主对象。</li>
<li><strong>部分落地</strong>:柜台班结、部分收费汇总类对象可能通过业务流程与报表实现,不一定存在独立表。</li>
<li><strong>文档先行</strong>:部分红冲、实时收费汇总类台账暂不表述为已确认独立实体表。</li>
</ul>
<p><a id="mod-rev-004"></a></p>
<h2 data-number="2.6" id="rev-004-账务处理"><span
class="header-section-number">2.6</span> REV-004 账务处理</h2>
<h3 data-number="2.6.1" id="功能说明-3"><span
class="header-section-number">2.6.1</span> 功能说明</h3>
<p>REV-004
一期仅覆盖水量调整、金额调整、退款、冲正、坏账申请五类场景,统一挂靠
<code>IF-REV-007</code>
作为账务处理入口,目标是在既有正式文档体系内先收敛范围、承接口径、留痕要求与审批边界。</p>
<p>本阶段按“共性能力先统一、场景能力再分批”组织:先统一账单承接、原交易校验、结果表达、操作留痕与审批边界,再分别展开五类场景。违约金减免、分账调整、价差调整、跨周期水量、预存退款细表等内容仅作为旧系统迁移语义或后续扩展参考,不作为一期新增独立范围。</p>
<h3 data-number="2.6.2" id="业务流程-2"><span
class="header-section-number">2.6.2</span> 业务流程</h3>
<pre class="mermaid"><code>flowchart TD
A[发起账务调整申请] --&gt; B[校验账单状态与权限]
B --&gt; C{是否通过}
C --&gt;|否| D[驳回并记录原因]
C --&gt;|是| E[执行重算或退款冲正]
E --&gt; F[更新账单与明细状态]
F --&gt; G[写入操作日志与审批留痕]
G --&gt; H[返回处理结果]
</code></pre>
<h3 data-number="2.6.3" id="关键规则-2"><span
class="header-section-number">2.6.3</span> 关键规则</h3>
<ol type="1">
<li>一期场景严格限定为水量调整、金额调整、退款、冲正、坏账申请,不扩展到其他接口族或独立账务台账重构。</li>
<li>所有场景均以 <code>biz_charge</code> /
<code>biz_charge_detail</code> 为主承接对象,并通过
<code>biz_operat_log</code> / <code>biz_operat_log_detail</code>
记录处理依据、前后变化和责任归属。</li>
<li>退款、冲正必须联动
<code>bk_transaction</code><code>bk_transaction_callback</code><code>bk_transaction_exception</code>
等原支付流水及渠道状态校验,不允许仅依据账单状态直接处理。</li>
<li>接口结果统一返回
<code>resultStatus</code><code>writeBackStatus</code>,其中
<code>resultStatus</code> 表示处理结论,<code>writeBackStatus</code>
表示账单状态回写结论,两者不得混用。</li>
<li>审批相关内容一期仅保留
<code>approvalRequired</code><code>PENDING_APPROVAL</code>
与审批边界说明,不展开完整 BPM
流程、节点、流转规则或审批回写实现细节。</li>
<li>对于当前未见明确独立实体表的特账、跨周期水量、退款账等对象,文档以“业务处理场景”表述,不强行落为已实现表。</li>
</ol>
<h3 data-number="2.6.4" id="核心数据-3"><span
class="header-section-number">2.6.4</span> 核心数据</h3>
<ul>
<li><code>biz_charge</code><code>biz_charge_detail</code>:账务调整的核心对象,承接调整前后账单主明细状态。</li>
<li><code>bk_transaction</code><code>bk_transaction_callback</code><code>bk_transaction_exception</code>:退款、冲正场景的原交易校验与异常追溯对象。</li>
<li>价格调整/优惠相关表:用于重算账单或差额追溯。</li>
<li><code>biz_operat_log</code><code>biz_operat_log_detail</code>:操作与变更留痕,记录字段差异、处理说明、附件依据与责任归属。</li>
</ul>
<h3 data-number="2.6.5" id="主要场景"><span
class="header-section-number">2.6.5</span> 主要场景</h3>
<table>
<thead>
<tr>
<th>场景</th>
<th>说明</th>
<th>控制要点</th>
</tr>
</thead>
<tbody>
<tr>
<td>水量调整</td>
<td>更正异常水量</td>
<td>需复核原因、附件和原抄表依据</td>
</tr>
<tr>
<td>金额调整</td>
<td>更正账单金额</td>
<td>需记录依据、差异金额和审批边界</td>
</tr>
<tr>
<td>退款</td>
<td>退回客户支付资金或预存款</td>
<td>需校验原交易、退款余额与幂等性</td>
</tr>
<tr>
<td>冲正</td>
<td>修正误收/误核销记录</td>
<td>需关联原交易与账单状态</td>
</tr>
<tr>
<td>坏账申请</td>
<td>对长期欠费进行分类处理</td>
<td>需结合账龄、客户状态与审批边界</td>
</tr>
</tbody>
</table>
<h3 data-number="2.6.6" id="迁移补充旧系统承接-3"><span
class="header-section-number">2.6.6</span> 迁移补充(旧系统承接)</h3>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr>
<th>旧账务对象</th>
<th>当前承接方式</th>
<th>迁移口径</th>
</tr>
</thead>
<tbody>
<tr>
<td>预存退款 / 预存退款详情</td>
<td>作为账务处理场景承接</td>
<td>保留申请单、原支付引用、退款结果与审批留痕</td>
</tr>
<tr>
<td>已销调整汇总 / 明细</td>
<td>作为已收费后修正场景承接</td>
<td>保留原账单、调整原因、前后差异、处理结果</td>
</tr>
<tr>
<td>价差调整汇总 / 明细</td>
<td>作为重算与差额修正场景承接</td>
<td>保留原价格口径、新价格口径、差额和生效时间</td>
</tr>
<tr>
<td>分账调整汇总 / 明细</td>
<td>作为费用组成重分摊场景承接</td>
<td>保留原分摊结果、调整后结果、责任人和审批链</td>
</tr>
<tr>
<td>账单-违约金减免</td>
<td>作为滞纳金修正场景承接</td>
<td>保留减免原因、减免金额、审批结果和生效时间</td>
</tr>
<tr>
<td>账单-呆坏账</td>
<td>作为坏账申请与生效场景承接</td>
<td>保留账龄、申请原因、审批结果、核销状态</td>
</tr>
</tbody>
</table>
<ol type="1">
<li>P0
阶段不要求为每一类旧账务台账都新增独立实体表,但必须在业务对象和历史查询层形成可追溯闭环。</li>
<li>旧系统精细台账迁移后至少保留:原单据标识、原账单标识、处理类型、处理原因、处理前后金额/水量、申请/审批/生效时间、经办人与附件依据。</li>
<li>与支付、发票、渠道回调强关联的处理场景,必须保留与原交易、原发票、原收费记录的关联关系,避免后续对账和审计断链。</li>
</ol>
<h3 data-number="2.6.7" id="接口映射-3"><span
class="header-section-number">2.6.7</span> 接口映射</h3>
<ul>
<li><code>IF-REV-007</code>:账务调整、退款、冲正、坏账等处理入口。</li>
<li><code>IF-REV-006</code>:与收费核销状态联动,确保调账后账单状态一致。</li>
</ul>
<h3 data-number="2.6.8" id="落地边界-3"><span
class="header-section-number">2.6.8</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:营业账主明细、操作日志、价格/方案相关重算支撑。</li>
<li><strong>部分落地</strong>:精细化账务对象更多表现为流程与场景,并未在
backend 中全部体现为独立表族。</li>
<li><strong>文档先行</strong>:特账、退款账、跨周期水量等对象保留业务语义,不宣称为已实现独立表。</li>
</ul>
<p><a id="mod-rev-005"></a></p>
<h2 data-number="2.7" id="rev-005-发票与税务处理"><span
class="header-section-number">2.7</span> REV-005 发票与税务处理</h2>
<h3 data-number="2.7.1" id="功能说明-4"><span
class="header-section-number">2.7.1</span> 功能说明</h3>
<p>负责发票业务闭环的业务接入与状态落账,覆盖后台发票申请、开票校验、<code>SYS-008</code>
异步协同、查询兜底、结果回写、账单关联、客户侧已开票电子发票查询/下载/推送,以及后台作废与红冲处理。</p>
<h3 data-number="2.7.2" id="业务流程-3"><span
class="header-section-number">2.7.2</span> 业务流程</h3>
<pre class="mermaid"><code>flowchart TD
A[后台提交发票申请] --&gt; B[校验账单、客户开票信息、税率与限额]
B --&gt; C{是否满足开票条件}
C --&gt;|否| D[返回不可开票原因]
C --&gt;|是| E[生成申请单号并写入SUBMITTED]
E --&gt; F[调用SYS-008发起异步开票]
F --&gt; G[记录受理号并转为PENDING]
G --&gt; H[系统轮询或后台查询兜底]
H --&gt; I{开票结果}
I --&gt;|成功| J[回写SUCCESS并更新账单-发票关联]
I --&gt;|失败| K[回写FAIL并记录失败原因]
J --&gt; L[客户侧查询/下载/推送电子发票]
</code></pre>
<h3 data-number="2.7.3" id="状态说明"><span
class="header-section-number">2.7.3</span> 状态说明</h3>
<ul>
<li><code>SUBMITTED</code>:后台申请已受理,已完成本地校验并生成申请单。</li>
<li><code>PENDING</code>:已提交
<code>SYS-008</code>,等待异步结果或查询补偿结果。</li>
<li><code>SUCCESS</code>:已取得有效发票代码、号码或电子票地址,且账单关联已完成更新。</li>
<li><code>FAIL</code>:开票失败,需保留失败原因、最近查询结果与后续人工核查依据。</li>
<li><code>INVALID</code>:发票已作废,作为后续能力预留状态。</li>
<li><code>RED_INK</code>:发票已红冲,作为后续能力预留状态。</li>
</ul>
<h3 data-number="2.7.4" id="关键规则-3"><span
class="header-section-number">2.7.4</span> 关键规则</h3>
<ol type="1">
<li>一期采用“后台申请开票 +
客户侧查询下载推送”的入口模式,客户侧不直接发起开票申请。</li>
<li>发票申请以客户信息、已收费未开票账单、税率配置和开票限额为基础;原始单账单不支持直接任意部分金额开票。</li>
<li>个人与企业开票均通过客户开票信息与税率表完成合法性校验;如需多张发票,沿用拆账/分账后的账单分别开票口径。</li>
<li><code>SYS-008</code> 采用“异步申请 +
查询兜底”模式,成功状态不得被后续失败查询结果覆盖。</li>
<li>电子发票仅在 <code>SUCCESS</code>
且存在票据文件地址时允许客户侧下载或推送。</li>
<li>发票作废、红冲仍由 <code>SYS-008</code>
统一承接税控侧处理,<code>SYS-002</code>
负责后台触发入口、状态校验、查询补偿、结果落账与日志留痕;当前轮次按二期范围补齐
backend 实现入口。</li>
</ol>
<h3 data-number="2.7.5" id="后台申请入口与校验补充"><span
class="header-section-number">2.7.5</span> 后台申请入口与校验补充</h3>
<ul>
<li>后台支持营业收费员、财务人员按单笔或批量已收费账单发起开票申请。</li>
<li>申请时至少校验:账单收费状态、开票状态、客户开票信息完整性、票种适配性、开票限额、账单集合是否属于同一客户。</li>
<li>企业抬头场景重点校验纳税人识别号;电子发票场景重点校验邮箱/手机号;不满足条件时直接返回不可开票原因。</li>
<li>申请成功后生成申请单号并进入 <code>SUBMITTED/PENDING</code>
状态流转,失败校验场景不进入外部协同。</li>
<li>幂等控制以 <code>applicationNo</code>
<code>custId + chargeIds</code> 为主,避免相同账单组合重复申请。</li>
</ul>
<h3 data-number="2.7.6" id="sys-008-异步协同与查询补偿"><span
class="header-section-number">2.7.6</span> SYS-008
异步协同与查询补偿</h3>
<ul>
<li>本地申请校验通过后,<code>SYS-002</code> 先写入
<code>biz_invoice</code> 申请记录,再向 <code>SYS-008</code>
发起异步开票请求,并记录 <code>sysRequestNo</code>
作为后续查询与回写的协同主键。</li>
<li><code>SYS-008</code> 返回“已受理”后,发票状态转为
<code>PENDING</code>;若仅完成本地受理但尚未拿到受理号,则保留
<code>SUBMITTED</code> 并进入待补偿查询状态。</li>
<li>查询补偿采用“回写优先、主动查询兜底”原则:<code>IF-EXT-007</code>
回写为首选结果来源,后台人工查询与系统定时补偿查询共用同一结果落账逻辑。</li>
<li>系统补偿查询至少保留最近查询时间、下次计划查询时间、累计查询次数、最近一次返回结果摘要与异常原因,便于问题追踪和人工核查。</li>
<li>后台按申请单号或受理号触发查询时,应同步刷新查询上下文;查询仍未取得终态时,仅更新补偿上下文,不得伪造成功或失败结论。</li>
</ul>
<h3 data-number="2.7.7" id="终态保护与异常核查"><span
class="header-section-number">2.7.7</span> 终态保护与异常核查</h3>
<ul>
<li><code>SUCCESS</code>
属于正常开票闭环终态,一旦已取得有效发票代码、发票号码或电子票据地址,后续失败查询结果不得覆盖成功状态。</li>
<li><code>FAIL</code> 仅在 <code>SYS-008</code>
明确返回失败结论或多次补偿查询确认失败时写入,并同步保留失败原因、最近查询结果与人工核查依据。</li>
<li>当后台人工查询、系统补偿查询与外部回写结果不一致时,应以最新有效外部凭据为准,并记录差异说明,不允许直接覆盖既有成功票据关键信息。</li>
<li>每次提交协同、主动查询、状态变更和异常分支均应写入操作留痕,确保能够追溯责任人、触发来源、状态前后值与异常说明。</li>
</ul>
<h3 data-number="2.7.8" id="结果回写账单关联与客户侧消费"><span
class="header-section-number">2.7.8</span>
结果回写、账单关联与客户侧消费</h3>
<ul>
<li><code>IF-EXT-007</code> 回写成功结果时,除更新
<code>biz_invoice.invoice_status</code><code>invoice_code</code><code>invoice_number</code><code>file_url</code>
外,还应同步刷新账单快照、账单关联状态与推送状态初值。</li>
<li>账单关联以 <code>biz_invoice.charge_id</code> +
<code>charge_ids_snapshot</code> 记录本次开票覆盖账单集合,并同步把对应
<code>biz_charge.invoice_state</code>
更新为“开票完成”,保留失败原因与开票时间,便于账单明细、收费记录和客户侧结果统一展示。</li>
<li>客户侧查询仅允许按本人 <code>custId</code>
访问已存在的发票记录;可通过
<code>invoiceId</code><code>applicationNo</code>
<code>sysRequestNo</code> 定位,但都必须命中同一客户名下记录。</li>
<li>客户侧下载与推送前必须校验发票状态为 <code>SUCCESS</code>
<code>fileUrl</code>
非空;不满足条件时仅返回不可下载/推送原因,不得伪造文件地址。</li>
<li>推送动作应记录推送渠道、目标邮箱/手机号与结果状态;成功后更新
<code>pushStatus=PUSHED</code>,失败则写入 <code>FAIL</code>
并保留失败原因供人工处理。</li>
</ul>
<h3 data-number="2.7.9" id="核心数据-4"><span
class="header-section-number">2.7.9</span> 核心数据</h3>
<ul>
<li><code>biz_invoice</code>:发票主记录。</li>
<li><code>biz_invoice_taxrate</code>:税率配置。</li>
<li><code>biz_cust_invoice</code>:客户开票信息。</li>
</ul>
<h3 data-number="2.7.10" id="迁移补充旧系统承接-4"><span
class="header-section-number">2.7.10</span> 迁移补充(旧系统承接)</h3>
<ul>
<li>旧系统数据字典中存在“发票明细表、营业账开票表、开票配置表”等更细粒度对象。</li>
<li>当前正式设计已明确主承接对象为
<code>biz_invoice</code><code>biz_invoice_taxrate</code><code>biz_cust_invoice</code>,但迁移时不能忽略旧开票明细和账单关联关系。</li>
<li>P0
阶段建议先补三类迁移口径:账单与发票的关联关系、发票申请与结果回写记录、开票配置与税率的有效期;未确认已落地的细表对象仍按“历史只读或辅助映射”处理。</li>
</ul>
<h3 data-number="2.7.11" id="接口映射-4"><span
class="header-section-number">2.7.11</span> 接口映射</h3>
<ul>
<li><code>IF-REV-008</code>:后台发票申请接口,负责单笔/批量申请、幂等控制与受理号生成。</li>
<li><code>IF-REV-009</code>:发票结果查询接口,负责后台按申请单号/受理号查询以及系统补偿查询。</li>
<li><code>IF-CS-004</code>:客户侧电子发票消费接口,负责已开票结果查看、下载、推送。</li>
<li><code>IF-EXT-007</code>:发票结果回写协同接口(由发票服务侧回传)。</li>
</ul>
<h3 data-number="2.7.12" id="落地边界-4"><span
class="header-section-number">2.7.12</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:发票主记录、税率配置、客户开票信息,以及一期正常开票闭环所需的后台申请、查询兜底、结果回写、账单关联与客户侧电子发票消费能力。</li>
<li><strong>部分落地</strong>:发票修改、开票过程留痕在后端中已有相关对象,但整套发票明细/批次类对象尚未全部确认。</li>
<li><strong>二期补齐</strong>:发票作废、红冲及其查询补偿仍由
<code>SYS-008</code>
统一承接,但当前轮次补齐后台触发入口、状态流转、结果回写与日志留痕,不再仅停留于文档预留。</li>
<li><strong>文档先行</strong>:发票明细、营业账开票关系等对象仍按设计能力描述,不表述为本轮已确认独立表。</li>
</ul>
<p><a id="mod-rev-006"></a></p>
<h2 data-number="2.8" id="rev-006-催缴与通知"><span
class="header-section-number">2.8</span> REV-006 催缴与通知</h2>
<h3 data-number="2.8.1" id="功能说明-5"><span
class="header-section-number">2.8.1</span> 功能说明</h3>
<p>针对欠费账单按账龄、金额、客户类别等规则生成催缴任务,通过短信、微信、站内通知等方式触达客户,并回写催缴结果;本模块同时定义催缴与停复水/工单处置之间的联动边界与追溯关系,但不展开停复水内部处置流程。</p>
<h3 data-number="2.8.2" id="业务流程-4"><span
class="header-section-number">2.8.2</span> 业务流程</h3>
<pre class="mermaid"><code>flowchart TD
A[生成欠费客户清单] --&gt; B[按策略分组催缴任务]
B --&gt; C[触发IF-REV-013生成催缴任务]
C --&gt; D[调用IF-EXT-008协同SYS-010]
D --&gt; E[接收发送结果回写]
E --&gt; F[更新催缴状态与后续策略]
F --&gt; G[按联动边界挂接停复水/工单处置]
</code></pre>
<h3 data-number="2.8.3" id="关键规则-4"><span
class="header-section-number">2.8.3</span> 关键规则</h3>
<ol type="1">
<li>催缴策略以营业账状态、欠费金额、账龄分布、客户类别和渠道偏好为基础,支持按策略编码进行任务分组与频控。</li>
<li>自动催缴与人工催缴可并行;自动任务用于常规批量催缴,人工任务用于补发、核查或例外处置。</li>
<li><code>SYS-002</code>
负责催缴对象筛选、任务生成、业务事件编号、结果承接与历史查询;<code>SYS-010</code>
负责短信、微信公众号、站内信等触达执行与结果回传。</li>
<li><code>REV-006</code> 正式结果状态固定为
<code>PENDING</code><code>SUCCESS</code><code>FAIL</code><code>MANUAL_VERIFIED</code>
四态,其中 <code>MANUAL_VERIFIED</code>
仅用于外部结果未定或需人工核查补记的场景。</li>
<li>停复水在本模块中仅定义联动触发条件、处置引用与追溯关系,不展开停复水内部审批、派工或现场执行流程。</li>
<li>当前后端中部分催缴汇总、停水明细对象未确认独立落表,文档中保持保守描述,不误写为已确认在线主表。</li>
</ol>
<h4 data-number="2.8.3.1" id="催缴对象筛选排除与频控边界"><span
class="header-section-number">2.8.3.1</span>
催缴对象筛选、排除与频控边界</h4>
<ul>
<li><code>IF-REV-013</code>
任务生成前必须完成候选筛选,筛选最小维度为:欠费状态、欠费金额、账龄分组、客户类别、渠道偏好和策略编码。</li>
<li>候选对象必须以有效欠费账单为前提;以下场景不得进入正式催缴任务:已收费核销、已作废、已进入不允许催缴的处置流程、策略规则未命中。</li>
<li>触发类型按 <code>triggerType</code>
区分自动与人工;自动用于批量触发,人工用于补发、核查和例外补记,不改变正式接口编号与状态语义。</li>
<li>频控以“同客户/同策略/同渠道/同账期窗口”为最小拦截单元;命中频控时允许部分阻断,并返回被跳过对象及原因摘要。</li>
</ul>
<h3 data-number="2.8.4" id="核心数据-5"><span
class="header-section-number">2.8.4</span> 核心数据</h3>
<ul>
<li><code>biz_charge</code><code>biz_charge_detail</code>:催缴对象来源。</li>
<li>催缴结果与通知日志:通过业务状态与消息结果联动留痕。</li>
</ul>
<h4 data-number="2.8.4.1" id="催缴对象与规则摘要"><span
class="header-section-number">2.8.4.1</span> 催缴对象与规则摘要</h4>
<ul>
<li><code>Reminder Candidate</code>:由欠费账单、客户类别、账龄分组、欠费金额、联系方式集合和命中策略编码组成,是催缴任务的输入对象。</li>
<li><code>Reminder Strategy</code>:定义账龄规则、金额规则、客户类别规则、渠道优先级、重复触达拦截窗口和是否触发后续处置关注。</li>
<li><code>Reminder Task</code>:一次正式催缴执行单元,至少包含
<code>taskNo</code><code>eventNo</code><code>strategyCode</code><code>channelType</code><code>triggerType</code><code>status</code>
和关联账单信息;正式业务接口编号固定为 <code>IF-REV-013</code></li>
<li><code>Reminder Result</code>:承接 <code>IF-EXT-008</code>
回传结果后由业务侧映射的正式四态结果,最少记录
<code>status</code><code>lastCallbackTime</code><code>failReason</code>
与回传摘要。</li>
<li><code>Disposal Link</code>:用于记录催缴结果与停水、复水、工单或人工跟进之间的关联引用,只承担追溯职责,不替代下游业务对象。</li>
</ul>
<h4 data-number="2.8.4.2" id="四态与人工核查边界"><span
class="header-section-number">2.8.4.2</span> 四态与人工核查边界</h4>
<ul>
<li><code>PENDING</code>:已生成任务并完成外部受理或等待外部终态回传,尚未形成业务终态。</li>
<li><code>SUCCESS</code>:外部触达结果明确成功,且业务侧已完成结果承接。</li>
<li><code>FAIL</code>:外部返回明确失败或业务判定失败,必须记录失败原因。</li>
<li><code>MANUAL_VERIFIED</code>:仅用于外部结果长期未定、人工核查补记或例外核销说明场景;必须留存核查说明与核查人。</li>
<li>人工核查是状态收口手段,不得用于绕过候选筛选、排除条件或频控约束。</li>
</ul>
<h3 data-number="2.8.5" id="迁移补充旧系统承接-5"><span
class="header-section-number">2.8.5</span> 迁移补充(旧系统承接)</h3>
<h4 data-number="2.8.5.1" id="催缴记录"><span
class="header-section-number">2.8.5.1</span> 催缴记录</h4>
<ul>
<li>旧系统支持催缴记录查询、导出和明细展开,记录中包含推送内容、号码、方式、结果等信息。</li>
<li>新系统可继续以消息协同结果和账单状态联动承接,但必须明确催缴记录查询口径,而不能仅保留“已发送/未发送”状态。</li>
<li>历史查询最少保留客户号、账期、催缴方式、发送对象、发送时间、执行结果、关联账单、关联处置引用等字段,并兼容四态结果或其历史映射值。</li>
<li>历史催缴记录按只读口径承接,作为查询与追溯来源,不反推为已确认在线主表。</li>
</ul>
<h4 data-number="2.8.5.2" id="停水记录"><span
class="header-section-number">2.8.5.2</span> 停水记录</h4>
<ul>
<li>停水记录不是孤立账务对象,应由催缴结果、业务处置和现场执行工单共同形成闭环。</li>
<li>迁移后需支持按客户、站点、停水原因、停水时间、复水状态查询,并能追溯到对应欠费账单和工单执行结果。</li>
<li>正式设计只定义“何时建立联动、如何保存处置引用、如何追溯关联结果”,不在
<code>REV-006</code> 中展开停复水内部流程设计。</li>
<li>停复水关联以 <code>Disposal Link</code>
的处置引用承接,最少包含任务号、处置类型、处置引用号和建联时间。</li>
</ul>
<h4 data-number="2.8.5.3" id="预存短信"><span
class="header-section-number">2.8.5.3</span> 预存短信</h4>
<ul>
<li>旧系统对预存款余额不足客户提供短信推送和发送记录查询。</li>
<li>新系统建议将其纳入催缴与通知统一策略,不再单建平行模型,但必须保留触发条件、发送内容、发送结果和补发记录。</li>
<li>该类记录与催缴记录一样,按历史只读口径承接,不表述为新增同名在线主表。</li>
</ul>
<h3 data-number="2.8.6" id="接口映射-5"><span
class="header-section-number">2.8.6</span> 接口映射</h3>
<ul>
<li><code>IF-REV-013</code>:催缴任务生成、任务查询与结果承接接口,负责业务侧任务生成、四态状态维护和历史查询挂接。</li>
<li><code>IF-EXT-008</code>:消息协同结果回写接口(由
<code>SYS-010</code> 协同)。</li>
</ul>
<h3 data-number="2.8.7" id="落地边界-5"><span
class="header-section-number">2.8.7</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:以营业账为基础的欠费识别前提数据、催缴对象来源字段和消息协同边界约束。</li>
<li><strong>部分落地</strong>:催缴登记汇总、停水汇总等对象暂未在
backend 中确认独立表,当前以业务事件、操作留痕和历史查询口径承接。</li>
<li><strong>文档先行</strong>:复杂催缴台账、停复水统计和人工核查界面仅作为业务场景保留,不表述为
backend 已完成能力。</li>
</ul>
<p><a id="mod-rev-007"></a></p>
<h2 data-number="2.9" id="rev-007-统计分析"><span
class="header-section-number">2.9</span> REV-007 统计分析</h2>
<h3 data-number="2.9.1" id="功能说明-6"><span
class="header-section-number">2.9.1</span> 功能说明</h3>
<p>提供营收、抄表、收费、欠费、渠道、客户等多维度统计查询能力,为经营分析、业务监管和迁移核查提供统一的数据口径支撑;本模块以经营查询为主,不扩展到预测分析、专题大屏或独立
BI 平台实现。</p>
<h3 data-number="2.9.2" id="关键设计-1"><span
class="header-section-number">2.9.2</span> 关键设计</h3>
<ol type="1">
<li>统计查询按“主题 + 维度 +
指标”三层口径组织,避免仅以报表名称堆砌需求。</li>
<li>主题范围至少包括营收汇总、收费与实收统计、欠费规模与账龄统计、客户结构统计、渠道交易统计、抄表完成率统计以及营收相关业务概览类摘要。</li>
<li>查询维度至少包括时间区间、账期、营业所/片区、客户类别、渠道、客户/账户、状态等,并支持必要的分组汇总。</li>
<li>指标口径需明确区分应收金额、实收金额、欠费余额、账单数、客户数、交易笔数、渠道占比、抄表完成率等相近但不等价的统计概念。</li>
<li>导出与查询结果受数据权限控制;导出属于查询扩展能力,但不在本轮展开具体导出实现细节。</li>
<li>重点查询可按聚合视图、汇总口径或预聚合结果承接,但不将未确认存在的统计表、专题分析表或离线数仓对象写成已实现事实。</li>
</ol>
<h3 data-number="2.9.3" id="核心数据-6"><span
class="header-section-number">2.9.3</span> 核心数据</h3>
<ul>
<li>客户维度:<code>biz_cust</code><code>biz_account</code></li>
<li>抄表维度:<code>biz_meter_book</code><code>biz_reading_data</code><code>biz_last_reading</code></li>
<li>账务与收费维度:<code>biz_charge</code><code>biz_charge_detail</code></li>
<li>收费与交易维度:<code>biz_collection</code><code>bk_transaction</code></li>
<li>渠道维度:<code>bk_transaction</code><code>bk_payment_channel</code></li>
<li>组织与权限维度:<code>system_dept</code>、数据权限控制结果。</li>
</ul>
<h4 data-number="2.9.3.1" id="统计主题与口径摘要"><span
class="header-section-number">2.9.3.1</span> 统计主题与口径摘要</h4>
<ul>
<li><code>Statistics Theme</code>:按经营主题组织查询,至少覆盖营收、收费、欠费、客户、渠道、抄表完成率和必要的业务概览。</li>
<li><code>Statistics Dimension</code>:按时间、账期、营业所/片区、客户类别、渠道、客户/账户、状态等条件筛选或分组。</li>
<li><code>Statistics Indicator</code>:至少明确应收金额、实收金额、欠费余额、账单数、客户数、交易笔数、渠道占比、完成率等指标含义和单位。</li>
<li><code>Aggregation Source</code>:统计结果以现有在线主数据聚合、视图或汇总口径承接,不反推为已存在独立统计表族。</li>
</ul>
<h3 data-number="2.9.4" id="接口映射-6"><span
class="header-section-number">2.9.4</span> 接口映射</h3>
<ul>
<li><code>IF-REV-010</code>:营收、收费、欠费、渠道、客户等统计查询接口,承接主题查询、维度筛选、指标汇总和权限/导出边界。</li>
</ul>
<h3 data-number="2.9.5" id="落地边界-6"><span
class="header-section-number">2.9.5</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:主要统计源数据在客户、抄表、账单、收费、交易和渠道等领域均已具备,足以支撑经营统计口径设计。</li>
<li><strong>部分落地</strong>:部分统计结果可能依赖聚合视图、汇总查询或报表层实现,当前未见明确的
backend 统计控制器或独立统计模型入口。</li>
<li><strong>文档先行</strong>预测类、专题分析类深度模型、BI
大屏和独立数仓能力暂不写成后端已实现能力。</li>
</ul>
<p><a id="mod-rev-008"></a></p>
<h2 data-number="2.10" id="rev-008-代收与银行业务"><span
class="header-section-number">2.10</span> REV-008 代收与银行业务</h2>
<h3 data-number="2.10.1" id="功能说明-7"><span
class="header-section-number">2.10.1</span> 功能说明</h3>
<p>支持银行代收、银行代扣、实时收费、夜间批量扣款、对账与结算处理,是
SYS-002 面向 <code>SYS-009</code> 支付与银行结算能力的业务承接模块。</p>
<h3 data-number="2.10.2" id="业务流程-5"><span
class="header-section-number">2.10.2</span> 业务流程</h3>
<pre class="mermaid"><code>flowchart TD
A[生成代扣批次] --&gt; B[校验签约与待扣账单]
B --&gt; C[调用IF-REV-011下发批次]
C --&gt; D[SYS-009对接银行处理]
D --&gt; E[回写扣款结果]
E --&gt; F[执行对账与差异识别]
F --&gt; G{差异是否已处理}
G --&gt;|否| H[进入人工补偿]
G --&gt;|是| I[确认结算并更新状态]
</code></pre>
<h3 data-number="2.10.3" id="关键规则-5"><span
class="header-section-number">2.10.3</span> 关键规则</h3>
<ol type="1">
<li>渠道、路由、接口配置、签约、交易、回调、异常、对账、结算形成完整银行业务链条。</li>
<li>实时收费场景由渠道交易流水驱动账单核销,批量代扣场景由签约关系与批次处理驱动。</li>
<li>对账结果区分一致、长款、短款、失败待处理等状态,支持差异追踪与人工补偿。</li>
<li>国密报文、批量文件、标准 API 等技术细节由 <code>SYS-009</code>
承载SYS-002 保留业务规则与状态协同。</li>
<li>当前 backend 已确认 <code>BankWithholding</code>
六条银行入口(客户状态查询、送盘、送盘状态查询、取消送盘、回盘、回盘状态查询)已形成最小实现态闭环;<code>BankCollection</code>
平行链路、对账与结算协同仍以“部分实现或文档先行”表述,不得统一写成已闭环能力。</li>
<li>银行代扣文件传输配置按“默认规则 + 银行通道覆盖 + 租户覆盖 +
租户-银行通道覆盖”建模,命中优先级固定为
<code>TENANT_CHANNEL &gt; TENANT &gt; CHANNEL &gt; DEFAULT</code></li>
<li>目录字段至少区分 <code>send/back/reconcile/archive/localTemp</code>
五类阶段;上层覆盖未完整定义时按字段级回退,不允许生成空路径。</li>
<li>路径模板仅允许
<code>{tenantId}</code><code>{companyId}</code><code>{channelCode}</code><code>{yyyyMMdd}</code><code>{yyyyMM}</code><code>{batchNo}</code><code>{fileName}</code>
七个固定变量;命中未声明变量或缺少变量取值时立即阻断文件动作。</li>
<li><code>BankWithholding</code> 在送盘创建时固化
<code>sendProtocol/sendDir/sendFilePath</code>
<code>backProtocol/backDir</code>,配置切换仅影响新发起文件动作,已落库批次继续沿用原解析结果。</li>
</ol>
<h3 data-number="2.10.4" id="核心数据-7"><span
class="header-section-number">2.10.4</span> 核心数据</h3>
<ul>
<li><code>bk_payment_channel</code>:支付渠道。</li>
<li><code>bk_channel_api_config</code>:渠道接口配置。</li>
<li><code>bk_channel_route_rule</code>:渠道路由规则。</li>
<li><code>bk_withholding_agreement</code>:代扣签约。</li>
<li><code>bk_withholding_batch</code><code>bk_withholding_item</code>:代扣批次与明细。</li>
<li><code>bk_reconcile_batch</code><code>bk_reconcile_diff</code>:对账批次与差异。</li>
<li><code>bk_settlement_batch</code>:结算批次。</li>
<li><code>bk_transaction</code><code>bk_transaction_callback</code><code>bk_transaction_exception</code>:交易、回调、异常。</li>
<li><code>biz_collection</code><code>biz_withholding</code>:代收/代扣业务主对象。</li>
</ul>
<h4 data-number="2.10.4.1" id="文件传输配置与审计补充"><span
class="header-section-number">2.10.4.1</span>
文件传输配置与审计补充</h4>
<ul>
<li>环境默认规则通过 Spring profile + Nacos
承接,不在仓库样例中写入真实密码、私钥或证书。</li>
<li><code>bk_channel_api_config</code> 使用专用
<code>apiType=FILE_TRANSFER_CONFIG</code>
承接文件传输覆盖配置,<code>extParams</code>
记录作用域、业务类型、协议、连接引用和五类目录字段。</li>
<li><code>bk_withholding_batch</code>
固化送盘/回盘目录与协议,<code>bk_reconcile_batch</code>
固化对账阶段最终
<code>protocol/dir/filePath/fileName</code>,用于审计与问题回放。</li>
</ul>
<h3 data-number="2.10.5" id="迁移补充旧系统承接-6"><span
class="header-section-number">2.10.5</span> 迁移补充(旧系统承接)</h3>
<h4 data-number="2.10.5.1" id="银行托收"><span
class="header-section-number">2.10.5.1</span> 银行托收</h4>
<ul>
<li>旧系统“银行托收”菜单重点承接托收送盘、托收信息查询和托收结果回看。</li>
<li>当前设计已形成 <code>biz_collection</code> + <code>bk_*</code>
渠道模型,迁移时应补出“旧托收菜单 →
托收批次/交易/回盘结果”的映射,而不是按旧菜单名平移建模。</li>
<li>旧托收历史记录应至少保留送盘批次、客户范围、送盘结果、回盘结果和账单核销结果。</li>
</ul>
<h4 data-number="2.10.5.2" id="实时收费查询与对账"><span
class="header-section-number">2.10.5.2</span> 实时收费查询与对账</h4>
<ul>
<li>旧系统“实时收费”更偏运营查询和渠道对账入口,不只是支付成功回写。</li>
<li>当前建议以 <code>bk_transaction*</code>
作为主承接对象,并补充按结算日期、银行/渠道、收费结果、差异状态查询和导出能力说明。</li>
<li>对旧“实时收费汇总/日志/明细”对象P0
阶段先按历史只读查询口径保留,不误写为当前已落地的独立主模型。</li>
</ul>
<h4 data-number="2.10.5.3" id="当前实现对齐说明"><span
class="header-section-number">2.10.5.3</span> 当前实现对齐说明</h4>
<ul>
<li><code>PayCeb</code>
路径已具备欠费查询、缴费处理、流水唯一性校验和交易日志留痕,可作为实时收费基础闭环的实现证据。</li>
<li><code>BankWithholding</code>
路径已具备签约、解约、客户状态查询、送盘、送盘状态查询、取消送盘、回盘、回盘状态查询及对应交易留痕的实现证据,可作为代扣最小实现态闭环依据。</li>
<li><code>BankCollection</code>
路径当前仍仅能确认签约、解约与协议/交易日志处理具备实现证据。</li>
<li>对账、结算、真实银行文件解析、SFTP/文件通道联调和运行态样本补证当前仍未闭环,正式文档应继续保留为后续完善项。</li>
</ul>
<h3 data-number="2.10.6" id="接口映射-7"><span
class="header-section-number">2.10.6</span> 接口映射</h3>
<ul>
<li><code>IF-REV-011</code>:代扣批次、对账与结算协同入口。</li>
<li><code>IF-EXT-001</code>:银行代扣批次下发与回盘协同。</li>
<li><code>IF-EXT-003</code>:银行实时收费查询、缴费与结果确认协同。</li>
</ul>
<h3 data-number="2.10.7" id="落地边界-7"><span
class="header-section-number">2.10.7</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:渠道、路由、交易、回调、异常、代扣/托收签约、解约,以及
<code>BankWithholding</code>
的客户状态查询、送盘、送盘状态查询、取消送盘、回盘、回盘状态查询和对应日志留痕等主对象已具备明确实现证据。</li>
<li><strong>部分落地</strong><code>BankCollection</code>
批次、明细、送盘、回盘、状态查询、差异台账和后台资源管理入口已具备对象或骨架,但不等同于银行协同闭环全部完成;<code>BankWithholding</code>
的真实文件解析、异常补偿和运行态联调证据仍待补齐。</li>
<li><strong>文档先行</strong>:夜间批量代扣调度、完整对账处理、结算确认、扩展银行台账等内容不得在当前阶段写成已完成能力。</li>
</ul>
<p><a id="mod-rev-009"></a></p>
<h2 data-number="2.11" id="rev-009-业务参数配置"><span
class="header-section-number">2.11</span> REV-009 业务参数配置</h2>
<h3 data-number="2.11.1" id="功能说明-8"><span
class="header-section-number">2.11.1</span> 功能说明</h3>
<p>负责营收域的价格参数、客户编号规则、页面配置、打印与渠道相关业务参数配置,为客户、开账、收费、发票、催缴等模块提供统一配置支撑。</p>
<h3 data-number="2.11.2" id="关键设计-2"><span
class="header-section-number">2.11.2</span> 关键设计</h3>
<ol type="1">
<li>业务参数按租户、单位、片区、业务类别分层管理。</li>
<li>价格体系、客户编号规则、页面字段配置、打印与通知参数统一归口维护。</li>
<li>配置变更应具备版本化、操作留痕与生效范围控制。</li>
</ol>
<h3 data-number="2.11.3" id="核心数据-8"><span
class="header-section-number">2.11.3</span> 核心数据</h3>
<ul>
<li><code>biz_parameter_settings</code>:业务参数配置。</li>
<li><code>biz_page_settings</code><code>biz_page_settings_detail</code>:页面配置。</li>
<li><code>biz_price_category</code><code>biz_price_template</code><code>biz_template_dept_rel</code>:价格归属与模板站点关系。</li>
<li><code>biz_cust_no_rule</code>:客户编号规则。</li>
<li><code>sys_wechat_app_settings</code>:微信/微网厅基础配置。</li>
</ul>
<h3 data-number="2.11.4" id="迁移补充旧系统承接-7"><span
class="header-section-number">2.11.4</span> 迁移补充(旧系统承接)</h3>
<ul>
<li>旧系统后台存在“页面配置、业务字段、微信参数、打印维护”等运营配置入口。</li>
<li>当前建议统一按业务参数、页面配置、渠道参数与打印参数归口承接,不新增“微客服后台配置”并行主文档。</li>
<li>迁移时需明确三类配置映射:客户/业务办理字段展示与校验规则、微信/微网厅基础参数、打印模板与补打策略;未确认已实现的高级灰度能力继续按“文档先行”处理。</li>
</ul>
<h3 data-number="2.11.5" id="接口映射-8"><span
class="header-section-number">2.11.5</span> 接口映射</h3>
<ul>
<li><code>IF-REV-012</code>:查询与维护价格模板、业务参数、页面参数配置。</li>
<li><code>IF-UP-004</code>:统一平台参数字典能力协同,为营收域参数提供基础字典支撑。</li>
</ul>
<h3 data-number="2.11.6" id="落地边界-8"><span
class="header-section-number">2.11.6</span> 落地边界</h3>
<ul>
<li><strong>已落地</strong>:业务参数、页面配置、价格归属与模板站点关系、客户编号规则等核心配置对象。</li>
<li><strong>部分落地</strong>:部分打印模板、通知策略等参数由统一平台或外部渠道参数共同承载,营收域仅保留业务侧映射。</li>
<li><strong>文档先行</strong>:参数灰度发布、多版本并行生效等高级治理能力当前仅保留设计语义,不宣称为独立实现模块。</li>
</ul>
</body>
</html>