# 每日業績儀表板 - 實作檢查清單

## 📋 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 天** | |

---

## 💡 重要提醒

1. **先做 MVP**：優先完成核心功能（匯入 + 行事曆顯示），再逐步加入對比分析
2. **增量開發**：每完成一個 Phase 就進行測試和驗證
3. **保持溝通**：每個階段結束後與需求方確認
4. **文件先行**：確保資料庫設計和 API 規格文件完整
5. **備份優先**：匯入前必須備份現有資料

---

**準備開始時間**: 2026-01-13（明天）
**預計完成時間**: 2026-01-24
