--- title: prop-acc · prepaid · 场景 - 抵扣计量账单(水电费) aliases: - 抵水电费 - 计量账单抵扣 - consume-meter-bill - 场景-预存款抵计量账单 tags: - 场景 - prop-acc - 预存款 - 消费 - 计量 audience: - 业户 - 业务人员 status: 已发布 sub_feature: prepaid last_review: 2026-05-25 code_version: 2026-05-22 --- # 场景:抵扣计量账单(水电费) 业户的水表 / 电表 / 燃气表抄表后生成账单(由 Meter 模块出账,详见未来的 `meter/` 子模块文档),业务人员从业户的预存款余额抵扣。流程与 [[consume-monthly-property-bill|物业费抵扣]]**几乎相同**,差异在**账单的 bill_type** 和**金额浮动性**。 ## 典型情境 > [!example] 真实情境 > 张阿姨家 5 月水表抄表:本月用水 12 吨,@ 4.5 元/吨 = ¥54;电表抄表:用电 280 度,@ 0.6 元/度 = ¥168。两张计量账单合计 ¥222,从张阿姨预存款余额 ¥3,400 抵扣。 ## 业户视角 ### 您会感受到什么 - 抄表数据通过物业 App / 集抄系统进入系统 - 几天内出账单(可能合并为"水电费"一张,也可能水、电分开两张) - 业务人员手动 / 自动从预存款抵扣 - 收到收据:"水费 ¥54" + "电费 ¥168"(或合并"水电费 ¥222") - 推送:"5 月水电费 ¥222 已抵扣,余额 ¥3,178" ### 您要做什么 什么都不用。看明白即可。**关键差异**:计量账单**金额每月浮动**(取决于用量),业户应: - 用量大时确保余额充足(预存款充值要考虑这部分) - 异常用量(突然翻倍)应自查(可能漏水 / 老人忘关电器) - 对账单金额有异议 → 走 [[../adhoc/cancel-amount-error-redo|纠错流程]](见 adhoc 模块,通用) ## 业务人员视角 > [!info] 流程基本同物业费抵扣 > 看 [[consume-monthly-property-bill]] 完整流程。本场景只补充**计量账单特有**的注意点。 ### 关键差异:bill_type | 字段 | 物业费抵扣 | 计量账单抵扣 | |---|---|---| | `Bill.bill_type` | `property_fee` | `meter`(或 `water` / `electricity` / `gas`,看 Bill 模块设计)| | `CollectionOrder.collection_type` | `Bill` | `Bill`(都是 Bill 视角)| | `meta.fund_source` | `prepaid` | `prepaid` | | Receipt 文案 | "物业费 ¥800" | "水费 ¥54" / "电费 ¥168"(看 Bill 的 line items)| > 注:具体 bill_type 枚举值看 Bill 模块定义。本文按"计量类"统称。 ### 关键差异:金额来源 物业费金额是**固定的**(合同约定,每月不变)。计量账单金额是**计算出来的**: ``` 本月用量 = 本月抄表 - 上月抄表 本月金额 = 用量 × 单价(RatePlan) ``` 数据流:Meter 抄表 → MeterReading 记录 → Bill 生成(按 RatePlan 计算金额) → 业务人员抵扣。 详见 Meter 模块文档(待补)。 ### 关键差异:可能分单或合单 各物业财务习惯不同: | 方式 | 优 | 缺 | |---|---|---| | **分单**(水、电、燃气各一张 Bill)| 业户能看清单项 | 业务人员要抵多张 | | **合单**(一张"5月水电费 ¥222")| 操作快 | 业户看不清各项 | 系统两种都支持,看 Meter / Bill 模块的出账配置。 ## 系统流程 ```mermaid sequenceDiagram participant 集抄系统 participant Meter participant Bill participant 财务 participant Filament participant Account[PrepaidAccount] participant 数据库 集抄系统->>Meter: 推送本月抄表数据 Meter->>数据库: 写 MeterReading + 计算用量 Meter->>Bill: 生成 Bill(bill_type=meter, amount=222) Bill->>数据库: status=Unpaid Note over 财务: 几天后业务人员处理 财务->>Filament: ConsumeAction(选水电费 Bill) Filament->>Account: consume(Bill, 222) Account->>数据库: 建 CO(type=Bill, meta.fund_source=prepaid) Account->>数据库: 建 PrepaidTransaction(consume, 3400→3178) Account->>Bill: recordPayment(222) → Paid Account->>监听器: 触发 CollectionOrderCompleted 监听器->>数据库: 建 Receipt("水电费 ¥222") 财务-->>业户: 推送 + 收据 ``` ## 流水台账(累计) | 流水 | type | amount | balance_before | balance_after | related_bill_id | 备注 | |---|---|---|---|---|---|---| | ... | (前面省略)| | | | | | | N | consume | 800 | 4200 | 3400 | Bill #5月物业费 | 5 月物业费抵扣 | | **N+1** | **consume** | **222** | **3400** | **3178** | **Bill #5月水电费** | **本场景** | ## 用量异常的处理 > [!warning] 用量翻倍 / 异常巨高如何处理 > > **场景**:张阿姨家平时月用水 12 吨,5 月用了 80 吨(翻 7 倍)。原因可能是: > > | 原因 | 处理 | > |---|---| > | 水管漏水 | 业户自查,联系物业维修;账单按事实承担(可能可申请减免)| > | 抄表录错 | 走 [[../adhoc/cancel-amount-error-redo]] 流程,反向调整账单 | > | 集抄系统 bug | 运维介入,重新抄表 / 校准 | > | 业户家用水设备故障 | 业户自担,可向物业申请协助维修 | > > 异常账单**不要直接抵扣** —— 先核实再处理,避免业户余额被错误清空。系统不主动识别"用量异常",由业务人员判断。 ## 常见问题 > [!question] 水电费 Bill 是 Meter 模块生成的,跟其他账单有什么区别? > 唯一差别在 `bill_type` 字段和金额来源(计算 vs 固定)。对预存款 consume 流程**完全透明** —— `ConsumeFromPrepaidAccountAction` 不区分 bill_type,所有 Bill 一视同仁。 > [!question] 业户预存款余额不够付水电费怎么办? > 同 [[consume-monthly-property-bill]] 处理: > - 跳过该账单 → 推送业户充值 > - 业户充值后再抵 > - 不部分抵(避免半付状态) > [!question] 水、电、燃气分开还是合并出账? > 看 Meter 模块配置 + 物业财务习惯。预存款抵扣端**支持两种**。 > [!question] 月底 100+ 户的水电费账单要挨个抵,跟物业费一起 100+ 户,业务人员吃得消吗? > 同样痛点 —— 等 [[auto-deduction-design|自动 job]] 落地一起解决。job 实现后,**月初一次 job 同时抵扣物业费 + 水电费 + 其他账单**。 > [!question] 业户对水电费金额有异议(认为抄表错了)? > 走 Meter / Bill 模块的纠错流程: > 1. 业户提报 > 2. 物业核查抄表数据(物理表 vs 录入数据) > 3. 错了 → 走 Bill 的 reverse + reissue 流程(详见 Meter / Bill 模块文档) > 4. 没错 → 沟通业户接受(或走司法纠纷) ## 异常分支 - 物业费抵扣 → [[consume-monthly-property-bill]] - 多账单一起抵 → [[consume-multiple-bills-priority]] - 异常用量需 Bill 模块介入 → 见 Meter / Bill 模块(待补) - 月初批量(未来)→ [[consume-batch-auto-monthly]] ## 相关文档 - [[consume-monthly-property-bill]] - [[consume-multiple-bills-priority]] - [[consume-via-bill-collection-type]] - [[transaction-types]] - [[auto-deduction-design]]