超額說明歷程(GradeOverrideLog)

每次提交有超額、不足、或主動填寫原因都會累積寫入 GradeOverrideLog(退回重送永不覆蓋)。

關鍵欄位

欄位說明
PeriodId / VirtualDeptName所屬週期 + 虛擬部門
Unit組織單位(批次送出按 unit 分組;部門層級提交為 null)
ConfirmationType"GradeReview"(等第審核期間)/ "Settlement"(年度結算期間)
SourceType"ReviewerBatch" 初/複核批次|"DeptSupervisor" 部門主管提交到 HR|"HrReturn" HR 退回
GradeType / ExpectedCount / ActualCount等第快照(GradeType="" 為事件標記列)
OverrideReason填寫原因
SubmittedBy / SubmittedAt提交者 + 時間(同時間+人+來源聚合為一次提交)

填寫規則

情境原因欄位
初核/複核批次送出(MyListPage)超額必填、非超額選填;沒填不寫 log
虛擬部門主管提交到 HR(ReviewGradeDistributionPage「確認提交」)超額必填、非超額選填;一律寫入等第快照
HR 退回(HR「退回」按鈕)必填;寫入 HrReturn 事件列

API + 權限

GET /api/review/periods/{id}/override-logs?type=GradeReview|Settlement&forRole=hr|reviewer

  • forRole=hr → 只回 DeptSupervisor + HrReturn(HR 不看部門內部)
  • forRole=reviewer僅回本人擔任 DesignatedReviewer(虛擬部門主管)的部門全部記錄;一般審核主管(如嚴智徑)不是虛擬部門主管則看不到
  • 等第分配進度(考核總覽 supQuotaData)套用相同規則:只顯示本人擔任虛擬部門主管的部門

前端呈現

  • 共用元件:OverrideLogPanel.tsx — 琥珀色摺疊面板,顯示提交者/來源徽章/單位/等第徽章/時間/原因
  • 整合頁面:ReviewGradeDistributionPage、SettlementStatsPage、ReviewSettlementStatsPage、ReviewDashboardPage(獨立區塊含「超額項目摘要」)