Some checks failed
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6.4 KiB
6.4 KiB
每日業績儀表板 - 實作檢查清單
📋 Phase 1: 資料庫與後端基礎 (預計 2-3 天)
資料庫設計
- 建立
daily_sales表格(完整欄位對應 realtime_sales_monthly) - 建立
daily_sales_summary表格(每日統計摘要) - 建立必要索引(日期、商品ID、訂單編號)
- 撰寫資料庫 migration 腳本
- 測試資料庫結構
Excel 匯入後端
- 安裝
pandas和openpyxl套件 - 實作 Excel 檔案讀取功能
- 實作欄位驗證邏輯
- 必填欄位檢查
- 日期格式驗證
- 數值型別驗證
- 實作重複訂單處理邏輯
- 實作批次寫入功能(使用 transaction)
- 實作匯入結果回報
API 端點開發
POST /api/daily_sales/validate- 驗證 Excel 檔案POST /api/daily_sales/import- 匯入資料GET /api/daily_sales/calendar- 取得月度資料GET /api/daily_sales/detail- 取得單日詳情GET /api/daily_sales/compare- 業績對比GET /api/daily_sales/trends- 趨勢資料GET /api/daily_sales/top_products- 熱銷商品
業績計算邏輯
- 實作每日統計摘要計算
- 實作 DoD (日對日) 成長率計算
- 實作 WoW (週對週同日) 成長率計算
- 實作 MoM (月對月) 成長率計算
- 實作 YoY (年對年) 成長率計算
- 撰寫單元測試
🎨 Phase 2: 前端開發 (預計 3-4 天)
頁面架構
- 建立新路由
/daily_sales - 建立 HTML 模板(延續現有設計風格)
- 整合 Bootstrap 5.3 樣式
- 加入 Font Awesome 圖示
- 響應式設計測試
行事曆整合
- 安裝 FullCalendar.js
- 初始化行事曆元件
- 客製化日期格子樣式
- 顯示每日業績摘要
- 總業績金額
- 成長率指標
- 狀態顏色(紅/綠/灰)
- 實作月份切換功能
- 實作「今天」快速跳轉
Excel 匯入介面
- 設計檔案上傳區域(拖拉或點選)
- 整合 SheetJS (xlsx) 前端處理
- 實作檔案預覽功能(顯示前 10 筆)
- 實作驗證結果顯示
- 實作進度條顯示(匯入中)
- 實作匯入結果摘要(成功/失敗筆數)
- 錯誤訊息友善顯示
日期詳情 Modal
- 設計 Modal 視窗
- 顯示當日完整統計
- 總業績、訂單數、客單價
- Top 10 熱銷商品表格
- 各類別業績圓餅圖
- 時段業績折線圖
- 實作資料載入動畫
📊 Phase 3: 對比分析與視覺化 (預計 2-3 天)
業績對比功能
- 設計對比控制面板
- 日期選擇器(date picker)
- 對比類型選擇(DoD/WoW/MoM/YoY)
- 「對比」按鈕
- 實作對比結果顯示
- 指標對比表格
- 差異數值和百分比
- 上升/下降箭頭圖示
Chart.js 圖表
- 業績趨勢折線圖(過去 30 天)
- 顯示業績曲線
- 標註特殊日期(活動日)
- 懸停顯示詳細數據
- 週同日對比長條圖
- 顯示過去 4 週同日數據
- 標示成長率
- 顏色區分正負成長
- 熱銷商品水平長條圖
- Top 10 商品排名
- 顯示銷售件數
- 類別業績圓餅圖
- 各商品館佔比
- 懸停顯示百分比
儀表板卡片
- 設計 4 張 KPI 卡片
- 今日業績卡片
- 本週業績卡片
- 本月業績卡片
- 熱銷商品卡片
- 實作卡片 hover 動畫
- 實作即時更新
🔗 Phase 4: 整合與優化 (預計 2-3 天)
與現有儀表板整合
- 在
/sales_analysis加入「每日業績」連結 - 在
/sales_analysis顯示「今日業績快覽」卡片 - 實作資料累加邏輯
- 定時任務(每日凌晨 00:30)
- 將 daily_sales 累加到 realtime_sales_monthly
- 更新導航列,加入「每日業績」選項
定時任務
- 安裝排程工具(APScheduler 或 cron)
- 撰寫每日統計計算任務
- 撰寫成長率計算任務
- 撰寫資料累加任務
- 測試定時執行
效能優化
- 資料庫查詢優化(使用索引)
- API 回應快取(Redis)
- 前端分頁載入
- 大量資料匯入使用背景任務
- 壓縮圖表資料大小
測試
- 單元測試(後端邏輯)
- API 測試(使用 Postman/pytest)
- 前端功能測試
- Excel 匯入流程
- 行事曆互動
- 對比分析功能
- 圖表顯示
- 整合測試(完整流程)
- 瀏覽器相容性測試
- 行動裝置測試
✅ 上線前檢查
資料備份
- 建立自動備份機制
- 測試資料還原流程
文件
- 撰寫使用者操作手冊
- 撰寫 API 文件
- 更新系統架構文件
安全性
- 檔案上傳大小限制
- 檔案類型驗證
- SQL Injection 防護
- XSS 防護
- CSRF Token
效能
- 頁面載入速度測試 (< 3 秒)
- API 回應時間測試 (< 500ms)
- 大量資料匯入測試 (10,000+ 筆)
部署
- 更新依賴套件清單(requirements.txt)
- 更新資料庫 migration
- 設定環境變數
- 重啟服務測試
📝 額外功能(選配)
進階功能
- 業績目標設定介面
- 目標達成率追蹤
- 業績預測(使用移動平均)
- 異常檢測(業績驟降警示)
- Email 通知(業績報表)
- 資料匯出(Excel/PDF)
行動支援
- 優化行事曆行動版顯示
- 手勢操作(滑動切換月份)
- PWA 支援(離線查看)
🎯 開發時間估算
| 階段 | 預計天數 | 備註 |
|---|---|---|
| Phase 1: 後端基礎 | 2-3 天 | 資料庫 + API |
| Phase 2: 前端開發 | 3-4 天 | UI + 匯入功能 |
| Phase 3: 對比分析 | 2-3 天 | 圖表 + 計算 |
| Phase 4: 整合優化 | 2-3 天 | 測試 + 上線 |
| 總計 | 9-13 天 |
💡 重要提醒
- 先做 MVP:優先完成核心功能(匯入 + 行事曆顯示),再逐步加入對比分析
- 增量開發:每完成一個 Phase 就進行測試和驗證
- 保持溝通:每個階段結束後與需求方確認
- 文件先行:確保資料庫設計和 API 規格文件完整
- 備份優先:匯入前必須備份現有資料
準備開始時間: 2026-01-13(明天) 預計完成時間: 2026-01-24