WMS库存盘点实战——保证库存准确率的关键方法

引言:库存准确率的重要性 库存不准的后果: 超卖:系统有货实际没货,客户投诉 滞销:实际有货系统没货,资金占用 财务差异:账实不符,审计风险 库存准确率目标: 电商仓库:> 99.9% 普通仓库:> 99.5% 高价值仓库:> 99.99% 一、盘点类型 1.1 盘点方式对比 类型 说明 频率 适用场景 全盘 盘点所有库存 年度/季度 财务结算、年终 循环盘点 按计划轮流盘点 每日 日常管理 动碰盘点 有变动时盘点 实时 高价值商品 抽盘 随机抽查 每周 抽样检查 盲盘 不显示系统数量 按需 防止作弊 1.2 盘点策略选择 ┌─────────────────┐ │ 库存准确率 │ │ 目标 99.9% │ └────────┬────────┘ │ ┌─────────────────┼─────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ 全盘 │ │ 循环盘点 │ │ 动碰盘点 │ │ 年度1次 │ │ 每日执行 │ │ 实时触发 │ └──────────┘ └──────────┘ └──────────┘ │ │ │ ▼ ▼ ▼ 财务结算 日常维护 高价值商品 二、盘点数据模型 2.1 盘点计划 CREATE TABLE t_count_plan ( id BIGINT PRIMARY KEY AUTO_INCREMENT, plan_no VARCHAR(32) NOT NULL COMMENT '计划单号', warehouse_id VARCHAR(32) NOT NULL, plan_name VARCHAR(64) NOT NULL COMMENT '计划名称', count_type VARCHAR(16) NOT NULL COMMENT '盘点类型:FULL/CYCLE/SPOT', -- 盘点范围 scope_type VARCHAR(16) NOT NULL COMMENT '范围类型:ALL/ZONE/SKU/LOCATION', scope_value TEXT COMMENT '范围值(JSON)', -- 计划时间 plan_date DATE NOT NULL COMMENT '计划日期', start_time TIME COMMENT '开始时间', end_time TIME COMMENT '结束时间', status VARCHAR(16) NOT NULL DEFAULT 'CREATED', created_by VARCHAR(32), created_at DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uk_plan_no (plan_no), KEY idx_warehouse_date (warehouse_id, plan_date) ) ENGINE=InnoDB COMMENT='盘点计划'; 2.2 盘点任务 CREATE TABLE t_count_task ( id BIGINT PRIMARY KEY AUTO_INCREMENT, task_no VARCHAR(32) NOT NULL COMMENT '任务单号', plan_no VARCHAR(32) NOT NULL COMMENT '计划单号', warehouse_id VARCHAR(32) NOT NULL, -- 盘点范围 zone_code VARCHAR(16) COMMENT '库区', location_from VARCHAR(32) COMMENT '起始库位', location_to VARCHAR(32) COMMENT '结束库位', -- 执行信息 operator_id VARCHAR(32) COMMENT '盘点员', status VARCHAR(16) NOT NULL DEFAULT 'PENDING', start_time DATETIME, end_time DATETIME, -- 统计 total_locations INT DEFAULT 0 COMMENT '库位数', counted_locations INT DEFAULT 0 COMMENT '已盘库位数', difference_count INT DEFAULT 0 COMMENT '差异数', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uk_task_no (task_no), KEY idx_plan_no (plan_no) ) ENGINE=InnoDB COMMENT='盘点任务'; 2.3 盘点明细 CREATE TABLE t_count_detail ( id BIGINT PRIMARY KEY AUTO_INCREMENT, task_no VARCHAR(32) NOT NULL, location_code VARCHAR(32) NOT NULL COMMENT '库位', sku_id VARCHAR(32) NOT NULL, -- 数量 system_qty INT NOT NULL COMMENT '系统数量', count_qty INT COMMENT '盘点数量', difference_qty INT COMMENT '差异数量', -- 盘点信息 count_time DATETIME COMMENT '盘点时间', counter_id VARCHAR(32) COMMENT '盘点人', -- 复盘 recount_qty INT COMMENT '复盘数量', recount_time DATETIME, recounter_id VARCHAR(32), status VARCHAR(16) NOT NULL DEFAULT 'PENDING', remark VARCHAR(256), KEY idx_task_no (task_no), KEY idx_location (location_code) ) ENGINE=InnoDB COMMENT='盘点明细'; 三、循环盘点 3.1 循环盘点策略 ABC分类盘点: ...

2026-02-02 · maneng

库存管理:精准控制与实时同步

引言 库存准确性是WMS的生命线。本文深入讲解库存管理的核心业务,包括库存查询、盘点、调拨和预警机制。 1. 库存的三个维度 1.1 可用库存、锁定库存、在途库存 总库存 = 可用库存 + 锁定库存 + 在途库存 示例: 总库存: 1000件 可用库存: 800件(可以销售) 锁定库存: 150件(已分配订单,未出库) 在途库存: 50件(调拨中,未到达) 1.2 库存扣减逻辑(防止超卖) -- 悲观锁方案 BEGIN; SELECT available_qty FROM inventory WHERE sku_code = 'iPhone-15Pro' FOR UPDATE; -- 扣减库存(原子操作) UPDATE inventory SET available_qty = available_qty - 1, locked_qty = locked_qty + 1 WHERE sku_code = 'iPhone-15Pro' AND available_qty >= 1; -- 防止超卖 COMMIT; 2. 库存查询与统计 2.1 多维度查询 1. 按SKU查询 SELECT * FROM inventory WHERE sku_code = 'iPhone-15Pro'; 2. 按库位查询 SELECT * FROM inventory WHERE location_code = 'A01-02-03'; 3. 按批次查询 SELECT * FROM inventory WHERE batch_no = '20251120'; 4. 库龄分析 ...

2025-11-22 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...