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>
2.2 KiB
2.2 KiB
Contract: REV-002 开账计费与账单生成缺口补齐
1. Formal Interface Allocation
| Interface | Role | Direction |
|---|---|---|
IF-REV-005 |
REV-002 开账计费与账单生成的正式业务接口 |
SYS-002 内部正式业务接口 |
约束:
IF-REV-005保持为REV-002的正式账单生成接口编号,不新增新的开账生成接口编号。- 本接口只承接开账计费与账单生成,不扩展到收费核销、发票申请或催缴触发。
2. Request Contract
| Field | Meaning | Required |
|---|---|---|
billPeriod |
账期 | 是 |
readingBatchNo |
抄表批次号 | 否 |
customerIds |
客户集合 | 否 |
meterReadIds |
抄表任务集合 | 否 |
dueDate |
应收截止日期 | 是 |
operatorId |
发起人 | 否 |
补充约束:
- 请求前提是抄表数据已通过校验或异常复核允许进入开账。
- 至少应提供批次、客户范围或抄表任务范围中的一种有效筛选条件。
3. Response Contract
| Field | Meaning |
|---|---|
generateCount |
成功生成账单数量 |
successList |
成功明细集合 |
successList[].chargeId |
账单主键 |
successList[].chargeCode |
账单编号 |
successList[].custId |
客户标识 |
successList[].totalAmount |
账单总金额 |
failureList |
失败明细集合 |
failureList[].reason |
失败原因 |
4. Result Boundary Contract
- 账单生成结果统一以
biz_charge作为主结果、biz_charge_detail作为明细结果承接。 - 特殊开账、无码客户开账或罚款类开账应通过来源类型、业务类型或依据说明纳入统一账单主模型,不单独发明平行主表。
- 账单生成成功后只表达“已生成营业账”的结果边界,后续收费、催缴、开票由下游模块继续承接。
5. Exception Contract
- 当价格模板、阶梯规则、费用组成、计划用水方案或必要来源数据缺失时,应阻断生成并返回失败原因。
- 失败语义必须与现有抄表开账类错误码口径一致,不得仅写日志而不在接口结果中表达。
- 异常复核、估抄、补抄、重录等场景只定义“是否允许进入生成”边界,不展开具体实现细节。