新增 Resource History Analysis 功能模組: - 後端服務:query_summary、query_detail、export_csv 查詢函數 - API 路由:/api/resource/history/* 端點 (options/summary/detail/export) - 前端頁面:KPI 卡片、OU% 趨勢圖、E10 狀態堆疊圖、熱力圖、階層式表格 - 支援時間粒度切換(日/週/月/年)與多維度篩選 - 查詢範圍擴展至 730 天(兩年) 其他改進: - 新增 filter_cache 服務統一管理工站與型號快取 - MesApi 修復 JSON 解析失敗時誤觸重試的問題 - 新增 _safe_float() 處理 NaN 值避免 JSON 序列化錯誤 - E10 狀態分布圖表 tooltip 顯示各狀態百分比 - 新增完整測試套件(單元/整合/E2E) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
1. 後端服務模組
- 1.1 建立
src/mes_dashboard/services/resource_history_service.py模組結構 - 1.2 實作
get_filter_options()函數:查詢可用的站點、型號列表 - 1.3 實作
query_summary()函數:查詢 KPI、趨勢、熱力圖、站點比較資料 - 1.4 實作
query_detail()函數:查詢階層式明細資料(支援分頁) - 1.5 實作
export_csv()函數:串流輸出 CSV 格式資料 - 1.6 實作時間粒度聚合邏輯(日/週/月/年 TRUNC 函數)
- 1.7 實作 OU% 計算公式(PRD / (PRD+SBY+EGT+SDT+UDT) * 100)
- 1.8 實作各 E10 狀態時數與佔比計算
2. API 路由
- 2.1 建立
src/mes_dashboard/routes/resource_history_routes.py路由模組 - 2.2 實作
GET /api/resource/history/options端點:篩選選項 - 2.3 實作
GET /api/resource/history/summary端點:摘要資料 - 2.4 實作
GET /api/resource/history/detail端點:明細資料 - 2.5 實作
GET /api/resource/history/export端點:CSV 匯出 - 2.6 在
__init__.py註冊新路由 Blueprint
3. 前端頁面模板
- 3.1 建立
src/mes_dashboard/templates/resource_history.html頁面模板 - 3.2 實作篩選條件區(日期範圍、粒度按鈕、站點/型號下拉、checkbox)
- 3.3 實作 KPI 摘要卡片區(OU%、PRD、UDT、SDT、EGT、機台數)
- 3.4 實作頁面路由
GET /resource-history
4. 前端圖表
- 4.1 實作 OU% 趨勢折線圖(ECharts line chart)
- 4.2 實作 E10 狀態堆疊長條圖(ECharts stacked bar chart)
- 4.3 實作工站 OU% 對比水平條形圖(ECharts horizontal bar)
- 4.4 實作設備狀態熱力圖(ECharts heatmap)
5. 前端表格
- 5.1 實作階層式明細表格結構
- 5.2 實作站點層級展開/收合功能
- 5.3 實作型號層級展開/收合功能
- 5.4 實作「全部展開」按鈕
- 5.5 實作表格欄位格式化(時數/佔比顯示)
- 5.6 實作匯出按鈕與 CSV 下載
6. 前端互動邏輯
- 6.1 實作查詢按鈕點擊事件與載入指示器
- 6.2 實作日期範圍驗證(不超過 730 天 / 兩年)
- 6.3 實作時間粒度切換邏輯
- 6.4 實作篩選條件變更處理
- 6.5 實作查詢失敗的錯誤處理與 toast 通知
- 6.6 實作初始狀態提示(「請設定查詢條件」)
7. 測試與驗證
- 7.1 驗證 API 回傳資料格式正確
- 7.2 驗證 OU% 計算結果正確
- 7.3 驗證各時間粒度聚合正確
- 7.4 驗證階層式表格展開/收合正常
- 7.5 驗證 CSV 匯出內容正確
- 7.6 驗證大量資料查詢效能(日期範圍限制生效)
8. 後續優化
- 8.1 放寬查詢日期範圍至 730 天(兩年)
- 8.2 移除明細查詢筆數上限(原 5000 筆)
- 8.3 修復 NaN 值造成 JSON 序列化錯誤
- 8.4 修復 MesApi 成功回應後誤觸重試機制
- 8.5 E10 狀態分布圖表 tooltip 加入百分比顯示