--- 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]]