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

47 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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.vue``main.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.json`drawer 與頁面可見性)
- 更新 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 架構