采购、仓储、资产架构设计
1. 文档目标
本文定义 采购管理、供应商管理、仓库管理、资产管理、出入库管理 的系统边界、核心对象、单据流转和页面职责。
本架构以“主数据、业务单据、库存凭证、资产实例、库存投影”五层为基础,统一采购、仓储、资产、WMS 与运营商品之间的数据关系。
优化的目的:最开始的设计未考虑多商户、仓库、商品成色等问题,无法支持新业务发展
- 自营转变为多商户模式,资产实际状态只有在库与不在库,没有仓库概念,没有商品实际物理位置
- 商品结构:商品(SPU,无成色)--店铺SPU(商品SPU+成色)--仓存SKU(商品SKU+成色),复杂且逻辑混乱,属性按字符串存储
- 资产状态的变动混乱,耦合订单状态、售后状态去改变的,已经没有统一维护的入口,资产彻底荒废,靠订单来统计资产
2. 设计范围
本设计覆盖以下业务域:
- 供应商与仓库主数据
- 仓存 SPU 与仓存商品 SKU
- 采购单与采购入库
- 出入库单及出入库明细
- 资产建档、资产状态与资产流水
- WMS 数据同步与资产编号回传
- 运营 SPU / SKU 的库存投影
3. 架构口径
3.1 核心原则
采购单负责业务意图,商户端负责采购入库操作,出入库单负责库存凭证,资产负责实物实例,WMS负责数据处理、同步和资产编号生成,运营层只消费库存结果。
3.2 系统分工
| 对象 | 架构定位 | 核心职责 |
|---|---|---|
供应商 | 采购来源主数据 | 维护采购来源、供应商基础信息 |
仓库 | 库存位置主数据 | 维护资产当前归属位置 |
仓存SPU | 仓存商品主数据 | 维护商品名称、品牌、型号、分类、规格规则、成色规则 |
仓存商品SKU | 库存承载实体 | 以 规格组合 + 成色 作为库存统计和资产归属维度 |
采购单 | 业务单据 | 记录采购意图、采购明细、采购数量和到货进度 |
出入库单 | 库存凭证 | 记录一次库存变化及其资产级明细 |
资产 | 单台设备实例 | 记录具体设备的资产编号、SN、IMEI、状态、仓库和生命周期 |
WMS | 外部仓储处理系统 | 处理入库数据、生成资产编号、回传处理结果 |
运营SPU / 运营SKU | 销售投影 | 读取仓存与资产聚合结果,形成前台可售、可租库存 |
4. 分层架构
flowchart LR
subgraph A[主数据层]
S1[供应商]
W1[仓库]
P1[仓存SPU]
P2[仓存商品SKU]
end
subgraph B[业务单据层]
D1[采购单]
D2[租赁订单]
D3[售卖订单]
D4[维修单]
D5[调拨单]
D6[处置单]
end
subgraph C[库存凭证层]
R1[入库单]
R2[出库单]
R3[出入库明细]
end
subgraph D[资产层]
A1[资产]
A2[资产状态]
A3[资产流水]
end
subgraph E[运营投影层]
O1[运营SPU]
O2[运营SKU]
O3[可售/可租库存]
end
S1 --> D1
W1 --> R1
W1 --> R2
P1 --> P2
P2 --> D1
D1 --> R1
D2 --> R2
D2 --> R1
D3 --> R2
D4 --> R2
D4 --> R1
D5 --> R2
D5 --> R1
D6 --> R2
R1 --> R3
R2 --> R3
R3 --> A1
A1 --> A2
A1 --> A3
P2 --> O2
O1 --> O2
A2 --> O3
O2 --> O34.1 主数据层
主数据层承载业务对象的基础定义,不表达具体交易结果。
供应商作为采购来源。仓库作为库存归属位置。仓存SPU作为商品主数据。仓存商品SKU作为库存承载实体,粒度为规格组合 + 成色。
4.2 业务单据层
业务单据层表达业务意图和业务过程。
采购单表达采购意图和到货进度。租赁订单、售卖订单、维修单、调拨单、处置单作为库存变化的业务来源。- 业务单据通过对应出入库单落到账面库存和资产状态。
4.3 库存凭证层
库存凭证层记录库存变化事实。
入库单记录资产进入仓库或重新回到可管理库存的过程。出库单记录资产离开仓库或从可管理库存中移出的过程。出入库明细记录资产级变化明细,并作为库存流水视图的底层来源。
4.4 资产层
资产层记录单台设备实例的全生命周期。
- 每台设备对应一条
资产记录。 资产状态表达设备当前业务状态。资产流水记录资产生命周期中的状态、位置、持有人和归属变化。
4.5 销售投影层
销售投影层不直接维护库存事实。
运营SPU / 运营SKU读取仓存商品与资产聚合结果。可售/可租库存由资产状态、仓库、仓存商品 SKU 聚合计算得到。
5. 仓存模型
5.1 结构图
flowchart TD
M[商户] --> SUP[供应商]
M --> WH[仓库]
M --> SPU[仓存SPU]
SPU --> SKU[仓存商品SKU<br/>规格组合 + 成色]
SKU --> ASSET[资产 Asset]
SPU --> MSPU[运营SPU]
SKU --> MSKU[运营SKU]
ASSET --> STOCK[库存统计]
STOCK --> MSKU
SUP --> PO[采购单]
PO --> SKU
WH --> ASSET5.2 仓存SPU
仓存SPU 表示商品主数据,包含:
- 商品名称
- 品牌
- 型号
- 分类
- 参数
- 成色规则
- 规格属性定义
5.3 仓存商品SKU
仓存商品SKU 表示库存承载实体,粒度为 规格组合 + 成色,包含:
- 颜色
- 容量
- 版本
- 其他规格属性组合
- 成色
示例:
iPhone 16 Pro / 黑色 / 256GB / 99新iPhone 16 Pro / 黑色 / 256GB / 95新
仓存商品SKU 承接以下职责:
- 作为库存统计口径
- 作为采购、出入库、资产归属的库存维度
- 作为运营库存映射来源
- 承接归还质检后成色变化带来的库存迁移
5.4 资产 Asset
资产 表示单台设备实例,包含:
- 资产 ID
- SN
- IMEI
- 当前仓库
- 当前状态
- 当前持有人
- 关联采购单
- 关联仓存商品 SKU
6. 单据流转
6.1 总体流转
flowchart TD
P0[采购单 DRAFT] -->|确认采购| P1[采购单 APPROVED]
P1 -->|商户端发起采购入库| I1[采购入库单 PURCHASE_IN]
I1 -->|录入实收信息\n数量/SN/IMEI等| I2[完成采购入库操作]
I2 -->|同步给WMS| WMS1[WMS处理数据]
WMS1 -->|生成资产编号并回传| WMS2[回传资产信息]
WMS2 --> A1[资产建档/补全资产编号]
A1 --> A2[资产状态 IN_STOCK]
A2 --> P2[采购单 PARTIAL_RECEIVED 或 RECEIVED]
A2 -->|租赁发货| O1[租赁出库单 RENTAL_OUT]
O1 --> R1[资产状态 RENTED]
A2 -->|售卖发货| O8[销售出库单 SALE_OUT]
O8 --> A12[OWNED_BY_CUSTOMER]
R1 -->|客户归还| I3[归还入库单 RETURN_IN]
I3 --> Q1[质检与成色判定]
Q1 --> A3[回到 IN_STOCK]
R1 -->|租赁退货| I6[退货入库单 RETURN_BACK_IN]
I6 --> Q2[质检与成色判定]
Q2 --> A11[回到 IN_STOCK]
A12 -->|售卖退货| I7[退货入库单 RETURN_BACK_IN]
I7 --> Q3[质检与成色判定]
Q3 --> A13[回到 IN_STOCK]
R1 -->|客户买断| O4[买断出库单 SALE_OUT]
O4 --> A7[OWNED_BY_CUSTOMER]
R1 -->|到期赠送客户| O6[赠送出库单 GIFT_OUT]
O6 --> A9[OWNED_BY_CUSTOMER]
A2 -->|发起调拨| O2[调拨出库单 TRANSFER_OUT]
O2 --> I4[调拨入库单 TRANSFER_IN]
I4 --> A4[更新当前仓库]
A2 -->|送修| O3[维修出库单 MAINTENANCE_OUT]
O3 --> A5[资产状态 MAINTENANCE]
A5 -->|维修返库| I5[维修入库单 MAINTENANCE_IN]
I5 --> A6[回到 IN_STOCK]
A2 -->|报废| O5[报废出库单 SCRAP_OUT]
O5 --> A8[SCRAPPED]
A2 -->|盘亏| O7[盘亏出库单 LOSS_OUT]
O7 --> A10[DISPOSED]6.2 采购入库链路
- 商户端创建采购单,采购单状态为
DRAFT。 - 商户端确认采购,采购单状态变为
APPROVED。 - 商户端基于采购单创建
PURCHASE_IN采购入库单。 - 商户端在采购入库单中录入实收数量、SN、IMEI 等收货信息。
- 系统将采购入库结果同步给 WMS。
- WMS 处理入库数据,生成资产编号并回传资产信息。
- 系统创建或补全资产档案,资产状态进入
IN_STOCK。 - 系统根据实收结果更新采购单为
PARTIAL_RECEIVED或RECEIVED。
6.3 租赁归还与退货链路
- 租赁发货生成
RENTAL_OUT租赁出库单。 - 出库完成后,资产状态变为
RENTED。 - 客户正常归还生成
RETURN_IN归还入库单。 - 如发生租赁退货或售卖退货场景,生成
RETURN_BACK_IN入库单。 - 商户端完成质检与成色判定。
- 质检通过后,资产回到
IN_STOCK,并根据质检结果归属到对应仓存商品SKU。
6.4 售卖、买断、赠送与处置链路
- 在库资产售卖发货生成
SALE_OUT,资产状态变为OWNED_BY_CUSTOMER。 - 租赁中的资产客户买断生成
SALE_OUT,资产状态变为OWNED_BY_CUSTOMER。 - 到期赠送客户生成
GIFT_OUT,资产状态变为OWNED_BY_CUSTOMER。 - 报废生成
SCRAP_OUT,资产状态变为SCRAPPED。 - 盘亏生成
LOSS_OUT,资产状态变为DISPOSED。
6.5 调拨与维修链路
- 调拨由
TRANSFER_OUT与TRANSFER_IN共同表达,调拨完成后更新资产当前仓库。 - 维修出库生成
MAINTENANCE_OUT,资产状态变为MAINTENANCE。 - 维修返库生成
MAINTENANCE_IN,资产状态回到IN_STOCK。
7. 状态模型
7.1 采购单状态
| 状态 | 含义 |
|---|---|
DRAFT | 草稿 |
APPROVED | 已确认采购 |
PARTIAL_RECEIVED | 部分收货 |
RECEIVED | 全部收货 |
CANCELLED | 已取消 |
采购单状态只描述采购业务状态和到货进度,不承载资产级收货明细。
7.2 出入库单状态
| 状态 | 含义 |
|---|---|
PENDING | 待处理 |
IN_PROGRESS | 处理中 |
COMPLETED | 已完成 |
CANCELLED | 已取消 |
出入库单状态用于描述库存凭证的执行进度和完成结果。
7.3 资产状态
| 状态 | 含义 |
|---|---|
IN_STOCK | 在库 |
RENTED | 已租出 |
MAINTENANCE | 维修中 |
SCRAPPED | 已报废 |
DISPOSED | 已处置 |
OWNED_BY_CUSTOMER | 已归属客户 |
资产状态只表达设备当前业务状态。调拨中、处理中、同步中等过程状态归属于业务单据、出入库单或同步任务。
8. 出入库类型
8.1 入库类型
| 类型 | 业务含义 | 来源 |
|---|---|---|
PURCHASE_IN | 采购入库 | 采购单 |
RETURN_IN | 归还入库 | 租赁订单 |
RETURN_BACK_IN | 退货入库 | 租赁订单/售卖订单/退货单 |
TRANSFER_IN | 调拨入库 | 调拨单 |
MAINTENANCE_IN | 维修返库 | 维修单 |
ADJUSTMENT_IN | 盘盈入库 | 盘点/调整 |
8.2 出库类型
| 类型 | 业务含义 | 来源 |
|---|---|---|
RENTAL_OUT | 租赁出库 | 租赁订单 |
SALE_OUT | 销售出库 | 售卖订单/买断 |
TRANSFER_OUT | 调拨出库 | 调拨单 |
MAINTENANCE_OUT | 维修出库 | 维修单 |
LOSS_OUT | 盘亏出库 | 盘点/调整 |
SCRAP_OUT | 报废出库 | 处置单 |
GIFT_OUT | 赠送出库 | 租赁到期赠送 |
9. 页面职责
9.1 采购管理页
采购管理页负责采购业务单管理:
- 新建采购单
- 编辑草稿采购单
- 确认采购
- 查看采购进度
- 跳转查看关联入库单
采购管理页不承载完整资产入库执行,不维护复杂 SN/IMEI 明细。
9.2 采购详情页
采购详情页负责展示采购单全量业务信息:
- 采购单基础信息
- 采购商品明细
- 每个 SKU 的采购数量和已收数量
- 关联入库单列表或最近一张采购入库单
采购详情页提供以下操作入口:
确认采购去收货/采购入库查看入库单查看资产
9.3 出入库管理页
出入库管理页负责库存凭证总账:
- 统一查看出库单和入库单
- 按出入库类型筛选库存流转记录
- 查看库存凭证状态、数量、关联单据和操作人
- 进入出入库详情页查看资产级明细
9.4 出入库详情页
出入库详情页负责单张库存凭证的详情和执行:
- 展示单据基础信息
- 展示资产级明细
- 展示操作日志
- 在采购入库场景下录入实收信息、SN、IMEI
- 在归还入库、退货入库场景下录入收货结果、质检结论和成色判定
- 提交采购入库后同步 WMS
- 展示 WMS 同步结果、异常信息和资产编号回传情况
9.5 资产管理页
资产管理页负责单台设备维度的管理:
- 查看资产列表
- 查看资产详情与资产流水
- 编辑 SN、IMEI 等补充信息
- 发起调拨
- 发起送修
- 发起处置
- 查看关联出入库单
资产管理作为“单台设备”的操作入口;出入库管理作为“库存凭证”的查询和执行入口。
10. 数据关系
10.1 核心关系
- 一个
供应商可关联多个采购单。 - 一个
仓存SPU下有多个仓存商品SKU。 - 一个
采购单可关联多张采购入库单。 - 一张
出入库单可关联多条资产明细。 - 一个
仓存商品SKU下有多个资产。 - 一个
资产同一时间只归属一个仓存商品SKU和一个当前仓库。 - 一个
运营SKU的库存来源于一个或多个仓存商品SKU的资产聚合结果。
10.2 库存计算
库存以资产状态和仓存商品 SKU 聚合得到:
仓存商品SKU总库存= 该 SKU 下所有有效资产数量仓存商品SKU可用库存= 该 SKU 下状态为IN_STOCK的资产数量运营SKU可售/可租库存= 关联仓存商品 SKU 的可用库存投影
库存流水由 出入库单 + 出入库明细 加工展示,底层以库存凭证为准。
10.3 质检与流转
设备回库后必须经过质检流程方可恢复为可用库存。在这个过程中,入库单状态与质检任务状态紧密联动。
flowchart TD
A[入库单创建<br/>RETURN_IN / RETURN_BACK_IN / MAINTENANCE_IN<br/>入库单状态: PENDING 待处理] --> B[生成质检任务<br/>状态: PENDING_RECEIPT 待收货]
B --> B0[仓库确认收货]
B0 --> E_REC{收货结果}
E_REC -->|收货失败| Z[系统取消相关业务流程<br/>如: 取消退款]
Z --> Z1[入库单状态 → CANCELLED 已取消<br/>资产状态保持不变]
E_REC -->|收货成功| ACTION{处理方式}
ACTION -->|需质检| B01[状态: PENDING_QC 待质检]
ACTION -->|无需质检直接入库| H1[直接指定入库仓库与成色]
H1 --> J
B01 --> B1[根据资产仓存SPU<br/>自动匹配质检题库]
B1 --> B2{是否匹配到题库?}
B2 -->|是| C[填充题库质检项模板]
B2 -->|否| C1[手动选择模板]
C --> D[状态: IN_PROGRESS 质检中<br/>商户端执行质检<br/>入库单状态: IN_PROGRESS 处理中]
C1 --> D
D --> E{质检结果}
E -->|通过| F[状态: QC_PASSED 质检通过<br/>成色判定]
F --> G{成色是否变化?}
G -->|是| H[迁移至新仓存商品SKU]
G -->|否| I[保持原仓存商品SKU]
H --> J[资产状态 → IN_STOCK]
I --> J
J --> K[入库单状态 → COMPLETED 已完成]
K --> L[更新库存投影]
E -->|不通过| M[状态: QC_FAILED 质检不通过]
M --> Z- 成色迁移:归还质检后如发生成色变化,资产归属的
仓存商品SKU随质检结果迁移。 状态流转:
- 入库单创建时初始状态为
PENDING(待处理)。 - 当商户端开始执行质检操作时,入库单状态更新为
IN_PROGRESS(处理中)。 - 若质检不通过或收货失败,相关业务流程被取消,入库单状态更新为
CANCELLED(已取消),资产状态保持质检前状态不变。 - 若质检通过并完成入库,入库单状态更新为
COMPLETED(已完成),资产状态随单据流转更新为IN_STOCK(在库)。
- 入库单创建时初始状态为
10.4 成色变化
归还质检或退货质检后如发生成色变化,资产归属的 仓存商品SKU 随质检结果迁移。
示例:
- 归还前:
iPhone 16 Pro / 黑色 / 256GB / 99新 - 质检后:
iPhone 16 Pro / 黑色 / 256GB / 95新
迁移结果体现在资产流水、归还入库明细、退货入库明细和库存聚合中。
11. WMS 集成
11.1 集成定位
WMS 作为外部仓储处理系统,负责:
- 接收采购入库结果
- 处理入库数据
- 生成资产编号
- 回传资产信息和处理结果
- 返回同步异常信息
商户端负责业务操作入口和数据录入;WMS 负责数据处理和资产编号生成。
11.2 采购入库同步
采购入库提交后,系统向 WMS 同步以下信息:
- 采购单号
- 采购入库单号
- 供应商
- 仓库
- 仓存商品 SKU
- 实收数量
- SN
- IMEI
- 成色
WMS 回传以下信息:
- 资产 ID
- 资产处理状态
- SN
- IMEI
- 仓存商品 SKU
- 异常原因
- 同步结果
11.3 同步状态
| 状态 | 含义 |
|---|---|
NOT_SYNCED | 未同步 |
SYNCING | 同步中 |
SYNCED | 已同步 |
FAILED | 同步失败 |
同步状态作为出入库单或资产的逻辑字段,用于跟踪 WMS 处理结果。
12. 落地口径
12.1 模块口径
采购管理:负责采购业务单。出入库管理:负责库存凭证。资产管理:负责单台设备与生命周期。WMS:负责数据处理、同步和资产编号生成。运营商品:读取库存投影,不直接维护库存事实。
12.2 页面入口口径
- 从
采购单详情跳转去收货/采购入库。 - 从
采购单详情跳转查看采购入库单。 - 从
出入库详情跳转查看相关资产。 - 从
资产详情跳转查看关联出入库单。
12.3 数据落点口径
- 采购意图落在
采购单。 - 收货执行落在
采购入库单。 - 资产编号由 WMS 生成并回传。
- 资产当前状态落在
资产。 - 库存变化事实落在
出入库单 + 出入库明细。 - 前台库存落在
运营SKU库存投影。
13. 架构结论
Phase 2 采购、仓储、资产域采用以下架构:
一套主数据:供应商、仓库、仓存SPU、仓存商品SKU一套业务单据:采购、租赁、售卖、维修、调拨、处置一套库存凭证:出入库单及明细一套资产实例:资产、状态、流水一套库存投影:面向运营商品的可售与可租库存
该架构将采购意图、库存凭证、资产生命周期和运营库存投影分层表达,使采购入库、出入库管理、资产管理和 WMS 集成具备清晰的数据边界与页面边界。


Comments | NOTHING
该文章已经关闭评论