Files

180 lines
6.7 KiB
Markdown
Raw Permalink Normal View History

2026-05-25 23:27:56 +08:00
---
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]]