Files
uniprop-manual/prop-acc/scenarios/prepaid/consume-meter-bill.md
2026-05-25 23:27:56 +08:00

180 lines
6.7 KiB
Markdown
Raw Permalink 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.
---
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]]