3. 批次与序列号管理模型

批次与序列号是追溯系统的两条主干。批次回答“这一群产品是谁、什么时候、用什么料做的”,序列号回答“这一件产品具体是谁”。两者不是替代关系,而是粒度不同的互补标识:批次用于聚合统计、召回定界和成本核算,序列号用于单件追溯、保修判定和防伪验证。本节围绕批次定义、批号生成策略、序列号与批次的关系、有效期与失效期管理、批次拆分与合并逻辑五个方面展开。

批次定义:先确定“一批”的边界

批次(Lot/Batch)是在相同条件下生产、加工或采购的一组产品。定义批次的关键是确定“同批条件”,即哪些要素相同才允许归为同一批。常见同批要素包括:物料来源(供应商、来料批号)、生产日期或时间段、生产线/设备、工艺参数版本、操作班组、检验状态。只要其中一项发生切换,就应产生新批次,否则追溯链会在该点断裂。

批次对象通常包含以下字段:批号(唯一标识)、物料编码、生产工单号、生产日期、有效期、失效期、数量、单位、状态(待检/合格/冻结/报废)、来源批次(用于拆分合并追溯)。其中“来源批次”字段是后续拆分合并能否回溯的关键,必须在建模阶段就预留。

批号生成策略:可读性与唯一性的平衡

批号生成策略决定批号是否可人工识别、是否便于排序、是否容易冲突。常见策略有三类:

  • 日期流水型:如 20250612-001,表示 2025 年 6 月 12 日第 1 批。优点是直观、可按日期排序;缺点是跨天、跨线时需保证流水号不重复,通常要配合产线代码,如 L2-20250612-001。
  • 编码组合型:如 物料码+产线+日期+班次+流水,信息密度高,适合多产线并行。缺点是长度较长,人工录入易错。
  • 系统序列型:由系统按全局自增或 UUID 生成,唯一性最强,但可读性差,通常作为内部主键,同时保留一个可读的业务批号。

实际工程中推荐“双批号”做法:内部主键用系统序列保证唯一,业务批号用日期流水或编码组合保证可读。生成时需注意:流水号应按“物料+产线+日期”维度重置,而不是全局重置,否则不同物料会互相占用号段。批号一旦生成并打印,不应再修改;若必须作废,应保留原批号并标记状态,而不是删除或复用。

序列号与批次的关系

序列号(SN)是单件产品的唯一标识,通常由厂商代码、产品型号、生产日期、流水号等组成。序列号与批次的关系有三种典型模型:

  • 一对多:一个批次包含多个序列号,序列号记录中保存所属批号。这是最常见的模型,适合整批生产、单件赋码的场景。
  • 多对一:多个批次的产品最终装配成一台整机,整机序列号关联多个来源批次。适合总装追溯。
  • 多对多:同一序列号在返修、换料后可能关联多个批次,需要记录关联时间和原因。适合返修与再制造场景。

建模时,序列号表应至少包含:SN、物料编码、批号、生产时间、当前状态、当前位置。若存在多对多关系,应单独建关联表,记录“SN—批号—关联类型—时间”,避免在主表中反复覆盖导致历史丢失。

批次与序列号关系模型及拆分合并逻辑 批次 Lot-A 批号:L2-20250612-001 数量:1000 件 SN-0001 ~ SN-0600 子批 A1(600 件) SN-0601 ~ SN-1000 子批 A2(400 件) 拆分 拆分 合并批 Lot-M 来源:A1 + A2 数量:1000 件 合并 合并 有效期与失效期时间轴 生产日期 2025-06-12 有效期至 2026-06-11 失效期 2026-06-12 可用期 禁售/待处理期 批次状态流转 待检 合格 冻结 报废 超期/异常

有效期与失效期管理

有效期与失效期是批次管理中最容易混淆的一对概念。有效期(Expiry Date)指产品在规定的储存条件下能够保持质量的截止日期,通常表述为“有效期至 2026-06-11”;失效期(Invalid Date)指产品从该日期起不得再使用,通常表述为“失效期 2026-06-12”。两者相差一天,但业务含义不同:有效期当天仍可用,失效期当天起禁用。

建模时建议同时保存三个日期:生产日期、有效期至、失效期。系统判断逻辑为:当前日期 ≤ 有效期至 → 可用;当前日期 ≥ 失效期 → 禁用;介于两者之间时,按企业质量策略处理,通常进入“待处理”或“冻结”状态。对于有效期按月计算的物料,需明确“按月加算”的规则,例如生产日期 2025-06-12,有效期 12 个月,有效期至为 2026-06-11,而不是 2026-06-12。这一天的差异在药品、食品、医疗器械行业是合规红线,必须在批号生成时由系统自动计算并锁定,不允许人工随意填写。

批次拆分与合并逻辑

批次拆分发生在部分领用、分装、分次发货等场景。拆分时,原批次数量减少,新批次继承原批次的物料编码、生产日期、有效期等质量属性,但获得新的批号和新的数量。关键规则是:拆分后的子批必须记录来源批号,形成“父—子”关系;子批的有效期不得晚于父批;拆分数量之和不得超过父批剩余数量。

批次合并发生在尾料回收、同物料同质量属性合并等场景。合并的前提是:物料编码相同、质量状态相同、有效期相同或取最早有效期、来源可追溯。合并后生成新批号,同时记录所有来源批号及各自数量。合并批的有效期应取所有来源批次中最早的失效期,即“就短不就长”,以确保安全。若来源批次有效期不一致,原则上不应合并;确需合并时,必须走质量审批并单独标识。

拆分与合并的共同原则:数量守恒、来源可溯、有效期就短、状态就严。任何一次拆分或合并,都应生成一条独立的批次关系记录,而不是直接修改原批次记录。

建模落地要点

综合以上内容,批次与序列号管理模型可归纳为四张核心表:批次主表(批号、物料、数量、状态、有效期、失效期)、序列号表(SN、物料、批号、状态)、批次关系表(父批号、子批号、关系类型、数量、时间)、状态变更日志表(批号/SN、原状态、新状态、原因、操作人、时间)。四张表通过批号和 SN 关联,既能支持正向追溯(从批次查到序列号),也能支持反向追溯(从序列号查到批次和来源)。

实际配置时,建议将批号生成规则、有效期计算规则、拆分合并审批规则做成可配置项,而不是硬编码在程序中。例如,批号规则可配置为“产线代码 + 日期 + 三位流水”,有效期规则可配置为“生产日期 + N 个月 - 1 天”。这样在换产线、换物料、换质量策略时,只需调整配置,不必修改代码,追溯系统的可维护性会显著提升。