仓库

职责:仓库主数据、结存、流水;调拨 / 降级 / 盘点头表;期初 / 报损 / 拆合用精简库存单据。
边界:不写库位/波次/WMS;采购销售加工的出入库由业务单确认驱动,见 14-库存确认契约.md
SKU:引用 skussku_units。仓库与产品无关。

线下等级变更/报损/调拨低频(见 13),能力保留、入口可不突出;盘点常用。

仓库

表:warehouses

字段 说明
id 主键
name 名称
type origin / sales
status 启用 / 停用
created_at / updated_at / deleted_at 时间戳;软删除

库存结存

表:stocks
唯一(warehouse_id, sku_id, unit)。无单位成本字段(见规则 17)。

字段 说明
id 主键
warehouse_id 仓库
sku_id SKU
unit 包装单位
quantity 件数
weight_kg 实际重量合计(kg)
updated_at 最后变动

库存流水

表:stock_ledgers

字段 说明
id 主键
warehouse_id 仓库
sku_id SKU
unit 包装单位
direction in / out
quantity 变动件数(正数)
weight_kg 变动重量(正数,kg)
type 见 14 流水类型全集
stock_document_id 仅来源为 stock_documents 时填
source_type 必填
source_id 必填
source_no 必填
occurred_at 业务时间
created_at 入账时间

流水类型枚举以 14 为准(含 process_outopening_in;无 in_transit_*)。

库存单据(仅期初 / 报损 / 拆合)

表:stock_documents
承载采购、销售、加工、调拨、降级、盘点。

字段 说明
id 主键
document_no 单号(唯一)
warehouse_id 仓库
type opening / loss / split / merge
status draft / confirmed / cancelled
occurred_at 业务时间
operator_id 操作人
remark 备注
created_at / updated_at / deleted_at 时间戳;软删除

明细 stock_document_lines

字段 说明
id 主键
stock_document_id 单据
sku_id SKU
unit 包装单位
direction in / out
quantity 件数
weight_kg 实重 kg
batch_no 可空
unit_price / amount 报损等可填
line_role normal / source / target(拆合)
remark 可空

状态机draft → confirmed(见 14 矩阵);draft → cancelled

SKU 降级

表:stock_downgrades(线下库存等级变更)

字段 说明
id 主键
downgrade_no 唯一
warehouse_id 仓库
from_sku_id / to_sku_id 源 / 目标 SKU
from_unit / to_unit 包装单位
from_quantity / to_quantity 件数
weight_kg 出入一致
status draft / confirmed / cancelled
occurred_at 业务时间
operator_id 操作人
remark 可空
created_at / updated_at / deleted_at 时间戳;软删除

确认副作用:见 14「降级确认」。无 stock_document_id

库间调拨

表:stock_transfers

字段 说明
id 主键
transfer_no 唯一
from_warehouse_id / to_warehouse_id 调出 / 调入
status draft / shipped / received / cancelled
shipped_at / received_at 发出 / 收货
operator_id 操作人
remark 可空
created_at / updated_at / deleted_at 时间戳;软删除

明细 stock_transfer_lines

字段 说明
id 主键
stock_transfer_id 调拨单
sku_id / unit SKU / 单位
quantity / weight_kg 件数 / 实重

状态机draft → shipped → receiveddraft → cancelled。发出/收货副作用见 14。

盘点

表:stock_checkscheck_no 唯一

字段 说明
id 主键
check_no 唯一
warehouse_id 仓库
status draft / confirmed / cancelled
occurred_at 盘点时间
operator_id 操作人
created_at / updated_at / deleted_at 时间戳;软删除

明细 stock_check_lines

字段 说明
id 主键
stock_check_id 盘点单
sku_id / unit SKU / 单位
location 库位备注文本,可空(非 WMS)
book_quantity / book_weight_kg 账面
actual_quantity / actual_weight_kg 实盘
diff_quantity / diff_weight_kg 差异
remark 可空

确认副作用:见 14「盘点确认」。

在途

表:stock_in_transits
仅服务调拨(销售不做在途)。不写在途类流水。

字段 说明
id 主键
stock_transfer_id 调拨单
from_warehouse_id / to_warehouse_id 发出 / 目的
sku_id / unit SKU / 单位
quantity / weight_kg 件数 / 重量
status pending / arrived / cancelled
departed_at / arrived_at 发出 / 到货
created_at / updated_at 时间戳

发出时插入 pending;收货改为 arrived

日快照

表:stock_snapshots
唯一(warehouse_id, sku_id, snapshot_date)。按 SKU 汇总件数与重量即可;不按单位拆行(V1)。

字段 说明
id 主键
warehouse_id / sku_id 仓库 / SKU
snapshot_date 日期
quantity / weight_kg 合计
created_at 生成时间

维护方式

  1. 上线:建仓 → 期初用 stock_documents type=opening 确认。
  2. 日常:业务确认自动写流水;手工补录调拨、降级、盘点、报损、拆合。
  3. 日终:生成 stock_snapshots

验收标准

  • [ ] 结存唯一键正确;流水含完整 source_*
  • [ ] stock_documents 仅 opening/loss/split/merge。
  • [ ] 调拨发出/收货与在途行一致,无 in_transit_* 流水。
  • [ ] 降级/拆合重量守恒;盘点确认产生 check_adjust
  • [ ] 行为与 14 矩阵一致。

V1 / 延后

V1 延后
上表能力 销售在途、按包装单位快照行、存货成本、WMS