FSD M12 · 仓库发运
← 总则 | 附录 → | 上游:主 PRD(6.9 / 7.8 发货页 / 页面树 10)| 交互稿:prd/design/shipping/(已确认)
册边界:质检放行前置归 m09(Q33 链:放行→入库→可发);收货地址变更审批归 m05 F05.03(本域地址只读);签收量对账归 m13(Q35 口径);外协发料归 m11 不进本册;直发/合并装车/补发/换箱 MVP 不做(Q33 裁决边界,异常线下留痕补录)。
M12 仓库发运
F12.01 发货建议
对应 PRD:6.9 主流程「订单生成发货建议」+ 规则「发货先核四者一致」(prd/印刷行业工单系统产品与交互设计.md:266)+ 决策 Q33| 交互稿:prd/design/shipping/(已确认,发货建议屏)| 实现落点:待回填 | 操作入口:/shipping/advices | 状态:未实现
1 功能定义
按订单生成发货建议:四账一致卡(订单需求/合格可用/已发/可发);Q33 链(质检放行→成品入库→可发量,未放行不出现在可发量);分批发货批次建议;待建议队列;短少处置提示(少发需客户让步确认留档——假设 Q30 口径)。
2 触发条件与前置状态
- 触发:工单完工入库(m07/m09 放行链);定时刷新待建议队列。
- 前置状态:订单
已确认;批次质检放行且入库(Q33)。
3 输入与校验
| 字段 | 必填 | 校验 | 失败处理 |
|---|---|---|---|
| 订单需求量 | 自动 | 与订单明细一致 | — |
| 合格可用量 | 自动 | 放行+入库批次合计(Q33) | 未放行不计入 |
| 已发量 | 自动 | 累计发货记录 | — |
| 可发量 | 自动 | =合格可用−已发 | 负值提示 |
| 分批建议 | 自动/可调 | 累计不超可发 | 超量阻断 |
4 处理流程
5 输出与结果状态
发货建议(四账核对通过)+ 发货单草稿;未放行批次隔离展示。
6 状态流转
建议无独立状态;生成的发货单沿发货单状态机(shipping README:待备货→…→关闭)。
7 边界与异常
| 条件 | 系统行为 | 提示 |
|---|---|---|
| 可发量不足 | 建议按可发量拆分;短少走客户确认(Q30 口径) | — |
| 直发/合并装车/补发/换箱 | MVP 不做,异常线下留痕补录(Q33 边界) | — |
| 地址缺失/错误 | 提示走 m05 F05.03 变更 | — |
8 权限与数据规则
- 仓库备货复核;销售只读本客户建议;四账数据跨域只读聚合(m04/m07/m09/m12)。
F12.02 发货单与出库
对应 PRD:6.9 主流程备货发运段 + 规则「多箱须可逐箱查看」「地址变更需销售/订单审批」(prd/印刷行业工单系统产品与交互设计.md:266,268)+ 调研 R-004(成套执行侧)| 交互稿:prd/design/shipping/(已确认,发货单屏)| 实现落点:待回填 | 操作入口:/shipping/shipments/{shipmentId} | 状态:未实现
1 功能定义
发货单执行:备货→复核→装箱扫码(重复箱/错货/超量即时拦截)→创建发运;红字确认(累计发运 vs 承诺量:7.8「累计发运达 X 是否超承诺 Y」);复核清单(未验不发货);承运与交接;批次/箱条码(Q14);成套按成品 BOM 齐套放行(R-004 执行侧——缺件/版次不匹配拦截);地址只读(变更走 m05 F05.03 申请入口)。
2 触发条件与前置状态
- 触发:发货建议生成发货单(F12.01)。
- 前置状态:批次已放行入库(Q33);复核清单就绪。
3 输入与校验
| 字段 | 必填 | 校验 | 失败处理 |
|---|---|---|---|
| 装箱扫码(箱/批次) | 是 | 重复箱/错货/超量即时拦截(Q14 批次校验) | 拦截+原因提示 |
| 复核清单 | 发运前必过 | 未验不发货(6.9) | 未复核禁发运 |
| 红字确认 | 超承诺时必确认 | 累计 vs 承诺对比 | 未确认阻断发运 |
| 成套齐套 | 成套订单必校验 | 按 BOM 缺件/版次检查(R-004) | 缺件阻断放行 |
| 承运/交接信息 | 发运必填 | 齐备 | 阻断 |
4 处理流程
5 输出与结果状态
发货单状态推进(待备货→已备货→待复核→待发运→在途);箱/批次条码档案;发运记录(承运交接)。
6 状态流转
发货单状态机见 shipping README(待备货→已备货→待复核→待发运→在途→已签收/退回→关闭)。
7 边界与异常
| 条件 | 系统行为 | 提示 |
|---|---|---|
| 重复箱/错货/超量 | 扫码即时拦截(6.9 异常) | — |
| 数量短少 | 差异单流程(F12.03),不静默放行 | — |
| 成套缺件/版次不匹配 | 阻断放行(R-004) | 「成套不齐」 |
| 未验发货 | 阻断(复核清单) | — |
| 地址变更请求 | 跳 m05 F05.03 申请(本域只读) | — |
8 权限与数据规则
- 仓库备货/复核/发运;销售只读;物流更新状态(6.9 权限)。
- 红字确认与拦截记录进审计(F15.03)。
F12.03 签收与差异单
对应 PRD:6.9 规则「差异单记录责任方待确认状态,不能直接扣减原发运」「客户签收不等于财务确认」(prd/印刷行业工单系统产品与交互设计.md:268)+ 决策 Q34/Q35| 交互稿:prd/design/shipping/(已确认,签收-差异屏)| 实现落点:待回填 | 操作入口:/shipping/receipts | 状态:未实现
1 功能定义
签收登记与差异闭环:逐批签收量登记;证据照片+回单(MVP,电子签 P1+ 假设 Q34);差异单(责任方待确认;不扣减原发运;原始发运不可隐藏);处置选项(补发/结算调整/关闭——结算调整联动 m13);客户签收≠财务确认(系统不自动改应收——6.9;签收量作为对账口径入 m13 Q35);在途超时提醒。
2 触发条件与前置状态
- 触发:发货单
在途;客户反馈差异。 - 前置状态:发运记录存在(F12.02)。
3 输入与校验
| 字段 | 必填 | 校验 | 失败处理 |
|---|---|---|---|
| 签收量(逐批) | 是 | ≤发运量 | 超量提示 |
| 证据照片/回单 | MVP 必附 | 上传留痕(Q34) | 缺失提示 |
| 差异描述/责任方 | 差异时必填 | 责任方=待确认起步 | — |
| 处置选项 | 差异闭环必选 | 补发/结算调整/关闭 | 结整调整联动 m13 |
4 处理流程
5 输出与结果状态
签收记录(逐批+证据);差异单(独立留痕,不扣减原发运);对账口径数据(签收量→m13 Q35);在途超时提醒。
6 状态流转
发货单 在途 → 已签收 / 退回;已签收 → 关闭(差异处置完成)、退回 → 关闭(补发或结算调整后)——shipping README 状态机。
7 边界与异常
| 条件 | 系统行为 | 提示 |
|---|---|---|
| 拒收/退回 | 差异单+退回流程(6.9 异常) | — |
| 签收超量 | 提示核对(签收≠应收,不自动入账) | — |
| 差异未处置 | 发货单停留非关闭态,提醒 | — |
| 结算调整 | 生成 m13 调整申请(R-013 留痕口径) | — |
8 权限与数据规则
- 仓库登记签收;物流只读或更新状态;客户仅确认本人货物;销售只读(6.9 权限)。
- 差异单与签收证据只追加;审计(F15.03)。
E2E 场景清单(m12 覆盖地图)
| 场景 ID | 场景名 | FSD 功能 ID | 前置种子 | 主干路径 | 关键断言 | 冒烟? | 可并行? | 现状 |
|---|---|---|---|---|---|---|---|---|
| E12.01 | 放行入库可发链 | F12.01(+F09.02) | 终检批次(Q33) | 放行→入库→可发量 | 未放行不出现在可发量;四账一致 | ✓ | — | 未实现 |
| E12.02 | 装箱扫码拦截 | F12.02 | 发货单待备货 | 扫错货/超量 | 即时拦截+原因;正确扫码通过 | ✓ | ✓ | 未实现 |
| E12.03 | 红字确认发运 | F12.02 | 累计发运临界 | 超承诺→红字确认 | 未确认阻断;确认后发运(7.8) | ✓ | ✓ | 未实现 |
| E12.04 | 成套齐套放行 | F12.02 | 成套订单(R-004) | 装箱→齐套校验 | 缺件/版次不匹配阻断放行 | — | ✓ | 未实现 |
| E12.05 | 逐批签收主干 | F12.03 | 在途发货单 | 签收登记+证据 | 逐批可签;证据留档(Q34) | ✓ | — | 未实现 |
| E12.06 | 差异单不扣原发运 | F12.03 | 短少签收 | 差异单→结算调整 | 原发运记录不变可查;调整走 m13 | ✓ | ✓ | 未实现 |
| E12.07 | 签收≠应收确认 | F12.03(+F13.01) | 签收完成 | 查看应收 | 应收不变;签收量仅作对账口径(Q35) | — | ✓ | 未实现 |