餐盘未绑定 A03 报警开发记录
变更目标
当通过餐盘码获取就餐人信息的结果为“餐盘未绑定”时,进入与防逃单一致的锁屏、声光和本地审计流程;工作人员完成解除后才能恢复正常业务。
实现内容
- 新增报警类型
A03 TRAY_NOT_BOUND,与 A01 余额不足、A02 未放餐盘取餐分开记录和展示。 - 同时兼容两种餐盘未绑定返回:接口成功但人员信息为空;业务失败消息明确等于“餐盘未绑定”。
- A03 使用现有全屏报警页面、红灯持续闪烁和约 5 秒语音循环,语音资源为
please_bind_the_tray_first.mp3。 - A03 报警期间普通餐盘码继续被拦截。
- 为防止未绑定餐盘停留时直接恢复,A03 与 A01 一样要求先拿开餐盘,再刷统一解除卡。
- A03 触发和解除进入现有本地审计记录及 MMKV 活动快照;退出应用仍按
APP_EXIT 解除,异常中断按 PROCESS_INTERRUPTED 补记。 - 移除人员未绑定分支原来的单次语音播放,避免与报警循环语音重叠;原有人员查询结果日志保持不变。
测试覆盖
- A03 编码为
A03。 - A03 餐盘仍在时解除卡返回等待移盘。
- A03 餐盘移走后解除卡可以解除。
- 接口成功但人员为空触发 A03。
- 非零业务结果消息为“餐盘未绑定”触发 A03。
- 已绑定人员和其他失败原因不触发 A03。
验证结果
- JDK 8
testDebugUnitTest:43 条测试通过,0 失败。 - JDK 8
assembleDebug:通过。 git diff --check:通过。
Git 边界
本次继续在当前 add_banlance_tip 分支工作,未执行暂存、提交、推送、合并或切换分支。