Files
uniprop-manual/prop-acc/scenarios/meter/exception-high-consumption.md
2026-05-26 00:28:09 +08:00

240 lines
8.4 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 · meter · 场景 - 高用量异常(漏水/电器故障)
aliases:
- 高用量预警
- 漏水告警
- exception-high-consumption
- HighConsumptionReadingsListWidget
- 场景-高用量异常
tags:
- 场景
- prop-acc
- 计量表
- 异常
audience:
- 业务人员
- 业户
- 抄表员
status: 已发布
sub_feature: meter
last_review: 2026-05-26
code_version: 2026-05-22
---
# 场景:高用量异常(漏水/电器故障)
业户**用量异常**(漏水 / 电器故障 / 偷电),系统通过 `HighConsumptionReadingsListWidget` 在月度抄表数据出来后**主动预警**,业务人员介入排查,避免账单生成后业户暴击 / 投诉。
## 典型情境
> [!example] 真实情境
> 5 月底集抄 / 批量抄表完成,王主管打开 `MeterDashboard`:
>
> - `HighConsumptionReadingsListWidget` 显示 **本月用量 top 20** 的 reading
> - 其中前 3 名:
>
> | 业户 | 表 | 上月 | 本月 | 用量 | 异常? |
> |---|---|---|---|---|---|
> | 张阿姨(12-3-501) | 水表 | 12 吨 | **800 吨** | 800 | 🔴 极度异常(漏水) |
> | 陈先生(12-3-502) | 电表 | 200 度 | **2,800 度** | 2,800 | 🔴 异常高(空调故障 / 偷电) |
> | 商铺一楼餐厅 | 电表 | 1,500 度 | **3,200 度** | 3,200 | 🟡 警告(正常波动?旺季?)|
>
> 王主管立即处理。
## 业务人员视角
### Widget 显示
`HighConsumptionReadingsListWidget`(后台 → MeterDashboard):
| 列 | 内容 |
|---|---|
| 业户 / 资产 | 房号 + 业户姓名 |
| 表编号 | meter code |
| 上月用量 | previous reading 推出 |
| 本月用量 | consumption |
| 倍数 | 本月 / 上月 |
| 抄表日期 | read_at |
| 操作 | 链接到 reading 详情 / 查看 / 联系业户 |
排序:**按 consumption 降序 top 20**(简版实现,详见下方"待补")。
### 分级处置
| 级别 | 触发 | 处置 |
|---|---|---|
| 🔴 **极度异常**(>10× 历史平均) | 漏水 / 大型故障 | 立即联系业户 + 派人现场检查 |
| 🔴 **高异常**(>3× 历史平均) | 设备故障 / 习惯改变 | 联系业户确认 |
| 🟡 **警告**(>1.5× 历史平均) | 正常波动 / 季节性 | 推送提醒 / 标记观察 |
| 🟢 **正常** | < 1.5× | 不处理 |
### 处理流程(漏水案例)
```mermaid
flowchart TD
A[Widget 显示张阿姨水 800 吨] --> B[王主管联系张阿姨]
B --> C{业户回应}
C -->|"我不知道,你来看看"| D[派维修队上门]
C -->|"啊?我不可能用这么多"| D
C -->|"我装修了用水多"| E[业户接受账单]
D --> F{查到原因?}
F -->|墙内暗水管漏水| G[维修 + 重算账单]
F -->|无可见漏水点| H[换表测试是否表故障]
H --> I{换表后情况}
I -->|新表用量正常| J[确认旧表故障 + 走修正流程]
I -->|新表用量仍异常| K[排查家电 / 业户习惯]
G --> L[与业户协商:走 max 封顶/部分减免/重算]
J --> L
```
### 修正账单(若证实表故障)
如果证实是表故障 / 抄表错:
1. 走 [[replace-broken-meter|换表]]([[decommission-and-locking|退役旧表]])
2. 旧 reading 已生成 Bill → 走 [[exception-readings-locked-after-bill|作废 Bill]] 流程
3. 重新算正确用量 → 重生成 Bill
4. 业户付正确金额
## `HighConsumptionReadingsListWidget` 实现现状
> [!info] 当前实现简版,issue.md Q5 已标待升级
> 当前:**按 consumption 降序 top 20**,不是统计学意义的异常检测。
>
> issue.md Q5"待补":
>
> - **3σ 异常**(对比历史 3 个月平均的标准差)
> - **倒走告警**(current < previous)
> - **0 读数告警**(可能表故障)
>
> 当前简版的缺陷:
> - 排名靠前的可能是商铺 / 工业表(正常用量大),不是真异常
> - 漏掉"中等用量但异常波动"的住户(从 12 吨涨到 50 吨,绝对数小但相对倍数高)
> - 没区分"业户家用电习惯变了"vs"漏水 / 故障"
业务人员**需自行判断**(看 Widget 内容 + 历史用量对照 + 联系业户)。
## 业户视角
### 您可能收到的联系
物业打电话 / 微信 / 上门:
> 张阿姨您好,您家本月水量异常高(800 吨,平时 12 吨)。请问您家最近是否有装修 / 漏水 / 大量用水活动?如有疑问,我们可派维修队上门检查。
### 您要做的
| 情况 | 您要做 |
|---|---|
| 确实在装修 / 大量用水 | 接受账单 + 看是否触发 [[generate-bill-min-max-cap|max 封顶]] 减免 |
| 不知道原因 / 怀疑漏水 | 同意物业派人上门检查 |
| 怀疑表 / 系统错 | 要求看 [[read-with-photo-proof|抄表照片]] + 派人现场再读一次 |
### 检测到漏水后的减免
物业**通常会减免**(看政策):
- 部分减免(承担一半 / 30%)
- 全免(罕见,看物业宽厚)
- 按"平时月用量"算账(常见)
- max 封顶后业户支付封顶值,差额物业承担
具体看物业与业户的协商 + 物业的"漏水维修保险"理赔。
## 系统流程
```mermaid
sequenceDiagram
participant 集抄/抄表员
participant 系统
participant Widget[HighConsumptionReadingsListWidget]
participant 王主管
participant 业户
集抄/抄表员->>系统: 推 / 录入本月 reading
系统->>系统: 建 MeterReading + 算 consumption
Note over 系统: 月度数据完成
王主管->>Widget: 打开 MeterDashboard
Widget->>系统: SELECT TOP 20 reading ORDER BY consumption DESC
系统-->>Widget: 显示 top 20 异常清单
王主管->>王主管: 看清单 → 分级处置
loop 每个 🔴 异常
王主管->>业户: 联系 + 排查
alt 漏水 / 故障
王主管->>系统: 走修正流程(换表 / 作废 Bill 重算)
else 业户认账
王主管->>系统: 接受 + 触发 max 封顶减免(若适用)
end
end
```
## 高用量的常见原因清单
| 原因 | 业户感知 | 处置 |
|---|---|---|
| **水管漏水**(墙内 / 管井) | 业户不知道,直到账单异常 | 派维修队 + 修管子 + 减免 |
| **马桶漏水**(节流阀坏) | 业户偶尔听到流水声 | 业户自修 / 物业协助 |
| **空调 24h 不关** | 业户习惯 | 业户调整 / 接受账单 |
| **旧冰箱故障**(压缩机一直跑) | 业户不知道 | 业户换冰箱 |
| **电热水器**(储热式漏电 / 一直加热) | 业户不知道 | 业户检查 |
| **业户偷电 / 绕表** | 物业 / 国家电网监管 | 法律责任 |
| **抄表错** | (系统层面)| 走 [[exception-readings-locked-after-bill|修正]] |
| **集抄数据错** | (系统层面)| 同上 |
| **表故障**(乱跳)| 业户长期感觉 | [[replace-broken-meter|换表]] |
| **大型装修 / 大量用水活动** | 业户自知 | 业户接受账单 |
## 常见问题
> [!question] Widget 显示的"top 20"是当月吗?
> 看 Widget 实现。可能是:
>
> - 本月(`read_at` 在当月)
> - 最近 30 天
> - 所有未结账 reading
>
> 业务上推荐"本月",每月初看一遍 + 月底再看一遍。
> [!question] 排查发现是抄表错 + 已经生成 Bill 了怎么办?
> 走 [[exception-readings-locked-after-bill]] 流程:作废 Bill → 修正 reading → 重生成 Bill。复杂,需运维 / 高权限介入。
> [!question] 业户漏水但拒不修怎么办?
> 物业**强烈建议** + **法律手段**(漏水可能影响楼下邻居,涉及侵权)。系统层面无法干预。
> [!question] 商铺 / 工业用户的"高用量"和住宅"高用量"判断标准应该一样吗?
> **不一样**。商铺正常用量本来就大。Widget 当前简版**无区分**,需业务人员自己判断。
>
> 升级建议:Widget 按 `asset_type`(住宅 / 商铺 / 工业)分别统计 + 各自的"异常阈值"。
> [!question] 排查后没找到原因(业户也说没漏水也没新增电器)?
> 几个可能:
> - 业户家有人偷接电(罕见)
> - 表故障(漂移)→ 换表观察一个月
> - 集抄 / 抄表系统 bug(同时多户异常?排查系统)
> [!question] 高用量预警之外,有"用量异常低"(可能业户搬走 / 表故障 0 读数)预警吗?
> 当前**无**(只有高用量 widget)。需求详见 issue.md Q5"待补"。
## 异常分支
- 排查确认是抄表错 → [[exception-readings-locked-after-bill]] 修正
- 排查确认是表故障 → [[replace-broken-meter|换表]]
- 业户接受账单 → 走 [[generate-bill-min-max-cap|max 封顶]](若适用)
- 待抄表清单(对偶场景)→ [[audit-meters-needing-reading]]
## 相关文档
- [[multiplier-and-tiered-pricing]]
- [[generate-bill-min-max-cap]]
- [[exception-readings-locked-after-bill]]
- [[replace-broken-meter]]
- [[audit-meters-needing-reading]]
- [[reading-source-and-photo-proof]]