3. WMS系统基础架构概览

在开发召回管理接口之前,理解WMS(仓储管理系统)的整体架构至关重要。WMS作为企业物流与供应链的核心执行系统,其架构设计直接影响接口的调用方式、数据流向与异常处理策略。本节将从核心业务模块、API网关与微服务架构两个维度进行剖析。

3.1 WMS核心模块

一个成熟的WMS通常围绕“进、存、出、盘”四大核心流程构建,每个模块都承担着特定的业务职责,并与召回管理接口产生直接或间接的交互。

核心模块 主要职责 与召回接口的关联
入库模块 收货、质检、上架、批次/序列号登记 提供召回批次的基础库存数据来源
出库模块 波次创建、拣货、复核、打包、发货 召回锁定后,需拦截该批次的正常出库
库存模块 库存台账、批次库存、库存状态、库存移动 召回锁定与解锁的核心操作对象
盘点模块 循环盘点、年度盘点、差异调整 确认召回批次的实际库存数量与状态
架构提示:在微服务架构下,上述四个模块通常被拆分为独立的微服务(如 inbound-service、outbound-service、inventory-service、cycle-count-service),每个服务拥有独立的数据库,通过API网关对外暴露统一接口。

3.2 WMS微服务架构与API网关

现代WMS普遍采用微服务架构以应对高并发、高可用的业务需求。API网关作为系统的统一入口,承担着路由、认证、限流、协议转换等关键职责。

WMS 微服务架构与 API 网关 召回系统 ERP系统 电商平台 API 网关 路由 / 认证 / 限流 协议转换 / 日志 负载均衡 熔断降级 入库服务 出库服务 库存服务 盘点服务 DB DB DB DB 说明:召回系统通过 API 网关调用库存服务进行批次锁定,调用出库服务拦截出库单 各微服务独立部署、独立数据库,通过轻量级通信协议(gRPC / REST)交互

3.3 召回批次库存锁定与出库拦截流程

在WMS微服务架构下,召回管理接口的核心操作涉及库存服务与出库服务的协同。以下流程图展示了从召回指令下发到库存锁定、出库拦截的完整链路。

召回批次库存锁定与出库拦截流程 1. 召回指令下发 2. 库存服务:锁定召回批次库存 3. 出库服务:查询待出库单中是否包含该批次 4. 拦截出库单 / 冻结波次 5. 返回锁定结果与拦截明细
关键设计点:
  • 库存锁定:在 inventory-service 中,将召回批次的库存状态从“可用”改为“召回锁定”,并记录锁定时间与操作人。
  • 出库拦截:在 outbound-service 中,通过监听库存状态变更事件或主动查询,将包含锁定批次的出库单置为“拦截”状态,阻止拣货与发货。
  • 幂等性:召回锁定接口必须支持幂等,避免重复锁定导致库存数量异常。

3.4 接口调用示例

以下是一个典型的召回批次库存锁定接口的请求与响应示例,采用RESTful风格,通过API网关转发至库存服务。

POST /api/v1/recall/lock
Content-Type: application/json

{
  "recall_id": "REC-20250321-001",
  "batch_no": "BATCH-20250301",
  "sku": "SKU-8801",
  "lock_quantity": 500,
  "warehouse_code": "WH-01",
  "reason": "质量缺陷召回",
  "operator": "system"
}
HTTP/1.1 200 OK
Content-Type: application/json

{
  "code": 0,
  "message": "success",
  "data": {
    "lock_id": "LOCK-20250321-001",
    "batch_no": "BATCH-20250301",
    "locked_quantity": 500,
    "available_quantity": 0,
    "status": "locked",
    "locked_at": "2025-03-21T10:30:00+08:00"
  }
}
异常场景处理:
  • 若锁定数量大于当前可用库存,接口应返回 400 错误码,并提示“库存不足”。
  • 若批次已处于锁定状态,应返回 409 冲突码,并返回当前锁定明细。
  • API网关应配置超时与熔断策略,防止库存服务异常导致连锁故障。