引言

入库管理是WMS系统的核心业务之一,直接影响库存准确率和作业效率。本文将深入讲解从ASN预报到上架完成的全流程,帮助你理解和优化入库作业。


1. 入库业务全景

1.1 入库类型

1. 采购入库(Purchase Receipt)

  • 定义:供应商送货到仓库
  • 触发:ERP采购订单
  • 流程:ASN预报 → 收货 → 质检 → 上架
  • 特点:有ASN预报,数据准确

2. 退货入库(Return Receipt)

  • 定义:客户退回商品
  • 触发:OMS退货单
  • 流程:收货 → 质检 → 上架/报废
  • 特点:无ASN预报,需仔细质检

3. 调拨入库(Transfer Receipt)

  • 定义:其他仓库调拨商品
  • 触发:WMS调拨单
  • 流程:收货 → 上架(通常无需质检)
  • 特点:已质检,快速上架

1.2 入库流程全景图

ERP采购订单
     ↓
   ASN预报 ────────────────┐
     ↓                     │(可选)
  预约收货                 │
     ↓                     │
  供应商送货               │
     ↓                     │
┌──收货验收◄──────────────┘
│    ↓
│  扫描条码
│    ↓
│  核对数量
│    ↓
│  发现差异?
│   /    \
│ Yes     No
│  ↓       ↓
│ 异常处理  质检验证
│           ↓
│         质检合格?
│          /    \
│        Yes     No
│         ↓       ↓
│      上架指引   退货/隔离
│         ↓
│      RF上架
│         ↓
│      库存增加
└──────────┘

2. ASN(Advance Shipping Notice)预报

2.1 ASN的作用

什么是ASN?

  • 定义:提前发货通知,供应商提前告知仓库发货信息
  • 目的:仓库提前准备,提升收货效率

ASN的价值

  1. 提前准备:预留收货月台、人员、设备
  2. 快速验收:对单收货,减少人工核对
  3. 减少差异:预报准确,降低收货差异
  4. 优化库位:提前分配库位,快速上架

ASN vs 无ASN对比

维度有ASN无ASN
收货效率快(对单验收)慢(盲收录入)
准确率高(预报准确)低(人工录入)
库位分配提前分配收货后分配
人力成本

2.2 ASN数据模型

ASN预报单

-- ASN主表
CREATE TABLE asn (
  asn_no VARCHAR(50) PRIMARY KEY,
  warehouse_code VARCHAR(20),
  supplier_code VARCHAR(50),
  expect_arrival_date DATE,     -- 预计到货日期
  total_sku_count INT,          -- SKU种类数
  total_qty INT,                -- 总数量
  status VARCHAR(20),           -- 待收货、收货中、已完成
  created_at TIMESTAMP
);

-- ASN明细表
CREATE TABLE asn_detail (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  asn_no VARCHAR(50),
  sku_code VARCHAR(50),
  batch_no VARCHAR(50),
  expect_qty INT,               -- 预计数量
  unit VARCHAR(20),
  FOREIGN KEY (asn_no) REFERENCES asn(asn_no)
);

ASN创建流程

// ERP生成采购订单后,自动推送ASN到WMS
POST /api/wms/asn
{
  "asn_no": "ASN202511220001",
  "warehouse_code": "WH001",
  "supplier_code": "SUP-APPLE",
  "expect_arrival_date": "2025-11-25",
  "items": [
    {
      "sku_code": "iPhone-15Pro-256GB-Black",
      "batch_no": "20251120",
      "expect_qty": 100
    }
  ]
}

2.3 无ASN入库的处理

场景:供应商未提前发送ASN,直接送货到仓库

处理方式

  1. 盲收(Blind Receiving)

    • 仓管员逐件扫描条码,系统自动识别SKU
    • 系统记录实收数量
    • 生成ASN单(事后补录)
  2. 快速录入

    • 仓管员手工输入SKU和数量
    • 系统生成ASN单
    • 后续流程同有ASN

盲收优缺点

  • ✅ 优点:灵活,适应临时送货
  • ❌ 缺点:效率低,容易出错

3. 收货管理

3.1 收货模式

1. 对单收货(ASN Receiving)

  • 前提:有ASN预报
  • 流程
    1. 扫描ASN条码,系统调出预报信息
    2. 逐件扫描商品条码
    3. 系统自动核对SKU和数量
    4. 发现差异,系统提示

2. 盲收(Blind Receiving)

  • 前提:无ASN预报
  • 流程
    1. 逐件扫描商品条码
    2. 系统自动识别SKU
    3. 仓管员录入数量
    4. 系统生成ASN单

3.2 RF扫描收货流程

RF终端界面(示例)

┌─────────────────────────┐
│  收货管理               │
├─────────────────────────┤
│ ASN单号:                │
│ [ASN202511220001]       │
│                         │
│ 扫描ASN条码 ►           │
└─────────────────────────┘
       ↓(扫描后)
┌─────────────────────────┐
│  ASN: ASN202511220001   │
├─────────────────────────┤
│ 供应商: SUP-APPLE       │
│ 预报SKU: 1种            │
│ 预报数量: 100件         │
│                         │
│ 扫描商品条码 ►          │
└─────────────────────────┘
       ↓(扫描商品)
┌─────────────────────────┐
│  SKU: iPhone-15Pro      │
├─────────────────────────┤
│ 预报数量: 100           │
│ 已收数量: 1             │
│                         │
│ 继续扫描 ► [___]        │
│ 完成收货 [按钮]         │
└─────────────────────────┘
       ↓(收货100件后)
┌─────────────────────────┐
│  收货完成               │
├─────────────────────────┤
│ 预报数量: 100           │
│ 实收数量: 100           │
│ 差异: 0 ✓               │
│                         │
│ [提交] [取消]           │
└─────────────────────────┘

3.3 收货差异处理

常见差异类型

1. 多收(Over Receipt)

  • 原因:供应商多发、ASN预报错误
  • 处理
    • 记录实收数量
    • 通知采购和供应商
    • 选择:全部收货 or 拒收多余部分

2. 少收(Short Receipt)

  • 原因:供应商少发、运输丢失
  • 处理
    • 记录实收数量
    • 通知采购和供应商
    • 要求补货

3. 破损(Damage)

  • 原因:运输损坏、包装问题
  • 处理
    • 拍照记录
    • 隔离破损商品
    • 通知采购和供应商
    • 要求退货或索赔

差异处理流程

-- 记录收货差异
INSERT INTO receiving_exception (
  asn_no, sku_code, expect_qty, received_qty,
  exception_type, exception_desc, images
)
VALUES (
  'ASN202511220001', 'iPhone-15Pro', 100, 98,
  '少收', '少收2件,供应商确认丢失', '[image1.jpg, image2.jpg]'
);

-- 通知采购
INSERT INTO notification (recipient, title, content)
VALUES ('purchaser@company.com', '收货差异通知', '...');

4. 质检流程

4.1 质检类型

1. 全检(Full Inspection)

  • 适用:高价值商品(手机、奢侈品)
  • 流程:逐件检查外观、功能
  • 优点:质量保障
  • 缺点:效率低、成本高

2. 抽检(Sampling Inspection)

  • 适用:标准品(日用品、食品)
  • 流程:按比例抽样检查
  • 抽样比例
    • 10%(数量<100)
    • 5%(数量100-1000)
    • 2%(数量>1000)
  • 优点:效率高
  • 缺点:可能漏检

4.2 质检结果处理

1. 质检合格(Pass)

质检库存 → 正常库存 → 进入待上架区

2. 质检不合格(Fail)

质检库存 → 不良库存 → 退货/报废

3. 质检待定(Pending)

质检库存 → 暂存 → 等待进一步检测

5. 上架管理

5.1 上架策略

1. 随机上架(Random Put-away)

  • 策略:系统自动分配空闲库位
  • 适用:周转快的商品(电商日用品)
  • 优点:库位利用率高、上架快
  • 缺点:拣货效率低(商品分散)

2. 指定上架(Fixed Put-away)

  • 策略:固定SKU放固定库位
  • 适用:周转慢的商品(长尾商品)
  • 优点:拣货效率高(位置固定)
  • 缺点:库位利用率低

3. 就近上架(Nearest Put-away)

  • 策略:优先分配离收货区近的库位
  • 适用:高频周转商品
  • 优点:减少搬运距离
  • 缺点:热点库位拥堵

4. ABC分类上架

  • 策略:按销量分类,A类商品放拣货区
  • 适用:所有商品
  • 优点:平衡存储和拣货效率

5.2 上架路径优化

案例:仓库有100个上架任务,如何分配给5个员工?

优化目标

  • 最小化搬运距离
  • 均衡员工工作量
  • 避免库位冲突

算法

# 上架任务分配(贪心算法)
def assign_putaway_tasks(tasks, workers):
    # 按库位距离排序
    tasks.sort(key=lambda t: t.distance)

    # 初始化员工任务列表
    worker_tasks = {w: [] for w in workers}

    # 贪心分配:每次分配给当前任务量最少的员工
    for task in tasks:
        min_worker = min(workers, key=lambda w: len(worker_tasks[w]))
        worker_tasks[min_worker].append(task)

    return worker_tasks

6. 实战案例:电商仓库的入库流程优化

背景

  • 仓库规模:10000平米,10万SKU
  • 日均入库:500单,2万件
  • 痛点:收货慢、差异多、上架效率低

优化前

  • 无ASN预报,盲收为主
  • 收货效率:100件/小时/人
  • 收货准确率:95%
  • 上架时效:4小时

优化方案

1. 推广ASN预报

  • 与供应商对接,要求提前1天发送ASN
  • ASN覆盖率从0%提升到80%

2. 引入RF扫描

  • 所有收货员配备RF终端
  • 扫描条码替代手工录入

3. 优化质检流程

  • 高价值商品全检(10%SKU)
  • 标准品抽检(90%SKU)
  • 抽检比例:5%

4. 上架策略优化

  • ABC分类:20%高频SKU指定上架
  • 80%低频SKU随机上架
  • 就近原则:优先分配近库位

优化后

  • 收货效率:200件/小时/人(提升100%)
  • 收货准确率:99.5%(提升4.5%)
  • 上架时效:2小时(提升50%)

ROI分析

  • 人力成本:节省40%
  • 库存准确率:提升4.5%
  • 客户满意度:提升15%

7. 总结

入库管理关键成功要素

  1. ASN预报:提前准备,提升效率
  2. RF扫描:减少人工录入错误
  3. 质检流程:平衡质量和效率
  4. 上架策略:优化库位利用率

下一篇预告: 在下一篇文章中,我们将深入学习出库管理与波次拣货,包括:

  • 波次拣货的原理和策略
  • 拣货模式:摘果式 vs 播种式
  • 拣货路径优化算法
  • 复核打包流程

敬请期待!