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>
2.4 KiB
2.4 KiB
Reject 歷史績效表設計說明
目標
使用 DW_MES_LOTREJECTHISTORY 為主,輔以其他維度表,建立可直接用於報表的 reject 歷史績效表(按日彙總),解決原始資料直接查詢時的績效與一致性問題。
使用資料表
DWH.DW_MES_LOTREJECTHISTORY: 不良/報廢事實表(主來源)DWH.DW_MES_CONTAINER: 補齊PJ_TYPE、PRODUCTLINENAME、MFGORDERNAMEDWH.DW_MES_SPEC_WORKCENTER_V: 對應WORKCENTER_GROUP與排序欄位
資料評估重點(2026-02-13,近 30 天樣本)
DW_MES_LOTREJECTHISTORY共230,074筆;HISTORYMAINLINEID僅75,683個。HISTORYMAINLINEID多筆情況明顯(30,784個主事件,平均每主事件6.02筆),代表同主事件會拆成多個LOSSREASONNAME。- 若直接加總
MOVEINQTY,分母會被重複計算。近 30 天樣本中:NAIVE_MOVEIN = 44,836,693,831DEDUP_MOVEIN = 35,658,750,247- 膨脹比
1.2574(約高估 25.74%)
- 指標定義依業務規則分開處理:
REJECT_TOTAL_QTY = REJECTQTY + STANDBYQTY + QTYTOPROCESS + INPROCESSQTY + PROCESSEDQTY(扣帳報廢)DEFECT_QTY = DEFECTQTY(不扣帳報廢)
DW_MES_SPEC_WORKCENTER_V若直接以WORK_CENTERjoin 會放大筆數;需先彙整為唯一WORK_CENTER -> GROUP/SEQUENCE對照表再 join。
績效表欄位與計算邏輯
- 粒度:
日 + 工站群組 + 工站 + 站點規格 + 設備 + 產品維度 + 不良原因 - 核心指標:
REJECT_EVENT_ROWS: 原始 reject 紀錄筆數AFFECTED_LOT_COUNT: 受影響 lot 數(distinctCONTAINERID)MOVEIN_QTY: 以HISTORYMAINLINEID去重後的投入量REJECT_QTY: 原始REJECTQTY加總(五欄之一)REJECT_TOTAL_QTY: 五個 reject 相關欄位加總(扣帳報廢)DEFECT_QTY:DEFECTQTY加總(不扣帳報廢)REJECT_RATE_PCT = REJECT_TOTAL_QTY / MOVEIN_QTY * 100DEFECT_RATE_PCT = DEFECT_QTY / MOVEIN_QTY * 100REJECT_SHARE_PCT = REJECT_TOTAL_QTY / (REJECT_TOTAL_QTY + DEFECT_QTY) * 100
交付檔案
- 建表 + 刷新 SQL:
docs/reject_history_performance.sql - 可被應用層直接載入的查詢 SQL:
src/mes_dashboard/sql/reject_history/performance_daily.sql
建議排程
- 每日跑前一日增量:
:start_date = TRUNC(SYSDATE - 1):end_date = TRUNC(SYSDATE - 1)
- 每月第一天補跑前 31 天,避免補數漏失。