Feature #1397
進行中[功能開發] LIFF DriverState、離峰充電與 Remote Operation 狀態契約重構
50%
概述
目標¶
依 2026-07-29 完成審查的 DriverState/公私樁/離峰充電需求,重構 Branch/HQ API 與 LIFF 的端到端狀態契約,修復 raw OCPP status、排隊、長期離峰模式與實際車主操作語意不一致的問題。
核心範圍¶
- PUBLIC/PRIVATE Connector 行為差異。
- 手動充電與長期離峰充電。
- OFF_PEAK_WAITING/QUEUED/PREPARING/CHARGING/FINISHING 等車主狀態。
- Semantic actions 與 Command API authoritative guard。
- RemoteStart/RemoteStop operation 持久化及服務重啟還原。
- Current off-peak window suppression。
- WebSocket initial snapshot、斷線與 stale action 防護。
- Branch 提供完整 API contract,HQ passthrough,LIFF 依契約實作。
規格附件¶
本 ticket 應附上兩份內容對等的規格:
-
redmine-1397-driver-state-offpeak-requirements-rev-20260731.md(英文修訂版,附件 #1102) -
redmine-1397-driver-state-offpeak-requirements-zh-TW-rev-20260731.md(繁體中文修訂版,附件 #1103)
附件為本主 ticket 與兩張子 ticket 的共同需求基準;實作若需改變產品行為,應先回到主 ticket 更新規格。
子任務¶
- Backend:Branch/HQ API、schema、scheduler、OCPP operation、授權與測試。
- Frontend:LIFF DriverState/actions、off-peak switch、WebSocket-only detail 與 modal/斷線行為。
不在本 ticket¶
- Charge Group 刪除 guard:#1395。
- PUBLIC slot 設定 guard 與 runtime
slots==0防線:#1396。
完成條件¶
- BE 與 FE 子 ticket 均完成各自測試與交付。
- API contract、OpenAPI types、WebSocket payload 與畫面行為一致。
- 規格列出的 P0/P1 regression 與適用 E2E cases 通過。
- 主 ticket 完成跨服務驗收後才可結案。
檔案
是由 陳國瑋 於 3 天 前更新
- 檔案 redmine-1397-driver-state-offpeak-requirements-rev-20260731.md redmine-1397-driver-state-offpeak-requirements-rev-20260731.md 已新增
- 檔案 redmine-1397-driver-state-offpeak-requirements-zh-TW-rev-20260731.md redmine-1397-driver-state-offpeak-requirements-zh-TW-rev-20260731.md 已新增
已上傳 2026-07-31 修訂版中英文需求文件,取代既有附件 #1100/#1101(舊附件保留供追溯)。
本次修訂同步 #1398/#1399 已確認內容:driverState 僅使用 actions[]、統一語意 command API、operationId 與指定使用者的 operationResult、初始快照不重播 terminal result、RemoteStop 30 秒 deadline,以及 RemoteStart 沿用各廠牌既有等待時間並加 30 秒事件對帳寬限。
是由 陳國瑋 於 3 天 前更新
2026-07-31 E2E 暫停點與後續人工驗收安排
本輪先完成 #1398 Backend 在 Ken Branch/docker1 HQ staging 的安全 Smoke/API/WebSocket contract 驗證,已執行 6 案且全部 PASS;但尚未由 LIFF 操作實體 RemoteStart/RemoteStop、私樁離峰與多 session,因此整體仍為 PARTIAL,不視為完整 E2E 通過。
已附上附件 #1106:
redmine-1397-liff-manual-e2e-test-plan-zh-TW.md
附件是下一輪正式人工 E2E 的執行基準,內容包含:
- 從 LIFF Connector list/detail 開始的 16 個人工案例。
- Ken 環境 CP001-001/CP001-002 的實際基線。
- 以兩支 CloudLink Connector 切換 PUB、PRI-0、PRI-1,覆蓋公樁、私樁、零 slot 排隊與一個 private slot 實際充電。
- test-only Charge Group/tariff fixture、操作前安全檢查、DB/log/WebSocket/硬體證據。
- OFF_PEAK_WAITING、QUEUED、PREPARING、CHARGING、FINISHING、timeout、current-window suppression、targeted operationResult、重啟恢復。
- 測後完整還原步驟。
下一步:等待 #1399 Frontend 完成並部署 LIFF 測試版後,再由 Ken/Ryan/BE observer 依附件 #1106 執行。正式執行結果另建 Test Run report;未執行案例不得預先標 PASS。