PAM 系統所有等第相關計算的單一來源。Controller 與各 fallback 一律呼叫此服務,禁止自行實作重複邏輯。
| 方法 | 用途 |
|---|---|
CalcGrade(score) |
分數 → 等第(特優/優等/甲等/乙等/丙等) |
GradeRank(grade) |
等第 → 排序分數(比較大小用) |
ComputeScoreC(A, B, isMerged) |
當次平均分數 C(合併主管→C=A;否則 (A+B)/2) |
ComputeScoreD(A, B, isMerged, attendance) |
當次成績 D = C + 出勤扣分 |
ComputeAttendanceDeduction(hours) |
事假時數 → 扣分(每小時 -0.125) |
ComputeByRate(n) / QuotaSuggestion |
人數 → 建議配額(餘額法,sum 永遠 = n) |
GetSuggested(quota, grade) |
從 QuotaSuggestion 取對應等第建議數 |
CalcCeiling(...) |
等第天花板(懲處/假勤/年資 → 天花板等第 + 原因) |
CalculateGrade 與各處 fallback 一律呼叫此服務C = (A + B) / 2 若 R1 ≠ R2
C = A 若 R1 = R2(合併)
D = C + 出勤扣分 // 出勤扣分 ≤ 0
CalcCeiling 邏輯ComputeAttendanceDeduction 公式