生成时间:2026-06-26 | 文档版本:V1.1 开发评审版
智能排菜系统安卓端客户端 PRD
| 项目 | 内容 |
|---|
| 产品名称 | 智能排菜系统安卓端客户端 |
| 终端 | Android Pad 横屏客户端 |
| 文档版本 | V1.1 开发评审版 |
| 更新时间 | 2026-06-26 |
| 本地原型 | 智能排菜系统安卓端最终版.html |
| 菜谱页原型 | stall-recipe.html |
| 外网原型 | https://zhctpmt.yyangpt.cn/modules/product/products/smart-canteen/requirements/2026-06-15-smart-menu-android-client/prototype/index.html |
| 外网菜谱页 | https://zhctpmt.yyangpt.cn/modules/product/products/smart-canteen/requirements/2026-06-15-smart-menu-android-client/prototype/stall-recipe.html |
| 主要用户 | 餐厅现场运营人员、店长、实施/运维人员 |
1. Summary
智能排菜系统安卓端客户端用于餐厅现场 Pad 端操作,核心是让运营人员在一台 Pad 上管理约 60 台称重台的排菜状态,并独立维护当日及未来日期的档口菜谱。
系统以“现场快速操作”为第一目标:称重台列表直接展示设备名称、在线状态、当前菜品和未排菜状态;点击称重台或左右称位后,通过右侧抽屉选择菜品并自动保存、自动下发。设置菜谱与称重台排菜解耦,用于按日期、餐次和档口预设菜单,菜品加入、移除、编辑后自动生效。
本版本不包含菜品图片识别、后台账号联动、门店体系、审核流和手动同步按钮。
2. Contacts
| 角色 | 负责人 | 参与内容 | 备注 |
|---|
| 产品 | 产品负责人 | 需求范围、交互口径、评审确认 | 本文档 owner |
| 设计 | 交互/视觉设计 | Android Pad 原型、关键状态、视觉规范 | 以最终版原型为准 |
| Android | 客户端研发 | 页面实现、本地缓存、抽屉交互、弱网队列 | 横屏 Pad 优先 |
| 后端 | 服务端研发 | 菜品、菜谱、称重台、实时同步接口 | 需提供自动同步能力 |
| 设备 | 称重台/网关研发 | 设备在线状态、排菜下发、执行回执 | 覆盖单称和双称 |
| 测试 | QA | 功能、弱网、离线、回归测试 | 覆盖 60 台设备场景 |
3. Background
餐厅现场存在多台称重结算台。运营人员在餐前和营业中需要快速判断每台设备是否在线、是否已经排菜、当前排的是哪道菜,并能为单称或双称设备快速设置菜品。
同时,餐厅需要提前维护某日期、某餐次、某档口的菜谱。菜谱是经营计划,排菜是设备执行,两者有关联但不绑定:排菜时可从当餐菜谱或全量菜品库中选菜;设置菜谱时不需要选择称重台。
当前业务约束如下:
| 约束 | 说明 |
|---|
| 本地初始账号 | 默认账号 admin,默认密码 123456,不与后台账号体系联动。 |
| 需要配对 | 初次登录后若客户端未配对,展示未配对空页面,引导到系统设置录入配对码。 |
| 无门店概念 | 客户端不区分门店,不展示门店选择和门店切换。 |
| 自动同步 | 选择、取消、编辑、加入菜谱等操作自动保存并通过实时接口同步。 |
| 无审核流 | 新增菜品直接入库,名称必填,价格和图片可后补。 |
| 无图片识别 | 图片仅用于展示,不参与识别。 |
4. Objective
4.1 产品目标
| 目标 | 说明 |
|---|
| 提升排菜效率 | 一个 Pad 可管理约 60 台称重台,快速完成单称和双称排菜。 |
| 降低误操作 | 左侧直接呈现当前称位状态,取消排菜在左侧卡片完成,减少来回切换。 |
| 支持菜谱预设 | 按日期、餐次、档口维护菜谱,支持当天及未来日期。 |
| 支持现场补菜 | 找不到菜品时通过统一右侧抽屉新增菜品,并继续当前流程。 |
| 保证现场连续性 | 弱网或离线时本地记录操作,恢复后自动同步。 |
4.2 成功指标
| 指标 | 目标 |
|---|
| 单称排菜耗时 | 从选中称重台到完成排菜不超过 10 秒。 |
| 双称排菜准确率 | 左右称位选择误操作率低于 1%。 |
| 未排菜发现效率 | 运营人员 3 秒内可识别未排菜数量和位置。 |
| 新增菜品完成率 | 一次提交成功率不低于 95%。 |
| 弱网同步成功率 | 网络恢复后待同步操作成功率不低于 99%。 |
5. Market Segments
| 用户 | 主要任务 | 痛点 | 设计响应 |
|---|
| 现场运营人员 | 餐前排菜、营业中换菜、取消排菜 | 设备多、容易漏排、左右称易混淆 | 称重台卡片直接展示状态,点击卡片排菜,左侧直接取消 |
| 店长 | 设置当餐及未来菜谱 | 菜谱重复维护成本高 | 支持按天/按周复制菜谱,菜品自动生效 |
| 实施/运维人员 | 配置客户端、配对设备、处理异常 | 初装需要快速定位配置问题 | 未配对空态直达设置,设置页提供配对码和配置链接 |
6. Value Propositions
| 价值 | 用户收益 |
|---|
| 一屏掌握设备状态 | 称重台名称、在线状态、当前菜品、未排菜状态直接可见。 |
| 操作路径短 | 选择菜品、取消排菜、加入菜谱后自动保存和同步。 |
| 单称/双称兼容 | 单称一台设备一个菜,双称一台设备左右两侧各一个菜。 |
| 菜谱与排菜解耦 | 菜谱用于经营计划,排菜用于设备执行,边界清晰。 |
| 新增菜品交互统一 | 排菜页和菜谱页都使用右侧抽屉,字段和单价展示一致。 |
7. Solution
7.1 产品流程
flowchart TD
A["登录页"] --> B{"是否已配对"}
B -- "未配对" --> C["未配对空页面"]
C --> D["系统设置:输入配对码"]
D --> E["功能首页"]
B -- "已配对" --> E
E --> F["排菜"]
E --> G["设置菜谱"]
E --> H["系统设置"]
F --> F1["称重台列表"]
F1 --> F2["右侧排菜抽屉"]
F2 --> F3["选择菜品自动保存"]
F1 --> F4["左侧取消排菜"]
G --> G1["日期/餐次/档口"]
G --> G2["当前菜谱"]
G --> G3["添加菜品抽屉"]
G --> G4["新增/编辑菜品抽屉"]
G --> G5["复制菜谱抽屉"]
7.2 登录与配对
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| LOGIN-01 | 系统启动后进入登录页。 | P0 | 未登录状态刷新页面仍停留在登录页。 |
| LOGIN-02 | 默认账号为 admin,默认密码为 123456。 | P0 | 输入默认账号密码可登录。 |
| LOGIN-03 | 登录页提供“忘记密码”。 | P1 | 点击后提示联系管理员或实施人员处理。 |
| LOGIN-04 | 登录页视觉需有科技感,并使用营养相关元素。 | P1 | 左下角不放无关内容,展示营养均衡、蛋白质、蔬菜、主食等元素。 |
| PAIR-01 | 登录后若客户端未配对,进入未配对空页面。 | P0 | 页面展示“当前 Pad 尚未配对”和“去系统设置”按钮。 |
| PAIR-02 | 点击“去系统设置”打开系统设置。 | P0 | 设置弹窗打开并聚焦到配对码区域。 |
| PAIR-03 | 系统设置保存有效配对码后,客户端进入功能首页。 | P0 | 再次进入不再显示未配对空态。 |
7.3 功能首页
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| HOME-01 | 首页展示欢迎语、日期、星期和天气。 | P0 | 首页不展示餐次选择。 |
| HOME-02 | 首页欢迎语每日可自动更新,内容偏营养健康、积极正向。 | P1 | 示例:营养均衡,活力满满。愿今天的每一餐都新鲜、健康、高效。 |
| HOME-03 | 首页提供两个主入口:排菜、设置菜谱。 | P0 | 点击分别进入对应页面。 |
| HOME-04 | 顶部提供“功能首页”“系统设置”“当前用户”。 | P0 | 任意主页面点击功能首页可返回首页,点击系统设置可打开设置弹窗。 |
7.4 称重台排菜
7.4.1 列表展示
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| ARR-01 | 排菜页展示约 60 台称重台。 | P0 | 列表支持滚动,不卡顿。 |
| ARR-02 | 顶部筛选包含:全部、在线、离线、未排菜。 | P0 | 不展示已排菜筛选。 |
| ARR-03 | 卡片展示称重台名称、在线/离线状态、当前菜品。 | P0 | 信息不溢出、不遮挡。 |
| ARR-04 | 单称设备的图片和名称上下居中展示。 | P0 | 单称卡片视觉居中。 |
| ARR-05 | 双称设备展示左称、右称两个称位。 | P0 | 每个称位可独立展示菜品或未排菜。 |
| ARR-06 | 未排菜称位展示“暂未排菜”。 | P0 | 可点击进入排菜抽屉。 |
| ARR-07 | 离线称位展示“离线,恢复后可排菜”。 | P0 | 离线状态仍可查看,不允许立即下发。 |
7.4.2 排菜抽屉
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| ARR-08 | 点击称重台或称位后,右侧推出排菜抽屉。 | P0 | 抽屉展示当前称重台名称。 |
| ARR-09 | 抽屉打开时挤压左侧内容,不覆盖左侧内容。 | P0 | 正常一行最多 4 个卡片,挤压后一行最多 3 个卡片。 |
| ARR-10 | 抽屉可通过右上角关闭按钮或点击空白区域关闭。 | P0 | 关闭后列表恢复完整宽度。 |
| ARR-11 | 抽屉不再放左右称切换区。 | P0 | 当前称位由左侧卡片选中态体现。 |
| ARR-12 | 抽屉顶部提供搜索框和“新增菜品”按钮。 | P0 | 搜索框在菜谱库和菜品库中均可搜索。 |
| ARR-13 | 支持菜谱库/菜品库切换和分类筛选。 | P0 | 默认可展示全部、主食、素菜、荤菜、汤饮等筛选。 |
| ARR-14 | 菜品列表展示图片、名称、单价效果。 | P0 | 单价格式如 12.8元/100g。 |
| ARR-15 | 选择菜品后自动保存并下发当前称位排菜。 | P0 | 不需要底部保存按钮。 |
| ARR-16 | 当前称位已有菜品时,选择新菜品需二次确认。 | P0 | 确认后替换并自动同步。 |
7.4.3 取消排菜
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| ARR-17 | 已排菜卡片或称位展示取消排菜入口。 | P0 | 按钮放在左侧卡片内,不放在右侧抽屉。 |
| ARR-18 | 点击取消排菜后直接取消当前称位排菜。 | P0 | 状态变为“暂未排菜”,并自动同步。 |
| ARR-19 | 弱网或设备离线时取消操作进入待同步队列。 | P0 | 恢复后自动下发,页面提示待同步状态。 |
7.5 菜品新增与编辑
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| DISH-01 | 排菜页和设置菜谱页新增菜品统一使用右侧抽屉。 | P0 | 不使用居中弹窗。 |
| DISH-02 | 新增字段包含菜品名称、价格、每多少克、图片。 | P0 | 菜品名称必填,其他字段可为空。 |
| DISH-03 | 价格输入框单位为“元”。 | P0 | 输入框右侧展示元。 |
| DISH-04 | 克重输入框单位为“g”,默认 100。 | P0 | 留空时按 100g 展示和保存。 |
| DISH-05 | 输入价格和克重后展示单价效果。 | P0 | 示例:单价效果:12.8元/100g。 |
| DISH-06 | 图片支持拍照和从相册选择。 | P0 | 图片非必填。 |
| DISH-07 | 编辑菜品信息可修改名称、价格、克重和图片。 | P0 | 菜谱页编辑保存后当前菜谱自动生效。 |
7.6 设置菜谱
7.6.1 页面基础
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| REC-01 | 设置菜谱页通过首页入口进入。 | P0 | 原型入口加载 stall-recipe.html,不出现 404。 |
| REC-02 | 设置菜谱与称重台无关。 | P0 | 页面不展示称重台选择。 |
| REC-03 | 支持当前日期和未来日期维护,历史日期不可改。 | P0 | 历史日期置灰并展示不可改。 |
| REC-04 | 日期选择按周展示,可通过左右箭头切换上一周/下一周。 | P0 | 日期行紧凑,内容区占据主要空间。 |
| REC-05 | 支持早餐、午餐、晚餐。 | P0 | 页面内选择餐次,首页不展示餐次。 |
| REC-06 | 支持档口下拉筛选,例如热菜档、面档、小吃档、汤粥档。 | P0 | 当前档口影响当前菜谱内容。 |
7.6.2 当前菜谱
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| REC-07 | 当前菜谱展示已选菜品数量。 | P0 | 字号与页面整体统一。 |
| REC-08 | 操作按钮放在右侧同一行。 | P0 | 包含复制菜谱、添加菜品到菜谱、新增菜品。 |
| REC-09 | 不提供手动发布操作。 | P0 | 菜品加入、移除、编辑后自动生效。 |
| REC-10 | 菜品卡片展示菜名、分类、价格。 | P0 | 一行展示 5 到 6 个菜品。 |
| REC-11 | 菜品卡片按钮文案为“移除”。 | P0 | 点击后从当前菜谱移除并自动生效。 |
| REC-12 | 点击菜品卡片进入编辑菜品信息抽屉。 | P0 | 可修改名称、价格、克重、图片。 |
7.6.3 添加菜品到菜谱
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| REC-13 | 点击“添加菜品到菜谱”打开右侧抽屉。 | P0 | 抽屉打开时左侧内容被挤压。 |
| REC-14 | 抽屉内搜索覆盖产品中所有菜品。 | P0 | 支持模糊搜索、全拼搜索、首字母搜索。 |
| REC-15 | 筛选包含全部、已选、热菜、素菜、肉类、最近用过。 | P0 | 已选菜品展示勾选态。 |
| REC-16 | 点击“加入已选菜品”后加入当前菜谱。 | P0 | 加入后自动生效并更新已选数量。 |
7.6.4 复制菜谱
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| COPY-01 | 点击“复制菜谱”打开右侧抽屉。 | P0 | 支持按天复制、按周复制。 |
| COPY-02 | 按天复制包含来源日期、目标日期、包含餐次。 | P0 | 包含餐次支持全部、早餐、午餐、晚餐,默认全部。 |
| COPY-03 | 按周复制字段为来源周日期、目标周日期。 | P0 | 选择某一天时体现选择的是该日期所在周。 |
| COPY-04 | 周日期选择按固定周展示。 | P0 | 示例:2026/06/08 - 2026/06/14。 |
| COPY-05 | 按周复制不在日期字段下方展示说明文字。 | P0 | 页面只保留字段和选择结果。 |
| COPY-06 | 按周复制包含餐次与按天复制一致。 | P0 | 支持全部、早餐、午餐、晚餐,默认全部。 |
| COPY-07 | 点击保存当前设置后执行复制。 | P0 | 成功后提示复制完成并刷新目标菜谱。 |
7.7 系统设置
| 编号 | 需求 | 优先级 | 验收口径 |
|---|
| SET-01 | 系统设置可从顶部导航和未配对空态进入。 | P0 | 任意主页面可打开设置。 |
| SET-02 | 支持输入配置链接。 | P0 | 保存后用于客户端接口配置。 |
| SET-03 | 支持输入配对码。 | P0 | 有效配对码保存后客户端进入已配对状态。 |
| SET-04 | 支持修改本地登录密码。 | P0 | 需输入原密码和新密码。 |
| SET-05 | 支持换肤:蓝色、绿色、橙色。 | P1 | 当前主题即时应用。 |
| SET-06 | 支持字号:小、中、大。 | P1 | 页面文字按选择生效。 |
| SET-07 | 支持退出登录。 | P0 | 退出后回到登录页。 |
| SET-08 | 不展示项目关联列表,不展示门店选择。 | P0 | 设置页只保留客户端参数。 |
7.8 数据与同步
7.8.1 关键数据字段
| 对象 | 字段 |
|---|
| 称重台 | deviceId、deviceName、scaleType、onlineStatus、leftDishId、rightDishId、syncStatus |
| 菜品 | dishId、dishName、price、unitWeight、imageUrl、category、updatedAt |
| 菜谱 | recipeId、date、mealType、stallId、dishIds、status、updatedAt |
| 客户端设置 | configUrl、pairingCode、theme、fontSize、localPasswordHash |
7.8.2 同步规则
| 场景 | 规则 |
|---|
| 排菜 | 选择菜品后自动保存并下发到设备。 |
| 取消排菜 | 点击左侧取消入口后自动保存并下发。 |
| 菜谱变更 | 添加、移除、编辑后自动生效。 |
| 弱网 | 本地写入待同步队列,恢复后按操作时间顺序同步。 |
| 冲突 | 服务端返回冲突时客户端提示用户刷新或覆盖,具体策略需接口评审确认。 |
8. Release
8.1 版本范围
| 范围 | 本期是否包含 |
|---|
| 登录、本地密码、忘记密码提示 | 包含 |
| 未配对空态、配对码配置 | 包含 |
| 功能首页 | 包含 |
| 称重台排菜、单称/双称 | 包含 |
| 取消排菜 | 包含 |
| 新增/编辑菜品 | 包含 |
| 设置菜谱、添加菜品、复制菜谱 | 包含 |
| 主题和字号设置 | 包含 |
| 菜品图片识别 | 不包含 |
| 后台账号体系 | 不包含 |
| 门店体系 | 不包含 |
| 审核流 | 不包含 |
| 手动同步 | 不包含 |
8.2 验收清单
| 编号 | 验收项 |
|---|
| AC-01 | 使用默认账号密码可登录;密码错误有明确提示。 |
| AC-02 | 未配对状态登录后进入空态,并能通过设置页录入配对码进入首页。 |
| AC-03 | 首页不展示餐次,只展示欢迎语、日期、星期、天气和两个功能入口。 |
| AC-04 | 点击顶部“功能首页”可从任意页面返回首页。 |
| AC-05 | 点击顶部“系统设置”可从任意页面打开设置弹窗。 |
| AC-06 | 排菜页筛选只包含全部、在线、离线、未排菜。 |
| AC-07 | 排菜抽屉打开后左侧列表被挤压,卡片列数从 4 列变为 3 列。 |
| AC-08 | 单称菜品图片和名称上下居中;双称左右称位清晰区分。 |
| AC-09 | 选择菜品后自动保存并同步,不需要额外保存按钮。 |
| AC-10 | 已排菜称位可在左侧卡片直接取消排菜。 |
| AC-11 | 新增菜品抽屉包含名称、价格、克重、图片,价格单位为元,克重单位为 g。 |
| AC-12 | 设置菜谱入口可正常打开 stall-recipe.html,不出现 404。 |
| AC-13 | 设置菜谱页可按周切换日期,并按日期、餐次、档口展示菜谱。 |
| AC-14 | 设置菜谱页无手动发布操作,加入、移除、编辑后自动生效。 |
| AC-15 | 复制菜谱按天/按周均支持全部、早餐、午餐、晚餐。 |
8.3 开发评审前问题
| 问题 | 影响 | 建议评审结论 |
|---|
| 实时接口采用 WebSocket、MQTT 还是轮询? | 影响客户端连接、重连和消息确认机制。 | 评审时确定协议和回执格式。 |
| 配对码由谁生成、是否过期、是否可解绑? | 影响实施流程和安全边界。 | 明确配对码校验、有效期和重置方式。 |
| 弱网队列冲突如何处理? | 影响离线操作恢复后的结果一致性。 | 明确按时间覆盖、服务端版本号或人工确认。 |
| 菜谱复制遇到目标已有菜品时如何处理? | 影响复制结果是否覆盖、合并或跳过。 | 建议提供覆盖/合并策略,由后端支持。 |
| 菜品价格编辑是全局价格还是本次菜谱价格? | 影响菜品库和历史菜谱。 | 建议 V1 明确为全局菜品价格,若需单次价格后续扩展。 |
| 取消排菜是否需要撤销能力? | 影响误点恢复。 | 建议 V1 点击即取消并 toast 提示,可在 3 秒内撤销作为增强项。 |
| 图片上传失败如何处理? | 影响新增菜品提交体验。 | 建议名称先入库,图片上传失败可后续补充。 |
| 拼音搜索由客户端还是服务端生成索引? | 影响搜索性能和一致性。 | 建议服务端返回拼音字段,客户端做本地过滤。 |