專案

一般

配置概況

動作

討論 #1460

進行中

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

[Dashboard] 結算流程區塊顯示規則

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

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

概述

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

08|結算流程:本票要完成什麼

讓使用者知道:最近有結算資料的那一期,四個步驟完成到哪裡。 這是 Dashboard 底部右側的唯讀面板,不是「本月帳務摘要」,也不在這裡執行結算。

Mock v0.4 顯示「2026 年 8 月結算流程」作為假資料範例;正式版標題為「{資料年份} 年 {資料月份} 月結算流程」,年月由 Backend 回傳,不能固定成 Mock 月份。

底部左側:07 30 日充電用量    底部右側:08 結算流程
                                      │
                                      ├─ Connector 結算
                                      ├─ 門牌結算
                                      ├─ 帳務覆核
                                      └─ 發票結算
                                        ↓
                                  兩個既有列表入口

1. 依畫面由上到下看欄位

位置 使用者看到什麼 正式資料含意 v0.4 假資料
標題 年/月結算流程 最近已存在的結算資料期間 8 月結算流程
第 1 列 Connector 結算 設備電量與費率計算的完成數/總數 11 / 12
第 2 列 門牌結算 完成歸戶的門牌結算筆數與總數 10 / 11
第 3 列 帳務覆核 既有 Billing 狀態分布,例如 paid/pending 7 paid、4 pending;進行中
第 4 列 發票結算 既有 Invoice 狀態,例如 draft/pending/settled draft;未完成
Footer 查看帳單、查看請款/發票 前往既有管理頁 本版 Mock 尚未畫出,見第 3 節。

四類資料各自保留欄位與原始 status code,不能合併成新業務狀態,也不能把 Billing 與 Invoice 的數值互相替代。(BIL-DEC-001)

2. 標題月份怎麼決定

Backend 只查目前案場,從已存在的結算資料中找最近期間,再回傳 periodYear、periodMonth、timezone。FE 只格式化,不用瀏覽器日期或「目前月份減一」推算。(BIL-DEC-002)

例子 應顯示 不可做
9 月開啟,資料庫最新只有 8 月資料 2026 年 8 月結算流程 為配合今天而虛構 9 月資料。
9 月資料已建立但為 pending/partial/error 2026 年 9 月結算流程,照實顯示狀態 退回 8 月來隱藏問題。
案場從未產生任何結算期間 明確無資料(Empty),期間可為 null 猜成「本月/上月」,或把未知筆數顯示成 0。

案場由 Backend 的唯一 enabled Building resolver 決定;Dashboard request 不傳 buildingId,不使用 A17 特例。本查詢不建立新一期資料、不啟動月結、不重算或補償。

3. 四列不可點擊,操作只留在 Footer

四列只有狀態與數量,不可點擊,不顯示箭頭、可點擊 hover 或可展開暗示。使用者需要查看明細時,由 Footer 前往既有頁面。(BIL-DEC-003)

連結文字 固定目的地 開發要求
查看帳單 /bill/list 原生 Link/anchor,可用 Tab、Enter,有清楚焦點。
查看請款/發票 /invoice/list 同上;目的頁沿用原有權限。

FE 維護固定路徑,不從 Dashboard API 讀取 URL、route 或 label;Backend 不新增導覽 DTO、逐列 drill-down API、專用頁面、帳務 Drawer 或自訂列表篩選契約。

Mock 對照: v0.4/附件 #1121 已補上 BIL-DEC-003 的兩個 Footer 入口:「查看帳單」與「查看請款/發票」。四個流程列仍為純資訊、不可點擊。

4. 別與「上月電費」KPI 混淆

上方第 03-6 張 KPI 的規則由 #1486 KPI-DEC-001 定義:

比較 本票:08 結算流程 #1486:03-6 上月電費
要回答 各步驟完成到哪裡? 上月門牌帳單應收電費共多少?
期間 最近已存在的結算期間 案場時區的上一完整日曆月
金額來源 四列依各自結算/Billing/Invoice 資料呈現 e_bill_settlement.cost_predict;paid/pending 均納入
不完整時 保留該期,分列顯示狀態 任一帳單未 COMPLETE,金額為 null,顯示「—」與完成筆數
點擊 四列不可點;由 Footer 去列表 整張 KPI 定位同頁 #billing

兩區期間可能不同。KPI 不用 Connector fee 或 Invoice totalFee 代算、不顯示部分合計、不退回前期;點進本區不代表兩者月份必須相同。

5. 更新與異常狀態

本區與上月電費均隨共用 Overview:首載、每 5 分鐘、手動刷新更新;每輪只取一次 GET /api/dashboard/overview,不另設 Billing request/timer,也不新增帳務 WebSocket。(#1424 DEC-032)

情況 FE 呈現 Backend 責任
載入中 Loading,不先填 0 或完成圖示 回應前不提供假成功狀態。
成功、沒有任何期間 Empty,說明沒有結算資料 明確 Empty 語意,年月可為 null。
成功、真實數字為 0 顯示 0 0 與 null 分開。
部分子來源失敗 保留可確認內容,標示不完整 分來源 status/updatedAt;不要使其他 Dashboard 區塊失敗。
無法取得/未知 Error 或「—」,不顯示已完成 未知值為 null,保留來源狀態。
後續刷新失敗 依 #1424 共用規則保留同案場最後成功資料與時間,清楚標示失敗/過期 不把舊資料標為本次成功資料。

狀態同時用文字與視覺樣式表達,不能只靠顏色。正式版 API 失敗不退回 fixture。

6. 工程分工

負責範圍 交付內容
Backend/API 四步驟 read-only aggregation/DTO、最近資料期間查詢、原始狀態、source status/updatedAt;重用既有 repository/service 查詢概念,不複製結算公式。
FE 四列 responsive 面板、API 綁定、年月格式、Loading/Empty/Partial/Error/null、兩個 Footer 連結與鍵盤可用性。
權限 沿用 #1424 DEC-030 的 dashboard function;列表入口與目的頁不繞過既有授權。
QA 驗證期間選擇、四類資料不混用、部分失敗隔離、導覽與無 mutation。

V1 不做: 本月帳務摘要、帳務趨勢/歷史比較、住戶/逐筆帳單清單、付款/覆核/重算/修改發票狀態、Dashboard 專用帳務表或排程。

7. 驗收清單

  • 標題與四列名稱、順序符合第 1 節,年月/數字/狀態來自 API。
  • 第 2 節三個期間例子正確;新一期 error 不退回前期,無資料不猜月份。
  • 四類資料分欄位,null 不當 0/已完成;單一來源失敗不拖垮其他區塊。
  • 四列沒有可點擊暗示;兩個 Footer 連結可用滑鼠/鍵盤,且沿用既有權限。
  • API 不新增導覽 URL、逐列明細 API 或任何帳務 mutation。
  • KPI 與流程期間可不同;上月金額未全數 COMPLETE 時不顯示部分合計或舊月份。
  • 共用首載/5 分鐘/手動 Overview,無帳務專用 timer/WebSocket/fixture fallback。

8. 決策與更正索引

決策 已確認日期 本文位置
BIL-DEC-001 四步驟面板 2026-09-03 第 1、5、6 節
BIL-DEC-002 最近結算資料期間 2026-09-03 第 2 節
BIL-DEC-003 純資訊列與 Footer 2026-09-03 第 3 節
KPI-DEC-001 上月電費關聯 2026-09-04 第 4 節;公式由 #1486 負責

2026-09-03 曾把「本月帳務摘要」誤述成 Mock 既有內容,該提案及 cancelled 顯示問題已撤回。初始依據為附件 #1110 的四步驟面板,v0.3 為 #1117;目前視覺對照使用 v0.4/#1121,舊版均保留。早期「每列連結待確認」已由 BIL-DEC-003 定案,不再是待決事項。

需求管理與本次編輯

  • 本票仍是已確認需求的追蹤票,不代表已完成開發或通過測試;指派、狀態、進度、附件與父子關係均維持原狀。
  • 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 契約);功能實作時仍須遵循主票與本票驗收。

是由 陳國瑋 於 28 天 前更新

建立時 Redmine status ID 對應異常,已立即修正為與其他 Dashboard 討論票相同的 New/0%;需求仍在確認中,並未完成或關閉。

是由 陳國瑋 於 28 天 前更新

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

是由 陳國瑋 於 28 天 前更新

  • 狀態 從 Closed 變更為 New

是由 陳國瑋 於 28 天 前更新

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

已完成狀態修復:本票維持討論/New/0%,繼續用於帳務摘要需求確認。

是由 陳國瑋 於 28 天 前更新

  • 主旨 從 [Dashboard] 當月帳務摘要顯示規則 變更為 [Dashboard] 結算流程區塊顯示規則
  • 概述 已更新 (差異)

需求更正:attachment #1110 的既有設計是「6 月結算流程」四步驟面板,不是「本月帳務摘要」。前一版 BIL-DEC-001 因說明前提錯誤,不視為已確認;已將本票恢復為待重新確認,且暫停 cancelled 等延伸問題。

是由 陳國瑋 於 28 天 前更新

BIL-DEC-001 已重新確認:Dashboard V1 完全沿用 attachment #1110 的四步驟「結算流程」面板;假月份/假數字改由正式 API 提供。Backend 只做唯讀彙整,Frontend 只串接、補 states 與導覽;不新增摘要卡、趨勢或帳務操作。

是由 陳國瑋 於 28 天 前更新

已依 Ken 確認新增 BIL-DEC-002:結算流程標題與資料期間一律由 Backend 依 buildingId 的最近結算資料回傳;Frontend 不以瀏覽器日曆推算。最新期間即使 pending/partial/error 仍照實顯示,不退回舊期;完全無資料才顯示 Empty。本次僅更新唯讀 Dashboard 需求,不調整任何結算排程或帳務 lifecycle。

是由 陳國瑋 於 28 天 前更新

已依 Ken 確認新增 BIL-DEC-003:四個結算步驟列維持純資訊,面板底部僅提供「查看帳單」→ /bill/list 與「查看請款/發票」→ /invoice/list。Frontend 使用既有 route;Backend 不回 URL、不新增 drill-down API,也不新增頁面。#1460 的結算流程區塊需求已全部確認,票單仍保持 New/0%,等待其他 Dashboard 區塊確認後再整併。

是由 陳國瑋 於 27 天 前更新

補充與 #1486 上月電費 KPI 的關係:KPI 固定上一完整日曆月;四步驟面板仍顯示最近已存在結算期間。兩者皆唯讀,不新增帳務作業。

是由 陳國瑋 於 27 天 前更新

同步 DEC-032:結算流程/上月電費不再使用 15 分鐘獨立 timer,改與全頁 REST 區塊共用 5 分鐘 Overview refresh;仍為唯讀且無 Billing WebSocket。

是由 陳國瑋 於 26 天 前更新

修正建立時誤套用的 Closed 狀態;本票為需求討論,應維持 New/0%。

是由 陳國瑋 於 26 天 前更新

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

  • 四步驟結算與上月電費維持 REST-only,統一由共用 Overview 首載、每 5 分鐘及手動刷新更新;不建立帳務專用 timer/request/WebSocket。
  • building scope 改為 Backend current-building resolver 自動解析;Dashboard request 不傳 buildingId。
  • 結算公式、期間、四列純資訊及既有導覽規則不變;Issue 維持 New/0%。

E2E impact:No catalog change;本次未執行產品/整合/E2E 測試。

是由 陳國瑋 於 17 天 前更新

是由 陳國瑋 於 15 天 前更新

動作

匯出至 Atom PDF