Document the existing REV-002 backend billing-generation path and preserve a conservative partial-implementation judgment so the design stays aligned with current code evidence. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
10 KiB
Feature Specification: REV-002 开账计费与账单生成缺口补齐
Feature Branch: 005-rev002-billing-generation-gap
Created: 2026-03-18
Status: Draft
Input: User description: "docs/design/02_Detailed_Design/12_REV_Detailed.md 中 REV-002 开账计费与账单生成缺口补齐,明确 IF-REV-005 的业务边界、账单生成规则、结果表达、数据承接口径与治理台账同步"
Document Scope & Sources (mandatory)
- Target documents:
docs/design/02_Detailed_Design/12_REV_Detailed.mddocs/design/03_Technical_Design/03_Interface_Design.mddocs/design/03_Technical_Design/01_Database_Design.mddocs/design/00_Management/15_SYS002_Requirement_Breakdown.mddocs/design/00_Management/01_Project_Progress.mddocs/design/00_Management/03_Task_Checklist.md
- Primary source of truth:
docs/design/02_Detailed_Design/12_REV_Detailed.mddocs/design/03_Technical_Design/03_Interface_Design.mddocs/design/03_Technical_Design/01_Database_Design.mddocs/design/01_Overview/03_Summary_Design.mddocs/design/00_Management/04_Writing_Guide.mdAGENTS.md
- Reference sources:
docs/design/00_Management/15_SYS002_Requirement_Breakdown.mddocs/guides/BACKEND_CURRENT_STATUS.mddocs/guides/BACKEND_TABLE_MAPPING.mddocs/design/04_Appendix/Archive/05_Data_Dictionary/营收数据字典.mddocs/design/04_Appendix/Archive/01_Requirements/
- Scope decision: In scope. 本 feature 仅补齐
REV-002中“开账计费与账单生成”缺口,重点收口IF-REV-005、计费规则来源、账单生成结果表达、数据承接口径和治理台账同步;不扩展到整个抄表采集链路、收费核销链路或新增平行正式主稿。
User Scenarios & Testing (mandatory)
User Story 1 - 收口开账生成规则 (Priority: P1)
作为文档维护者,我需要把 REV-002 的开账计费规则、账单生成触发条件、费用组成和结果表达写清楚,使评审者能够明确“抄表数据如何转为营业账”和“账单生成结果如何表达”。
Why this priority: 当前 REV-002 已具备抄表与开账摘要,但“IF-REV-005` 的闭环规则和结果表达”仍偏概括,后续接口、数据库和实现评估都依赖这部分先收口。
Independent Test: 单独评审 12_REV_Detailed.md 中 REV-002 相关章节,应能明确账单生成入口、价格规则来源、费用组成、异常处理和生成结果表达。
Acceptance Scenarios:
- Given 当前文档只说明“按价格模板和费用组成计费”, When 评审者阅读补齐后的详细设计, Then 能明确开账计费的输入、规则来源、结果对象和后续流转边界。
- Given 后续需要将账单生成闭环拆为研发任务, When 维护者依据该规格拆解工作, Then 不需要再回到 Archive 才能判断本轮正式范围和排除项。
User Story 2 - 统一 IF-REV-005 与数据承接口径 (Priority: P2)
作为接口与数据设计评审者,我需要看到 IF-REV-005 的输入输出、状态语义、异常口径和数据库承接口径,使账单生成不再停留在“生成账单”这种过于抽象的描述。
Why this priority: REV-002 当前被评为“部分实现”,核心风险就在于接口闭环和数据承接口径不够清楚,容易导致文档与已有 charge/chargedetail 实现映射失真。
Independent Test: 单独评审接口主文档和数据库主文档,应能确认 IF-REV-005 的查询/生成边界、结果字段语义和 biz_charge* 承接口径。
Acceptance Scenarios:
- Given 评审者查看接口设计, When 阅读
IF-REV-005章节, Then 能明确请求条件、生成结果、异常语义和状态表达。 - Given 评审者查看数据库设计, When 阅读开账与账单相关章节, Then 能明确
biz_charge、biz_charge_detail、价格模板和费用组成在账单生成中的承接关系。
User Story 3 - 同步治理与实现评估结论 (Priority: P3)
作为后续立项和实施跟踪人员,我需要在治理台账中看到 REV-002 的当前缺口、设计收口结果和后续建议,避免继续把“部分实现”的范围说得过宽或过窄。
Why this priority: 15_SYS002_Requirement_Breakdown.md 已明确 REV-002 的开账计费与账单生成为高优先缺口,文档收口后必须同步治理结论。
Independent Test: 单独检查治理台账,应能明确 REV-002 当前属于“文档收口后仍为部分实现”的状态,并能看到后续建议。
Acceptance Scenarios:
- Given 评审者查看需求拆解与实现评估文档, When 阅读
SYS002-REQ-004对应内容, Then 能明确设计收口结果、当前实现状态和下一步建议。 - Given 项目需要记录本轮重要文档动作, When 查看项目进度与任务清单, Then 能定位
REV-002的开账计费规则收口记录和校验结果。
Edge Cases
- 当抄表数据存在异常复核、估抄、补抄或重录场景时,账单生成规则如何保持正式文档口径一致,而不展开实现细节?
- 当特殊开账、无码客户开账或罚款类开账进入同一账单主模型时,如何定义结果表达而不误写为独立平行主表?
- 当价格模板、阶梯规则、费用组成缺失或冲突时,如何在接口和详细设计中统一表达“阻断生成”的异常语义?
- 当当前 backend 已有
charge/chargedetail入口但未见明确“专用账单生成闭环接口”证据时,如何如实表达“部分实现”而不夸大为完整闭环?
Requirements (mandatory)
Functional Requirements
- FR-001: Specification MUST identify the exact target documents for
REV-002billing-generation closure and ledger sync. - FR-002: Specification MUST identify
12_REV_Detailed.md、03_Interface_Design.md、01_Database_Design.mdas the main source-of-truth documents for this feature. - FR-003: Specification MUST record that the feature is in scope only for
IF-REV-005business boundary, billing-rule source, result expression, database-side retention, and governance sync, not for the entire meter-reading or payment domain. - FR-004: Specification MUST preserve the single-source-of-truth model and MUST NOT create a parallel formal document for billing generation.
- FR-005: Specification MUST define the billing-generation trigger path from validated reading result to charge creation, including rule sources such as price category, price template, tier rule, cost component, and water-use scheme where applicable.
- FR-006: Specification MUST define the minimum result expression for generated charge outputs, including master/detail relationship, period, customer/account linkage, amount composition, and downstream handoff boundary.
- FR-007: Specification MUST define the formal boundary of
IF-REV-005, including request preconditions, output result semantics, exception semantics, and what remains outside the interface. - FR-008: Specification MUST define how abnormal reading and special-billing scenarios relate to the normal billing flow without requiring a new standalone online billing model.
- FR-009: Specification MUST define the database-side retention and mapping boundary for billing generation, clarifying the role of
biz_charge、biz_charge_detailand related pricing objects. - FR-010: Specification MUST define exclusions for this feature, including payment write-off, invoice issuance, reminder follow-up, and unrelated statistics/reporting concerns.
- FR-011: Specification MUST capture cross-document consistency impacts for
IF-REV-005, billing terminology, result-state wording, historical “特殊开账/开账记录”承接 and governance wording. - FR-012: Specification MUST list the validation actions required after document updates, including single-file validation for impacted docs and link consistency checks.
- FR-013: Specification MUST state that formal document changes under this feature require synchronized updates to
01_Project_Progress.mdand03_Task_Checklist.md. - FR-014: Specification MUST record the current implementation judgment for this gap as “部分实现,需进一步收口账单生成闭环” unless stronger evidence is found later.
Assumptions
- 本 feature 以正式文档补齐和后续研发立项准备为目标,默认不在本轮直接修改 backend 代码。
IF-REV-005继续作为REV-002的正式账单生成接口编号,不新发明新的IF-*编号体系。- 当前 backend 已见
charge/chargedetail/collection相关入口,因此本轮默认按“部分实现,闭环未完全收口”处理。 - 账单生成结果主要由
biz_charge、biz_charge_detail和价格/费用规则对象承接,本轮不臆造新的独立账单主模型。 - 特殊开账属于营业账主模型下的来源类型或业务类型扩展,不默认要求新建平行表族。
Key Entities (include if feature involves data)
- Billing Trigger: 从抄表校验结果进入开账计费的正式触发条件集合。
- Billing Rule Source: 价格归属、价格模板、阶梯规则、费用组成和计划用水方案等规则来源。
- Billing Result: 账单生成后的主单/明细结果表达,包括账期、客户、金额组成和状态边界。
- Billing Query Contract:
IF-REV-005的输入条件、输出结果和异常语义定义。 - Charge Master/Detail Mapping:
biz_charge与biz_charge_detail的正式承接口径。 - Ledger Update: 当
REV-002文档收口后,需要同步回写到项目进度和任务清单的治理记录。
Success Criteria (mandatory)
Measurable Outcomes
- SC-001: 评审者可在 5 分钟内从规格中定位
REV-002的目标文档、开账计费边界、规则来源和排除项。 - SC-002: 规格中至少覆盖 3 类独立可评审内容:开账规则闭环、
IF-REV-005接口边界、数据库承接口径/实现评估。 - SC-003: 规格明确区分至少 5 项关键生成口径或结果要素,如账期、客户/账户、应收金额、费用组成、主明细关系、异常阻断语义。
- SC-004: 后续执行
/speckit.plan时,规划者无需再补充范围澄清即可将工作拆分为详细设计补齐、接口补齐、数据库口径补齐和治理台账同步四类任务。 - SC-005: 规格明确列出全部必要验证动作,审阅者可直接据此执行至少 4 项文档校验或一致性检查。