Files
docs/国内货柜履约/国内货柜履约开发规划.md
T

323 lines
28 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.
# 虫虫出海国内货柜履约开发规划:国内出仓
> 创建日期:2026-07-28
> 状态:已进入分模块开发规划
> 流程依据:[出仓流程](参考资料/出仓流程.png)中的头程物流“03 出仓”;用户已于 2026-08-08 确认国内国内货柜履约以 `LOADED`/装柜完成为阶段终点
> 前置阶段:[订单与客户文档](../订单与客户/README.md) · [入库测量与计费文档](../入库测量与计费/README.md)
> 2026-08-10 产品确认版:国内货柜履约不新建独立出仓单;支持一单多柜、一个柜拼多个订单,采用“父订单→子订单→柜次”关系,已装载数量形成子订单,未装载数量自动生成后续子订单。`LOADED` 硬门禁为订舱完成、拖车完成、报关放行回执、PDA 拣货完成和五类证据完整;`LOADED` 后错误线下人工处理。五类证据各至少 1 张有效照片,同类型多张追加,PDA 仅现场拍照,后台操作员和理货员可人工上传,照片无限期保留且客户不可见。
> 当前范围更正:原 `P3-PORT-01`、六家船公司官网查询及 `CarrierScheduleQuery` 是柜子确认离开国内仓库后的业务,整体重新归入海外仓业务。国内货柜履约仅保存订舱与出仓前所需的船名航次、港口和 ETD/ETA 等资料,不建设或验收出仓后的定时节点查询。
> 主体模型与硬约束:国内货柜履约只实现“平台—客户”两级,业务 `tenant_id > 0` / `tenantId` 当前表示客户 ID;`tenant_id=0` 是平台身份、平台 RBAC 和平台公共仓储资源技术作用域,客户往来单位、订单、文件和费用归属客户 `tenant_id>0`。禁止新增租户主表、租户选择器、客户所属租户配置、租户切换、租户级 RBAC 或租户级配置,禁止把现有 `tenant_id` 改义为上级租户 ID;历史类名、路径和字段继续兼容。
## 一、国内货柜履约目标
国内货柜履约承接入库测量与计费“货物完成到仓、实测、差异处理和指定库位”的结果,将已受理货物转化为可执行、可追踪、可审计的国内出仓任务。
流程覆盖九个动作:
```text
智能排柜 → 订舱 → 预约拖车
↓
PDA 拣货 → 装柜并上传货柜/铅封照片
↓
客户上传报关资料 → 平台整理提交报关代理 → 上传回执供客户下载
↓
维护订舱与出仓前所需的船名航次、港口和预计时间
↓
国内国内货柜履约完成:`LOADED`/装柜完成
```
国内货柜履约完成标准是同一订单/柜次已完成排柜和 PDA 拣货,空仓、半仓、满仓、锁仓、带锁码照五类证据各至少 1 张有效照片已真实上传,锁码文本已保存,服务端门禁通过并将订单推进为 `LOADED`/装柜完成。`DELIVERED`/派送完成必须等货物到达海外仓后由海外仓可信回传推进,不是国内国内货柜履约人工操作。
### 原型动作覆盖
| 原型动作 | 规划模块 | 开发任务 | 覆盖结果 |
|---|---|---|---|
| 1. 智能排柜 | 智能排柜 | P3-PLAN-01、P3-PLAN-02 | 已覆盖,按 110% 装载率上限和可配置税率排序实现 |
| 2. 订舱 | 订舱与出仓前船期资料 | P3-BOOK-01 | 已覆盖 |
| 3. 预约托车 | 预约拖车 | P3-TRUCK-01 | 已覆盖,统一使用“预约拖车” |
| 4. PDA 拣货 | PDA 拣货与复核 | P3-PICK-01、P3-PDA-01、P3-PDA-02 | 已覆盖 |
| 5. 拍货柜及铅封照上传 | 装柜及柜封证据 | P3-LOAD-01、P3-LOAD-02 | 已确认五类证据各至少 1 张有效照片、同类型可多张,锁码文本必填 |
| 6. 客户上传报关资料 | 报关资料协同 | P3-CUS-01 | 已覆盖 |
| 7. 整理给到报关代理报关 | 报关资料协同 | P3-CLEAR-01 | 已覆盖 |
| 8. 回执上传到系统供客户下载 | 报关回执与客户下载 | P3-CLEAR-01、P3-CUS-02 | 已覆盖,首版由授权人员人工上传放行回执 |
| 9. 出仓后查询港务/船节点 | 海外仓业务船节点定时查询 | 原 P3-PORT-01、P3-CUS-02 对应查询部分 | 已重新归入海外仓业务,不是国内货柜履约动作或验收项 |
## 二、阶段边界
### 纳入国内货柜履约
- 现有订单国内货柜履约状态、订单-柜次关联、智能排柜建议、人工调整和版本确认。
- 订舱申请、舱位结果,以及出仓前人工确认或业务录入的船名航次、港口、ETD/ETA 等资料快照。
- 预约拖车、车辆司机、到仓装柜和离仓记录。
- PDA 任务领取、扫码拣货、部分拣货、异常、复核和幂等提交。
- 装柜、柜号、铅封号及货柜/铅封照片证据。
- 客户上传报关资料、平台审核补件、整理并提交报关代理。
- 报关回执上传、版本、客户可见范围和授权下载。
- 装柜完成门禁、确认、时间线和站内通知;`LOADED` 后纠错走线下人工流程。
### 明确不纳入国内货柜履约
- 入库、上架、移库、盘点、冻结、补货和完整 WMS;拣货仅复用入库测量与计费实时库存、当前位置和可用量接口。
- 港区闸口、车队、船公司、海关单一窗口的正式自动化接口。
- GPS 实时跟车、电子铅封、称重设备、摄像头 OCR 和 IoT 自动采集。
- 自动报关、关税计算、退税、完整清关业务和自动单证识别。
- 海上运输、海外清关、目的港提柜、海外仓入库和末端派送。
- 柜子确认离开国内仓库后的 `CarrierScheduleQuery`、船公司查询、定时船节点和到港跟踪;整体归海外仓业务。
- 无人工确认的全自动排柜、自动订舱和不可逆业务操作。
## 三、参与角色与数据边界
| 角色 | 数据范围 | 主要操作 |
|---|---|---|
| 企业订单操作员 | 当前企业订单及关联柜次 | 上传/补充报关资料、查看订舱与出仓前资料、下载回执 |
| 平台运营 | 授权客户、订单和柜次 | 确认排柜、订舱、维护出仓前船期资料和协调异常 |
| 仓库主管 | 被授权的平台收货仓 | 分配拣货任务、复核差异、确认装柜和出仓条件 |
| 仓库作业员 | 分配给本人或本仓的任务 | PDA 扫码、数量确认、异常上报和任务提交 |
| 操作员 | 授权仓库/订单/柜次 | 查看作业进度、人工上传装柜证据、协助处理异常 |
| 拣货员 | 分配给本人的单柜次任务 | PDA 扫码、数量确认、异常上报和批量提交;不开放后台人工证据上传 |
| 理货员 | 授权仓库/柜次 | 人工上传/补充/作废装柜证据、核对柜号和锁码、记录异常 |
| 拖车调度员 | 授权订单/柜次与车辆范围 | 预约车辆、维护司机/车牌、到仓和离仓节点 |
| 报关专员 | 授权客户、订单和报关批次 | 审核、退回、整理、提交资料并上传回执 |
| 平台管理员 | 平台授权范围 | 维护权限、规则和服务商;`LOADED` 后问题按线下流程处理,不提供在线冲正 |
服务端必须依据登录身份确定企业、仓库、客户和数据范围。前端传入的订单 ID、柜次 ID、仓库 ID、客户 ID、作业员 ID 或报关批次 ID 不能单独作为授权依据。
## 四、流程与状态设计
原型以 1 至 9 编号表达动作顺序。产品确认后,订舱、拖车、报关放行、PDA 拣货和证据完整是进入 `LOADED` 的强制前置;智能排柜、订舱、拖车和资料整理可按子流程并行,但服务端不得绕过门禁。PDA 单柜次单作业员,不实现多人并行或任务接管。
### 1. 现有订单的国内货柜履约主状态
| 稳定编码 | 中文名称 | 含义 |
|---|---|---|
| `WAIT_SPLIT` | 待分柜 | 入库测量与计费已完成,等待排柜/预装 |
| `LOADING` | 装柜中 | 预装已确认,PDA 执行拣货和装柜证据上传 |
| `LOADED` | 装柜完成 | 订舱、拖车、报关放行回执、PDA 拣货完成,且五类证据各至少 1 张有效照片和锁码文本已通过服务端门禁 |
| `DELIVERED` | 派送完成 | 货物到达海外仓后由海外仓可信回传推进;属于国内货柜履约之后的只读状态 |
### 2. 子流程状态
- 订舱:待订舱、订舱中、已订舱、订舱失败、已取消。
- 拖车:待预约、已预约、车辆已到仓、装柜中、已离仓、改约、已取消。
- 拣货:待分配、待拣货、拣货中、待复核、已完成、异常挂起、已取消。
- 报关:资料待上传、资料待审核、待补件、待提交、已提交代理、回执待上传、回执已上传、已退回、已取消;有效放行回执是 `LOADED` 硬门禁,首版由授权人员人工上传。
- 出仓前船期资料:待维护、已确认、信息变更;出仓后节点和“已开船”等运输事实归海外仓业务。
主状态由服务端根据已确认的必要子流程推进。客户端不得通过传任意目标状态跳过拣货复核、装柜证据或已配置的装柜完成门禁。
## 五、业务模块
### 1. 现有订单与柜次
- 不创建独立出仓单,现有订单从 `WAIT_SPLIT` 继续推进国内货柜履约状态。
- 通过“父订单→子订单→柜次”表达一张订单分多柜、多张订单拼柜和拆批;已装载数量形成子订单,未装载数量自动生成后续子订单,子订单必须保留来源订单和数量分摊快照。
- 订单保持用户当前看到的主状态;柜次承载多订单共享的订舱、拖车、装柜证据和船期信息。
- 订单详情展示关联柜次、子流程状态、异常和整体时间线。
- 所有主状态推进使用服务端门禁、幂等键和版本字段防止绕过与并发覆盖。
### 2. 智能排柜
- 原型仅明确“智能排柜”;已确认装载率上限为 110%,税率高排前仅作为可配置排序规则。柜型容量、重量、体积、箱数、同票/混票、不可混装和装载顺序由规则表配置并保留版本。
- 当前建议首版采用“系统建议、人工确认”;是否允许调整、是否强制填写原因由排柜规则确认。
- 建议排柜方案保留版本、规则版本、输入快照、操作者和前后差异,以支持追溯。
- 未确认方案不得生成正式拣货任务或执行不可逆状态变化。
### 3. 订舱与出仓前船期资料
- 国内货柜履约只维护订舱和装柜/出仓交接所需的预计开船、到港等静态资料,不执行出仓后的船公司或船节点查询。
- 船公司/订舱代理、航线、订舱号、船名航次、起运港、目的港、截单、截关、截港、ETD 和 ETA 暂列为候选字段。
- 订舱失败、改船、甩柜、船期延误和取消暂列为候选异常场景,按业务确认结果实现。
- 六家船公司来源、每 3 天/最多 3 次、最近有效结果和过期标识,以及对应适配层全部移至海外仓业务船节点查询维护。
- 国内货柜履约页面展示的 ETD/ETA 必须明确为订舱或人工确认快照,不得伪装成出仓后的实时查询结果。
- 建议关键信息变更保留旧值、新值、原因,并向授权用户发送站内提醒。
### 4. 预约拖车
- 从往来单位选择已启用拖车服务商,维护车牌、司机、电话和预约时间窗。
- 记录提柜、到仓、装柜、离仓、还柜节点和交接说明。
- 支持改约、取消、迟到、未到、车辆更换和柜号变更。
- 司机手机号等个人信息按最小权限展示,不进入不必要的客户响应。
- 图片原文“预约托车”建议统一为行业常用的“预约拖车”,需产品最终确认。
### 5. PDA 拣货与复核
- 按已确认排柜方案生成仓库、柜次、订单和货物明细级任务。
- PDA 支持登录、领取、箱号选择、扫码、数量确认、部分拣货、跳拣、撤销和异常上报;进入任务即标记“拣货中”。
- 正式作业必须联网;断网不能开始正式拣货、提交、完成任务或推进 `LOADED`,不建设离线业务提交队列。
- 扫描只更新绑定作业员、任务和柜次的设备持久化草稿;员工点击提交时才将全部明细批量写入后端,成功或明确放弃后清理,其他账号不得继承。
- 服务端校验任务归属、状态、重复扫码、超量、错货和批量提交;重复提交返回原结果,版本冲突提示刷新后重试。
- 允许部分拣货和跳拣,但每个未完成项必须填写异常原因;存在未解决差异时任务挂起,不能完成或进入 `LOADED`。
- 单柜次只允许一名作业员;不实现多人并行、退出接管或换班释放。进入任务即标记拣货中,点击确认完成后由服务端批量落库并参与统一门禁,无需后台二次审核。
- 扫描器、声音、震动、网络和缓存通过设备适配层实现,不直接绑定单一厂商 SDK。
### 6. 装柜及柜封证据
- 维护柜号、铅封号、装柜开始/完成时间、操作人和异常说明。
- 空仓、半仓、满仓、锁仓、带锁码照五类证据各至少上传 1 张有效照片,可同类型多张追加;带锁码照同时要求锁码文本。
- PDA 只能现场拍照;Admin 可通过独立受权入口人工上传。上传前展示柜次、柜号、铅封号和照片类型,防止证据关联错误。
- 每张照片作为独立记录,支持上传进度、失败重试和提交前预览;错误或重复照片不硬删除,标记作废并记录原因、操作人和时间。
- 照片记录文件哈希、上传人、上传时间、关联柜次、有效/作废状态和作废审计;照片无限期保留,客户不可见照片和锁码。后台操作员和理货员按权限人工上传,拣货员仅通过 PDA 现场拍照。
- 锁码重复、已确认的必传照片缺失或复核未通过时禁止确认装柜完成。
- 修改柜号或铅封号需要二次确认、原因和完整审计。
### 7. 报关资料协同
- 客户按资料清单上传发票、箱单、合同、委托书和申报要素等文件。
- 资料清单可按国家/地区、渠道和货物类型配置,并保存订单使用的清单版本。
- 平台报关专员审核完整性,可退回具体文件并记录补件原因和时限。
- 提交报关代理时生成提交批次,冻结该批次关联的文件版本。
- 首版采用系统内整理加线下提交,不直接对接海关单一窗口。
### 8. 报关回执与客户下载
- 授权人员人工上传代理回传的报关回执并关联提交批次;有效放行回执是装柜完成硬门禁,回执类型、版本和操作者可追溯。
- 替换文件产生新版本,不覆盖原记录;退单或补件形成明确任务。
- 客户只能下载本企业且标记为客户可见的回执。
- 文件下载使用授权地址并记录审计,不暴露内部存储路径。
### 9. 装柜完成确认与海外回传边界
- 服务端校验排柜已确认、PDA 拣货已完成、五类证据各至少 1 张有效且未作废的图片已取得真实 `fileId`、锁码文本已保存。
- 门禁通过后仅将订单推进为 `LOADED`/装柜完成,记录柜次、柜号、锁码、操作人、时间和证据版本。
- 该操作必须幂等、乐观锁、完整审计和失败回复,禁止从前端跳过门禁。
- 装柜完成后发现错误统一线下人工处理;当前不提供在线冲正/回退接口,系统保留原状态、证据和审计记录。
- `DELIVERED`/派送完成只接受海外仓可信回传,必须有来源身份、签名/防重放、幂等键、请求摘要和审计;国内 Admin/PDA 不提供手工“确认派送完成”操作。
## 六、核心数据对象
| 数据对象 | 关键内容 |
|---|---|
| 现有订单国内货柜履约投影 | 订单、客户、仓库、国内货柜履约主状态、关联柜次、子流程摘要和版本 |
| 父/子订单关系 | 父订单、子订单、来源柜次、已装载数量、未装载数量和自动生成原因 |
| 排柜方案 | 经确认的规则版本、输入快照、柜次、货物分配、规则计算结果和确认记录 |
| 柜次 | 柜型、柜号、铅封号、装载顺序、重量、体积和关联订单 |
| 订舱记录 | 船公司/代理、订舱号、船名航次、港口、舱位和异常 |
| 出仓前船期资料快照 | 经确认的订舱字段和变更历史;候选字段包括截单、截关、截港、ETD 和 ETA,不包含出仓后节点查询 |
| 拖车预约 | 服务商、车辆、司机、预约时间窗、到离仓节点和异常 |
| 拣货任务 | 柜次、货物明细、分配人、作业员、扫描、数量、差异和复核 |
| 装柜证据 | 柜号、铅封号、照片类型、文件、上传人、时间和可见范围 |
| 报关批次 | 资料清单版本、文件版本、补件、提交代理和回执 |
| 出仓时间线 | 事件、前后状态、操作者、发生时间、说明和请求关联 ID |
基础资料引用必须同时保存稳定 ID 和必要快照。订单、客户、仓库、往来单位、港务/船期信息或文件后续修改时,不得改变历史出仓记录。
## 七、应用范围
### 管理后台 `apps/admin-web`
- 增强现有订单列表/详情,展示柜次、各子流程、异常和状态操作。
- 按已确认的排柜规则提供建议、冲突展示、人工调整、版本对比和确认。
- 订舱、船期、拖车预约、装柜、柜号、铅封和照片。
- 报关资料审核、补件、提交批次、回执上传和客户可见控制。
- 权限至少拆分为查看、排柜、订舱、拖车、仓内复核、报关、确认装柜完成;仓库初始化操作员、拣货员、理货员角色,国内端不提供在线冲正或确认派送完成权限。
### 企业客户端 `apps/client-web`
- 在现有订单中查看关联柜次和允许公开的进度时间线。
- 上传、补充和查看报关资料及处理结果。
- 下载客户可见的报关回执。
- 查看预计开船、到港和船期变更,不暴露内部成本、供应商敏感信息和内部备注。
### PDA `apps/pda-uniapp`
- 仓库人员登录、任务领取、箱号选择、扫码拣货和数量确认。
- 进入任务即标记“拣货中”;允许部分拣货、跳拣和异常上报,未完成项原因必填并阻断完成。
- 扫描保存在设备持久化草稿,点击提交时批量写后端;草稿绑定作业员、任务和柜次。
- PDA 仅现场拍摄五类装柜照片,同类型可多张追加;确认关联信息后上传,并处理进度、失败重试和作废。
- 在线作业、前后台切换、重复提交、版本冲突和异常退出清理;不支持换班接管,断网不允许正式作业或提交。
- PDA 采用 uni-app 开发并支持在线更新;Android 广播扫描已按 Action=`android.intent.action.SCANRESULT`、Extra=`value` 接入,扫描适配保持厂商无关。
### 服务端 `baiyue-firstleg`
- 最终保证身份、客户归属、仓库数据范围、权限、状态、门禁、幂等、并发和审计。
- 管理出仓、排柜、订舱、拖车、拣货、装柜、报关和时间线的事务边界。
- 文件上传校验类型、大小、内容和权限;使用不可预测标识和授权下载。
- 国内货柜履约服务端保存订舱与出仓前船期资料;六家船公司和定时船节点查询由海外仓业务负责。车队、海关仍只预留适配层,报关首版全部人工处理,不承诺正式系统对接。
## 八、建议里程碑
| 里程碑 | 交付目标 | 进入条件 |
|---|---|---|
| P3-M0 规则与设备锁定 | 流程、角色、状态、排柜规则、PDA、文件和验收确认 | 入库测量与计费到仓契约稳定 |
| P3-M1 订单与排柜 | 现有订单可进入待分柜,并按确认范围提供柜次建议、人工确认与追溯 | 排柜规则确认 |
| P3-M2 订舱与拖车 | 订舱、出仓前船期资料、拖车预约和异常处理可用 | 服务商与权限可用 |
| P3-M3 PDA 拣货 | 在线任务、持久化草稿、批量提交、差异、复核和幂等可用 | 服务端任务与库存契约可用 |
| P3-M4 装柜封柜 | 柜号、铅封和照片证据完整,门禁生效 | 文件能力与必传清单确认 |
| P3-M5 报关协同 | 客户上传、平台审核、补件、提交和回执下载闭环 | 报关资料清单确认 |
| P3-M6 装柜完成 | 订舱、拖车、放行回执、PDA 拣货、五类证据和锁码文本满足门禁后进入 `LOADED`/装柜完成 | 装柜完成硬门禁已确认 |
| P3-M7 联调验收 | 跨端、设备、安全、弱网、性能、迁移和发布完成 | P3-M1 至 P3-M6 验收通过 |
## 九、建议开发任务
| ID | 端 | 模块 | 交付内容 | 优先级 | 依赖 |
|---|---|---|---|---|---|
| P3-BASE-01 | 公共 | 出仓契约 | 主/子状态、权限、事件、错误码、门禁和快照模型 | P0 | 入库测量与计费到仓契约 |
| P3-BASE-02 | 公共 | 数据模型 | 现有订单国内货柜履约投影、订单-柜次、排柜、订舱、拖车、拣货、装柜、报关和时间线 | P0 | P3-BASE-01 |
| P3-DSP-01 | 后台 | 订单国内货柜履约编排 | 在现有订单列表/详情中接入柜次、子流程、异常、时间线和门禁操作 | P0 | P3-BASE-02 |
| P3-PLAN-01 | 公共 | 排柜规则 | 按已确认规则实现输入、约束、偏好和冲突判断 | P0 | P3-BASE-02、P3-Q1 |
| P3-PLAN-02 | 后台 | 智能排柜 | 按已确认范围实现建议、人工确认和追溯 | P0 | P3-PLAN-01 |
| P3-BOOK-01 | 后台 | 订舱 | 订舱和经确认的船名航次、港口、变更及异常;订舱完成是 `LOADED` 门禁 | P0 | P3-DSP-01 |
| 原 P3-PORT-01 | 后台/服务端 | 出仓后船节点查询 | 已重新归入海外仓业务,不作为国内货柜履约交付或验收项;沿用现有 `CarrierScheduleQuery`,不得重复实现 | 海外仓业务 | P3-BOOK-01、确认国内出仓 |
| P3-TRUCK-01 | 后台 | 拖车预约 | 服务商、车辆司机、时间窗、到离仓和异常 | P0 | P3-DSP-01 |
| P3-PICK-01 | 公共 | 拣货任务 | 按排柜方案生成任务、明细、差异和复核规则 | P0 | P3-PLAN-02 |
| P3-PDA-01 | PDA | 在线扫码拣货 | 进入任务标记拣货中、扫描草稿、部分/跳拣异常原因和批量提交 | P0 | P3-PICK-01 |
| P3-PDA-02 | PDA/服务端 | 草稿与提交安全 | 作业员+任务+柜次持久化草稿、幂等重试、版本冲突、成功/放弃清理 | P0 | P3-PDA-01 |
| P3-LOAD-01 | 后台 | 装柜封柜 | 柜号、锁码文本、装柜节点、五类多图证据和门禁复核 | P0 | P3-PICK-01 |
| P3-LOAD-02 | PDA/Admin/服务端 | 柜封拍照上传 | PDA 现场拍摄、Admin 人工上传、五类证据多图追加、真实文件上传、预览、失败重试、作废和提交 | P0 | P3-LOAD-01、文件能力可用 |
| P3-CUS-01 | 客户端 | 报关资料 | 清单、上传、补件、版本和进度查看 | P0 | 文件能力可用 |
| P3-CLEAR-01 | 后台 | 报关协同 | 人工审核、补件、线下提交代理、人工上传放行回执和版本审计 | P0 | P3-CUS-01 |
| P3-CUS-02 | 客户端 | 回执及出仓前船期资料 | 回执下载、订舱预计开船/到港快照和变更时间线;出仓后查询展示归海外仓业务 | P0 | P3-BOOK-01、P3-CLEAR-01 |
| P3-GATE-01 | 服务端 | 装柜完成门禁 | 校验订舱、拖车、报关放行回执、PDA 拣货、五类证据和锁码文本,幂等推进 `LOADED`;`LOADED` 后仅线下人工处理 | P0 | P3-PICK-01、P3-LOAD-01、P3-LOAD-02 |
| P3-OVERSEAS-01 | 服务端 | 海外仓派送完成回传 | 只接受海外仓可信回传,校验身份、签名、时间窗、防重放和幂等,推进 `DELIVERED` | P1/后续阶段 | 海外仓契约 |
| P3-NOTIFY-01 | 公共 | 通知异常 | 站内通知、阻塞、责任人、时限和失败补偿 | P1 | 核心流程完成 |
| P3-TEST-01 | 公共 | 自动化测试 | 权限、排柜、幂等、并发、文件、门禁和状态测试 | P0 | 所有 P0 模块 |
| P3-DEVICE-01 | PDA | 发布与真机验收 | 扫描头、弱网、性能、电量、前后台和在线更新验证 | P0 | 已确定的 uni-app 发布安排 |
| P3-REL-01 | 公共 | 发布验收 | 初始化规则、迁移、联调、演练、灰度和生产发布 | P0 | P3-TEST-01、P3-DEVICE-01 |
## 十、测试与验收重点
- 系统排柜符合已确认的业务规则;如启用建议解释、人工调整、版本或原因记录,对应结果可追溯。
- 多订单拼柜和一单多柜的件数、重量、体积能与入库测量与计费实测版本对账。
- PDA 重复扫码、超量、错货和重复提交不产生重复扣减或完成事件;断网时禁止正式作业和提交。
- 本地草稿在应用重启后可由同一作业员、任务和柜次恢复,不能被其他账号继承;批量提交成功后清理。
- 柜封照片能够在 PDA 现场拍摄或由 Admin 受权上传;同类型可多张追加,失败重试不重复创建同一记录,错图只作废不硬删除。
- 未完成 PDA 拣货、缺少任意一张必传照片或锁码文本时不能进入 `LOADED`/装柜完成。
- 企业 A 无法查看、上传或下载企业 B 的报关资料和回执。
- 报关资料替换、退回、补件、提交和回执均能追溯到明确版本。
- 订舱与出仓前船期资料变更保留历史;出仓后船节点查询结果的来源、更新时间和过期验收归海外仓业务。
- 确认装柜完成的并发请求只产生一次状态变化和一次有效审计事件。
- 管理后台覆盖加载、空态、失败、无权限和数据冲突;PDA 覆盖弱网、前后台切换和硬件扫描。
- 国内货柜履约验收基线为 `LOADED`/装柜完成;`DELIVERED`/派送完成只由海外仓回传推进,不属于国内国内货柜履约验收条件。
## 十一、启动前技术澄清事项
验收任务拆分、真实 HTTP 覆盖和未确认项解除条件统一见[国内货柜履约验收任务拆分与待确认清单](国内货柜履约验收任务拆分与待确认清单.md)。当前已确认的 PDA/证据规则已进入 `phase3-container-loading.mjs`、`phase3-loading.mjs`;未确认规则不得标记为国内货柜履约完成。
| 编号 | 待确认问题 | 当前建议 |
|---|---|---|
| P3-Q1 | 智能排柜需考虑哪些硬约束和软偏好? | 已确认:装载率上限 110%;税率高排前做可配置排序,规则版本化 |
| P3-Q2 | 是否存在拼柜、一单多柜和拆批出仓? | 已确认:父订单→子订单→柜次;已装载/未装载数量自动形成子订单 |
| P3-Q3 | “预约托车”是否统一为“预约拖车”? | 已确认统一使用“预约拖车” |
| P3-Q4 | PDA 开发、扫描与发布方式是什么? | 已确认采用 uni-app 开发并支持在线更新;Android 广播接入已完成,设备型号不构成门禁 |
| P3-Q5 | 拣货是否依赖实时库存和库位可用量? | 已确认依赖入库测量与计费实时库存、当前位置和可用量接口;不扩展完整 WMS |
| P3-Q6 | 柜封照片有哪些必传角度和留存期限? | 已确认:五类各至少 1 张、同类型可多张追加、后台操作员/理货员可上传、拣货员仅 PDA 现场采集、错图作废、无限期保留、客户不可见 |
| P3-Q7 | 报关资料清单是否按国家、渠道和货物类型变化? | 已确认首版人工维护清单和版本,不接自动报关 |
| P3-Q8 | 报关代理如何接收资料和返回回执? | 已确认线下提交,授权人员人工上传回执 |
| P3-Q9 | 原型中的“港务信息”具体指船期、港口作业状态还是两者,包含哪些字段,由谁维护? | 当前更正:国内货柜履约只维护订舱与出仓前船期资料;六家船公司及出仓后节点查询整体归海外仓业务 |
| P3-Q10 | 进入装柜完成后发现错误如何处理? | 已确认线下人工处理,当前不提供在线冲正 |
| P3-Q11 | 九个动作中哪些是强制前置,哪些允许并行? | 已确认订舱、拖车、报关放行、PDA 拣货和五类证据为 `LOADED` 硬门禁;单柜次单作业员 |
| P3-Q12 | “报关回执”具体包含哪些类型,海关放行是否为国内出仓硬门禁? | 已确认有效放行回执为 `LOADED` 硬门禁,首版人工上传 |
| P3-Q13 | 国内货柜履约终点以什么状态为准? | 已确认为 `LOADED`/装柜完成;`DELIVERED`/派送完成由海外仓回传,不属于国内国内货柜履约 |
## 十二、建议实施顺序
1. 固化已确认业务规则,按 uni-app 在线更新安排推进 PDA 开发、发布和真机验收。
2. 统一订单、柜次、订舱、拖车、拣货、报关和出仓前船期资料的稳定编码与关联契约;出仓后查询按海外仓业务衔接。
3. 先实现服务端权限、状态、门禁、幂等、并发和审计,再接各端页面。
4. 完成管理后台的出仓编排,再接 PDA 现场执行和客户资料协同。
5. 使用脱敏数据演练拼柜、一单多柜、未装数量生成子订单、错拣、补件和改船;`LOADED` 后不演练在线冲正。
6. 在真实 PDA 和代表性仓库网络环境中完成联调、验收和灰度发布。