← ClaudeAtlas

bom-consumption-variance-check-freelisted

生产工单与物料清单逐行复算用量差异(标准用量=单位用量×产出数量、用量差异=实际领料−退料−标准用量、损耗率=差异÷标准用量、合计行逐列、重复物料行、空缺与负值),每条结论引用原文行号。本免费版只执行引擎声明的免费检查项,材料不足时不给结论。触发词包括 BOM用量差异、工单超耗、损耗率算错、领料与退料对不上、串料。
chenqg618/compliance-skills · ★ 0 · AI & Automation · score 68
Install: claude install-skill chenqg618/compliance-skills
# BOM用量与损耗差异核对(免费版) > **完全本地运行**:引擎已经打包在本技能里(`engine/` 目录)。 > 核对过程不需要联网、不需要 API Key、**没有调用次数上限**。 ## 什么时候用 **谁会在什么时候用**:制造业的**成本会计每月结账时必须核一遍,年度盘点审计还要再核一遍**。 因为生产工单与物料清单(BOM)放在一起,每一条用量差异都能用表上的数字算出来对错: - 标准用量 = 单位用量 × 产出数量(BOM 定额,单位用量里已经含了定额损耗) - 用量差异 = 实际领料 − 退料 − 标准用量(正数 = 超耗,负数 = 少耗) - 损耗率 = 用量差异 ÷ 标准用量 **超耗不查就是成本黑洞**:偷料、报废未报、串料、退料没冲减,全都藏在这三条算式后面; 而"这笔差异该算到哪个工单/产品头上"正是车间与财务每月吵架的那件事。纯算术, 但料号一多、工单一多,人眼极易错。 ## 这个免费版查什么 引擎逐条执行下面这 7 项(**本版本不执行的检查项会如实列在结果的 `scope.checks_not_run` 里**): 1. **标准用量勾稽复算**:标准用量 = 单位用量 × 产出数量 2. **用量差异勾稽复算**:用量差异 = 实际领料 − 退料 − 标准用量 3. **损耗率勾稽复算**:损耗率 = 用量差异 ÷ 标准用量 4. **合计行逐列复核**:标准用量、实际领料、退料、用量差异 四列的合计是否等于各行之和 5. **重复物料行检测**:同一工单同一物料出现多行 6. **关键字段空缺与占位符检测** 7. **单位用量与产出数量非正检测、数量与单价为负检测** 每条结论都带**原文行号与出处**(如「第 2 行(工单 WO-2606-001/产品 电机外壳/物料 A1001)」), 可被第三方用同一份输入复算;**材料不足时不给结论**,会明确列出还缺什么。 ## 和已有的核对有什么不同 - `inventory-cost-flow-check` 核的是**成本流转与计价**(发出/结存单价、结转与计价方法); - `inventory-check` 核的是**数量盘点**(账面数量与实物是否一致); - 本能力核的是**用量差异**:同一张工单上「标准用量(BOM 定额)vs 实际领料 − 退料」, 并按工单/产品归集差异。三者看的是三件事,同一批材料可以三个都跑。 ## 怎么用 ```bash node scripts/run.mjs --sample # 先看内置样例 node scripts/run.mjs --input 你的工单明细.json # 跑自己的材料 node scripts/run.mjs --input 你的工单明细.json --json ``` 入参写法(两种都行): - `{"text": "工单号\t产品名称\t…\t替代登记单号\nWO-2606-001\t…"}`; - 直接把工单领料明细(**含表头**)从 Excel 复制成文本贴进来,Tab 分隔最稳。 表头要能认出:工单号、产品名称、物料编码、物料名称、BOM归属工单、单位用量、产出数量、标准用量、 实际领料、退料、用量差异、损耗率、损耗率上限、单价、是否替代料、替代登记单号。 其中 **BOM归属工单 = 该物料按 BOM 应投的工单**(和本行工单不一致就是串料)。 ## 常见错法(这张表里真的会有人这么填) 1