风险登记册
针对任意实体跟踪风险与机会,按严重程度和可能性评级,并推动每项风险得到解决。
风险条目记录与另一个 Carbon 实体相关的关注点或机会。它有类型、独立的 1–5 严重程度和可能性评级、负责人,以及从 "Open" 到 "Closed" 或 "Accepted" 的状态。质量模块的提供公司级视图;每个来源实体也会显示相关风险。
打开质量 → 风险查看公司级登记册。也可以从物料、客户、供应商、生产订单、报价行和维护派生产订单页面创建风险。
风险条目包含什么
每个条目是 riskRegister 表中的一行(quality.models.ts:673,riskRegisterValidator)。你需要设置的字段:
Risk 或 Opportunity——登记册同时跟踪下行和上行。默认 Risk。"Open"。Customer、General、Item、Job、Quote Line、Supplier 或 Work Center。从实体页面添加时会自动设置;独立风险为 General。没有合并的风险评分。
严重程度和可能性保存为两个独立的 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"。
列表视图和实体卡片读取不同的来源。
公司级列表(getRisks)读取 riskRegisters 视图,该视图把工作中心名称连接到行上。按实体卡片和单条编辑页面直接读取基础 riskRegister 表,按 source 和实体 ID 筛选。同一份数据,两条读取路径。
谁可以做什么
创建风险只要求你是公司的员工——新建风险路由按 role: "employee" 把关,而不是 quality 创建权限,因此车间任何人都可以提出。编辑和删除更严格:编辑路由需要 quality 更新权限,删除路由需要 quality 删除权限,两者还会在数据库层由行级安全再次执行(迁移 20251210060100)。
当你设置或变更负责人时,Carbon 会向该人发送 RiskAssignment 通知(后台 notify 任务)。编辑时只有在负责人确实发生变化时才通知,因此重复保存不会再次打扰同一负责人。
与问题和 CAPA 的关系
风险登记册是独立的表,在代码中不与不合格项或其纠正/预防措施关联——风险不会生成问题,关闭问题也不会影响风险。两者互补:问题记录已经发生的缺陷,并通过工作流任务推动关闭;风险登记册条目是前瞻性的,记录可能出错的事情(或值得把握的机会),以便在其发生前权衡和处理。用风险登记册做主动评估,用问题系统做被动遏制。