优化
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
# 文档归档
|
||||
|
||||
这里保存已经完成开发阶段、当前不作为日常流程入口的历史文档。归档只改变文件位置,不删除内容;需要追溯旧决策、旧验收或旧开发计划时再进入对应子目录。
|
||||
|
||||
## 归档目录
|
||||
|
||||
- [头程到尾程](头程到尾程/README.md):全流程操作手册、旧现状全景、AI 上下文和易用性方案。
|
||||
- [国内货柜履约归档](../国内货柜履约/归档/README.md):开发规划、进度、门禁、验收矩阵、审计和旧确认材料。
|
||||
|
||||
当前流程只从 [头程到尾程流程节点梳理](../头程到尾程流程节点梳理.md) 开始查找。
|
||||
@@ -0,0 +1,11 @@
|
||||
# 头程到尾程历史文档
|
||||
|
||||
本目录只保留历史操作说明、旧版现状盘点和流程优化材料。它们不再作为当前流程或开发计划入口;当前节点关系以[头程到尾程流程节点梳理](../../头程到尾程流程节点梳理.md)为准,分段细节见[头程到尾程分阶段流程](../../头程到尾程分阶段流程/README.md)。
|
||||
|
||||
## 文件
|
||||
|
||||
- [全流程操作手册](头程下单到尾程出库全流程操作手册.md)
|
||||
- [现状流程全景清单](头程下单到尾程出库现状流程全景清单.md)
|
||||
- [AI 流程优化上下文包](头程到尾程AI流程优化上下文包.md)
|
||||
- [易用性与数据流转优化方案](头程下单到尾程出库流程易用性与数据流转优化方案.md)
|
||||
|
||||
@@ -0,0 +1,538 @@
|
||||
# 头程下单到尾程出库全流程操作手册
|
||||
|
||||
> 适用范围:企业客户头程下单,国内收货、测量、分柜、装柜、报关与出仓,跨区生成尾程订单,海外接柜入仓、库存、排车及尾程出库。
|
||||
> 流程终点:海外出库单变为 `OUTBOUNDED`;排车场景同时以排车单 `DEPARTED` 为离仓事实。
|
||||
> 当前口径:以现行服务端模块指引、页面入口和代码状态机为准。历史设计与当前实现冲突的地方集中列在第 11 节,旧文档不能直接作为操作依据。
|
||||
> 不在主链内展开:换标、仓储转运、货物废弃、退货换标、异常退回、客户回访、海外采购和本土散板;这些能力在第 9 节说明如何接入出库。
|
||||
|
||||
> 当前流程基线:见[《头程到尾程流程节点梳理(重构版)》](../../头程到尾程流程节点梳理.md)。[《头程下单到尾程出库现状流程全景清单》](头程下单到尾程出库现状流程全景清单.md)仅保留旧版 AS-IS 证据;本文侧重一票主链如何按最新报关/送港并行流程实际操作。
|
||||
|
||||
## 1. 一张图看完整主链
|
||||
|
||||
```text
|
||||
企业资料审核通过、资金账户可用
|
||||
↓
|
||||
客户创建头程订单草稿 → 提交订单 → 生成全局唯一入仓码
|
||||
↓
|
||||
平台审核订单 → 创建国内正式入库单、冻结申报与箱码事实
|
||||
↓
|
||||
国内仓收货 → 测量/称重 → 测量审核 → 进入待分柜
|
||||
├─ 普通散货/FBA:直接进入分柜
|
||||
└─ 一件代发:先逐箱清点、组托、封托,再进入分柜
|
||||
↓
|
||||
创建模拟柜/订舱 → 智能或人工排柜 → 预装确认
|
||||
↓
|
||||
国内 PDA 拣货装柜 → 五类证据和铅封 → 装柜完成 LOADED
|
||||
├─ 报关线:通知报关行 → 客户资料 → 报关行回执 → 客户确认/打回重做
|
||||
│ → 所有客户通过 → 整柜正式申报 → 查验/放行
|
||||
└─ 送港线:拖车 → 离仓 → 送港/进港 → 甩柜/改配(如发生)→ 实际开船
|
||||
↓
|
||||
实际开船后进入海运节点:装船/离港 → 在途 → 到目的港 → 卸船 → 可提柜
|
||||
↓
|
||||
装柜完成事件跨区 → 海外生成 PENDING_ASSIGNMENT 尾程订单
|
||||
↓
|
||||
平台按柜预览并转换入仓计划 → 生成/绑定海外托盘资源
|
||||
↓
|
||||
海外 PDA 锁柜 → 三类签收照片 → FBA 按箱数 / OVERSEAS 逐箱收货
|
||||
↓
|
||||
整柜核平完成 → INBOUND_COMPLETED → 海外库存、托盘、库位和流水落账
|
||||
↓
|
||||
平台智能预排/排车 → 维护车辆及预约 → 转派送,生成 WAIT_OUTBOUND 出库单
|
||||
↓
|
||||
海外 PDA 扫托盘拣货并核平 → 发车 → 出库单 OUTBOUNDED / 排车单 DEPARTED
|
||||
```
|
||||
|
||||
主链有三个不能混淆的“出库/出仓”:
|
||||
|
||||
1. 国内装柜完成:入库单为 `LOADED`,表示货已经装入国内出口柜;同时启动报关线和送港线。
|
||||
2. 国内送港:送港线记录拖车、仓库离开、进港和甩柜;客户报关确认不阻断送港,进港不等于报关完成。
|
||||
3. 海运起点:承运船舶真实开航后才进入海运节点,预计 ETD 不推进海运中。
|
||||
4. 海外尾程出库:海外仓库存经排车/PDA 作业离仓,出库单为 `OUTBOUNDED`。
|
||||
|
||||
### 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 |
|
||||
| 11 | 国内 PDA | 扫箱/整托拣货,批量提交,拍五类证据和锁码,完成装柜 | 计划 `COMPLETED`、入库单 `LOADED`,发布最终实装事件并启动报关/送港两条线 | 报关/送港运营 |
|
||||
| 12 | 报关运营 / Admin、Client | `LOADED` 后收集客户资料、发报关行、上传回执、发客户确认;打回则重做,所有客户通过后提交整柜正式申报 | 每客户确认轮次可追溯;整柜正式申报后记录查验/放行,不把回执上传当成客户确认 | 报关运营/客户 |
|
||||
| 13 | 送港运营 / Admin | 独立安排拖车、离仓、送港和进港;容量不足记录甩柜/改配 | 写入 `DEPARTED_WAREHOUSE`、`PORT_RECEIVED` 或 `ROLLED_OVER`,不等待报关客户确认 | 船务/海外运营 |
|
||||
| 14 | 船务 / Admin、第三方 | 只在承运船舶真实开航后查看/补录船节点 | 写入 `VESSEL_DEPARTED` 并进入海运节点;到 `PICKUP_READY` 后开放海外 PDA 候选 | 海外计划运营、海外 PDA |
|
||||
| 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` 整托确认,不得拆托拣货。
|
||||
|
||||
装柜证据:
|
||||
|
||||
- 空仓、半仓、满仓、锁仓、带锁码照五类证据和锁码文本;
|
||||
- 同类可追加,错误证据作废并保留审计,不硬删除历史。
|
||||
|
||||
最终完成门禁:全部计划明细核平、五类有效证据齐全、铅封号存在且真实柜号已就绪。完成后装柜计划为 `COMPLETED`,来源入库单为 `LOADED`。
|
||||
|
||||
### 6.3 报关线与送港线
|
||||
|
||||
入口:Admin → 货柜管理 → 柜次详情;客户确认入口为 Client → 头程订单 → 报关资料。
|
||||
|
||||
**报关线**按客户案例推进:
|
||||
|
||||
1. `LOADED` 后通知报关行,按客户/入仓码收集资料并发送;
|
||||
2. 授权人员上传报关行本轮回执,客户查看并确认;
|
||||
3. 客户打回时保存原因,重新上传/替换资料,重新发送报关行并生成新回执轮次;
|
||||
4. 柜内所有客户均确认后,冻结整柜资料并提交报关行正式申报;
|
||||
5. 记录查验、不查验放行、补件/退回等海关结果。
|
||||
|
||||
**送港线**独立推进:
|
||||
|
||||
1. 校验 `LOADED`、真实柜号、订舱和拖车条件,安排车辆离仓、送港和进港;
|
||||
2. 写入唯一 `DEPARTED_WAREHOUSE` 和 `PORT_RECEIVED` 事实;
|
||||
3. 船舱不足时写入 `ROLLED_OVER`,保存原船次、改配船次、滚动次数和客户通知;
|
||||
4. 送港线不等待客户报关确认,报关线也不等待送港完成。
|
||||
|
||||
只有承运船舶真实开航才写入 `VESSEL_DEPARTED` 并进入海运节点。预计 ETD、已离仓或已进港不能显示为海运中。
|
||||
|
||||
## 7. 阶段四:海运节点、跨区尾程建单和海外入仓
|
||||
|
||||
### 7.1 船节点推进
|
||||
|
||||
船节点任务在承运船舶真实开航后幂等创建,不能由操作员另造一套。标准实际节点按以下顺序单调推进:
|
||||
|
||||
`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` 尾程订单,平台必须按柜预览并确认转换。
|
||||
3. `LOADED` 只校验物理装柜。报关线按客户回执确认、整柜正式申报和海关结果推进;送港线按拖车、离仓、进港和甩柜推进,两条线互不替代。
|
||||
4. 只有实际开船才进入海运节点。`DEPARTED_WAREHOUSE` 和 `PORT_RECEIVED` 是送港事实,`ROLLED_OVER` 是船次异常,预计 ETD 不推进海运中。
|
||||
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`
|
||||
- [ ] 每个客户完成“资料→报关行回执→客户确认”,打回客户已重新上传、重新发送并生成新回执
|
||||
- [ ] 所有客户确认后,整柜资料已提交报关行正式申报,并记录查验/放行结果
|
||||
- [ ] 送港线已记录 `DEPARTED_WAREHOUSE`、`PORT_RECEIVED` 或 `ROLLED_OVER`
|
||||
- [ ] 承运船舶实际开航后才生成 `VESSEL_DEPARTED` 和船节点任务
|
||||
- [ ] 实际船节点到 `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`
|
||||
- `docs/国内货柜履约/归档/货柜管理全链验收矩阵-2026-08-13.md`
|
||||
- `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 与服务端状态机为最终依据。
|
||||
|
||||
@@ -0,0 +1,464 @@
|
||||
# 头程下单到尾程出库流程易用性与数据流转优化方案
|
||||
|
||||
> 目标:在现有端到端流程已经走通的基础上,降低学习成本、重复录入、跨页面查找和交接等待,让每个岗位始终知道“货在哪里、现在由谁处理、为什么不能继续、下一步做什么”。
|
||||
> 基线流程:见[《头程下单到尾程出库全流程操作手册》](头程下单到尾程出库全流程操作手册.md)。
|
||||
> 边界:本方案优先复用现有 Admin、Client、国内/海外 PDA、Gateway、Order、Firstleg、Lastleg 和 Warehouse 能力,不新建平行状态机,不引入第二套订单或跨区同步写链路。
|
||||
|
||||
> 当前状态:现状全景和六阶段基线已经完成;本文进入分阶段业务评审,暂不直接作为实施基线。AI 分析和评审记录统一遵循[《头程到尾程 AI 流程优化上下文包》](头程到尾程AI流程优化上下文包.md),逐项决定保留、合并、自动化、简化或删除。
|
||||
|
||||
## 1. 优化后的成功标准
|
||||
|
||||
流程是否“能走通”只代表功能闭环;易用性优化完成后还应同时达到:
|
||||
|
||||
1. 操作员进入一个单据后,10 秒内能回答当前阶段、下一动作、责任岗位和阻断原因。
|
||||
2. 同一业务事实只录一次,后续阶段自动带出并注明来源、冻结时间和是否可修改。
|
||||
3. 每次操作完成都明确展示“产生了什么结果、下一步去哪里”,并提供可点击入口。
|
||||
4. 异步跨区操作不再表现为“点完没反应”,页面可见待投递、处理中、成功或失败。
|
||||
5. PDA 扫错时直接说明“扫到了什么、为什么不匹配、正确应该扫什么”,而不是只返回错误码。
|
||||
6. 列表默认突出需要当前岗位处理的记录,不要求用户同时理解全部内部状态。
|
||||
7. 批量操作在提交前有预览,提交后有逐项结果和可重试项,不能整批静默失败。
|
||||
8. 所有阶段以服务端 `nextAction/allowedActions/blockers` 为准,页面不自行猜测资格。
|
||||
9. 数据跨服务、跨区域流转可追踪、可重放、可对账,但业务人员不需要接触内部 ID。
|
||||
|
||||
## 2. 当前主要问题
|
||||
|
||||
### 2.1 操作层问题
|
||||
|
||||
| 问题 | 当前表现 | 业务影响 |
|
||||
|---|---|---|
|
||||
| 页面按模块拆开,缺少一票到底视角 | 订单、测量、货柜、出仓、船节点、尾程、入仓、排车、出库分别查询 | 操作员反复复制订单号、入仓码和柜号,交接依赖群消息 |
|
||||
| 状态多但不回答下一步 | 页面显示 `WAIT_SPLIT`、`PENDING_ASSIGNMENT`、`READY_TO_DEPART` 等编码映射 | 新员工知道状态名但不知道该去哪个菜单、找哪个岗位 |
|
||||
| 阻断原因与修复入口分离 | 门禁面板告诉用户缺报关、缺车辆或缺计划,但需要自行找页面 | 处理时间长,容易重复点击同一操作 |
|
||||
| 操作成功提示过轻 | 常见结果只有“保存成功”或“提交成功” | 用户不清楚是否建了入库单、出库单、派送单或跨区任务 |
|
||||
| 相同信息重复填写 | 车辆、司机、目的仓、箱数、费用来源、预计时间在不同阶段重复录入 | 容易产生快照不一致和人工抄错 |
|
||||
| 异步流转不可见 | 国内完成后海外页面暂时没有数据,只能等待刷新 | 用户误判失败,重复操作或要求技术人员查库 |
|
||||
| PDA 错误反馈缺现场语义 | 扫错托盘/箱唛时只知道失败,不知道资源实际归属 | 仓库人员需要退出任务或电话询问后台 |
|
||||
| 批量能力缺少统一反馈 | 批量导入、审核、排柜、计划转换各自反馈形式不同 | 错误定位和重试成本高 |
|
||||
|
||||
### 2.2 数据流问题
|
||||
|
||||
| 问题 | 风险 |
|
||||
|---|---|
|
||||
| 交易状态、履约状态、费用状态、子单状态被用户当成一个状态理解 | 页面互相覆盖或展示“倒退”,实际只是不同状态维度 |
|
||||
| 同一字段在多个服务留有快照,但页面不显示来源 | 用户无法判断当前值来自客户申报、实测、计划还是实际作业 |
|
||||
| 跨区事件处理结果缺少业务可见回执 | 事件已发送、消费失败、资源生成失败等场景只能从日志判断 |
|
||||
| 单据间只有内部 ID 关联,缺少统一业务链查询 | 客服无法用订单号/入仓码直接查到柜、尾程计划、排车和出库 |
|
||||
| 自动动作和人工动作混在同一历史里 | 无法快速判断是系统自动收敛、第三方回传还是人工补录 |
|
||||
| 同步调用失败与业务失败提示不分 | 操作员不知道应补资料、刷新版本还是等待系统重试 |
|
||||
| 分页列表承担跨柜/跨客户聚合 | 容易出现只看当前页就做整柜判断的问题 |
|
||||
|
||||
## 3. 总体产品方案
|
||||
|
||||
### 3.1 一票到底进度条
|
||||
|
||||
在 Client 订单详情和 Admin 统一订单详情顶部增加同一套业务阶段条:
|
||||
|
||||
```text
|
||||
订单提交 → 国内入库 → 测量/组托 → 待分柜 → 国内装柜 → 国内出仓
|
||||
→ 海运在途 → 海外计划 → 海外入仓 → 海外排车 → 海外出库 → 派送完成
|
||||
```
|
||||
|
||||
每个节点只展示四种用户可理解状态:未开始、处理中、已完成、异常。点击节点进入对应详情或只读摘要。
|
||||
|
||||
阶段条不能根据前端已有字段自行拼装,应由服务端聚合返回:
|
||||
|
||||
- `currentStageCode/currentStageName`:当前主阶段;
|
||||
- `stageStatus`:阶段状态;
|
||||
- `nextActionCode/nextActionName`:下一动作;
|
||||
- `ownerRole/ownerName`:当前责任岗位;
|
||||
- `blockers[]`:阻断码、中文原因、修复建议和跳转目标;
|
||||
- `relatedDocuments[]`:相关业务单号、状态和详情入口;
|
||||
- `lastChangedAt`:最后业务变化时间;
|
||||
- `asyncState`:无异步任务、处理中、成功、失败待重试。
|
||||
|
||||
实现上优先扩展现有统一订单聚合、柜级 overview 和尾程柜级 summary,不新建另一套可写流程引擎。
|
||||
|
||||
### 3.2 “现在做什么”任务卡
|
||||
|
||||
列表第一列保持“操作”,并在状态旁增加任务卡:
|
||||
|
||||
- 当前需要我做:例如“审核订单”“补称重图片”“确认预装”“转换海外入仓计划”“维护车辆”“先转派送”。
|
||||
- 为什么:显示最多两条最高优先级阻断原因。
|
||||
- 去处理:直接深链到目标弹窗、页签或 PDA 作业。
|
||||
- 谁负责:当前角色无权限时显示责任岗位和只读说明,不显示无效按钮。
|
||||
- 完成期限:按业务 SLA 显示剩余时间或超时标记。
|
||||
|
||||
服务端必须返回稳定动作编码;页面只负责中文展示和路由,不根据状态组合重新推导动作。
|
||||
|
||||
### 3.3 操作完成回执
|
||||
|
||||
所有关键写操作采用一致的结果反馈,而不是单纯 Toast:
|
||||
|
||||
| 当前操作 | 回执必须告诉用户 |
|
||||
|---|---|
|
||||
| 提交订单 | 订单号、入仓码、当前状态、下一步由平台审核 |
|
||||
| 审核通过 | 已生成的国内入库单/箱码、下一步国内仓测量 |
|
||||
| 测量审核通过 | 是否进入待分柜或待组托、费用是否已生成 |
|
||||
| 预装确认 | PDA 任务是否已生成、缺真实柜号时的明确提醒 |
|
||||
| 国内装柜完成 | 装柜结果、报关状态和国内出仓门禁摘要 |
|
||||
| 国内出仓 | 船节点任务是否创建、第一条节点和海外异步建单状态 |
|
||||
| 海外计划转换 | 计划数量、托盘数量、资源结果和 PDA 是否可接柜 |
|
||||
| 海外整柜入仓完成 | 实收箱数、库存/托盘/库位结果和下一步排车入口 |
|
||||
| 转派送 | 出库单号、按目的仓拆分的派送单号、发车尚缺条件 |
|
||||
| PDA 发车 | 已出库箱数、排车单/出库单终态和后续派送入口 |
|
||||
|
||||
回执应支持“查看结果”和“继续处理下一票”,避免保存后返回一个没有上下文的列表。
|
||||
|
||||
## 4. 分阶段易用性优化
|
||||
|
||||
### 4.1 客户下单
|
||||
|
||||
现状操作:一个较长表单或 XLSX 导入,保存草稿后再提交。
|
||||
|
||||
优化:
|
||||
|
||||
- 用“运输与仓库 → 货物 → 提货/目的信息 → 确认提交”四步向导组织表单。
|
||||
- 顶部常驻草稿保存状态;字段失焦自动保存草稿,但最终提交仍由用户明确点击。
|
||||
- 选择目的类型后只展示相关字段:FBA 显示 FBA 仓,海外仓显示公共目的仓,私人仓显示地址。
|
||||
- 仓库、渠道、目的仓下拉显示业务名称、代码、地址和可用状态,不展示内部 ID。
|
||||
- 提交前集中展示校验清单,点击错误可滚动到对应字段。
|
||||
- 批量导入先预览“可创建、需修正、重复”三组;错误报告可按原行号下载,修正后只重试失败行。
|
||||
- 提交成功回执直接展示入仓码,并提供复制、打印箱唛和查看订单进度入口。
|
||||
|
||||
数据优化:客户端只提交用户输入;仓库名称、地址、渠道名称和客户归属由服务端验证后冻结快照,避免客户端抄写。
|
||||
|
||||
### 4.2 平台订单审核
|
||||
|
||||
现状操作:列表定位,打开详情或批量预览后审核。
|
||||
|
||||
优化:
|
||||
|
||||
- 默认进入“待我审核”,按提交时间和加急程度排序。
|
||||
- 列表直接展示入仓码、目的类型、目的仓、渠道、箱数/体积/重量和阻断摘要。
|
||||
- 批量预览用“可通过/需补资料/系统异常”分组;只允许勾选可通过项。
|
||||
- 修改客户申报时做前后对比,标出会影响渠道、计价和排柜的字段。
|
||||
- 审核通过后自动跳转“下一票”或进入本票进度页,不要求重新筛选。
|
||||
|
||||
数据优化:审核只推进 Order 权威状态;Firstleg 建单结果通过明确回执返回。Firstleg 暂时不可用时显示“审核已提交/建单待收敛”或失败原因,不能把部分成功伪装为整体成功。
|
||||
|
||||
### 4.3 国内收货、测量与费用
|
||||
|
||||
现状操作:按入仓码查询,测量和称重分多次录入,费用在另一工作区处理。
|
||||
|
||||
优化:
|
||||
|
||||
- 提供“扫码入仓码进入本票”入口,落地后固定显示客户、订单、目的仓和应收箱数。
|
||||
- 将尺寸、称重、图片、审核和库位块放在同一作业页的连续步骤中。
|
||||
- OCR 列表突出低置信度、单位异常和重复图片;批量确认高置信度结果。
|
||||
- 每条实测数据展示“客户申报值 vs 当前实测值 vs 计费采用值”,差异超阈值自动提示。
|
||||
- 审核不通过必须选择标准原因,可一键生成待修正任务;修正后回到原审核人队列。
|
||||
- 费用卡明确标注“费用处理不阻断待分柜”,避免运营等待费用后才排柜。
|
||||
- 客户收到费用后在订单进度中直接确认,无需进入独立财务菜单寻找。
|
||||
|
||||
数据优化:尺寸原始值、修正值、计费值分字段保存;页面必须显示来源,禁止覆盖原始数据。费用用版本号关联测量快照,不复制一套无法追溯的合计。
|
||||
|
||||
### 4.4 分柜、订舱和预装
|
||||
|
||||
现状操作:在模拟柜、智能装柜、订舱和预装详情之间切换。
|
||||
|
||||
优化:
|
||||
|
||||
- 建立柜级工作台,顶部固定显示柜次号、真实柜号、订舱、渠道、仓库、容量、重量和下一动作。
|
||||
- 左侧候选、右侧已装计划保持筛选和滚动位置;加入后即时显示容量/重量变化。
|
||||
- 候选行直接说明不可加入原因,例如“待审核占位可加入,但暂不能确认预装”。
|
||||
- 同柜组、一件代发整托用不可拆分卡片展示,避免用户误以为可按行拆分。
|
||||
- 订舱放舱、柜次关联、真实柜号、预装确认形成同页检查清单。
|
||||
- 真实柜号未填时提供醒目待办;正式操作口径统一在预装确认前补齐。
|
||||
- 确认预装前显示最终成员、箱数、托盘、容量、重量、费用重算影响和将生成的 PDA 任务。
|
||||
|
||||
数据优化:所有柜级动作使用稳定 `containerBookingId`,`cabinetNo/containerNo` 只作为业务展示身份。预装预览必须来自服务端完整柜级结果,不能使用当前分页数据拼装。
|
||||
|
||||
### 4.5 国内 PDA 装柜
|
||||
|
||||
现状操作:领取任务、逐箱或整托扫描、本地形成草稿、批量提交、上传证据并完成。
|
||||
|
||||
优化:
|
||||
|
||||
- 首页默认显示当前仓、当前任务、已扫/应扫、异常数和网络状态。
|
||||
- 普通箱、一件代发托盘使用不同颜色和提示音,避免将整托按箱扫描。
|
||||
- 扫描成功即时显示货物、入仓码、目标柜和累计数;错误显示扫描对象实际归属。
|
||||
- 批量提交前展示新增、重复、错柜和待处理异常四类统计。
|
||||
- 五类证据使用固定槽位和进度 `0/5…5/5`;铅封照片和铅封号在同一步完成。
|
||||
- 最终完成页只展示服务端门禁,缺哪项就提供对应操作入口。
|
||||
- 网络中断保留本地扫描草稿和同一幂等键;恢复后先对账服务端已接收项,再允许重试。
|
||||
|
||||
数据优化:箱码、托盘码、柜次和任务全部由服务端解析归属;PDA 不提交客户或猜测仓库范围。批量响应返回逐项结果及服务端最新任务版本。
|
||||
|
||||
### 4.6 报关和国内出仓
|
||||
|
||||
现状操作:装柜完成后在报关、柜次详情或国内出仓页处理。
|
||||
|
||||
优化:
|
||||
|
||||
- 柜次详情新增“离仓准备度”,用 7 个门禁卡片显示已完成/阻断。
|
||||
- 每个阻断卡片提供深链:去解除扣货、查看 PDA、补证据、完成订舱、处理报关。
|
||||
- 明确标注拖车和独立船期“仅供参考,不阻断国内出仓”。
|
||||
- 报关完成后的自动确认展示为“系统正在确认离仓”;自动失败时才开放人工处理,并显示失败原因。
|
||||
- 离仓成功回执展示船节点任务号和异步海外建单状态。
|
||||
|
||||
数据优化:门禁由 Firstleg 整柜锁定重算。页面不缓存门禁结论;执行前后都读取最新版本。自动与人工确认复用同一命令和幂等语义。
|
||||
|
||||
### 4.7 船节点和跨区建单
|
||||
|
||||
现状操作:多个页面可查看船节点;跨区建单需要等待刷新。
|
||||
|
||||
优化:
|
||||
|
||||
- 柜级时间线同时展示预计节点、实际节点、异常和数据来源,预计/实际视觉区分。
|
||||
- `PICKUP_READY` 节点旁明确显示“海外 PDA 已开放/尚未开放”。
|
||||
- 增加跨区处理卡:国内事件已生成、已投递、海外已接收、尾程订单已生成、资源待转换。
|
||||
- 超过预期时间仍未建单时,平台可查看业务化失败原因并触发受控重试;不能直接补数据。
|
||||
- 同一柜多客户时用柜级聚合显示事件状态,再进入每票结果,避免逐票判断整柜完成。
|
||||
|
||||
数据优化:跨区状态使用 `eventId + aggregateId + schemaVersion + payloadHash` 追踪。国内只发布事实,海外只消费并幂等建单;禁止跨区同步双写数据库。
|
||||
|
||||
### 4.8 海外入仓计划转换
|
||||
|
||||
现状操作:按柜查看、预览、处理阻断后确认转换。
|
||||
|
||||
优化:
|
||||
|
||||
- 柜级卡片直接显示订单数、待建计划数、资源待补数、预计到仓和准备度。
|
||||
- 转换弹窗用三栏对比“头程已有托数、海外补充托数、最终托数”。
|
||||
- 阻断项按可操作性排序,并提供修复入口;例如缺预计到仓、目的仓异常、托盘资源失败。
|
||||
- 转换后展示逐票计划结果及托盘码,支持只重试 `resourcePendingPlanCount` 指向的资源异常。
|
||||
- 已转换柜仍可查询,但主按钮改为“查看/维护计划”,避免用户误以为要重复转换。
|
||||
|
||||
数据优化:预览返回 `snapshotVersion/snapshotHash`;提交只回传该快照标识和明确选择。服务端锁柜重算,避免页面停留期间数据变化导致错建计划。
|
||||
|
||||
### 4.9 海外 PDA 接柜入仓
|
||||
|
||||
现状操作:选择柜、三类照片、按两种模式实收、完成整柜。
|
||||
|
||||
优化:
|
||||
|
||||
- 待收柜按可作业、未到 `PICKUP_READY`、资源未齐分组;后两组只读显示原因。
|
||||
- 进入柜后顶部固定显示柜号、当前操作员、开始时间、总计划/实收/待收。
|
||||
- 三类照片采用顺序引导,可重拍但保留审计;完成后自动进入收货,不返回列表。
|
||||
- FBA 页只显示“SKU + 本次箱数”,OVERSEAS 页只显示“箱唛逐箱”,从交互上消除模式混用。
|
||||
- 扫托盘后显示托盘已含入仓码和剩余容量,合托时提示来源组成。
|
||||
- 整柜完成前用入仓码列表标红未核平项,点击直接继续收货。
|
||||
- 完成回执显示库存、托盘、库位和国内回写状态。
|
||||
|
||||
数据优化:柜级会话只绑定物理柜和实际接柜仓;每票实收、库存和托盘组成仍按客户隔离。PDA 不上传客户 ID 或仓库 ID。
|
||||
|
||||
### 4.10 海外排车、转派送和出库
|
||||
|
||||
现状操作:智能预排、编辑车辆、转派送、PDA 拣货、发车。
|
||||
|
||||
优化:
|
||||
|
||||
- 排车候选默认只显示可用库存,暂扣、换标未确认、已锁定的托盘直接说明不可选原因。
|
||||
- 预排草稿常驻显示托数、箱数、重量、目的仓、车型容量和超限值。
|
||||
- 加入/移除托盘时即时显示锁状态;离开未提交草稿时二次确认并释放锁。
|
||||
- 编辑排车时从车辆主数据带出车牌、司机、电话和车队,可覆盖的字段明确标识。
|
||||
- “转派送”放在排车详情主流程位置,不藏在更多菜单;未转派送时 PDA 发车页显示平台待办。
|
||||
- 转派送自动带出排车、车辆、目的仓、箱数和预约资料,只要求补充缺失字段及费用。
|
||||
- 提交前预览将生成的一张出库单和按目的仓拆分的派送单。
|
||||
- PDA 拣货页固定显示 `canDepart`;未满足时将服务端阻断原因翻译为动作提示。
|
||||
- 发车成功回执显示出库单已完成、库存扣减数、派送单清单和下一责任岗位。
|
||||
|
||||
数据优化:排车、出库、派送是三张单据,各自状态独立;转派送只创建一次。库存扣减发生在 PDA 成功扫码事务,发车只推进排车和出库状态,防止重复扣减。
|
||||
|
||||
## 5. 数据归属与流转优化
|
||||
|
||||
### 5.1 权威数据归属
|
||||
|
||||
| 数据 | 权威服务 | 下游使用方式 |
|
||||
|---|---|---|
|
||||
| 客户、账号、角色、仓库绑定 | IAM/Auth | Token 和服务端身份校验,不接受页面自报客户范围 |
|
||||
| 头程订单、客户申报、订单交易状态 | Order | Firstleg 使用版本化事件/内部 DTO,不反向覆盖客户申报 |
|
||||
| 国内入库、实测、费用快照、柜次、装柜、出仓、船节点 | Firstleg | Admin/PDA 读写正式 API;向海外发布最终实装事实 |
|
||||
| 国内/海外公共仓库主档 | Warehouse | 其他服务按 `warehouseId` 引用并冻结必要快照 |
|
||||
| 海外库位、实物托盘和资源锁 | Warehouse Overseas | Lastleg 使用内部资源接口,不复制第二套仓库主档 |
|
||||
| 尾程订单、海外计划、库存、排车、出库、派送 | Lastleg | Admin/Client/海外 PDA 经海外 Gateway 访问 |
|
||||
| 文件 | File | 业务服务只保存已校验文件 ID 和业务归属 |
|
||||
| 国内财务主账 | Finance | 海外费用通过事件入池,不跨区同步改钱包 |
|
||||
|
||||
### 5.2 业务主键链
|
||||
|
||||
对用户可见的链路检索顺序统一为:
|
||||
|
||||
```text
|
||||
orderNo / inboundCode
|
||||
→ cabinetNo / containerNo
|
||||
→ tailOrderNo / planNo
|
||||
→ palletNo
|
||||
→ dispatchNo
|
||||
→ outboundNo
|
||||
→ deliveryNo
|
||||
```
|
||||
|
||||
建议所有详情页提供“关联单据”侧栏,允许用任意一个业务号跳到上游和下游。内部数据库 ID 只留在接口和诊断信息中,不作为页面回退编号。
|
||||
|
||||
### 5.3 快照来源标识
|
||||
|
||||
页面展示容易混淆的字段时增加来源标签:
|
||||
|
||||
| 字段 | 可能来源 | 页面要求 |
|
||||
|---|---|---|
|
||||
| 箱数、重量、体积 | 客户申报、仓库实测、国内实装、海外实收 | 同时展示当前采用值与来源,历史值可展开 |
|
||||
| 仓库/目的仓 | 下单选择、柜级计划、实际接柜仓 | 名称旁标注“国内来源仓/实际接柜仓/FBA目的仓” |
|
||||
| 托数 | 头程推荐、头程已有、海外补充、海外最终 | 转换预览分别展示,不把补充数写成最终总数 |
|
||||
| 预计/实际时间 | 客户期望、订舱 ETA、预计到仓、实际到仓 | 用不同字段和标签,不用创建时间回退 |
|
||||
| 状态 | 主流程、审核、费用、子单 | 分区展示,不用子单状态覆盖主状态 |
|
||||
|
||||
### 5.4 异步事件可观测
|
||||
|
||||
每个重要异步交接保留统一回执:
|
||||
|
||||
- 事件名称、业务单号和来源阶段;
|
||||
- `eventId`、版本、发生时间、投递时间、接收时间;
|
||||
- 当前状态:待发送、发送中、已接收、已处理、失败待重试、永久失败需人工;
|
||||
- 重试次数和最近失败的业务化原因;
|
||||
- 下游生成的业务单号;
|
||||
- 是否允许受控重试。
|
||||
|
||||
业务页面只展示业务化摘要;`requestId/traceId/eventId` 放在“诊断信息”中供技术支持复制。
|
||||
|
||||
### 5.5 一致性规则
|
||||
|
||||
1. 写操作携带 `expectedVersion` 和幂等键;版本冲突必须刷新,不能由前端自动覆盖。
|
||||
2. 同一业务操作超时后先查幂等结果;不能自动换新键重复提交。
|
||||
3. 跨服务写入使用本地事务 + Outbox/Inbox,不做国内、海外数据库分布式双写。
|
||||
4. 聚合页只做读模型,不成为新的权威数据源。
|
||||
5. 计划、门禁和转换必须基于完整柜级/任务级查询,不能用当前分页记录判断整体完成。
|
||||
6. 自动动作与人工动作使用同一服务命令,但历史记录明确 `SYSTEM/USER/THIRD_PARTY` 来源。
|
||||
7. 下游快照只在规定时点冻结;上游主数据之后变化不静默覆盖历史单据。
|
||||
|
||||
## 6. 共性交互规范
|
||||
|
||||
### 6.1 状态展示
|
||||
|
||||
- 主标题用中文业务状态,稳定编码放在悬浮说明或诊断区。
|
||||
- 每页最多突出一个主状态;审核、费用、库存和子单状态分组展示。
|
||||
- “等待系统处理”和“等待人工处理”使用不同颜色和图标。
|
||||
- 终态不继续显示无效主按钮。
|
||||
|
||||
### 6.2 按钮与门禁
|
||||
|
||||
- 主按钮文案使用业务结果,例如“确认离仓”“转换整柜入仓计划”“完成整柜入仓”“转派送并生成出库单”。
|
||||
- 禁用按钮必须能查看原因;有修复入口时直接跳转。
|
||||
- 危险或不可逆操作在确认框中展示影响范围、将生成/冻结的单据和是否可撤销。
|
||||
- 批量操作先预览,提交后逐项回执。
|
||||
|
||||
### 6.3 搜索与定位
|
||||
|
||||
- 所有跨阶段列表至少支持订单号、入仓码、柜次号和真实柜号中的适用项。
|
||||
- 海外阶段继续支持计划号、托盘号、排车单号、出库单号和派送单号。
|
||||
- 最近搜索和筛选在返回列表时保留。
|
||||
- 扫码字段自动识别业务码类型;无法识别时提示允许的码,而不是当作普通关键词无结果。
|
||||
|
||||
### 6.4 错误反馈
|
||||
|
||||
错误消息统一包含:发生了什么、为什么、用户现在能做什么。示例:
|
||||
|
||||
```text
|
||||
暂不能发车:平台尚未完成“转派送”,当前排车还没有待出库单。
|
||||
请联系海外运营在排车详情完成转派送后刷新本页。
|
||||
```
|
||||
|
||||
不要向业务用户直接展示内部数据库 ID、SQL 异常或只有 `A0409` 的提示。业务码、requestId 和 traceId 收在可复制的诊断详情中。
|
||||
|
||||
## 7. 优先级建议
|
||||
|
||||
### P0:先解决“找不到下一步”和“数据是否流转成功”
|
||||
|
||||
1. 在统一订单、柜次、尾程订单、排车详情增加当前阶段、下一动作、责任岗位、阻断原因。
|
||||
2. 国内出仓、跨区建单、海外计划转换、转派送和发车增加标准操作回执。
|
||||
3. 所有门禁项增加修复深链。
|
||||
4. 增加跨区事件业务状态卡,覆盖国内装柜到海外尾程建单、海外卸柜到国内回写。
|
||||
5. 海外 PDA 发车严格展示 `canDepart/departBlockReason`;错误改为现场可执行文案。
|
||||
6. 转派送提交前预览出库单和派送单,成功后直接展示业务单号。
|
||||
7. 统一关联单据侧栏和业务编号全链搜索。
|
||||
|
||||
P0 不改变核心状态机,主要是聚合查询、反馈和导航,风险相对较低。
|
||||
|
||||
### P1:减少重复输入和跨页面操作
|
||||
|
||||
1. 客户下单四步向导、自动保存草稿和集中校验。
|
||||
2. 审核、测量、排柜、海外计划的批量预览与逐项回执统一。
|
||||
3. 柜级工作台整合订舱、真实柜号、预装、PDA、报关和出仓准备度。
|
||||
4. 海外收货完成后直接提供“查看库存/创建排车”动作。
|
||||
5. 排车编辑从车辆主数据带出司机、电话和车队;转派送复用排车快照。
|
||||
6. PDA 扫描反馈增加实际归属、错误对象和恢复动作。
|
||||
7. 费用确认嵌入订单进度,不要求客户跨菜单寻找。
|
||||
|
||||
### P2:用数据持续优化效率
|
||||
|
||||
1. 建立阶段耗时、等待耗时、返工率和阻断原因看板。
|
||||
2. 根据历史到仓和处理耗时做 SLA 预警,但不自动改业务事实。
|
||||
3. 智能推荐下一批可审核、可排柜、可计划、可排车记录。
|
||||
4. 对重复出现的扫码错误、计划资源失败和跨区失败生成问题趋势。
|
||||
5. 在保持服务端门禁的前提下,优化默认值和批量操作策略。
|
||||
|
||||
## 8. P0 交付拆分
|
||||
|
||||
| 交付包 | 前端范围 | 后端范围 | 验收重点 |
|
||||
|---|---|---|---|
|
||||
| A. 统一进度与下一动作 | Client 订单详情、Admin 统一订单详情 | Order/Firstleg 聚合返回阶段、动作和阻断 | 同一订单两端阶段一致,权限不同但事实一致 |
|
||||
| B. 柜级离仓准备度 | Admin 货柜详情、国内出仓 | Firstleg 复用现有柜级 gate/overview | 7 个门禁实时、可深链、自动/人工结果一致 |
|
||||
| C. 跨区回执 | Admin 柜次和尾程柜级工作台 | Firstleg Outbox、Event Bridge、Lastleg Inbox 只读聚合 | 能区分待发送、已接收、处理失败和成功建单 |
|
||||
| D. 海外计划转换体验 | Admin 尾程订单 | Lastleg 预览/转换响应补充业务化 blockers 和结果 | 不重复建计划,资源异常可定向重试 |
|
||||
| E. 排车到出库回执 | Admin 排车、出库、派送详情 | Lastleg 返回出库/派送拆分结果及下一门禁 | 转派送和发车后单号、状态、数量立即可核对 |
|
||||
| F. PDA 错误可执行化 | 国内/海外 PDA | Firstleg/Lastleg 错误响应补充稳定原因码和建议动作 | 扫错箱/托盘、版本冲突、未转派送均能现场恢复 |
|
||||
|
||||
每个交付包独立上线,但必须复用同一状态和动作编码,不能各页面自行定义一套中文判断。
|
||||
|
||||
## 9. 验收指标
|
||||
|
||||
### 9.1 效率指标
|
||||
|
||||
- 新员工在不查技术文档的情况下完成一票主链关键操作的成功率。
|
||||
- 每票从提交到完成审核、测量、排柜、海外计划、排车的人工点击数。
|
||||
- 订单号/入仓码在不同页面重复复制粘贴次数。
|
||||
- 从看到阻断到进入正确修复页面的平均时间。
|
||||
- 批量操作失败后定位具体失败记录的时间。
|
||||
|
||||
### 9.2 质量指标
|
||||
|
||||
- 重复提交产生重复单据数必须为 0。
|
||||
- 跨区事件超过 SLA 未收敛但页面仍显示成功的次数必须为 0。
|
||||
- 页面自行推导动作与服务端 `allowedActions` 不一致的次数必须为 0。
|
||||
- 因重复录入导致的仓库、目的仓、车辆、箱数不一致数量。
|
||||
- PDA 错扫后需要后台或技术人员介入才能恢复的比例。
|
||||
|
||||
### 9.3 建议目标值
|
||||
|
||||
首轮上线前先采集两周基线,再确认具体下降比例。若当前没有埋点,P0 同步补充:页面进入、主按钮点击、阻断码、操作结果、耗时、回退/重试、跨区收敛时间。埋点只记录业务编码和阶段,不记录密钥、Token 或客户敏感明细。
|
||||
|
||||
## 10. 关键验收场景
|
||||
|
||||
1. 客户提交订单后立即看到入仓码、待审核和下一责任人。
|
||||
2. 审核员打开待审核列表,无需进入详情即可识别可批量通过和需补资料订单。
|
||||
3. 测量审核完成后,页面明确显示已进入待分柜且费用可继续独立处理。
|
||||
4. 柜次缺报关时,“确认离仓”不可执行,并能一键进入报关区域。
|
||||
5. 国内离仓后,页面可见跨区事件进度;海外建单后自动出现尾程订单号。
|
||||
6. 海外计划转换前清楚看到头程已有托盘和海外补充托盘,重复提交不重复建资源。
|
||||
7. 海外 PDA 扫错柜外箱唛时,提示实际不属于当前柜且库存零变化。
|
||||
8. 海外入仓完成后,操作员可直接查看库存或进入排车,不需要重新搜索。
|
||||
9. 未转派送时 PDA 明确提示平台应做的动作;转派送完成后刷新即可发车。
|
||||
10. 发车成功回执同时展示排车 `DEPARTED`、出库 `OUTBOUNDED` 和各派送单号。
|
||||
11. 任一页面用入仓码搜索,都能进入关联单据侧栏查看上游和下游业务号。
|
||||
12. 版本冲突、网络超时和幂等重放均不会产生重复订单、计划、托盘、出库或派送单。
|
||||
|
||||
## 11. 不建议采用的做法
|
||||
|
||||
- 不新建独立“全流程状态表”作为新的可写权威;使用现有权威状态聚合展示。
|
||||
- 不让前端通过状态字符串组合推导写资格;服务端返回下一动作和门禁。
|
||||
- 不为了页面即时显示而跨区同步写海外数据库。
|
||||
- 不把所有业务状态压缩成一个字段,继续区分主流程、审核、费用、库存和子单。
|
||||
- 不用内部数据库 ID 作为客户和仓库人员的定位方式。
|
||||
- 不通过自动刷新和无限重试掩盖事件失败;失败必须可见并受控重试。
|
||||
- 不在多个页面重复维护仓库、车辆、目的仓和客户名称,统一从权威主数据选择并冻结快照。
|
||||
|
||||
## 12. 推荐落地顺序
|
||||
|
||||
1. 先冻结统一阶段、动作、阻断和责任岗位字典。
|
||||
2. 再补服务端聚合字段与跨区回执,不先让各前端自行拼装。
|
||||
3. Admin 先落统一订单、柜次、尾程计划、排车四个核心详情页。
|
||||
4. Client 接入只读进度、下一动作和费用确认。
|
||||
5. 国内/海外 PDA 接入稳定错误原因、恢复动作和操作回执。
|
||||
6. 完成 P0 人工验收和埋点基线后,再做表单向导、自动带出和批量体验。
|
||||
7. 最后基于真实操作数据决定 P2 的智能推荐和 SLA 预警,不凭主观增加自动化。
|
||||
|
||||
@@ -0,0 +1,584 @@
|
||||
# 头程下单到尾程出库现状流程全景清单
|
||||
|
||||
> **历史现状声明(2026-09-24)**:本文记录旧版 AS-IS 盘点,报关/送港的单线门禁、柜前资料和“四步证据”等内容不再作为当前业务依据。当前流程以 [头程到尾程流程节点梳理(重构版)](../../头程到尾程流程节点梳理.md)、[报关资料与船期价格接入梳理](../../国内货柜履约/报关资料与船期价格接入梳理.md) 和最新需求确认表为准:`LOADED` 后报关线与送港线并行,客户回执确认完成后整柜正式申报,甩柜独立记录,实际开船才进入海运节点。
|
||||
|
||||
> 文档性质:现状流程盘点(AS-IS),先描述现在业务怎么走,不在本文讨论页面改版或技术优化。
|
||||
> 覆盖起点:企业具备下单资格。
|
||||
> 主链终点:海外仓完成尾程出库;为保证交接完整,附带记录派送、异常退回和国内最终完成回写。
|
||||
> 使用方法:先用第 2 节确认流程是否覆盖,再按第 3~8 节核对操作、状态、单据和数据流。优化讨论统一以后续评审确认的本清单为输入。
|
||||
|
||||
## 1. 范围和口径
|
||||
|
||||
### 1.1 本文覆盖
|
||||
|
||||
- 企业资料、账号权限、下单资格和资金提交门禁;
|
||||
- 单票下单、批量导入、编辑、提交、取消和平台审核;
|
||||
- 国内收货、箱码、测量、称重、测量审核、费用与扣货;
|
||||
- 普通散货和一件代发国内组托分支;
|
||||
- 模拟柜、智能排柜、订舱、订舱级拖车、真实柜号、预装、国内 PDA、装柜证据;
|
||||
- 整柜出口报关、国内出仓、船节点、目的港清关提柜和还空;
|
||||
- 跨区尾程建单、海外入仓计划、海外 PDA 接柜和三种收货形态;
|
||||
- 海外库存、暂扣、库内作业及会影响出库的服务分支;
|
||||
- 智能排车、转派送、PDA 拣货、发车和普通/一件代发/换标/转运/退货出库;
|
||||
- 派送完成、异常退回和国内订单最终回写。
|
||||
|
||||
### 1.2 三类时间和三类仓库必须分开
|
||||
|
||||
| 容易混淆项 | 正确含义 |
|
||||
|---|---|
|
||||
| 预计开船/预计到港 | 订舱和船运节点事实,不是预计到海外仓时间 |
|
||||
| 预计到仓 | 整柜预计到实际海外接柜仓的时间,入仓计划生成后锁定 |
|
||||
| 实际到仓 | 海外 PDA 首次开始收货的时间,不是码头提柜时间 |
|
||||
| 国内来源仓 | 国内收货、测量、拣货和装柜的仓库 |
|
||||
| 实际海外接柜仓 | 海外 PDA 作业、库存、托盘和库位所在物理仓 |
|
||||
| FBA/私人目的仓 | 货物最终送达地址,不是实际接柜仓 |
|
||||
|
||||
### 1.3 三种“完成”必须分开
|
||||
|
||||
1. `LOADED/装柜完成`:国内仓已经把货装进出口柜。
|
||||
2. 国内出仓完成:整柜已经确认离开国内仓,开始船节点跟踪。
|
||||
3. `OUTBOUNDED/海外出库完成`:货已经从海外仓出库;后续可能仍在派送中。
|
||||
|
||||
## 2. 全量流程目录与覆盖矩阵
|
||||
|
||||
### 2.1 订单路径分叉
|
||||
|
||||
| 路径 | 国内测量后 | 国内装柜 | 海外实收 | 海外出库 |
|
||||
|---|---|---|---|---|
|
||||
| 普通 FBA 散货 | 进入 `WAIT_SPLIT` | 按箱码拣货;按真实柜号+FBA仓生成散货托盘码 | 按入仓码/SKU/托盘输入本次实收箱数 | 通常进入智能排车,转派送后 PDA 发车 |
|
||||
| OVERSEAS 海外仓货物 | 进入 `WAIT_SPLIT` | 按箱码拣货并冻结最终实装箱唛 | 按最终箱唛逐箱扫码入托 | 可直接一件代发,或先换标、转运、废弃等库内服务再出库 |
|
||||
| 一件代发 | 先进入 `WAIT_PALLETIZE`,国内逐箱清点、组托和封托后再 `WAIT_SPLIT` | 国内封托托盘作为不可拆整托进入柜次 | 沿用国内封托来源托盘整托收货 | 从可用 SKU/箱唛库存创建一件代发出库,PDA 逐箱或整托完成 |
|
||||
| 私人目的仓 | 进入 `WAIT_SPLIT` | 按普通货物完成国内装柜 | 海外入仓计划按冻结私人地址分组 | 排车转派送时按私人地址拆分派送单 |
|
||||
|
||||
### 2.2 交货方式分叉
|
||||
|
||||
| 客户选择 | 下单必填 | 国内到仓前的数据流 |
|
||||
|---|---|---|
|
||||
| 快递自送 `SELF_EXPRESS` | 国内收货仓、快递/跟踪信息按当前页面要求 | 客户自行寄送,系统保留履约快递快照;到仓后进入统一收货测量 |
|
||||
| 平台上门提货 `PICKUP` | 本企业提货地址、联系人和预约提货时间 | 订单冻结提货地址与时间;当前主链以订单预约事实进入统一订单,不把它混同订舱级拖车 |
|
||||
| 卡车自送 `SELF_TRUCK` | 国内收货仓和客户自送信息 | 客户自行送仓;到仓后进入统一收货测量 |
|
||||
|
||||
交货方式只影响货物如何到达国内收货仓;海运订舱级拖车、目的港码头拖车和海外配送排车属于后续三个独立流程。
|
||||
|
||||
### 2.3 后置服务分叉
|
||||
|
||||
海外入仓完成后并非所有货都直接排车:
|
||||
|
||||
```text
|
||||
INBOUND_COMPLETED
|
||||
├─ 无库内服务 → 智能排车/独立出库
|
||||
├─ 暂扣 → 解除前禁止排车和出库
|
||||
├─ 换标 → PDA完工 → 仓库复核 → 客户确认 → 排车或直接出库
|
||||
├─ 仓储转运 → 平台审核 → 转运出库
|
||||
├─ 货物废弃 → 审核确认时实际扣减库存,不再出库
|
||||
└─ 退货库存 → 合箱/换标后进入退货出库
|
||||
```
|
||||
|
||||
| 编号 | 流程 | 主要操作者/终端 | 入口状态或触发 | 出口状态或结果 | 是否主链 |
|
||||
|---|---|---|---|---|---|
|
||||
| F01 | 企业资料与下单资格 | 客户 Client、平台 Admin | 企业已注册 | 企业资料审核通过 | 前置 |
|
||||
| F02 | 基础资料准备 | 平台 Admin | 仓库/渠道/价格等待维护 | 可用于下单和履约 | 前置 |
|
||||
| F03 | 客户单票下单 | 客户 Client | 有创建权限 | `DRAFT` | 是 |
|
||||
| F04 | 客户批量导入 | 客户 Client | 下载当前模板 | 多张 `DRAFT` | 分支 |
|
||||
| F05 | 订单提交与入仓码 | 客户 Client | 草稿完整 | `SUBMITTED/PENDING_REVIEW` + 入仓码 | 是 |
|
||||
| F06 | 草稿编辑与取消 | 客户 Client | 草稿或允许取消状态 | 更新草稿或 `CANCELLED` | 分支 |
|
||||
| F07 | 平台审核与申报修订 | 平台 Admin | 待审核 | `APPROVED` + 正式国内入库单 | 是 |
|
||||
| F08 | 国内到仓与箱码 | 国内仓 Admin/设备 | 正式入库单 | 可测量箱码/箱唛事实 | 是 |
|
||||
| F09 | 尺寸测量与称重 | 国内仓 Admin/设备 | `WAIT_MEASURE` | 测量批次待审核 | 是 |
|
||||
| F10 | 测量审核与初始计价 | 审核员 Admin | 测量完整 | 普通 `WAIT_SPLIT`;一件代发 `WAIT_PALLETIZE` | 是 |
|
||||
| F11 | 费用发布与客户确认 | 平台 Admin、客户 Client | 已有计费快照 | `SENT`、客户确认快照 | 并行 |
|
||||
| F12 | 国内入库扣货/解除 | 平台 Admin | 尚未发生不可逆物理履约 | HOLD/RELEASE 历史 | 异常 |
|
||||
| F13 | 一件代发国内清点组托 | 国内 PDA、Admin | `WAIT_PALLETIZE` | 封托并进入 `WAIT_SPLIT` | 条件主链 |
|
||||
| F14 | 模拟柜与智能排柜 | 平台 Admin | 候选可分配 | 柜次+预装计划+分配明细 | 是 |
|
||||
| F15 | 海运订舱与放舱 | 平台 Admin | 订舱草稿 | `RELEASED` | 是 |
|
||||
| F16 | 国内订舱级拖车 | 平台 Admin | 有效放舱和提单资料 | 拖车单,离仓后自动完成 | 并行 |
|
||||
| F17 | 柜次关联与真实柜号 | 平台 Admin | 模拟柜+放舱需求 | 订舱分配关系+真实柜号 | 是 |
|
||||
| F18 | 预装确认及动态增减 | 平台 Admin | 成员满足门禁 | 预装确认/PDA 任务 | 是 |
|
||||
| F19 | 国内 PDA 拣货装柜 | 国内 PDA | 可领取任务 | 全部货物核平 | 是 |
|
||||
| F20 | 国内装柜证据与铅封 | 国内 PDA/Admin | 装柜作业中 | 四步照片+SEAL | 是 |
|
||||
| F21 | 装柜完成和分片 | 国内 PDA/系统 | 货物、证据、柜号齐全 | 计划 `COMPLETED`、入库单 `LOADED` | 是 |
|
||||
| F22 | 客户退税资料和整柜报关 | 客户 Client、平台 Admin | 装柜完成 | 整柜报关 `COMPLETED` | 是 |
|
||||
| F23 | 国内出仓 | 系统/平台 Admin | 整柜门禁通过 | 离仓历史+船节点任务 | 是 |
|
||||
| F24 | 海运十节点 | 第三方/船务 Admin | 国内出仓 | `PICKUP_READY` 至 `EMPTY_RETURNED` | 是 |
|
||||
| F25 | 目的港清关、车队、到仓和还空 | 平台 Admin | 海外段柜次可操作 | 清关/提柜/到仓/还空事实 | 并行主链 |
|
||||
| F26 | 跨区尾程建单 | 系统 | 国内最终实装事件 | `PENDING_ASSIGNMENT` 尾程订单 | 是 |
|
||||
| F27 | 尾程计划维护/整柜转换 | 海外运营 Admin | 待分配尾程订单 | `INBOUND_PLANNED`+逐票计划+资源 | 是 |
|
||||
| F28 | 海外 PDA 柜号签收 | 海外 PDA | `PICKUP_READY`+资源齐全 | 柜级收货会话 | 是 |
|
||||
| F29 | 海外 PDA 三类实收 | 海外 PDA | 已签收 | 各入仓码实收核平 | 是 |
|
||||
| F30 | 海外整柜入仓与国内回写 | 海外 PDA/系统 | 全柜待收数为 0 | `INBOUND_COMPLETED`+库存+卸柜回写 | 是 |
|
||||
| F31 | 海外库存、盘点、移库和托盘 | 海外 PDA/Admin | 已有库存 | 库存余额/位置/流水变化 | 支撑 |
|
||||
| F32 | 海外暂扣与解除 | 平台 Admin | 已完成入仓 | 阻断/恢复排车出库资格 | 异常 |
|
||||
| F33 | 换标、转运、废弃 | 客户/平台/PDA | 可用库存 | 新库存/待出库资格/废弃流水 | 分支 |
|
||||
| F34 | 智能预排与排车维护 | 海外运营 Admin | 可用托盘/计划 | `PENDING_DEPARTURE` 排车单 | 是 |
|
||||
| F35 | 排车转派送 | 海外运营 Admin | 未发车排车 | `WAIT_OUTBOUND` 出库单+派送单 | 是 |
|
||||
| F36 | 排车 PDA 拣货与发车 | 海外 PDA | 排车任务 | `READY_TO_DEPART → DEPARTED` | 是 |
|
||||
| F37 | 独立出库任务 | 平台 Admin、海外 PDA | 一件代发/换标/转运/退货库存 | `OUTBOUNDED` | 分支 |
|
||||
| F38 | 派送和签收 | 平台 Admin、客户 Client | `WAIT_DELIVERY` | `DELIVERED` | 主链后续 |
|
||||
| F39 | 派送异常退回 | 平台 Admin、海外仓 | 拒签/退回 | `RETURNED`+恢复库存 | 异常 |
|
||||
| F40 | 客户回访和最终国内回写 | 平台 Admin、系统 | 派送完成或异常处理 | 国内入库单/订单最终完成 | 收口 |
|
||||
|
||||
## 3. 客户、订单与国内入库流程
|
||||
|
||||
### F01 企业资料与下单资格
|
||||
|
||||
1. 企业注册成功后可以登录,不因注册审核阻断登录。
|
||||
2. 客户在公司信息维护企业基本资料、联系方式和资质文件。
|
||||
3. 平台在客户管理审核企业资料;只有审核通过的企业可提交订单。
|
||||
4. 企业管理员给成员分配头程订单查看、创建、提交等权限。
|
||||
5. 提交订单时还会校验 Finance 资金账户;实际余额小于 0 时拒绝提交。
|
||||
|
||||
数据结果:IAM/Auth 保存企业、成员、角色和资格;Order 只消费认证客户身份和资格结果,不接受页面传入客户 ID 作为授权。
|
||||
|
||||
### F02 基础资料准备
|
||||
|
||||
平台应先维护:国内收货仓、FBA/海外目的仓、物流渠道、客户价格、尺寸规则、供应商、订舱代理、车辆及海外实际收货仓。停用主数据不能用于新单,但历史订单继续显示冻结快照。
|
||||
|
||||
### F03 客户单票下单
|
||||
|
||||
入口:Client → 头程订单 → 新建。
|
||||
|
||||
操作顺序:
|
||||
|
||||
1. 选择运输模式、业务类型、国内收货仓、渠道和税务/计价方式。
|
||||
2. 选择交货方式:快递自送、平台上门提货或卡车自送。
|
||||
3. 平台上门提货时选择/保存本企业提货地址并填写预约提货时间。
|
||||
4. 选择目的类型和目的仓;私人仓填写本企业私人目的地址。
|
||||
5. 填写货物明细、SKU、品名、箱数、件数、重量、体积及申报资料。
|
||||
6. 保存草稿。
|
||||
|
||||
输出:`DRAFT`。草稿可以编辑,不生成入仓码,也不进入国内物理履约。
|
||||
|
||||
### F04 客户批量导入
|
||||
|
||||
1. 下载当前客户动态 XLSX 模板。
|
||||
2. 使用模板下拉填写有效仓库、渠道、交货方式和目的仓。
|
||||
3. 单次最多 50 行,上传后服务端逐行校验。
|
||||
4. 支持部分成功或整批原子模式;成功行只创建草稿。
|
||||
5. 客户逐票检查草稿后另行提交。
|
||||
|
||||
批量导入不等于批量提交审核,也不能绕过企业、资金和主数据门禁。
|
||||
|
||||
### F05 订单提交与入仓码
|
||||
|
||||
1. 客户点击“提交订单”。
|
||||
2. 服务端重新校验企业资格、资金账户、仓库、渠道、目的仓、地址和货物。
|
||||
3. 首次成功提交生成全局唯一且固定的 `inboundCode`。
|
||||
4. Order 进入 `SUBMITTED`;统一订单主状态固定显示 `PENDING_REVIEW`。
|
||||
5. 提交、入仓码和时间线写入同一业务结果;重复提交不得生成第二个入仓码。
|
||||
|
||||
### F06 草稿编辑与取消
|
||||
|
||||
- 草稿可编辑、提交或取消。
|
||||
- 已提交后的可编辑字段和取消资格以服务端动作返回为准。
|
||||
- 已进入物理履约的订单不能由客户自行取消。
|
||||
- 平台修订申报不得修改客户、国内收货仓、订单号、入仓码,不得增删或重排货物行。
|
||||
|
||||
### F07 平台审核与正式入库单
|
||||
|
||||
入口:Admin → 统一订单 → 待审核。
|
||||
|
||||
1. 单票查看或一次调用批量审核预览。
|
||||
2. 核对入仓码、客户、货物、渠道、目的仓和逐票阻断原因。
|
||||
3. 必要时修订当前允许的客户申报字段并保留变更审计。
|
||||
4. 审核通过。
|
||||
5. Order 进入 `APPROVED`;Firstleg 幂等创建正式国内入库单,沿用原入仓码。
|
||||
6. 对需要箱码的订单生成稳定箱码/箱唛和 SKU 快照。
|
||||
|
||||
待审核订单即使 Firstleg 已有准备投影,统一主状态仍是待审核,不能提前作为审核通过事实。
|
||||
|
||||
### F08 国内到仓与箱码
|
||||
|
||||
- 仓库通过入仓码或稳定箱码识别货物。
|
||||
- 普通散货使用稳定箱码逐箱关联;一件代发箱码还冻结箱内 SKU。
|
||||
- 客户是否下载/打印箱唛不决定箱码是否有效。
|
||||
- 设备、人工测量和 PDA 必须复用同一箱码映射,不得临时造码。
|
||||
|
||||
### F09 尺寸测量与称重
|
||||
|
||||
1. 第三方设备按入仓码/箱码上传长宽高、箱数、设备和事件号;重复事件幂等。
|
||||
2. 国内仓上传称重图片,系统执行 OCR。
|
||||
3. 操作员保留 OCR 原值并填写修正值/原因。
|
||||
4. 每张有效图片只能计重一次;全部称重图片确认且总重量大于 0。
|
||||
5. 提交测量审核。
|
||||
|
||||
数据并行保存:客户申报值、设备原始值、人工修正值、计费采用值和证据文件,不互相覆盖。
|
||||
|
||||
### F10 测量审核与初始计价
|
||||
|
||||
1. 审核员检查箱数、尺寸、重量、证据和客户尺寸规则。
|
||||
2. 审核通过后执行初始价格匹配和计价。
|
||||
3. 普通订单主状态直接进入 `WAIT_SPLIT`。
|
||||
4. 一件代发进入 `WAIT_PALLETIZE`,完成国内实际组托后再进入 `WAIT_SPLIT`。
|
||||
5. 审核失败按原因修正后重新提交;异常放行必须同时满足配置、权限和原因。
|
||||
|
||||
### F11 费用发布与客户确认
|
||||
|
||||
1. 平台查看系统基准量、价格簿、计价模型和费用明细。
|
||||
2. 允许范围内的人工调整必须带版本、原因和二次确认。
|
||||
3. 审核、发布费用,客户在 Client 查看 `SENT` 的当前版本。
|
||||
4. 客户带费用版本和幂等键确认。
|
||||
5. 新版本会清空旧确认;只有客户已确认且本票装柜完成后费用最终冻结。
|
||||
|
||||
费用是并行状态,不阻断 `WAIT_SPLIT`,也不把订单主流程回退到计费状态。
|
||||
|
||||
### F12 国内扣货与解除
|
||||
|
||||
1. 平台在统一订单对正式入库单执行扣货,填写原因并上传有效凭证。
|
||||
2. HOLD 阻断后续物理履约写入。
|
||||
3. 解除扣货同样使用版本和幂等键,保留不可变历史。
|
||||
4. 已发生拣货、装柜或出仓时禁止手工扣货/解除。
|
||||
|
||||
### F13 一件代发国内清点组托
|
||||
|
||||
1. 测量审核后按预计托数生成 `DP` 托盘码。
|
||||
2. Admin 打印每托信息单。
|
||||
3. 国内 PDA 可先扫箱或先扫托盘,逐箱清点完整 SKU 后归托。
|
||||
4. 同仓多票可共用开放托盘;参与本票的开放托盘阻断本票完成。
|
||||
5. 操作员逐托封托;未进入装柜计划前可按规则解封。
|
||||
6. 全部箱和实际参与托盘核平后进入 `WAIT_SPLIT`。
|
||||
|
||||
## 4. 国内货柜履约流程
|
||||
|
||||
### F14 模拟柜与智能排柜
|
||||
|
||||
1. Admin 创建模拟柜,选择正式装柜仓、计划渠道组、柜型、容量和限重。
|
||||
2. 系统生成稳定 `containerBookingId`、`cabinetNo` 和唯一预装计划。
|
||||
3. 工作台查询 `PENDING_REVIEW/WAIT_MEASURE/WAIT_SPLIT/LOADING` 候选;状态只用于展示,资格取服务端 `canAssign`。
|
||||
4. 待审核/待测量可提前占位,但确认预装和启动 PDA 前必须进入 `WAIT_SPLIT`。
|
||||
5. 普通货按箱数分配;一件代发按封托托盘不可拆分分配;同柜组按完整组处理。
|
||||
6. 服务端校验剩余箱数、容量、重量、渠道、组锁和版本。
|
||||
|
||||
### F15 海运订舱与放舱
|
||||
|
||||
1. Admin 新建订舱草稿,可先部分保存柜型需求。
|
||||
2. 补齐提单号、船名、航次、ETD、ETA、运输条款、渠道和有效订舱资料。
|
||||
3. 点击放舱后状态进入 `RELEASED`,冻结订舱运输快照。
|
||||
4. 订舱只记录柜型需求,不在订舱阶段自动创建另一批货柜。
|
||||
|
||||
### F16 国内订舱级拖车
|
||||
|
||||
1. 从服务端候选选择 `RELEASED` 且资料完整的订舱。
|
||||
2. 选择 `TRUCKING/DOMESTIC` 供应商,维护计划装柜时间和附件。
|
||||
3. 每个订舱最多一张非终态拖车单;重复创建回到既有单。
|
||||
4. 拖车不绑定客户、柜次、装柜计划或真实柜号。
|
||||
5. PDA 装柜完成不推进拖车;订舱全部要求货柜确认离开国内仓后,拖车自动完成并生成按实装体积分摊的应付费用。
|
||||
|
||||
### F17 柜次关联与真实柜号
|
||||
|
||||
1. 港口取得真实柜号后,选择模拟柜和已放舱订舱的未满配柜型需求。
|
||||
2. 服务端校验仓库、渠道、柜型、容量、限重、客户范围和柜号唯一性。
|
||||
3. 在原模拟柜上补订舱、需求和真实柜号;稳定柜次 ID、计划和明细不变。
|
||||
4. 正式操作统一在预装确认和 PDA 启动前补齐真实柜号;最终装柜完成必须有柜号。
|
||||
|
||||
### F18 预装确认及动态增减
|
||||
|
||||
1. Admin 打开预装详情核对入仓码、箱数、托盘和备注。
|
||||
2. 计划级确认整份预装,生成或开放唯一 PDA 任务。
|
||||
3. PDA 最终完成前,`EDITING/LOADING` 计划可继续新增满足条件的明细。
|
||||
4. 未拣明细可调整或移除;已拣数量形成最小值,不能删除或减到已拣以下。
|
||||
5. 新增明细会递增计划/任务版本;PDA 旧版本必须刷新。
|
||||
|
||||
### F19 国内 PDA 拣货装柜
|
||||
|
||||
普通散货:扫描稳定箱码,一箱一码,批量提交;不能用 SKU、件数或入仓码替代箱码。
|
||||
|
||||
一件代发:扫描托盘码或托盘成员箱码定位整托,以 `PICK_PALLET` 一次提交整托;不能部分拣货。
|
||||
|
||||
共同流程:领取任务 → 扫描/确认 → 批量提交 → 未完成项处理异常 → 全部核平 → 最终完成。
|
||||
|
||||
### F20 装柜证据与铅封
|
||||
|
||||
需要四步现场照片 `PHOTO_STEP_1..4` 和一条带铅封号的 `SEAL`。同类可追加;错误照片作废而非硬删除。PDA 现场拍摄,Admin 可按权限补充上传。
|
||||
|
||||
### F21 装柜完成和分片
|
||||
|
||||
1. 服务端重新校验真实柜号、订舱、计划、PDA 明细和五类证据。
|
||||
2. 全部通过后计划进入 `COMPLETED`,来源入库单进入 `LOADED`。
|
||||
3. 部分装载时数量守恒:已装数量形成子入库单,余量保留后续子单;只允许一层分片。
|
||||
4. 生成最终实装清单、托盘/SKU/箱唛快照和跨区 Outbox。
|
||||
|
||||
### F22 客户资料与整柜出口报关
|
||||
|
||||
1. 客户按订单上传本客户退税/报关资料。
|
||||
2. 平台按整柜汇总多个入仓码资料,开始报关后冻结当前资料。
|
||||
3. 平台线下完成报关后逐资料上传完成文件并完成整柜报关。
|
||||
4. 全买单柜由平台确认并通过导出中心获取明细。
|
||||
5. 报关完成后系统立即尝试确认国内出仓;其他门禁未齐时由受控补偿重试。
|
||||
|
||||
### F23 国内出仓
|
||||
|
||||
当前硬门禁:未扣货、所有入库单 `LOADED`、装柜计划完成、国内 PDA 完成、订舱 `RELEASED`、四步照片和铅封完整、整柜报关完成。
|
||||
|
||||
操作结果:
|
||||
|
||||
- 系统自动尝试;未自动收敛时平台在柜次/国内出仓页点击确认离仓。
|
||||
- 整柜写入唯一离仓历史并创建 `CarrierScheduleQuery`。
|
||||
- 产生第一条实际 `DEPARTED_WAREHOUSE`。
|
||||
- 尝试完成订舱级拖车。
|
||||
- 产生实际离仓节点后禁止撤销。
|
||||
|
||||
独立拖车状态和独立船期只做参考,不是当前出仓硬门禁。
|
||||
|
||||
## 5. 海运、目的港和跨区流程
|
||||
|
||||
### F24 海运十节点
|
||||
|
||||
实际节点依次为:
|
||||
|
||||
`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` 后查询停止。
|
||||
|
||||
### F25 目的港清关、车队、到仓和还空
|
||||
|
||||
1. Admin 在“清关提柜”查看海外段柜次并维护目的港清关、DO 和 PU。
|
||||
2. 选择海外车队后发送提柜请求邮件;换车队时保存旧车队取消和新车队提柜两封邮件。
|
||||
3. 预计到仓由平台维护,并按 `sourceContainerBookingId` 同步整柜尾程订单;已有入仓计划后锁定。
|
||||
4. 实际到仓只取海外 PDA 首次开始收货时间。
|
||||
5. 海外卸柜完成后生成还空截止和预警;可按权限登记真实还柜时间。
|
||||
6. 还柜时间不得早于卸柜完成或已有提柜时间;成功后同步 `EMPTY_RETURNED`。
|
||||
|
||||
目的港码头拖车与国内订舱级拖车、海外配送排车是三个独立生命周期。
|
||||
|
||||
### F26 跨区尾程建单
|
||||
|
||||
1. Firstleg 按最终实装发布版本化装柜完成事件。
|
||||
2. Event Bridge 跨区域投递,Lastleg Inbox 幂等消费。
|
||||
3. 每票生成尾程订单和冻结货物明细,状态 `PENDING_ASSIGNMENT`。
|
||||
4. 建立 `FIRST_LEG` 在途库存快照,计划生成前以来源入仓码展示。
|
||||
5. 事件只建订单,不自动建入仓计划。
|
||||
6. 同一来源事件重放不能生成第二张尾程订单。
|
||||
|
||||
## 6. 海外入仓与库存流程
|
||||
|
||||
### F27 尾程计划维护和整柜转换
|
||||
|
||||
主入口:Admin → 海外仓 → 尾程订单 → 柜级工作台。
|
||||
|
||||
1. 按 `sourceContainerBookingId` 查看整柜全部订单,不使用当前分页拼柜。
|
||||
2. 可逐票维护托数、托盘类型、分配、可合托、加急和备注;入仓码、接柜仓和预计到仓只读。
|
||||
3. 单票柜保存计划后立即生成资源;多票柜在最后一票计划齐全时生成全柜资源。
|
||||
4. 柜级转换前读取服务端预览:分组、头程已有托数、海外补充托数、最终托数、阻断项、快照版本/哈希。
|
||||
5. 确认转换后服务端锁柜重算,逐票生成独立计划并批量确认托盘/库位资源。
|
||||
6. 尾程订单进入 `INBOUND_PLANNED`;资源异常用 `resourcePendingPlanCount` 定向重试。
|
||||
|
||||
散货保留头程托盘码,不足部分连续补码;一件代发严格沿用国内封托托盘,不允许重算托数。
|
||||
|
||||
### F28 海外 PDA 柜号签收
|
||||
|
||||
前置:实际 `PICKUP_READY`、计划和资源齐全、操作员绑定正确收货仓。
|
||||
|
||||
1. PDA 在待卸货列表选择物理柜并锁定。
|
||||
2. 核对同柜全部入仓码、目的仓、托数和箱数。
|
||||
3. 查看国内五类装柜照片作为只读对照;单图加载失败不阻断。
|
||||
4. 依次拍车牌 `LICENSE_PLATE`、封签 `CONTAINER_SEAL`、开柜现场 `DOOR_OPEN`。
|
||||
5. 三类照片齐全后确认签收并进入收货。
|
||||
|
||||
柜级会话按物理柜聚合,可包含多客户;签收后每票 PDA 任务仍按真实客户隔离。
|
||||
|
||||
### F29 海外 PDA 三类实收
|
||||
|
||||
| 类型 | 操作方式 | 禁止事项 |
|
||||
|---|---|---|
|
||||
| FBA 散货 | 选入仓码,扫冻结 SKU,扫托盘,输入本次箱数 | 不能超收,不能走逐箱模式 |
|
||||
| OVERSEAS | 扫最终实装箱唛自动定位入仓码,扫托盘,逐箱确认 | 不能批量输入箱数,已收箱不能重复收 |
|
||||
| 一件代发 | 按国内封托来源托盘整托收货,并逐入仓码核平 | 不能拆解国内冻结托盘事实后重新猜配 |
|
||||
|
||||
“可合托”只提供现场选择;独立收货扫新托盘,合托扫同目的仓已使用托盘。它不是实收或整柜完成门禁。
|
||||
|
||||
### F30 海外整柜入仓与国内回写
|
||||
|
||||
1. 所有入仓码 `pendingPackages=0` 后完成整柜。
|
||||
2. 同事务推进计划/任务和尾程主状态 `INBOUND_COMPLETED`。
|
||||
3. 生成库存余额、库存位置、进销存流水和托盘组成。
|
||||
4. 发布唯一 `OVERSEAS_CONTAINER_UNLOADED` 事件。
|
||||
5. 国内写入卸柜完成、照片上传和预计报空时间;事件重放不重复写事实。
|
||||
|
||||
### F31 海外库存、盘点、移库和托盘
|
||||
|
||||
- Admin 查询库存余额、位置、流水、托盘和 CSV。
|
||||
- 海外 PDA 可执行当前工作台已开放的库存/库位/托盘查询、同仓整托移库和托盘组拆换绑。
|
||||
- 托盘是现场作业单位,不是库存客户归属单位;同一合托托盘可包含多票组成明细。
|
||||
- 普通入仓只记录某票在托盘上的箱数,不代表每个箱唛都有精确托盘快照。
|
||||
|
||||
### F32 海外暂扣与解除
|
||||
|
||||
1. 只允许尾程订单完成入仓后新增暂扣。
|
||||
2. 暂扣只作用于本票,阻断排车和出库,不影响同柜其他票。
|
||||
3. 暂扣不回退入仓计划、入仓事实和库存历史。
|
||||
4. 解除后恢复后续资格,保留版本化历史。
|
||||
|
||||
### F33 换标、转运和废弃
|
||||
|
||||
- 换标:客户从可用库存申请,PDA 扫箱/换标/照片,仓库复核后客户确认;客户确认前不能出库。
|
||||
- 仓储转运:客户申请,平台在尾程订单审核通过/驳回;通过后进入转运出库。
|
||||
- 货物废弃:创建时只冻结库存,仓库/PDA 审核确认时才实际扣减并写逐箱流水。
|
||||
|
||||
这些子单状态保存在 `sub_order_status`,不能覆盖尾程主流程 `INBOUND_COMPLETED`。
|
||||
|
||||
## 7. 海外排车和出库流程
|
||||
|
||||
### F34 智能预排与排车维护
|
||||
|
||||
1. Admin 从真实入仓计划、已收托盘或已具备资格的换标库存加载候选。
|
||||
2. 托盘加入草稿立即加草稿锁;移除或关闭草稿时释放。
|
||||
3. 选择车型,核对托位、箱数、重量和目的仓。
|
||||
4. 点击预排,草稿锁原子转换为正式排车锁并生成排车单。
|
||||
5. 编辑车牌、司机、电话、车队、预计发车/到达、FBA 预约和车辆预约。
|
||||
6. 路线由已排托盘目的仓自动汇总,不能人工填写。
|
||||
7. 未执行排车可取消并释放锁;普通编辑不得修改状态。
|
||||
|
||||
### F35 排车转派送
|
||||
|
||||
可在 `PENDING_DEPARTURE/PICKING/READY_TO_DEPART` 操作,但必须早于发车。
|
||||
|
||||
1. 填写预计派送时间、方式、提货/装车类型、车队/快递、车辆、预约和费用。
|
||||
2. 服务端校验所有排车托盘已经真实入仓。
|
||||
3. 一张排车单生成一张车辆级 `WAIT_OUTBOUND` 出库单。
|
||||
4. 按目的 FBA 仓或私人地址生成一张或多张 `WAIT_DELIVERY` 派送单。
|
||||
5. 相同排车重复转派送返回既有单据,不重复生成。
|
||||
|
||||
### F36 排车 PDA 拣货与发车
|
||||
|
||||
1. 海外 PDA 打开本仓排车任务。
|
||||
2. 扫描托盘并校验排车、仓库、库存位置和计划箱数。
|
||||
3. 成功扫描时执行库存分配、拣货和出库扣减;重复请求幂等。
|
||||
4. 全部托盘/箱数核平后 PDA 任务 `COMPLETED`、排车 `READY_TO_DEPART`。
|
||||
5. 发车门禁还要求车辆完整、已转派送且出库单仍是 `WAIT_OUTBOUND`。
|
||||
6. 发车后排车 `DEPARTED`、出库单 `OUTBOUNDED`,释放托盘锁。
|
||||
|
||||
库存扣减发生在成功 PDA 扫码事务;发车只推进排车和出库事实,不能再次扣库存。
|
||||
|
||||
### F37 独立出库任务
|
||||
|
||||
| 出库类型 | 创建前置 | PDA 操作 | 完成结果 |
|
||||
|---|---|---|---|
|
||||
| 一件代发 | 已完成入仓、有可用箱唛/SKU/库存位置;一单唯一客户和仓 | 逐箱或扫 DP 托盘整托拣取 | `WAIT_PICK → PICKING/PICKED → OUTBOUNDED` |
|
||||
| 换标出库 | 仓库复核且客户确认 | 按换标后箱唛/托盘拣货 | 换标单完成、出库单 `OUTBOUNDED` |
|
||||
| 仓储转运 | 申请审核通过 | 按冻结来源托盘/箱数拣货 | 转运单 `OUTBOUNDED` |
|
||||
| 退货出库 | 退货箱/SKU 可用库存 | 按冻结退货库存拣货 | 退货库存扣减、出库单完成 |
|
||||
|
||||
出库单只有未开始的 `WAIT_PICK/WAIT_OUTBOUND` 可取消;作业开始后不能通过取消恢复库存。
|
||||
|
||||
## 8. 派送、异常和最终回写
|
||||
|
||||
### F38 派送和签收
|
||||
|
||||
派送单状态:`WAIT_DELIVERY → DELIVERING → DELIVERED`;也可能进入 `REJECTED/CANCELLED`。
|
||||
|
||||
1. Admin/Client 查看按目的仓拆分的派送单。
|
||||
2. 平台开始派送或维护允许的状态。
|
||||
3. 上传并保存签收资料后系统自动完成派送;不提供脱离签收资料的人工“完成派送”按钮。
|
||||
4. 派送完成发布跨区完成事件。
|
||||
|
||||
### F39 派送异常退回
|
||||
|
||||
1. 平台从派送创建异常单,状态 `PENDING → PROCESSING → COMPLETED`。
|
||||
2. 退回明细只能从原出库拣货事实选择,不能自由填写 SKU/数量。
|
||||
3. 退回海外仓时选择服务端校验的真实托盘和库位并实收。
|
||||
4. 库存恢复、异常完成和派送 `RETURNED` 同事务完成。
|
||||
5. 完成异常必须有 `OVERSEAS_EXCEPTION_EVIDENCE` 证据。
|
||||
|
||||
### F40 客户回访和国内最终回写
|
||||
|
||||
- 平台在客户回访记录结果和附件,作为派送后的业务闭环资料。
|
||||
- 海外派送完成事件回到国内后,Firstleg 按来源订单、入仓码和目的仓校验。
|
||||
- 对应国内入库单从 `LOADED` 推进到 `DELIVERED`。
|
||||
- 同一 Order 的全部有效入库单都完成后,Order 才进入 `COMPLETED`。
|
||||
- 任一事件重放不得重复推进、重复写历史或重复费用。
|
||||
|
||||
## 9. 单据、编号和数据交接关系
|
||||
|
||||
```text
|
||||
客户 orderNo
|
||||
└─ inboundCode(提交时生成)
|
||||
└─ 国内 inboundId / 箱码 / 测量批次 / 费用版本
|
||||
└─ containerBookingId + cabinetNo + containerNo
|
||||
└─ loadingPlanId / 国内 PDA task / 装柜证据
|
||||
└─ 跨区 eventId
|
||||
└─ 尾程订单 + planNo
|
||||
└─ 海外实物 palletNo / 库位 / 库存流水
|
||||
└─ dispatchNo
|
||||
└─ outboundNo
|
||||
└─ deliveryNo
|
||||
```
|
||||
|
||||
业务人员使用订单号、入仓码、柜次号、真实柜号、计划号、托盘号、排车单号、出库单号和派送单号定位。内部数据库 ID 只用于接口关联和诊断,不作为用户可见编号回退。
|
||||
|
||||
## 10. 状态维度关系
|
||||
|
||||
| 状态维度 | 归属 | 例子 | 不能做的事 |
|
||||
|---|---|---|---|
|
||||
| 订单交易状态 | Order | `DRAFT/SUBMITTED/APPROVED/CANCELLED/COMPLETED` | 不能用海外子单状态覆盖 |
|
||||
| 国内履约主状态 | Firstleg | `WAIT_MEASURE/WAIT_PALLETIZE/WAIT_SPLIT/LOADING/LOADED/DELIVERED` | 费用变化不能回退主状态 |
|
||||
| 测量审核 | Firstleg | `PENDING/APPROVED/REJECTED` | 不能代替订单审核 |
|
||||
| 费用状态 | Firstleg/Finance | 试算、审核、发布、客户确认 | 不能表示货物已入库或出库 |
|
||||
| 柜次/装柜计划 | Firstleg | `EDITING/LOADING/COMPLETED` | 不能替代单票入库状态 |
|
||||
| 尾程主流程 | Lastleg | `PENDING_ASSIGNMENT/INBOUND_PLANNED/INBOUND_COMPLETED` | 不用出库/派送子状态覆盖 |
|
||||
| 排车 | Lastleg | `PENDING_DEPARTURE/PICKING/READY_TO_DEPART/DEPARTED` | 不等于出库或派送状态 |
|
||||
| 出库 | Lastleg | `WAIT_PICK/PICKING/PICKED/WAIT_OUTBOUND/OUTBOUNDED` | 不等于派送签收 |
|
||||
| 派送 | Lastleg | `WAIT_DELIVERY/DELIVERING/DELIVERED/REJECTED/RETURNED` | 不反向改写库存,退回走专用事务 |
|
||||
|
||||
## 11. 人工动作、系统动作和异步动作
|
||||
|
||||
| 类型 | 代表动作 | 判断完成的证据 |
|
||||
|---|---|---|
|
||||
| 人工动作 | 提交订单、审核、测量确认、预装、PDA 扫码、报关、转派送 | 服务端返回新版本/状态和业务历史,不以按钮消失为准 |
|
||||
| 系统同步动作 | 生成入仓码、审核建国内入库单、计划转换、库存扣减 | 同一事务内的单据和状态结果 |
|
||||
| 系统异步动作 | 跨区尾程建单、海外卸柜回写、派送完成回写、费用入池 | Outbox/Inbox 消费结果和下游业务单据 |
|
||||
| 第三方动作 | 测量设备、船司轨迹、邮件发送 | 带来源、事件号、观测时间和处理结果的不可变记录 |
|
||||
|
||||
异步页面暂未出现数据时,先检查事件状态并等待受控重试,不能手工造下游数据。
|
||||
|
||||
## 12. 当前明确的流程边界和冲突口径
|
||||
|
||||
1. 测量审核通过后主流程进入 `WAIT_SPLIT`;费用独立处理,不再以“发送费用”作为唯一入库成功节点。
|
||||
2. 装柜完成跨区事件只生成待分配尾程订单,不自动生成入仓计划。
|
||||
3. 国内出仓当前硬门禁不含订舱级拖车状态和独立船期;旧验收稿中的相关硬门禁已过期。
|
||||
4. 真实柜号允许后补的历史指引存在差异;正式操作统一在预装确认/PDA 启动前补齐,服务端最终装柜完成必须有柜号。
|
||||
5. 海外尾程主状态与换标、转运、排车、出库、派送子状态分开保存。
|
||||
6. 目的港提柜时间、预计到仓和实际到仓不能相互替代。
|
||||
7. 国内出仓、海外入仓、海外出库和派送完成是四个不同业务节点。
|
||||
|
||||
## 13. 文档评审清单
|
||||
|
||||
业务、产品、运营、仓库和技术应逐项确认:
|
||||
|
||||
- [ ] F01~F40 是否有实际业务流程遗漏
|
||||
- [ ] 每一步实际操作者和终端是否正确
|
||||
- [ ] 各流程入口状态、完成状态和下一责任岗位是否正确
|
||||
- [ ] 三种交货方式和三种海外实收方式是否与现场一致
|
||||
- [ ] 一件代发整托规则是否与国内、海外现场一致
|
||||
- [ ] 国内订舱级拖车、目的港码头拖车、海外配送排车是否完全区分
|
||||
- [ ] 报关、清关、DO、PU、提柜、预计/实际到仓和还空时序是否正确
|
||||
- [ ] 跨区只建尾程订单、人工计划转换的口径是否确认
|
||||
- [ ] 暂扣、换标、转运、废弃、退货和异常退回对出库资格的影响是否完整
|
||||
- [ ] 海外扫码即扣库存、发车不重复扣减的口径是否与仓库账实一致
|
||||
- [ ] 派送完成后国内 `DELIVERED/COMPLETED` 回写规则是否符合业务认知
|
||||
- [ ] 当前页面是否都存在对应人工入口;缺入口项需单独登记,不能在流程图中假装可操作
|
||||
|
||||
评审完成后,再以本清单逐项标注“保留、合并、自动化、简化、删除”,进入易用性和数据流转优化设计。
|
||||
|
||||
## 14. 事实来源
|
||||
|
||||
- `docs/业务快速索引.md`
|
||||
- `docs/订单与客户/README.md`
|
||||
- `docs/订单与客户/订单与客户头程订单闭环设计.md`
|
||||
- `docs/入库测量与计费/README.md`
|
||||
- `docs/入库测量与计费/入库测量与计费需求优化版-v2-测量计费入库主流程.md`
|
||||
- `docs/国内货柜履约/README.md`
|
||||
- `docs/国内货柜履约/归档/货柜管理全链验收矩阵-2026-08-13.md`
|
||||
- `docs/海外仓业务/README.md`
|
||||
- `docs/海外仓业务/虫虫出海全流程人工验收手册.md`
|
||||
- `baiyue-firstleg/order/AGENTS.md`
|
||||
- `baiyue-firstleg/firstleg/AGENTS.md`
|
||||
- `baiyue-firstleg/lastleg-service/AGENTS.md`
|
||||
- `apps/admin-web/AGENTS.md`
|
||||
- `apps/admin-web/src/modules/overseas-warehouse/AGENTS.md`
|
||||
- `apps/client-web/AGENTS.md`
|
||||
- `apps/pda-uniapp/AGENTS.md`
|
||||
- `apps/pda-overseas-uniapp/AGENTS.md`
|
||||
|
||||
@@ -0,0 +1,299 @@
|
||||
# 头程到尾程 AI 流程优化上下文包
|
||||
|
||||
> **规则基线声明(2026-09-24)**:本文中的旧状态表和阶段合同可能保留历史口径,不能覆盖当前流程。当前分析必须先采用 [头程到尾程流程节点梳理(重构版)](../../头程到尾程流程节点梳理.md) 和 [报关资料与船期价格接入梳理](../../国内货柜履约/报关资料与船期价格接入梳理.md):`LOADED` 后报关线、送港线并行,客户逐轮确认后整柜正式申报,送港可甩柜,实际开船后才进入海运节点。
|
||||
|
||||
> 用途:给 AI、产品、业务和技术提供同一份优化输入规范。本文不替代六阶段现状文档,也不直接改变状态机;它定义分析顺序、术语、证据、指标、输出格式和实施门禁,防止 AI 只根据局部页面提出脱离业务事实的建议。
|
||||
|
||||
## 1. 第二轮完整性审计结论
|
||||
|
||||
现有材料已经覆盖 F01~F40 的操作、状态、异常和交接,但若要让 AI 持续辅助优化,还需要补齐以下横向信息:
|
||||
|
||||
| 缺口 | 为什么重要 | 本文补充方式 |
|
||||
|---|---|---|
|
||||
| 文档读取优先级 | AI 容易拿历史规划覆盖当前实现 | 固定事实优先级和最小上下文 |
|
||||
| 统一术语和对象关系 | “柜次、订舱、拖车、托盘”等容易混淆 | 建立术语与禁止混用表 |
|
||||
| 流程变体矩阵 | 单一主链会漏掉一件代发、私人地址、异常退回 | 明确变体和分叉点 |
|
||||
| 跨端 RACI | 仅写角色仍不清楚谁负责、谁批准、谁被通知 | 建立阶段级责任矩阵 |
|
||||
| 输入输出合同 | AI 容易建议重复录入或跨服务改权威数据 | 固定六阶段交接合同 |
|
||||
| 阻断原因分类 | “不能继续”若无分类,无法做任务卡和统计 | 定义 blocker 分类和恢复动作 |
|
||||
| 指标口径与基线 | 没有分母、起止点就无法验证“更好用” | 建立指标字典和基线采集表 |
|
||||
| 问题证据格式 | 主观反馈无法排序,也无法复现 | 统一问题观察记录 |
|
||||
| 优化卡模板 | 建议容易停留在“做个工作台” | 强制写现状、方案、数据、验收和回滚 |
|
||||
| AI 输出约束 | AI 可能新建平行状态机、引入兼容层或越权自动化 | 明确禁止项和完成定义 |
|
||||
|
||||
## 2. AI 读取顺序
|
||||
|
||||
每次只读取与目标阶段相关的最小材料,按以下顺序判断事实:
|
||||
|
||||
1. 当前对话中的业务确认;
|
||||
2. 对应阶段文档;
|
||||
3. [现状流程全景清单](头程下单到尾程出库现状流程全景清单.md);
|
||||
4. 目标应用、服务最近的 `AGENTS.md`;
|
||||
5. 当前 Controller、DTO、Service、页面和 OpenAPI;
|
||||
6. 当前阶段设计/审核记录;
|
||||
7. 原型;
|
||||
8. 历史规划和旧验收记录。
|
||||
|
||||
优化分析的默认入口:
|
||||
|
||||
- 总览:[分阶段流程目录](../../头程到尾程分阶段流程/README.md)
|
||||
- 操作:[全流程操作手册](头程下单到尾程出库全流程操作手册.md)
|
||||
- 现状:[现状流程全景清单](头程下单到尾程出库现状流程全景清单.md)
|
||||
- 方案:[易用性与数据流转优化方案](头程下单到尾程出库流程易用性与数据流转优化方案.md)
|
||||
- 约束:本文
|
||||
|
||||
出现冲突时必须明确写出“来源 A、来源 B、采用哪一项及原因”,不能静默拼接两套口径。
|
||||
|
||||
## 3. 统一术语与禁止混用
|
||||
|
||||
| 术语 | 正确定义 | 不得混用为 |
|
||||
|---|---|---|
|
||||
| 订单号 `orderNo` | 客户交易订单业务号 | 入仓码、入库单号 |
|
||||
| 入仓码 `inboundCode` | 从头程提交到海外尾程持续使用的稳定关联码 | 内部 `inboundId`、计划号 |
|
||||
| 柜次号 `cabinetNo` | 平台模拟柜/柜次业务编号 | 真实集装箱号 |
|
||||
| 真实柜号 `containerNo` | 船司/码头识别的物理集装箱号 | 模拟柜 ID |
|
||||
| 海运订舱 | 船司运输、提单和柜型需求聚合 | 柜次、国内拖车 |
|
||||
| 国内订舱级拖车 | 一个已放舱订舱的国内提柜/送柜任务 | 目的港码头拖车、海外配送排车 |
|
||||
| 目的港码头拖车 | 海外清关后提柜、到仓和还空链路 | 海外配送排车 |
|
||||
| 海外配送排车 | 海外库存出库后送往 FBA/私人地址的车辆任务 | 目的港提柜 |
|
||||
| 头程普通托盘码 | 预装/装柜阶段按真实柜号与 FBA 仓生成 | 一件代发 `DP` 托盘 |
|
||||
| 一件代发 `DP` 托盘 | 国内测量后逐箱 SKU 清点并封托的来源托盘 | 海外仓随意重打托盘 |
|
||||
| 海外实物托盘 | Warehouse Overseas 管理的公共物理资源 | 库存客户归属 |
|
||||
| `LOADED` | 国内实际装柜完成 | 国内实际离仓、海外入仓 |
|
||||
| `DEPARTED_WAREHOUSE` | 柜子实际离开国内仓 | 船已开航 |
|
||||
| `PICKUP_READY` | 目的港清关完成、可提柜 | 已提柜、已到海外仓 |
|
||||
| `INBOUND_COMPLETED` | 海外实收和库存入账完成 | 已出库、已派送 |
|
||||
| `OUTBOUNDED` | 对应出库单已完成出库 | 客户/目的仓已签收 |
|
||||
| `DELIVERED` | 目的派送签收完成 | 仅发车或仅上传 BOL |
|
||||
|
||||
用户页面只展示业务号;内部 ID 只能出现在接口关联或可折叠诊断信息。
|
||||
|
||||
## 4. 必须覆盖的流程变体
|
||||
|
||||
AI 分析任何阶段时,至少检查下列适用变体,不能只优化最顺畅的一条 FBA 散货主链:
|
||||
|
||||
| 维度 | 变体 | 关键差异 |
|
||||
|---|---|---|
|
||||
| 下单方式 | 单票、批量导入 | 批量需预览、逐行错误和重试 |
|
||||
| 国内交货 | 自送、快递、平台提货 | 平台提货是否有独立派车/回执仍需业务确认 |
|
||||
| 目的类型 | FBA、OVERSEAS、PRIVATE | 目的仓、逐箱事实、私人地址和派送拆分不同 |
|
||||
| 履约类型 | 普通、一件代发 | 一件代发国内先清点封托,海外必须沿用来源托盘 |
|
||||
| 装柜 | 整票、部分装载、一票多柜、多票拼柜 | 分片、数量守恒和 Order 最终完成条件不同 |
|
||||
| 海外收货 | FBA bulk、OVERSEAS carton、dropship pallet | 批量箱数、逐箱、整托三种操作不可混用 |
|
||||
| 海外托盘 | 独立托盘、同目的仓合托 | 合托不改变客户和入仓单归属 |
|
||||
| 后续服务 | 正常排车、换标、转运、废弃、退货出库 | 库存锁、资格和子状态不同 |
|
||||
| 派送结果 | 正常签收、拒收/取消、异常退回 | 退回必须恢复原出库来源库存 |
|
||||
| 系统结果 | 同步成功、异步处理中、可重试失败、永久失败 | 页面回执和人工动作不同 |
|
||||
|
||||
## 5. 六阶段 RACI
|
||||
|
||||
缩写:R=实际执行,A=最终负责/批准,C=协作或复核,I=需要知会。
|
||||
|
||||
| 阶段 | 企业客户 | 平台订单/运营 | 国内仓/PDA | 海外运营 | 海外仓/PDA | 财务/客服 | 系统 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 1 下单审核 | R | A/R | I | I | I | C | C |
|
||||
| 2 测量计费组托 | C | A/C | R | I | I | C | R |
|
||||
| 3 国内装柜出仓 | C | A/R | R | I | I | C | R |
|
||||
| 4 海运与尾程计划 | I | R/C | I | A/R | I | I | R |
|
||||
| 5 海外入仓与库内 | C | I | I | A/C | R | C | R |
|
||||
| 6 排车出库派送 | I/C | I | I | A/R | R | R/C | R |
|
||||
|
||||
RACI 是评审起点,不是权限契约。具体按钮仍由服务端权限码、身份范围和当前状态决定。优化建议若改变 A/R,必须列为业务决策,不能由页面设计默认改变职责。
|
||||
|
||||
## 6. 阶段输入输出合同
|
||||
|
||||
| 阶段 | 最小输入 | 成功输出 | 下一阶段硬前置 |
|
||||
|---|---|---|---|
|
||||
| 1 | 客户身份、仓库/渠道/目的地、申报 | `APPROVED`、固定入仓码、正式国内入库单 | `WAIT_MEASURE` |
|
||||
| 2 | 正式入库单、稳定箱码、实到货物 | 审核实测;普通/组托完成后 `WAIT_SPLIT` | 无 HOLD、数量证据完整 |
|
||||
| 3 | `WAIT_SPLIT` 箱/整托、柜型与运输资料 | `LOADED`、报关放行、实际国内离仓 | `DEPARTED_WAREHOUSE` 和最终实装快照 |
|
||||
| 4 | 真实柜、订舱、离仓、装柜完成事件 | 尾程订单、`FIRST_LEG` 在途、入仓计划和资源 | `INBOUND_PLANNED`、`PICKUP_READY` |
|
||||
| 5 | 可收柜、每票计划、真实资源 | `INBOUND_COMPLETED`、库存余额/位置/流水 | 可用库存且无对应阻断 |
|
||||
| 6 | 可用库存、目的地、车辆/服务资料 | 签收、国内 `DELIVERED`、Order `COMPLETED` | 所有有效入库单均完成 |
|
||||
|
||||
任何优化都必须说明是否改变合同。只改页面布局时不得暗中改变状态推进、数据所有者或阶段完成判定。
|
||||
|
||||
## 7. 阻断原因分类
|
||||
|
||||
建议服务端统一返回:`blockerCode/category/message/ownerRole/recoveryAction/deepLink/retryable/detectedAt`。
|
||||
|
||||
| 分类 | 示例 | 默认责任 | 恢复方式 |
|
||||
|---|---|---|---|
|
||||
| `DATA_MISSING` | 缺箱码、重量图片、真实柜号、车辆资料 | 当前录入岗位 | 补齐字段/附件 |
|
||||
| `STATE_NOT_READY` | 未审核、未 `WAIT_SPLIT`、未完成拣货 | 上一步岗位 | 完成上一步,不强制跳过 |
|
||||
| `PERMISSION_DENIED` | 无审核、放行、调整权限 | 管理员/负责人 | 授权或由有权人处理 |
|
||||
| `VERSION_CONFLICT` | 页面版本过期 | 当前操作员 | 刷新并重新核对 |
|
||||
| `RESOURCE_CONFLICT` | 托盘/库位/库存已占用 | 仓库/调度 | 换资源或释放合法锁 |
|
||||
| `BUSINESS_HOLD` | 国内 HOLD、海外暂扣、换标冻结 | 发起阻断的岗位 | 按证据解除 |
|
||||
| `EXTERNAL_WAIT` | 船司、清关、车队、客户确认 | 对应外部协作岗位 | 等待并记录 SLA |
|
||||
| `ASYNC_PROCESSING` | Outbox 已发、Inbox 处理中 | 系统 | 自动重试,业务只读 |
|
||||
| `ASYNC_RETRYABLE` | 跨区/资源确认暂时失败 | 技术/运营 | 原幂等键受控重试 |
|
||||
| `ASYNC_PERMANENT` | 契约字段错误、哈希冲突 | 技术负责人 | 修正源事实后重放 |
|
||||
| `IRREVERSIBLE` | 已拣货、已离仓、已签收 | 业务负责人 | 专用异常/冲正流程 |
|
||||
|
||||
## 8. 问题证据记录模板
|
||||
|
||||
任何“难用、慢、容易错”都先按下表记录,AI 才能比较优先级:
|
||||
|
||||
| 字段 | 填写要求 |
|
||||
|---|---|
|
||||
| 问题编号 | `UX-S阶段-序号`,例如 `UX-S3-004` |
|
||||
| 发生阶段/F 编号 | 必填,例如阶段三/F18 |
|
||||
| 角色与终端 | 谁在 Admin、Client 或 PDA 操作 |
|
||||
| 触发条件 | 什么状态、什么类型、什么前置数据 |
|
||||
| 当前操作路径 | 菜单、页面、按钮、扫码顺序 |
|
||||
| 期望结果 | 操作员真正想完成的业务结果 |
|
||||
| 实际结果 | 页面/接口/状态发生了什么 |
|
||||
| 证据 | 截图、录屏、业务号、时间、错误码;不放密钥和敏感数据 |
|
||||
| 频率 | 每票/每天次数或样本比例 |
|
||||
| 影响 | 多花时间、返工、错账、漏单、需技术介入等 |
|
||||
| 临时处理 | 当前怎么绕过去 |
|
||||
| 权威事实 | 哪个服务/接口/文档决定正确行为 |
|
||||
|
||||
问题优先级建议使用 `影响人数 × 发生频率 × 单次损失 × 风险系数`,同时单独标记合规、资金、库存和数据隔离风险;高风险项不因发生频率低而降级。
|
||||
|
||||
## 9. 指标字典与基线
|
||||
|
||||
上线任何优化前至少采集两周基线,并固定分子、分母、起止事件:
|
||||
|
||||
| 指标 | 起点 | 终点 | 口径 |
|
||||
|---|---|---|---|
|
||||
| 订单提交耗时 | 打开新建页 | 服务端返回提交成功 | 中位数/P90,排除纯草稿停留 |
|
||||
| 审核等待时长 | `SUBMITTED` | `APPROVED` | 区分人工等待和系统建单失败 |
|
||||
| 测量作业时长 | 首条测量采集 | 提交审核 | 按箱数分层 |
|
||||
| 测量返工率 | 已提交批次 | 被驳回批次 | 驳回批次/提交批次 |
|
||||
| 待分柜等待 | 进入 `WAIT_SPLIT` | 首次有效分配 | 区分 HOLD 和无柜资源 |
|
||||
| 国内装柜时长 | PDA 任务开始 | `LOADED` | 按普通箱/整托分层 |
|
||||
| 离仓阻断时长 | `LOADED` | `DEPARTED_WAREHOUSE` | 按 blocker 分类拆分 |
|
||||
| 跨区建单耗时 | Outbox 创建 | Lastleg 消费成功 | P50/P90/P99 和失败率 |
|
||||
| 海外计划耗时 | `PENDING_ASSIGNMENT` | `INBOUND_PLANNED` | 区分人工录入与资源失败 |
|
||||
| 海外收货时长 | `receiving_at` | `INBOUND_COMPLETED` | 按三种收货模式分层 |
|
||||
| 排车等待时长 | 库存具备资格 | 正式排车创建 | 排除暂扣和换标冻结 |
|
||||
| 拣货准确率 | PDA 扫码尝试 | 成功核平 | 错托/错箱/重复扫码分别统计 |
|
||||
| 派送完成时长 | 排车发车 | 有签收资料的 `DELIVERED` | 按目的地/服务方式分层 |
|
||||
| 人工介入率 | 系统异常/阻断 | 需后台或技术处理 | 分 blockerCode |
|
||||
| 重复单据数 | 所有幂等重放 | 重复业务单 | 必须为 0 |
|
||||
|
||||
埋点只记录阶段、稳定动作码、阻断码、结果、耗时和匿名业务类型;不记录 Token、证件、客户敏感明细或文件内容。
|
||||
|
||||
## 10. AI 优化卡标准格式
|
||||
|
||||
AI 每提出一项优化,必须完整输出:
|
||||
|
||||
```text
|
||||
优化编号:OPT-Sx-xxx
|
||||
阶段/F 编号:
|
||||
问题证据:
|
||||
当前角色与操作路径:
|
||||
根因类型:交互 / 数据重复 / 状态不可见 / 跨系统等待 / 权限 / 业务规则
|
||||
建议方案:
|
||||
保持不变的业务规则:
|
||||
影响终端:Admin / Client / 国内 PDA / 海外 PDA
|
||||
影响服务与权威数据:
|
||||
新增或复用的动作码、阻断码:
|
||||
同步/异步数据流:
|
||||
异常和重试:
|
||||
权限与客户隔离:
|
||||
埋点和基线指标:
|
||||
验收场景:正常 / 分支 / 异常 / 并发 / 幂等 / 越权
|
||||
风险与回退:
|
||||
优先级及依据:
|
||||
待业务确认:
|
||||
```
|
||||
|
||||
没有证据的建议标记为“假设待验证”,不得直接进入实施清单。
|
||||
|
||||
## 11. AI 分析约束
|
||||
|
||||
AI 不得:
|
||||
|
||||
1. 新建第二套可写全流程状态机;
|
||||
2. 用子单状态覆盖 Order、Firstleg 或 Lastleg 主状态;
|
||||
3. 让前端根据状态字符串自行推导写资格;
|
||||
4. 以内部数据库 ID 作为业务人员定位方式;
|
||||
5. 为即时显示做国内/海外数据库同步双写;
|
||||
6. 用当前分页数据判断整柜或整票完成;
|
||||
7. 把预计时间、创建时间或人工猜测写成实际发生时间;
|
||||
8. 为旧字段/旧状态新增兼容分支;
|
||||
9. 把按钮隐藏当作服务端权限和状态门禁;
|
||||
10. 把自动重试包装成业务成功;
|
||||
11. 把一件代发整托拆成普通散货流程;
|
||||
12. 在没有现场证据和指标基线时承诺具体效率提升比例。
|
||||
|
||||
AI 应优先:复用服务端权威动作与门禁、减少重复输入、显示数据来源、提供修复深链、标准化操作回执、提高异步可观测性,并保证幂等、版本、权限和客户隔离。
|
||||
|
||||
## 12. 分阶段优化工作法
|
||||
|
||||
每个阶段按同一节奏推进:
|
||||
|
||||
1. 业务走查:按阶段文档真实操作一票普通流和适用分支;
|
||||
2. 证据采集:记录点击、等待、重复输入、错误和人工交接;
|
||||
3. 问题归类:使用 blocker 与根因分类;
|
||||
4. 数据核对:标出每个字段的权威来源、快照时点和消费者;
|
||||
5. 方案设计:生成优化卡,不先改状态机;
|
||||
6. 业务评审:确认 RACI、不可逆点、异常和指标;
|
||||
7. 技术影响分析:页面、API、DTO、权限、事件、SQL、测试和部署;
|
||||
8. 小步实施:优先 P0 可见性、导航和回执,再做流程合并/自动化;
|
||||
9. 验收对比:使用相同业务样本比较基线与上线后指标;
|
||||
10. 文档收口:把确认结论回写阶段文档和优化方案,历史假设移出当前基线。
|
||||
|
||||
## 13. 优化完成定义
|
||||
|
||||
单项优化只有同时满足以下条件才算完成:
|
||||
|
||||
- 问题证据和目标指标明确;
|
||||
- 正常、分支和异常流程都不丢失;
|
||||
- 服务端动作、权限、状态、版本和幂等门禁有效;
|
||||
- 权威数据和快照来源没有改变或已明确评审;
|
||||
- Admin/Client/PDA 受影响入口同步;
|
||||
- 异步结果和失败可见;
|
||||
- 业务号可贯通查询且不泄露内部 ID;
|
||||
- 自动化检查和人工操作验收均有证据;
|
||||
- 上线后指标可与基线比较;
|
||||
- 文档、索引和操作说明已更新。
|
||||
|
||||
## 14. 仍需业务现场补充的资料
|
||||
|
||||
代码和文档无法替代以下现场事实,建议按阶段收集:
|
||||
|
||||
- 各岗位实际人员数量、班次、交接方式和峰值单量;
|
||||
- 每个页面真实录屏及操作员口述痛点;
|
||||
- 常见失败/返工前十名及每月次数;
|
||||
- 各阶段目标 SLA、超时升级对象和通知渠道;
|
||||
- 纸质标签、称重秤、PDA、打印机和现场网络型号/限制;
|
||||
- 平台提货是否存在系统外派车和签收环节;
|
||||
- 报关、清关、车队邮件、客户确认等系统外协作耗时;
|
||||
- 费用、库存、出库和签收发生争议时的最终责任人;
|
||||
- 当前运营最常用的 Excel、群消息和线下登记表;
|
||||
- 客户最常咨询的进度问题及客服当前查询路径。
|
||||
|
||||
这些资料未收集前,AI 可以提出候选方案,但应明确标注假设,不应直接决定自动化规则或 SLA。
|
||||
|
||||
## 15. 待确认问题索引
|
||||
|
||||
六份阶段文档共登记 66 个业务/体验评审问题。问题原文保留在各阶段“评审问题”章节,评审时不应只看优化草案:
|
||||
|
||||
| 阶段 | 数量 | 重点决策 |
|
||||
|---|---:|---|
|
||||
| 阶段一 | 6 | 平台提货是否有独立履约、平台代下单、审核驳回口径、旧入仓码、预估费用命名、混箱 SKU 责任 |
|
||||
| 阶段二 | 12 | 到仓时间、提前测量、差异原因、OCR、库位警告、费用发布、HOLD、共托和 SKU 纠错 |
|
||||
| 阶段三 | 12 | 占位与作业资格、推荐解释、柜号体系、柜级总控、PDA 原子提交、证据、报关和不可逆更正 |
|
||||
| 阶段四 | 12 | 柜级时间线、预计/实际节点、船司异常责任、邮件送达语义、跨区诊断、资源失败和还空口径 |
|
||||
| 阶段五 | 12 | 柜级资源诊断、照片对照、三种实收、合托、盘点入口、库存不可用来源和换标进度 |
|
||||
| 阶段六 | 12 | 草稿锁、装载风险、转派送、三单时间线、扫码扣库存、异常退回、跨区延迟和最终完成解释 |
|
||||
|
||||
第一轮评审建议优先决定以下跨阶段问题:
|
||||
|
||||
1. 平台提货是否属于系统内完整履约链路;
|
||||
2. 到仓时间是否需要独立、权威的实收登记;
|
||||
3. HOLD/暂扣的责任人、审批、证据和 SLA;
|
||||
4. 国内 PDA 批量提交的原子性和弱网恢复目标;
|
||||
5. 排柜占位、预装确认和真实作业资格的统一文案;
|
||||
6. 柜级总控台是否作为订舱、PDA、报关、离仓和跨区进度的统一入口;
|
||||
7. 跨区事件失败的业务责任人、人工介入边界和重放权限;
|
||||
8. 盘点正式入口和账实差异处置流程;
|
||||
9. 海外扫码即扣库存的复核、撤销和异常边界;
|
||||
10. 国内离仓、海外入仓、海外出库和最终签收的客户可见进度语义。
|
||||
|
||||
每项决定应记录:结论、负责人、确认日期、影响阶段、是否改变接口/状态/权限,以及需要更新的文档。未决定项保持“待确认”,不能由 AI 默认选择。
|
||||
|
||||
Reference in New Issue
Block a user