From cac2017e9f1a8227376a42dde6d5b3b3503e9885 Mon Sep 17 00:00:00 2001 From: ymirliu Date: Fri, 16 Jan 2026 16:23:09 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=20DOWN=20?= =?UTF-8?q?=E6=A9=9F=E5=8F=B0=E6=98=8E=E7=B4=B0=E8=A1=A8=EF=BC=8C=E7=B0=A1?= =?UTF-8?q?=E5=8C=96=20Dashboard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 resource_status.html 中的 DOWN 機台明細表區塊 - 移除相關 CSS 樣式和 JavaScript 函數 (loadDetail, formatDownTime, getStatusClass) - 保留 KPI 卡片和工站卡片視覺化呈現 - 為後續新增稼動率趨勢圖和熱力圖做準備 Co-Authored-By: Claude Opus 4.5 --- apps/portal.py | 8 +- apps/templates/resource_status.html | 235 +--------------------------- 2 files changed, 8 insertions(+), 235 deletions(-) diff --git a/apps/portal.py b/apps/portal.py index e833c08..294b94f 100644 --- a/apps/portal.py +++ b/apps/portal.py @@ -1519,8 +1519,9 @@ def query_resource_detail_with_job(filters=None, limit=200, offset=0): where_clause = " AND ".join(where_conditions) if where_conditions else "1=1" # Left join with JOB table for SDT/UDT details + # JOB 匹配邏輯: RESOURCEID + CREATEDATE = LASTSTATUSCHANGEDATE (等值匹配) # PJ_LOTID 來自 RESOURCE 表 - # SYMPTOMCODENAME, CAUSECODENAME 來自 JOB 表 + # SYMPTOMCODENAME, CAUSECODENAME, JOBID 等來自 JOB 表 # DOWN_MINUTES: 使用全體最大 LASTSTATUSCHANGEDATE - 每台機台自己的時間 # 注意: 將所有 CTE 放在同一層級,避免巢狀 WITH 子句 (Oracle 不支援) start_row = offset + 1 @@ -1591,7 +1592,7 @@ def query_resource_detail_with_job(filters=None, limit=200, offset=0): rs.PJ_ISPRODUCTION, rs.PJ_ISKEY, rs.PJ_ISMONITOR, - rs.JOBID, + j.JOBID, rs.PJ_LOTID, j.JOBORDERNAME, j.JOBSTATUS, @@ -1613,7 +1614,8 @@ def query_resource_detail_with_job(filters=None, limit=200, offset=0): ) AS rn FROM base_data rs CROSS JOIN max_time mt - LEFT JOIN DW_MES_JOB j ON rs.JOBID = j.JOBID + LEFT JOIN DW_MES_JOB j ON j.RESOURCEID = rs.RESOURCEID + AND j.CREATEDATE = rs.LASTSTATUSCHANGEDATE WHERE {where_clause} ) WHERE rn BETWEEN {start_row} AND {end_row} """ diff --git a/apps/templates/resource_status.html b/apps/templates/resource_status.html index 3261c27..5856fae 100644 --- a/apps/templates/resource_status.html +++ b/apps/templates/resource_status.html @@ -252,108 +252,6 @@ margin-top: 8px; } - /* Detail Table */ - .detail-section { - background: var(--card-bg); - border-radius: 10px; - padding: 16px; - border: 1px solid var(--border); - box-shadow: var(--shadow); - } - - .detail-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 12px; - } - - .detail-title { - font-size: 16px; - color: var(--primary); - } - - .detail-count { - color: var(--muted); - font-size: 13px; - } - - .table-container { - overflow-x: auto; - max-height: 350px; - overflow-y: auto; - } - - table { - width: 100%; - border-collapse: collapse; - font-size: 12px; - } - - thead { - position: sticky; - top: 0; - background: #eef2ff; - z-index: 1; - } - - th { - padding: 10px 8px; - text-align: left; - color: #3f4aa7; - font-weight: 600; - white-space: nowrap; - border-bottom: 1px solid var(--border); - } - - td { - padding: 8px; - border-bottom: 1px solid var(--border); - color: var(--text); - } - - tbody tr:hover { - background: #f1f5ff; - } - - .status-badge { - display: inline-block; - padding: 3px 10px; - border-radius: 12px; - font-size: 11px; - font-weight: 700; - } - - .status-prd { background: #bbf7d0; color: #166534; } - .status-sby { background: #bfdbfe; color: #1e40af; } - .status-udt { background: #fecaca; color: #991b1b; } - .status-sdt { background: #fef3c7; color: #92400e; } - .status-egt { background: #e2e8f0; color: #475569; } - .status-nst { background: #e9d5ff; color: #6b21a8; } - .status-other { background: #e5e7eb; color: #374151; } - - .flag-badge { - display: inline-block; - padding: 2px 6px; - border-radius: 8px; - font-size: 10px; - margin-right: 3px; - } - - .flag-prod { background: #dcfce7; color: #166534; } - .flag-key { background: #fee2e2; color: #991b1b; } - .flag-monitor { background: #dbeafe; color: #1e40af; } - - .down-time { - color: var(--danger); - font-weight: bold; - } - - .job-info { - font-size: 11px; - color: var(--muted); - } - /* Loading */ .loading-spinner { display: inline-block; @@ -486,34 +384,6 @@ - -
-
-
DOWN 機台明細 (UDT/SDT)
-
-
-
- - - - - - - - - - - - - - - - - - -
機台工作中心狀態原因最後狀態時間Down Time批號 (PJ_LOTID)症狀 (JOB)原因碼 (JOB)標記
請點擊「查詢」載入資料
-
-