# M8 交付物与签署 — FSD（功能设计说明书）

| 项 | 值 |
|---|---|
| 模块 | M8 交付物与签署 |
| 文档类型 | FSD（功能设计说明书） |
| 对应 PRD | [requirements/M8](../requirements/M8-交付物与签署.md) |
| 对应 LDD | [ldd/M8](../ldd/M8-交付物与签署-设计.md) · [数据字典](../ldd/数据字典.md) |
| 配套 | [业务流程图-M8.txt](业务流程图-M8.txt) · [测试用例-M8.md](测试用例-M8.md) |
| 上级 | [需求分析总纲](../需求分析总纲.md) · [FSD 模板](FSD-模板.md) |

> 逐功能规格；数据模型（Deliverable/DeliverableVersion/Signoff）、默认模板清单、审核流机制见 ldd/M8，字段定义见数据字典，**引用不复制**。类型为逻辑类型，物理类型留待 SDD。M8 为**平台级签署与交付物服务**，M1 虚拟合同签署、M6 交付报告签署卡点均复用本模块能力。

## 1. 概述与范围
交付物/报告的**模板生成、版本留痕、内审、客户签署、归档知识回流与在线批注**（痛点 #7）。业界对标 Confluence 模板/版本 + 文档审批 + Proofing。

**PRD 覆盖追溯（FR → 功能）**

| FR | 功能 |
|---|---|
| FR-DEL-01 | §4.1 交付物模板库与变量填充 |
| FR-DEL-02 | §4.2 版本控制与留痕 |
| FR-DEL-03 | §4.3 内审流（对客发布卡点） |
| FR-DEL-04 | §4.4 客户签署（平台内轻量 / 第三方电子签名，可配） |
| FR-DEL-05 | §4.5 归档与知识回流（飞书 Wiki） |
| FR-DEL-06 | §4.6 在线批注 Proofing |

**不在本模块**：审批链引擎（M9，本模块的审核流复用其能力）；交付项目状态机与「每次活动报告须签署否则不可流转」的卡点（M6 D-P9，本模块提供签署能力）；虚拟合同发起与生效（M1 D-C12，复用本模块签署）；知识库本体（飞书 Wiki，本模块只做集成/索引，不自建）。

## 2. 角色与权限点（角色 × 操作，接 M2）

| 操作 \ 角色 | 全员 | PS（交付负责人） | Senior/Manager | Admin | Customer_External |
|---|---|---|---|---|---|
| 从模板创建交付物 | — | ✓(相关项目) | ✓ | ✓ | — |
| 上传新版本 | — | ✓ | ✓ | ✓ | — |
| 查看交付物/版本 | ✓只读(相关) | ✓ | ✓本 Region | ✓ | ✗（仅自己交付物） |
| 提交内审 / 审核（通过·驳回） | — | 提交 | ✓审核 | ✓审核 | — |
| 对客发布 / 发起客户签署 | — | ✓(审核通过后) | ✓ | ✓ | — |
| 客户签署（外部） | — | — | — | — | ✓(自己交付物) |
| 归档到 Wiki / 标记可复用 | — | ✓ | ✓ | ✓ | — |
| 在线批注 Proofing | — | ✓ | ✓ | ✓ | ✓(受限，自己交付物) |
| 配置签署方式 / 审核流 | — | — | ✓(本 Region) | ✓ | — |

> 数据范围由 M2 ABAC 计算；Customer_External 限其相关交付物的受限只读 + 批注 + 签署（总纲 §外部账号约束）。

## 3. 状态流转与业务流程图
> 图见 [业务流程图-M8.txt](业务流程图-M8.txt)。含：① 交付物（Deliverable）状态机 草稿→内审中→（驳回回流草稿）→待客户签署→已归档；② 模板→变量填充→版本→内审→签署 泳道；③ 签署方式分支（平台内轻量签署 / 第三方电子签名）。

## 4. 功能规格

### 4.1 交付物模板库与变量填充

**4.1.1 功能说明**　从**默认模板清单**（Kickoff Deck/调研/方案/上线报告/验收单/复盘）选模板创建交付物，系统按上下文**自动填充变量**（客户名/产品/版本等），生成初版草稿。默认清单可由 Manager/Admin 维护配置。

**4.1.2 业务流程**　见 [业务流程图-M8.txt](业务流程图-M8.txt) §二。要点：选模板→解析模板变量→从客户/项目上下文自动填充→未命中必填变量提示补填→生成 Deliverable 草稿（写首个版本）。

**4.1.3 界面设计**
- **新建交付物弹窗**：模板选择器（列出默认清单，含用途说明）→ 选中后预览待填变量清单（已自动填充项标灰、未命中项高亮待填）→ 确认生成。
- 生成后进入交付物详情页（草稿态）；模板库管理页（限 Manager/Admin）可增删/停用模板。

**4.1.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| template | 引用 | 是 | 属默认清单/启用中 | 配置 | 建档时选 | 见数据字典 Deliverable |
| 客户/项目上下文 | 引用 | 是 | 关联客户/项目存在 | M1/M6 | 只读 | 变量填充来源 |
| 填充变量集 | 结构 | 系统 | 必填变量须全部命中 | 上下文/输入 | 未命中可手填 | 客户名/产品/版本等 |
| 交付物标题 | 文本 | 是 | 非空 | 模板/输入 | 可编辑 | 默认由模板+客户生成 |

**4.1.5 业务规则**
- 变量**自动填充**优先，未命中的**必填变量**阻断生成、提示手填（验收：填充成功率=100%，无需手工补填必填变量，FR-DEL-01）。
- 默认模板清单可维护/配置（FR-DEL-01）；停用模板不影响历史交付物。

**4.1.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 必填变量未命中 | "以下必填变量未能自动填充，请补填：{变量}" | 阻断生成，高亮待填 |
| 模板已停用 | "该模板已停用，请选择其它模板" | 阻断，重选 |
| 无关联项目/客户 | "请先关联客户或项目再创建交付物" | 阻断 |

**4.1.7 权限控制**　PS/Senior/Manager/Admin 可从模板创建；模板清单维护限 Manager/Admin；外部账号不可见创建入口。

### 4.2 版本控制与留痕

**4.2.1 功能说明**　每次上传交付物文件即生成**新版本**并留痕（版本号/上传人/上传时间/变更摘要四要素），历史版本可查看、对比、追溯；签署版本不可变。

**4.2.2 业务流程**　见 [业务流程图-M8.txt](业务流程图-M8.txt) §二。要点：上传文件→计算 file_hash→生成新 version→要求填变更摘要→写 uploader/uploaded_at→入版本历史。

**4.2.3 界面设计**
- 交付物详情页「版本」区：版本列表（版本号/上传人/时间/变更摘要），最新版置顶，支持下载与版本对比入口。
- 上传新版本弹窗：选文件 + **变更摘要（必填）**；提交后列表新增一条。

**4.2.4 字段定义**（引数据字典 DeliverableVersion）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| version | 文本 | 系统 | 单调递增、唯一 | 系统 | 只读 | 签署版本不可变 |
| file_hash | 文本 | 系统 | 上传时计算 | 系统 | 只读 | 完整性/去重 |
| uploader | 引用 | 系统 | =当前操作人 | 系统 | 只读 | 留痕四要素之一 |
| uploaded_at | 日期时间 | 系统 | — | 系统 | 只读 | 留痕四要素之一 |
| diff_summary | 文本 | 是 | 非空 | 输入 | 提交后只读 | 变更摘要，四要素之一 |

**4.2.5 业务规则**
- **每次上传生成新版本**（验收：新版本率=100%）；四要素（版本/上传人/时间/变更摘要）**留痕齐全率=100%**、可追溯（FR-DEL-02）。
- 已签署版本**不可变更/覆盖**；需修改另起新版本（数据字典：签署版本不可变）。

**4.2.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 变更摘要为空 | "请填写本次变更摘要" | 阻断上传 |
| 覆盖已签署版本 | "该版本已签署，不可覆盖，请上传为新版本" | 阻断，转新版本 |
| 上传文件损坏/哈希失败 | "文件上传失败，请重试" | 阻断，保留原版本 |

**4.2.7 权限控制**　PS/Senior/Manager/Admin 可上传新版本；全员相关只读；外部账号仅见对客发布的版本。

### 4.3 内审流（对客发布卡点）

**4.3.1 功能说明**　交付客户前须经**至少一位 Senior/Manager 审核通过**，方可对客发布/进入签署；审核流可配置（审核人/串并）。未审核通过的交付物对客发布**阻断**。

**4.3.2 业务流程**　见 [业务流程图-M8.txt](业务流程图-M8.txt) §二。要点：PS 提交内审→按配置指派 Senior/Manager→审核通过（状态→待客户签署）/驳回（回流草稿，附意见）。审核链能力复用 M9。

**4.3.3 界面设计**
- 详情页「审核」区：审核状态、当前审核人、审核意见时间线。
- 审核操作卡：通过 / 驳回（驳回须填意见）；驳回后交付物回草稿态、PS 修订后可重新提交。

**4.3.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 审核流配置 | 结构 | 是 | ≥1 Senior/Manager | 配置 | Manager/Admin 可配 | 串/并可配 |
| 送审版本 | 引用 | 是 | 指向某 DeliverableVersion | 系统 | 只读 | 审核对象 |
| 审核结果 | 枚举 | 系统 | 通过/驳回 | 审核 | 审核人写 | — |
| 审核意见 | 文本 | 驳回必填 | 驳回时非空 | 输入 | 审核人写 | 回流依据 |
| 审核人/时间 | 引用/日期时间 | 系统 | — | 系统 | 只读 | 审计留痕 |

**4.3.5 业务规则**
- **对客发布/发起签署前须 ≥1 位 Senior/Manager 审核通过**（验收：未审核通过对客发布阻断率=100%，FR-DEL-03）。
- 审核流可配（审核人范围、串/并），配置由 Manager/Admin 维护（FR-DEL-03）。
- 驳回**回流草稿**、附意见；修订后须重新走审核。

**4.3.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 未审核即对客发布 | "交付物未通过审核，暂不可对客发布" | 阻断（发布/签署卡点） |
| 驳回未填意见 | "驳回须填写审核意见" | 阻断驳回 |
| 审核人权限不足 | "仅 Senior/Manager 可审核" | 拒绝 + 审计 |

**4.3.7 权限控制**　PS 提交内审；Senior/Manager/Admin 审核；审核流配置限 Manager/Admin；外部账号不参与内审。

### 4.4 客户签署（平台内轻量 / 第三方电子签名，可配）

**4.4.1 功能说明**　审核通过后向客户发起签署，记录**签署三要素（签署版本/时间/签署方）**、可追溯（满足 M6 D-P9、M1 D-C12）。签署方式**可配**：默认**平台内轻量签署**（签署人/时间/版本 + 确认动作），重要合同/验收可配**第三方电子签名**。

**4.4.2 业务流程**　见 [业务流程图-M8.txt](业务流程图-M8.txt) §三。要点：审核通过→发起签署→按配置分支：轻量签署（外部账号版本预览 + 确认，写 Signoff）/ 第三方电子签名（跳转/回调，回写签署结果）→三要素留痕→交付物待归档。

**4.4.3 界面设计**
- **签署方式选择**（限 Senior/Manager/Admin）：轻量 / 第三方，重要交付物默认第三方（可配）。
- **平台内轻量签署页**（外部账号）：版本预览 + 签署人/时间显示 + **确认签署**按钮；受限只读视图，不可见他人交付物。
- **第三方电子签名**：跳转第三方或嵌入签署组件，回调后回写状态（**选型待详设**）。

**4.4.4 字段定义**（引数据字典 Signoff）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| signed_version | 引用 | 是 | 指向已审核通过版本 | 系统 | 只读 | 三要素之一；不可变 |
| signed_at | 日期时间 | 系统 | 签署完成时写 | 系统/第三方回调 | 只读 | 三要素之一 |
| signer | 引用 | 是 | =指定客户 Contact/外部账号 | 签署 | 签署流程写 | 三要素之一 |
| sign_method | 枚举 | 是 | 平台内轻量/第三方电子签名 | 配置 | Senior/Manager/Admin 可配 | 默认轻量，重要可第三方 |
| third_party_ref | 文本 | 第三方方式时系统 | — | 第三方回调 | 只读 | 第三方签署凭证（选型待详设） |

**4.4.5 业务规则**
- **签署前须审核通过**（承 §4.3）；签署三要素**记录齐全率=100%**、可追溯（验收 FR-DEL-04，满足 M6 D-P9、M1 D-C12）。
- 签署方式可配：默认平台内轻量，重要合同/验收可配第三方电子签名（已敲定）。
- 签署对象为**已审核通过的版本**且不可变（承 §4.2）；仅指定客户 Contact/外部账号可签。

**4.4.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 未审核即发起签署 | "交付物未通过审核，暂不可发起签署" | 阻断（承 §4.3 卡点） |
| 外部账号签他人交付物 | "无权签署该交付物" | 拒绝 + 审计 |
| 第三方电子签名回调失败 | "电子签名服务异常，已重试并告警" | 重试 + 告警可重放（NFR-06），状态挂起 |
| 签署版本已被新版本替换 | "该版本已更新，请对最新审核通过版本签署" | 阻断，指向最新版 |

**4.4.7 权限控制**　Senior/Manager/Admin 配置签署方式并发起；签署仅限指定客户 Contact/外部账号；PS 只读签署进度；其余按 ABAC。

### 4.5 归档与知识回流（飞书 Wiki）

**4.5.1 功能说明**　可复用的交付物**标记为可复用**并**归档到飞书 Wiki**（集成 INT-05/M13），CSP 侧建立关联/索引供检索命中再利用；**不自建知识库**。

**4.5.2 业务流程**　见 [业务流程图-M8.txt](业务流程图-M8.txt) §一。要点：交付物完成/签署→标记可复用→推送/关联到飞书 Wiki→回写 wiki_link→CSP 建索引，供关键词检索命中。

**4.5.3 界面设计**
- 详情页「归档」区：标记可复用开关、归档到 Wiki 按钮、归档状态与 **Wiki 链接**（跳飞书，不复制内容）。
- 交付物检索页：按客户/产品/模板/关键词检索可复用交付物，命中项跳源或跳 Wiki。

**4.5.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 可复用标记 | 布尔 | 否 | — | 输入 | PS/Senior/Manager 可改 | 触发归档 |
| wiki_link | 文本 | 归档后系统 | 合法飞书 Wiki 链接 | 飞书回写 | 只读 | 只存链接不复制内容（数据字典 M13） |
| 归档状态 | 枚举 | 系统 | 未归档/已归档/失败 | 系统 | 只读 | — |
| 索引关键词 | 结构 | 系统 | — | 派生/输入 | 可补充 | 供检索命中 |

**4.5.5 业务规则**
- 标记可复用的交付物**100% 归档到知识库并可被检索命中再利用**（验收 FR-DEL-05）。
- 集成飞书 Wiki，CSP 只做**关联/索引 + 检索**，不自建、不复制内容（INT-05，总纲集成聚合原则）。

**4.5.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 归档到 Wiki 失败 | "归档到飞书 Wiki 失败，已重试并告警" | 重试 + 告警可重放（NFR-06） |
| 检索未命中 | "未检索到可复用交付物" | 友好空态 |
| 无 Wiki 权限 | "无飞书 Wiki 写入权限" | 提示配置集成授权 |

**4.5.7 权限控制**　PS/Senior/Manager/Admin 可标记可复用与归档；全员相关可检索；外部账号不可见归档/检索入口。

### 4.6 在线批注 Proofing

**4.6.1 功能说明**　对交付物某版本进行**在线批注/校对**（Proofing）：定位到内容处评论、回复、解决，辅助内审与客户反馈收敛（对标 Confluence/文档 Proofing）。

**4.6.2 业务流程**　打开交付物某版本→在内容处添加批注→指派/回复→标记已解决→批注沉淀于该版本，供修订参考。

**4.6.3 界面设计**
- 交付物预览页侧栏「批注」：批注列表（位置锚点/作者/时间/状态：待处理/已解决），支持回复与「解决」。
- 内容区批注锚点高亮；外部账号为受限批注视图（仅自己相关交付物）。

**4.6.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 批注内容 | 文本 | 是 | 非空 | 输入 | 作者可改 | — |
| 锚点 | 结构 | 否 | 指向版本内容位置 | 输入 | 只读 | 定位 |
| 目标版本 | 引用 | 是 | 指向 DeliverableVersion | 系统 | 只读 | 批注绑定版本 |
| 状态 | 枚举 | 系统 | 待处理/已解决 | 输入 | 可流转 | — |
| 作者/时间 | 引用/日期时间 | 系统 | — | 系统 | 只读 | 留痕 |

**4.6.5 业务规则**
- 批注**绑定具体版本**；新版本上传后旧批注保留在原版本供追溯（承 §4.2）。
- 外部账号批注**仅限其相关交付物**、受限视图（承 §2 ABAC）。

**4.6.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 批注内容为空 | "批注内容不能为空" | 阻断提交 |
| 对已签署版本批注 | "该版本已签署，批注仅供参考不影响签署内容" | 允许批注、提示只读 |
| 外部账号越权批注 | "无权批注该交付物" | 拒绝 + 审计 |

**4.6.7 权限控制**　PS/Senior/Manager/Admin 可批注/解决；外部账号受限批注（仅自己交付物）；其余按 ABAC。

## 5. 接口与集成

| 接口 | 方向 | 触发/频率 | 字段映射 | 失败处理 |
|---|---|---|---|---|
| 飞书 Wiki（INT-05） | 写/关联 | 归档事件 | 交付物→Wiki 节点；回写 wiki_link | 重试 + 告警可重放（NFR-06） |
| 飞书 IM/邮件（INT-05） | 写 | 事件 | 送审/审核结果/签署/归档通知 | 通知失败重试 |
| 第三方电子签名 | 写/回调 | 签署事件 | 签署版本/签署方/凭证；**选型与字段映射待详设** | 重试 + 告警；状态挂起 |
| M9 审批链 | 复用 | 送审 | 审核人/串并配置 | 见 M9 |
| M6 交付项目 | 被调用 | 报告签署卡点（D-P9） | 提供签署能力、回写签署结果 | 见 M6 |
| M1 虚拟合同 | 被调用 | 合同签署（D-C12） | 复用签署三要素能力 | 见 M1 |

## 6. 测试用例
> 见 [测试用例-M8.md](测试用例-M8.md)。覆盖模板变量填充/版本留痕/内审卡点/客户签署/归档检索/批注的正常/边界/异常；关键路径 100%、异常路径 ≥90%、硬约束（填充率=100%、新版本率=100%、四要素齐全=100%、未审核发布阻断=100%、签署三要素齐全=100%、可复用归档可检索=100%）100% 覆盖。

## 7. 风险与依赖

| 风险/依赖 | 影响 | 缓解 | 责任方 |
|---|---|---|---|
| 第三方电子签名选型未定 | 重要合同/验收强签署落地待定 | 默认平台内轻量签署先行，第三方进详设/按需接入 | PM |
| 飞书 Wiki 写入/授权能力 | 归档回流不可用 | 依赖飞书开放能力，失败重试 + 告警 | 后端/集成 |
| 模板变量上下文来源（M1/M6）不全 | 自动填充命中率下降 | 未命中必填变量阻断并提示手填 | 后端/PM |
| 审核流依赖 M9 | 内审卡点落地 | 复用 M9 审批链能力 | 后端 |

## 8. 遗留 / 待详设（TBD）
- **第三方电子签名选型**：接入哪家、法律效力范围、字段映射与回调协议——进详设/按需（PRD 遗留待确认）。
- 交付物本体其余字段（数据字典标"待详设"）；版本对比（diff）呈现方式。
- 模板变量映射细则（各模板可填变量集与上下文取数口径）；索引/检索的关键词抽取策略。
- 各页面线框/视觉稿（UX）；Proofing 锚点交互深化。
