# FSD M11 · 外协

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

---

> [← 总则](/poms/fsd/00-%E6%80%BB%E5%88%99/) ｜ [附录 →](/poms/fsd/99-%E9%99%84%E5%BD%95/) ｜ 上游：[主 PRD](/poms/%E5%8D%B0%E5%88%B7%E8%A1%8C%E4%B8%9A%E5%B7%A5%E5%8D%95%E7%B3%BB%E7%BB%9F%E4%BA%A7%E5%93%81%E4%B8%8E%E4%BA%A4%E4%BA%92%E8%AE%BE%E8%AE%A1/)（6.7 / 页面树 9）｜ 交互稿：[prd/design/outsource/](/poms/design/outsource/readme/)（已确认）
>
> 册边界：外协发料归本册不进 m12（外协库存动线独立于成品发运）；回货质检执行归 m09（本册承载质检触发与结果回填）；外协结算单送 m13 入对账/应付（本册到结算单确认为止）；工单快照引用归 m04/m07（Q18/R-008）。本册 **P1**（MVP 不含，6.7 完整闭环随 P1 落地）。

### M11 外协

#### F11.01 外协单管理

**对应 PRD**：6.7 主流程与规则（`prd/印刷行业工单系统产品与交互设计.md:254,256`）+ 调研 R-016（防黑箱）｜ **交互稿**：[prd/design/outsource/](/poms/design/outsource/readme/)（已确认，外协单屏）｜ **实现落点**：待回填 ｜ **操作入口**：`/outsource/orders` ｜ **状态**：未实现

##### 1 功能定义

委外工序的单据化管理（**P1 里程碑**）：新建入口=**工单任务选择外协**（非独立创建——防「脱离主工单的黑箱」，R-016：外协任务保留发料/收回闭环）；外协单**回链工单**（引用工单快照工序，不随主数据刷新——Q18/R-008）；进度跟催（供应商自报进度标**「未验证」**，不自动等同实际完成——6.7）；**外协商未确认不能直接关闭**；发料·应回·已回·合格·不良·报废汇总校验。

##### 2 触发条件与前置状态

- 触发：工单工序任务标记外协（m07 承载的任务属性）。
- 前置状态：工序允许外协；外协商/价格/材料权属/运输与质量责任已配置（6.7 前置；责任条款**访谈候选 Q31** 禁预设）。

##### 3 输入与校验

| 字段 | 必填 | 校验 | 失败处理 |
|------|------|------|----------|
| 来源工单任务 | 是 | 任务存在且允许外协 | 阻断创建 |
| 外协商 | 是 | 供应商可用（6.7 异常：不可用提示） | 阻断提交 |
| 委外工序/应回数量 | 是 | 与工单任务一致 | 阻断 |
| 发料清单/应回数 | 发料前必填 | 发料数覆盖应回数及损耗/补数规则（F11.02） | — |
| 价格/结算条款 | 是 | 条款齐备（单价脱敏 Q41） | 缺失阻断提交 |
| 责任条款（运输/权属/质量） | 是 | 结构必填、结论访谈候选（Q31） | — |

##### 4 处理流程

```mermaid
flowchart TD
    A[工单任务选外协] --> B[创建外协单: 回链 WO]
    B --> C[待供应商确认]
    C -- 拒单/超时 --> X[已取消]
    C -- 确认 --> D[待发料 → F11.02]
    D --> E[回货质检闭合 → F11.02]
    E --> F[待结算 → F11.03]
```

##### 5 输出与结果状态

外协单（生命周期：草稿→待供应商确认→待发料→部分/全部回货→待结算→已结算→已关闭）+ 工单回链；自报进度「未验证」标注。

##### 6 状态流转

外协单状态机见 outsource README 状态迁移图；供应商拒单/超时未确认→已取消。

##### 7 边界与异常

| 条件 | 系统行为 | 提示 |
|------|----------|------|
| 外协商不可用 | 阻断选择（6.7 异常） | — |
| 供应商未确认点关闭 | 阻断（6.7 规则） | 「待供应商确认不可关闭」 |
| 自报进度 | 标「未验证」，不回写工单实际 | — |
| 外协单回链工单被取消 | 外协单联动取消（校验在途回货） | — |
| 材料权属争议 | 责任条款留证（Q31） | — |

##### 8 权限与数据规则

- 外协管理员维护与跟催；供应商只能看授权范围（供应商门户不在本期范围）；单价/结算金额对非授权角色脱敏（Q41）。
- 外协单创建/取消进审计（F15.03）。

#### F11.02 发料与回货

**对应 PRD**：6.7 主流程发料收回段（`prd/印刷行业工单系统产品与交互设计.md:254,256`）｜ **交互稿**：[prd/design/outsource/](/poms/design/outsource/readme/)（已确认，发料-回货屏）｜ **实现落点**：待回填 ｜ **操作入口**：`/outsource/returns` ｜ **状态**：未实现

##### 1 功能定义

外协物料闭环：**发料数须覆盖应回数及损耗/补数规则**（损耗/补数参数访谈候选禁预设）；发料出库（仓管，联动库存流水——正负凭证沿 m08 F08.03 同口径）；**分批回货登记**（分批发料/分批回货汇总校验）；**每次回货独立质检**（触发 m09 检验单：合格回站/返工/补数三向）；超损耗/少回须**原因+审批**（B5 审批归并：审批任务实例归 F15.01）；运输与材料权属标注（**访谈候选 Q31** 禁预设结论）；返工/补数不新开外协单，原单回货行追加并关联质检单。

##### 2 触发条件与前置状态

- 触发：外协单 `待发料`；供应商回货到厂。
- 前置状态：外协单已确认；库存批次可用；质检规则可引用（m09）。

##### 3 输入与校验

| 字段 | 必填 | 校验 | 失败处理 |
|------|------|------|----------|
| 发料清单（批次/数量） | 是 | 覆盖应回+损耗规则；批次绑定（Q14/R-011 口径） | 「发料不足应回」阻断 |
| 回货登记（批次/数量） | 是 | 累计合格+不良+报废≤应回+批准损耗 | 超额发回阻断（6.7 异常） |
| 回货质检 | 每批必检 | 触发 m09 独立检验单 | 未质检不可入站 |
| 超损耗/少回原因+审批 | 分支必填 | 审批通过后进入待结算 | 缺审批阻断 |
| 运输/权属标注 | 是 | 留证（Q31 访谈候选） | — |

##### 4 处理流程

```mermaid
flowchart TD
    A[确认发料清单] --> B[发料出库: 覆盖应回+损耗]
    B --> C[分批回货登记]
    C --> D[每批独立质检 → m09]
    D --> E{质检结论}
    E -- 合格 --> F[合格回站]
    E -- 返工/补数 --> G[原单回货行追加+关联质检单]
    F --> H{累计=应回?}
    G --> H
    H -- 是 --> I[待结算 → F11.03]
    H -- 少回/超损耗 --> J[原因+审批]
    J --> I
```

##### 5 输出与结果状态

发料/回货流水（批次级）；质检单联动记录；累计校验表（发料/应回/已回/合格/不良/报废）；审批留痕。

##### 6 状态流转

外协单 `待发料 → 部分回货 →（累计闭合）全部回货 → 待结算`；少回/超损耗分支审批后同达待结算（outsource README 状态图）。

##### 7 边界与异常

| 条件 | 系统行为 | 提示 |
|------|----------|------|
| 运输损坏 | 异常关联原任务+审批（6.7 异常） | — |
| 质量拒收 | 返工/补数向（原单追加） | — |
| 逾期未回 | 预警（m14 埋点：外协回货延迟）+跟催 | — |
| 供应商超额发回 | 阻断登记，审批例外（6.7 异常） | — |

##### 8 权限与数据规则

- 仓管发料；外协管理员登记回货；质检验收（m09 权限）；供应商只读授权范围。
- 发料/回货凭证只追加；全部异常关联原任务与审批（6.7）并进审计（F15.03）。

#### F11.03 外协结算

**对应 PRD**：6.7 规则「结算数量以合格收回为准，折扣/扣款由财务策略确认」（`prd/印刷行业工单系统产品与交互设计.md:256`）｜ **交互稿**：[prd/design/outsource/](/poms/design/outsource/readme/)（已确认，外协结算屏）｜ **实现落点**：待回填 ｜ **操作入口**：`/outsource/settlements` ｜ **状态**：未实现

##### 1 功能定义

外协结算单生成（**P1**）：**结算数量以合格收回为准**（不良/报废不计价）；单价×合格数自动汇总；折扣/扣款由财务策略确认（策略可配置）；异常扣款留痕（运输损坏/质量拒收关联原任务与审批）；**结算单送 m13 入对账/应付链路**（跨域衔接）；双方对账无误后关闭。

##### 2 触发条件与前置状态

- 触发：外协单 `待结算`（回货质检闭合）。
- 前置状态：累计合格数确定；价格/结算条款已确认（F11.01）。

##### 3 输入与校验

| 字段 | 必填 | 校验 | 失败处理 |
|------|------|------|----------|
| 合格收回数 | 自动 | 与质检闭合数据一致 | 差异阻断结算 |
| 单价×合格数汇总 | 自动 | 条款单价引用 | — |
| 折扣/扣款 | 财务策略 | 扣款原因+留痕（异常关联） | 无策略提示确认 |
| 结算单确认 | 是 | 财务权限 | 越权阻断 |

##### 4 处理流程

```mermaid
flowchart TD
    A[待结算] --> B[合格数计价: 单价×合格收回]
    B --> C{扣款?}
    C -- 是 --> D[财务策略确认+异常留痕]
    C -- 否 --> E[生成结算单]
    D --> E
    E --> F[送 m13 对账/应付]
    F --> G[双方对账无误 → 已关闭]
```

##### 5 输出与结果状态

外协结算单（合格数计价明细+扣款留痕）；m13 应付/对账来源记录；外协单 `已结算 → 已关闭`。

##### 6 状态流转

外协单 `待结算 → 已结算 → 已关闭`（双方对账无误）；扣款争议走 m13 调整链。

##### 7 边界与异常

| 条件 | 系统行为 | 提示 |
|------|----------|------|
| 合格数与质检不一致 | 阻断结算，先闭合质检 | — |
| 扣款无策略依据 | 提示财务确认（6.7：策略确认） | — |
| 结算后质检复议 | 走 m13 调整单留痕，不原位改结算单 | — |
| 逾期结算 | 预警埋点（m14） | — |

##### 8 权限与数据规则

- 财务结算；外协管理员跟催；金额脱敏沿 Q41。
- 结算单与扣款留痕进审计（F15.03）。

## E2E 场景清单（m11 覆盖地图）

| 场景 ID | 场景名 | FSD 功能 ID | 前置种子 | 主干路径 | 关键断言 | 冒烟? | 可并行? | 现状 |
|---------|--------|-------------|----------|----------|----------|-------|---------|------|
| E11.01 | 工单发起外协主干 | F11.01（+F07.01） | 工单烫金工序（P1） | 任务选外协→创建→供应商确认 | 回链工单；引用快照工序（Q18）；未确认不可关闭 | ✓ | — | 未实现 |
| E11.02 | 发料覆盖应回校验 | F11.02 | 已确认外协单 | 确认发料清单 | 发料≥应回+损耗规则；批次绑定 | ✓ | — | 未实现 |
| E11.03 | 分批回货独立质检 | F11.02（+F09.01） | 已发料外协单 | 两批回货→各自质检 | 每批独立检验单；合格回站（m09 联动） | ✓ | — | 未实现 |
| E11.04 | 少回审批分支 | F11.02 | 回货累计<应回 | 少回→原因+审批→待结算 | 无审批阻断；审批后放行（F15.01 实例） | ✓ | ✓ | 未实现 |
| E11.05 | 自报进度不回写 | F11.01 | 供应商自报进度 | 跟催查看 | 标「未验证」；不回写工单实际 | — | ✓ | 未实现 |
| E11.06 | 合格收回计价送对账 | F11.03（+F13.01） | 回货闭合外协单 | 结算→送 m13 | 不良/报废不计价；结算单入对账/应付 | ✓ | — | 未实现 |
| E11.07 | 异常扣款留痕 | F11.03 | 运输损坏记录 | 扣款→留痕 | 关联原任务与审批；进审计 | — | ✓ | 未实现 |

---

反链：

- [印刷工单系统功能规格说明书（FSD）v1.0 · 总则](/poms/fsd/00-%E6%80%BB%E5%88%99/)
