风险登记册

针对任意实体跟踪风险与机会,按严重程度和可能性评级,并推动每项风险得到解决。

风险条目记录与另一个 Carbon 实体相关的关注点或机会。它有类型、独立的 1–5 严重程度和可能性评级、负责人,以及从 "Open" 到 "Closed" 或 "Accepted" 的状态。质量模块的提供公司级视图;每个来源实体也会显示相关风险。

打开质量 → 风险查看公司级登记册。也可以从物料、客户、供应商、生产订单、报价行和维护派生产订单页面创建风险。

风险条目包含什么

每个条目是 riskRegister 表中的一行(quality.models.ts:673,riskRegisterValidator)。你需要设置的字段:

字段类型
风险的简短名称。唯一始终必填的文本字段。
Risk 或 Opportunity——登记册同时跟踪下行和上行。默认 Risk。
影响有多严重。独立评级,以彩色条显示(见下文)。
发生的概率。使用同一 1–5 标度,与严重程度独立。
条目在其生命周期中的位置。默认 "Open"。
风险关联的实体类型——Customer、General、Item、Job、Quote Line、Supplier 或 Work Center。从实体页面添加时会自动设置;独立风险为 General。
负责的人。留空时默认为创建者;变更会触发通知(见下文)。
在列表和实体卡片上显示的一行摘要。
富文本详情,以 JSON 存储。
NOTE

没有合并的风险评分。

严重程度和可能性保存为两个独立的 1–5 整数(CHECK (severity BETWEEN 1 AND 5),迁移 20251210060100)。Carbon 从不把它们相乘成一个数字或风险矩阵单元。界面并排显示两个评级,这是有意设计。不要指望登记册提供计算出的优先级。

评定严重程度与可能性

两个评级使用同一 1–5 标度,由 RiskRating.tsx 渲染为一行彩色条——每点一条,按级别着色:1–2 为翠绿,3 为黄色,4 为橙色,5 为红色。实体卡片上,严重程度条位于警告图标后,可能性条位于骰子图标后,因此无需数字也能一眼读取。

由于两个评级相互独立,低可能性高严重程度的风险(罕见但灾难性)和高可能性低严重程度的风险(频繁的麻烦)都能如实呈现,而不是坍缩成同一个中间分数。如何权衡由你决定。

状态生命周期

状态是自由集合枚举(riskStatus,quality.models.ts:96)。Carbon 不强制状态机——任何状态都可以转到任何其他状态;由你设置条目所处位置。

偏轨状态
已关闭
已解决。风险已被缓解或不再适用。

没有单独的「缓解动作」实体:处理通过把状态从 "In Review" → "Mitigating" 推进并在备注字段记录详情来跟踪,最后落在 "Closed"(已处理)或 "Accepted"(已容忍)。

把风险挂接到实体

同一个登记册会作为卡片出现在它所保护对象的页面上。每个实体页面以固定的 source 挂载共享卡片并传入记录 ID,因此卡片只显示该实体的风险,新条目也继承正确的来源。已接入的入口:

  • 物料——部件、原材料、工具、耗材和服务,通过 ItemRiskRegister.tsx(source="Item",同时填充专用的 itemId 外键)。
  • 客户——CustomerRiskRegister.tsx,位于客户的「风险」标签页。
  • 供应商——SupplierRiskRegister.tsx,位于供应商的「风险」标签页。
  • 生产订单——JobRiskRegister.tsx(source="Job")。
  • 报价行——QuoteLineRiskRegister.tsx(source="Quote Line")。
  • 维护派生产订单——派生产订单页面也挂载该卡片。

Work Center 来源没有专用卡片;工作中心风险从公司级列表创建,并连接到 riskRegisters 视图用于显示。从质量 → 风险创建且未指定实体的独立风险,来源为 "General"。

TIP

列表视图和实体卡片读取不同的来源。

公司级列表(getRisks)读取 riskRegisters 视图,该视图把工作中心名称连接到行上。按实体卡片和单条编辑页面直接读取基础 riskRegister 表,按 source 和实体 ID 筛选。同一份数据,两条读取路径。

谁可以做什么

创建风险只要求你是公司的员工——新建风险路由按 role: "employee" 把关,而不是 quality 创建权限,因此车间任何人都可以提出。编辑和删除更严格:编辑路由需要 quality 更新权限,删除路由需要 quality 删除权限,两者还会在数据库层由行级安全再次执行(迁移 20251210060100)。

当你设置或变更负责人时,Carbon 会向该人发送 RiskAssignment 通知(后台 notify 任务)。编辑时只有在负责人确实发生变化时才通知,因此重复保存不会再次打扰同一负责人。

与问题和 CAPA 的关系

风险登记册是独立的表,在代码中不与不合格项或其纠正/预防措施关联——风险不会生成问题,关闭问题也不会影响风险。两者互补:问题记录已经发生的缺陷,并通过工作流任务推动关闭;风险登记册条目是前瞻性的,记录可能出错的事情(或值得把握的机会),以便在其发生前权衡和处理。用风险登记册做主动评估,用问题系统做被动遏制。