企业管理 · Verified Case

企业管理行业:原材料呆滞风险预警与替代料优先级智能建议本体智能体

多物料互替(钛白粉、助剂、乳液各有 2–3 个替代料)的工厂按 A→B→C 固定优先级执行采购与投料:A 永远先被消耗,B、C 长期没人用——呆滞不是意外,而是优先级规则本身造成的。同一物料还可能出现在多个替代组(A、B 同时在钛白1组与钛白2组),一组的调整会改变另一组的消耗路径。本项目按「库是大脑、AI 做判断、规则做闸门」的范式构建原材料呆滞风险预警与替代料智能建议本体:22 类 / 16 对象属性 / 31 数据属性 / 146 实例个体(1735 条三元组,7 条 SHACL 约束)承载替代组优先级三元重构(GroupPriorityAssignment)、批次组合键消歧、物料级与批次级风险状态分层;4 条 SWRL 规则阈值参数化(临期 30 天 / 库龄 90 天)经 Pellet 定点迭代自动推导:高风险物料 B、C、E、F、S,临期批次 4,过期批次 5,自动生成 20 条建议单(优先级调整 5 / 呆滞预警 5 / 暂停采购 5 / 报废 5),每条带 suggestionReason 与 requiresApproval=true。呆滞判定采用组内人均月耗相对口径避免绝对值误判,边界负例显式验证(G 库龄 89 天差 1 天不判高风险),9/9 主流程场景测试与 24/24 pytest 通过,KPI:呆滞判定准确率 ≥95%、优先级排序吻合 ≥90%、三类建议单全自动。

关联本体 原材料呆滞风险预警与替代料智能建议本体

案例背景

多物料互替(钛白粉、助剂、乳液各有 2–3 个替代料)的工厂按 A→B→C 固定优先级执行采购与投料:A 永远先被消耗,B、C 长期没人用——呆滞不是意外,而是优先级规则本身造成的。同一物料还可能出现在多个替代组(A、B 同时在钛白1组与钛白2组),一组的调整会改变另一组的消耗路径。本项目按「库是大脑、AI 做判断、规则做闸门」的范式构建原材料呆滞风险预警与替代料智能建议本体:22 类 / 16 对象属性 / 31 数据属性 / 146 实例个体(1735 条三元组,7 条 SHACL 约束)承载替代组优先级三元重构(GroupPriorityAssignment)、批次组合键消歧、物料级与批次级风险状态分层;4 条 SWRL 规则阈值参数化(临期 30 天 / 库龄 90 天)经 Pellet 定点迭代自动推导:高风险物料 B、C、E、F、S,临期批次 4,过期批次 5,自动生成 20 条建议单(优先级调整 5 / 呆滞预警 5 / 暂停采购 5 / 报废 5),每条带 suggestionReason 与 requiresApproval=true。呆滞判定采用组内人均月耗相对口径避免绝对值误判,边界负例显式验证(G 库龄 89 天差 1 天不判高风险),9/9 主流程场景测试与 24/24 pytest 通过,KPI:呆滞判定准确率 ≥95%、优先级排序吻合 ≥90%、三类建议单全自动。

案例描述

以原材料呆滞风险预警与替代料智能建议本体(OWL 2 DL,1735 条三元组:22 类 / 16 对象属性 / 31 数据属性 / 146 实例个体,7 条 SHACL 约束)为底座构建呆滞预警智能体:替代组优先级分配三元重构为 GroupPriorityAssignment 显式节点(assignmentOfMaterial / assignmentOfGroup / priorityValue,propertyChain 推导 hasPriorityInGroup / belongsToGroup,共享物料跨组优先级各自独立),批次以(belongsToMaterial, batchNo)组合键消歧,物料级与批次级风险状态分层。4 条 SWRL 规则阈值经 RuleParameter 参数化(临期 30 天 / 库龄 90 天)自动推理:R1 临期批次 4(A/20260401 剩 8 天等)、R2 呆滞高风险五条件(组内人均月耗相对口径,命中 B/C/E/F/S)、R3 候选生成、R4 过期批次 5 + 报废候选;自动生成 20 条建议单(优先级调整 5 / 呆滞预警 5 / 暂停采购 5 / 报废 5),每条带 suggestionReason(库龄/优先级/消耗基准三项证据)与 requiresApproval=true。边界负例守住口径(G 库龄 89 天差 1 天不判高风险、S 批次剩余 38 天不触发临期),9/9 主流程场景测试(含 ABC/ABG 重叠组博弈分析)与 24/24 pytest 通过。

替代料优先级一张图(22 类 + 4 条 SWRL)

把物料、批次、库存、投料消耗、替代组与组内优先级、风险状态、规则参数、建议单建成 22 类 / 16 对象属性 / 31 数据属性的统一本体(1735 条三元组,146 个实例个体,7 条 SHACL 约束),四个替代组(钛白1组 A/B/C、助剂 D/E/F、乳液 Q/W/S、钛白2组 A/B/G)全部对象化,库存呆滞风险一张图。

优先级三元重构 + 组合键 + 风险分层

优先级分配三元重构为 GroupPriorityAssignment 显式节点(assignmentOfMaterial / assignmentOfGroup / priorityValue),并经 propertyChain 推导 hasPriorityInGroup / belongsToGroup——同一物料出现在多个替代组(A、B 同属钛白1组与钛白2组)时两组优先级各自独立可查,组间博弈不再隐式;批次用(belongsToMaterial, batchNo)组合键消歧,物料级与批次级风险状态分层(hasRiskStatus / hasBatchRiskStatus)互不污染。

R1–R4 规则推理与 20 条自动建议单

R1–R4 推理规则全部阈值参数化(RuleParameter:临期 30 天、库龄阈值 90 天), Pellet 定点迭代 3 轮自动推导:高风险物料 B、C、E、F、S;临期批次 4;过期批次 5;自动生成 20 条建议单(优先级调整 5 / 呆滞预警 5 / 暂停采购 5 / 报废 5),每条带 suggestionReason 与 requiresApproval=true;9/9 主流程场景测试通过(含 G 库龄 89 天差 1 天不判高风险的边界负例)。

项目案例

客户面对的问题

多物料可互替(钛白粉、助剂、乳液各有 2–3 个替代料),采购按 A→B→C 固定优先级执行:A 永远先被消耗,B、C 长期没人用——呆滞不是意外,是优先级规则本身造成的

同一物料出现在多个替代组(A、B 同时在钛白1组和钛白2组):一组的优先级调整会改变另一组的消耗路径,隐式的组间博弈没法靠 Excel 算清

呆滞判定口径天然多元:库龄、剩余保质期、月均消耗是三个独立维度,绝对口径(消耗绝对值)在物料之间不可比——大用量物料的「正常消耗」会让小用量物料的呆滞被掩盖

批次级事实与物料级结论容易混淆:某一批次过期不等于整个物料报废,临期是批次属性——风险状态不分层就会误伤整料

推理规则散落在人脑里:临期 30 天、库龄 90 天、高风险要同时满足「有库存 + 优先级靠后 + 组内有更优先进且有库存料 + 消耗低于组内基准」——没有规则层与参数化阈值,判定口径因人而异

建议单不能只给结论:为什么 B 要提前、G 差 1 天为什么不判高风险、报废为什么要审批——每条建议必须带可解释的理由与人工审批标记,否则业务不敢用

项目案例

使用本体前后的变化

使用本体前使用本体后
优先级写在 Excel 的 A→B→C 列里,为什么调整、什么时候生效、来源是什么全靠记忆优先级分配对象化为 GroupPriorityAssignment(assignmentOfMaterial / assignmentOfGroup / priorityValue 显式落库),钛白2组建议 G 提前 3→2、B 顺延后移 2→3 的决策在图上可直接查询,同一物料(A、B)跨两组的优先级影响可追溯
按绝对消耗量划线,消耗大的物料永远不呆滞、消耗小的物料永远呆滞,误判频出呆滞高风险用组内人均月耗相对口径:月均消耗 < 组内人均基准(38.39 / 43.06 / 61.83 / 104.83 KG)才计为低消耗,避免大用量物料的绝对值掩盖小用量物料的呆滞
一个批次过期就把整个物料标记风险,库存可用部分也被冻结批次级风险状态分层:hasBatchRiskStatus 标记具体批次(临期 4 批 / 过期 5 批),hasRiskStatus 只承载物料级结论,批次过期不连坐整料
阈值硬编码在人的判断里,临期到底 30 天还是 45 天,每个人不一样规则阈值参数化:Param_ExpiryWarningDays=30、Param_ObsoleteAgeThreshold=90 作为 RuleParameter 个体注入 SWRL,改阈值不改规则文本;SWRL 常量个体 fail-fast 校验防止漏注入
建议靠人工整理,理由写不全,报废单直接下线物料造成生产事故风险20 条建议单全自动生成且每条带 suggestionReason(如「B 库龄 120 天 + 消耗 21.00 < 组内基准 43.06」)与 requiresApproval=true,报废类全部走人工审批
判定规则口说无凭,差 1 天的边界情况全看执行人心情边界负例守住口径:G 库龄 89 天差 1 天不判高风险、S 批次剩余 38 天不触发临期——推理结论可被负例验证,9/9 主流程场景测试通过、24/24 pytest 通过
多源业务数据到四类建议单的推理链SAP 物料主数据、WMS 批次库存、MES 投料消耗三类数据进入统一本体:替代组与优先级三元重构、批次组合键消歧、风险状态分层;R1–R4 规则经 Pellet 定点迭代推导出临期/过期/高风险/候选,自动生成四类建议单并全部挂理由与审批标记。
正在生成关系图…
呆滞高风险五条件判定与建议闭环呆滞高风险五条件合一(有库存 ∧ 优先级>1 ∧ 组内存在更优先进且有库存料 ∧ 月均消耗<组内人均月耗 ∧ 库龄>90天),建议单闭环到审批:每条带理由、重叠组博弈(ABC/ABG)在建议层显式披露。
正在生成关系图…
项目案例

本体域与业务的关联

方案作用于哪些业务对象?

对象域

10 个物料(钛白粉 A/B/C/G、助剂 D/E/F、乳液 Q/W/S)、15 个批次、15 条库存记录、4 个替代组及其 GroupPriorityAssignment 优先级分配;风险状态个体(正常/关注/预警/高风险/报废)与四类建议单(优先级调整/呆滞预警/暂停采购/报废)。

信息在哪里产生和流转?

系统与信息域

SAP 物料主数据(替代组与优先级)、WMS 批次库存(库龄/保质期/临期剩余天数)、MES 投料消耗(60 条月度消耗记录、组内人均月耗基准);推理结果独立成层(inferred ABox):ExpiringBatch / ExpiredBatch / HighRiskMaterial / 候选类与建议单全部派生落库。

判定依据是什么、由谁确认?

规则与标准域

R1 临期(剩余保质期 ∈ [0,30] 天)、R2 呆滞高风险五条件(相对口径用组内人均月耗)、R3 候选生成(调整/预警/停采三合一)、R4 过期报废(剩余<0);阈值经 RuleParameter 参数化(30 天 / 90 天);7 条 SHACL 约束(批次组合键唯一、优先级 rank>1、库存数量非负等)由 pySHACL 校验;建议 requiresApproval=true 统一走人工审批。

结论如何给出、边界如何交代?

结论与边界域

每条建议单带 suggestionReason(库龄/优先级/消耗基准三项证据)与审批标记;边界负例显式验证(G 库龄 89 天差 1 天不判高风险、S 批次剩余 38 天不触发临期);重叠组博弈(B 同属钛白1组 ABC 与钛白2组 ABG)单独成场景披露;报废类建议不自动执行,只生成候选待审批。

项目案例

5 个应用场景

场景 1

替代料语义底座(TBox/ABox 分层)

客户问题

替代组优先级(A→B→C 固定顺序)写在采购执行逻辑里,呆滞判定口径散落在库龄报表、保质期台账与消耗统计之间,说不清、对不上、难追溯。

本体做法

本体把替代组、优先级分配、批次库存、投料消耗、风险状态、规则参数建成一张图:优先级三元重构显式落库、批次组合键消歧、风险状态分层,阈值参数化后由 Pellet 推理自动判定。

应用效果

四个替代组、10 物料、15 批次、60 条消耗记录落在 22 类统一语义模型上:任何一条呆滞或临期结论都能回答「依据哪条规则、哪个阈值、哪个批次、哪次消耗」,库存风险第一次有了机器可读的表达。

输出内容
  • 原材料呆滞风险预警与替代料智能建议本体(OWL 2 DL,1735 条三元组:22 类 / 16 对象属性 / 31 数据属性 / 146 实例个体,7 条 SHACL 约束)+ 4 条 SWRL 规则
  • GroupPriorityAssignment 优先级分配三元重构与 hasPriorityInGroup / belongsToGroup propertyChain 推导
  • RuleParameter 阈值个体(临期 30 天 / 库龄 90 天)与时间上下文个体
场景 2

呆滞高风险判定与边界负例(R2)

客户问题

「哪些物料真呆滞」靠翻报表逐个判断:绝对消耗口径误判频出、优先级靠后但无替代库存的不该算、库龄差 1 天的全凭执行人裁量。

本体做法

五条件合一批判 + 组内相对口径 + 阈值参数化推理,负例测试守住边界;9/9 主流程场景测试通过、24/24 pytest 通过。

应用效果

呆滞判定从人肉对口径变成规则推理:高风险物料 B、C、E、F、S 自动浮出(库龄 120–224 天 + 优先级>1 + 消耗低于组内基准),G 库龄 89 天差 1 天被负例验证不误判——判定准确率 KPI ≥95% 可复核。

输出内容
  • 呆滞高风险五条件推理 + 组内人均月耗相对口径(钛白1组 38.39 / 钛白2组 43.06 / 乳液 61.83 / 助剂 104.83 KG)
  • HighRiskMaterial 推理结果:B、C、E、F、S 五个物料附库龄/优先级/消耗证据
  • 边界负例验证:G(89 天)与 S 批次(剩余 38 天)不触发,口径边界显式
场景 3

临期预警与过期报废(R1/R4)

客户问题

保质期预警靠仓库月底手工筛台账,临期与过期混在一张表里;一个批次过期后整个物料被冻结,可用库存也被误伤。

本体做法

临期/过期在批次粒度上建模(组合键 belongsToMaterial + batchNo 唯一),推理结果只标记具体批次,物料级结论另行推导。

应用效果

批次级时效风险自动分层:临期 4 批次(A/20260401 剩 8 天、D/20260601 剩 9 天、F/20260608 剩 16 天、Q/20260401 剩 8 天)与过期 5 批次(A、C、D、E、F 各一批)自动推导,批次过期不连坐整料。

输出内容
  • R1 临期推理:remainingShelfLifeDays ∈ [0,30] → ExpiringBatch(4 批)
  • R4 过期推理:剩余 <0 → ExpiredBatch + ScrapCandidate(5 批)
  • 批次级 hasBatchRiskStatus 与物料级 hasRiskStatus 分层落库
场景 4

四类建议单自动生成与审批闭环(R3)

客户问题

建议靠人工整理成 Excel:为什么调整、调整后另一组怎么变、哪些能自动执行哪些必须审批,理由写不全业务不敢用。

本体做法

候选类由 R3 规则统一生成,建议单挂可解释理由与审批标记;重叠组(ABC/ABG)博弈单独建模披露,跨组影响不再隐式。

应用效果

20 条建议单全自动生成:优先级调整 5 条(钛白1组 C 提前 3→2、钛白2组 G 提前 3→2、助剂 F 提前 3→2、乳液 S 提前 3→2 等)、呆滞预警 5 条、暂停采购 5 条、报废 5 条,每条带 suggestionReason 与 requiresApproval=true,报废类全部走人工审批。

输出内容
  • R3 候选生成:PriorityAdjustCandidate / ObsoleteWarningCandidate / PurchaseSuspensionCandidate
  • Suggestion 单据 20 条:四类各 5 条,理由含库龄/优先级/消耗基准证据
  • 重叠组博弈显式披露:B 同属钛白1组与钛白2组,两组调整(钛白1组 C 提前 3→2、钛白2组 G 提前 3→2,B 均顺延后移)的因果链单独成场景
场景 5

可解释性与消耗验算(D4/D8)

客户问题

业务方追问「为什么是 B 不是 C」「调了优先级哪组受影响」时,人工结论拿不出可复核的证据链。

本体做法

建议理由引用本体事实(库龄天数、优先级 rank、组内人均月耗基准),消耗验算场景逐月核对投料记录,决策留痕可复算。

应用效果

优先级调整建议可解释可追溯:钛白1组 C 提前(积压 8.24 个月全厂最重)、钛白2组 G 提前(库龄 89 天接近临界需激活消耗)等调整直接引用 GroupPriorityAssignment 与消耗验算;消耗验算场景逐月核对 2026-04 至 2026-09 共 60 条投料记录(A 85.67 / W 70.50 KG 等)与组内基准一致,推理链路 24/24 测试通过。

输出内容
  • 推理结果报告:派生类成员、物料指标表(库龄/月均消耗)与 20 条建议理由全量输出
  • 呆滞风险清单与调整建议文档(含批次明细)
  • 主流程场景测试报告:9/9 场景含相对口径论证与负例
业务示意

一次「钛白粉 B 要不要继续买」的呆滞判定之旅

物料计划员问:「钛白粉 B 现在还能不能用?要不要继续买?」 它在哪里产生:B 同时出现在钛白1组(A→B→C)与钛白2组(A→B→G)里,SAP 里两组优先级均为 2;WMS 里 B 的批次库龄已达 120 天,库存只剩 40 KG(批次 20260523,剩余保质期 60 天);MES 里近 6 个月 B 的月均消耗只有 21.00 KG,低于钛白2组人均月耗基准 43.06 KG。 系统如何处理:本体沿 R2 呆滞高风险规则逐条件判定——有库存(40 KG)✓、优先级>1 ✓、组内存在更优先进且有库存料(A 优先级 1)✓、月均消耗低于组内基准(21.00 < 43.06)✓、库龄 120 > 90 天 ✓,五条件全部满足,自动推导为 HighRiskMaterial;同时检查批次保质期:B 无临期/过期批次(G 的 89 天边界负例验证了口径不误伤);R3 生成呆滞预警与暂停采购候选,优先级调整建议把「B 组内顺位 2/3、A 顺位更靠前仍有库存」的依据写进 suggestionReason。 交付结果:一条呆滞预警建议单(附库龄 120 天 / 优先级 2 / 消耗 21.00 < 基准 43.06 三项证据)、一条暂停采购建议单(先通过 A(1)、C(2)、G(2) 消化全厂高风险积压,B 的 40 KG 在后续周期快速出清),均标记 requiresApproval=true 等待计划员与采购确认;同时如实交代边界——B 库存仍可用于生产,只是不再建议新增采购。 业务影响:原本要翻 SAP 优先级表、WMS 库龄报表、MES 消耗统计三方数据人工拼接的判定,变成规则推理 + 证据链输出的标准化流程;「A→B→C 固定优先级造成 B/C 呆滞」这一结构性根因第一次被数据坐实,优先级调整建议直接可下发给采购执行。

项目案例

项目交付成果

本体资产

  • 原材料呆滞风险预警与替代料智能建议本体(OWL/RDF-XML,1735 条三元组:22 类 / 16 对象属性 / 31 数据属性 / 146 实例个体,7 条 SHACL 约束)
  • TBox/ABox 分层文件:subontologies + vocabulary(风险状态词表)+ config(规则参数/时间上下文)+ data(实例与推理结果)+ shapes
  • GroupPriorityAssignment 三元重构建模(assignmentOfMaterial / assignmentOfGroup / priorityValue + propertyChain 推导)说明

数据资产

  • 样本数据底座:10 物料 / 4 替代组 / 15 批次库存 / 60 条月度投料消耗记录(SAP/WMS/MES 三源)
  • 推理结果数据层(inferred ABox):ExpiringBatch 4 / ExpiredBatch 5 / HighRiskMaterial 5 / 候选类与 20 条建议单
  • 物料指标表(库龄/月均消耗/组内基准)与呆滞风险清单(含批次明细)

验证与质量保障

  • R1–R4 SWRL 规则与 RuleParameter 阈值参数化(临期 30 天 / 库龄 90 天),Pellet 定点迭代 3 轮收敛
  • pySHACL 7 条约束校验与 SWRL 常量个体 fail-fast 注入校验
  • 9/9 主流程场景测试(含 G 89 天边界负例)与 24/24 pytest 通过

AI 应用与文档交付

  • 推理结果报告与呆滞风险清单:20 条建议单(优先级调整 5 / 呆滞预警 5 / 暂停采购 5 / 报废 5)全量理由输出
  • 主流程场景测试报告:ABC/ABG 重叠组博弈、相对口径论证、可解释性验证
  • KPI 达成口径:呆滞判定准确率 ≥95%、优先级排序吻合 ≥90%、三类建议单全自动生成
项目案例

业务价值

看得懂

22 类本体把替代组、优先级、批次库存、消耗、风险状态建成一张图:计划员看得懂优先级为什么调整、批次为什么临期,采购执行规则第一次有了机器可读的表达。

找得到

批次组合键消歧、优先级分配三元重构、重叠组显式建模:从任一建议单能追溯到具体批次、优先级分配节点与消耗记录,跨组博弈不再隐式。

说得清

每条建议带 suggestionReason(库龄/优先级/消耗基准)与审批标记;负例验证(G 89 天不判、S 剩余 38 天不触发)显式交代口径边界。

做得动

R1–R4 规则推理 + 20 条建议单全自动生成:临期、过期、高风险、四类建议全部自动浮出,调整建议可直接下发采购执行(报废类走审批)。

可持续

阈值 RuleParameter 参数化(改 30/90 天不改规则)、SHACL 约束守护数据质量、9/9 场景 + 24/24 pytest 回归:口径与推理可持续演进而非一次性脚本。

案例留言

围绕这个案例继续交流

公开展示审核通过的会员留言,帮助案例经验持续完善。

0 条公开留言
登录后参与留言案例留言仅面向已登录会员
0/1000
暂无公开留言

成为第一个围绕这个案例提出问题或分享复现经验的会员。