> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 風險登記冊

> 針對品項、客戶、供應商、工單、報價行與工作中心記錄風險與商機，依嚴重程度與可能性為每一項評級，並追蹤到結案或接受。

風險登記冊在事情發生之前，記下*可能*出錯的事，或值得把握的商機。公司任何人都可以提出項目；品質人員評估它、評級，並推動它到有結論。

## 概觀

項目通常掛在另一筆 Alforse 記錄之下，但也可以作為一般風險單獨存在。除了**類型**，它還包含**嚴重程度**與**可能性**（各自獨立以 1–5 評級）、一位負責人，以及最終結束於 `"Closed"` 或 `"Accepted"` 的狀態。

你可以在兩個地方看到項目：

* **品質 → 風險**顯示全公司的風險登記冊。
* 品項、客戶、供應商、工單、報價行與保養派工的頁面，各自顯示一張風險卡片，列出該記錄自己的項目，並讓你新增項目。

## 提出風險

1. 開啟**品質 → 風險**並新增項目，或在風險所涉及的記錄上開啟風險卡片。
2. 輸入**標題**、選擇**類型**，並為**嚴重程度**與**可能性**評級。
3. 可選擇指派某人、新增一行說明並撰寫備註。
4. 儲存。

從記錄頁面新增時，項目會自動取得該記錄的**來源**。從**品質 → 風險**在沒有記錄的情況下新增時，則取得 `General`。

## 欄位

每個項目是一筆 `riskRegister` 記錄，由 `apps/erp/app/modules/quality/quality.models.ts` 中的 `riskRegisterValidator` 驗證。

FieldType

<details>
  <summary>**title**required</summary>

  風險的簡短名稱。唯一一律必填的文字欄位。
</details>

<details>
  <summary>**type**required</summary>

  `Risk`（不利面）或 `Opportunity`（有利面）。預設為 `Risk`。
</details>

<details>
  <summary>**severity**required`1–5`</summary>

  影響會有多嚴重。
</details>

<details>
  <summary>**likelihood**required`1–5`</summary>

  發生的機率有多高，使用相同的量表但分開評級。
</details>

<details>
  <summary>**status**required</summary>

  項目在其生命週期中的位置。預設為 `"Open"`。
</details>

<details>
  <summary>**source**required</summary>

  風險屬於哪一種記錄：`Customer`、`General`、`Item`、`Job`、`Quote Line`、`Supplier` 或 `Work Center`。由你新增所在的頁面自動填入。
</details>

<details>
  <summary>**assignee**</summary>

  負責的人。若留空，預設為建立該項目的人。變更它會發送通知。
</details>

<details>
  <summary>**description**</summary>

  顯示在清單與記錄卡片上的一行摘要。
</details>

<details>
  <summary>**notes**</summary>

  富文字細節，以 JSON 儲存。
</details>

## 嚴重程度與可能性

兩個評級都使用 1–5 的量表，並由 `RiskRating.tsx` 畫成一排彩色長條，每一分一條：

| 評級 | 長條顏色 |
| - | - |
| 1–2 | 翡翠綠 |
| 3 | 黃色 |
| 4 | 橘色 |
| 5 | 紅色 |

在記錄的卡片上，嚴重程度的長條位於警告圖示之後，可能性的長條位於骰子圖示之後，因此兩者一目了然。

NOTE

**沒有合併的風險分數。**

嚴重程度與可能性是兩個獨立的整數，各自限於 1 到 5。Alforse 絕不將它們相乘成單一分數，也不會把它們放進風險矩陣的格子；UI 刻意將它們並排顯示。請不要期待登記冊替你計算優先順序。

為什麼要分開？一個幾乎不會發生但後果災難性的失效，與一個每週發生但代價很小的困擾，相乘之後會落在同一個不上不下的數字。分開顯示，各自保有其真實的樣貌，權衡則留給你的判斷。

## 狀態

狀態來自 `quality.models.ts` 中的 `riskStatus` 列舉。它們可以自由設定：Alforse 不強制順序，任何狀態都可以變成其他任何狀態。

<details>
  <summary>**Open**</summary>

  已提出但尚未查看。新項目的預設值。
</details>

<details>
  <summary>**In Review**</summary>

  評估中：有人正在決定是否回應以及如何回應。
</details>

<details>
  <summary>**Mitigating**</summary>

  正在進行處理，以降低嚴重程度或可能性。
</details>

<details open>
  <summary>**Closed**</summary>

  已解決。風險已被緩解或不再適用。
</details>

<details>
  <summary>**Accepted**</summary>

  有意識地決定與該風險共存而非處理。與 `"Closed"` 是不同的結果。
</details>

### 追蹤處理

沒有獨立的緩解行動記錄。請藉由讓項目經過 `"In Review"` 與 `"Mitigating"`、把細節寫在**備註**中，並在你處理了它時結束於 `"Closed"`，或在你選擇容忍時結束於 `"Accepted"`，來追蹤處理過程。

## 風險卡片出現在哪裡

這些頁面全都重複使用同一張共用卡片，傳給它固定的 `source` 加上記錄的 ID。這就是為什麼每張卡片只顯示自己記錄的項目，也是為什麼在那裡新增的任何東西都會歸入正確的來源。

| 記錄 | 元件 | 來源 |
| - | - | - |
| 品項：零件、物料、工具、耗材、服務 | `ItemRiskRegister.tsx` | `Item`；同時填入 `itemId` 外鍵 |
| 客戶（風險分頁） | `CustomerRiskRegister.tsx` | `Customer` |
| 供應商（風險分頁） | `SupplierRiskRegister.tsx` | `Supplier` |
| 工單 | `JobRiskRegister.tsx` | `Job`；同時填入品項 |
| 報價行 | `QuoteLineRiskRegister.tsx` | `Quote Line` |
| 保養派工 | 派工頁面上的共用卡片 | `Work Center`，以派工的工作中心為鍵 |

工作中心是個例外：它們自己的頁面沒有卡片。來源為 `Work Center` 的項目會顯示在保養派工與全公司清單中，其中 `riskRegisters` 檢視表提供工作中心的名稱。

TIP

**清單檢視與實體卡片讀取不同的來源。**

全公司清單（`getRisks`）讀取 `riskRegisters` 檢視表，它為每一列加上工作中心名稱。記錄卡片與單一項目編輯頁面則讀取基礎的 `riskRegister` 資料表，依 `source` 與記錄 ID 篩選。資料相同；只是讀取路徑不同。

## 權限與通知

| 動作 | 需求 |
| - | - |
| 建立風險 | 是公司的**員工**。新增風險的路由檢查 `role: "employee"`，而不是 `quality` 的建立權限，所以現場的任何人都可以提出。 |
| 編輯風險 | `quality` **更新** |
| 刪除風險 | `quality` **刪除** |

資料庫也強制執行同樣的區分。

成為受指派人的人會收到 `RiskAssignment` 通知，由背景 `notify` 工作送出。只有在受指派人與先前不同時，編輯才會觸發，所以再次儲存項目不會打擾目前的負責人。

## 風險與問題及 CAPA

風險登記冊是獨立的資料表，在程式碼中與不合格品或其矯正與預防措施**沒有**連結。提出風險不會建立問題，結案問題也不會影響任何風險。

| | 風險登記冊 | [問題](https://docs.alforse.com/zh-Hant/docs/reference/quality.md) |
| - | - | - |
| 看向 | 向前：可能發生的事，或商機 | 向後：已經發生的缺陷 |
| 目的 | 事前權衡並處理 | 圍堵它，並透過工作流程任務推動到結案 |

主動評估請使用登記冊，被動圍堵請使用問題。

## 疑難排解

| 訊息或症狀 | 原因 | 解決方法 |
| - | - | - |
| "Title is required"、"Severity is required" 或 "Likelihood is required" | 表單缺少必填的值。 | 輸入標題、嚴重程度與可能性。 |
| 嚴重程度或可能性被拒絕 | 該值不是 1 到 5 的整數；資料庫強制執行該範圍。 | 選擇 1 到 5 的值。 |
| "Failed to create risk"、"Failed to update risk" 或 "Failed to delete risk" | 寫入失敗，通常是因為權限。 | 檢查上方的權限表。 |
| 狀態變更沒有保留 | 狀態沒有工作流程規則，所以原因是儲存失敗或缺少權限。 | 確認你具有 `quality` 更新權限。 |
| 你可以建立風險，但無法編輯或刪除 | 你有員工存取權，但沒有 `quality` 的更新或刪除權限。 | 向管理員索取這些權限。 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.