批次送出驗證(BatchSubmitAsync)

初核/複核主管批次送出草稿時,系統**按單位(Unit)**檢查「整包送」規則——對應紙本流程:整包考核表裝信封袋才能往後送。

單位 key 解析順序

Employee.Unit → Employee.Department → VirtualDeptName(fallback)

三類角色規則

初核

  • 單位內目前在初核(step 1)且 R1=我的人 → 全部有草稿才可送

複核

  • 單位內 R2=我 且未通過複核(currentStep ≤ R2Step)的人 → 全員已到複核 + 全員有草稿才可送
  • 若有人仍在初核(currentStep < R2Step)→ 擋下,等初核主管把該人送上來
  • 若有人因退回回到初核 → 擋下整單位

審核主管(初審/複審/三審/終審)

  • 可沿用前關分數,不需草稿
  • 全選/批次時審核主管自動視為「可送」

為什麼按單位不按虛擬部門

維度說明
單位(如「製作工程部-製播-攝影組」)1 位單位主管負責一般職的初核
虛擬部門HR 規劃用,跨單位

按單位送對應 HR 紙本流程:整包考核表裝信封袋才能送下一關。

All-or-nothing(重要)

只要任一筆驗證失敗,整批不寫入 DB

過去「部分送出部分留草稿」會讓使用者困惑——已改為交易式。

一次批次只能同一關卡(前端限制)

MyListPage 批次送出前檢查 draftSelectedmyRole 去重,size > 1 直接擋下並 toast 提示。

理由:跨關卡同送(如初核+複核)會讓配額分子分母混算 → 超額判定失真。

相關概念

強連結(原文明確提及)

← 回到 wiki