外观
发货单生命周期总览
本文详细介绍发货单从创建到完成的完整状态流转,理解每个状态的含义和可执行的操作。
五大状态
一张发货单的生命周期包含 5 个状态:
| 状态 | 含义 | 谁操作 | 可做什么 |
|---|---|---|---|
| 草稿 | 正在编辑,尚未发货 | 发货方 | 随意编辑所有内容 |
| 已发货 | 已确认发货,待收货 | 发货方 | 收货方可验货,发货方可取消(未验货时) |
| 已验货 | 收货方验货完成 | 收货方 | 数据锁定,进入对账 |
| 已完成收货 | 收货方签字确认收货 | 收货方 | 可进入对账和回款阶段 |
| 已取消 | 发货单已取消 | 发货方 | 草稿和已发货(未验货)均可取消 |

状态流转详解
草稿 → 已发货
触发条件:发货方点击「确认发货」
系统动作:
- 发货单状态变为「已发货」
- 为每个箱子生成唯一二维码和箱单 PDF
- 库存扣减:实际库存减少,锁定库存释放
- 关键字段锁定:商品明细、数量、单价不可修改
注意:已发货后物流信息(运单号、快递公司)和备注信息均不可修改。如需修改,只能在发货确认前在草稿阶段完成。
已发货 → 已验货
触发条件:收货方完成所有箱子的验货(每个箱子都有验货记录)
系统动作:
- 发货单状态变为「已验货」
- 商品数量、单价、总金额在应用层和数据库层双重锁定
- 所有验货记录归档
锁定范围:全部业务数据不可修改。这是防止事后篡改的硬机制。
已验货 → 已完成收货
触发条件:收货方在发货单详情中完成签名确认收货
系统动作:
- 发货单主状态显示为「已完成收货」
- 后续可继续进行双方对账、回款登记和到账确认
草稿 → 已取消
触发条件:发货方主动取消(仅草稿状态可取消)
系统动作:
- 释放锁定的库存
- 发货单不可再操作
已发货 → 已取消
触发条件:发货方主动取消(仅限未验货的已发货单)
适用场景:
- 收货方临时不要了,货物已退回
- 物流发出后退回,收货方不配合验货
- 仓库已打包但客户取消订单
系统动作:
- 库存处理:用户可选择退回入库(库存回滚)或损耗处理(不做回滚)
- 物流状态标记为「已退回」
- 箱单二维码标记为已作废,扫码提示「该发货单已取消」
- 已分享的验货链接自动失效
- 操作记录保留取消原因
双轨状态说明
除了主状态外,发货单还有两条并行的状态轨道:
对账状态
| 状态 | 含义 |
|---|---|
| 未开始 | 验货未完成,对账未启动 |
| 对账中 | 一方已签字,等待另一方 |
| 已对账 | 双方签字确认完成 |
| 争议中 | 任一方发起争议 |
回款状态
| 状态 | 含义 |
|---|---|
| 未回款 | 尚未登记回款 |
| 回款待确认 | 收货方已登记回款,等待发货方确认 |
| 已结清 | 发货方确认到账,资金闭环 |
业务阶段
为了让列表和详情更容易理解,系统会在主状态之外展示「业务阶段」或「当前阶段」。常见阶段包括:
| 业务阶段 | 说明 |
|---|---|
| 待收货方认领 | 已发货,但收货方团队尚未认领 |
| 待验货 | 收货方已认领,但还没有开始验货 |
| 部分验货 | 已有部分箱子完成验货 |
| 验货异常 | 存在异常验货记录 |
| 待确认收货 | 全部箱子已验货,等待收货方签名确认 |
| 已完成收货 | 收货方已签名确认收货 |
| 待回款 | 双方已对账,等待收货方登记回款 |
| 回款待确认 | 收货方已登记回款,等待发货方确认到账 |
| 已结清 | 发货方已确认到账,资金闭环 |

查看状态变化记录
发货单详情页有「操作记录」区域,展示发货单业务审计时间线:
- 进入发货单详情页
- 向下滑动找到「操作记录」区域
- 查看每一步操作的时间、操作人、所属团队、操作类型和关键详情

常见问题
Q:已发货状态可以改回草稿吗?
A:不可以。状态流转是不可逆的(除了取消),这是为了确保数据一致性和可追溯性。
Q:从已发货到已验货要多久?
A:取决于收货方的验货速度。系统不做时间限制,但如果发货后长期未验货(如超过 30 天),建议主动联系收货方确认情况。对于无法继续验货的情况(如收货方不要了),发货方可以在详情页取消该发货单。
Q:已发货还能取消吗?
A:可以。只要没有箱子被验货,发货方可以取消已发货的发货单。取消时需选择库存处理方式(退回入库或损耗处理)。详见取消发货单。
Q:已完成收货后还能做什么?
A:已完成收货不是资金闭环结束。后续还可以进行双方对账、收货方回款登记、发货方确认到账。历史数据完整保留,可用于数据分析。
