# KANPAI 种子数据说明(seed.json v0.1) > 一个虚构营业日:**2026-10-14(水)**,营业日截止 **次日 06:00**。 > 三端画面**只能从 `seed.json` 取数**。这里没有的数字,画面上写「—」并在 `k-note` 里注明「种子未提供」,不要自己编。 > 全部人名、档案、金额都是虚构的;价格税込、日元整数。 > 业务规则全部来自 `Bar-Pro/docs/review-2026-10-10/bar_sop_2026-10-10.txt`,种子里每个接待都标了 `sop_refs`。 --- ## 1. 关键合计(已用脚本逐项加总校验) | 项目 | 数值 | 出处 | |---|---|---| | 当日应收(14 组 · 22 人) | **113,700** | `totals.receivable` | | 已收 | **112,100** | `totals.received` | | 未收 | **1,600**(陈 伟,v04) | `totals.outstanding` | | 现金 | 38,600 | `totals.channels.cash` | | AirPay カード | 61,200 | `totals.channels.airpay_card` | | QR | 12,300 | `totals.channels.qr` | | 電子マネー | 0 | `totals.channels.emoney` | | 退款 | 0 | `totals.refunds` | | 席料合计 | 43,500(22 × 2,000,其中 黄 海涛 改为 1,500) | `totals.seat_fees` | | 首杯优惠 | −22,000(22 人各用 1 次) | `totals.first_drink_discount_total` | | 对账公式 | 菜单价合计 137,900 − 首杯 22,000 − 改价让利 1,200 − 赠送 1,000 = **113,700** | `totals.formula_check` | | 客单价 | 5,168(113,700 ÷ 22,四舍五入) | `totals.avg_per_guest` | | 新客 / 老客 | 11 / 11;新建档 3(田中 健・伊藤 早紀・黄 海涛) | `totals` | | 商品成本(估算) | 30,630,**全部 `is_estimate: true`** | `totals.cost_estimate_total` | **现金核对**(`cash`) ``` 开店备用现金 5,000 + 现金实收 38,600 − 现金退款 0 − 实际现金支出 680 = 理论现金 42,920 实点 41,920 → 差额 −1,000(待查) 冰块:领用 1,000 → 实际支出 680 → 退回 320(只有 680 影响现金) ``` **当晚事件**(`events`):改价 3 · 赠送 1 · 退款 0 · 代录 1 · 员工饮品 1 · 开瓶 2 · 空瓶 1 · 取消 0 · 更正 0 | 事件 | 内容 | |---|---| | 改价 ① | v01 田中 健 山崎12年 1,500 → 1,300(操作 李 明,授权 佐藤)21:40 | | 改价 ② | v12 黄 海涛 席料 2,000 → 1,500(操作 王 芳,授权 佐藤)01:35 | | 改价 ③ | v13 前田 拓也 マッカラン12 1,800 → 1,300(操作 高橋 翔,授权 佐藤)01:50 | | 赠送 | v03 山本 隆 ハイボール ×1,0 円(佐藤)23:25 | | 代录 | v06 中村 誠 モエ・エ・シャンドン 12,000(操作 李 明/担当 高橋 翔)23:10 | | 员工饮品 | v03 山本 隆 请 王 芳 スタッフドリンク 1,000 · 22:20 | | 开瓶 | 山崎12年(门店)22:30 · モエ(v06 桌边)23:10 | | 空瓶 | 山崎12年(门店)22:28 | --- ## 2. 两个时刻:店内端用 22:40,电脑端用闭店后 | 画面 | 用哪个时刻 | 数字从哪取 | |---|---|---| | 手机、iPad 日常画面(座位、开单、加单、账单、存酒…) | **22:40 营业中** | `live_snapshot` | | iPad 08 闭店核对 | **03:35**(第 14 步进行中) | `closing_check` + `cash` + `channels` | | iPad 09 开店检查 | **19:05** | `opening_check` | | 电脑全部画面 | **闭店后(10/15 早上)** | `totals`、`visits`、`events`、`daily_close`… | | 演示某个 SOP 瞬间(例:21:40 改价授权、22:52 田中 结账) | 那个瞬间 | `visits[].lines[].time` 往前加总 | **22:40 快照**(`live_snapshot.totals`):应收 65,500 · 已收 34,200 · 未收 31,300(全是接待中的单,正常)· 接待中 7 组 10 人 · 已结束 4 组。 已收渠道:现金 4,900 · AirPay 21,400 · QR 7,900。当时在店员工 4 人。 | 座位 | 22:40 状态 | 客人 | 目前应收 | |---|---|---|---| | C1 | 使用中 | 陈 伟(v04) | 4,600 | | C2 | 空位 | — | — | | C3 | **待结账**(22:38 叫结账) | 田中 健(v01) | 4,600 | | C4 | 空位 | — | — | | C5 | 使用中 | 松本 悠(v11) | 4,600 | | C6 | 使用中 | 山本 隆(v03,正在喝存酒 #K-0231) | 3,800 | | C7 · C8 | 空位 | — | — | | T1 | 使用中 | 中村 誠・小川(v06) | 4,600 | | T2 | 使用中 | 山田・鈴木(v02) | 4,800 | | T3 | 使用中 | 客人1・客人2(v05) | 4,300 | | T4 | 空位 | — | — | 「遗留未处理」座位只在 **开店检查**(19:05 之前)出现:C8,上一营业日 10/13 的「客人1」已收 3,300 但接待没结束,18:52 店长结束。这 3,300 属于 10/13,**不计入 10/14 任何合计**。 --- ## 3. 人 | id | 名字 | 角色 | 头像(两字)| 头像类 | 权限 | |---|---|---|---|---|---| | st-sato | 佐藤 美咲 | 店长 | 佐藤 | `k-avatar--1`(粉) | 改价・赠送・退款・日结(欠款的允许条件与权限 SOP 十六待定) | | st-li | 李 明 | 店员 · **手机端当前操作员工** | 李明 | `k-avatar--2`(薄荷) | 无改价权限 | | st-takahashi | 高橋 翔 | 店员 | 高橋 | `k-avatar--3`(李子紫) | 无改价权限 | | st-wang | 王 芳 | 店员 | 王芳 | `k-avatar--4`(空色) | 无改价权限 | 出勤(`attendance`,班次跨午夜仍为同一班次):佐藤 18:40–03:52 · 李 明 19:02–03:45 · 高橋 19:28–03:30 · 王 芳 19:45–03:20(各有 10–15 分钟休息)。 担当业绩(`sales_by_rep`,含席料):佐藤 21,400 · 李 明 29,600 · 高橋 翔 39,200 · 王 芳 23,500(合计 113,700)。整瓶担当:李 明 1(ジョニ黒)、高橋 翔 1(モエ)。提成规则 SOP 未定 → 画面只展示业绩,不算提成金额。 --- ## 4. 14 组接待(`visits`) | id | 座位 | 客人 | 应收 | 付款 | 演示的 SOP | |---|---|---|---|---|---| | v01 | C3 | 田中 健(新客·建档) | 4,600 | 现金 4,600(收 10,000 找 5,400) | 四 全流程、情况 36 | | v02 | T2 | 山田 2,300 / 鈴木 2,500 | 4,800 | 各自消费:现金 2,300 + AirPay 2,500 | 情况 15 | | v03 | C6 | 山本 隆(ヤマさん) | 11,800 | AirPay 11,800 | 情况 7・8・10・26 | | v04 | C1 | 陈 伟 | 4,600 | 现金 3,000,**欠款 1,600** | 情况 12・41 | | v05 | T3 | 客人1(長髪眼鏡男)2,000 / 客人2 3,300 | 5,300 | 一人支付:客人1 现金 5,300(收 6,000 找 700) | 情况 1・6・17 | | v06 | T1 | 中村 誠 14,300 / 小川 3,300 | 17,600 | 一人支付:中村 AirPay 17,600 | 情况 32・17・22 | | v07 | C2 | 渡辺 光 | 5,800 | AirPay 5,800 | 情况 2 | | v08 | T4 | 张 磊 4,300 / 刘 静 3,600 | 7,900 | 平均 AA:QR 3,950 × 2 | 情况 16 | | v09 | C4 | 伊藤 早紀(新客·建档) | 4,900 | 现金 4,900(收 5,000 找 100) | 四 | | v10 | T1 | 高田 修 5,500 / 森 5,800 / 岡本 4,300 | 15,600 | 一人支付:高田 AirPay 15,600 | 情况 17 | | v11 | C5 | 松本 悠 | 6,600 | 现金 6,600(收 7,000 找 400) | 情况 2・51 | | v12 | C2 | 黄 海涛(新客·建档) | 4,400 | QR 4,400 | 情况 23・51 | | v13 | T4 | 前田 拓也 5,300 / 西村 3,600 / 上野 3,000(01:00 中途加入) | 11,900 | 一人支付:前田 现金 11,900(收 12,000 找 100) | 情况 25・19・51 | | v14 | C7 | 吉田 誠一 | 7,900 | AirPay 7,900 | 情况 2・51 | **SOP 第四章的田中 健账单**(v01,账单画面的标准例): | 时点 | 行 | 菜单价 | 优惠/改价 | 成交价 | 累计应收 | |---|---|---|---|---|---| | 20:12 | 席料 | 2,000 | — | 2,000 | 2,000 | | 20:15 | ジントニック | 1,300 | 首杯 −1,000 | 300 | 2,300 | | 20:48 | ハイボール | 1,000 | — | 1,000 | 3,300 | | 21:40 | 山崎12年 | 1,500 | 改价 → 1,300(店长 佐藤 授权) | 1,300 | 4,600 | | 22:52 | 结账:现金收 10,000,找零 5,400 | | | | 已收 4,600 · 未收 0 | **山本 隆**(v03)的顺序:21:20 取用存酒 #K-0231(不计费、不占首杯)→ 21:50 マッカラン12 享首杯 800 → 22:20 请 王 芳 スタッフドリンク 1,000 → 23:20 买 ジョニーウォーカー黒 8,000 并存店(新瓶 #K-0244)→ 23:25 店长赠送 ハイボール 0 円 → 23:40 #K-0231 归位(約半瓶)→ 23:45 AirPay 11,800。 --- ## 5. 商品(`products`,价格全部是 SOP 里出现过的) | 分类 | 商品 | 单位 | 价格 | 成本(估算) | 常用 | 首杯对象 | 当晚售出(付费/赠送) | |---|---|---|---|---|---|---|---| | ハイボール・カクテル | ハイボール | 1杯 | 1,000 | 180 | ★ | 是 | 18 / 1 | | | ジントニック | 1杯 | 1,300 | 220 | ★ | 是 | 13 | | | モスコミュール | 1杯 | 1,300 | 240 | | 是 | 7 | | | ジンジャーハイボール | 1杯 | 1,000 | 200 | | 是 | 0 · **暂不可售**(ジンジャーエール 缺货)※ | | ウイスキー(ショット) | 山崎12年 | 1ショット | 1,500 | 650 | ★ | 是 | 9 | | | マッカラン12 | 1ショット | 1,800 | 780 | | 是 | 8 | | ボトル | ジョニーウォーカー黒 | 1本 | 8,000 | 3,600 | | 否(整瓶) | 1 | | シャンパン | モエ・エ・シャンドン | 1本 | 12,000 | 6,800 | | 否(整瓶) | 1 | | スタッフドリンク | スタッフドリンク | 1杯 | 1,000 | 180 | | 否 | 1 | | その他 | 氷 | — | 0(免费) | 0 | ★ | 否 | — | ※ ジンジャーハイボール 是**为展示缺货状态加入的虚构商品**,价格沿用 SOP 里的 1,000。「常用」是虚拟分类(`is_favorite: true`)。 --- ## 6. 存酒(`storage`) | 瓶号 | 酒品 | 归属 | 位置 | 状态(闭店后) | 余量备注 | 当晚变化 | |---|---|---|---|---|---|---| | #K-0231 | 山崎12年 | 山本 隆 | 棚A-3 | 可取用 | 約半瓶 | 21:20 取用 → 23:40 归位(之前 約2/3)。22:40 时点=**取用中** | | #K-0244 | ジョニーウォーカー黒 | 山本 隆 | 棚B-1 | 可取用 · 未開封 | 未開封 | 23:20 当晚买瓶存店,新建 | | #K-0198 | 響 | 陈 伟 | 棚A-5(系统) | **待核对** | 約1/3(10/02 记录) | 21:35 现场没找到,王 芳 记待核对,交店长;**不记为喝完** | --- ## 7. 酒仓(`inventory`、`inventory_events`、`reorder`) | 品项 | 用途 | 未开封 开店→闭店 | 使用中 | 补货线 | 补货 | |---|---|---|---|---|---| | 角瓶 700ml | ハイボール・スタッフドリンク | 6 → 6 | 1 | 4 | — | | ビーフィーター 750ml | ジントニック | 3 → 3 | 1 | 2 | — | | スミノフ 750ml | モスコミュール | 2 → 2 | 1 | 2 | — | | 山崎12年 700ml | 门店 shot | 2 → 1(空瓶 1、开瓶 1) | 1 | 2 | 1 本 | | マッカラン12 700ml | 门店 shot | 1 → 1 | 1 | 1 | — | | ジョニーウォーカー黒 700ml | 整瓶销售 | 3 → 2(卖 1 转存酒) | 0 | 2 | — | | モエ・エ・シャンドン 750ml | 整瓶销售 | 2 → 1(卖 1 桌边开瓶) | 0 | 2 | 1 本 | | ジンジャーエール(24本/箱) | 副材料 | 0(缺货) | 0 | 1 | 1 箱 | 采购(`purchases`):19:10 冰块,领用 1,000/支出 680(有收据)/退回 320,19:40 店长确认。损耗 0。基酒品项名是为酒仓画面补的虚构值。 --- ## 8. 客户档案(`customers`,12 个;其余客人只记本次称呼或临时编号) 田中 健(新)· 山本 隆(ヤマさん,23 次,存酒 2)· 陈 伟(9 次,存酒 1 待核对,欠款 1,600)· 渡辺 光 · 张 磊 · 伊藤 早紀(新)· 高田 修(高田部長)· 松本 悠 · 中村 誠 · 黄 海涛(新)· 前田 拓也 · 吉田 誠一。 无档案:山田、鈴木、客人1(識別備注「長髪眼鏡男」)、客人2、小川、刘 静、森、岡本、西村、上野。 姓名规则:日本客人日文名、中国客人中文名(简体);`name_lang` 标明,画面上给这段文字加同样的 `lang`。 --- ## 9. 闭店・日结・趋势 - `closing_check.steps`:17 步的标题、状态(done / issue / current / todo)和明细,iPad 08 直接照抄。 - `closing_check.handover_note`:李 明 03:28 语音输入的中日混合交接备注。 - `daily_close`:03:40 店长 佐藤 保存,状态 **待核对**,未完成 3 项(现金差额 −1,000 待查;陈 伟 欠款 1,600;#K-0198 待核对)。 - `trend_7d`(**虚构**,电脑端折线图用):10/08 木 92,400 · 10/09 金 148,600 · 10/10 土 171,200 · 10/11 日 81,300 · 10/12 月・祝 58,700 · 10/13 火 76,900 · 10/14 水 113,700;7 天合计 742,800。10/08–10/13 已归档,10/14 待核对。月报只有结构,没有月度数字 → 用「—」。 - `audit_log`:18 条按时间排序的操作记录,电脑 07「更正与审计记录」直接用。 --- ## 10. 字段约定 - 时间:ISO 本地时间,不带时区(`2026-10-15T00:20` = 营业日 10/14 的午夜后)。画面上只显示 `HH:MM`,跨日的在前面加「次日」或写成 00:20。 - 金额:整数日元。`deal_price` 是这一行的最终成交价(已含首杯、改价、赠送);`menu_price` 是单价;`first_drink_discount` 为负数或 0;改价在 `price_change: {from, to, operator_id, authorized_by}`。 - 行类型 `lines[].type`:`seat_fee` 席料 · `order` 普通点单 · `staff_drink` 员工饮品 · `bottle` 整瓶 · `gift` 赠送 · `storage_use` 存酒取用(`deal_price: null`,不计费)。 - `operator_id` = 实际录入的人;`rep_id` = 销售担当。代录时两者不同(只有 v06 香槟)。 - 付款渠道 key:`cash` 现金 · `airpay_card` AirPay カード · `qr` QR · `emoney` 電子マネー。 - 分账 `split_mode`:`single` 一人一单 · `individual` 各自消费 · `even` 平均 AA · `single_payer` 一人支付全部。 - `seed.json` 由 `prototype/_tools/gen_seed.py` 生成,脚本对上面每个合计都有断言(不平就报错)。要改数字:改脚本 → `python3 _tools/gen_seed.py shared/seed.json` → 同步本文件。不要手改 json。