A01余额不足:新餐盘进入取餐流程并取得就餐人信息后,客户端仅按余额汇总判断。
A02未放餐盘取餐:打餐前、无餐盘时,稳定重量相对基线下降达到阈值。
A03餐盘未绑定:通过餐盘码查询人员信息,结果明确表示未绑定。
三类规则在设置页分别有独立开关,默认开启。开关开启时进入正式报警:全屏锁页、循环语音、持续红灯闪烁,并记录报警触发和解除。开关关闭时不创建正式报警,而是执行该类型的普通提示回退。
| 类型 | 业务含义 | 精确触发口径 | 开关开启 | 开关关闭 |
|---|---|---|---|---|
| A01 | 余额不足 | 新餐盘取得有效人员信息后,余额汇总 ≤ 0;余额为空或非法时不触发,累计金额不参与报警判断 | 全屏锁页并显示余额/累计金额;语音每 5 秒播放;红灯持续闪烁;先拿盘再扫 888888 | 不锁页;WarnPop 显示 1.5 秒“余额不足”和余额/累计金额;红灯闪 3 次;余额语音播放 1 次 |
| A02 | 未放餐盘取餐 | 打餐前、无餐盘、重量稳定,当前重量相对稳定基线累计下降达到阈值;默认 5g | 全屏锁页;放盘语音每 5 秒播放;红灯持续闪烁;可直接扫 888888 | 显示原 1.5 秒提示页;红灯闪 3 次;放盘语音播放 1 次;保留重量变化日志 |
| A03 | 餐盘未绑定 | 查询成功但人员为空;或失败消息去空格后严格等于“餐盘未绑定” | 全屏锁页;绑定语音每 5 秒播放;红灯持续闪烁;先拿盘再扫 888888 | 成功空数据时显示 Toast、单次语音、持续闪红灯至拿盘;失败消息分支当前只记失败日志 |
APP_EXIT 自动解除。统一解除码为 888888,本地执行,不区分角色,不请求服务端。
| 报警类型 | 解除前置条件 | 扫描结果 |
|---|---|---|
| A01 | 餐盘已拿走 | 餐盘仍在时不解除;拿走后扫描解除 |
| A02 | 无额外条件 | 扫描后直接解除 |
| A03 | 未绑定餐盘已拿走 | 餐盘仍在时不解除;拿走后扫描解除 |
餐盘拿走按连续 3 个空扫码帧确认。解除后关闭页面、停止循环语音和红灯、清除活动报警快照。
WarnPop 页面结构显示“余额不足”,约 1500ms 后自动关闭。WarnPop。WarnPop 为全屏提示,约 1500ms 后自动消失。888888不能停止灯光,只按非报警特殊码处理。| 能力 | A01/A02/A03 类型开关 | 总语音开关 | 总灯光开关 |
|---|---|---|---|
| 正式报警页面与状态 | 控制 | 不影响 | 不影响 |
| 正式报警循环语音 | 开启时强制执行 | 不影响 | - |
| 正式报警持续红灯 | 开启时强制执行 | - | 不影响 |
| 关闭类型开关后的单次语音 | 关闭时进入回退 | 控制 | - |
| 关闭类型开关后的红灯 | A01/A02 三闪,A03 持续至拿盘 | - | 当前实现不受影响 |
类型开关保存在本地 MMKV,默认均开启,应用进入前台时刷新;工作人员真实切换时写配置审计日志。
报警记录只写本地日志,不调用新增服务端接口:
ANTI_ESCAPE|event=TRIGGER|type=A01|content=...|triggerAt=... ANTI_ESCAPE|event=RESOLVE|type=A01|content=...|triggerAt=...|resolveMethod=UNLOCK_CARD|resolvedAt=...
UNLOCK_CARD:解除码正常解除。APP_EXIT:退出或进入后台时解除。DIALOG_SHOW_FAILED:报警页面显示失败时安全回滚。PROCESS_INTERRUPTED:进程异常结束后,下次启动补记中断解除。正常退出后不恢复报警;异常中断后也不恢复页面,只补记记录并清除快照。
888888 时记录一次“已忽略”,同一连续周期后续重复码静默处理。ANTI_ESCAPE_CONFIG|type=A01|enabled=false|source=SETTINGS。| 类型 | 页面图片 | 语音资源 |
|---|---|---|
| A01 | anti_escape_alarm_a01.png | voice_pay_balance_not_enough.mp3 |
| A02 | anti_escape_alarm_a02.png | please_put_the_tray_first |
| A03 | anti_escape_alarm_a03.png | please_bind_the_tray_first |
三张图片均为 1586 × 992,位于 drawable-nodpi。未知报警编号显示兜底提示:“报警信息异常,请工作人员刷卡解除”。
git diff --check 通过。已覆盖余额边界、稳定减重阈值、未绑定结果、解除码、独立开关、报警快照和日志策略。红灯实际节奏、扫码器 3 个空帧的现场时间和语音音量仍需目标设备验收。
888888,确认不能解除;拿走后可解除。888888,确认可解除。APP_EXIT 解除记录。WarnPop 标题下方红框区域、距图片底边约 22dp。