專案

一般

配置概況

動作

討論 #1486

進行中

Feature #1422: [功能開發] Backend Admin 營運 Dashboard(全案場適用,A17 首站)

[Dashboard] 即時關鍵指標與計算規則

是由 陳國瑋 於 27 天 前加入. 於 15 天 前更新.

狀態:
New
優先權:
Normal
被分派者:
-

概述

閱讀基準: 主需求 #1422 與 HTML Mock v0.4/附件 #1121。以下沿用主票區塊編號,依畫面由上到下、由左到右說明。Mock 數字皆為假資料;功能適用所有案場,A17 不是固定規則。

03|六張 KPI:本票要完成什麼

讓使用者快速讀懂設備連線、可服務數、未結束充電、等待供電、今日完成用量與上月應收電費。 位置在「需留意事項」下方、即時負載/群組上方。

雖然舊票名包含「即時」,六張 KPI 實際都是一般營運摘要:共用 Overview 首載/每 5 分鐘/手動刷新,不訂閱 Dashboard WebSocket。下方兩個即時區塊是另一份 live state,不要求同秒同步。

1. 先對照六張卡的畫面順序

編號/正式標題 主數字與輔助資訊(v0.4 假資料) 點擊目的地
03-1 Charge Point 連線 4 / 4 台啟用;0 台離線、0 台尚未確認 /cp/list
03-2 Connector 可服務 11 / 12 個;1 個不可服務,其中 1 個故障 /connector/list
03-3 充電進行中 3 Sessions;依未結束的充電 Session 計算 /connector/list
03-4 等待供電 2 個;另有 1 個未插槍(不計入) /connector/list
03-5 今日已完成充電量 84.6 kWh;已完成 6 次充電 本頁 #usage
03-6 上月電費 —;8 月結算未完成,10 / 11 筆 本頁 #billing

正式名稱已定案,不再使用「Charge Point 在線」、「進行中充電」、「今日累積電量」或「本月預估電費」。表中數字只是對照版面,不是固定驗收值。

以下 2~7 節依卡片由左至右說明;第 8~10 節是六張卡共用規則。

2. 03-1 Charge Point 連線

要回答:啟用的 CP 中,有多少已被系統記錄為 OCPP 在線? 連線正常不等於設備可充電,ONLINE+FAULTED 可以同時成立。(KPI-DEC-002)

數字 Backend 定義 FE 顯示
enabledChargePointCount 本案場 enabled=true 的 CP 分母「N 台啟用」。
onlineCount 上述啟用 CP 中 persisted ocppConnectionStatus=ONLINE 分子。
offlineCount/unknownCount 同範圍 OFFLINE/UNKNOWN;null/未知 enum 歸 UNKNOWN 「N 台離線・N 台尚未確認」。
disabledCount 本案場停用 CP >0 時補「另有 N 台停用」,不加入分子分母。

必須滿足 onlineCount+offlineCount+unknownCount=enabledChargePointCount。不能沿用未套 building 的全 Branch count;disabled 不當 OFFLINE,也不因 disabled 建立離線需留意項目。

例:6 台 CP、5 台啟用(4 ONLINE、1 OFFLINE),顯示 4 / 5 台啟用,不是 4 / 6;另列 1 台停用。

既有 ems_branch OCPP 建連/斷線、BootNotification、Heartbeat、offline watchdog 已維護 persisted 連線狀態。Dashboard 不再比較 lastHeartbeat、不另設 cutoff、不改 watchdog、不逐 Heartbeat 發 browser event 或建立每 CP socket。Runtime 仍由原 StatusNotification 等來源維護。

回傳欄位:上述五個 count、dataStatus、updatedAt。FE 直接使用,不從 CP list/Connector 卡重算。

3. 03-2 Connector 可服務

要回答:啟用設備底下,有多少 Connector 沒有已知故障、不可用或連線問題?可服務不等於立即空閒。 忙碌、準備或暫停輸出,不必然不可服務。(KPI-DEC-003)

分母:本案場 enabled CP 下全部 Connector
                   ↓
分子必須同時符合:
  parent CP ONLINE + Connector status 位於可服務 allowlist

允許 status:AVAILABLE、PREPARING、ENQUEUED、CHARGING、SUSPENDED_EV、SUSPENDED_EVSE、FINISHING、RESERVED。

排除:FAULTED、UNAVAILABLE、null/未知/不可解析,或 parent CP OFFLINE/UNKNOWN。即使保留舊 CHARGING,也不能忽略 parent 離線。Connector entity 沒有獨立 enabled 欄位,不虛構新條件;disabled CP 下的 Connector 不入分子分母。

欄位 意義
serviceableCount/totalConnectorCount 主數字「可服務 / 總數 個」。
nonServiceableCount totalConnectorCount-serviceableCount。
faultedCount 不可服務中的故障子集合;>0 時顯示「其中 N 個故障」。
dataStatus/updatedAt 來源品質與時間。

故障直接讀 persisted FAULTED,不按 error text、lastStatusChange 或自訂 timeout 推論;故障與 parent 離線可重疊,不再相加當總數。Backend 查詢須 join CP 並限制 building,不能直接套未隔離案場的 queryStatisticsOfConnector();FE 不由 Top-8 或其他 KPI 相減重算。

4. 03-3 充電進行中

要回答:系統目前仍認定多少筆充電 Session 尚未結束?不是計算 raw CHARGING 的 Connector 數,也不保證此刻每筆都在輸出功率。(KPI-DEC-004/010/011)

4.1 每個 Connector 最多一筆 canonical ACTIVE

canonical current transaction 是「沿用既有 Admin snapshot 規則認定的目前交易」,不是直接 COUNT 所有 ACTIVE rows:

currentTransactionId 指向有效 ACTIVE?
    ├─ 是 → 計 1 筆
    └─ pointer 缺漏/失效/尚未同步
             ↓
       該 Connector 最新一筆 transaction 為 ACTIVE?
             ├─ 是 → 計 1 筆
             └─ 否 → 不計較舊孤兒 ACTIVE
  • 最新 transaction 已 COMPLETED/CANCELLED/ERROR,不能因較舊孤兒 ACTIVE 增加數字。
  • ACTIVE 在 SUSPENDED_EV/SUSPENDED_EVSE/FINISHING、CP OFFLINE 或後來 disabled 時仍保留,直到交易正式結束。
  • Queue/off-peak waiting、Remote Start 已送出/接受但尚未建立 StartTransaction,不計入。
  • Raw CHARGING 但沒有符合上述規则的 ACTIVE,不計數,也不新增 mismatch 告警/修正。

4.2 卡片只顯示 Session,不顯示功率或推論原因

回傳 activeSessionCount、dataStatus、updatedAt。顯示「{N} Sessions」,小字固定「依未結束的充電 Session 計算」。

不讀 Live Load state、不顯示 optional currentPowerKw;目前功率只在 #1462 即時負載顯示。交易來源正常時,即使 Live Load 失敗也不把 Session 清 0。

CP 離線與此數字分別呈現。不顯示「離線充電/待 reconciliation」,不新增 offlineCharging/reconciliationRequired 欄位;不因本卡新增 timeout、自動結束、補寫或 charging lifecycle 修正。第 06 區 Connector 的「充電進行中」分類有另一套 runtime mapping,不要求兩個數字相等。

5. 03-4 等待供電

要回答:有多少 Connector 的既有 Queue 已判為 ELIGIBLE,正在等候供電? 主數字是 Connector 數,不是 Queue row 數。(KPI-DEC-005)

直接使用 e_connector_priority.charge_status,不從 runtime、等待秒數、可用 slot 或排程時間推導。

條件 計入哪裡
至少一筆 ELIGIBLE waitingForPowerCount,COUNT DISTINCT connector_id。
有 NOT_PLUGGED 且沒有任何 ELIGIBLE notPluggedCount,獨立次要數字。
同時 ELIGIBLE 與 NOT_PLUGGED 只計主數字,不重複計未插槍。
BLOCKED 不計本卡主數字,由 #1463 需留意事項呈現。
CHARGING/PAUSED/FINISHED/null/unknown 不計等待供電。

同 Connector 即使 MANUAL/OFF_PEAK 有多筆 Queue,也只計一次。Scope 是 Backend-resolved Building,資料 commit 後由下次成功 Overview 反映。

回傳 waitingForPowerCount、notPluggedCount、dataStatus、updatedAt;FE 顯示「N 個」,notPluggedCount>0 時補「另有 N 個未插槍(不計入)」,不能加回主數字。不新增 Queue timeout/SLA/scheduler/狀態轉換。

6. 03-5 今日已完成充電量

要回答:依案場開始日歸屬規則,今天目前已有多少最終確認的充電量與有效次數?不是今天實際流過的全部電量。(KPI-DEC-006)

唯一來源:#1461 Usage 的 date=rangeEndDate 那個 today daily bucket。

顯示 來源
N kWh todayBucket.validEnergyKWh:COMPLETED、energy_consumed 非 null/非負,Wh ÷1000。
已完成 N 次充電 todayBucket.sessionCount:COMPLETED 且 energy_consumed >0。

日期以 building timezone 與 start_timestamp 判斷,跨日整筆歸開始日。ACTIVE/CANCELLED/ERROR 不算;異常 Completed 排除並 PARTIAL;今天開始的 ACTIVE 要完成後下一次成功 REST 才納入。

不新增第二套今日聚合、active-energy query、MeterValue 暫估、跨日拆分或 Usage/Energy WS。FE 不重算;不顯示昨日同時段 ±N% 比較。Tooltip 表達「依交易開始日歸屬,僅包含已完成交易」,0/null/各異常狀態沿用 #1461。

7. 03-6 上月電費

要回答:上一完整日曆月的門牌帳單應收電費共多少?不是已收款金額,也不是 Connector 請款總額。(KPI-DEC-001)

7.1 期間與金額來源

  • Backend 以 generatedAt 轉 building timezone,決定 periodYear/periodMonth;9 月看 8 月,1 月看前一年 12 月。
  • 查該案場/該月份 e_bill_settlement.cost_predict,包含用量費與 private/public basic charge;paid/pending 均納入,不依 bill_status 過濾。
  • 不改用 e_connector_settlement.fee 或 InvoiceReportDataDto.totalFee,兩者是不同金額。
  • V1 currencyCode=TWD,由 API 回傳,FE 依回傳幣別格式化,不自己寫死幣別或月份。

7.2 全部完成才顯示金額

資料情況 Backend/FE 行為
至少一筆帳單,全部 calculation_status=COMPLETE dataStatus COMPLETE,amount 為全部 cost_predict 合計;真正合計 0 才可顯示 0。
任一 PENDING_DATA PARTIAL,amount=null,顯示「—」及完成筆數。
任一 ERROR amount=null,保留 source 錯誤語意,不回部分合計。
完全沒有上月帳單 不以 0 筆解讀為 0 元;保留無可用金額語意,不能套「全部完成」空集合判斷。

未完成文案:「{月份} 月結算未完成・{completedBillCount} / {totalBillCount} 筆」。無上月帳單的專用 Empty 文案在原票沒有明列最終文字,本次不自行創造金額或新的資料狀態。

回傳 periodYear、periodMonth、amount、currencyCode、completedBillCount、totalBillCount、dataStatus、updatedAt。不退回更早月份、不顯示部分合計、不重算、覆核、付款或修改 Invoice。

7.3 與下方結算流程的差別

本卡固定上一日曆月;#1460 的流程區顯示最近已存在結算資料的期間,兩者可以不同月。整卡定位 #billing 方便查看流程,不新增 Drawer、明細 API、forecast、收款比例或帳務操作按鈕。

8. 六張卡共用資料狀態

保留六張卡的標題與位置,狀態改變不讓卡消失;0 是有效值,null/缺欄位/尚未載入不是 0。(KPI-DEC-007)

狀態 顯示
初次 Loading 保留標題,數字/次要文字 skeleton;不先顯示 0、— 或另一案場資料。
COMPLETE 顯示 Backend 值,有效 0 明確顯示;不另縮成整卡 Empty。
PARTIAL,Backend 有安全值 保留值,標「部分資料缺漏・數字可能不完整」。
PARTIAL,沒有安全值 —,標「部分資料無法取得」;FE 不自己加出部分值。
Initial ERROR,無同案場成功資料 —、「暫時無法取得」,不 fallback fixture。
Refresh Error,有同案場成功資料 保留舊值,「更新失敗・顯示 {lastSuccessfulAt} 資料」。
STALE 保留可用舊值,「資料已過期・最後更新 {lastSuccessfulAt/updatedAt}」;無值則—,不可綠色正常。
成功恢復 套新資料與品質,移除不再適用的 Error/Stale 提示。

各來源回 dataStatus(COMPLETE/PARTIAL/ERROR)、freshness、updatedAt、必要 lastSuccessfulAt,value 允許 null。子查詢失敗不可 catch 後回 0;一個 source 只影響相依卡,共用該 source 的卡可一同受影響,其他卡繼續顯示。

Cache key 含 Backend-resolved buildingId,不能跨案場沿用。六卡所有刷新使用同一語意;Socket 斷線不清空/停止 KPI。#1424 的 global per-source freshness 適用,不另建 cutoff。

9. 排版與卡片導覽

9.1 固定六卡,只換欄數(KPI-DEC-008)

桌面 ≥1240px       [03-1][03-2][03-3][03-4][03-5][03-6]
768~1239px        [03-1][03-2][03-3]
                   [03-4][03-5][03-6]
320~767px         [03-1][03-2]
                   [03-3][03-4]
                   [03-5][03-6]

同一份 DOM、CSS Grid 改欄數,不用 JS device 判斷或複製兩套內容;同列等高,長標題/單位/狀態可換行,列高自然增加。不能截斷、省略、過度縮小、隱藏、重排、輪播、分頁或水平捲動;320px 以上可讀。

9.2 每張是一個原生 link(KPI-DEC-009)

  • 目的地依第 1 節 FE 固定 mapping;同分頁導覽,不開 popup/新窗、不附未確認 filter、不新增明細頁;Backend 不回 URL/target/keyboard/ARIA 欄位。
  • 整卡 pointer/touch hit area,每卡一個 Tab stop;Tab/Shift+Tab 依固定順序,Enter 啟用,不攔截 Space 模擬 button。
  • 不用只有 onClick 的 div,不巢狀第二個互動控制。Loading/0/PARTIAL/ERROR/STALE 仍保留連結,不因數字未知 disabled。
  • 清楚 focus-visible,不能被 overflow/sticky header 遮住;hover 不取代 keyboard focus。
  • #usage/#billing 使用原生 anchor,保留 hash/捲動,再把 focus 移至 tabindex=-1 且有標題/aria-labelledby 的目標 section,提供定位提示。
  • reduced motion 停用非必要平滑捲動/hover transition,但保留焦點與導覽。
  • accessible name 含名稱、數值或明確狀態、目的地,與 visible text 同步更新。Loading 可 aria-busy,skeleton 裝飾性、不重複朗讀。
  • KPI Grid 不設自動播報 live region,5 分鐘/手動刷新不逐卡打斷朗讀,聚焦時讀最新內容。

10. 更新方式與工程分工

一次 Overview(首載/每 300 秒/手動)
             ↓
       六張 KPI 的 value/status/時間
             ↓
       FE 同步畫面與 accessible name

下方兩個 WS live blocks:獨立 state,KPI 不讀取、不覆寫

Backend 針對狀態 commit 後的下次 Overview 回最新聚合,不新增 KPI event publisher、逐卡 timer/socket、NETWORK_HEALTH_UPDATED/CONNECTOR_OVERVIEW_UPDATED 訂閱或重連機制。

負責方 交付
Backend 六卡 scope/條件/DTO 與狀態隔離;canonical ACTIVE、distinct Queue、今日 Usage 重用、上月全數完成判斷;typed OpenAPI/測試。
FE 單一 typed KPI Card component、固定六卡與導覽、資料狀態、CSS Grid、鍵盤/screen reader/reduced motion。
QA 每卡公式與邊界、來源失敗隔離、跨案場 cache、固定 REST、所有狀態可導覽、RWD 與 accessibility。

Dashboard 不修改 OCPP connection/runtime、watchdog、充電、Queue priority/lifecycle、Rotation、Transaction、Billing、Invoice 或排程。沒有 forecast、告警、派工、確認 dialog、通知中心或語音播報設定。

11. 驗收清單

  • 六卡名稱/順序/目的地符合第 1 節,所有值來自 Backend,同一套支援所有案場。
  • CP enabled 範圍、三種連線 count 加總正確;disabled 不當離線、不改 Heartbeat cutoff,ONLINE+FAULTED 合法。
  • Connector 分母與 allowlist/parent ONLINE 正確;faulted 是子集合,不重複加總或按 preview 重算。
  • ACTIVE pointer/最新 transaction/孤兒 ACTIVE 各情境正確,每 Connector 最多一筆;offline/disabled 保留但不推論離線充電。
  • 不重複顯示功率,Queue/未建立 StartTransaction 不計 Session,Live Load 失敗不清空正常 Session。
  • ELIGIBLE distinct、NOT_PLUGGED 互斥、BLOCKED/其餘排除正確。
  • 今日兩數等於 Usage today bucket,開始日跨日/有效交易/0/null 正確,無估算/昨日比較。
  • 上月按時區/generatedAt 且跨年正確;至少一筆且全 COMPLETE 才顯示 cost_predict 合計,paid/pending 均納入,無部分金額/舊月 fallback。
  • 六卡 Loading/0/PARTIAL 有值/無值/Initial Error/Refresh Error/STALE/恢復正確,source 隔離、cache 不跨 building。
  • 首載/5 分鐘/手動共用 Overview,無 KPI WS;不覆寫兩個 live blocks、不充當 socket fallback。
  • 1440 為6×1、768/1024 為3×2、390 為2×3;臨界1240/1239、768/767及320最小寬度無溢出/重複卡。
  • mouse/touch/Tab/Shift+Tab/Enter 與至少一種 screen reader 可驗收;所有資料狀態維持單一 link、同頁焦點正確、無逐卡 live announce。
  • production 無 fixture fallback,無業務 mutation。

Mock ?kpi=loading/partial/error/refresh-error/stale/zero 以第 03-5 卡展示共用狀態,非正式 query contract。

12. 決策索引與既有查核紀錄

決策 本文
KPI-DEC-002/003/004/005/006/001 依畫面順序對應第 2~7 節
KPI-DEC-007 共用狀態 第 8 節
KPI-DEC-008 RWD;009 accessibility 第 9 節
KPI-DEC-010 不重複功率;011 不推論離線充電 第 4 節

001~010 於 2026-09-04、011 於 2026-09-06 已確認;傳輸依 #1424 DEC-031/032,Usage 來源並依 #1461 USG-DEC-010。早期 optional 功率與「今日累積電量」已被較新決策取代;不恢復為待確認項目。

2026-09-04 A17 舊票唯讀基線,本次未重查: 2026/08 共11筆門牌帳單,10 COMPLETE、1 ERROR;應顯示—與10/11。已完成部分8983.75元、包含ERROR的9533.63元,都不能冒充完整金額;全數完成後依當時資料重算顯示,不固定驗收金額。

相關票:#1424 共用資料/權限、#1461 Usage、#1460 結算流程、#1463 需留意事項。

需求管理與本次編輯

  • 本票仍是已確認需求的追蹤票,不代表已完成開發或通過測試;指派、狀態、進度、附件與父子關係均維持原狀。
  • v0.4 Draft 文件套件已依 #1422 DOC-DEC-001 發布並保留 v0.2/v0.3;目前閱讀基準為 PDF #1119、Markdown #1120、HTML #1121。此版仍是 review Draft,尚非 v1.0。
  • 2026-09-14:僅重整 Description、說明與排版,將已確認決策併入對應畫面/工程工作;決策編號保留供追溯。E2E impact:No catalog change(沒有修改產品行為、公式或 API 契約);功能實作時仍須遵循主票與本票驗收。

是由 陳國瑋 於 27 天 前更新

  • 追蹤標籤 從 討論 變更為 Feature
  • 狀態 從 Closed 變更為 New
  • 完成百分比 設定為 0

是由 陳國瑋 於 27 天 前更新

  • 追蹤標籤 從 Feature 變更為 討論

是由 陳國瑋 於 27 天 前更新

KPI-DEC-001 部分確認:移除「本月預估電費」,第六張改為「上月電費」;不採今日 Sessions。A17 2026/08 同時有門牌帳單、Connector fee 與 calculation ERROR,故金額語意仍須確認。Mock 暫顯示破折號,不沿用未定義的 8,920 元。維持討論/New/0%。

是由 陳國瑋 於 27 天 前更新

KPI-DEC-001 已確認:上月電費採上一完整日曆月的門牌帳單應收總額;全部 calculation_status COMPLETE 才顯示金額,否則顯示 — 與完成筆數。Mock 已同步 A17 2026/08 的 10/11 未完成狀態,並可導向 #billing。

是由 陳國瑋 於 27 天 前更新

KPI-DEC-002 已確認:第一張改名 Charge Point 連線;指定 building 的 enabled CP 為分母,persisted OCPP ONLINE 為分子,OFFLINE/UNKNOWN/disabled 分開。沿用 REST bootstrap 與 NETWORK_HEALTH_UPDATED,只做顯示、不另算 Heartbeat cutoff。Mock 已同步。

是由 陳國瑋 於 27 天 前更新

KPI-DEC-003 已確認:Connector 可服務不是 AVAILABLE 數。分母為指定 building 的 enabled CP 下 Connector;分子同時要求 parent CP ONLINE 與固定 status allowlist。FAULTED/UNAVAILABLE/unknown/parent CP 非 ONLINE 排除,Mock 已同步。

是由 陳國瑋 於 27 天 前更新

KPI-DEC-004 已確認,正式中文名稱依 Ken 意見採「充電進行中」。每 Connector 依 canonical ACTIVE transaction 最多計一筆;不以 raw CHARGING 或功率推導。Mock 已同步。

是由 陳國瑋 於 27 天 前更新

依 Ken 確認新增 KPI-DEC-005:等待供電只計 Queue ELIGIBLE 的 distinct Connector;NOT_PLUGGED 另列且不計入,BLOCKED 留在需留意事項。同步補齊 BE/FE、REST/WebSocket 與驗收規則;不新增 Queue 作業邏輯。

是由 陳國瑋 於 27 天 前更新

依 Ken 確認新增 KPI-DEC-006:第五張改為「今日已完成充電量」,直接重用 #1461 today daily bucket;只含有效 COMPLETED 交易,不估算 ACTIVE,移除昨日同時段比較。

是由 陳國瑋 於 27 天 前更新

依 Ken 確認新增 KPI-DEC-007:六張 KPI 共用 Loading、有效 0、PARTIAL、Initial Error、Refresh Error with Cache 與 STALE 規則;source failure 隔離且 null 不得轉成 0。Mock 增加 review fixtures。

是由 陳國瑋 於 27 天 前更新

Ken 已確認 KPI Responsive 排版,已登錄 KPI-DEC-008:桌面 6×1、平板 3×2、手機 2×3;六張卡固定順序、完整保留且不使用水平 carousel。Mock 與 parent #1422 同步更新。

是由 陳國瑋 於 27 天 前更新

Ken 已確認 KPI-DEC-009:六張 KPI 使用單一原生 link、固定 route/section 目的地、同頁跳轉後移動 focus、狀態同步 accessible name,且 WebSocket 數字不逐筆 aria-live 播報。#1486 的 KPI 需求訪談已完成,仍維持 New/0% 等待全 Dashboard 鎖版。

是由 陳國瑋 於 27 天 前更新

同步 #1424 DEC-031:六張 KPI 改為 REST-only,不再建立 KPI WebSocket replacement;KPI-DEC-001~009 的公式、狀態、RWD、導覽與 accessibility 規則不變。

是由 陳國瑋 於 27 天 前更新

同步 DEC-032:六張 KPI 共用頁面首載、每 5 分鐘與手動 Overview refresh,不建立 KPI 專用 timer;REST 不覆寫兩個 WS live blocks。

是由 陳國瑋 於 27 天 前更新

鎖版前待確認:KPI-DEC-010「充電進行中」次要功率

一致性稽核發現:

  • KPI-DEC-004 原本把 activeSessionCount 作為主數字,並「可」顯示由 LIVE_LOAD_UPDATED 更新的「即時功率」。
  • 後續 #1424 DEC-031 已確認六張 KPI 都是 REST-owned;WebSocket 只更新「Connector 即時狀態」與「案場即時負載」兩個區塊。
  • 若 KPI 仍透過 Live Load WebSocket 更新功率,就會形成第三個 WebSocket 更新位置,違反 DEC-031。
  • 若改成每 5 分鐘 REST 功率,卡片上的「即時功率」可能落後 Live Load,兩處同時顯示不同數字,使用者不易理解。

建議 V1 移除這個 optional 次要功率,只保留 activeSessionCount 與不宣稱即時的說明;精確功率集中在「案場即時負載」區塊。這不改變 ACTIVE transaction 計算公式,也不改變任何充電流程。待 Ken 確認後才更新 description 與 mock。

是由 陳國瑋 於 27 天 前更新

確認 KPI-DEC-010:第三張「充電進行中」KPI 移除 optional 的「即時功率」次要數字,只保留 {N} Sessions,小字固定為「依未結束的充電 Session 計算」。即時功率集中在「案場即時負載」區塊,KPI 不訂閱 LIVE_LOAD_UPDATED。Canonical ACTIVE transaction 計數、導向 /connector/list 與唯讀邊界不變。

是由 陳國瑋 於 27 天 前更新

Working mock 已同步 KPI-DEC-010:移除「充電進行中」卡片的「即時功率 21.84 kW」,改為「依未結束的充電 Session 計算」,並同步 accessible name。currentPowerKw 仍只保留在「案場即時負載」區塊。HTML JavaScript parse 與 git diff --check 通過;本輪未執行功能測試,E2E impact 為 No catalog change。

是由 陳國瑋 於 26 天 前更新

【現行需求一致性整理|#1424 DEC-029/031/032】

  • 六張 KPI 全部改為現行共用 Overview REST 首載、每 5 分鐘及手動刷新,不定義或訂閱 KPI Dashboard WebSocket event。
  • 移除 NETWORK_HEALTH_UPDATED、CONNECTOR_OVERVIEW_UPDATED、sequence/gap recovery、KPI replacement及逐筆 WebSocket announcement 等舊條款;同步修正決策確認清單。
  • 保留 ems_branch 既有 OCPP WebSocket 對 persisted ocppConnectionStatus 的維護,並明確註記它是資料來源機制,不是瀏覽器 Dashboard WebSocket。
  • V1 無 building selector,所有 KPI query 使用 Backend-resolved buildingId;不同 scope 的 cache 不混用。
  • 六張 KPI 的公式、上月電費、充電進行中、資料品質、RWD、keyboard、deep link 與 accessibility 規則不變;Issue 維持 New/0%。

E2E impact:No catalog change;正式實作仍須依既有 KPI E2E impact 建立 cases,本次未執行產品/整合/E2E 測試。

是由 陳國瑋 於 26 天 前更新

是由 陳國瑋 於 26 天 前更新

【需求確認|KPI-DEC-011】

Ken 同意「充電進行中」只陳述系統仍認定未結束的 Session,不推論離線充電原因。

  • canonical ACTIVE transaction 計數規則不變。
  • parent CP 暫時 OFFLINE/disabled 時,尚未結束 Session 仍計入,直到 transaction 正式結束。
  • 這不代表 Dashboard 已確認設備正在輸出電力或需要 reconciliation。
  • Backend 不新增 offlineCharging/reconciliationRequired 等衍生欄位。
  • Frontend 不顯示「離線充電/待 reconciliation」提示;CP 離線由「需留意事項」獨立呈現。

Mock 現有「依未結束的充電 Session 計算」已符合規則,無需修改。Issue 維持討論/New/0%。

是由 陳國瑋 於 17 天 前更新

是由 陳國瑋 於 15 天 前更新

動作

匯出至 Atom PDF