← 制造业系统 / 系统拆解

旧料没用完,新料又拆了,仓库该先发哪一批

用五批库存和七十件需求,拆开质量与有效期筛选、FIFO 与 FEFO 排序、批次预留和扫码复核,复算可分配数量,记录跳批、改期、退料与人工换批的依据,并连接实际用料追溯。

← WMS 专题目录专题阅读 4 / 12

仓库有一百六十件物料,订单只要七十件,系统却跳过了最早到货的批次。仓管员担心违反先进先出,销售担心客户收到临期货。判断这次分配,需要同时看到库存资格、需求日期和采用的排序规则。

本篇接着 WMS 基础篇拆解 FIFO 与 FEFO。SO-F70 和五批库存均为独立教学模拟,不改变前文支架工单的数量;日期、最低剩余有效期和分配规则只供复算,不代表真实产品要求或厂商接口。

先说明先入和先到期分别按什么算

FIFO(First In, First Out)按已约定的入库或库龄依据优先选择较早库存;FEFO(First Expiry, First Out)按约定的到期依据优先选择较早到期库存。后入库的一批可能更早到期,两种排序自然会得出不同结果。

Microsoft 的库位指令文档分别列出 FEFO 批次预留和 Location aging FIFO。后者根据进入仓库的库龄日期寻找较早库存位置,说明产品中的具体策略有自己的粒度与前提,不能假定所有 WMS 都只按批次收货日排序。

日期或记录在本篇的作用需要避免的混用
首次收货时刻本样本 FIFO 主排序键移到新库位的时间不能直接覆盖它
本次上架、移库时刻解释实物位置和操作历史不自动改变产品年龄或到期日
到期时刻本样本 FEFO 主排序键和资格条件与建议复验日、最佳使用日期分开
客户约定到货时刻最低剩余有效期的计算锚点不能默认按今天或发货日判断
库存版本与规则版本还原本次判断采用的事实当前状态不能覆盖原分配快照

仓储实物轮转与财务 FIFO 计价也要分开。Microsoft 的 FIFO 成本说明讨论库存结算与计价机制;账上采用 FIFO 不能单独证明现场实际先拣了旧批。

本例统一使用带时区的时间戳,首次收货时间相同则按库存明细 ID 稳定排序;FEFO 同期到期时再比较首次收货时间。实际系统的日期精度、同日边界和并列规则,应写入接口契约。

把一百六十件筛成九十件候选库存

2026 年 10 月 19 日 08:00,工厂 A 的同一种物料有下表库存,单位均为件。货权、版本与位置条件在本样本中已满足,数量分组互不重叠。订单 SO-F70 需要 70 件,约定 10 月 22 日 08:00 到货,并要求当时至少剩余 7 个完整的 24 小时。

批次首次收货到期时刻实物数量当前条件本单候选量
F09 月 29 日 08:0010 月 21 日 08:0020已放行,但到货时已到期0
F110 月 1 日 08:0011 月 2 日 08:0060已放行,其中 10 件被其他任务预留50
F210 月 10 日 08:0010 月 30 日 08:0040已放行、未预留40
F310 月 5 日 08:0010 月 29 日 08:0030质量冻结0
F410 月 12 日 08:00未确认10缺少到期依据0

以上时刻均为北京时间。本例规定到期时刻起禁止使用,最低剩余期比较允许等于阈值;因此日期门槛是 10 月 29 日 08:00。F3 在日期上恰好满足门槛,但质量冻结仍使它不可分配。F4 保持“日期依据未知”,不补成一个很远的日期。

最低到期门槛 = 10月22日08:00 + 7×24小时 = 10月29日08:00
F1 候选量 = 60 − 其他任务预留10 = 50件
F2 候选量 = 40件
本单候选量 = 50 + 40 = 90件

Microsoft 的有限保质期计划说明将客户可销售天数与约定收货日期联系起来,并区分到期、建议检查和最佳使用日期。这是产品实现依据;本例“7 个完整日”和精确边界由教学规则 RULE-F / 1 自行设定。

资格筛选应逐条保留失败原因,允许同一明细存在多个原因。这里 F0、F3、F4 和 F1 的预留部分互不重叠,才能直接核对 160 = 候选90 + 不参加本单70。实际字段若有重叠,不应按“冻结加预留加过期”重复扣减。

库存资格怎样进入 FIFO 与 FEFO 分配独立窗口查看 ↗
同一份候选库存分别参与两种排序。最早收货或最早到期,都不能越过质量、用途、剩余期和预留限制。

在同一份候选库存上比较两种分配

本样本允许拆批,单件单位精度为 1,不限制整托或整箱。FIFO 在 F1 与 F2 中先取 F1;FEFO 则先取较早到期的 F2。以下两列为互相独立的比较方案,不会同时锁定两遍库存。

方案优先次序需求 70 件的分配本单分配后的候选余量
FIFOF1 → F2F1 50、F2 20F2 20
FEFOF2 → F1F2 40、F1 30F1 20

两者都能满足数量和本例资格条件。企业选用哪种策略,还要确认产品、客户、包装和仓储作业要求。减少拆托或缩短行走距离可以参与策略设计,但调整后仍需满足不能绕过的资格条件,并记录采用依据。

假设到货日期改为 10 月 24 日 08:00,其余条件不变,到期门槛随之变为 10 月 31 日 08:00。F2 不再满足,F1 只可提供 50 件,本单出现 20 件缺口。原来 70 件的预留方案应重新评估,不能因曾经选中过 F2 就继续出库。

分配成功以后仍可能失效

本例选择 FEFO 方案,原子核对库存版本并预留 F2 40 件和 F1 30 件。并发任务如果先占用了部分库存,当前任务需要重新计算或返回冲突,不能使用过期的 90 件快照超量分配。

从任务生成到实际扫码,可能又发生冻结、改期或日期资料修订。拣货和出库动作需要按当时有效条件复核。操作员扫描另一批时,应重新核对身份、资格和可分配量,形成换批记录;主管批准“换一批”也不能代替质量放行或未经授权的有效期变更。

选择记录与实际用料一起留下来

一份可追溯的分配记录至少保存需求行、时间锚点、所需数量、来源快照、规则版本、候选明细、跳过原因、排序键及分配结果。执行记录再保存实际扫描批次、容器、数量、位置和回执。

本例原计划选 F2 40、F1 30,但仓库实际只从 F2 拣到 38 件,暂不从 F1 额外补足。实际为 F2 38 加 F1 30,共 68 件,短拣 2 件;这两件对应的库存事实仍待复核,不能自动当作实物损失或直接改账。

需求70 = 已确认实际拣选68 + 未完成2
实际拣选68 = F2批38 + F1批30
原计划70仍保留,但不作为实际用料凭据

若这些物料以后进入生产,应由实际接收与耗用记录连接到工单及产品。客户异常反查时,可以同时看见“为什么选”和“实际用了什么”。质量影响范围篇继续解释分拆、合批和返工后的产品谱系,分配单本身不能替代耗用证据。

从批次选择核对到实际拣选与用料独立窗口查看 ↗
计划分配 70 件与实际拣选 68 件分别保存。重复回执不重复累计,短拣未决也不自动变成损失过账。

移库、拆箱和退回未耗用余料时,继续关联原批次、容器关系与日期依据。新的交接时间单独记录,原收货年龄和有效期按适用规则传承。退回物料若已开封,还需核对开封与环境时钟,详见在制品与时间约束专题。

用边界和异常样本验收规则

批次选择 JSON保存五批库存、规则、两种分配和改期/短拣结果。校验程序可复算候选量、顺序、期限边界和重复回执;数字均为模拟,不连接实际 WMS。

验收输入应得到的结果
完整基准快照候选 90 件,FIFO 为 50+20,FEFO 为 40+30
冻结 F3,即使日期满足不参加本单分配,保留质量原因
F4 的到期日为空列为日期未知,不默认为长期有效
到期日恰好等于到货后 7 天按本例含等号规则通过日期条件,其他条件仍检查
到货推迟两天候选变为 50 件,缺口 20 件
扫码时 F2 又被质量冻结拒绝本次 F2 执行,原选择记录保留
F2 实际拣选 38 件,回执重发实际总量仍为 68 件,未完成 2 件

资料于 2026-10-19 核对。库位指令文档支持实物策略的产品例子,成本文档解释财务 FIFO,有限保质期文档支持剩余期与需求的关联;具体规则、字段及数值均在样本中另行声明。执行验收还需要企业批准的日期口径、批次主数据和仓库操作记录。