--- title: prop-acc · meter · 场景 - 待抄表清单 + 月度抄表完成率 aliases: - 待抄表清单 - 抄表完成率 - audit-meters-needing-reading - MetersNeedingReadingListWidget - 场景-待抄表审计 tags: - 场景 - prop-acc - 计量表 - 审计 audience: - 业务人员 - 财务 - 抄表员 status: 已发布 sub_feature: meter last_review: 2026-05-26 code_version: 2026-05-22 --- # 场景:待抄表清单 + 月度抄表完成率 物业**月底**核对:本月**应抄**多少张表(在役表数)vs **已抄**多少张(本月有 reading 的表)。差额 = **待抄表清单**(可能是抄表员漏抄 / 集抄掉线)。`MetersNeedingReadingListWidget` 在 `MeterDashboard` 实时显示。 ## 典型情境 > [!example] 真实情境 > 5 月 28 日王主管打开 `MeterDashboard`,看 `MetersNeedingReadingListWidget`: > > - 嘉禾花园在役表 1,200 张 > - 本月已抄 1,150 张 > - **待抄 50 张** > > 分析: > - 30 张:集抄掉线(`source=remote` 应自动推但没推) > - 15 张:抄表员遗漏(手抄区域漏了) > - 5 张:业户家无人无法入户读表 > > 5/30 截止前必须补齐(否则当月账单缺漏)。 ## 业务人员视角 ### Widget 显示 `MetersNeedingReadingListWidget`(MeterDashboard): | 列 | 内容 | |---|---| | 业户 / 资产 | 房号 + 业户姓名 | | 表编号 | meter code | | 费用类型 | 水/电/燃气 | | 上次抄表日期 | 上月 read_at | | 抄表来源 | manual / remote(看历史)| | 状态 | 未抄 / 部分缺漏 | | 操作 | 链接到该 meter 的录入入口 | 排序:**按上次抄表日期升序**(最久没抄的优先,可能问题最大)。 ### 完成率计算 ``` 本月完成率 = 本月已抄表数 / 在役表总数 = 1150 / 1200 = 95.8% ``` 业务上通常**目标 > 99%**(漏抄太多说明流程有问题)。 ### 分级处置 | 待抄类型 | 数量 | 处置 | |---|---|---| | 集抄掉线 | 30 | 联系集抄运营商 + 抄表员现场补抄 | | 抄表员漏抄 | 15 | 抄表员立即补抄 | | 业户无人 | 5 | 多次上门 / 与业户约时间 / 估算用量(罕见) | ### 处理流程 ```mermaid flowchart TD A[Widget 显示 50 张待抄] --> B{分类} B -->|集抄掉线 30 张| C[联系集抄运营商] C --> D{原因} D -->|网关故障| E[运营商修复 → 重推数据] D -->|个别表故障| F[抄表员现场补抄 + 走 replace-broken-meter] B -->|抄表员漏抄 15 张| G[立即补抄] B -->|业户无人 5 张| H[多次上门 / 约时间] H --> I{约不上} I -->|是| J[估算用量 / 用 min_amount 兜底 / 延后处理] I -->|否| G E --> K[完成率回升] F --> K G --> K ``` ### 月度执行清单 每月最后一周(25-30 号),业务人员清单: - [ ] 25 号:看 Widget,记录待抄数 + 分类 - [ ] 26-28 号:跟进集抄运营商 + 抄表员补抄 - [ ] 29 号:再看 Widget,核对剩余待抄 - [ ] 30 号:截止前完成 99%+,剩余的特殊处理 - [ ] 月初(1 号):看完成率报告 + 触发账单生成 ## 抄表员视角(李师傅) ### 自己的清单 抄表员手机 App 上显示**本月分配的清单**(类似 widget 但只显示自己负责的区域)。 每天进度: - 上午:看清单 + 规划路线 - 现场抄表 + 拍照 + 录入 - 下午回办公室:补录 / 同步 完成度自我管理。月底向王主管报告:"本月我负责的 X 张表已完成 Y 张,剩 Z 张是 [原因] 需 [协助]"。 ## `MetersNeedingReadingListWidget` 实现 > [!info] 当前实现的逻辑 > > SQL 大概: > > ```sql > -- 在役表里,本月没有 reading 的 > SELECT m.*, MAX(r.read_at) AS last_read_at > FROM acc_meters m > LEFT JOIN acc_meter_readings r ON r.meter_id = m.id > WHERE m.is_active = true > AND m.community_id = ? > -- 本月起没有 reading > AND m.id NOT IN ( > SELECT meter_id FROM acc_meter_readings > WHERE read_at BETWEEN '2026-05-01' AND '2026-05-31 23:59:59' > ) > GROUP BY m.id > ORDER BY last_read_at ASC; > ``` > > 关键: > - 只看在役表(退役表 `is_active=false` 不算) > - "本月没 reading" = 待抄 > - "上次抄表日期久远" = 优先级高 ## 报表 / 周报 王主管月初出报告(给物业总经理 / 财务总监): ```markdown # 2026 年 5 月 嘉禾花园抄表完成率报告 ## 总览 - 在役表:1,200 张 - 本月已抄:1,200 张(目标 99%,实际 100%) - 完成率:100% ✅ ## 抄表来源分布 - 集抄(remote):1,160 张(96.7%) - 手抄(manual):40 张(3.3%) - 集抄掉线补抄:30 张 - 业户无人后多次上门:10 张 ## 异常事件 - 集抄掉线高峰:5/25 一天 30 张(网关故障 4 小时,运营商已修) - 单户长期无人:王先生(15-7-203),已联系成功 + 补抄 ## 趋势 - 4 月完成率 99.8%(漏 2 张次月补) - 5 月完成率 100%(全部当月完成) - 集抄稳定性提升(运营商升级了网关) ## 建议 - 与集抄运营商签更严的 SLA(网关掉线 < 1 小时) - 给抄表员增加"无人户备份方案"(预约 + 业户授权代抄) ``` ## 业户视角 业户**通常不感知**这个审计动作。极少数情况: | 业户场景 | 业户感知 | |---|---| | 业户无人导致漏抄,下月补 | 收到的下月账单可能比往常高(两个月用量)| | 集抄掉线导致补抄 | 物业可能上门 / 微信问"麻烦看下您家水表读数发我下" | | 长期补不上 | 物业按"平均月用量"估算账单(业户可能不爽)| ## 与其他审计的对比 | 审计场景 | 关注什么 | 频率 | |---|---|---| | **本场景(待抄表)** | 月度抄表完成率 | 月度 | | [[exception-high-consumption|高用量预警]] | 异常用量预防 | 月度(抄表完成后)| | [[../deposit/audit-monthly-deposit-balance|押金月度对账]] | 账面 vs 银行平衡 | 月度 | | [[../prepaid/audit-low-balance-and-overdue|预存款低余额]] | 业户预存款健康度 | 每周 / 月度 | 各模块审计**频率与关注点不同**,本场景是 meter 模块的**最重要月度审计**。 ## 常见问题 > [!question] 完成率 < 95% 的常见原因? > - 集抄设备大面积故障 > - 抄表员人手不足 > - 业户长期无人 / 拒绝抄表 > - 系统 bug(meter 状态错乱) > > 长期完成率低 → 升级集抄 / 改流程 / 加人手。 > [!question] 漏抄的表下月一起算可以吗? > 可以,但**业户体验差**(账单突然翻倍)。推荐: > - 当月尽量补齐 > - 实在补不齐 → 让业户**自报**读数(业务上接受,需核对) > - 估算用量(罕见,看物业政策) > [!question] 业户长期无人怎么办? > - 多次上门(2-3 次) > - 业户授权代抄(物业拿钥匙 / 业户邻居代抄) > - 估算用量(按往月平均算) > - 长期(> 6 个月)无人 → 标记为"特殊处理户",月度估算 / 等业户回来再补 > [!question] 集抄运营商频繁掉线,物业如何制约? > 合同 SLA: > - 集抄运营商承诺 99% 在线率 > - 违约罚款(掉线超 X 小时罚 Y 元) > - 严重违约 → 解约换供应商 > [!question] 漏抄但已经生成账单(只是少了 N 户)能补充生成吗? > 可以。补抄 → 录 reading → 触发 [[bill-generation-pipeline|GenerateBills]] 对新 reading 生成 Bill。已有 Bill 不受影响。 ## 升级机会(待补) `MetersNeedingReadingListWidget` 当前简版,可升级为: - **更精准的"待抄"判定**(按抄表周期,不一定按月) - **完成率趋势图**(月度趋势线) - **抄表员效率排名**(谁抄得快 / 准) - **预警机制**(月底前 7 天若完成率 < 90% 自动告警) ## 异常分支 - 高用量预警(完成抄表后)→ [[exception-high-consumption]] - 已生成 Bill 的 reading 错(本场景兜底)→ [[exception-readings-locked-after-bill]] - 集抄系统 → [[read-via-iot-remote-source]] - 单录补抄 → [[read-single-meter-manual]] ## 相关文档 - [[bill-generation-pipeline]] - [[exception-high-consumption]] - [[exception-readings-locked-after-bill]] - [[read-via-iot-remote-source]] - [[read-single-meter-manual]] - [[../deposit/audit-monthly-deposit-balance]](类似月度对账模式)