# shipping 域设计总纲（发运）

LLMS 索引： [llms.txt](/llms.txt)

---

> **源**：PRD「八、页面架构与关键页面设计」页面树 10「发运」+「七、核心功能逐项需求」之「6.9 发货、签收与差异」+「四、端到端业务流程与核心状态机」（发货状态机段、7.8 发货页）；调研「七、需求条目统一编号与优先级判定」P0 五件事之「报工-质检-入库-发货责任边界」。P0 裁决见决策记录：44 问 triage §2/§5。
>
> **设计确认门：本稿产出即停点，用户确认后才进下一步（FSD 于 B5 完成后统一编制，2026-10-21 裁决）。**
>
> 状态：**已确认**（2026-10-21 用户确认 B2；后续修订追加登记于本行下方）
> 修订：2026-10-21 B2 定稿确认；移除未消费 data.js 引用（B-3 遗留裁决）；FSD 节奏统一后置。（FSD `00-总则` 修订记录待 Phase 3 创建时补记本次定稿）
> 修订：2026-10-21 Phase 3 批量铺开——m12 仓库发运册已建（`prd/fsd/m12-仓库发运.md`，F12.01~F12.03），本表 FSD ID 列由册粒度占位细化为功能 ID；F05.03 地址变更（m05 已建）挂发货单行。
> 原型：`html/index.html` 导航 + 3 屏，零依赖静态 HTML；预览走文档站（相对链接以站点布局为准）。

## 页面清单

| 屏 | 原型文件 | 对应真实路由 | 交互点 | 覆盖的 FSD ID |
|----|----------|--------------|--------|----------------------------|
| 发货建议 | [ship-advice.html](/poms/design/html/shipping/ship-advice.html) | `/shipping/advices` | 四账一致卡（订单需求/合格可用/已发/可发）；Q33 链（放行→入库→可发，未放行不出现在可发量）；分批发货批次建议；待建议队列 | F12.01（发货建议） |
| 发货单 | [shipment.html](/poms/design/html/shipping/shipment.html) | `/shipping/shipments/{shipmentId}` | 备货→复核→装箱扫码（重复箱/错货/超量即时拦截）→创建发运；红字确认「累计发运达 X 是否超承诺 Y」（7.8）；复核清单（未验不发货）；承运与交接；批次/箱条码（Q14）。边界：收货地址变更须销售申请/订单域审批（PRD 6.9），本域地址只读，审批流不在此展开 | F12.02（发货单与出库）、F05.03（地址变更申请入口，审批归订单域 m05） |
| 签收/差异 | [receipt-diff.html](/poms/design/html/shipping/receipt-diff.html) | `/shipping/receipts` | 逐批签收量登记；证据照片+回单（MVP，电子签 P1+ 假设 Q34）；差异单（责任方待确认，不扣减原发运，原始发运不可隐藏）；处置选项（补发/结算调整/关闭）；对账联动（签收量口径 Q35）；在途超时提醒 | F12.03（签收与差异单） |

> 裁决边界（Q33）：直发/合并装车/补发/换箱 MVP 不做，异常线下留痕补录——本域原型不设对应交互。

## 状态迁移（发货单状态机，PRD「四、端到端业务流程与核心状态机」）

```mermaid
stateDiagram-v2
    [*] --> 待备货: 发货建议→生成发货单（Q33：入库后才可生成）
    待备货 --> 已备货: 装箱扫码完成（错货/超量拦截）
    已备货 --> 待复核: 复核清单通过（未验不发货）
    待复核 --> 待发运: 红字确认（累计 vs 承诺）
    待发运 --> 在途: 交接承运
    在途 --> 已签收: 逐批签收（证据归档）
    在途 --> 退回: 拒收/差异
    已签收 --> 关闭: 差异处置完成
    退回 --> 关闭: 补发或结算调整后
    已签收 --> [*]
    关闭 --> [*]
```

## 裁决引用（本域设计吸收的 Phase 0 裁决与假设标注）

| 裁决/问题 | 内容 | 落地点 |
|-----------|------|--------|
| **Q33**（已采纳） | 先成品入库后发货（质检放行后）；分批发货；直发等 MVP 不做 | 发货建议四账卡「合格可用库存」口径 + 顶部裁决注 + 分批建议 |
| **Q35**（已采纳） | 对账依据=客户签收量（默认，可按客户配置发货量）；容差可配置无默认 | 签收/差异「有效签收合计=对账数量」+ 容差行 |
| **Q14**（已采纳） | 成品按工单批次追踪 | 发货建议批次列、装箱扫码批次校验 |
| **Q34**（假设，待确认） | 签收证据：MVP 照片+回单登记，电子签 P1+ | 签收/差异证据行标注 |
| **Q30**（假设，待确认） | 少发需客户让步确认留档 | 发货建议短少处置注 |
| PRD 6.9 规则 | 「地址变更需销售/订单审批」——发货单地址只读，变更审批流归订单域 | 发货单交互点边界句；shipment 地址卡小注 |
| **R-013 同源** | 差异/调整留痕 | 差异单「不扣减原发运」+ 处置选项 |

**假设标注约定**：未裁决参数一律「假设（Q<n>，待客户确认）」；访谈候选值不出现预设数值，页面数字均为示例数据。

## 覆盖性对账

- 对应 FSD 册：**m12 仓库发运**（批量铺开已建：`prd/fsd/m12-仓库发运.md`，F12.01~F12.03；F05.03 归 m05 订单变更册）——双向关联两侧无空（2026-10-21 批量铺开互挂）。
- 页面树 10「发运」3 节点全覆盖（发货建议/发货单/签收差异）。

---

反链：

- [交互设计](/poms/design/)
- [FSD M5 · 订单变更](/poms/fsd/m05-%E8%AE%A2%E5%8D%95%E5%8F%98%E6%9B%B4/)
- [FSD M12 · 仓库发运](/poms/fsd/m12-%E4%BB%93%E5%BA%93%E5%8F%91%E8%BF%90/)
