2. 召回管理业务流程全景:从发现缺陷到最终处置

召回管理并非单一接口动作,而是一条从缺陷发现到实物销毁/返工的完整业务链。WMS 在其中承担库存锁定、批次追踪与出库执行的核心角色。本章以全景视角梳理全流程,为后续接口设计建立业务上下文。

2.1 全流程阶段划分

召回业务可拆解为6 个核心阶段,每个阶段对应不同的系统职责与数据状态变更:

阶段 触发条件 WMS 核心动作 输出状态
① 缺陷发现 质检报告 / 客诉 / 法规通报 查询受影响批次库存分布 缺陷批次清单
② 召回发起 审批通过 / 法规指令 创建召回单,标记批次 召回单(待锁定)
③ 库存锁定 召回单激活 冻结批次库存,禁止出库 锁定库存(不可售)
④ 出库回收 物流指令 / 客户退货 生成回收出库单,扣减锁定库存 回收在途 / 已入库
⑤ 质检分拣 实物到达回收仓 更新批次质检状态 待销毁 / 待返工
⑥ 销毁/返工 质检结论确认 执行报废出库或返工入库 批次生命周期终结
关键认知:WMS 的库存锁定并非简单“冻结”一条记录,而是涉及锁定库存表、锁定类型、锁定原因码以及锁定时间戳的多维状态变更。锁定后的库存不能被正常销售出库、调拨或移库。

2.2 全景流程图

下图展示从缺陷发现到最终处置的完整业务流转,包含系统间交互与库存状态变化:

召回管理业务流程全景图 召回管理业务流程全景图 ① 缺陷发现 质检/客诉/法规 ② 召回发起 创建召回单 ③ 库存锁定 冻结批次库存 ④ 出库回收 回收出库单 ⑤ 质检分拣 判定处置方向 ⑥ 销毁 ⑥ 返工 流程关键说明: 1. 库存锁定是召回流程的“闸门”,锁定后任何正常业务均不可操作该批次库存。 2. 出库回收阶段可能涉及逆向物流(客户退货)或正向回收(经销商召回)。 3. 质检分拣决定最终处置路径:销毁或返工,WMS 需支持两种出库类型。

2.3 各阶段详细说明

2.3.1 缺陷发现与批次定位

  • 数据来源:质检系统(QMS)、客户投诉系统(CRM)、国家药品/食品监督管理局通报。
  • WMS 动作:根据缺陷产品编码 + 生产批次范围,查询库存分布(库位、数量、入库日期)。
  • 输出:受影响批次库存清单,包含锁定前库存量、已出库量、在途量。

2.3.2 召回发起与单证生成

  • 召回等级:一级(紧急,24h 内锁定)、二级(48h)、三级(72h)。
  • WMS 接口:接收 ERP/召回系统下发的 recall_order_create 请求,创建召回单头与行。
  • 关键字段:召回单号、产品编码、批次号、锁定数量、锁定原因码、失效日期。
接口设计提示:召回单创建接口应支持幂等性(idempotent),避免重复提交导致库存锁定翻倍。建议使用业务主键(recall_order_no + batch_no)做唯一约束。

2.3.3 库存锁定(核心环节)

库存锁定是 WMS 召回模块的核心能力,涉及以下数据变更:

  • 锁定表:inventory_lock 记录锁定单号、批次、库位、锁定数量、锁定时间。
  • 库存表:inventory 中锁定数量字段增加,可用数量减少。
  • 锁定类型:召回锁定(recall_lock)与普通锁定(如质检锁定、预占锁定)互斥。
  • 锁定状态机:待锁定 → 已锁定 → 部分解锁 → 已出库。

2.3.4 出库回收

回收出库与正常销售出库的差异:

对比维度 正常销售出库 召回回收出库
出库类型 销售出库 召回出库
库存来源 可用库存 锁定库存
收货方 客户/经销商 回收仓库/销毁中心
成本处理 确认收入 计入召回损失
WMS 单据 销售出库单 召回出库单

2.3.5 质检分拣与处置决策

回收实物到达指定仓库后,质检员进行分拣判定:

  • 可返工:更新批次状态为“待返工”,生成返工入库单,库存重新进入可用池。
  • 不可返工:更新批次状态为“待销毁”,生成报废出库单,实物移交销毁。
  • WMS 状态:批次生命周期状态机:正常 → 召回锁定 → 回收在途 → 待质检 → 待销毁/待返工 → 终结。

2.4 批次状态流转图

为更清晰展示批次在召回流程中的状态变化,下图以状态机视角呈现:

召回批次状态流转图 召回批次状态流转图 正常 召回发起 召回锁定 出库回收 回收在途 到货 待质检 质检 合格? 待返工 待销毁
状态边界条件:批次一旦进入“召回锁定”状态,任何正常出库、调拨、移库操作均被 WMS 拒绝。只有“解锁”或“回收出库”才能改变该状态。设计接口时需在库存操作前增加状态校验逻辑。

2.5 流程中的关键数据实体

为支撑上述流程,WMS 召回模块至少需要以下核心数据表:

实体名称 主要字段 说明
召回单头 recall_order_no, status, created_at 召回主单据,记录整体状态
召回单行 recall_order_no, sku_code, batch_no, qty 每个批次一条记录
库存锁定表 lock_id, batch_no, location, lock_qty, lock_type 锁定库存明细
回收出库单 outbound_no, recall_order_no, status 回收出库执行记录
批次状态表 batch_no, lifecycle_status, last_modified 批次生命周期状态

2.6 本章小结