VWCG-1296 · 2026-09-09

450 页面动态建议取用量完整测试报告

本地 Docker · 全能量档位 · 八类食物造数 · 真实 HTTP 接口 · 数据库核对

通过专项综合结论
49自动化测试
71断言
0测试数据残留

执行摘要

专项测试通过。 当前餐次推荐能量、八类推荐克重、累计重量、已取扣减、多菜 UUID 和 5g 取整均符合验收口径。
代码分支codex/vwcg-1296-dish-recommend-weight提交36a8d2e91
容器zhctapp_v2_0环境本地 Docker + 开发库 zhct
接口链路bindPlate → selectPlate → zhctPushMeal → selectPlate

验收对象

字段位置含义
recommend_dishes_weightdishes[]当前人员、当前餐次、当前菜品推荐取用克重
reality_dishes_weight_sumnutrition当前人员、当天、当前餐次所有已上传菜品累计克重
类别剩余目标 = 当前能量档类别目标 - 当前餐次已取类别重量
推荐取用克重 = 类别剩余目标 / 菜品类别贡献系数
最终结果 = 按最接近的 5g 取整

自动化覆盖

能量档位17 档及关键边界
食物类别谷薯、肉、蛋、菜、果、豆、奶、坚果
配方换算生重、熟重、生熟比、可食部
扣减规则未取、部分已取、达标、超标
设备场景双称、多 UUID、异常 UUID
数据隔离人员、日期、餐次、meal_type
测试集测试数断言结果
tests/Nutrition4760PASS
SelectPlateNutritionTest211PASS
合计4971全部通过

真实接口数值验证

创建 8 道类别贡献系数为 1 的临时菜品。绑定餐盘为午餐,推荐能量 858.7100 kcal,命中 <=1000 档。

类别目标/首次实际上传手算剩余接口实际结果
谷薯85206565通过
畜禽水产30102020通过
蛋2051515通过
蔬菜20050150150通过
水果15030120120通过
豆5500通过
奶300100200200通过
坚果101000通过
累计230g230g一致

Trace ID:首次查询 6aa0bf9231262,上传 6aa0bfa1c3d73,修复后查询 6aa0c008923c0。

发现并修复的缺陷

绑定餐次与营养计算餐次不一致

首次造数时,绑盘和上传均为午餐,但营养查询按另一套时段规则判断为早餐,导致推荐能量取错、累计重量为 0、推荐量不扣减。

修复后:selectPlate 统一使用绑定餐盘餐次;夜宵归并晚餐。复测返回午餐能量 858.7100 kcal、累计 230g,八类结果均与手算一致。

清理与风险

数据删除残留
订单明细 / 一餐数据8 / 80 / 0
订单 / 餐盘1 / 10 / 0
临时配方 / 菜品8 / 80 / 0
剩余确认项:recommendWeight() 原注释称输入为日能量,当前实现按已确认方案传入单餐推荐能量,建议上线前由营养算法负责人再次确认。本报告不代表整个历史仓库全量 PHPUnit 全部通过。