同一款商品,系统显示库存 1,000 件,并不代表这 1,000 件都能发给客户:其中可能有 300 件待检、200 件已冻结,另有一批只剩 12 天到期。如果库存系统只记录商品和总数量,仓库就很难回答“哪一批能发、货在哪个库位、出了问题该追到哪里”。批次管理方案的关键因此不是多加一个“批次号”字段,而是把批次身份、库存状态、出入库规则和追溯关系设计成一套可验证的业务闭环。
我在设计库存方案时,会先问业务团队:你们说的“同一批”,具体按什么划分?可能是供应商批号、生产日期、生产批号、进口批次,也可能是企业内部为了追溯而生成的收货批次。这些口径不一定相同,不能默认一个批次号就能满足所有查询。
比较稳妥的做法,是把批次身份拆成两层:一层是业务来源标识,例如供应商批号或生产批号;另一层是系统内部的库存批次标识,用来唯一识别一笔进入库存管理的批次记录。两者可以关联,但不应未经确认就合并成同一个字段。
核心判断:批次至少要能够回答“什么商品、来自哪里、属于哪一批、当前在哪里、处于什么状态、还剩多少、经历过哪些变动”。如果这些问题无法从系统数据中还原,单独保存一个批次号并不能构成完整的批次管理。
库存展示最容易出现的争议,不是数字算错,而是不同岗位说的“库存”不是同一种口径。采购看的是账面数量,销售看的是可承诺数量,仓库看的是实物数量,质量部门关心的是放行数量。方案里应先给这些数量命名,再决定它们如何计算。
例如,可以把库存区分为实物库存、可用库存、待检库存、冻结库存和已分配库存。一个常见的计算框架是:可分配数量=合格且未冻结的实物数量-已被订单或任务占用的数量。这个公式只是设计起点,企业还要决定在途、拣货中、退货待判等状态是否计入各自口径。
不要把“系统有库存”直接等同于“可以出库”。批次状态、货位状态、订单分配和质量结论都可能改变库存是否可用。若系统只维护一个总数,后续再用报表补救,通常会造成前台可见、后台无法执行的断层。
一份可落地的批次管理方案,不应只写“支持批次追溯、效期预警、先进先出”。我建议至少交付五类材料:业务定义与范围、字段字典、库存状态及数量口径、端到端流程和异常规则、测试用例与上线验收标准。
每一条规则都要能落到系统动作。例如,“临期提醒”要写清楚按哪个日期计算、提前多少天、通知谁、是否影响分配;“质量冻结”要写清楚冻结范围、操作权限、已有订单如何处理、解冻后是否自动恢复可分配。规则越具体,需求评审越容易达成一致。

下面用一个明确标注为情景示例的场景说明。某仓库管理一种需要关注有效期的商品。商品 A 的第一批入库 100 件,生产日期为 4 月 1 日,有效期至次年 3 月 31 日;第二批入库 80 件,生产日期为 5 月 15 日,有效期至次年 5 月 14 日。
第一批中有 20 件被抽样送检,暂时处于待检状态;第二批有 10 件外包装破损,等待质量人员判定。系统如果只显示“商品 A 库存 180 件”,销售可能会将 180 件都视为可承诺库存。但按示例设定,当前可用数量应是 150 件,受限数量是 30 件。
这时,仓库还要处理一个客户订单:客户要求剩余效期不少于 180 天。即使第一批先到,若其剩余效期不足客户门槛,也不能简单按照入库时间优先分配。这个例子揭示了一个常被忽略的事实:先进先出、效期先出和客户指定规则有冲突时,系统需要有明确的优先级和例外流程。
不少方案把批次字段放在收货单上,却没有定义上架、移库、拣货、盘点和退货时如何继承批次。结果是入库时有批次,库存台账里却只剩商品和库位;发生质量问题后,系统能查到供应商送货记录,却找不到受影响库存去了哪里。
在设计中,我会把“批次身份如何流转”作为单独的流程问题处理。普通移库通常只改变库位,不应改变批次身份;部分拣货需要减少原批次在原库位的数量,并在拣货任务或出库明细中留下对应批次;退货是否回到原批次、是否进入待检状态,则应由企业的质量政策决定,不能只凭程序默认。
批次追溯还需要区分“来源追溯”和“去向追溯”。来源追溯从库存批次回查采购单、供应商、收货和检验记录;去向追溯从批次回查出库单、客户、订单或内部领用记录。只做其中一侧,发生召回、投诉或质量调查时仍需要人工拼数据。
状态设计建议采用少而明确的模型。以常见库存场景为例,可先评估“待检、合格、冻结、报损、已分配、拣货中、已出库”等状态是否确有独立业务含义。不要为了看起来全面,给每个动作都新造一种状态;状态过多会增加操作难度,也容易发生状态之间无法转换的死角。
库存状态和业务单据状态也不宜混为一谈。订单“已审核”不一定等于库存“已分配”;检验单“已提交”不一定等于批次“已放行”。方案中要明确谁驱动库存状态变化、何时生效、是否需要审批,以及失败时如何回滚或补偿。
| 对象 | 需要回答的问题 | 常见设计遗漏 |
|---|---|---|
| 批次身份 | 如何唯一识别,外部批号和内部批次如何关联 | 把供应商批号当成全局唯一值,未考虑不同供应商重复编号 |
| 库存数量 | 实物、可用、待检和已分配数量如何区分 | 总库存可见,却无法判断哪些数量能接订单 |
| 库存位置 | 批次数量如何分布到仓库、库区和库位 | 批次只在单据上存在,移库后丢失位置关系 |
| 库存状态 | 冻结、放行、报损由什么事件触发 | 状态变更没有权限控制或操作记录 |
| 流转记录 | 如何还原来源、移动、分配和去向 | 只保留当前余额,没有可追溯的变动明细 |

批次号只是识别信息,不会自动解决批次与商品、仓库、库位、状态和数量之间的关系。如果系统每个商品只有一个“当前批次”字段,多批库存同时存在时就会互相覆盖;如果批次号只能在单据上填写,却不进入库存余额和变动明细,查询时也无法确认现存数量。
我会要求设计方说明:批次号在哪个对象上唯一,能否在不同仓库重复,拆分和合并是否会生成新标识,外部批号是否允许重复,错录后如何更正。如果这些问题没有答案,先不要讨论报表样式。
FIFO(先入先出)按入库时间优先分配,FEFO(先到期先出)按有效期优先分配,两者并不总是一致。对于有有效期的商品,FEFO可能更符合减少临期风险的目标;对于没有效期属性、但要求按入库顺序周转的商品,FIFO可能更合适。对客户指定批次、质量等级或剩余效期要求的订单,系统还要支持优先级更高的约束。
策略不是单选按钮,而是拣货决策顺序。例如先排除冻结批次,再排除不满足客户剩余效期要求的批次,然后按到期日排序,最后才用入库时间或库位距离作为次级规则。具体顺序需要业务、仓库和质量团队共同确认。
“临期预警”只是一种提醒机制。提醒是否会阻止出库,必须单独定义。某些企业只需要提前提醒采购或销售调整计划;另一些企业可能要求低于客户门槛就禁止分配;还有的业务允许特批,但要记录批准人、原因和订单范围。
如果把预警阈值直接等同于禁出阈值,可能导致可正常销售的商品被误锁;如果只提醒、不记录处置结果,预警又可能长期停留在消息列表中。设计时至少要区分提醒条件、拦截条件、豁免权限和处置闭环。
冻结并不是一个简单的“是或否”。需要明确冻结对象是整个商品、某个批次、某个库位中的部分数量,还是一笔待处理的库存明细。质量部门要求冻结 15 件,不应误锁住同批次在其他合格库位的全部数量,除非业务风险评估要求整批隔离。
冻结、解冻和报损还涉及权限和审计。至少应记录操作人、时间、数量、理由、审批信息和前后状态。若只保存最新状态,事后无法回答“谁在何时解除冻结、为什么这批货又能发出”。
报表可以整理已经记录的数据,却不能从缺失的业务事件中推断批次去了哪里。若移库、拆零、拣货和退货没有留下批次级明细,分析工具最多展示当前汇总,无法可靠重建历史流转。
数据分析平台适合帮助管理者检查批次库存分布、临期结构、冻结数量和库存变动趋势,但它不能替代仓储执行系统中的实时校验、任务分配和权限控制。若使用九数云等数据分析平台,应把它定位为分析与监控层,并以真实、完整的库存明细或业务数据为输入;不要将其描述为负责执行所有仓库出入库动作的系统。

并非所有商品都需要相同强度的批次管理。可以按追溯风险、有效期属性、质量敏感度、客户要求和法规要求分层,再决定哪些商品必须启用批次、哪些只记录供应商批号、哪些需要批次加效期及质量状态。
我通常会让业务方逐个回答四个问题:发生质量问题时是否必须圈定来源;库存是否可能因有效期而失去可售资格;客户是否指定批次或要求剩余效期;错误发货是否会造成明显的安全、合规或经济影响。答案越多为“是”,批次级控制就越值得投入。
| 业务特征 | 建议管理强度 | 设计重点 |
|---|---|---|
| 无明确追溯要求、无有效期属性 | 可按企业需要选择是否启用批次 | 避免增加无意义录入,先确认批次是否能支持实际决策 |
| 需要供应来源追溯 | 保留供应商、采购单及收货批次关联 | 确保来源数据进入库存台账并能向下追到出库去向 |
| 存在有效期或保质期 | 增加日期字段、临期规则和拣货策略 | 区分提醒阈值、订单限制和禁出条件 |
| 质量风险或客户批次约束较高 | 增加状态控制、审批和完整审计记录 | 验证冻结范围、放行权限、指定批次和召回查询 |
字段字典至少要写明业务含义、数据类型、是否必填、取值来源、维护角色、校验规则、修改限制和下游用途。比如“有效期”应明确是到期日还是失效日,按自然日还是按具体时刻判断;“生产日期”缺失时允许收货、暂存还是拒收,也要有实际规则。
以下字段清单是讨论模板,不是所有企业的标准答案。字段是否启用,取决于商品属性、供应链数据可得性和业务控制要求。
| 字段 | 用途 | 需要确认的规则 |
|---|---|---|
| 内部库存批次标识 | 系统内识别一笔批次库存 | 生成时点、唯一范围、是否允许重建 |
| 供应商批号 | 回查外部来源和供应商标签 | 不同供应商是否可出现相同批号,缺失时如何处理 |
| 生产批号 | 关联制造来源或生产记录 | 由供应商提供还是企业生成,是否需要校验格式 |
| 生产日期与有效期 | 效期控制、客户要求校验和临期分析 | 允许为空的情形、日期逻辑、预警及禁出阈值 |
| 质量状态 | 控制待检、放行、冻结或报损数量 | 谁可变更、变更是否审批、是否影响可用库存 |
| 来源单据关联 | 从批次追溯到采购、收货或退货业务 | 单据关闭后是否保留关联,数据迁移如何补齐 |
同一个批次可能分布在不同仓库、库区和库位,也可能部分待检、部分放行。库存余额的粒度需要支持实际运营。常见讨论维度包括商品、仓库、库位、库存批次、质量状态和货主等。维度越细,记录与查询能力越强,但数据量和操作复杂度也会增加。
一个实用的设计原则是:凡是会影响可分配、可移动、可追溯或责任归属的属性,都要评估是否进入库存余额维度或库存明细。如果状态只放在备注里,就很难保证分配逻辑真正排除受限库存。
同时要确认系统如何维护余额与流水:业务动作产生库存变动明细,余额由可靠的过账机制更新;如采用异步处理,应定义处理中状态、失败重试和对账方式。不能让用户在后台直接改余额,再期待追溯数据依然完整。
很多需求只写“按效期先出”,实际执行却没有说明冻结批次如何排除、客户规则如何生效、数量不足时是否允许拆单。可以先把拣货决策拆为两步:先筛选合格候选批次,再对候选批次排序。
这套拆法的价值在于,排序规则改变时,不会误把不合格库存重新纳入候选范围。也更容易把订单限制、库存状态和仓内效率分别测试。
批次追溯依赖业务事件。至少要能分辨收货、质检、上架、移库、冻结、解冻、调整、分配、拣货、出库、退货和报损等事件。每个事件都应说明影响哪些库存维度、数量如何增减、是否需要关联原单和操作者。
如果方案涉及接口或数据仓库,建议同步定义事件时间、业务单号、源系统、操作人、批次标识、库存前后状态和数量变化。具体字段可以由系统架构调整,但应保留足够信息以回答“发生了什么、影响了多少、依据是什么”。

以下是用于方案推演的情景模拟,不是某企业真实运营数据。商品 A 的批次 A1 有 100 件,生产日期较早,其中 20 件待检;批次 A2 有 80 件,其中 10 件因包装异常待判。客户订单需要 60 件,并要求发货时剩余有效期至少 180 天。
系统首先要从 180 件实物库存中排除受限数量,得到 150 件当前可用库存。接着,逐批校验剩余效期。如果 A1 不满足客户门槛而 A2 满足,系统就不能仅因 A1 入库更早而优先分配 A1;A1 的合格部分可能仍可用于其他订单,但本订单需要按已确认规则选择 A2。
如果 A2 合格部分不足 60 件,系统应按业务规则选择:允许从其他符合效期门槛的批次补足;允许拆单发货;进入人工审批;或者拒绝承诺。不能为了凑足订单数量而悄悄放宽客户条件。
在测试环境里,我会把这笔业务拆成事件,而不是只检查最终余额。例如,收货增加库存,质检把部分数量从待检转为放行,异常品转为冻结或待判,订单分配占用可用数量,拣货减少原库位库存,出库再减少仓内实物。每一步都要说明哪些数量变化、哪些批次字段被继承。
| 事件 | 数量变化示例 | 需要验证的结果 |
|---|---|---|
| 第一批收货 | 实物库存增加 100 件 | 批次、来源单据、生产日期及库位信息是否关联 |
| 第一批待检 | 20 件进入待检,80 件可按设定规则放行 | 待检数量是否不能被普通订单分配 |
| 第二批收货 | 实物库存增加 80 件 | 第二批标识是否与第一批独立保存 |
| 第二批异常处理 | 10 件进入待判,70 件暂列可用 | 受限数量是否从可分配库存中排除 |
| 订单分配与出库 | 符合效期规则的数量被占用并出库 | 出库明细是否保留批次、数量、客户和订单关系 |
数量核对可以采用简单的守恒检查:期末库存=期初库存+入库-出库+调整。对于批次级库存,还要按商品、仓库、库位、批次和状态分别核对。若系统总账平衡,但某个批次出现负库存或状态数量无法解释,仍不能算验收通过。
在这个情景里,九数云可以作为一个分析层示例,用于连接或汇总可用的业务数据,观察批次库存结构、临期数量、冻结数量、库龄分布和库存变动趋势。这个例子适用于企业已有相应数据源、并希望让管理人员快速查看批次风险的情况;前提是库存明细和状态数据本身准确、字段口径统一。
我会先设计几个能帮助决策的观察视图:按批次查看现存数量和质量状态;按到期区间查看临期库存;按仓库和库位定位受限数量;按时间观察收货、出库和调整的变动。分析结果适合发现“哪些批次需要处理”,但冻结、解冻、拣货和库存过账仍应由具备相应业务控制能力的系统完成。
还要防止看板把不同口径混在一起。例如把已分配数量算进可用库存,会高估可承诺量;把在途数量与仓内实物合并展示,会让仓库误以为货物已可拣。数据分析项目上线前,应先确认指标定义、刷新频率、数据延迟和异常责任人。
下面的数字仍为情景模拟,仅用于说明验收指标怎样建立,并非九数云或任何企业的实测效果。假设上线前,仓库每周人工核对批次库存需要 6 小时,批次追溯一次需要 90 分钟;系统方案完成后,通过标准查询和统一字段,目标分别设为 2 小时和 15 分钟。上线后是否达标,必须用真实记录测量。
我建议将目标拆成“系统能力指标”和“业务结果指标”。能力指标包括批次字段完整率、受限库存拦截正确率、出库批次记录完整率;结果指标包括人工查找耗时、临期库存处置时间和盘点差异处理时间。前者能定位配置问题,后者才能说明流程是否真的改善。

只测试“输入批次号后能搜到库存”并不够。我会分别选一个模拟质量问题,验证正向追溯:从供应商或生产批次查到收货、质检和现存位置;再验证反向追溯:从批次查到已出库数量、客户、订单和日期。两条路径都要覆盖库存已部分出库的情况。
测试记录中应写清楚查询条件、预期结果、实际结果、数据范围和失败处理。若存在历史数据迁移,还要抽样验证旧批次是否能关联新系统中的库存与单据。迁移数据缺少某些字段时,应明确标识缺失,而不是通过默认值伪装完整。
上线前先找齐会影响批次规则的角色:采购或供应商管理、收货、质量、仓库、销售或订单管理、财务以及系统实施人员。每个角色要确认自己提供什么数据、在哪个节点操作、出现异常找谁决策。批次管理往往跨部门,单靠仓库人员无法确定客户效期要求或质量放行权限。
建议按“业务事件,操作岗位,系统单据,库存变化,异常责任人”记录流程。流程图不需要一开始就画得复杂,但至少能看出库存从收货到出库经过哪些状态、哪些节点会阻断、哪些操作需要审批。
测试用例要覆盖规则边界,而不是只演示一条顺利的收货和出库流程。每个用例都应写明前置库存、操作步骤、预期库存变化、预期状态、预期提示和审计结果。
“测试通过”应有明确口径。例如,出库批次记录完整率可以定义为:抽样出库单中,批次、数量和来源关系都符合预期的明细行数,占抽样明细行总数的比例。受限库存拦截测试可以按用例数统计,确认每个不应分配的批次是否都被正确阻止。
样本不必一开始就做得很大,但要覆盖不同仓库、不同商品类型、不同状态和边界日期。若只用一个商品、一张单据做演示,无法证明多批、部分冻结、不同库位或退货流程也正确。涉及高风险商品时,应由业务负责人提高测试范围,并保存测试证据。
从旧系统迁移时,常见做法是核对商品总数和仓库总数,却没有逐批次核对。这样可能出现总账一致、批次余额错位的情况。迁移对账应至少比较商品、仓库、库位、批次、质量状态和数量;有有效期要求的,还需核验日期格式、空值和异常日期。
若旧系统没有完整批次信息,不要在迁移时批量生成看似真实的批次号。可以按业务批准的方式建立“历史未区分批次”或其他明确标识,同时限定其可执行动作,并保留来源说明。历史数据的缺口应该可见、可解释,而不是被隐藏在默认值里。
上线不是设计结束。初期建议每日或按业务节奏检查负库存、批次字段缺失、库存状态不平、临期未处置、冻结超期和手工调整等异常。每项异常都要有负责人、处理时限和关闭记录。
同时要保留规则变更记录。比如从 FIFO 改为 FEFO,或调整效期预警提前天数,应记录变更原因、生效时间、影响商品范围和测试结果。否则过一段时间,业务人员可能无法解释为什么某批次被优先分配。

如果商品没有有效期要求、质量风险较低,也没有客户追溯要求,不必为了“系统支持批次”而强制全品类录入批次信息。可以先选择确有来源追溯需要的商品启用,并评估录入成本、错误率和实际决策价值。
这种方案的优势是培训和收货负担较小,缺点是后续业务变化时可能需要扩大范围。实施前要给商品主数据设置清晰的批次管理标记,并明确哪些商品不能通过普通收货流程绕过批次要求。
对有保质期或失效风险的商品,重点不是只增加生产日期和到期日字段,而是验证供应商数据质量、日期校验、效期剩余规则、预警对象和出库策略。若订单有最低剩余效期要求,系统应能按订单条件校验候选批次。
在 FIFO 与 FEFO 的取舍上,我会优先评估商品风险和客户约束,再考虑仓库效率。FEFO能让较早到期的合格库存优先流转,但也可能增加跨库位拣货或拆批操作;FIFO规则相对直观,却可能把较早收货但效期更长的库存排在更短效期批次之前。需要用真实库存结构模拟订单,而不是只在需求文档中选一个术语。
如果质量问题可能影响多个客户或造成高成本损失,批次管理应优先确保冻结范围准确、放行权限明确、操作留痕完整、追溯查询双向可用。报表和看板可以帮助发现风险,但不能替代实时拦截和权限控制。
此类场景的取舍通常是增加操作步骤,换取更强的风险控制。比如质量人员需要及时更新检验结论,仓库需要按状态分区或规范货位。如果企业无法保证状态维护及时,再完善的字段设计也会变成错误数据的装饰。
多仓环境中,同一个外部批号可能跨供应商重复,系统内部必须定义稳定的唯一标识。多货主业务还要确认批次是否按货主隔离;不同仓库对批次和库位的命名规则不一致时,需要明确主数据由谁维护。
如果采购、仓储、质量和销售分属不同系统,要定义批次数据的权威来源:哪套系统生成内部批次号,哪套系统负责质量状态,哪个接口传递出库批次。还要约定接口延迟、失败重试、重复消息和差异对账,避免一个系统显示放行、另一个系统仍然冻结。
预算或实施时间有限时,我建议按风险排序分阶段落地。第一阶段先建立批次身份、关键字段、库存状态和出库明细;第二阶段补齐效期预警、冻结审批与双向追溯;第三阶段再优化多仓分配、自动拣货排序和分析看板。阶段划分应基于风险评估,不意味着可以把必要的质量控制延后。
不能为了赶上线,把核心规则简化成“先上线一个批次号,后续再补流程”。如果批次在入库时没有稳定建立,后续想补来源关系会非常困难。更实际的范围缩减方式,是减少首期覆盖的商品或仓库,而不是省略关键数据关系和库存控制。
| 情况 | 优先建设 | 主要取舍 |
|---|---|---|
| 低风险、少量品类 | 按需启用批次,保持必要来源记录 | 减少日常录入,但扩大管理范围时要补齐历史规则 |
| 有效期敏感 | 日期校验、客户门槛、FEFO评估及临期处置 | 控制效期风险,可能增加拣货复杂度和例外处理 |
| 质量风险高 | 冻结、解冻、权限审计和双向追溯 | 增加流程约束,换取更可靠的隔离和责任记录 |
| 多仓多系统 | 唯一标识、数据权威源和接口对账 | 前期治理成本较高,但能减少跨系统口径冲突 |

批次方案评审时,我更看重业务团队能否把规则说清楚,而不是功能列表有多长。上线前可以逐项确认以下问题,并把答案写进需求或测试记录。
如果你正在启动库存系统方案设计,下一步不必马上画页面或选字段。先挑选三类典型商品:一种普通商品、一种有有效期的商品、一种质量风险较高的商品;分别走一遍收货、质检、上架、分配、出库、退货和追溯流程,把每个节点的库存变化写出来。
再让仓库、质量、采购和订单团队共同确认批次定义、库存口径与异常责任人。最后把这些规则转成测试用例,验证系统是否能阻止不合规分配、保留批次流转关系,并在问题发生时快速定位受影响库存和出库对象。
批次管理真正的价值,不在于系统里多保存了一个号码,而在于每一件库存都能被正确识别、合理分配、及时隔离,并且在需要时说明来龙去脉。先把业务规则定义清楚,再决定字段、流程和工具,通常比上线后补追溯关系更省成本,也更能让系统方案经得起实际操作的检验。

我在梳理库存系统需求时,发现同一批货可能带着供应商标签,也可能需要仓库重新贴码。如果系统里只留一个批次号,后续退货或追溯时会不会丢信息?我应该先定字段,还是先定批次规则?
先定“批次代表什么”,再确定字段。批次可以用于区分生产来源、生产日期、质量状态或追溯范围;不同业务目的不能默认由一个批次号字段全部承担。一种较稳妥的设计是分别保存供应商批号和企业内部批次标识,并通过商品、供应商、收货单等信息建立关联。
供应商批号通常用于对外核对,内部标识则便于仓库扫码、库存查询和跨单据追踪。若企业确认供应商批号在所有场景下唯一且格式稳定,也可以直接将其作为内部识别依据,但要先验证重复、缺失和格式不一致等情况。示例:同一商品两次到货,供应商都标注批号“L2406”。
如果批号并非全局唯一,系统还需要结合供应商、商品或收货单确定唯一库存批次。字段设计至少应说明:谁负责录入、何时生成、哪些字段必填、入库后哪些信息允许修改,以及修改是否留痕。
我希望系统自动推荐先出哪一批,但不同商品的保质期和客户要求不一样。只配置先进先出会不会把临期批次留在仓库里?如果允许员工手动选批次,又担心规则形同虚设,该怎么平衡?
不要把 FIFO(先入先出)或 FEFO(先到期先出)当成全仓统一答案。FIFO依据入库时间排序,适合批次没有明显效期差异、且业务要求优先消化早入库库存的场景;FEFO依据有效期排序,更适合效期直接影响可销售或可使用性的商品。客户指定批次、质量状态或运输条件也可能优先于自动排序。
建议按商品或商品类别配置默认策略,并明确例外条件:系统先给出推荐批次;遇到客户指定、质量限制等情况时,允许授权人员改选;改选时记录原因、操作者和时间。无论采用哪种策略,都要确认系统是否会排除冻结、待检、过期或效期不足的库存。例如,批次A于6月1日入库、有效期至12月31日;
批次B于6月10日入库、有效期至9月30日。FIFO会先推荐A,FEFO通常会先推荐B。这个示例仅用于说明排序差异,实际规则应由商品属性和业务要求决定。
我遇到过库存报表显示有货,但仓库人员说这批货还没检验,不能发给客户的情况。我不确定应该把这部分库存从总库存里扣掉,还是保留在库存里但禁止分配,系统里怎样表达才不容易让业务和财务各说各话?
不要只用一个“库存数量”口径同时回答实物、财务和发货问题。更清楚的做法是保留库存数量,并按状态区分可用、待检、冻结、报损等库存;具体状态名称和财务口径需与企业现有流程确认。一个常见的业务计算方式是:可分配库存=符合出库条件的库存-已分配未出库数量。
待检或冻结库存可以计入实物库存,但不应进入可分配库存。若系统还展示账面库存、在途库存或已锁定库存,应分别写明定义,避免用户把它们误认为都能立即发货。示例:某批次实物有100件,其中20件待检、10件已被订单占用。若待检库存不能分配,可分配数量就是70件,而不是100件。
设计评审时要继续追问:谁能冻结或解冻、状态变更是否需要审批、状态变化后是否触发库存重算,以及报表和出库校验是否使用同一口径。
我不想验收时只演示一遍正常收货和出库,结果上线后才发现冻结库存也能被拣走,或者退货回来后查不到原批次。我应该怎样安排测试,才能判断系统规则真的落地了?
测试要覆盖“正常流程、规则边界、异常处理、追溯结果”,不能只验证页面上出现了批次号。每个用例都写清前置数据、操作步骤、预期库存变化和可核验的记录,测试人员才有办法判定通过与否。可先准备一组小型测试数据:商品P有批次A 100件、批次B 60件;A处于待检状态,B处于可用状态。
验证待检批次不能被分配、可用批次按配置规则被推荐、部分出库后数量正确扣减,再测试移库、盘点差异、退货回库、批次冻结与解冻,以及按批次查询来源和去向。验收时重点检查三件事:库存数量和状态是否一致;无权限用户能否绕过限制;操作记录能否回答“谁在何时做了什么”。
可以将每条规则记录为“输入条件,系统动作,预期结果”,并让仓库、质量和财务相关人员共同确认。测试数据只是验证方案的示例,正式用例应按实际业务风险补充。


读者评论
把供应商批号和系统内部批次标识分开设计很实用,能减少不同供应商批号重复带来的识别问题。
文中的可用库存口径比较清楚,待检和待判数量不应直接承诺给客户;实际还要考虑已分配和拣货中的数量。
FIFO和FEFO不能简单二选一,客户剩余效期要求也应纳入拣货规则,建议上线前用订单案例验证优先级。
冻结设计不仅要考虑冻结范围,还要记录操作人、时间和原因,这对后续质量调查确实重要。
文章强调用异常用例验收批次流转,尤其是移库、拆零和退货,能帮助发现只在收货单上保留批次信息的问题。