BOM用量与损耗差异核对(免费版)
完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
什么时候用
谁会在什么时候用:制造业的成本会计每月结账时必须核一遍,年度盘点审计还要再核一遍。 因为生产工单与物料清单(BOM)放在一起,每一条用量差异都能用表上的数字算出来对错:
- 标准用量 = 单位用量 × 产出数量(BOM 定额,单位用量里已经含了定额损耗)
- 用量差异 = 实际领料 − 退料 − 标准用量(正数 = 超耗,负数 = 少耗)
- 损耗率 = 用量差异 ÷ 标准用量
超耗不查就是成本黑洞:偷料、报废未报、串料、退料没冲减,全都藏在这三条算式后面; 而"这笔差异该算到哪个工单/产品头上"正是车间与财务每月吵架的那件事。纯算术, 但料号一多、工单一多,人眼极易错。
这个免费版查什么
引擎逐条执行下面这 7 项(本版本不执行的检查项会如实列在结果的 scope.checks_not_run 里):
- 标准用量勾稽复算:标准用量 = 单位用量 × 产出数量
- 用量差异勾稽复算:用量差异 = 实际领料 − 退料 − 标准用量
- 损耗率勾稽复算:损耗率 = 用量差异 ÷ 标准用量
- 合计行逐列复核:标准用量、实际领料、退料、用量差异 四列的合计是否等于各行之和
- 重复物料行检测:同一工单同一物料出现多行
- 关键字段空缺与占位符检测
- 单位用量与产出数量非正检测、数量与单价为负检测
每条结论都带原文行号与出处(如「第 2 行(工单 WO-2606-001/产品 电机外壳/物料 A1001)」), 可被第三方用同一份输入复算;材料不足时不给结论,会明确列出还缺什么。
和已有的核对有什么不同
inventory-cost-flow-check核的是成本流转与计价(发出/结存单价、结转与计价方法);inventory-check核的是数量盘点(账面数量与实物是否一致);- 本能力核的是用量差异:同一张工单上「标准用量(BOM 定额)vs 实际领料 − 退料」, 并按工单/产品归集差异。三者看的是三件事,同一批材料可以三个都跑。
怎么用
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 应投的工单(和本行工单不一致就是串料)。
常见错法(这张表里真的会有人这么填)
- 「单位用量」填成了本工单的总用量:那是标准用量该填的数。单位用量被再乘一次产出数量, 标准用量整列虚高,用量差异跟着整列错 —— 这是本表最常见的一处填错。
- 退料没冲减:退料随手记在备注里,用量差异按"实际领料 − 标准用量"算, 于是差异全是超耗、金额虚高(车间为这笔白背成本,也是每月吵架的起因)。
- 损耗率的分母用了实际领料:口径必须是标准用量(定额)。分母换掉以后, 同样的超耗算出来的损耗率会变小,看起来"没超"。
- 不用这个料就留空或填 0:单位用量为 0 或空时,这条物料的定额与差异都算不出来 (本工具不会用默认值替你填)。不用这个料就别贴这一行。
- 「BOM归属工单」直接复制本行工单:这一列是"该物料按 BOM 应投的工单",不是本行领料工单; 两列填成一样,串料就永远查不出来。
- 同一工单的同一物料拆成多行(一行正常领料、一行补料)却不合并: 重复物料行会让差异被重复统计,也常是重复领料/串料的痕迹。
- 替代料那行只改物料、不动登记列:「是否替代料」填"是"却把「替代登记单号」留空, 或把单号填成"无/待补" —— 替代没有审批痕迹,这笔材料成本不该悄悄计入。
- 合计行是上月复制来的:明细加了新工单、合计行还是旧数,合计与明细当场对不上 (合计行正是给成本分析与审计看的那一行)。
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 超耗归因(按产品/工单汇总超耗数量与金额:用量差异 × 单价)
- 串料检测(同一物料被投到 BOM 归属工单之外)
- 替代料未登记检测(标为替代料但没有替代登记单号)
- 退料未冲减检测(用量差异漏减了退料)
- 损耗率超出约定上限检测(超耗,金额 = 用量差异 × 单价)
- 按金额从大到小排序的处理清单(超耗 / 串料 / 替代料未登记 / 退料未冲减,每条带行号与建议动作)
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
本工具不做引擎 CHECKS_OUT_OF_SCOPE 里列的那些判断(不判断 BOM 定额定得对不对、
不核领料/退料/报废单的签字审批、不做单位换算与计量误差处理、不做责任认定、不读 .xlsx);
材料不足时不给结论,也不会输出「未发现问题」。
