#2 [供水] 由运行系统统一维护设备报警状态与清警复核

Закрыто
1 неделя назад открыта ChenJZ · комментариев: 0
ChenJZ прокомментировал 1 неделя назад

背景

ADR:pipe-network-service/docs/adr/0002-runtime-owns-device-alarm-state.md

设备报警状态是设备当前是否仍在报警的权威状态。运行系统应在任一有效报警原因存在时保持 alarm_status=1,仅在所有原因恢复后自动清警。工单结案只能触发清警复核,不能直接决定设备恢复正常。

关联:#1 负责统一工单生命周期,本 Issue 负责报警状态所有权,两者可并行实施。

当前代码

  • BusinessWorkOrderServiceImpl 在工单验收通过时无条件执行 setAlarmStatus(0)
  • WaterSupplyDeviceServiceImpl 创建维修状态记录时默认写入 alarmStatus=0
  • 当前未形成按设备汇总多个有效报警原因的统一清警复核能力。

实施范围

  • 明确并持久化可区分的有效报警原因及其恢复状态。
  • 由统一的报警状态计算入口维护设备状态:存在任一有效原因时为报警,否则为正常。
  • 支持实时监测数据恢复、上游恢复事件和有权限人员人工确认恢复三种恢复来源。
  • 报警产生、报警恢复、人工确认恢复和工单结案均可触发幂等的清警复核。
  • 删除工单验收及维修派单中的无条件清警行为。
  • 人工确认恢复必须记录操作人、时间和原因。

验收标准

  • 同一设备有两个有效报警原因,仅恢复其中一个时设备仍保持报警。
  • 所有有效报警原因恢复后,系统自动把设备状态改为正常,不要求工单先结案。
  • 工单已结案但仍有有效报警原因时,设备保持报警。
  • 工单结案触发重新计算,而不是直接写入正常状态。
  • 重复恢复事件和重复复核不会产生错误状态或重复副作用。
  • 增加服务层与集成测试,覆盖并发报警、部分恢复、全部恢复、人工恢复和工单结案复核。
## 背景 ADR:`pipe-network-service/docs/adr/0002-runtime-owns-device-alarm-state.md`。 设备报警状态是设备当前是否仍在报警的权威状态。运行系统应在任一有效报警原因存在时保持 `alarm_status=1`,仅在所有原因恢复后自动清警。工单结案只能触发清警复核,不能直接决定设备恢复正常。 关联:#1 负责统一工单生命周期,本 Issue 负责报警状态所有权,两者可并行实施。 ## 当前代码 - `BusinessWorkOrderServiceImpl` 在工单验收通过时无条件执行 `setAlarmStatus(0)`。 - `WaterSupplyDeviceServiceImpl` 创建维修状态记录时默认写入 `alarmStatus=0`。 - 当前未形成按设备汇总多个有效报警原因的统一清警复核能力。 ## 实施范围 - 明确并持久化可区分的有效报警原因及其恢复状态。 - 由统一的报警状态计算入口维护设备状态:存在任一有效原因时为报警,否则为正常。 - 支持实时监测数据恢复、上游恢复事件和有权限人员人工确认恢复三种恢复来源。 - 报警产生、报警恢复、人工确认恢复和工单结案均可触发幂等的清警复核。 - 删除工单验收及维修派单中的无条件清警行为。 - 人工确认恢复必须记录操作人、时间和原因。 ## 验收标准 - 同一设备有两个有效报警原因,仅恢复其中一个时设备仍保持报警。 - 所有有效报警原因恢复后,系统自动把设备状态改为正常,不要求工单先结案。 - 工单已结案但仍有有效报警原因时,设备保持报警。 - 工单结案触发重新计算,而不是直接写入正常状态。 - 重复恢复事件和重复复核不会产生错误状态或重复副作用。 - 增加服务层与集成测试,覆盖并发报警、部分恢复、全部恢复、人工恢复和工单结案复核。
Войдите, чтобы присоединиться к обсуждению.
Нет этапа
Нет ответственного
1 участников
Загрузка...
Отмена
Сохранить
Пока нет содержимого.