防逃单本地报警实施计划

目标

在现有 PC681 餐台扫码和称重链路内增加三类本地报警,并保持现有取餐记录与上传流程不变。

已确认边界

代码方案

  1. 新增纯 Java 规则与状态控制:余额规则、无餐盘减重检测、餐盘绑定结果识别、解除码去重、报警状态模型。
  2. 在 HomeActivity 的人员查询结果位置判断 A01/A03;在稳定重量入口判断 A02;在普通扫码处理前截获解除码。
  3. 新增不可取消的全屏报警弹窗,按 A01/A02/A03 展示不同标题和内容,统一提示工作人员刷解除卡;A01/A03 额外提示先移走餐盘。
  4. 扩展灯带控制器的报警优先模式,红灯持续闪烁时屏蔽普通绿灯/关灯请求。
  5. 报警语音约每 5 秒重复,A01 使用 voice_pay_balance_not_enough.mp3,A02 使用现有 please_put_the_tray_first.mp3,A03 使用现有 please_bind_the_tray_first.mp3
  6. 使用本地日志记录报警触发/解除;使用 MMKV 保存最小活动快照,应用正常退出按 APP_EXIT 关闭,异常中断在下次启动按 PROCESS_INTERRUPTED 补记后清除,不恢复页面。

验收用例

实施顺序

  1. 基线测试与现有差异保护。
  2. 规则测试先行,再实现纯 Java 规则和状态机。
  3. 接入 HomeActivity 扫码、人员查询和稳定重量链路。
  4. 实现报警页面、灯光和语音。
  5. 实现本地审计和生命周期收口。
  6. 运行完整单元测试和 Debug 构建,完成代码复核和硬件验收清单。

不在本次范围