需求單生命週期
CallIT 需求單的 4 狀態流轉模型:
APPLYING→PROCESSING→COMPLETED/REJECTED,REJECTED 可由 IT 重啟回 APPLYING。每個狀態變更觸發 Email 通知 + Audit Log。
4 狀態
| 狀態 | 中文 | 觸發條件 |
|---|---|---|
APPLYING | 申請中 | 任何人都可建立;IT 也可從 REJECTED 重啟回此狀態 |
PROCESSING | 處理中 | IT 編輯並指派「處理人員」時自動切換 |
COMPLETED | 已完成 | 「處理人員」為空且點選「完成」時,擷取當前 IT 人員,強制轉為此狀態 |
REJECTED | 退回 | IT 主動退回(非終態,可再 reopened 為 APPLYING) |
狀態流轉圖
flowchart LR A[新建] --> APPLYING APPLYING --> PROCESSING[PROCESSING<br/>IT 接單] PROCESSING --> COMPLETED PROCESSING --> REJECTED APPLYING --> REJECTED REJECTED -.IT 重啟.-> APPLYING
唯一終態:COMPLETED。REJECTED 是中間態,IT 視情況可重啟讓需求進新一輪審理。
重啟規則(REJECTED → APPLYING)
只有 IT 角色可執行重啟:
- 入口:需求單詳細頁,狀態為
REJECTED時顯示「重啟」按鈕 - 必填:填寫重啟原因(寫進 歷史異動日誌)
- 副作用:
- 狀態 →
APPLYING - Email 通知申請人「您的需求單已重啟,請等待 IT 接單」
- audit log 寫一筆
action: reopen,紀錄 operator + reason
- 狀態 →
- 限制:無次數上限;重啟後可再次
→ PROCESSING / REJECTED / 重啟,形成循環
業務情境例子:
- IT 退回後,申請人補齊資料 → IT 確認資料齊全後重啟
- 退回理由是「廠商缺貨」、後來貨到 → IT 重啟繼續處理
- 誤按退回 → IT 立刻重啟還原
角色與權限
| 動作 | User | 行政 | 主官管 | IT |
|---|---|---|---|---|
建立 APPLYING | ✅ | ✅ | ✅ | ✅ |
| 代申請(為他人建單) | ❌ | ✅ | ❌ | ✅ |
編輯並接單(→ PROCESSING) | ❌ | ❌ | ❌ | ✅ |
退回(→ REJECTED) | ❌ | ❌ | ❌ | ✅ |
重啟(REJECTED → APPLYING) | ❌ | ❌ | ❌ | ✅ |
完成(→ COMPLETED) | ❌ | ❌ | ❌ | ✅ |
| 刪除 | ❌ | ❌ | ❌ | ✅ |
動態表單(依需求類別)
申請時須選需求類別:「一般事務」、「權限申請」、「資產轉移」、「設備修繕」等。
選了資產轉移 / 設備修繕 → 前端動態展開「資產編號」欄位為強制必填,後端 schema 同步驗證。
選了**「申請/修改大洋系統權限」** → 前端自動帶入預設文字範本。
簽核 / 會簽
v1 不做。 業務評估後決定 CallIT 重生計畫第一版不引入簽核或會簽機制——所有需求單一進系統就是「IT 處理」單軌流程,不經過第二人核可。
未來若要加:
- 簽核會在
APPLYING與PROCESSING之間插入新狀態(如PENDING_APPROVAL) - 影響:五層式架構 的
service.transition_state()邏輯、權限矩陣、狀態流轉圖 - 屬於 v2 範圍,本版不規劃
不在 CallIT 範圍
新進同仁臨時帳號處理:業務確認不走 CallIT——HR 或 IT 直接以口頭 / 內部通訊處理,CallIT 不負責此流程。CallIT 系統 §「新增功能」中的「新進同仁帳號創建進度顯示」是唯讀資訊面板(從 MSSQL 讀進度),不是申請入口。
Email 通知
每次狀態變更(4 個狀態 + 重啟動作都會)寄信給:申請人 + IT 群組。
| 觸發 | 收件人 | 主旨例 |
|---|---|---|
→ APPLYING(新建) | 申請人 + IT | 「您的需求單已建立」 |
→ PROCESSING | 申請人 | 「IT 已接單,處理中」 |
→ COMPLETED | 申請人 | 「需求單已結案」 |
→ REJECTED | 申請人 | 「需求單退回,原因:…」 |
REJECTED → APPLYING(重啟) | 申請人 | 「您的需求單已重啟」 |
規則實作位置
依 五層式架構 — 所有狀態流轉規則(含重啟)寫在 service/ 層,不在 api 也不在 model。
相關概念
強連結(原文明確提及 / 業務確認)
深入閱讀
← 回到 wiki