feat(mid-section-defect): add TMTT reverse traceability analysis with paginated detail API
New page for tracing TMTT test station defects back to upstream machines, stations, and workflows. Three-stage data pipeline (TMTT detection → SPLITFROMID BFS + COMBINEDASSYLOTS merge expansion → upstream history), 6 KPI cards, 6 Pareto charts, daily trend, paginated LOT detail table. Summary/detail API separation reduces response from 72 MB to ~16 KB summary + ~110 KB/page detail. Loss reasons cached in Redis with 24h TTL (205 types). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
49
README.md
49
README.md
@@ -40,11 +40,13 @@
|
||||
| WIP 三頁 Vue 3 遷移(Overview/Detail/Hold Detail) | ✅ 已完成 |
|
||||
| 設備雙頁 Vue 3 遷移(Status/History) | ✅ 已完成 |
|
||||
| 設備快取 DataFrame TTL 一致性修復 | ✅ 已完成 |
|
||||
| 中段製程不良追溯分析(TMTT → 上游) | ✅ 已完成 |
|
||||
|
||||
---
|
||||
|
||||
## 開發歷史(Vite 重構後)
|
||||
|
||||
- 2026-02-10:完成中段製程不良追溯分析(`/mid-section-defect`)— TMTT 測試站不良回溯至上游機台/站點/製程。三段式資料管線(TMTT 偵測 → SPLITFROMID BFS + COMBINEDASSYLOTS 合批展開 → 上游製程歷史),支援 205 種不良原因篩選、6 張 Pareto 圖表、日趨勢、LOT 明細分頁(200 筆/頁)。Loss reasons 24h Redis 快取、分析結果 5 分鐘快取、Detail API 分離(summary ~16KB + detail ~110KB/page,原 72MB 單次回應)。
|
||||
- 2026-02-09:完成設備雙頁 Vue 3 遷移(`/resource`、`/resource-history`)— 兩頁共 1,697 行 vanilla JS + 3,200 行 Jinja2 模板重寫為 Vue 3 SFC。抽取 `resource-shared/` 共用模組(CSS 基底、E10 狀態常數、HierarchyTable 三層展開樹表元件),History 頁 4 個 ECharts 圖表改用 vue-echarts,Status 頁複用 `useAutoRefresh` composable(5 分鐘自動刷新)。
|
||||
- 2026-02-09:完成 WIP 三頁 Vue 3 遷移(`/wip-overview`、`/wip-detail`、`/hold-detail`)— 三頁共 1,941 行 vanilla JS + Jinja2 重寫為 Vue 3 SFC。抽取共用 CSS/常數/元件至 `wip-shared/`,Pareto 圖改用 vue-echarts(與 QC-GATE 一致),Hold Detail 新增前端 URL params 判斷取代 Jinja2 注入。
|
||||
- 2026-02-09:完成數據表查詢頁面(`/tables`)Vue 3 遷移 — 第二個純 Vite 頁面,建立 `apiPost` POST 請求模式,237 行 vanilla JS 重寫為 Vue 3 SFC 元件。
|
||||
@@ -460,7 +462,7 @@ A: 請確認瀏覽器允許下載檔案,並檢查查詢結果是否有資料
|
||||
|
||||
透過側邊欄抽屜分組導覽切換各功能模組:
|
||||
- **報表類**:WIP 即時概況、設備即時概況、設備歷史績效、QC-GATE 即時狀態
|
||||
- **查詢類**:設備維修查詢、批次追蹤工具、TMTT 不良分析
|
||||
- **查詢類**:設備維修查詢、批次追蹤工具、TMTT 不良分析、中段製程不良追溯
|
||||
- **開發工具**(admin only):數據表查詢、Excel 批次查詢、頁面管理、效能監控
|
||||
- 抽屜/頁面配置可由管理員動態管理(新增、重排、刪除)
|
||||
|
||||
@@ -523,6 +525,21 @@ A: 請確認瀏覽器允許下載檔案,並檢查查詢結果是否有資料
|
||||
- 站點排序依 DW_MES_SPEC_WORKCENTER_V 製程順序
|
||||
- **技術架構**:第一個純 Vue 3 + Vite 頁面,完全脫離 Jinja2
|
||||
|
||||
### 中段製程不良追溯分析
|
||||
|
||||
- TMTT 測試站不良回溯至上游機台 / 站點 / 製程的反向追蹤分析
|
||||
- 三段式資料管線:
|
||||
1. TMTT 偵測(LOTWIPHISTORY + LOTREJECTHISTORY)
|
||||
2. LOT 族譜解析(CONTAINER.SPLITFROMID BFS 分批鏈 + PJ_COMBINEDASSYLOTS 合批展開)
|
||||
3. 上游製程歷史(LOTWIPHISTORY by ancestor CIDs)
|
||||
- 6 張 KPI 卡片 + 6 張 Pareto 圖表(依站點/不良原因/上游機台/TMTT 機台/製程/封裝歸因)
|
||||
- 日趨勢折線圖 + LOT 明細分頁表(200 筆/頁,伺服器端 DEFECT_RATE 降序排序)
|
||||
- 不良原因多選篩選(205 種,24h Redis 快取)
|
||||
- 分析結果 5 分鐘 Redis 快取;summary API (~16 KB) 與 detail API (~110 KB/page) 分離
|
||||
- CSV 串流匯出(UTF-8 BOM,完整明細)
|
||||
- 5 分鐘自動刷新 + visibilitychange 即時刷新
|
||||
- **技術架構**:Vue 3 + Vite,Pareto/趨勢圖使用 vue-echarts,複用 `wip-shared/` 的 Pagination/useAutoRefresh
|
||||
|
||||
### 數據表查詢工具
|
||||
|
||||
- 顯示所有 DWH 表格的分類卡片目錄(即時數據表/現況快照表/歷史累積表/輔助表)
|
||||
@@ -588,8 +605,8 @@ CIRCUIT_BREAKER_RECOVERY_TIMEOUT=30
|
||||
| 技術 | 用途 |
|
||||
|------|------|
|
||||
| Jinja2 | 模板引擎(既有頁面) |
|
||||
| Vue 3 | UI 框架(QC-GATE、Tables、WIP 三頁、設備雙頁已遷移,漸進式擴展中) |
|
||||
| vue-echarts | ECharts Vue 封裝(QC-GATE、WIP Overview Pareto、Resource History 4 圖表) |
|
||||
| Vue 3 | UI 框架(QC-GATE、Tables、WIP 三頁、設備雙頁、中段不良追溯已遷移,漸進式擴展中) |
|
||||
| vue-echarts | ECharts Vue 封裝(QC-GATE、WIP Overview Pareto、Resource History 4 圖表、Mid-Section Defect 7 圖表) |
|
||||
| Vite 6 | 前端多頁模組打包(含 Vue SFC + HTML entry) |
|
||||
| ECharts | 圖表庫(npm tree-shaking + 舊版靜態檔案並存) |
|
||||
| Vanilla JS Modules | 互動功能與頁面邏輯(既有頁面) |
|
||||
@@ -640,7 +657,8 @@ DashBoard_vite/
|
||||
│ │ ├── dashboard/ # 儀表板查詢
|
||||
│ │ ├── resource/ # 設備查詢
|
||||
│ │ ├── wip/ # WIP 查詢
|
||||
│ │ └── resource_history/ # 設備歷史查詢
|
||||
│ │ ├── resource_history/ # 設備歷史查詢
|
||||
│ │ └── mid_section_defect/ # 中段不良追溯查詢
|
||||
│ └── templates/ # HTML 模板
|
||||
├── frontend/ # Vite 前端專案
|
||||
│ ├── src/core/ # 共用 API/欄位契約/計算 helper
|
||||
@@ -655,7 +673,8 @@ DashBoard_vite/
|
||||
│ ├── src/wip-shared/ # WIP 三頁共用 CSS/常數/元件
|
||||
│ ├── src/wip-overview/ # WIP 即時概況 (Vue 3 SFC)
|
||||
│ ├── src/wip-detail/ # WIP 明細查詢 (Vue 3 SFC)
|
||||
│ └── src/hold-detail/ # Hold 狀態分析 (Vue 3 SFC)
|
||||
│ ├── src/hold-detail/ # Hold 狀態分析 (Vue 3 SFC)
|
||||
│ └── src/mid-section-defect/ # 中段不良追溯分析 (Vue 3 SFC)
|
||||
├── shared/
|
||||
│ └── field_contracts.json # 前後端共用欄位契約
|
||||
├── scripts/ # 腳本
|
||||
@@ -739,6 +758,22 @@ conda run -n mes-dashboard python scripts/run_cache_benchmarks.py --enforce
|
||||
|
||||
## 變更日誌
|
||||
|
||||
### 2026-02-10
|
||||
|
||||
- 新增中段製程不良追溯分析頁面(`/mid-section-defect`):
|
||||
- TMTT 測試站偵測到的不良,反向追蹤至上游機台/站點/製程的歸因分析
|
||||
- 三段式資料管線:TMTT 偵測 → LOT 族譜解析(SPLITFROMID BFS 分批鏈 + COMBINEDASSYLOTS 合批展開)→ 上游製程歷史
|
||||
- 6 張 KPI 卡片(投入/LOT數/不良數/不良率/首要原因/影響機台數)
|
||||
- 6 張 Pareto 圖表(站點/不良原因/上游機台/TMTT 機台/製程/封裝歸因)+ 日趨勢折線
|
||||
- 不良原因多選篩選(205 種,全站 24h Redis 快取,`/api/mid-section-defect/loss-reasons`)
|
||||
- Detail API 分頁分離(`/api/mid-section-defect/analysis` summary ~16 KB + `/api/mid-section-defect/analysis/detail` ~110 KB/page),原 72 MB 單次回應
|
||||
- 伺服器端 DEFECT_RATE 降序排序 + 前端頁內欄位排序
|
||||
- CSV 串流匯出(UTF-8 BOM,完整明細)
|
||||
- 進入頁面不自動查詢,點擊「查詢」後才執行;首次查詢後啟動 5 分鐘自動刷新
|
||||
- Summary + Detail page 1 平行載入(`Promise.all`)
|
||||
- NaN 安全防護(Oracle NULL → pandas NaN,`isinstance(val, str)` 過濾)
|
||||
- 技術架構:Vue 3 + Vite,vue-echarts 7 圖表,複用 `wip-shared/` Pagination/useAutoRefresh
|
||||
|
||||
### 2026-02-09
|
||||
|
||||
- 完成設備雙頁 Vue 3 遷移(`/resource`、`/resource-history`):
|
||||
@@ -879,5 +914,5 @@ conda run -n mes-dashboard python scripts/run_cache_benchmarks.py --enforce
|
||||
|
||||
---
|
||||
|
||||
**文檔版本**: 5.3
|
||||
**最後更新**: 2026-02-09
|
||||
**文檔版本**: 5.4
|
||||
**最後更新**: 2026-02-10
|
||||
|
||||
Reference in New Issue
Block a user