7.7 KiB
title, aliases, tags, audience, status, sub_feature, last_review, code_version
| title | aliases | tags | audience | status | sub_feature | last_review | code_version | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| prop-acc · meter · 场景 - 退役不换表(房屋拆除/业户永久弃用) |
|
|
|
已发布 | meter | 2026-05-26 | 2026-05-22 |
场景:退役不换表(房屋拆除/业户永久弃用)
物理表不再需要(房屋拆除 / 业户永久搬走 / 商铺撤店 / 法定使用年限到不续装),系统只退役不建新表。decommission_reason 选 Removed / Expired 等,不走 ReplaceMeterAction。
典型情境
[!example] 真实情境(一):房屋拆除 嘉禾花园三期某栋老楼要拆迁重建,3 单元 1-6 层 30 户业主已全部搬走,准备拆楼。该单元所有水电气表(共 90 张)需要永久退役(房子拆了表也没了)。
[!example] 真实情境(二):商铺撤店 一楼商铺(原餐饮店)经营 5 年后结业,装修拆除,新承租人方向未定。原餐饮店专用商业电表 + 燃气表暂不需要,退役归档(等新承租人入驻再视情况建新表)。
[!example] 真实情境(三):法定使用年限到 一批 2010 年装的电表到 2026 年达到法定 15 年使用年限。物业评估:
- 部分表性能仍好 + 业户无投诉 → 送校验,合格继续用(replace-broken-meter 的
Calibrationreason)- 部分表频繁出问题 + 业户投诉 → 退役换新表(
Replaced)- 个别表所在房屋已无人居住 → 退役不换表(
Expired)
业务人员视角(王主管)
第 1 步:确认场景与原因
选择正确的 decommission_reason:
| 场景 | 推荐 reason |
|---|---|
| 房屋拆除 | Removed |
| 业户永久搬走且无新业户 | Removed |
| 法定年限到不续装 | Expired |
| 校验送检中暂停(后续可能恢复) | Calibration(暂停态,不算永久退役) |
| 损坏不修(整体弃用) | Damaged |
| (换新表替代) | Replaced — 走 replace-broken-meter 不是本场景 |
第 2 步:打开表
后台 → 计量表 → 按 asset 查找 → 进 ViewMeter(is_active=true)。
第 3 步:EditMeter 改字段(或专用退役 Action,看 UI 设计)
[!info] UI 实现注意 当前实现可能没有专门的"退役不换表"按钮,而是通过:
EditMeter页直接改is_active=false+ 填decommissioned_at+decommission_reason+final_reading- 或自定义"退役"Action(若实现了)
看具体
MeterForm的字段开关。若没专用按钮,走 EditMeter。
填字段:
| 字段 | 填什么 |
|---|---|
is_active |
false(取消勾选) |
decommissioned_at |
2026-05-26 |
decommission_reason |
Removed(本场景一) / Expired / Damaged |
final_reading |
退役那天的物理读数(若可读)/ 0(若表已被拆除无法读) |
| 备注 | 关键说明,如 "三期 3-1-101 拆迁,房屋已拆,表无法回读" |
第 4 步:提交
系统:
- 校验旧表
is_active=true(EditMeter守护->visible(is_active)) - update Meter:
is_active=false,decommissioned_at,decommission_reason,final_reading - 不建新表(与 replace-broken-meter 的关键区别)
第 5 步:后续不抄表
MetersNeedingReadingListWidget 自动不再显示此表(is_active=false 过滤)。
历史 reading 保留,可查。
批量退役
如果是单元拆除(90 张表一起退役),逐张走太慢。可能的批量方案:
| 方案 | 实现 |
|---|---|
| List 页批量 Edit(若有 BulkAction) | 选中多张 → 批量改 is_active=false |
| Excel 导入"退役清单" | 类似 MeterInitializationImporter,但当前没此功能(可补) |
| tinker 脚本(运维) | Meter::whereIn('id', [...])->update([...]),留 audit log |
当前推荐:业务量小的话逐张 EditMeter;业务量大的话联系运维走 tinker(批量改字段 + 留事由记录)。
系统流程
sequenceDiagram
participant 王主管
participant Filament
participant EditMeter
participant 数据库
王主管->>Filament: 找到要退役的表 → ViewMeter → 编辑
Filament->>EditMeter: 渲染 form
王主管->>EditMeter: is_active=false + 填 decommissioned_at + reason + final_reading + 备注
EditMeter->>EditMeter: 校验 is_active=true(原状态)+ Policy update 权限
EditMeter->>数据库: update Meter 字段
数据库-->>Filament: ok
Filament-->>王主管: 跳回 ViewMeter,状态显示"已退役 - Removed - 2026-05-26"
退役后的状态
| 字段 | 退役后值 |
|---|---|
is_active |
false |
decommissioned_at |
2026-05-26 |
decommission_reason |
Removed |
final_reading |
退役当天读数(或 0) |
replaced_meter_id |
null(没有继任者) |
| 后续是否能改字段 | 几乎不能(EditMeter visible(is_active) 守护 + Policy 拦截) |
| 后续是否能删 | 仅当无任何 reading 时(罕见) |
详见 decommission-and-locking"退役后的行为"段。
与"换表"的关键差异
| 维度 | replace-broken-meter | 退役不换表(本场景) |
|---|---|---|
| decommission_reason | Replaced | Removed / Expired / Damaged |
| 是否建新表 | ✅ 是,带 -R1 后缀 | ❌ 否 |
| 业户后续是否要付水电费 | 是(用新表继续计费)| 否(无表无计费)|
| 房屋状态 | 仍有人住 | 通常拆 / 撤 / 弃用 |
| 触发 UI | ReplaceMeterAction(专用)| EditMeter(改字段)|
业户视角
业户通常感知不到这条系统操作,因为业户本人也搬走 / 房屋已拆。
如果是商铺撤店 / 房屋暂时无人(后续可能有新业户),系统层面表已退役,未来如有新业户入住要重新装表 → 建新表(走 register-single-meter),不是"复活"旧表。
常见问题
[!question] 退役表能"复活"吗(
is_active=false → true)? Policy 设计上不允许(EditMeter在is_active=false时隐藏所有编辑)。如果真需要复活:
- tinker 改字段(运维,留事由)
- 推荐做法:建新表替代,旧表保持退役状态(历史档案)
[!question] 退役表如何处理未付的历史 Bill? 表退役不影响已生成的 Bill(Bill 关联 reading 关联表,数据完整)。业户该付的还是要付。
若业户也搬走联系不上:走逾期催收流程(不在本场景)。
[!question] 退役不换表后,房屋还在但暂无业户用电怎么办? 房屋空置但有可能后续入驻 → 保留表 active 状态,只是没有抄表数据(零用量)。每月账单可能仍生成(看 RatePlan 是否有
min_amount,详见 multiplier-and-tiered-pricing)。真的永久不需要 → 退役。
[!question]
decommission_reason选错了能改吗? 退役后修改字段被 Policy 拦截。若改错只能 tinker 修(运维 + 留事由)。预防:退役前确认场景,选对 reason。
[!question] 退役了但表上物理装着没拆走怎么办? 系统层面无区别(系统不管物理状态,只管"系统层面已退役")。物业人员需要实际去现场拆表(若房屋拆迁要拆楼)或留存(若只是商铺暂关)。系统不管理物理库存。
[!question] 表的物理库存追踪? 当前系统不涉及。物业的"实物计量表"库存(回收、报废、复用)在 ERP / 资产管理系统里处理,不在本子模块。
异常分支
- 换表(有新表替代)→ replace-broken-meter
- 误退役想撤销 → 困难,见上方"复活"问题
- 退役后无历史读数想删表 → 见 decommission-and-locking"退役表的物理删除"段