Files
docs/头程到尾程流程节点梳理.md
T
2026-09-24 13:43:53 +08:00

42 KiB
Raw Blame History

头程到尾程流程节点梳理(重构版)

版本:V4 · 三大业务块与报关流程重构 · 2026-09-24

依据:用户提供的《头程到尾程流程节点梳理》节点图,以及本轮确认的目标流程。旧版六阶段文档和旧门禁表仅作为待修改材料,不作为本版业务规则来源。

文档性质:三大业务块的产品节点基线。本文同时定义客户展示节点、后台管理节点和真实明细节点;内部技术编号只用于迁移追踪,不改变三大块的产品结构。

配套:报关资料与船期价格接入梳理。本轮“报送”包含装柜后通知报关、客户资料收集、报关行回执、客户确认/打回重做、所有客户通过后的整柜正式申报和海关结果记录。

本轮已确认规则

  1. 费用不阻断物流主链。 客户未确认不阻断排柜、拣货或装柜。装柜完成后仍未确认的费用执行系统默认确认;已有客户确认保留原来源,不改成系统确认。默认确认不是客户点击,必须分别展示并保存来源、版本和触发时间。
  2. 装柜后报关和送港分两条并行线。 LOADED 后才通知报关行进入正式协同;客户资料、报关行回执、客户确认、整柜提交、海关查验/放行必须逐层记录。送港线可同时安排拖车、送港和进港,先后顺序不固定;送港完成不等于开船,报关完成也不等于已经开船。
  3. 两个主题一起交付。 资料清单、费用确认结果、报送进度必须由相同业务事实生成客户/后台节点,不交付仅有节点文案或仅有孤立上传页的半条流程。

以上为用户 2026-09-24 的确认。费用缺版本、部分装载的费用作用范围、正式申报合并条件等细项见第 10 节;不能把这些未确认细项当作用户已同意。

1. 先给结论

原图表达的是同一业务的三层展示映射,这个结构保留。需要补齐的是各节点的开始/完成条件和与报送的衔接:

  1. 步骤名称与完成结果需要区分。 “装柜完成”可作为未来里程碑,但排柜/订舱时不能把它标成已完成;执行中显示“装柜准备/装柜中”。
  2. 编号需要可追溯。 PNG 有两个编号 10,缺少 15,22 是空明细行,23/24 放在 19 前。保留原行映射,F 编号仅用于查找既有流程,不作为客户需要理解的新编号。
  3. 缺少数据交接。 没有明确订单号、入仓码、柜次号、真实柜号、尾程订单、入仓计划、库存、出库单和派送单在哪个节点生成、冻结或交接。
  4. 缺少门禁和异常恢复。 “异常”只有一个总类,没有区分资料缺失、状态未就绪、权限、版本冲突、库存冲突、外部等待和跨区失败,也没有说明谁处理、如何恢复。

本次比较基于用户提供的 PNG。仓库中的旧 SVG 不作为这张图片的替代来源;F01~F40 用于引用既有流程目录,不表示 40 个客户展示节点,也不意味着每一项都是必经动作。

本版采用三层结构:

  • 客户进度:只作为从权威状态计算出的只读展示,不单独写入第二套主状态;
  • 后台业务对象/状态:由 Order、Firstleg、Lastleg、Warehouse、Finance、File 等权威服务维护;
  • 明细动作/业务事实:客户上传、审核、扫码、称重、排柜、装柜、签收等具体操作,必须产生可追溯的结果和下一阶段输入。

2. 端到端阶段边界

阶段 节点范围 阶段目标 阶段出口 主要权威服务
阶段一:客户与订单 F01~F07 企业具备下单资格,订单审核通过并生成正式国内入库单 APPROVED + 固定 inboundCode + WAIT_MEASURE IAM/Auth、Order、Warehouse、Finance
阶段二:国内到仓与测量 F08~F13 箱码、实测、费用和一件代发组托事实准备完成 普通订单/一件代发均进入 WAIT_SPLIT Firstleg、Warehouse、Finance、File
阶段三:国内装柜与出仓 F14~F23 完成分柜、订舱、PDA、装柜证据、报关和国内离仓 LOADED,并产生 DEPARTED_WAREHOUSE Firstleg、File、Event Bridge
阶段四:海运与尾程计划 F24~F27 保存船节点、完成目的港协作,并生成海外尾程计划 PENDING_ASSIGNMENT → INBOUND_PLANNED Firstleg、Integration、Lastleg、Warehouse Overseas
阶段五:海外接柜与库存 F28~F33 完成接柜、实收、入库、库存和库内服务 INBOUND_COMPLETED + 可用库存 Lastleg、Warehouse Overseas、File
阶段六:排车、出库与派送 F34~F40 完成排车、出库、派送、异常回收和国内最终回写 OUTBOUNDED → DELIVERED → Order COMPLETED Lastleg、Order、Firstleg、客服

表中的编号用于定位和验收,不表示每个动作都必须串行。阶段二的费用,以及 LOADED 后的报关线和送港线可以并行;报关行回执、客户确认、正式申报、查验/放行、送港、甩柜和开船分别记录。真正阻断某一条线的条件以该线的服务端门禁和阶段交接表为准。

端到端主链如下。换标、转运、废弃、退货、异常退回是受控分支,不应把分支节点直接塞进主链状态。

flowchart LR
  A[客户准入与下单\nF01-F07] --> B[国内到仓测量计费\nF08-F13]
  B --> C[分柜装柜与国内出仓\nF14-F23]
  C --> D[海运目的港与尾程计划\nF24-F27]
  D --> E[海外接柜入仓与库存\nF28-F33]
  E --> F[海外排车出库派送\nF34-F40]
  B -.一件代发组托.-> C
  E -.换标/转运/废弃/退货.-> F
  F -.异常退回.-> E

3. 三大业务块与现行六阶段的关系

你们的产品展示可以固定为三大块,六阶段继续作为后台实施和验收拆分。两者是不同层级:三大块回答“客户现在在哪一段”,六阶段回答“哪个服务、哪个对象、哪个节点在执行”。

产品展示块 客户看到的范围 对应现行 F 节点 推荐块边界 块出口
头程下单 客户下单、订单审核、国内到仓、测量、计费、确认、组托、等待分柜 F01~F13 从企业具备下单资格到订单具备排柜条件 普通订单 WAIT_SPLIT;一件代发完成封托后 WAIT_SPLIT
海运(货柜) 排柜、订舱、拖车、装柜、报关、国内出仓、海运、目的港清关/提柜、尾程计划 F14~F27 从建立柜次到海外尾程计划准备完成 INBOUND_PLANNED;船节点另有 PICKUP_READY 等事实
尾程入库和派送 海外接柜、拆柜实收、入库、库存服务、排车、出库、派送、异常和回写 F28~F40 从海外 PDA 认领待收柜到派送完成和订单最终回写 DELIVERED;全部有效入库单完成后 Order COMPLETED

因此,原图的“国内头程”不能直接等同于第一大块:它把 F14~F23 的国内货柜履约也放进了同一视觉区域。建议产品上仍使用三大块,但把“国内到仓/测量/计费/组托”归入“头程下单”,从“排柜”开始进入“海运(货柜)”。

三大块内部继续显示三种信息:

展示层 图中对应列 正确用途 是否写入独立状态
产品阶段 阶段 头程下单、海运(货柜)、尾程入库和派送 否,作为导航/分组
客户进度 客户进度节点 展示客户当前所处的大步骤、下一步和阻断原因 否,由 Order/Firstleg/Lastleg 状态投影
后台管理节点 后台管理节点 展示当前业务对象的状态栈,例如订舱、装柜计划、派送单 各对象按自己的权威服务维护
真实明细节点 明细节点 展示具体动作、时间、操作者、业务号、证据和结果 产生事实、审计和事件
异常节点 异常节点 展示 blockerCode、负责人和恢复动作 作为正交阻断,不覆盖主状态

4. 原图与当前流程的差异

4.1 “头程下单”范围不一致

原图第一段从“客户下单”一直画到“装柜完成”,把以下内容放在一个“国内头程”里:

下单 → 审核 → 到仓 → 测量 → 客户确认 → 报关资料 → 排柜 → 订舱 → 国内拖车 → 装柜

当前流程文档把它拆为:

  • F01~F07:客户准入、下单、提交、审核和正式入库单;
  • F08~F13:到仓、测量、费用、HOLD、一件代发组托;
  • F14~F23:排柜、订舱、拖车、PDA、装柜、报关和国内出仓。

这不是业务冲突,而是展示粒度不同。三大块可以保持“头程下单”这个产品名称,但后台必须保留 F01~F23 的对象和门禁。

4.2 客户确认在原图中像硬门禁,当前规则是并行事实

原图的顺序是:

计算数据推客户 → 待客户确认 → 已确认数据 → 上传报关资料/排柜

当前规则是:

  • F09/F10 负责实测和测量审核;
  • F11 负责费用试算、发布和客户确认;
  • 费用确认是版本化并行事实,不自动阻断 WAIT_SPLIT;
  • 目标规则为:装柜完成后,当前有效费用已由客户确认或系统默认确认时冻结;缺失费用不能伪造确认。

本轮已确认:不阻断。 装柜前显示“费用待确认”并行待办;装柜完成后未确认的执行系统默认确认,展示“费用已确认(装柜默认确认)”。已由客户确认的保留“客户确认”。确认对象须包含费用版本;实际计费数据、未确认费用、报关资料不互相代确认。缺少有效版本、未发送版本和部分装载范围见第 10 节。

4.3 报关资料从装柜完成后正式启动

原图把“上传报关资料”放在排柜前,这与当前实际操作不一致。当前主流程是 LOADED 后通知报关行,再启动客户资料收集和回执确认:

节点 发生时间 作用
装柜完成通知报关 LOADED 事件产生后 以最终实装清单通知报关行,建立本柜报关批次
客户资料与回执确认 通知报关后 收集每个客户资料,发送报关行;报关行出回执后发客户确认,客户打回则重新上传并生成新回执
整柜正式申报 柜内所有客户均确认后 将整柜资料提交报关行确认,由报关行正式申报;随后记录查验、不查验放行或其他海关结果

柜前可以存在资料准备或历史附件,但不进入本柜正式回执确认轮次,也不能显示为已通知报关。客户资料确认、整柜正式申报、海关放行、送港和开船分别记录。

4.4 “装柜完成”和“国内出仓”必须分开

原图中“装柜完成”后直接进入报关、海运。当前流程明确区分两条线:

  • LOADED:货物实际装入集装箱,装柜计划、PDA、照片、铅封和实装数量通过门禁;
  • 报关线:装柜后通知报关行,收集并发送客户资料,处理报关行回执、客户确认/打回,所有客户确认后再提交整柜资料,记录查验或放行;
  • 送港线:装柜后安排拖车、送港、进港;即使先送港,也不能把“已进港”当成已开船;容量不足时记录甩柜并保留换船历史;
  • 海运实际节点:只有承运船舶真实开航后,才从送港/报关结果进入海运在途节点。

这几类事实可以位于同一个“海运(货柜)”业务块,但客户当前节点不能全部叫“海运中”:报关处理中、送港中、已进港、甩柜和待开船分别展示,实际开船后才显示海运在途。预计 ETD 不能自动点亮已开船节点。

4.5 “清关/提柜/到仓”在原图中被压成连续动作

原图的“清关 → 海外提柜/送仓 → 入库”容易让人误以为提柜就等于到仓。当前规则区分:

  • PICKUP_READY:目的港清关完成并可提柜;
  • PICKED_UP:码头实际提柜;
  • 预计到仓:平台按柜级日期维护并锁定;
  • 实际到仓:海外 PDA 第一次开始收货时产生的 receiving_at;
  • INBOUND_COMPLETED:全柜实收核平、库存入账和托盘/库位完成。

因此三大块里可以展示“海运中/待入库”,但不能用“已提柜”推进客户的“已入库”。

4.6 尾程入库和派送的细节比原图更多

原图的“入库”覆盖了待拆柜、海外拆柜收货和入库;“派送”覆盖了转派送、出库、拣货、发车和签收。当前流程还必须保留:

  • F26/F27:跨区尾程订单和入仓计划转换;
  • F30:库存余额、托盘、库位和库存流水;
  • F31~F33:盘点、移库、暂扣、换标、转运、废弃和退货库存;
  • F35:排车转换为车辆级出库单和目的地级派送单;
  • F37:一件代发、换标、转运和退货独立出库;
  • F39:拒收/部分拒收后的异常退回和原出库库存恢复。

这些节点可以在客户页面折叠到“入库处理中”“库存服务”“派送处理中”,但不能从后台真实明细中删除。

4.7 原图的异常列需要变成可执行的阻断模型

原图只有“查验/甩柜”“查验/扣货”“拒收、部分拒收”等零散异常。当前统一模型要求每个异常带有:

blockerCode / 责任人 / 恢复动作 / 是否可重试 / 业务号 / 发现时间 / 证据

例如:

原图异常 当前应落的异常模型
查验/甩柜 EXTERNAL_WAIT 或 BUSINESS_HOLD,关联柜次、船节点、资料和处理人
查验/扣货 BUSINESS_HOLD,阻断后续物理履约,解除必须有凭证
PDA 无法提交 STATE_NOT_READY、VERSION_CONFLICT 或 ASYNC_RETRYABLE,不能只显示“失败”
拒收/部分拒收 F39 异常单,退回数量来自原出库事实,并恢复对应库存
跨区消费失败 ASYNC_RETRYABLE 或 ASYNC_PERMANENT,保留 Inbox/Outbox 和死信证据

5. 客户进度投影

客户看到的是“当前进度”和“下一步动作”,后台继续保留各单据自己的精确状态。客户进度不能覆盖订单、入库单、柜次、尾程订单或派送单的权威状态。

权威事实 客户进度展示 下一步动作 说明
DRAFT 草稿 完善并提交订单 不生成入仓码,不进入物理履约
SUBMITTED/PENDING_REVIEW 待平台审核 等待审核或补充资料 页面展示阻断原因,不允许客户修改受限字段
APPROVED/WAIT_MEASURE 待入仓/待测量 送仓或等待仓库测量 正式入库单和入仓码已存在
MEASURING/MEASURE_PENDING 测量处理中 等待测量审核 设备原值、人工修正和证据分开保存
WAIT_PALLETIZE 待组托 一件代发国内清点、归托、封托 仅一件代发路径使用
WAIT_SPLIT 待分柜 等待排柜或平台安排柜次 费用是并行事实,不把订单退回计费状态
LOADING 装柜中 等待 PDA 拣货、证据和装柜完成 不能显示为已装柜
LOADED 国内已装柜 同时处理“报关确认中”和“送港中”两条子进度 真实柜号、实装快照和证据已冻结
DEPARTED_WAREHOUSE / PORT_RECEIVED 已送港/待开船 查看港口、船次和甩柜状态 已进港不等于已开船
VESSEL_DEPARTED / 海运实际节点 海运中 查看船节点和目的港进度 只有真实开船后才进入;不是海外已入仓
PENDING_ASSIGNMENT/INBOUND_PLANNED 海外待接柜 等待提柜、到仓和接柜 已建尾程单不代表已有库存
INBOUND_COMPLETED 海外已入仓 查看库存或发起后续服务 实收和库存流水完成
WAIT_OUTBOUND/OUTBOUNDED 出库处理中/已出库 等待派送或查看出库结果 出库和签收必须分开
DELIVERING 派送中 等待签收资料 仅发车不能完成派送
DELIVERED 已签收 等待其他分片/其他目的地完成 单票派送完成,不代表整单完成
Order COMPLETED 全部完成 无 同一订单全部有效入库单均完成后才推进

异常、待补件、外部等待、异步处理中应作为同一进度下的阻断徽标或下一动作,不得把“异常”替代主状态。

6. 节点总表

6.1 阶段一:客户与订单(F01~F07)

编号 客户进度 后台对象/状态 明细动作 关键输出与下一节点 主要门禁/异常 责任端
F01 待准入 企业资料、成员和资格 注册、维护企业资料、上传资质、平台审核 企业具备下单资格 资料未审核只能保存,不能提交订单 Client/Admin/IAM
F02 可下单准备 仓库、渠道、价格、目的仓主数据 维护国内收货仓、目的仓、渠道、价格和客户资格 下单页读取当前有效主数据 主数据停用、Finance 不可用或权限不足时提交失败 Admin/Warehouse/Finance
F03 草稿 Order DRAFT 单票选择履约类型、交货方式、仓库、渠道、目的地和货物 草稿订单,可继续编辑 客户范围来自登录态;不接受页面传入客户 ID 作为授权 Client/Order
F04 批量草稿 批量导入任务 下载动态模板、上传 XLSX、逐行校验 部分成功或整批原子创建 DRAFT 模板过期、行错误、文件超限;不绕过提交门禁 Client/Order
F05 待审核 Order SUBMITTED/PENDING_REVIEW 客户提交订单,服务端重查资格、资金、仓库、渠道和货物 生成固定 inboundCode 和时间线 重复提交返回原结果,不重复生成入仓码 Client/Order/Finance
F06 草稿/可取消 Order 编辑或取消动作 修改草稿、按状态取消、查看取消原因 更新草稿或 CANCELLED 已进入物理履约后不能客户自助取消 Client/Order
F07 已审核 Order APPROVED;Firstleg 正式入库单 平台审核、有限申报修订、创建正式入库单和箱码 固定 inboundCode,进入 WAIT_MEASURE 不得修改客户、订单号、入仓码、货物行身份 Admin/Order/Firstleg

6.2 阶段二:国内到仓、测量与组托(F08~F13)

编号 客户进度 后台对象/状态 明细动作 关键输出与下一节点 主要门禁/异常 责任端
F08 待入仓/到仓中 国内入库单、稳定箱码 按入仓码定位,逐箱核对到货、缺箱、多箱和错码 实际到仓箱码事实 不得临时造箱码;错码先隔离 Admin/仓库/Firstleg
F09 测量处理中 测量批次和称重证据 设备或人工采集长宽高、重量、图片、OCR 原值和修正原因 MEASURE_PENDING 测量批次 重复事件幂等;有效称重证据和单位必须完整 设备/Admin/Firstleg/File
F10 待审核/待分柜 测量审核、计费来源 审核箱数、尺寸、重量、证据,生成初始计费快照 普通进入 WAIT_SPLIT;一件代发进入 WAIT_PALLETIZE 审核不通过需回到测量修正;不能直接放行带病数据 Admin/Firstleg
F11 费用处理中 费用版本、价格簿、确认来源 试算、调整、审核、发布、客户确认或装柜默认确认 形成可追溯费用版本和确认来源 费用不阻断 WAIT_SPLIT;客户未确认不阻断排柜/装柜,装柜完成后只确认对应已装范围的当前有效已发布版本 Admin/Client/Finance
F12 国内异常/HOLD HOLD 记录和解除记录 发起扣货、上传凭证、按权限解除 阻断或恢复后续物理履约 已拣货、装柜或出仓后禁止普通 HOLD/解除 Admin/Firstleg/File
F13 一件代发待组托 WAIT_PALLETIZE、DP 托盘 PDA 扫箱、清点 SKU、归托、封托,形成来源托盘 全部封托核平后进入 WAIT_SPLIT 开放托盘、SKU 不完整、数量不一致时不能完成 PDA/Admin/Firstleg

6.3 阶段三:国内分柜、装柜与出仓(F14~F23)

编号 客户进度 后台对象/状态 明细动作 关键输出与下一节点 主要门禁/异常 责任端
F14 待分柜 模拟柜、containerBookingId、预装计划 创建模拟柜、选择柜型/容量/限重,智能或人工排柜 柜次、预装明细和分配版本 校验剩余数量、柜型、重量、渠道、组锁和版本 Admin/Firstleg
F15 待订舱 订舱草稿 维护提单号、船名、航次、ETD/ETA、运输条款和附件 订舱 RELEASED 资料不完整不得放舱;订舱不替代柜次 Admin/Firstleg
F16 待拖车/拖车中 国内订舱级拖车单 选择供应商、维护计划装柜时间、提柜/送柜资料和邮件 拖车任务及费用事实 不与目的港拖车或海外派送排车混用;发信失败可重试 Admin/Firstleg
F17 待真实柜号 柜次与订舱分配 关联放舱需求,录入并校验真实 containerNo 柜次具备正式作业身份 柜号唯一、柜型/容量/仓库/渠道必须一致 Admin/Firstleg
F18 预装确认 预装计划 EDITING/LOADING 核对入仓码、箱数、托盘,确认预装,受控增减明细 PDA 任务和任务版本 已拣数量不可减少;变更使旧 PDA 版本失效 Admin/Firstleg
F19 装柜中 PDA 拣货任务 领取任务、按箱码扫描;一件代发按 DP 整托扫描;批量提交 扫描草稿和服务端拣货结果 S0500、批量契约、版本冲突、库存快照或回滚失败均阻断终态 国内 PDA/Firstleg
F20 装柜中 装柜证据、铅封 上传空仓、半仓、满仓、锁仓、带锁码照五类证据及锁码文本 冻结证据和铅封事实 每类至少一张有效照片;错误图片作废不硬删 PDA/Admin/File
F21 国内已装柜 装柜计划 COMPLETED、入库单 LOADED 服务端复核实装数量、柜号、证据、异常和版本,必要时执行一次分片;对已装范围触发费用默认确认,并同时通知报关线和送港线 最终实装箱码/托盘/SKU 快照,写跨区 Outbox,费用保留 SYSTEM_AUTO_AT_LOADED 或客户确认来源 数量守恒;有未解决异常、缺证据或缺真实柜号时拒绝;无有效费用版本不得伪造确认;不等待报关客户确认或送港完成 PDA/Admin/Firstleg
F22 报关确认中/待重做/查验中 报关资料包、客户确认轮次、整柜申报批次 LOADED 后通知报关行;逐客户收集资料、发送报关行、接收回执、发客户确认;客户打回则重传资料并生成新回执;全部客户通过后提交整柜资料,记录正式申报、查验或放行 客户资料确认、整柜正式申报、查验/放行事实 客户未确认只阻断报关线的整柜提交,不阻断送港;回执上传不等于客户确认;查验/放行不回写覆盖客户确认轮次 Client/Admin/Firstleg/File
F23 送港中/已进港/甩柜待处理 送港任务、港口进场、船次分配、甩柜记录 LOADED 后独立安排拖车、送港和进港;容量不足时记录甩柜、改配船次和客户通知;实际离仓只记录事实 DEPARTED_WAREHOUSE、PORT_RECEIVED、ROLLED_OVER,满足条件后等待实际开船 不等待客户报关确认才允许送港;进港不等于开船;预计 ETD 不得推进海运在途 Admin/Firstleg/Carrier

6.4 阶段四:海运、目的港与尾程计划(F24~F27)

编号 客户进度 后台对象/状态 明细动作 关键输出与下一节点 主要门禁/异常 责任端
F24 待开船/海运中 VESSEL_DEPARTURE、CarrierScheduleQuery、标准船节点 送港和报关条件具备后,只有承运船舶实际开航才写入海运起点;继续保存装船、离港、在途、到港等预计/实际时间 VESSEL_DEPARTED 后的海运轨迹事实 只用 actualAt 推进;甩柜、查验、未放行或港口异常保持独立阻断;实际还空后停止查询 Admin/Firstleg/Integration
F25 目的港处理中 清关、码头拖车、提柜、预计到仓、还空 维护清关资料、选择海外车队、发送提柜邮件、确认提柜和还空 PICKUP_READY、PICKED_UP、预计到仓和还空事实 预计到仓不等于实际到仓;车队邮件顺序投递且可重试 Admin/Firstleg
F26 海外待接柜 尾程订单、PENDING_ASSIGNMENT、FIRST_LEG 在途库存 生产 FIRST_LEG_LOADING_PLAN_COMPLETED V3,Event Bridge 投递,Lastleg Inbox 幂等消费 同柜尾程订单和冻结实装快照 事件 ID、版本、来源、哈希和业务键校验;整柜事务失败则整体回滚 Firstleg/Event Bridge/Lastleg
F27 待生成入仓计划 柜级工作台、INBOUND_PLANNED 按 sourceContainerBookingId 聚合,维护每票托数/属性,整柜原子转换 每票入仓计划、预计到仓快照和资源锁 不能用前端分页拼柜;预计到仓缺失或计划不全时阻断 海外 Admin/Lastleg/Warehouse Overseas

6.5 阶段五:海外接柜、入仓与库存服务(F28~F33)

编号 客户进度 后台对象/状态 明细动作 关键输出与下一节点 主要门禁/异常 责任端
F28 待接柜/接柜中 柜级收货会话 海外 PDA 认领待收柜、核对柜号和国内装柜照片、上传海外签收照片 收货会话开始,产生实际到仓时间候选 仓库由 Token 固定;PDA 不接收仓库 ID,不允许切换柜号 海外 PDA/Lastleg
F29 入仓处理中 各入仓码实收批次 FBA 按箱数、海外仓逐箱、Dropship 按来源托盘/SKU 实收 每票实收数量和异常差异 不同收货形态不能混用;差异必须有原因和证据 海外 PDA/Lastleg
F30 海外入仓 收货会话、库存流水、INBOUND_COMPLETED 卸柜、核平所有计划、写库存余额/位置/托盘、发布整柜完成事件 可用海外库存、实际到仓时间和国内回写 全柜全部计划核平后只发布一次完成事件 海外 PDA/Lastleg/Warehouse Overseas
F31 库存可用 库存、托盘、库位、盘点流水 查询、盘点、整托移库、托盘组拆换绑、库存调整 可追溯库存余额和位置事实 客户、仓库、托盘和库存来源严格隔离;库存变更必须有流水 Admin/PDA/Lastleg/Warehouse Overseas
F32 库存暂扣 暂扣记录、库存资格 对单票库存发起暂扣、解除和查看原因 阻断或恢复排车/出库资格 暂扣只阻断对应票,不影响同柜其他客户;必须保留凭证和审计 Admin/Lastleg/File
F33 库内服务中 换标、转运、废弃、退货库存单据 客户申请、平台审核、PDA/仓库执行、生成新库存或待出库资格 受控进入排车或独立出库 不得把库存服务直接改成派送完成;退货库存与异常退回库存分开 Client/Admin/PDA/Lastleg

6.6 阶段六:海外排车、出库、派送与收口(F34~F40)

编号 客户进度 后台对象/状态 明细动作 关键输出与下一节点 主要门禁/异常 责任端
F34 待排车 排车草稿/正式排车、库存锁 选择合格托盘、车型、目的地,创建预排并转正式排车 PENDING_DEPARTURE 排车单 服务端重查库存、托盘、客户、仓库和草稿锁,不能跨客户拼单 海外 Admin/Lastleg
F35 待出库 车辆级出库单、目的地级派送单 排车转派送,生成 WAIT_OUTBOUND 和 WAIT_DELIVERY 出库/派送单、费用和 BOL 绑定 同一排车幂等;未转派送不能发车;费用不能重复生成 海外 Admin/Lastleg
F36 拣货/待发车 PDA 拣货任务、排车状态 扫托盘、核对箱数、完成拣货、执行发车 READY_TO_DEPART → DEPARTED,出库 OUTBOUNDED 不重复扣库存;库存版本冲突、漏托、车辆资料缺失时阻断发车 海外 PDA/Lastleg
F37 独立出库 一件代发、换标、转运、退货出库单 按箱唛/SKU/托盘执行独立出库,完成数量核平 独立出库 OUTBOUNDED 整托失败整托回滚;退货出库不能与异常退回恢复库存混用 Admin/海外 PDA/Lastleg
F38 派送中/已签收 派送单 WAIT_DELIVERY/DELIVERING/DELIVERED 开始派送、上传签收资料、按目的地单票完成派送 DELIVERED,写 OVERSEAS_DELIVERY_COMPLETED 无有效签收资料不能人工完成;一车多目的地不能互相代完成 Admin/Client/Lastleg/File
F39 异常退回 异常单、原出库来源、退回入库 创建拒收/部分拒收,按原出库事实选择退回数量,重新入仓 派送 RETURNED,库存恢复并写流水 退回数量不得超过原拣货;库存恢复、异常完成和回写必须同事务 Admin/Lastleg/Warehouse Overseas
F40 已完成/需回访 客户回访、国内入库单/Order 完成 记录回访和附件;消费海外完成事件,按全部有效入库单推进国内状态 入库单 DELIVERED;全部完成后 Order COMPLETED 重复事件不重复推进;部分装载或其他目的地未完成时订单不能完成 Admin/客服/Firstleg/Order

7. 关键业务对象与数据交接

7.1 编号关系

订单号 orderNo
  └─ 入仓码 inboundCode(订单提交时生成,贯穿国内与海外)
      └─ 国内入库单 sourceInboundId
          ├─ 稳定箱码 boxCode / 箱唛
          ├─ 柜次 containerBookingId / cabinetNo
          │   └─ 真实集装箱号 containerNo
          ├─ 海外尾程订单 sourceContainerBookingId + sourceInboundId
          │   └─ 入仓计划 planNo
          │       └─ 库存、托盘、库位
          └─ 海外出库单 outboundNo
              └─ 派送单 deliveryNo

业务人员使用业务编号定位;内部数据库 ID 只用于接口关联和诊断,不回退到页面展示。

7.2 服务权威边界

事实 权威服务 其他服务如何使用
客户、成员、登录态、权限 Auth/IAM 其他服务只消费认证身份和授权结果
订单、订单主状态、客户申报快照 Order Firstleg 通过固定 inboundCode 建立履约关系
国内入库、箱码、测量、柜次、订舱、拖车、装柜、报关、国内出仓 Firstleg Admin/Client/PDA 通过正式 API 操作
国内/海外共享仓库主数据 Warehouse 海外服务引用 warehouseId,不复制主档
海外尾程订单、计划、库存、排车、出库、派送 Lastleg 海外 Gateway 暴露给 Admin/Client/PDA
海外库位、实物托盘、资源锁 Warehouse Overseas Lastleg 通过契约申请和引用
费用、资金和账单 Finance 订单和测量只保存费用来源/版本
文件元数据、文件归属、权限和哈希 File 业务单据只保存合法文件引用

7.3 跨区域交接

交接事实 事件/方式 结果
国内装柜完成 FIRST_LEG_LOADING_PLAN_COMPLETED V3 Outbox → Lastleg Inbox 创建 PENDING_ASSIGNMENT 尾程订单、冻结实装快照和 FIRST_LEG 在途库存
国内实际离仓/送港 DEPARTED_WAREHOUSE、PORT_RECEIVED 保存仓库离开和港口进场事实;不直接进入海运在途
船舶实际开航 VESSEL_DEPARTED 船节点事实 启动海运船节点查询;不直接生成海外库存
海外卸柜完成 OVERSEAS_CONTAINER_UNLOADED 写实际到仓/卸柜事实、还空预警和相关回写
海外派送签收 OVERSEAS_DELIVERY_COMPLETED Firstleg 推进对应入库单 DELIVERED;全部有效入库单完成后 Order COMPLETED

所有事件必须包含事件 ID、版本、来源/目标区域、业务主键、聚合版本、Payload 哈希、幂等记录、重试和死信信息。浏览器不直接伪造跨区事件。

8. 统一门禁与异常模型

8.1 阶段交接硬门禁

交接 必须满足
订单 → 国内测量 企业资格、订单审核、正式入库单、固定入仓码和稳定箱码
测量 → 分柜 测量审核通过、数量和证据完整、无有效 HOLD;一件代发完成封托
分柜 → PDA 柜次/预装计划、真实柜号、订舱需求、任务版本和数量分配完整
PDA → LOADED 箱/整托核平、原子批量成功、无未解决异常、空仓/半仓/满仓/锁仓/带锁码照五类证据和锁码文本有效
LOADED → 报关协同 最终实装快照、报关批次和通知报关事件已生成;不等待送港,也不要求客户先确认
LOADED → 送港 真实柜号、订舱/拖车任务和装柜物理门禁通过;不等待客户报关确认
客户资料确认 → 整柜正式申报 柜内所有客户均确认当前报关行回执;每次打回都完成新资料版本和新回执轮次
送港/报关 → 船舶开航 已进港、承运船次有效,且港口/船公司要求的报关结果和 HOLD 条件满足;任一支线先完成不改变另一支线状态
LOADED → 海外尾程 真实柜次、最终实装快照、事件身份和跨区契约校验通过;先创建尾程订单和在途快照
船舶开航 → 海运事实 只接受承运方真实 actualAt;预计 ETD、已送港或已进港不得点亮海运在途
尾程订单 → 入仓计划 整柜聚合完整、预计到仓日期一致、每票计划和海外资源可处理
入仓 → 可用库存 柜级签收、实收差异处理、库存流水、托盘/库位和全部计划核平
排车 → 发车 出库/派送单已生成、库存锁有效、PDA 拣货核平、车辆资料完整
派送 → DELIVERED 对应派送单有效签收资料已保存,来源和目的地匹配

8.2 统一阻断字段

每个不可继续节点至少返回:

blockerCode
category
message
ownerRole
recoveryAction
deepLink
retryable
detectedAt

建议分类:DATA_MISSING、STATE_NOT_READY、PERMISSION_DENIED、VERSION_CONFLICT、RESOURCE_CONFLICT、BUSINESS_HOLD、EXTERNAL_WAIT、ASYNC_PROCESSING、ASYNC_RETRYABLE、ASYNC_PERMANENT、IRREVERSIBLE。

8.3 不可逆节点

节点 处理原则
已产生实际拣货/装柜事实 不通过普通取消或状态回退抹除历史,走专用异常或线下处理
LOADED 国内 Admin/PDA 不提供在线冲正或手工推进 DELIVERED
国内实际离仓 只能追加新的实际节点或异常事实,不回写成未离仓
海外库存已入账 通过库存事务、退回或调整单据处理,不直接改余额
已发车/已出库 不能靠取消恢复库存,必须走对应异常流程
已签收 不提供普通人工完成/撤销,异常需关联原派送事实

9. 开发拆分建议

第一组:先做国内 LOADED 纵向切片

覆盖 F14 → F23,同时补齐其上游最小输入 F08 → F13:

  • 修复国内 PDA pick 的 S0500;
  • 实现原子批量提交、幂等、版本冲突、库存快照和整批回滚;
  • 完成空仓、半仓、满仓、锁仓、带锁码照五类证据、锁码文本、作废和证据门禁;
  • 完成 LOADED 后通知报关、客户资料收集、报关行回执、客户确认/打回重做、整柜正式申报、查验/放行和送港/甩柜/开船两条线;
  • 实现费用默认确认:只针对已装范围的当前有效已发布版本,区分客户确认与 SYSTEM_AUTO_AT_LOADED,无有效版本不得伪造确认;
  • 真实 HTTP、PDA 真机和客户隔离验收通过后,才标记国内切片完成。

第二组:并行冻结跨区契约

只冻结节点、事件和消费者需要的最小合同,不等待海外所有页面完成:

  • FIRST_LEG_LOADING_PLAN_COMPLETED 的事件版本、业务键、实装快照和幂等;
  • Lastleg PENDING_ASSIGNMENT、柜级聚合和 INBOUND_PLANNED 转换;
  • OVERSEAS_CONTAINER_UNLOADED 与 OVERSEAS_DELIVERY_COMPLETED 的回写边界;
  • Gateway、服务身份、重试和死信证据。

第三组:再做海外接柜到派送

按 F28 → F30 → F34 → F38 → F40 贯通主链,再按需接入 F31~F33 和 F39 分支。海外船节点 F24~F25 与尾程作业保持独立状态,避免用“已清关/已提柜”冒充“已入仓”。

10. 进入开发前需要确认的事项

优先级 事项 不确认的影响 建议负责人
P0 全买单/退税/混合柜的客户确认、正式申报和海关结果 影响报关行回执轮次、客户打回、整柜提交、查验/放行和验收 产品 + 报关运营
P0 部分装载、换柜、拆柜的数量/UOM 和分片规则 影响子入库单、实装快照、库存和最终完成 产品 + Firstleg
P0 国内报关资料包、回执轮次和客户确认的生命周期 影响 File 类型、权限、报送批次、打回重做和整柜正式申报 产品 + 报关运营 + File
P0 送港、进港、甩柜和实际开船的事实模型 影响送港线、船次改配、客户通知和海运起点;不反向阻断 LOADED 产品 + 船务运营
P0 跨客户申报组是否允许合并、谁有授权、如何拆回客户 影响数据隔离、报关导出和回执归属 产品 + 权限负责人
P1 最晚提交时间、未绑定资料保留期和换柜后的资料重绑 影响资料包提醒和异常任务 产品 + 运营
P1 批量价格展示、可比口径、报价失效和导出权限 影响价格快照、客户隔离和批量接口 产品 + 财务
P2 正式结关、退税自动化和供应商船期自动查询范围 影响海外/国内边界和后续自动化排期 产品 + 船务/报关

未确认事项不得写成“已完成”或纳入当前切片的验收承诺;可以保留为阻断项、人工协同或后续扩展。

11. 评审结果记录

本版相对原图的主要调整:

  • 统一使用 F01~F40,去掉重复编号和阶段内跳号造成的歧义;
  • 将“客户进度”“后台对象/状态”“明细动作”“输出/门禁”拆开;
  • 将海运、目的港、海外接柜、库存、排车、派送拆成不同节点;
  • 增加编号、单据、事件和数据交接;
  • 将异常从单一“异常节点”改为分类阻断和恢复动作;
  • 明确 LOADED、DEPARTED_WAREHOUSE、INBOUND_COMPLETED、OUTBOUNDED、DELIVERED、COMPLETED 的区别;
  • 保留一件代发、部分装载、跨客户隔离、库存服务和异常退回等分支;
  • 将客户进度定义为只读投影,避免建立第二套可写全流程状态机。

本版可以作为下一轮产品、运营、仓库和技术联合评审的主表。评审时先逐行确认阶段出口、权威服务和硬门禁,再进入页面字段、API、数据库和验收任务拆分。

12. 原图标签到新节点的迁移摘要

原图标签不直接作为新节点名。以下映射用于评审旧页面、旧流程图和现有任务,标记“拆分”的标签必须回到对应 F 节点确认状态、输出和责任人。

原图标签/动作 新节点 处置 说明
客户下单、委托下单、快速下单 F03、F05 合并并区分入口/提交 入口变体不新增主链节点;提交统一生成固定入仓码
换标下单 F33、F37 移到海外分支 换标是库存服务和独立出库,不属于客户头程下单主链
预约取货、上门提货 F03;到仓后 F08 拆分 平台提货是交货方式;实际到仓仍进入统一箱码收货
入库测量、称重计费 F09、F10、F11 拆分 实测事实、测量审核、费用发布/客户确认不能合并
调整差异 F08、F10 拆分 到仓差异在 F08,测量审核差异在 F10
指定库位 F08、F31 按仓库拆分 国内作业资源和海外库存库位不是同一对象
智能排柜 F14 保留并细化 产生柜次、预装计划、数量分配和版本
订舱 F15 保留并细化 订舱状态和柜次状态分开维护
预约拖车/托车 F16、F25 按区域拆分 国内订舱级拖车与目的港码头拖车不能复用一张单
PDA F19、F36 按作业阶段拆分 国内装柜 PDA 与海外排车 PDA 的对象、库存和门禁不同
柜/铅封照片 F20 保留并补证据类型 五类装柜证据与锁码文本作为 LOADED 门禁
客户报关资料、代理报关、回执 F22 合并为报关批次 客户文件、平台线下提交、人工回执属于一个可审计批次
完成国内出仓、等待装船、装船发运 F21、F23、F24 拆分 LOADED、实际离仓、船舶实际节点分别代表不同事实
查港务信息 F24 移到海运节点能力 查询任务不是客户主状态;只保存标准节点、来源和查询历史
BOL、预清、清关资料、清关放行、DO/PU 提柜 F25 收敛到目的港协作 国内出口报关继续在 F22,目的港清关和提柜在 F25
FBA 预约、尾程备注 F27 待业务确认后落表 只能作为入仓计划/目的地属性,不提前生成派送状态
开柜拍照、海外签收 F28 保留并细化 柜级接柜会话,绑定实际收货仓和海外照片
PDA 打托、实收、入账回写 F29、F30 拆分 实收差异、库存入账和国内回写有不同完成条件
派送车队筛选 F34、F35 拆分 先生成排车,再转派送生成出库单和派送单
预排车转 BOL F34、F35 拆分 排车锁和出库/派送单是不同业务对象
PDA 拣货、装车、发车 F36 保留并拆动作 拣货成功、核平、发车各有独立门禁,发车不重复扣库存
自提出仓 F37 移到独立出库 不经过普通排车主链,仍需独立出库、库存和权限规则
派送、签收回执 F38 保留并补资料门禁 DELIVERED 必须绑定对应目的地的有效签收资料
异常、拒收、部分拒收 F39 独立异常分支 退回数量必须来自原出库事实,并在同一事务恢复库存
客户回访、最终回写 F40 保留并收口 回访是服务记录;国内最终完成以全部有效入库单完成事件为准