|
|
做库存管理这些年,FIFO 是被念叨最多、也做得最敷衍的一项。这篇把我做过的、也替别人补过的做法,按顺序整理了一遍。
先说结论:先看清问题在哪
很多仓库的 FIFO 只停留在现场贴标签,系统不做管控,全靠仓管员自觉——而人一旦赶工,最先被挑走的往往是最方便拿的新料。
这已经不是操作习惯问题,而是流程设计问题:系统允许你选错批次,就等于默认你可以不按 FIFO 执行。
真正的系统 FIFO,是一条由五个环节串起来的闭环:
•主数据打底:以「物料 + 批次 + 库位 + 状态」为最小库存单元;
•入库打时间戳:每一批来料都被记录、被分类、被锁定;
• 出库自动分配:由系统按规则排定先出哪一批,而不是靠人挑;
• 扫码校验拦截:现场扫错就报错,把错误挡在拣货这一步;
• 报表监控闭环:把库龄、临期、跳批异常全部晒出来,反向推动改善。
一句话概括:系统管分配,现场管隔离;系统是规则,实物是根基,两者缺一不可。
一、前置基础配置(不做好,FIFO 无法生效)
1. 物料主数据开启批次管理。需要执行 FIFO 的物料,在 ERP / WMS 物料档案中勾选批次管控。不启用批次的物料,系统无法区分同一物料的不同入库批次,FIFO 从根本上就不成立。批次管理应按物料属性分级启用,不必一刀切:高值、有保质期限、批次差异明显、需要质量追溯的物料必须启用;低值通用料可按企业规则适度简化,但简化范围须由相关部门共同确认,不能长期留白。
2. 入库必录关键字段。每一批来料收货时,系统强制录入:入库时间戳、批次号、生产日期、有效期、库位、检验状态。系统库存维度必须是「物料 + 批次 + 库位 + 状态」,不能只保留物料总库存——只记总数的系统,再先进的出库逻辑也算不出该出哪一批。
这里必须分清两种规则:
• FIFO:按入库时间升序排序,最早入库批次优先出库,适用于绝大多数原材料、半成品;
• FEFO:先到期先出,按失效日期排序,适用于有明确保质期限的食品、医药、化工等物料。
判断标准不是「仓库有没有保质期字段」,而是「物料本身会不会随着存放时间变质」。如果会,就走 FEFO,而不是机械走 FIFO——否则按入库时间先出的一批,可能正好是先过期的那一批。
3. 库位策略配置。在储位主数据中维护储位属性与兼容性规则,系统据此给出上架指引:旧料放拣货面,新料放内侧;同时配置规则禁止同一库位混放不同物料、不同批次或不同状态。混放是 FIFO 的头号杀手,一旦实物位置与系统记录对不上,再准确的分配结果也执行不下去。
二、入库环节:记录时间,打好 FIFO 底子
采购入库、半成品入库、退料入库,系统自动生成或录入批次并记录入库时间。入库环节要守住三道关口:
1. 退料单独生成批次,禁止直接合并回原有老批次。
退料的生产日期、剩余保质期、质量状态往往与原批次不一致,若合并回老批次,会污染入库时间、打乱库龄计算,等于在系统里人为制造了一批「最老的库存」。
2. 待检批次系统锁定,未质检放行的批次不参与 FIFO 分配。
库存不能只有一个「数量」,还要区分待检、合格、冻结、不合格、退货等状态。只有合格且未被冻结的库存才进入分配范围,这是质量风险的第一道防火墙。
3.上架时系统推荐库位并强制扫码确认。
系统根据物料属性、库位容量和库龄推荐上架位置,仓管员用 PDA 扫物料、扫批次、扫库位后完成上架确认。从源头减少新货压旧货的可能,也让系统里的库位信息始终反映现场真实情况。
三、出库核心:系统自动分配批次(FIFO 最关键)
创建领料单 / 出库单时,系统执行库存分配逻辑,全程无需人工判断先出哪一批:
排序逻辑要写进代码、写进规则文档,而不是停留在口头约定。一个可参考的排序优先级是:
•有保质期限 → 失效日期升序(FEFO);
•无失效日期但有生产日期 → 生产日期升序,再按入库时间升序;
•无生产日期 → 到货日期 / 入库时间升序;
•以上相同 → 批次号升序作为兜底,保证排序结果唯一可复现。
必须强调:分配之后要先「锁定」再拣货。否则同一库存可能被多个订单同时选中,出库过账时才发现库存不足,返工成本远高于提前锁定的成本。
两种管控模式:
•强管控(推荐,WMS):系统强制分配,不允许手动改批次;确需变更时须走审批并留痕。适合多 SKU、大批量、对追溯要求高的仓库。
•简易 ERP 模式:出库选择批次列表默认按入库时间排序,人工优先选最上面的老批次。属于弱管控,容易被绕过,仅适合小仓库或作为过渡方案。
四、拣货扫码校验:把防呆做到操作层
PDA 拣货执行双重校验:扫库位 + 扫物料批次条码。校验不通过,系统直接报错,不允许确认拣货。
•扫到非系统指定批次 → 弹窗报错,禁止确认,要求重新扫描;
•扫到非系统指定库位 → 提示库位与任务不符,退回重扫;
•实发数量超过锁定数量 → 拦截,防止超拣;
•批次已冻结、已过期或状态异常 → 直接禁止出库。
校验的目的,是把「必须拣系统分配的老批次」从一句口号变成一道操作上的硬门槛——只要扫错就过不去,人为挑新料就没有操作空间。
同时,所有拣货变更、手动覆盖 FIFO 的操作,系统必须留存完整操作日志:谁、在什么时间、因为什么原因、把哪一批换成了哪一批。日志不是给人看的负担,而是事后追溯和审计的依据,也是识别异常操作人员的第一手资料。
五、例外处理:跳批必须可审批、可审计
系统规则之外,总会存在合理的例外——比如客户指定批次、质量特采、工程变更前后的物料。这些不能靠仓管员现场临时决定,而应走标准化例外流程:
1.申请跳批:由需求部门提交申请,说明跳批原因与目标批次;
2.审批:由仓储、质量、计划等相关人员按权限审批;
3.系统留痕:审批通过后由系统自动或授权人员完成批次替换,记录原建议批次、实际出库批次、操作人、审批人、时间;
4.事后复盘:跳批记录纳入异常报表,定期分析是否存在库存结构、库位设计或规则本身的系统性问题。
允许例外,但不允许「绕开系统」的例外。只要跳批必须走流程、留记录,它就不是 FIFO 的漏洞,而是规则完整性的组成部分。
六、配套报表与预警监控
1. 库存库龄报表:按批次展示入库时长与库龄区间,快速找出久放呆滞物料,推动优先消耗或专项处理。
2. 近效期预警:针对 FEFO 物料,在到期前按企业规则提前预警,避免临期物料来不及消耗。
3. FIFO 执行异常日志:查询哪些单据手动跳过了 FIFO、操作人、时间、原因与审批记录。
4. 批次追溯报表:支持正向 / 反向查询物料流转记录,从入库到领料、销售、报废全链路可追溯。
报表的价值不在于「把数字摆出来」,而在于触发动作。库龄报表要落到责任人,近效期预警要带处理建议,否则报表做再多,也只是另一种形式的台账。
七、系统 FIFO 常见坑
1.只开启批次,但库存不按批次拆分,系统仍然只有总库存,FIFO 失效;
2.退料直接合并回老批次,污染入库时间,打乱库龄;
3.系统仅推荐批次,不做扫码校验,仓管员仍可按习惯随意拣新料;
4.实物混批堆放,即便系统分配了老批次,现场找不到,被迫改拣新批次;
5.只设财务层面的 FIFO 计价,却不做实物批次管控,成本核算对了,实物却没先进先出。
一句话:FIFO 失效,九成不是算法问题,而是数据不完整、实物没隔离、操作无校验这三件事里至少占了一件。
…………
以上贴子只是内容提要,完整祥细的内容在下面附件中,请下载后阅读: |
|