Files
docs/归档/头程到尾程/头程下单到尾程出库全流程操作手册.md
T

539 lines
33 KiB
Markdown
Raw Normal View History

2026-09-18 16:48:32 +08:00
# 头程下单到尾程出库全流程操作手册
> 适用范围:企业客户头程下单,国内收货、测量、分柜、装柜、报关与出仓,跨区生成尾程订单,海外接柜入仓、库存、排车及尾程出库。
> 流程终点:海外出库单变为 `OUTBOUNDED`;排车场景同时以排车单 `DEPARTED` 为离仓事实。
> 当前口径:以现行服务端模块指引、页面入口和代码状态机为准。历史设计与当前实现冲突的地方集中列在第 11 节,旧文档不能直接作为操作依据。
> 不在主链内展开:换标、仓储转运、货物废弃、退货换标、异常退回、客户回访、海外采购和本土散板;这些能力在第 9 节说明如何接入出库。
2026-09-24 17:02:32 +08:00
> 当前流程基线:见[《头程到尾程流程节点梳理(重构版)》](../../头程到尾程流程节点梳理.md)。[《头程下单到尾程出库现状流程全景清单》](头程下单到尾程出库现状流程全景清单.md)仅保留旧版 AS-IS 证据;本文侧重一票主链如何按最新报关/送港并行流程实际操作。
2026-09-18 16:48:32 +08:00
## 1. 一张图看完整主链
```text
企业资料审核通过、资金账户可用
↓
客户创建头程订单草稿 → 提交订单 → 生成全局唯一入仓码
↓
平台审核订单 → 创建国内正式入库单、冻结申报与箱码事实
↓
国内仓收货 → 测量/称重 → 测量审核 → 进入待分柜
├─ 普通散货/FBA:直接进入分柜
└─ 一件代发:先逐箱清点、组托、封托,再进入分柜
↓
创建模拟柜/订舱 → 智能或人工排柜 → 预装确认
↓
国内 PDA 拣货装柜 → 五类证据和铅封 → 装柜完成 LOADED
2026-09-24 13:43:53 +08:00
├─ 报关线:通知报关行 → 客户资料 → 报关行回执 → 客户确认/打回重做
│ → 所有客户通过 → 整柜正式申报 → 查验/放行
└─ 送港线:拖车 → 离仓 → 送港/进港 → 甩柜/改配(如发生)→ 实际开船
2026-09-18 16:48:32 +08:00
↓
2026-09-24 13:43:53 +08:00
实际开船后进入海运节点:装船/离港 → 在途 → 到目的港 → 卸船 → 可提柜
2026-09-18 16:48:32 +08:00
↓
装柜完成事件跨区 → 海外生成 PENDING_ASSIGNMENT 尾程订单
↓
平台按柜预览并转换入仓计划 → 生成/绑定海外托盘资源
↓
海外 PDA 锁柜 → 三类签收照片 → FBA 按箱数 / OVERSEAS 逐箱收货
↓
整柜核平完成 → INBOUND_COMPLETED → 海外库存、托盘、库位和流水落账
↓
平台智能预排/排车 → 维护车辆及预约 → 转派送,生成 WAIT_OUTBOUND 出库单
↓
海外 PDA 扫托盘拣货并核平 → 发车 → 出库单 OUTBOUNDED / 排车单 DEPARTED
```
主链有三个不能混淆的“出库/出仓”:
2026-09-24 13:43:53 +08:00
1. 国内装柜完成:入库单为 `LOADED`,表示货已经装入国内出口柜;同时启动报关线和送港线。
2. 国内送港:送港线记录拖车、仓库离开、进港和甩柜;客户报关确认不阻断送港,进港不等于报关完成。
3. 海运起点:承运船舶真实开航后才进入海运节点,预计 ETD 不推进海运中。
4. 海外尾程出库:海外仓库存经排车/PDA 作业离仓,出库单为 `OUTBOUNDED`。
2026-09-18 16:48:32 +08:00
### 1.1 操作与交接总表
下表把每一步的人工操作、系统自动动作和下一个责任人放在一起。操作员完成当前步骤后,应以“系统结果”作为交接依据,不能只凭口头通知或按钮点击成功提示判断流程已经流转。
| 步骤 | 操作人/终端 | 人工操作 | 系统自动动作与数据结果 | 下一责任人 |
|---:|---|---|---|---|
| 1 | 企业客户 / Client | 新建订单,选择仓库、渠道和目的仓,填写货物,保存草稿 | 保存 `DRAFT` 和客户申报快照;不生成入仓码 | 企业客户 |
| 2 | 企业客户 / Client | 检查后点击“提交订单” | 校验企业资格、资金、仓库和渠道;生成固定入仓码,进入 `PENDING_REVIEW` | 平台订单运营 |
| 3 | 平台运营 / Admin | 在待审核列表查看详情或批量预览,点击审核通过 | Order 进入 `APPROVED`;Firstleg 建正式入库单和稳定箱码,主状态进入 `WAIT_MEASURE` | 国内仓操作员 |
| 4 | 国内仓 / 设备、Admin | 按入仓码收货,上传尺寸和称重图片,校正 OCR,提交审核 | 保存测量批次、原始值、修正值、图片和库位块预留 | 测量审核员 |
| 5 | 审核员 / Admin | 审核测量结果;异常时退回修正 | 普通订单进入 `WAIT_SPLIT`;一件代发进入 `WAIT_PALLETIZE` | 国内履约运营或 PDA |
| 6 | 国内 PDA | 一件代发逐箱清点、归托、封托 | 冻结真实 DP 托盘及 SKU/箱唛组成,核平后进入 `WAIT_SPLIT` | 国内履约运营 |
| 7 | 财务/运营、客户 / Admin、Client | 平台试算和发送费用;客户核对并确认 | 独立生成、发布和确认费用版本;不阻断待分柜主流程 | 国内履约运营 |
| 8 | 国内履约运营 / Admin | 创建模拟柜,选择候选,人工/智能排柜 | 生成稳定柜次、预装计划、分配明细和容量占用 | 订舱/柜务运营 |
| 9 | 订舱/柜务运营 / Admin | 建订舱草稿、补资料、放舱,关联柜次并录入真实柜号 | 冻结订舱和运输快照,建立订舱需求与柜次分配关系 | 国内履约运营 |
| 10 | 国内履约运营 / Admin | 核对预装清单并确认 | 固化预装快照,生成或开放国内 PDA 任务 | 国内 PDA |
2026-09-24 13:43:53 +08:00
| 11 | 国内 PDA | 扫箱/整托拣货,批量提交,拍五类证据和锁码,完成装柜 | 计划 `COMPLETED`、入库单 `LOADED`,发布最终实装事件并启动报关/送港两条线 | 报关/送港运营 |
| 12 | 报关运营 / Admin、Client | `LOADED` 后收集客户资料、发报关行、上传回执、发客户确认;打回则重做,所有客户通过后提交整柜正式申报 | 每客户确认轮次可追溯;整柜正式申报后记录查验/放行,不把回执上传当成客户确认 | 报关运营/客户 |
| 13 | 送港运营 / Admin | 独立安排拖车、离仓、送港和进港;容量不足记录甩柜/改配 | 写入 `DEPARTED_WAREHOUSE`、`PORT_RECEIVED` 或 `ROLLED_OVER`,不等待报关客户确认 | 船务/海外运营 |
| 14 | 船务 / Admin、第三方 | 只在承运船舶真实开航后查看/补录船节点 | 写入 `VESSEL_DEPARTED` 并进入海运节点;到 `PICKUP_READY` 后开放海外 PDA 候选 | 海外计划运营、海外 PDA |
2026-09-18 16:48:32 +08:00
| 15 | 海外计划运营 / Admin | 在尾程订单按柜预览阻断项并确认转换入仓计划 | `PENDING_ASSIGNMENT → INBOUND_PLANNED`;逐票建计划并生成/绑定托盘资源 | 海外 PDA |
| 16 | 海外 PDA | 选柜锁定,拍车牌/封签/开柜照片,确认签收 | 建立柜级收货会话,冻结实际接柜仓和操作员 | 海外 PDA |
| 17 | 海外 PDA | FBA 按 SKU+箱数收货,OVERSEAS 按箱唛逐箱收货,完成整柜 | 尾程进入 `INBOUND_COMPLETED`;生成库存余额、仓位、托盘、流水并回写国内 | 海外排车运营 |
| 18 | 海外运营 / Admin | 智能预排,选择托盘和车型,生成排车,维护车辆/预约 | 锁定托盘并生成 `PENDING_DEPARTURE` 排车单 | 海外运营、海外 PDA |
| 19 | 海外运营 / Admin | 在发车前点击“转派送”,填写派送信息和费用 | 生成一张 `WAIT_OUTBOUND` 出库单,并按目的仓拆分 `WAIT_DELIVERY` 派送单 | 海外 PDA |
| 20 | 海外 PDA | 扫托盘拣货、核平、完成拣货;待 `canDepart=true` 后点击发车 | 扫码事务扣减库存;发车后排车 `DEPARTED`、出库单 `OUTBOUNDED` | 派送运营/客户 |
易用性和数据流转的改造目标、优先级与验收指标见[《头程下单到尾程出库流程易用性与数据流转优化方案》](头程下单到尾程出库流程易用性与数据流转优化方案.md)。
## 2. 角色、终端与职责
| 角色 | 使用终端 | 主要职责 |
|---|---|---|
| 企业订单操作员 | Client | 新建/导入头程订单、保存草稿、提交、查看入仓码、查看与确认已发送费用 |
| 平台订单运营 | Admin | 审核订单、修订允许修改的申报信息、查看统一订单主状态 |
| 国内仓操作员 | Admin/测量设备 | 收货、尺寸测量、称重图片、OCR 校正、测量提交 |
| 国内履约运营 | Admin | 计费、分柜、模拟柜、订舱、预装、报关、国内出仓 |
| 国内 PDA 操作员 | 国内 PDA | 普通箱码拣货或一件代发整托拣货、装柜取证、铅封和最终完成 |
| 海外履约运营 | Admin | 尾程订单、按柜转换入仓计划、预计到仓、排车、转派送、出库与派送单核对 |
| 海外仓 PDA 操作员 | 海外 PDA | 柜号签收、卸柜入仓、排车拣货、普通/一件代发出库、发车 |
| 企业客户 | Client | 查看本企业尾程/派送结果;不操作平台排车和 PDA 作业 |
海外 PDA 操作员必须是平台内部 `OVERSEAS_WAREHOUSE_PDA_OPERATOR`,并且只绑定一个启用收货能力的实际海外仓。客户账号、平台普通管理员或国内 PDA 角色不能替代该身份作业。
## 3. 开始前必须准备的基础资料
### 3.1 客户与下单资格
- 企业账号可登录,企业资料已由平台审核通过。
- 当前用户具备创建、提交头程订单的权限。
- 客户资金账户可用;草稿保存不校验资金,提交时实际余额小于 0 会被拒绝。
- 国内收货仓、目的仓、物流渠道及需要使用的往来单位处于有效状态。
### 3.2 国内履约资料
- 价格簿、客户尺寸/计费规则已发布;缺少价格不应伪造费用。
- 柜型、渠道、订舱代理、拖车供应商等主数据可用。
- 国内 PDA 人员、仓库和设备已配置。
### 3.3 海外履约资料
- 实际海外收货仓必须为平台公共仓、类型 `OVERSEAS`、状态 `ACTIVE` 且启用 `RECEIVING`。
- 仓内存在可用库位和实物托盘。
- 海外 PDA 人员绑定上述唯一实际收货仓。
- 排车所需车辆、司机、预约信息以及派送费用录入条件已准备。
实际海外收货仓、国内来源仓、FBA/私人目的仓是三个不同概念,不能互相代填。
## 4. 阶段一:客户头程下单与平台审核
### 4.1 客户新建订单
入口:Client → 头程订单。
操作:
1. 点击新建订单,选择运输方式、国内收货仓、渠道和目的类型。
2. 按目的类型选择 FBA 仓、海外仓或填写私人地址;公共目的仓必须从有效主数据选择。
3. 填写提货/送货信息、客户参考号、预计时间及备注。
4. 录入至少一条货物明细,包含箱数、件数、重量、体积、SKU、品名等当前页面要求的字段。
5. 一件代发必须提供可冻结的 SKU/箱内明细,不能在后续扫码阶段用货名猜测 SKU。
6. 点击“保存草稿”,检查订单后再点击“提交订单”。
批量下单可使用中文 XLSX 模板,最多 50 行。导入成功只生成草稿,不会自动提交;操作员仍需逐票检查并提交。
系统结果:
- 草稿为 `DRAFT`。
- 提交成功后 Order 状态为 `SUBMITTED`,统一主状态展示为 `PENDING_REVIEW/待审核`。
- 提交时生成并固定全局唯一 `inboundCode/入仓码`;草稿阶段没有入仓码。
- 提交时重新校验企业资格、资金账户、仓库/目的仓和渠道;不能只相信页面下拉快照。
### 4.2 平台审核订单
入口:Admin → 统一订单/头程订单 → 待审核。
操作:
1. 用订单号、入仓码、客户或状态定位订单。
2. 打开详情,核对客户申报、货物、渠道、国内收货仓和目的仓。
3. 批量审核时先打开批量审核预览,逐票查看 `canApprove` 和阻断原因。
4. 如需修订,只修改当前状态允许的平台申报字段;不得改客户、国内收货仓、订单号、入仓码,也不得增删或重排货物行。
5. 点击审核通过。
系统结果:
- Order 进入 `APPROVED`。
- Firstleg 幂等创建正式国内入库单,沿用提交时生成的入仓码。
- 生成或补齐稳定箱码/箱唛映射;后续测量、国内 PDA 和跨区事件都复用这些事实。
- 统一主状态进入 `WAIT_MEASURE/待测量数据`。
操作门禁:待审核订单即使已经出现 Firstleg 准备中投影,统一列表仍必须显示待审核,不能绕过审核直接进入物理履约。
## 5. 阶段二:国内收货、测量、计费与待分柜
### 5.1 国内仓收货和测量
入口:Admin → 入库管理/统一订单 → 测量;第三方测量设备按入仓码上传。
操作:
1. 仓库按入仓码定位入库单。
2. 第三方设备或人工逐箱记录长、宽、高和箱数;第三方只能使用业务入仓码/箱码,不能传内部数据库 ID。
3. 上传至少一张称重图片。
4. 系统执行 OCR;操作员核对原始值、单位和置信度,必要时填写原因后人工修正。
5. 确认全部有效称重图片,确保总重量大于 0。
6. 提交测量审核;审核不通过时修正后重新提交,不能带病进入后续实物作业。
系统结果:
- 测量子流程可经历 `WAIT_MEASURE → MEASURING → MEASURE_PENDING`;审核结果、计费结果分别保存,不能混成一个状态字段。
- 测量审核通过后,统一主状态进入 `WAIT_SPLIT/待分柜`。
- 首张称重图片确认时,系统会尽力预留整票库位块;库位指引失败记录警告,但不能伪造成功资源。
### 5.2 费用处理
平台操作:
1. 依据客户规则、渠道、目的仓和价格簿试算。
2. 检查计费重量/体积、单价、附加费及费用明细。
3. 必要时按权限调整计费量或费用明细,提交审核并发布。
4. 将当前费用版本发送给客户。
客户操作:Client 订单详情 → 费用信息 → 核对并确认当前已发送版本。
当前主链口径:测量审核通过后即可进入 `WAIT_SPLIT`;费用是版本化的独立事实,不再阻断或回退主流程。客户确认和装柜完成同时满足后,费用版本最终冻结。不要再按旧文档把“发送费用”理解成唯一入库成功按钮。
### 5.3 一件代发分支
一件代发在测量审核后先进入 `WAIT_PALLETIZE`:
1. 系统按预计托数预生成 `DP` 托盘码。
2. Admin 打印托盘信息单;PDA 不负责连接打印机。
3. 国内 PDA 逐箱扫描稳定箱码,清点箱内全部 SKU,并归入现场托盘。
4. 逐托封托;参与订单的开放托盘必须全部完成。
5. 全部箱数与实际参与托盘核平后进入 `WAIT_SPLIT`。
一件代发托盘在后续智能装柜中是不可拆整托单元;不能按成员箱部分装柜或跳拣。
## 6. 阶段三:分柜、订舱、国内 PDA 装柜与出仓
### 6.1 建柜与排柜
入口:Admin → 货柜管理 → 送柜报关/智能装柜。
推荐操作顺序:
1. 创建内部模拟柜,选择正式装柜仓、计划渠道组、柜型、容量和限重;系统生成稳定 `containerBookingId` 和 `cabinetNo`。
2. 在智能装柜工作台按客户、入仓码、状态、到货日期等筛选候选。
3. 人工加入或使用智能推荐,将入仓单/箱数分配到柜次。
4. 核对容量、重量、渠道、同柜组和剩余箱数;按钮资格以服务端 `canAssign` 为准。
5. 生成并维护订舱草稿,补齐提单号、船名、航次、ETD、ETA 等资料后放舱为 `RELEASED`。
6. 港口取得真实柜号后,将模拟柜与已放舱订舱需求关联并录入 `containerNo`。
7. 在预装详情核对全部明细并确认预装。
允许待审核、待测量数据提前进入模拟排柜作为占位,但确认预装和启动真实 PDA 作业前,成员必须达到可履约状态。为了避免现有页面与后端历史口径差异,实际操作应在预装确认前补齐真实柜号;无论如何,最终装柜完成前必须有真实柜号。
### 6.2 国内 PDA 拣货和装柜
入口:国内 PDA → 拣货/装柜任务。
普通散货:
1. 领取柜次任务。
2. 按稳定箱码逐箱扫描;一个有效箱码只代表一箱。
3. 批量提交本次扫描;断网时不能正式提交,恢复后刷新服务端状态再重试。
4. 未完成项可暂时挂起,但必须填写异常原因;未核平不能最终完成。
一件代发:扫描托盘码或托盘内任一箱码定位整托,以 `PICK_PALLET` 整托确认,不得拆托拣货。
装柜证据:
2026-09-24 13:43:53 +08:00
- 空仓、半仓、满仓、锁仓、带锁码照五类证据和锁码文本;
2026-09-18 16:48:32 +08:00
- 同类可追加,错误证据作废并保留审计,不硬删除历史。
最终完成门禁:全部计划明细核平、五类有效证据齐全、铅封号存在且真实柜号已就绪。完成后装柜计划为 `COMPLETED`,来源入库单为 `LOADED`。
2026-09-24 13:43:53 +08:00
### 6.3 报关线与送港线
2026-09-18 16:48:32 +08:00
2026-09-24 13:43:53 +08:00
入口:Admin → 货柜管理 → 柜次详情;客户确认入口为 Client → 头程订单 → 报关资料。
2026-09-18 16:48:32 +08:00
2026-09-24 13:43:53 +08:00
**报关线**按客户案例推进:
2026-09-18 16:48:32 +08:00
2026-09-24 13:43:53 +08:00
1. `LOADED` 后通知报关行,按客户/入仓码收集资料并发送;
2. 授权人员上传报关行本轮回执,客户查看并确认;
3. 客户打回时保存原因,重新上传/替换资料,重新发送报关行并生成新回执轮次;
4. 柜内所有客户均确认后,冻结整柜资料并提交报关行正式申报;
5. 记录查验、不查验放行、补件/退回等海关结果。
2026-09-18 16:48:32 +08:00
2026-09-24 13:43:53 +08:00
**送港线**独立推进:
2026-09-18 16:48:32 +08:00
2026-09-24 13:43:53 +08:00
1. 校验 `LOADED`、真实柜号、订舱和拖车条件,安排车辆离仓、送港和进港;
2. 写入唯一 `DEPARTED_WAREHOUSE` 和 `PORT_RECEIVED` 事实;
3. 船舱不足时写入 `ROLLED_OVER`,保存原船次、改配船次、滚动次数和客户通知;
4. 送港线不等待客户报关确认,报关线也不等待送港完成。
2026-09-18 16:48:32 +08:00
2026-09-24 13:43:53 +08:00
只有承运船舶真实开航才写入 `VESSEL_DEPARTED` 并进入海运节点。预计 ETD、已离仓或已进港不能显示为海运中。
2026-09-18 16:48:32 +08:00
## 7. 阶段四:海运节点、跨区尾程建单和海外入仓
### 7.1 船节点推进
2026-09-24 13:43:53 +08:00
船节点任务在承运船舶真实开航后幂等创建,不能由操作员另造一套。标准实际节点按以下顺序单调推进:
2026-09-18 16:48:32 +08:00
`DEPARTED_WAREHOUSE → AT_ORIGIN_PORT → LOADED_ON_VESSEL → DEPARTED_ORIGIN_PORT → IN_TRANSIT → ARRIVED_DESTINATION_PORT → DISCHARGED_FROM_VESSEL → PICKUP_READY → PICKED_UP → EMPTY_RETURNED`
规则:
- 预计时间只增加预计事实,不推进最新实际节点。
- 实际节点不能重复、回退或越权覆盖。
- `PICKUP_READY` 是海外 PDA 待收柜的开放门禁。
- 实际 `EMPTY_RETURNED` 后查询任务停止。
平台可在 Admin → 船期信息/订舱详情/货柜详情查看,并在第三方数据缺失时按权限人工补录真实节点。
### 7.2 跨区生成尾程订单
国内装柜完成事件通过 Event Bridge 投递海外区域。当前正确结果是:
- 按最终实装数据生成尾程订单和货物冻结快照;
- 尾程订单状态为 `PENDING_ASSIGNMENT`;
- 建立 `FIRST_LEG` 在途库存快照;
- 保留来源订单、来源入仓码、柜号、目的类型、SKU/箱唛、头程托盘码和备注等事实;
- 不自动创建海外入仓计划。
若页面暂未出现,可等待异步事件收敛后刷新;不得直改海外数据库或手工伪造尾程订单。
### 7.3 平台按柜转换海外入仓计划
入口:Admin → 海外仓 → 尾程订单。
操作:
1. 在柜子工作台按柜号找到 `sourceContainerBookingId` 对应的整柜。
2. 打开柜级详情,核对柜内所有客户、订单、来源入仓码、目的仓和预计到仓时间。
3. 先执行“入仓计划预览”,查看按 FBA/一件代发/私人地址的分组、头程已有托数、海外补充托数、最终托数、阻断项和快照版本。
4. 阻断项为零后确认转换;前端不能自行计算托数或逐票拼装计划。
5. 转换成功后回到尾程订单/入库单核对每票独立计划、计划号、托盘码和实际接柜仓。
系统规则:
- 整柜锁定、重算、资源预留和逐票建计划是一次原子操作,重放不能生成第二批资源。
- 尾程订单推进到 `INBOUND_PLANNED`。
- 散货保留所有头程已有托盘码;海外计划托数更多时按同柜同 FBA 连续补码。
- 一件代发严格沿用国内封托结果,不能在海外计划中随意改托数。
- 预计到仓和来源入仓码是冻结事实,不允许人工改写。
- 计划或真实托盘资源未齐时,海外 PDA 不能接柜。
### 7.4 海外 PDA 柜号签收
前置:船节点已到实际 `PICKUP_READY`,计划和资源完整,当前操作员绑定正确实际海外收货仓。
入口:海外 PDA → 拆柜收货。
操作:
1. 在待卸货列表选择柜号,核对柜内所有入仓码、目的仓、托数和箱数。
2. 锁定柜号;未完成前不能切换其他柜,其他操作员也不能抢占。
3. 用真机依次拍摄车牌 `LICENSE_PLATE`、集装箱封签 `CONTAINER_SEAL`、开柜现场 `DOOR_OPEN`。
4. 三类照片齐全后点击“确认签收并开始收货”。
### 7.5 两种海外实收方式
FBA:
1. 选择 FBA 入仓码并扫描冻结 SKU。
2. 扫描真实托盘码。
3. 输入本次放入该托盘的箱数并确认。
4. 可分多次操作,直至该入仓码待收箱数为 0;不得超收。
OVERSEAS:
1. 扫描最终实装冻结箱唛,系统自动定位所属入仓码。
2. 扫描真实托盘码。
3. 逐箱确认;不能用输入箱数代替逐箱扫码。
4. 非本柜、未实装、已收或不存在的箱唛必须拒绝。
完成整柜:所有入仓码 `pendingPackages=0` 后,点击“完成整柜入库”。系统同事务生成库存余额、仓位、流水和托盘事实,尾程主流程进入 `INBOUND_COMPLETED`,并通过 Outbox 回写国内卸柜完成事实。
## 8. 阶段五:海外排车、PDA 拣货和尾程出库
本节以普通 FBA/私人地址库存的排车出库为主链。暂扣订单不能进入排车或出库;其他同柜订单不受影响。
### 8.1 平台创建排车
入口:Admin → 海外仓 → 排车列表 → 智能预排。
操作:
1. 从真实已完成入仓的计划或已收托盘加载候选。
2. 把托盘加入预排草稿;加入即锁定,移除或关闭草稿时释放。
3. 选择车型并检查托位和重量。页面当前提示:大车 30 托/40000 LB,小车 15 托/10000 LB;最终仍以服务端校验为准。
4. 点击“预排车”,生成正式排车单和正式托盘锁。
5. 在排车列表点击“编辑”,维护车牌、司机、联系电话、车队、预计发车/到达时间、FBA 预约号和预约状态。
6. 路线由已排托盘的目的 FBA 仓自动汇总,不能手工编造。
初始排车状态为 `PENDING_DEPARTURE`。未开始且未生成出库单时可移除托盘或取消;取消会释放托盘锁。
### 8.2 平台转派送
入口:Admin → 海外仓 → 排车列表 → 转派送。
可操作状态:`PENDING_DEPARTURE`、`PICKING`、`READY_TO_DEPART`,但必须在 PDA 发车前完成。
操作:
1. 填写预计派送时间、派送方式、提货方式、装车类型。
2. 按实际业务填写车队/快递、运单号、司机、电话、车牌、车型、车辆大小和预约账号。
3. 填写派送费用;按业务条件填写装车费、买约费用和卖家姓名。
4. 确认提交。
系统结果:
- 一张排车单生成一张车辆级出库单,状态 `WAIT_OUTBOUND`,类型 `DISPATCH_DELIVERY`。
- 按目的 FBA 仓/私人地址拆成一张或多张派送单,初始状态 `WAIT_DELIVERY`。
- 尾程订单记录出库单号、派送单号和对应子单状态。
- 相同排车单重复操作返回既有结果,不能重复建出库单。
### 8.3 海外 PDA 排车拣货
入口:海外 PDA → 排车拣货。
操作:
1. 打开本仓排车任务,核对排车单、车辆、托盘、目的仓和计划箱数。
2. 扫描托盘业务码;系统验证托盘属于当前排车、当前仓和当前客户库存位置。
3. 确认本托箱数,重复直至全部托盘和箱数核平。
4. 点击“完成拣货”。
状态结果:
- 首次成功扫码后任务进入 `PICKING`。
- 全部托盘核平后 PDA 任务为 `COMPLETED`,排车单为 `READY_TO_DEPART`。
- 库存扣减点是成功的 PDA 扫码拣货事务;发车只推进排车/出库事实,不得重复扣库存。
### 8.4 海外 PDA 发车并完成尾程出库
发车按钮只消费服务端返回的 `canDepart` 和 `departBlockReason`。必须同时满足:
- 车辆信息完整;
- PDA 拣货任务完成;
- 所有托盘和箱数核平;
- 排车单为 `READY_TO_DEPART`;
- 平台已经“转派送”;
- 关联出库单仍为 `WAIT_OUTBOUND`。
点击发车后:
- 排车单进入 `DEPARTED`,记录实际发车时间和已发箱数;
- 车辆级出库单进入 `OUTBOUNDED`;
- 释放排车托盘锁;
- 后续派送单继续在 Admin/Client 流转,派送不在海外 PDA 完成。
至此,“头程下单 → 尾程出库”主链完成。如果业务还要求末端签收,则继续在派送单上传签收资料,系统自动完成派送并向国内回写最终履约完成事实。
## 9. 非普通排车出库的分支
| 出库类型 | 如何进入 | PDA/系统终点 |
|---|---|---|
| 一件代发出库 | Admin 从已完成入仓且仍有可用 SKU/箱唛的库存位置创建;候选必须属于唯一客户和唯一海外仓 | 状态 `WAIT_PICK → PICKING → PICKED → OUTBOUNDED`;PDA 可逐箱,也可扫 DP 托盘码原子拣完整托剩余箱件 |
| 换标出库 | PDA 换标完工、仓库复核、客户确认后;卡车分支进排车,自提/快递直接建出库单 | 客户确认前禁止出库;PDA 完成后出库单 `OUTBOUNDED` |
| 仓储转运出库 | 客户申请,平台审核通过后生成待出库任务 | PDA 完成后转运单 `OUTBOUNDED`,尾程主单进入在途子状态 |
| 退货出库 | 从退货箱/SKU 可用库存创建 | 按服务端冻结箱唛和 SKU 实际拣出,不能自由填库存来源 |
| 派送异常退回 | 从原出库拣货事实选择可退明细 | 实收入真实托盘/库位,恢复库存后异常单完成、派送变 `RETURNED` |
出库列表统一状态包括 `WAIT_PICK`、`PICKING`、`PICKED`、`WAIT_OUTBOUND`、`OUTBOUNDED`、`CANCELLED`。只有尚未执行的 `WAIT_PICK/WAIT_OUTBOUND` 可取消。
## 10. 核心状态与业务编号对照
### 10.1 主状态时间线
| 阶段 | 关键状态 | 业务含义 |
|---|---|---|
| 客户下单 | `DRAFT` | 可编辑草稿,无入仓码 |
| 客户提交 | `SUBMITTED` / `PENDING_REVIEW` | 已生成固定入仓码,待平台审核 |
| 审核后 | `WAIT_MEASURE` | 国内正式入库单已建立,等待实测 |
| 一件代发组托 | `WAIT_PALLETIZE` | 等待逐箱清点、组托和封托 |
| 测量/组托后 | `WAIT_SPLIT` | 可进入真实分柜与预装 |
| 国内作业 | `LOADING` | 国内 PDA 拣货/装柜中 |
| 国内装柜完成 | `LOADED` | 装柜完成,但不等于国内离仓 |
| 海外尾程建单 | `PENDING_ASSIGNMENT` | 事件已建尾程订单,尚未转换入仓计划 |
| 海外计划完成 | `INBOUND_PLANNED` | 入仓计划和资源就绪 |
| 海外入仓完成 | `INBOUND_COMPLETED` | 海外库存、仓位和流水已生成 |
| 排车拣货完成 | `READY_TO_DEPART` | 待平台转派送/发车门禁收敛 |
| 海外出库完成 | `OUTBOUNDED` / `DEPARTED` | 货已离开海外仓,进入派送阶段 |
### 10.2 编号串联关系
| 编号 | 谁生成 | 用途 |
|---|---|---|
| `orderNo` | Order | 客户头程订单号 |
| `inboundCode` | Order 提交时 | 跨国内入库、装柜、海外尾程的稳定业务关联码 |
| `containerBookingId` | Firstleg 建柜 | 柜级稳定内部业务身份,跨区事件和海外整柜聚合使用 |
| `cabinetNo` | Firstleg 建模拟柜 | 平台可见柜次号 |
| `containerNo` | 港口取得后录入 | 真实集装箱号,PDA 和船运现场识别使用 |
| `loadingPlanId` | Firstleg 建柜/预装 | 国内预装、PDA 和装柜清单关联 |
| `palletNo` | 国内/海外资源服务 | 现场托盘扫描身份;一件代发与散货生成规则不同 |
| `planNo` | Lastleg 转换计划 | 海外入仓计划号 |
| `dispatchNo` | Lastleg 预排 | 海外排车单号 |
| `outboundNo` | Lastleg 转派送/独立出库 | 海外出库单号 |
| `deliveryNo` | Lastleg 转派送 | 按目的仓拆分的派送单号 |
页面不得用内部数据库 ID 代替这些业务编号。编号缺失时应显示“—”,不能拿别的单号冒充。
## 11. 当前统一口径与旧文档差异
1. 费用不再阻断待分柜。旧测量文档把“发送费用给客户”写成入库成功节点;当前 Firstleg 口径是测量审核通过后直接进入 `WAIT_SPLIT`,费用独立版本化。
2. 跨区事件不自动建海外入仓计划。旧海外验收手册曾写“装柜完成事件直接生成入仓计划”;当前只生成 `PENDING_ASSIGNMENT` 尾程订单,平台必须按柜预览并确认转换。
2026-09-24 13:43:53 +08:00
3. `LOADED` 只校验物理装柜。报关线按客户回执确认、整柜正式申报和海关结果推进;送港线按拖车、离仓、进港和甩柜推进,两条线互不替代。
4. 只有实际开船才进入海运节点。`DEPARTED_WAREHOUSE` 和 `PORT_RECEIVED` 是送港事实,`ROLLED_OVER` 是船次异常,预计 ETD 不推进海运中。
2026-09-18 16:48:32 +08:00
5. 真实柜号最迟时点存在历史指引差异。当前代码允许在 `EDITING/LOADING` 补录,但最终 PDA 完成前必须存在;为避免页面入口差异,正式操作统一要求预装确认前补齐。
6. 尾程主状态与子单状态分开。入仓后主流程固定在 `INBOUND_COMPLETED`,排车、出库、派送、换标和转运的精确状态保存在子单,不得互相覆盖。
## 12. 异常处理和禁止绕过事项
- 订单提交失败:先检查企业审核、资金账户、仓库/目的仓和渠道,不要通过保存草稿伪装已提交。
- 测量失败:修正尺寸/称重证据后重新提交;未确认图片、总重为零和重复箱码不得放行。
- 排柜失败:以 `canAssign`、剩余箱数、容量、同柜组和版本冲突原因处理,不从前端强塞分配。
- 国内 PDA 版本冲突:刷新任务和库存快照;不能重复使用旧 token 或旧版本继续提交。
- 国内出仓失败:逐项查看服务端门禁;不以人工改状态、改数据库或伪造船节点解决。
- 跨区未建单:先检查事件 Outbox/Event Bridge/Inbox 和幂等结果;不手工补海外订单。
- 海外 PDA 看不到柜:依次检查实际 `PICKUP_READY`、整柜计划资源、操作员绑定仓、柜是否被锁定。
- 海外收货不平:按入仓码核对计划数、实收数、箱唛/SKU 和托盘;未核平不能完成整柜。
- 排车不能发车:直接展示 `departBlockReason`,检查车辆、拣货核平、`READY_TO_DEPART` 和 `WAIT_OUTBOUND` 出库单。
- 所有写操作都应携带服务端版本和幂等键;超时后先查结果,不能换新键盲目重复操作。
- 不通过数据库直改、浏览器调用 internal 接口、跨客户 ID 或内部主键跳过正常业务流程。
## 13. 一票到底的验收清单
- [ ] 企业资料审核通过,提交时资金账户通过校验
- [ ] 客户订单从草稿成功提交并生成唯一入仓码
- [ ] 平台审核通过,正式国内入库单和箱码事实已建立
- [ ] 尺寸、称重、OCR 修正和测量审核完整
- [ ] 普通订单进入 `WAIT_SPLIT`;一件代发先完成组托再进入 `WAIT_SPLIT`
- [ ] 模拟柜、订舱、真实柜号、预装计划和订单分配关系一致
- [ ] 国内 PDA 全部拣货,五类证据和铅封齐全
- [ ] 装柜计划 `COMPLETED`,来源入库单 `LOADED`
2026-09-24 13:43:53 +08:00
- [ ] 每个客户完成“资料→报关行回执→客户确认”,打回客户已重新上传、重新发送并生成新回执
- [ ] 所有客户确认后,整柜资料已提交报关行正式申报,并记录查验/放行结果
- [ ] 送港线已记录 `DEPARTED_WAREHOUSE`、`PORT_RECEIVED` 或 `ROLLED_OVER`
- [ ] 承运船舶实际开航后才生成 `VESSEL_DEPARTED` 和船节点任务
2026-09-18 16:48:32 +08:00
- [ ] 实际船节点到 `PICKUP_READY` 后海外 PDA 才看到柜号
- [ ] 海外只先生成 `PENDING_ASSIGNMENT` 尾程订单,平台按柜转换计划成功
- [ ] 海外 PDA 三类签收照片齐全,FBA/OVERSEAS 按正确模式实收
- [ ] 整柜所有入仓码核平,尾程主流程 `INBOUND_COMPLETED`
- [ ] 库存余额、托盘、库位和流水一致,国内收到卸柜回写
- [ ] 排车托盘来源真实且未暂扣,车辆和预约信息完整
- [ ] 平台转派送生成一张 `WAIT_OUTBOUND` 出库单和按目的仓拆分的派送单
- [ ] 海外 PDA 拣货核平,服务端 `canDepart=true`
- [ ] 发车后排车单 `DEPARTED`、出库单 `OUTBOUNDED`,库存与出库数量守恒
## 14. 主要事实来源
- `docs/业务快速索引.md`
- `docs/订单与客户/订单与客户头程订单闭环设计.md`
- `docs/入库测量与计费/入库测量与计费需求优化版-v2-测量计费入库主流程.md`
2026-09-24 17:02:32 +08:00
- `docs/国内货柜履约/归档/货柜管理全链验收矩阵-2026-08-13.md`
2026-09-18 16:48:32 +08:00
- `docs/海外仓业务/README.md`
- `docs/海外仓业务/虫虫出海全流程人工验收手册.md`
- `baiyue-firstleg/order/AGENTS.md`
- `baiyue-firstleg/firstleg/AGENTS.md`
- `baiyue-firstleg/lastleg-service/AGENTS.md`
- `apps/admin-web/src/modules/overseas-warehouse/AGENTS.md`
- `apps/pda-overseas-uniapp/AGENTS.md`
本文用于统一业务操作和评审口径;接口字段、权限码、并发版本和错误码仍以对应 Controller、DTO、OpenAPI 与服务端状态机为最终依据。
2026-09-24 17:02:32 +08:00