Files
docs/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md
T

438 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阶段三:国内货柜履约与出仓
> 对应全景流程:F14~F23。
> 阶段起点:入库单主状态为 `WAIT_SPLIT`,不存在有效 HOLD。
> 阶段终点:装柜后完成退税报关并进入待发区,再完成送港线的仓库离开/进港事实;实际开船 `VESSEL_DEPARTED` 由阶段四承接。
> 本阶段复用订单、入库单、柜次和装柜计划,不新建独立“出仓单”。`LOADED` 后先推进报关协同,报关完成后进入待发区,再推进送港;费用确认是并行事实,装柜完成后对已装范围的当前有效费用版本执行系统默认确认。
## 1. 阶段目标和边界
本阶段把可分柜货物转化为可追溯的真实整柜离仓事实,覆盖:
1. 模拟柜、智能推荐、人工分配和同柜不可拆组;
2. 海运订舱草稿、资料补齐和放舱;
3. 订舱级国内拖车预约;
4. 模拟柜与订舱柜型需求、真实集装箱号关联;
5. 预装确认、动态增减和普通散货托盘标签;
6. 国内 PDA 拣货、整托装柜和异常闭环;
7. 空仓、半仓、满仓、锁仓、带锁码照五类装柜证据与锁码文本;
8. 装柜完成、部分装载分片和跨区交接快照;
9. `LOADED` 后通知报关行、客户资料收集、回执确认、整柜正式申报和海关结果;
10. 送港、进港、甩柜/改配、实际离仓和拖车费用归集。
`LOADED` 表示货物已经完成实际装柜。此时先触发报关线:收集退税客户资料、发送报关行、处理回执和客户确认;报关完成后进入待发区,才允许推进拖车、离仓和进港。已进港不代表报关完成,容量不足时记录甩柜和改配船次;甩柜不影响已完成报关资料、回执和客户确认。只有实际开船后才进入海运节点。国内 Admin/PDA 不得把订单推进到海外派送完成 `DELIVERED`。
## 2. 角色、终端和对象
| 角色 | 终端 | 主要操作 |
|---|---|---|
| 排柜操作员 | Admin | 创建模拟柜、搜索候选、推荐/人工加入、调整预装 |
| 订舱操作员 | Admin | 建订舱草稿、维护运输资料、上传文件、放舱 |
| 国内调度 | Admin | 建订舱级拖车预约、选择供应商、维护时间和附件 |
| 仓库主管 | Admin | 预装确认、真实柜号补录、任务和证据监督 |
| PDA 拣货员 | 国内 PDA | 领取唯一柜次任务、扫码、异常、拍照、完成装柜 |
| 报关操作员 | Admin | 汇总整柜资料、开始报关、上传完成文件、完成报关 |
| 企业操作员 | Client | 上传本客户退税/报关资料、查看本企业进度和回执 |
| 出仓操作员 | Admin | 查看组合门禁,必要时人工确认离仓 |
核心对象:
| 对象 | 业务作用 | 稳定标识 |
|---|---|---|
| 入库单 | 每票/分片货物履约主体 | `inboundId`、入仓码 |
| 模拟柜/柜次 | 多票货物共享的装载容器 | `containerBookingId`、`cabinetNo` |
| 装柜计划 | 柜次唯一预装/PDA 作业聚合 | `loadingPlanId` |
| 海运订舱 | 船司运输和柜型需求聚合 | `oceanBookingId`、`OB-yyMMdd-####` |
| 拖车预约 | 一个已放舱订舱的国内提柜/送柜任务 | `truckAppointmentId` |
| PDA 任务 | 单柜次单作业员的现场任务 | `taskId`、任务版本 |
| 整柜报关 | 柜次级资料冻结和回执 | 柜次及报关记录标识 |
## 3. 前置检查
- 候选入库单已完成阶段二,实际箱数、重量和体积可用;
- 一件代发已按实际托盘封托;
- 当前入库单无有效 HOLD;
- 柜型规格、国内中转仓、有效渠道和供应商主档可用;
- 操作员理解模拟柜、真实柜号、订舱和拖车是不同对象;
- 同柜不可拆组、已占用数量和版本冲突均以服务端返回为准;
- 费用仍可并行维护,客户未确认不阻断排柜、预装、PDA 或装柜;装柜完成后对已装范围的当前有效已发布版本记录系统默认确认。客户确认和系统默认确认来源分开审计;缺少有效费用版本不伪造确认,部分装载不得把余量一起确认。
## 4. F14 模拟柜与智能排柜
### 4.1 创建模拟柜
入口:Admin → 国内货柜/智能装柜。
1. 选择正式装柜仓;
2. 选择九类计划渠道组之一;
3. 选择平台有效柜型,核对额定容量和限重;
4. 填写计划日期和必要备注;
5. 提交后系统原子创建稳定柜次、`cabinetNo` 和唯一装柜计划;
6. 此时可以没有真实集装箱号,也不会因创建模拟柜自动产生订舱。
容量和重量当前允许达到柜型额定值的 150%,超过时服务端拒绝。页面显示仅用于预判,最终以服务端重新计算为准。
### 4.2 查询候选
工作台可查询 `PENDING_REVIEW`、`WAIT_MEASURE`、`WAIT_SPLIT`、`LOADING` 等未完成候选。状态是展示维度,能否加入必须看响应中的 `canAssign` 和原因。
- 待审核或待测量订单可提前占位;
- 预装确认和启动 PDA 前,实际作业成员必须进入 `WAIT_SPLIT`;
- 普通订单按剩余箱数分配;
- 一件代发按每个未占用的已封托托盘独立返回和分配,禁止拆托;
- 同柜不可拆组必须成员完整、满箱并原子加入;
- 推荐顺序以入库时间先进先出为基础。
### 4.3 智能推荐和人工加入
智能推荐:设置筛选范围和装载目标,系统逐项校验渠道、仓库、剩余箱数、体积、重量、托盘完整性、组锁和占用,再返回推荐结果。
人工加入:选择候选,填写普通货分配箱数或选择一件代发整托,携带计划版本提交。系统重新校验资格;页面旧结果不能作为写入依据。
一件代发一票多托时逐托展示,其中一托已分配不得隐藏其他未分配托盘。容量不足时跳过整托,不能回退成按箱拆托。
### 4.4 调整与费用影响
- 未产生物理拣货的普通明细可增减或移除;
- 已拣数量是可调整下限;
- 同柜组只有全组都未拣时才能整组移除;
- 单行一件代发只能按该行 `palletId` 整托移除;
- 成员变化需要重算未冻结的柜级/客户级费用;
- 已确认、已发送或客户已确认的费用版本不得直接改写,应按费用规则生成新版本或拒绝。
## 5. F15 海运订舱与放舱
### 5.1 创建草稿
入口:Admin → 海运订舱。
1. 选择启用的国内中转仓;
2. 选择该仓当前有效渠道;
3. 选择 `ACTIVE/BOOKING` 订舱供应商;
4. 填写三类参与方和已知运输资料;
5. 至少维护一项、最多二十项柜型需求,数量为正整数;
6. 保存为 `DRAFT`,系统生成 `OB-yyMMdd-####` 订舱号。
草稿允许资料不完整、替换文件和继续编辑。柜型需求只表达需要多少个什么柜型,不创建真实货柜行。
### 5.2 补齐并放舱
放舱前核对:
- 提单号全局唯一;
- 船名、航次、起运港、目的港、ETD、ETA 和运输条款完整;
- 渠道仍有效;
- 柜型需求与平台规格一致;
- 存在有效 `BOOKING_CONFIRMATION` 或 `BILL_OF_LADING` 文件;
- 订舱供应商仍为有效主档。
点击放舱后状态从 `DRAFT` 进入 `RELEASED`,运输快照永久只读。放舱不要求真实柜号,不得为了通过校验伪造柜号。
## 6. F16 订舱级国内拖车
入口:Admin → 国内拖车预约。
1. 从服务端候选中选择已 `RELEASED`、有提单号和有效订舱文件的订舱;
2. 选择 `ACTIVE/TRUCKING/DOMESTIC` 供应商;
3. 填写计划装柜时间、联系人和附件;
4. 保存/提交预约;
5. 重复创建时返回现有非终态预约,不生成第二张。
拖车单只绑定订舱,不绑定客户、柜次、装柜计划或真实柜号。一个订舱最多一张非终态预约,已有有效完成单不能再次创建收费。
PDA 装柜完成不推进拖车状态。只有订舱要求的全部柜型数量均已关联,并且所有柜均确认国内离仓后,拖车才自动完成。正金额应付拖车费按各柜最终实装体积守恒分摊并发送 Finance;缺供应商归属、有效体积或费用配置时失败关闭,不做伪造均分。
## 7. F17 柜次关联和真实柜号
入口:Admin → 柜次详情 → 关联订舱/补录柜号。
1. 选择已放舱订舱的未满配柜型需求;
2. 选择对应模拟柜;
3. 校验仓库、渠道映射、柜型、容量、限重和需求剩余数量;
4. 录入真实集装箱号;
5. 提交后在原柜次上冻结订舱、需求和柜号快照。
关联不会更换 `containerBookingId`、`cabinetNo`、装柜计划或明细。真实集装箱号在同一订舱内唯一,不同提单可按业务规则复用。
订舱关联、预装确认和任务创建技术上可先于柜号,但正式操作应在 PDA 最终完成前补齐。已有柜号纠正仅限计划 `EDITING`、任务未领取且没有物理作业事实。
## 8. F18 预装确认、动态增减与标签
### 8.1 预装核对与确认
入口:Admin → 预装清单。
1. 打开柜次唯一预装计划;
2. 核对每个入仓码、客户、目的仓、普通箱数或一件代发托盘;
3. 查看容量、重量、已占用和异常提示;
4. 确认所有现场成员已到 `WAIT_SPLIT` 且未 HOLD;
5. 点击计划级确认,生成或开放唯一 PDA 任务;
6. 记录确认快照、操作人和版本。
预装进入 `CONFIRMING/CONFIRMED` 只冻结确认快照,不锁死尚未完成柜次。计划仍为 `EDITING/LOADING` 时可继续增加合法明细;未拣明细可调整,已拣明细保持锁定。
新增或调整后计划和任务版本递增,PDA 旧版本必须刷新再作业。
### 8.2 普通散货托盘标签
普通、非一件代发 FBA 明细在计划 `LOADING/COMPLETED` 且真实柜号有效时生成正式托盘标签:
1. 系统按平台柜次号、FBA 地址内部编号和三位序号生成冻结托盘码;新柜次号为全局连续且不按日期重置的 `D0001`、`D0002`,托盘码不依赖可跨提单复用的真实柜号;
2. 地址内部编号从 Warehouse 启用主数据读取;
3. 缺编号或同柜重复时拒绝生成;
4. 重复生成必须与已有明细一致;
5. Admin 全部打印或按仓指定张数打印;
6. A4 横版每托一页,标签与海外补打复用同一编号。
该标签与阶段二一件代发 `DP` 托盘不同:一件代发托盘在测量后已实际清点封托,装柜时按冻结整托分配。
## 9. F19 国内 PDA 拣货装柜
### 9.1 领取和开始
入口:国内 PDA → 拣货装柜。
1. 操作员选择当前作业仓;
2. 打开或扫描柜次任务;
3. 核对真实柜号、装柜计划和任务版本;
4. 领取任务后绑定当前作业员、任务和柜次;
5. 单柜次只允许一名作业员,不支持多人并行或无审计接管;
6. 进入任务后计划/入库履约按规则进入 `LOADING`。
正式作业当前只支持在线。设备本地草稿按作业员、任务和柜次隔离;批量提交是否具备完整原子事务仍需在优化/验收中持续核实。
### 9.2 普通散货扫码
- 扫描稳定箱码,一箱一码;
- 不能用 SKU、件数、入仓码或自由文本代替箱码;
- 系统核对箱码属于当前入库单、当前任务且尚未处理;
- 连续扫描先进入当前任务草稿,操作员核对后批量提交;
- 重复扫描不重复增加实装数量。
### 9.3 一件代发整托装柜
- 扫描 `DP` 托盘码,或扫描成员箱码定位所属已封托托盘;
- 页面展示托盘、入仓码、箱数和 SKU 汇总;
- 使用 `PICK_PALLET` 一次提交整托;
- 禁止部分拣货、拆托或将同托不同订单成员分开提交;
- 装柜完成按 `palletId` 精确冻结每托箱唛和 SKU,不能按整票模糊复制。
### 9.4 部分拣货、跳拣和异常
允许分批扫描和暂时跳过,但每个未完成项必须选择/填写异常原因。存在未解决异常、缺少处理单元、数量不平或版本冲突时不能完成任务。
提交超时后先查询任务明细和操作结果,禁止更换幂等键盲目重复提交。版本冲突时刷新任务,保留未提交草稿并重新核对。
## 10. F20 装柜证据与铅封
PDA 按现场要求采集五类证据:
1. `EMPTY`:空仓照片;
2. `HALF`:半仓照片;
3. `FULL`:满仓照片;
4. `LOCKED`:锁仓照片;
5. `SEAL`:带有效铅封号的带锁码照片。
每类至少一张有效照片,同类允许追加。PDA 仅允许现场相机拍摄;有权限的 Admin 操作员/理货员可人工补充,普通拣货员不开放后台上传。
证据先上传 File 获得合法文件引用,再绑定柜次/任务。错误图片只能作废,不能硬删除;需保留上传、作废、操作者、时间、文件哈希和幂等记录。照片及铅封号当前不对客户展示。
## 11. F21 装柜完成与分片
PDA 点击“完成装柜”时,服务端重新校验:
- 任务属于当前柜次和仓库且版本一致;
- 真实集装箱号存在;
- 所有普通箱码或一件代发整托均核平;
- 没有未解决异常;
- 空仓、半仓、满仓、锁仓、带锁码照五类证据和锁码文本完整;
- 计划明细、已拣数量和最终实装数量守恒。
校验通过后:
1. PDA 任务和装柜计划进入 `COMPLETED`;
2. 实装来源入库单进入 `LOADED`;
3. 生成最终实装箱码、托盘、SKU 和证据快照;
4. 对部分装载执行一次分片;
5. 生成跨区 Outbox,但后续消费必须保持幂等。
部分装载时,已装数量形成当前柜次的 `LOADED` 子入库单,余量形成可继续 `WAIT_SPLIT` 的后续子单;只允许一层分片,所有子项总和必须等于来源数量。客户订单身份和入仓码关联不能丢失。
## 12. F22 客户资料与整柜出口报关
### 12.1 F22-A `LOADED` 后通知报关并建立客户案例
入口:`LOADED` 事件 → Admin/Client → 报关资料。
1. 装柜完成后按最终实装清单通知报关行,建立本柜报关批次和每个客户/入仓码的 `customerCustomsCase`;
2. 客户上传本企业资料,平台校验客户、订单、入仓码、实际装载数量和文件归属;
3. 平台将资料发送给报关行,记录发送时间、资料版本和 `roundNo`;
4. 报关行返回本轮回执,平台保存文件和回执字段,并向对应客户展示确认任务。
柜前可以存在资料准备或历史附件,但不创建本柜正式客户确认轮次,也不能显示“已通知报关”。客户资料缺失形成报关补件待办,未完成报关不得进入待发区或推进送港。
### 12.2 F22-B 报关行回执与客户确认循环
客户查看报关行回执后有两个结果:
1. **确认**:当前客户案例进入 `CUSTOMER_CONFIRMED`,保存确认人、确认时间、回执版本和幂等键;
2. **打回**:当前案例进入 `NEEDS_RESUBMIT`,保存打回原因;客户重新上传/替换资料,平台重新发送报关行,报关行生成新回执,`roundNo` 加一后再次发客户确认。
客户打回只重开对应客户案例,不重置其他客户已经确认的轮次。直到柜内所有客户案例都为 `CUSTOMER_CONFIRMED`,才允许进入整柜正式提交。
### 12.3 F22-C 所有客户通过后的整柜正式申报
1. 平台检查所有客户案例均已确认,冻结本柜最终实装和资料版本,生成整柜正式申报批次;
2. 将整柜资料提交报关行确认,报关行完成正式申报;首版不做外部系统直连,保留人工提交和审计记录;
3. 海关结果独立记录为查验、免查验放行、补件/退回、扣货等,不把客户确认回执直接当成海关放行;
4. 报关完成后进入待发区;报关事实不覆盖送港线的离仓、进港、甩柜事实。甩柜只改变运输船期,不回退报关资料、回执或客户确认。
## 13. F23 送港、进港与甩柜
### 13.1 出仓硬门禁
送港线的离仓/进港门禁逐项检查:
- 无有效 HOLD;
- 入库单为 `LOADED`;
- 装柜计划为 `COMPLETED`;
- PDA 柜次任务为 `COMPLETED`;
- 订舱已 `RELEASED` 且分配当前柜次;
- 五类证据与有效锁码文本完整;
- 送港任务和当前船次分配完整;
- 报关完成是进入待发区以及后续仓库离开、送港和进港的前置。
订舱、拖车、仓库离开和港口进场属于待发区之后的送港线事实。容量不足时记录 `ROLLED_OVER`,保存原船次、滚动次数、新船次、预计开船时间和客户通知;不重新生成报关批次或客户确认任务。
### 13.2 自动与人工确认离仓
送港状态变化或其他送港门禁满足时系统自动尝试收敛。未自动完成时,平台在柜次/送港页面:
1. 打开门禁清单;
2. 逐项处理未通过原因;
3. 全部通过后点击确认离仓;
4. 携带当前版本和幂等键提交;
5. 查看唯一离仓历史和第一条实际节点。
成功后系统:
- 写入整柜唯一国内离仓事实;
- 写入实际 `DEPARTED_WAREHOUSE` 节点;
- 写入 `PORT_RECEIVED` 或 `ROLLED_OVER`;
- 维护船次和开船前等待,不把预计 ETD 记成海运在途;
- 检查并尝试完成订舱级拖车;
- 保持跨区交接事件可重试且不重复建单。
实际离仓和进港节点产生后禁止撤销。发现错误转入线下和后续阶段异常处理,不提供修改历史伪装未离仓或未进港的能力。报关线的客户打回、重新发送和海关查验单独记录,不回滚送港事实。
## 14. 状态和动作总表
| 对象 | 关键状态 | 推进动作 |
|---|---|---|
| 入库单 | `WAIT_SPLIT → LOADING → LOADED` | 分配/开始 PDA/完成装柜 |
| 装柜计划 | `EDITING → LOADING → COMPLETED` | 预装调整/PDA 作业/最终完成 |
| 订舱 | `DRAFT → RELEASED` | 补齐资料并放舱 |
| 拖车 | 非终态 → `COMPLETED` | 所有要求柜次实际离仓后自动完成 |
| 报关 | `WAITING_DOCUMENTS → SENT_TO_BROKER → RECEIPT_PENDING_CUSTOMER_CONFIRM → CUSTOMER_CONFIRMED / NEEDS_RESUBMIT → ALL_CUSTOMERS_CONFIRMED → FORMAL_SUBMITTED → INSPECTION/RELEASED` | 装柜后通知报关行;回执必须经对应客户确认,打回则新资料/新回执轮次 |
| 送港 | `WAITING_FOR_LOADING → PORT_DELIVERY_PENDING → DEPARTED_WAREHOUSE → IN_TRANSIT_TO_PORT → PORT_RECEIVED / ROLLED_OVER` | 报关完成后进入待发区,再安排拖车和进港;容量不足时在原柜船期上人工修改船信息并留痕 |
| 海运 | `WAITING_SAILING → VESSEL_DEPARTED → IN_TRANSIT` | 只有承运船舶真实开航才进入海运节点 |
主状态只表达阶段结果。订舱、拖车、PDA、证据和报关保持关联子状态,页面应汇聚展示,但不能互相覆盖。
## 15. 异常与恢复
| 场景 | 处理方式 |
|---|---|
| 候选显示可用但提交失败 | 以服务端最新占用/版本为准,刷新后重排 |
| 待测量订单已占位 | 可保留计划占位,确认预装前必须到 `WAIT_SPLIT` |
| 一件代发整托容量不足 | 跳过整托或换柜,禁止拆托 |
| 订舱资料不全 | 保持 `DRAFT`,补齐后再放舱 |
| 放舱后资料错误 | 不原地篡改冻结快照,按业务异常处置 |
| 真实柜号暂缺 | 可先关联/确认,但最终装柜前必须补齐 |
| PDA 旧版本 | 刷新计划,不以旧版本覆盖新增明细 |
| 扫描错箱/重复箱 | 拒绝或提示已处理,核对稳定箱码 |
| 未完成项有异常 | 记录原因并解决,禁止完成任务 |
| 照片错误 | 作废并重拍,不硬删除证据 |
| 部分装载 | 一次分片,已装与余量数量守恒 |
| 报关资料缺失 | 定位对应客户/入仓码补件,办理批次不伪造完成 |
| 出仓门禁未齐 | 展示具体阻断项,条件变化后受控重试 |
| 离仓请求超时 | 查询唯一离仓历史/节点后再处理,不重复写事实 |
## 16. 数据流和阶段完成判定
```text
WAIT_SPLIT 入库单/已封托托盘
→ 模拟柜与唯一装柜计划
→ 已放舱订舱 + 真实柜号 + 订舱级拖车
→ 预装确认/动态调整
→ PDA 实装 + 五类证据
→ COMPLETED / LOADED + 数量分片 + 跨区快照
├─ 报关线:通知报关 → 客户资料 → 报关行回执 → 客户确认/打回重做
│ → 所有客户通过 → 整柜正式申报 → 查验/放行
└─ 送港线:拖车 → DEPARTED_WAREHOUSE → PORT_RECEIVED
→ 甩柜/改配(如发生)→ 等待实际开船
→ VESSEL_DEPARTED → 海运节点查询
```
阶段完成必须同时满足:
- [ ] 最终柜次、装柜计划、订舱、真实柜号关联可追溯
- [ ] 全部实装箱/托盘/SKU 与入库单数量守恒
- [ ] PDA 任务完成且无未解决异常
- [ ] 五类证据和锁码文本完整有效
- [ ] 装柜计划 `COMPLETED`,实装入库单 `LOADED`
- [ ] 部分装载时已装子单和余量子单正确
- [ ] 报关线已为每个客户建立案例,回执、确认/打回和每轮资料版本可追溯
- [ ] 送港线已记录唯一国内离仓历史;如已进港,存在 `PORT_RECEIVED`,如甩柜,存在原船次/改配船次历史
- [ ] 客户全部确认后才允许整柜正式提交;正式申报后的查验/放行结果单独记录
- [ ] 船舶实际开航后才写入 `VESSEL_DEPARTED` 并启动海运节点查询
- [ ] 跨区事件可幂等重试;甩柜/改配只新增船期事实,不覆盖报关资料、回执和客户确认
## 17. 易用性与数据流评审问题
1. 排柜工作台是否充分解释“可提前占位”和“可实际作业”的差别?
2. 推荐结果是否应逐项展示未入选原因、容量影响和费用影响?
3. 模拟柜、柜次编号、真实柜号、订舱号和提单号是否在页面上容易混淆?
4. 订舱、拖车、预装、PDA、报关是否需要一个柜次级总控清单,而不是跨页面查找?
5. 预装确认后仍可动态增减时,如何提示 PDA 版本已过期并保护未提交草稿?
6. PDA 批量提交需要补齐怎样的原子性、离线/弱网和失败整批回滚验收?
7. 五类证据是否要提供拍摄引导轮廓、清晰度检查和缺图计数?
8. 部分装载分片在 Client 应如何展示,避免客户误以为整票已经全部装柜?
9. 报关资料清单、补件责任人、截止时间和回执匹配是否需要结构化待办?
10. 出仓门禁失败是否需要直接跳转到对应处理页面?
11. 拖车不作为出仓硬门禁的现行口径,是否与现场调度责任一致?
12. 实际离仓不可撤销后,错误柜号或错误时间的合规更正流程由谁负责?
## 18. 阶段四交接包
交给阶段四的权威数据包括:
- 柜次、真实集装箱号、订舱号、提单号、船名和航次;
- 起运港、目的港、ETD/ETA 和运输条款快照;
- 最终实装订单、入仓单、箱码、托盘、SKU、重量和体积;
- 装柜五类证据引用和报关完成事实;
- 国内离仓时间和 `DEPARTED_WAREHOUSE` 实际节点;
- 跨区事件版本、事件 ID 和有效载荷哈希;
- `CarrierScheduleQuery` 及后续船节点查询上下文;
- 未冻结费用和拖车应付等并行财务结果。
## 19. 事实来源
- `docs/国内货柜履约/README.md`
- `docs/国内货柜履约/国内货柜履约页面与原型清单.md`
- `docs/归档/头程到尾程/头程下单到尾程出库现状流程全景清单.md`
- `docs/统一订单主状态与操作契约.md`
- `apps/admin-web/src/modules/container-loading/`
- `apps/admin-web/src/modules/loading-lists/`
- `apps/pda-uniapp/AGENTS.md`
- `apps/pda-uniapp/pages/picking/picking.vue`
- `baiyue-firstleg/firstleg/AGENTS.md`
- `baiyue-firstleg/firstleg/src/main/resources/openapi/loading-lists-v1.yaml`
- `baiyue-firstleg/firstleg/src/main/resources/openapi/ocean-bookings-v1.yaml`
- `baiyue-firstleg/firstleg/src/main/resources/openapi/truck-appointments-v1.yaml`
- `baiyue-firstleg/firstleg/src/main/resources/openapi/customs-v1.yaml`
- `baiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/service/SmartLoadingService.java`
- `baiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/service/LoadingPickService.java`
- `baiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/outbound/dispatch/service/OutboundDispatchService.java`