29 KiB
阶段二:国内到仓、测量计费与组托
对应全景流程:F08~F13。
阶段起点:Order 已审核通过,Firstleg 正式国内入库单已创建,统一主状态为WAIT_MEASURE。
普通订单终点:测量审核通过,主状态进入WAIT_SPLIT。
一件代发终点:测量审核后进入WAIT_PALLETIZE,完成清点、归托和封托后进入WAIT_SPLIT。
本文记录当前可执行流程。费用是并行状态,不作为进入WAIT_SPLIT的前置条件。
1. 阶段目标和边界
本阶段要完成七件事:
- 用稳定入仓码、箱码识别实际到仓货物;
- 保存设备测量、人工测量、称重图片、OCR 原值和人工修正值;
- 核对实收箱数、实测尺寸、重量、预计托数和现场证据;
- 审核并冻结本次有效测量结果;
- 生成可独立维护、发布和确认的费用版本;
- 在需要时执行国内扣货或解除,并完整保留证据;
- 对一件代发订单完成逐箱 SKU 清点、归托和封托。
本阶段不负责模拟柜、排柜、订舱、拖车、装柜、国内出仓、海外入库或尾程出库。普通订单进入 WAIT_SPLIT 仅表示已具备后续分柜条件,不表示已入柜、已离仓或已经生成海外库存。
2. 角色、终端与权限
| 角色 | 终端 | 主要操作 | 边界 |
|---|---|---|---|
| 国内仓收货/测量员 | Admin、测量设备 | 按入仓码定位、录入或接收尺寸、上传称重图片、确认重量、提交测量 | 不审核自己的权限外任务,不改订单客户归属和原始申报 |
| 国内仓现场主管 | Admin | 复核箱数、尺寸、重量和证据,处理现场差异 | 不直接改费用价格簿和客户账务 |
| 测量审核员 | Admin | 单票或批量审核、驳回;有专项权限时异常放行 | 不通过修改数据库绕过证据或状态门禁 |
| 费用操作员 | Admin | 查看系统试算、调整允许字段、确认并发布费用版本 | 不修改测量原始证据,不越权跨客户操作 |
| 企业费用确认人 | Client | 查看已发送的当前费用版本并确认 | 不能看到未发布版本、其他客户或内部成本 |
| 扣货操作员 | Admin | 发起 HOLD、上传凭证、按规则解除 | 已拣货、装柜或出仓后不能手工扣货/解除 |
| 国内 PDA 操作员 | PDA | 一件代发逐箱清点、扫码归托、封托、规则内解封 | 不创建临时箱码,不直接改测量和费用 |
| Firstleg 服务 | 后端 | 拥有入库单、箱码、测量、审核、费用来源、组托和主流程状态 | 不拥有客户资金主账、公共仓储主档或订单交易主数据 |
| Finance 服务 | 后端 | 接收不可变费用来源,维护后续账务 | 不成为测量、箱码或主流程状态权威 |
页面按钮是否可见只能作为操作提示,服务端仍需校验身份、数据范围、权限、当前状态、版本和幂等键。
3. 阶段输入与作业前检查
3.1 从阶段一接收的权威数据
| 数据 | 来源 | 本阶段用途 |
|---|---|---|
| 客户、订单号、入仓码 | Order/Firstleg | 识别货主和整票任务 |
| 国内收货仓 | Order 冻结快照、Warehouse 主档 | 限定实际作业仓和资源范围 |
| 渠道、目的类型、目的仓/地址 | Order 冻结快照 | 费用试算和后续分柜参考 |
货物 itemNo、SKU、申报箱数 |
Order 申报快照 | 箱数核对、一件代发清点 |
| 申报尺寸、重量、体积 | Order 申报快照 | 差异对比,不覆盖实测值 |
| 履约类型 | Order/Firstleg | 判断普通订单或 ONE_CLICK_DROPSHIP |
| 稳定箱码及箱内 SKU | Firstleg | 测量、PDA 和装柜全过程复用 |
3.2 现场开始前检查
- 当前作业仓必须与入库单国内收货仓一致;
- 入仓码必须可查询到唯一正式入库单;
- 箱码必须来自系统已生成的稳定箱码池,不得用临时手写编号替代;
- 订单处于允许采集测量的状态,已提交或已审核的测量批次不可继续修改;
- 测量设备、秤、相机和网络可用;无法自动识别时必须保留图片并走人工确认;
- 一件代发必须能够读取每个物理箱与完整 SKU 的冻结关系;
- 操作员要先区分“申报箱数”和“实际确认箱数”,不得把客户申报直接当作实收事实。
订单尚处于 PENDING_REVIEW 时,系统可允许提前采集测量数据,但不能完成测量审核、计价或进入分柜。正式交接仍以订单审核通过和入库单有效为准。
4. F08 国内到仓与箱码识别
4.1 按入仓码收货定位
入口:Admin → 入库管理/统一入库工作台 → 货品与测量。
操作步骤:
- 扫描或输入入仓码;
- 核对订单号、客户、国内仓、履约类型和申报箱数;
- 查看该票稳定箱码是否已经生成;
- 按实际到货逐箱核对外包装上的箱码;
- 对缺码、重码、无法识别或与本票不匹配的箱子先隔离,不直接进入测量;
- 确认现场货物与页面显示为同一客户、同一入仓码后再开始采集。
系统中的“正式到仓”不是靠操作员另造一个新业务编号完成。入仓码负责整票定位,箱码负责物理箱身份,后续设备、人工测量、PDA 组托和装柜继续复用相同映射。
4.2 普通订单箱码
- 每个物理箱使用稳定
boxCode; - 箱码可以由客户或平台下载打印,但是否打印不影响系统中箱码的有效性;
- 测量记录必须关联稳定箱码或明确的箱规数量,不能只写自由文本;
- 后续装柜完成时按最终实装事实冻结并向下游传递箱码/箱数。
4.3 一件代发箱码
fl_inbound_carton_label表示物理箱;- 箱内一条或多条 SKU 关系在箱码生成时冻结;
- 标签展示箱内 SKU,但二维码/条码仍只携带稳定箱码;
- 缺少 SKU 的货物不能生成合格的一件代发箱唛;
- PDA 清点时扫描这个箱码读取整箱 SKU,不重新手工创建商品明细。
4.4 到仓差异登记
| 差异 | 现场处理 | 系统处理原则 |
|---|---|---|
| 少箱/分批到货 | 标识未到箱,暂不虚增实收 | 测量总箱数必须基于实际确认结果 |
| 多箱 | 隔离并查明所属 | 未建立合法箱码关系前不得并入本票 |
| 箱码破损 | 用入仓码和订单信息核验后补打原箱码 | 不生成第二个物理身份 |
| 箱码属于其他订单 | 隔离并通知主管 | 禁止强行绑定当前入仓单 |
| 外包装异常 | 拍照、备注并按异常规则处理 | 证据与业务事实关联,不能只在线下沟通 |
5. F09 尺寸测量与称重
5.1 页面和数据组成
入口:Admin → 入库管理 → 货品与测量。
一次完整测量至少包含:
- 测量批次:入库单、批次状态、采集来源、提交人和时间;
- 测量明细:箱码/箱规、长、宽、高、箱数、体积、设备或人工来源;
- 重量结果:称重图片、OCR 原值、采用值、毛重/净重、确认状态;
- 辅助信息:预计托数、测量时间、设备号/事件号、备注和差异原因;
- 审计字段:创建人、修改人、版本、提交与审核历史。
客户申报值、设备原始值、OCR 原值、人工修正值和最终计费采用值必须并行保留,不能用最终值覆盖原始证据。
5.2 设备自动测量
第三方设备按接口提交入仓码或箱码、长宽高、数量、设备标识和事件号。
操作要求:
- 先在设备端确认扫描的是当前物理箱;
- 设备上传后在 Admin 核对是否归入正确入仓单;
- 核对尺寸单位、箱数和设备时间;
- 重复回调使用同一事件号幂等处理,不生成重复测量;
- 设备数据异常时保留原值,另行人工修正,不删除原始记录。
单次批量测量明细最多 500 条。超过时应按现场批次拆分,而不是截断数据。
5.3 人工补录尺寸
适用场景:设备不可用、个别箱复核、非标货或设备数据需要纠正。
操作步骤:
- 点击新增/编辑测量明细;
- 选择稳定箱码或填写明确箱规及对应箱数;
- 填写长、宽、高,三项都必须大于 0;
- 填写测量时间;
- 上传必要的测量图片,单个文件不得超过页面限制(当前为 5 MB);
- 写明人工补录或修正原因;
- 保存后重新核对明细箱数合计。
人工补录可以替换可编辑批次中的业务测量项,但不得抹掉同一物理箱已经冻结的扫码身份、设备事件和原始取证。
5.4 称重图片与 OCR
操作步骤:
- 上传能够清晰看到秤面读数和货物关联的称重图片;
- 等待 OCR 返回识别值;
- 将 OCR 原值与图片读数比对;
- 正确时确认采用;不正确时填写人工修正值和原因;
- 确认单位统一换算为系统采用单位;
- 将每张有效图片设置为已确认;
- 确保最终总重量大于 0。
即使整票只有 1 箱,也至少需要 1 张已确认重量图片。真实 OCR 凭证未配置或识别失败时,可以保留失败结果后人工确认;这是一条有证据的降级路径,不等于允许无图录重量。
每张有效重量图片只能计重一次。重复上传、同图重复确认或同一重量被不同图片重复累计时,必须先消除重复再提交。
5.5 保存前与提交前校验
点击“保存测量数据”时保存当前可编辑批次;点击“提交审核”前至少检查:
- 存在至少一条有效测量明细;
- 所有长宽高、箱数、时间和必要附件合法;
- 测量明细确认箱数合计等于整票实际确认总箱数;
- 至少有一张已确认重量图片,全部有效图片均已处理;
- 最终总重量大于 0;
- 预计托数为合法正数或满足页面当前规则;
- 页面没有尚未保存的修改;
- 当前批次没有被其他人提交或审核;
- 订单已经审核通过,具备提交审核资格。
系统尝试依据已确认重量和提交动作建立整票连续库位占用/预留。资源不足等非致命问题应显示明确警告并由仓库处理;不得把警告伪装成已完成物理入库,也不得让位置建议覆盖测量事实。
6. F10 测量审核与初始计价
6.1 审核入口
入口:Admin → 入库管理 → 测量审核。
审核员按单票或批量打开待审任务,核对:
- 客户、入仓码、订单号和国内仓;
- 申报箱数与实际确认箱数差异;
- 每组箱规的长宽高、数量和体积;
- 称重图片、OCR 原值、人工采用值和修正原因;
- 总重量、总体积和预计托数;
- 客户尺寸规则或价格簿所需维度;
- 是否存在重复图片、重复箱码、缺失证据或异常备注。
6.2 审核通过
点击审核通过后,服务端在同一受控流程中:
- 再次校验当前状态、批次版本和证据完整性;
- 冻结本次有效测量结果;
- 计算或准备初始费用版本;
- 普通订单主状态进入
WAIT_SPLIT; - 一件代发主状态进入
WAIT_PALLETIZE; - 写入审核人、审核时间和状态历史。
初始计价失败或产生警告时,不应回滚已经合法完成的测量审核,也不能把普通订单从 WAIT_SPLIT 拉回旧的计费状态。页面需要明确展示“测量已通过、计价待处理”这两个独立结果。
批量审核时,每票都必须返回独立结果。部分失败不能让操作员误以为整批全部成功;失败项按入仓码展示原因并保留在待处理列表。
6.3 审核驳回
发现数据或证据不合格时填写明确原因并驳回:
- 驳回原因应说明需要修正的字段或证据;
- 原测量批次和审核历史保留,不原地覆盖成新记录;
- 操作员按原因修正允许编辑的数据后重新提交;
- 历史
MEASURE_REJECTED只作为事实和恢复入口,不代表可以绕过审核直接分柜。
6.4 异常放行
异常放行只适用于已驳回测量,且必须同时满足:
- 环境已开启对应开关;
- 当前用户具备专项权限;
- 被放行批次确实处于已驳回状态;
- 填写非空放行原因;
- 完整记录操作人、时间、原驳回原因和放行原因。
异常放行不能变成常规“跳过审核”按钮,也不能补造不存在的称重或测量证据。
7. F11 费用生成、发布与客户确认
7.1 费用与主流程的关系
费用是与主状态并行的业务维度:
测量审核通过 ──→ 主流程:WAIT_SPLIT(普通)/ WAIT_PALLETIZE(一件代发)
└──────→ 费用:初算 → 人工维护 → 确认/发布 → 客户确认 → 条件满足后冻结
因此:
- 费用未发送不阻止普通订单进入
WAIT_SPLIT; - 客户未确认费用不把主流程回退;
- 装柜完成也不能代替客户自动确认费用;
- 费用的最终冻结需“客户已确认”和“本票已装柜完成”同时成立。
7.2 系统初算
入口:Admin → 入库管理 → 费用。
系统基于已审核测量结果和有效价格簿生成版本化费用,操作员应检查:
- 计费采用的是哪一组实测重量、体积和计费量;
- 命中的渠道、目的地区域和价格簿版本;
- 是否命中客户专属 ACTIVE 价格簿;未命中时才回退公共 ACTIVE 价格簿;
- 计价模型是重量、体积、仓库费率、区域重量阶梯或其他当前有效模型;
- 基础费用、附加费、币种、税费或调整项是否完整;
- 系统警告是否说明缺价格、缺映射或数据不满足模型。
同柜区域重量阶梯可能在阶段三根据同柜、同客户的最终有效成员聚合后重算;固定模型成员不参与阶梯聚合。此处初算是当前版本事实,不承诺后续永不变化。
7.3 人工调整
允许调整时:
- 选择当前费用版本;
- 查看系统基准量、基准单价和基准金额;
- 在服务端允许的范围内修改;当前规则以系统基准量为中心限制上下 10%,含边界;
- 填写调整原因;
- 完成二次确认;
- 保存为新版本,由服务端重新计算金额。
页面不能只提交最终总额来绕开计费规则。版本、基准、调整值、原因、操作人和时间都要可追溯。
7.4 平台确认与发送
操作员确认费用明细无误后执行页面上的确认/发送操作:
- 复核客户、入仓码、币种和当前版本;
- 确认没有待处理计价警告;
- 发布当前费用明细;
- 将费用状态置为客户可见的
SENT; - 记录发送人、发送时间和版本。
“发送费用”表示发布当前费用版本供客户查看,不等于已经收款、核销或形成最终财务结算。
7.5 客户查看和确认
入口:Client → 头程订单/入库费用。
客户只有在以下条件同时满足时才能看到费用:
- 费用属于当前登录客户;
- 测量已经审核通过;
feeStatus=SENT;- 存在已发布明细。
客户确认时携带当前 expectedFeeVersion 和幂等键。成功后记录确认成员和时间。
若装柜完成前平台生成并重新发送新版本,旧版本客户确认快照被清空,客户需要确认新版本。旧版本、未发送版本或同一幂等键携带不同参数都必须冲突失败,不能静默覆盖。
8. F12 国内扣货与解除
8.1 适用目的
HOLD 用于在存在费用、资料、风控、货损或其他明确风险时阻断后续物理履约写入。它不是删除订单,也不修改客户和测量事实。
8.2 发起扣货
入口:Admin → 统一订单/入库详情 → 扣货。
操作步骤:
- 确认当前入仓单尚未发生不允许回退的实物动作;
- 选择或填写扣货原因;
- 上传有效凭证;
- 核对入仓码、客户和当前版本;
- 二次确认后提交;
- 查看 HOLD 状态、操作人和时间线是否写入。
扣货生效后,分柜、拣货、装柜、出仓等后续物理写操作必须由服务端阻断,不能只在前端隐藏按钮。
8.3 解除扣货
- 打开当前有效 HOLD;
- 核对风险是否已经消除;
- 填写解除原因并补充凭证;
- 携带当前版本和幂等键提交;
- 系统关闭当前 HOLD,但保留发起与解除历史;
- 重新评估主状态允许的下一步动作。
已经发生拣货、装柜或出仓时,禁止通过手工扣货/解除改变已发生的物理事实。此时应进入对应阶段的异常流程。
9. F13 一件代发国内清点组托
9.1 进入条件
一件代发测量审核通过后不直接进入 WAIT_SPLIT,而是:
- 主状态为
WAIT_PALLETIZE; - 按预计托数预生成
DP托盘码; - 箱码与箱内 SKU 已冻结且可被 PDA 读取;
- 不创建国内库存;
- 组托完成后才交给分柜。
预计托数与实际已生成托盘数不一致时禁止开始作业,应先修正任务或重新生成合法托盘,不允许 PDA 临时造托盘码。
9.2 Admin 打印托盘信息单
入口:Admin → 一件代发组托任务。
- 打开入仓码对应任务;
- 核对预计托数和已生成
DP托盘列表; - 逐托打印 A4 信息单,每托一页;
- 核对 Code 128 托盘码、入仓码、总箱数和 SKU 清单;
- 将标签贴到对应空托或托盘作业位。
信息单用于识别和作业,不展示容易过期的实时作业状态。实际状态以 PDA/服务端为准。
9.3 PDA 逐箱清点与归托
入口:国内 PDA → 一件代发清点组托。
允许两种顺序:
先扫托盘 → 连续扫箱并清点 → 确认归托
先扫箱并清点 → 扫目标托盘 → 确认归托
逐箱操作:
- 扫描稳定箱码;
- PDA 展示整箱 SKU、商品名称和应点数量;
- 按完整 SKU 清点实点数量;
- 有差异时填写原因并按现场异常规则处理,不能直接改冻结 SKU;
- 扫描目标
DP托盘码; - 确认该箱归托;
- 继续下一箱,直到本票全部箱处理完成。
同仓多票在当前规则允许时可以共用一个开放托盘。共托不会改变箱子所属客户、订单、入仓码和 SKU;系统必须保存逐箱归属,不能只保存托盘总数量。
9.4 封托与解封
封托前检查:
- 托盘上所有箱均已完成 SKU 清点;
- 物理箱数与系统箱数一致;
- 托盘标签清晰且与 PDA 当前托盘一致;
- 没有未处理差异或重复归托;
- 共托场景下各参与任务的数据均完整。
操作员在 PDA 点击封托。封托后该托成为阶段三的整托候选。
未进入装柜计划前可按权限和规则解封。共托解封时,所有参与任务和入仓单的相关状态必须同步恢复,不能只恢复其中一票。托盘进入有效装柜计划后不得在本阶段任意解封。
9.5 组托完成判定
系统只有在以下条件同时满足时将一件代发入仓单从 WAIT_PALLETIZE 推进到 WAIT_SPLIT:
- 本票所有稳定箱码均已清点;
- 每箱完整 SKU 均已核对;
- 每箱恰好归属一个有效参与托盘;
- 本票实际参与的所有托盘均已封托;
- 没有开放托盘仍包含本票箱子;
- 箱数、SKU 数量和托盘冻结快照核平。
预计生成但实际未使用的空托盘不应伪造为已作业托盘;最终事实以实际参与且完成的托盘为准。
10. 状态机与可用动作
10.1 主流程状态
| 当前状态 | 条件/操作 | 下一状态 | 说明 |
|---|---|---|---|
PENDING_REVIEW |
可提前采集测量 | 不变 | 不能审核测量、计价或分柜 |
WAIT_MEASURE |
保存测量 | 不变 | 可反复保存未提交批次 |
WAIT_MEASURE |
提交测量审核 | 不变/待审维度变化 | 已提交批次冻结 |
WAIT_MEASURE |
审核驳回 | 驳回事实 | 修正后重新提交 |
WAIT_MEASURE |
普通订单审核通过 | WAIT_SPLIT |
费用并行处理 |
WAIT_MEASURE |
一件代发审核通过 | WAIT_PALLETIZE |
必须先完成清点组托 |
WAIT_PALLETIZE |
全部箱和实际托盘完成 | WAIT_SPLIT |
不创建国内库存 |
WAIT_SPLIT |
合法解封导致组托不再完整 | WAIT_PALLETIZE |
仅限未进入装柜计划等允许条件 |
测量批次状态、审核状态、费用状态、HOLD 状态和托盘状态是独立维度,不能把它们拼成一条虚假的单状态流水线。
10.2 费用状态关键约束
| 费用事实 | 平台可修改 | 客户可见/确认 | 最终冻结 |
|---|---|---|---|
| 未生成/初算警告 | 是 | 否 | 否 |
| 已生成、未发送 | 是 | 否 | 否 |
SENT、客户未确认 |
是,可生成新版本 | 可见、可确认 | 否 |
| 客户已确认、尚未装柜完成 | 仍可按规则生成新版本并重新发送 | 新版本需重新确认 | 否 |
| 客户已确认且装柜完成 | 否 | 已确认 | 是 |
10.3 HOLD 的正交关系
HOLD 不必改变主状态文字,但会阻断后续物理履约动作。解除后继续从原主状态判断下一步,不自动跳过测量、组托或分柜条件。
11. 数据归属与流转
11.1 关键数据所有者
| 数据 | 权威系统 | 下游消费者 |
|---|---|---|
| 客户申报、订单交易状态 | Order | Firstleg、页面查询 |
| 入库单、入仓码映射 | Firstleg | Admin、设备、PDA、后续装柜 |
| 稳定箱码、箱内 SKU | Firstleg | 测量、PDA、装柜事件、尾程 |
| 公共仓库、库位、托盘资源 | Warehouse | Firstleg 作业引用 |
| 测量原始值、人工采用值、证据 | Firstleg | 计价、审核、后续审计 |
| 费用来源和版本 | Firstleg | Client、Finance |
| 应收应付、收付款、核销 | Finance | 财务终端与对账 |
| 文件对象 | File | 各业务通过合法文件引用使用 |
11.2 数据流
Order 审核快照
↓
Firstleg 正式入库单 + 稳定箱码
↓
设备/人工尺寸 + 称重图片/OCR + 人工确认
↓
测量审核冻结 ──────────────→ 主流程 WAIT_SPLIT / WAIT_PALLETIZE
├→ 初始费用版本 → 平台维护/发送 → 客户确认 → Finance 来源
├→ 仓位连续占用/预留尝试 → Warehouse 资源
└→ 一件代发 PDA 逐箱清点 → DP 托盘冻结 → WAIT_SPLIT
11.3 必须保留的快照和历史
- 原始客户申报与最终实测同时存在;
- 设备事件号、设备原值、人工修正值和原因;
- 原始称重图片、OCR 原值、采用值和确认人;
- 每次测量提交、驳回、通过和异常放行;
- 每个费用版本、价格簿来源、系统基准、人工调整和客户确认;
- 每次 HOLD 发起、证据、解除和版本;
- 一件代发每箱 SKU 实点、归托、封托和解封历史。
12. 正常分支、异常与恢复
| 场景 | 系统行为 | 操作员处理 |
|---|---|---|
| 订单未审核但货先到 | 允许按当前规则采集,禁止审核/计价/分柜 | 保留测量草稿,等待订单审核 |
| 查不到入仓码 | 不创建临时正式入库单 | 隔离货物,核对订单提交/审核结果 |
| 箱码破损 | 原身份仍有效 | 核验后补打相同箱码 |
| 设备重复上报 | 按事件号幂等,不重复计量 | 核对已有记录,不换事件号盲重试 |
| 设备值异常 | 原值保留 | 人工复测并写修正原因 |
| OCR 失败 | 失败结果和图片保留 | 人工读取、录入并确认 |
| 重量图片重复 | 禁止重复计重 | 删除/作废重复采用关系后重算 |
| 明细箱数不等于实收总箱数 | 禁止提交 | 查找漏测、重复测量或到货差异 |
| 预计托数无效 | 禁止提交或组托 | 仓库重新评估并保存 |
| 页面有未保存修改 | 禁止提交审核 | 先保存再提交 |
| 测量被并发提交 | 版本冲突 | 刷新后查看权威结果 |
| 审核通过但计价失败 | 主状态按审核结果推进,费用显示待处理 | 修复价格簿/映射后重算,不回退测量 |
| 费用版本过期 | 客户确认冲突 | 刷新并确认当前已发送版本 |
| HOLD 生效 | 后续实物写入失败关闭 | 处理风险后按证据解除 |
| 一件代发箱内 SKU 不符 | 不直接改冻结清单 | 记录差异并由有权流程纠正来源 |
| 开放共托仍含本票箱子 | 本票不能完成组托 | 完成或按规则拆解参与托盘 |
| 封托后需调整 | 仅未进入装柜计划时可解封 | 有权解封、修正、重新封托 |
| PDA 请求超时 | 不确定是否成功 | 先查询箱/托当前状态,再用原幂等语义处理 |
13. 阶段完成判定
13.1 普通订单
- 入仓码、订单、客户和国内仓对应正确
- 稳定箱码和实收箱数可追溯
- 测量明细箱数与实际确认总箱数一致
- 尺寸、重量、图片和人工修正证据完整
- 至少一张重量图片已确认且总重量大于 0
- 测量批次已审核通过并冻结
- 主状态为
WAIT_SPLIT - 初始费用已生成,或计价警告已作为独立待办暴露
- 若存在 HOLD,下一阶段明确知道当前不可继续物理履约
- 重复提交和重复审核不会产生重复事实
13.2 一件代发订单
除普通测量条件外,还必须满足:
- 每个物理箱和完整 SKU 来源可追溯
- 每箱均已完成 SKU 清点
- 每箱恰好归属一个实际参与托盘
- 所有实际参与托盘均已封托
- 共托参与关系和逐箱归属完整
- 最终托盘冻结快照存在
- 主状态已从
WAIT_PALLETIZE进入WAIT_SPLIT - 未因组托创建国内库存
费用是否已经发送、客户是否已经确认,不作为本阶段主流程交接到阶段三的硬门槛;但必须作为并行待办清晰展示和持续跟踪。
14. 易用性与数据流评审问题
以下问题先记录,后续优化阶段逐项决策:
- 到仓页是否需要独立的“实收登记”动作和时间戳,还是继续由首次合法测量/扫码体现到仓?
- 订单未审核时允许提前测量,页面应如何醒目标识“仅采集、不可审核”,避免仓库误判流程已放行?
- 箱数差异是否需要结构化的少箱、多箱、破损和错货原因,而不是仅填备注?
- 真实 OCR 供应商凭证、现场秤图片式样和识别准确率应由谁验收?
- 连续库位预留失败目前作为警告时,仓库如何看到并闭环处理,是否需要独立待办?
- “发送费用”是否应改名为“发布给客户”,以避免被误解为发送账单或已完成结算?
- 计价失败但主流程已进入
WAIT_SPLIT时,是否需要跨页面的费用红点、责任人和超时提醒? - HOLD 的发起责任、审批规则、证据类型和解除责任是否已经形成可审计 SOP?
- 一件代发允许跨订单共托时,业务是否确认允许跨客户;若允许,拆托、异常和费用责任如何分摊?
- PDA 清点发现 SKU 差异时,目前应走哪个权威纠错入口,谁能修改冻结来源并触发重新打印?
- 预计托数与实际托数变化时,是否需要保留预测偏差指标,为仓容和装柜优化提供数据?
- 客户费用确认与装柜完成共同冻结的规则,页面是否充分解释“已确认但尚未冻结”。
15. 阶段三交接包
交给阶段三“模拟柜、排柜、订舱、拖车、预装、装柜与出仓”的权威输入包括:
- 入仓单、订单号、入仓码、客户和国内仓;
- 渠道、目的类型、目的仓/地址快照;
- 已审核的最终箱数、重量、体积和箱规;
- 稳定箱码及必要的箱内 SKU 关系;
- 普通订单预计托数和库位占用/预留结果;
- 一件代发实际封托的
DP托盘、逐箱归属和 SKU 冻结快照; - 当前主状态
WAIT_SPLIT; - 当前有效 HOLD 及阻断原因;
- 费用当前版本、发布/客户确认状态和未处理计价警告。
阶段三可以基于最终装柜成员重算尚未冻结的费用,但不得覆盖本阶段的原始测量、证据或一件代发逐箱组托事实。
16. 事实来源
docs/头程下单到尾程出库现状流程全景清单.mddocs/入库测量与计费/README.mddocs/入库测量与计费/入库测量与计费需求优化版-v2-测量计费入库主流程.mddocs/统一订单主状态与操作契约.mdapps/admin-web/AGENTS.mdapps/admin-web/src/modules/inbounds/measurement/InboundMeasurementDialog.vueapps/admin-web/src/modules/inbounds/measurement/InboundMeasurementPanel.vueapps/admin-web/src/modules/inbounds/fee/InboundFeePanel.vueapps/admin-web/src/modules/inbounds/components/InboundWorkflowWorkspace.vueapps/admin-web/src/modules/inbounds/components/InboundTaskList.vuebaiyue-firstleg/firstleg/AGENTS.mdbaiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/service/InboundMeasurementService.javabaiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/service/MeasurementReviewService.javabaiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/service/InitialInboundPricingService.javabaiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/service/DropshipPalletizationService.javabaiyue-firstleg/firstleg/src/main/resources/openapi/dropship-palletization-v1.yaml