盤點單分析 · 合作操作手冊
翠翠端 + Tako 端 · 每週流程與常見情境
一、每週流程(重點)
每週一次,週一/週二做上一週的資料。
| 步驟 | 誰做 | 動作 | 大約時間 |
|---|---|---|---|
| 1 | 翠翠 | 從莫筆克匯 xlsx | 3 分鐘 |
| 2 | 翠翠 | append 到 Google Sheet 新分頁 | 5 分鐘 |
| 3 | 翠翠 | Slack 傳 xlsx + sheet gid 給 @Tako | 1 分鐘 |
| 4 | Tako | 灌 D1 + 產 dashboard + 產週報 + 上傳 R2 + push | 3 分鐘 |
| 5 | Tako | Slack 回你兩個 URL + 本週要點觀察 | 1 分鐘 |
| 6 | 翠翠 | 打開 dashboard/週報看內容,有問題回饋 | 依情況 |
本週要拿的資料 = 上一週的 ISO 週資料(週一 ~ 週日)。若匯出區間跨到下週一(例:W33 匯出 08/10~08/17),我會在 meta 註明。
二、翠翠端 SOP
2-1. 莫筆克匯出(Xsale 5.60.6)
- 頂部選單 → 採購管理
- 二級 tab → 盤點
- 按 匯出報表 按鈕
- 匯出設定:
- 盤點狀態:只勾 已結案(未確認 / 已確認 不勾)
- 日期類型:建立日期
- 日期區間:該 ISO 週的週一 ~ 週日(例 W33 = 2026/08/10 ~ 2026/08/17)
- 指定廠商:不分廠商
- 目標倉庫:主倉
- 拿到 xlsx
2-2. Google Sheet 維護
- 開 Sheet:
docs.google.com/spreadsheets/d/1VquDCNw6ACUgP09In6enQKCKLnBd4sVnCWcA80d7HfU/edit - 新增一個 tab(命名
W33、W34... 方便分辨) - 把 xlsx 內容貼進去
- 複製這個 tab 的 URL(
?gid=xxxxxx#gid=xxxxxx那個),或直接複製 tab 名稱 + gid 傳給 @Tako
三、傳給 @Tako 的訊息模板
在 Slack thread 裡直接丟這兩樣:
[xlsx 檔案 attachment]
W33 sheet gid: 1644196388
如果你上傳 xlsx 時同步跟我說「這是 Wxx 資料」+ 「新的 sheet gid 是 XXXXX」,我就會照流程跑完。沒特別交代的話,我會用 ISO 週判定 batch code,然後直接動手。
四、Tako 端 SOP(收到 xlsx 後)
- 存 xlsx →
~/repo/notes/taco/stocktake/YYYY-Www.xlsx - 跑 loader:
python3 loader.py 2026-Wxx.xlsx 2026-Wxx --range YYYY-MM-DD..YYYY-MM-DD - UPDATE D1 batches 的 sheet_gid(若翠翠有給)
- 寫週報 YAML
2026-Wxx-report.yml(7 節結構) - 跑
html-gen產週報 HTML → upload R2(timestamp URL)→ D1 taco_artifacts insertreport-r2 - 跑
build_dashboard.py→ upload with--slug stocktake-dashboard.html - 跑
build_report_wrapper.py→ upload with--slug stocktake-report.html - git commit + push
- Slack 回翠翠:兩個 URL + 本週要點(3~5 個 bullet)
五、常見情境
5-1. 這週資料要重跑
翠翠說:「W33 那份重跑,我改了 Google Sheet」
Tako 做:
- 全清 W33(含備份,見「執行 W33 全清」memory 那組流程)
- 拿翠翠新版 xlsx(若 xlsx 沒改,用備份的)
- 重跑 loader → build → upload
重跑 dashboard/wrapper 因為固定 slug 覆蓋,URL 不變、翠翠 reload 就看到新內容。
5-2. 加/減 建立者
翠翠說:「新來的同事 mika 開始建盤點單,姓名林小花」
Tako 做:
INSERT INTO taco_stocktake_creator_roles (creator, role, display_name, added_by)
VALUES ('mika', 'staff', '林小花', 'tako');
重跑 dashboard/wrapper 就會顯示。
翠翠說:「PO015 也算採購」
Tako 做:
INSERT INTO taco_stocktake_creator_roles (creator, role, display_name, added_by)
VALUES ('PO015', 'purchasing', '<姓名>', 'tako');
下次分析自動排除。
5-3. Google Sheet 新分頁 gid
翠翠說:「W34 sheet gid 是 987654321」
Tako 做:
UPDATE taco_stocktake_batches SET sheet_gid='987654321' WHERE batch='2026-W34';
重跑 dashboard 就會連對分頁。
5-4. 分析規則要調整
翠翠說:「短少金額改用 vendor_price(廠商批價)算」
Tako 做:先跟你確認影響(會改 W32 W33 所有數字),確認後改 build_dashboard.py + 週報 YAML,重跑所有 batch。
翠翠說:「動作型態的關鍵字要加『補貨』」
Tako 做:這是分類 rule,加 keyword mapping。目前是原字串抽取,若要人工 taxonomy 需要你列 rule table。
六、我不會做的事(要你決策)
- 決定「這週的異常是不是要追」— 我列 Top N 給你,追不追由你判斷
- 決定「短少金額用哪個成本欄」— 目前用 stock_cost,翠翠沒指定要改
- 決定「哪些 header_note 原因要合併」— 目前純機械抽取,taxonomy 要你定
- 決定「要不要通報主管」— 我不會主動 @ 任何人,通報由你自己判斷跟寫
七、遇到問題怎麼辦
- URL 打不開 / 404 → 通常是 R2 快取;等 1~2 分鐘 reload。真的還壞跟我說
- 切週看不到某週 → 可能 D1 資料沒灌成功,跟我說我查 batches 表
- 數字對不起來 → 拿具體單號來,我用 D1 raw 資料對給你看
- 想看 raw 原始行 → dashboard 底下「三、原始明細」有 65+ 行 table,可 filter / sort / search
八、聯絡與備份
- Slack 直接 @Tako 就好
- 所有備份留在
~/repo/notes/taco/stocktake/backups/(含 D1 dump + R2 curl 回來的 HTML) - 重大改動前我一定先備份、列範圍給你 review 再動手
- 產物版控走 GitHub
Tako-Agent/workspace