# FSD M13 · 对账结算

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.10 / 7.9 对账单页 / 页面树 11）+「九、复杂业务规则专题」定金尾款段（`:417`）｜ 交互稿：[prd/design/settlement/](/poms/design/settlement/readme/)（已确认）
>
> 册边界：可结算事实来源归各域（签收量 m12 Q35、外协结算 m11、阶梯规则版本 m03 F03.06）；发票登记只记票面事实（Q39：登记不直开）；红字发票线下/外部税务系统处理并回写登记；客户门户只展示授权摘要（Q41）。**账单只汇总可结算事实，发票登记负责票面事实，二者不得互相覆盖**（6.10 原则）。

### M13 对账结算

#### F13.01 对账单

**对应 PRD**：6.10 主流程与规则 + 调研 R-013（`prd/印刷行业工单系统产品与交互设计.md:272,274`）｜ **交互稿**：[prd/design/settlement/](/poms/design/settlement/readme/)（已确认，对账单屏）｜ **实现落点**：待回填 ｜ **操作入口**：`/settlement/statements/{statementId}` ｜ **状态**：未实现

##### 1 功能定义

对账单生成与调整：结算明细主表（**来源=发运/签收事实**）；**结算数量口径=签收量（Q35 默认，按客户合同可配置发货量；容差可配置无默认值）**；**计价规则版本写入账单**（R-013：按合同单位与价格版本生成——防日后调价影响历史账单；阶梯 P1 且公式禁预设 Q36）；差异调整「申请调整」**留痕不原位改数**（R-013/Q38：调整生成版本）；定金/尾款计划项（**假设 Q37**）；多订单合并账单保留来源明细；客户确认/异议登记。

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

- 触发：账单周期到达/手动生成；月结、单票结算、按验收/发货结算（口径按客户合同配置）。
- 前置状态：订单价格条款/账单周期/客户开票资料已配置；发运/签收事实存在（m12）；外协结算单可入应付（m11）。

##### 3 输入与校验

| 字段 | 必填 | 校验 | 失败处理 |
|------|------|------|----------|
| 结算来源（订单/发运/签收） | 是 | 事实数据可溯（Q35 口径） | 数据缺失阻断生成 |
| 结算数量口径 | 自动 | 按客户合同配置（Q35；首期不预设） | 未配置提示 |
| 价格规则版本 | 自动写入 | 版本存在且生效（m03 F03.06） | 版本失效提示 |
| 调整申请 | 异议时 | 原因必填、生成调整凭证 ADJ（R-013 留痕） | 缺原因阻断 |
| 定金/尾款计划 | 按订单分期 | 节点比例/条件/到期日（假设 Q37） | — |
| 币种/税口径 | 是 | 与订单一致 | 不一致提示 |

##### 4 处理流程

```mermaid
flowchart TD
    A[选择订单/发运] --> B[应用结算口径 Q35 + 价格版本 R-013]
    B --> C[计算金额: 税/折扣/扣款/调整]
    C --> D[生成账单: 多对一保留来源明细]
    D --> E[客户确认/异议]
    E -- 异议 --> F[调整申请: ADJ 留痕 → 新版本]
    E -- 确认 --> G[已确认 → 待开票]
```

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

对账单（版本化：金额变动生成版本）+ 调整凭证链（ADJ）；应收余额（反映客户欠付）；报废/差异调整项来源可溯（m10/m12）。

##### 6 状态流转

账单状态机见 settlement README（草稿→待确认→已确认→待开票→已开票→部分收款→已结清→关闭）；异议回草稿（调整单）。

##### 7 边界与异常

| 条件 | 系统行为 | 提示 |
|------|----------|------|
| 数量差异（签收 vs 发货） | 按口径配置取数；差异生成调整凭证（Q35/R-013） | — |
| 价格版本冲突 | 提示核对（6.10 异常） | — |
| 已开票账单改金额 | 禁止（走调整+红冲流程） | 「已开票不能任意改金额」 |
| 跨期账单 | 合并保留来源明细（假设 Q38） | — |

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

- 财务创建/调整账单；销售只读本客户；客户门户只展示授权账单（Q41/Q39 门户边界）。
- 调整留痕与版本进审计（F15.03）；金额调整禁覆盖历史（R-013）。

#### F13.02 收款与核销

**对应 PRD**：6.10 主流程收款段 + 规则「退款/冲销必须有原因和审批」+ 决策 Q40（`prd/印刷行业工单系统产品与交互设计.md:272,274`）｜ **交互稿**：[prd/design/settlement/](/poms/design/settlement/readme/)（已确认，收款与核销屏）｜ **实现落点**：待回填 ｜ **操作入口**：`/settlement/payments` ｜ **状态**：未实现

##### 1 功能定义

回款登记与核销：到账流水登记；**按账单核销**（Q40 默认，推荐精确匹配；支持预收挂账与抵扣）；**尾款=总额−已收**（自动计算）；定金为收款计划项（6.10）；**退款/冲销须原因+审批**；客户应收台账（履约数量/应收余额/开票金额/已收金额并排——PRD 九章 `:417`）；跨期/汇兑/坏账不做（Q40 边界）。

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

- 触发：到账登记；核销操作；退款申请。
- 前置状态：账单已确认（待收款）；收款账户策略已配置。

##### 3 输入与校验

| 字段 | 必填 | 校验 | 失败处理 |
|------|------|------|----------|
| 到账流水（金额/日期/账户） | 是 | 数值合法 | 阻断 |
| 核销目标账单 | 是 | 账单状态可核销（Q40 按账单） | 「重复核销」阻断 |
| 核销金额 | 是 | ≤账单应收余额 | 超收提示（回款超出应收异常） |
| 预收挂账 | 支持挂账 | 无账单时可挂 | — |
| 退款/冲销原因+审批 | 必填 | 审批通过生效 | 缺审批阻断 |

##### 4 处理流程

```mermaid
flowchart TD
    A[到账登记] --> B{有目标账单?}
    B -- 是 --> C[按账单核销 Q40]
    B -- 否 --> D[预收挂账]
    D --> E[后续抵扣]
    C --> F{全额?}
    F -- 是 --> G[已结清]
    F -- 否 --> H[部分收款: 尾款=总额−已收]
    I[退款/冲销] --> J[原因+审批]
```

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

核销记录（账单↔流水关联）；收款状态推进（未收→部分收→已收）；应收台账更新；退款/冲销审批留痕。

##### 6 状态流转

账单 `已开票 → 部分收款 → 已结清`；无票结清路径（客户配置）；收款状态：未收→部分收→已收→退款/冲销（settlement README）。

##### 7 边界与异常

| 条件 | 系统行为 | 提示 |
|------|----------|------|
| 回款超出应收 | 异常提示（6.10 异常），转预收或退回 | — |
| 重复核销 | 阻断 | — |
| 跨期账单核销 | MVP 不做（Q40 边界） | — |
| 退款无审批 | 阻断（6.10 规则） | — |

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

- 财务登记与核销；财务主管审批异常/退款；销售只读本客户回款（6.10 权限）。
- 核销关系不可删改（冲销留痕）；进审计（F15.03）。

#### F13.03 发票登记

**对应 PRD**：6.10 规则「发票登记可一对一、一对多、多对一，但总额受控；红字发票需求记录为待红冲事项」+ 决策 Q39（`prd/印刷行业工单系统产品与交互设计.md:274,447`）｜ **交互稿**：[prd/design/settlement/](/poms/design/settlement/readme/)（已确认，发票登记屏）｜ **实现落点**：待回填 ｜ **操作入口**：`/settlement/invoices` ｜ **状态**：未实现

##### 1 功能定义

票面事实登记（**登记不直开**——Q39：直连开票不做）：登记发票号码/代码/类型/日期/金额/税额/状态/关联账单/附件/登记人（PRD 十一章 `:447`）；**一对一/一对多/多对一但总额受控**；**已开票账单金额限制**；**重复开票检查**（提示不自动阻断）；**待红冲事项**（关联蓝票+冲减金额+原因——由税务人员线下/外部系统处理并**回写登记**）；预开发票（假设 Q37 注）。

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

- 触发：账单 `待开票`；红冲需求发生。
- 前置状态：账单已确认；客户开票资料齐备。

##### 3 输入与校验

| 字段 | 必填 | 校验 | 失败处理 |
|------|------|------|----------|
| 发票票面字段 | 是 | 号码/代码格式校验 | 阻断 |
| 关联账单 | 是 | 总额受控（关联合计≤账单金额） | 超额阻断 |
| 关联模式 | 一对一/一对多/多对一 | 模式合法 | — |
| 重复开票检查 | 自动 | 号码+金额比对 | 提示不自动阻断（6.10） |
| 待红冲登记 | 红冲需求时 | 蓝票引用+冲减金额+原因 | 缺失阻断 |

##### 4 处理流程

```mermaid
flowchart TD
    A[账单待开票] --> B[登记发票票面信息 Q39]
    B --> C{总额受控?}
    C -- 超额 --> X[阻断]
    C -- 通过 --> D[已开票: 账单联动]
    E[红冲需求] --> F[登记待红冲事项]
    F --> G[税务人员线下处理]
    G --> H[回写登记: 红票信息+状态]
```

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

发票登记记录（票面事实）；账单 `待开票 → 已开票`；待红冲事项台账（处理结果回写）。

##### 6 状态流转

发票登记状态：已登记→（红冲回写）已红冲；账单侧沿账单状态机（F13.01）。

##### 7 边界与异常

| 条件 | 系统行为 | 提示 |
|------|----------|------|
| 重复开票 | 提示不自动阻断（6.10 规则） | 「疑似重复，请核对」 |
| 总额超额 | 阻断关联 | 「关联总额超账单」 |
| 红冲资料不足 | 待红冲事项挂起提示（6.10 异常） | — |
| 系统外作废/红冲 | 本系统只登记不执行（Q39/PRD 十一章） | — |

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

- 财务登记；税务人员回写红冲结果；客户门户只见授权发票登记摘要（Q41）。
- 发票登记与红冲回写进审计（F15.03）；登记不可删改（冲红留痕）。

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

| 场景 ID | 场景名 | FSD 功能 ID | 前置种子 | 主干路径 | 关键断言 | 冒烟? | 可并行? | 现状 |
|---------|--------|-------------|----------|----------|----------|-------|---------|------|
| E13.01 | 账单生成主干 | F13.01 | 签收事实+价格版本 | 选择来源→应用口径→生成 | 签收量口径（Q35）；价格版本入账单（R-013） | ✓ | — | 未实现 |
| E13.02 | 调整留痕不改数 | F13.01 | 已生成账单+差异 | 申请调整 | ADJ 凭证生成；原值不覆盖；新版本 | ✓ | ✓ | 未实现 |
| E13.03 | 报废差异入调整 | F13.01（+F10.03） | 报废记录 | 生成对账单 | 损失作为调整项来源可溯 | — | ✓ | 未实现 |
| E13.04 | 按账单核销主干 | F13.02 | 到账+已开票账单 | 核销→部分→结清 | 精确匹配推荐；尾款自动=总额−已收（Q40） | ✓ | — | 未实现 |
| E13.05 | 退款冲销审批 | F13.02 | 已核销流水 | 退款申请 | 无审批阻断；冲销留痕 | — | ✓ | 未实现 |
| E13.06 | 发票登记总额受控 | F13.03 | 待开票账单 | 一对多登记 | 关联合计≤账单金额；超额阻断 | ✓ | ✓ | 未实现 |
| E13.07 | 待红冲回写 | F13.03 | 红冲需求 | 登记→线下处理→回写 | 蓝票关联+冲减金额；状态翻转（Q39） | — | ✓ | 未实现 |

---

反链：

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