设备已经切换到餐盘识别模式,银歌 SDK 也加载了餐盘分类模型,但识别页把餐盘分类结果编码 1 当成旧菜品主键查询,错误补全为本地 dish_id=1 的“菜包”和价格 0.80。
菜品目录查询兼容旧数据:当 SDK 商品编码是纯数字且没有命中 dish_uuid 时,会继续按 dish_id 查询。这个规则适用于历史菜品识别数据,但餐盘分类返回的纯数字可能只是分类索引,不能复用该兜底规则。
RecognitionBusinessPolicy,集中声明不同业务模式是否允许旧数字菜品 ID 兜底。dish_id 兼容查询,保持现有业务不变。dish_uuid 精确匹配,不再把餐盘分类索引当成菜品主键。dish_uuid 一致时,仍可补全正确菜名和价格。app/src/main/java/com/cpt/aidishrecognition/ai/RecognitionBusinessPolicy.javaapp/src/main/java/com/cpt/aidishrecognition/utils/DishCatalogRepository.javaapp/src/main/java/com/cpt/aidishrecognition/activity/DishRecognitionActivity.javaapp/src/test/java/com/cpt/aidishrecognition/ai/RecognitionBusinessPolicyTest.javaRecognitionBusinessPolicyTest。./gradlew :app:testDebugUnitTest :app:assembleDebug --no-daemon:退出码 0,结果 BUILD SUCCESSFUL in 5s。git diff --check:退出码 0,无空白错误。安装本次 Debug APK 后保持餐盘识别模式,用同一画面复测:餐盘分类编码 1 不应再被错误显示为“菜包 ¥0.80”;只有编码与真实 dish_uuid 精确匹配时才允许补全商品信息并参与计价。
work_android/AIDishRecognition/change_records/,并同步提供 Markdown 与 HTML。