Files
DashBoard/openspec/changes/reject-history-query-page/proposal.md
egg 5b358d71c1 feat(query-tool): rewrite frontend with ECharts tree, multi-select, and modular composables
Replace the monolithic useQueryToolData composable and nested Vue component tree
with a modular architecture: useLotResolve, useLotLineage, useLotDetail, and
useEquipmentQuery. Introduce ECharts TreeChart (LR orthogonal layout) for lot
lineage visualization with multi-select support, subtree expansion, zoom/pan,
and serial number normalization. Add unified LineageEngine backend with split
descendant traversal and leaf serial number queries. Archive the query-tool-rewrite
openspec change and sync delta specs to main.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:25:00 +08:00

2.7 KiB
Raw Blame History

Why

目前專案只有在 query-tool 的設備子頁籤提供報廢相關查詢,缺少一個可長期追蹤「報廢歷史」的專用報表頁。隨著既有架構已完成 portal-shell、route contract、Vite 多頁治理,現在適合用同一套架構新增 報廢歷史查詢,避免再引入獨立樣式或旁路流程。

What Changes

  • 新增 報廢歷史查詢 頁面路由 /reject-history,採用既有 pure Vite + portal-shell native route 模式。
  • 新增後端 reject-history API 群組(摘要、趨勢、原因 Pareto、明細、匯出提供前端報表所需資料。
  • 新增 reject-history service + SQL 模組,統一計算:
    • 扣帳報廢:REJECT_TOTAL_QTY = REJECTQTY + STANDBYQTY + QTYTOPROCESS + INPROCESSQTY + PROCESSEDQTY
    • 不扣帳報廢:DEFECT_QTY = DEFECTQTY
  • 將新頁面納入既有導航與契約治理page registry、drawer、routeContracts、nativeModuleRegistry、shell coverage
  • 補齊對應測試API/服務單元測試、route contract 治理測試、必要的頁面整合測試)。

Capabilities

New Capabilities

  • reject-history-page: 新增報廢歷史查詢頁面提供篩選、KPI、趨勢、原因分析與明細查詢/匯出。
  • reject-history-api: 新增報廢歷史 API 能力與資料聚合邏輯,定義扣帳報廢與不扣帳報廢的並列指標語義。

Modified Capabilities

  • unified-shell-route-coverage: 新增 /reject-history 後,路由契約清單與前後端契約對照規則需同步更新。
  • vue-vite-page-architecture: 新頁面需納入 Vite entry/output 與 Flask static HTML 服務規範,保持既有純 Vite 頁治理一致性。

Impact

  • 前端:
    • 新增 frontend/src/reject-history/App.vuemain.js/index.html、components、composables、style
    • 更新 frontend/src/portal-shell/nativeModuleRegistry.js
    • 更新 frontend/src/portal-shell/routeContracts.js
    • 更新 frontend/vite.config.js
  • 後端:
    • 新增 src/mes_dashboard/routes/reject_history_routes.py
    • 新增 src/mes_dashboard/services/reject_history_service.py
    • 新增 src/mes_dashboard/sql/reject_history/*.sql
    • 更新 src/mes_dashboard/routes/__init__.py
    • 更新 src/mes_dashboard/app.py/reject-history 靜態頁 route
  • 導航/治理:
    • 更新 data/page_status.jsondrawer 與頁面可見性)
    • 更新 shell route contract 對應治理資產與測試基準
  • 測試:
    • 新增 tests/test_reject_history_service.py
    • 新增 tests/test_reject_history_routes.py
    • 補充 route coverage / contract parity / e2e smoke
  • 依賴:
    • 不新增第三方套件,沿用現有 Flask + Vue + Vite + SQLLoader + QueryBuilder 架構