# v3.09.0 作业流程-账单复核 + 合同管理-AI解析分阶段补全 + 同步至产销线字段方案保存 PRD

---

## PRD文档修订记录

| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| V1.0 | 2026-05-29 | caiqingpeng | 初稿 |
| V1.1 | 2026-05-30 | caiqingpeng | 新增：合同管理-AI解析分阶段补全 |
| V1.2 | 2026-06-01 | caiqingpeng | 新增：同步至产销线-表头字段方案保存与复用 |

---

## 1. 需求背景

当前《作业流程》菜单编排作业流程时，《账单复核》节点在"金链全自动化作业"、"金链半自动化作业"模式下，不支持添加"复核说明"项。但《账单复核》菜单手动发起审批时，是支持填写复核说明的。

整个《自动作业管理》模块的定位是通过流程编排实现各操作自动化（复用各菜单的功能接口），之前每个节点只是复制了对应功能的一部分。本次《账单复核》节点补齐"复核说明"入参项。

### 影响范围

- 子系统：自动作业管理
- 涉及菜单：《作业流程》
- 外部依赖：无

### 1.2 合同管理 — AI 解析分阶段补全

**当前行为：** 《合同管理》模块添加主合同/补充合同时，用户上传或选中合同 PDF 文件后，系统调用言犀大模型接口进行 AI 解析，返回合同结构化字段自动填入表单。因 AI 解析耗时较长（约 40s），系统提供"停止AI解析"按钮供用户主动终止。

**存在问题：** 用户终止解析后，合同表单中大量非必填但 AI 有能力填充的字段（如自动续签、出账周期、对账发起方、付款时限、特殊条款等）保持空白，用户通常不会手动填写，导致合同信息不完整。

**核心约束：**
- 不增加用户填写负担
- 不强制用户等待 AI
- 继续支持用户主动终止解析

### 1.3 同步至产销线 — 表头字段方案保存与复用

**当前行为：** 《应收台账》《应付台账》菜单点击【同步至产销线】，打开抽屉 → 选择"需要携带Excel作为附件" → 在"选择所需表头字段"区域手动勾选要输出的列（共30+字段）。每次打开抽屉都要重新勾选，用户反馈操作繁琐。

**影响范围：**
- 子系统：应收应付
- 涉及菜单：《应收台账》《应付台账》
- 外部依赖：无

**核心约束：**
- 纯前端改动，存 localStorage，不新增后端接口
- 与已有的查询方案保存功能互不依赖
- 应收/应付两侧各自独立的字段方案列表

---

## 2. 需求目标

### 2.1 账单复核

- 在《作业流程》画布的"账单复核"节点配置面板中，"2、输入"参数列表末尾新增"复核说明"行
- 仅"金链全自动化作业"和"金链半自动化作业"模式下可见
- 纯文本输入框（textarea），选填

### 2.2 合同 AI 解析静默补全

- 前端 AI 解析逻辑不变（用户可见，可终止）。用户终止意味着 AI 请求被取消，无任何字段返回，由用户自行填写
- 保存合同时，后端异步调 AI 接口，遍历 14 个可解析字段：**AI 返回值非空 AND 库表字段为空** → 补全
- 不区分必填/选填，不覆盖用户已填字段
- **前端不做任何展示**：无 🤖 标记、无列表标签、无详情提示条。用户无感知

### 2.3 表头字段方案保存与复用

- 用户可将当前勾选的表头字段组合保存为命名方案
- 下次打开抽屉时直接选取方案即可自动回填字段勾选
- 保存/复用/覆盖/删除方案
- 应收台账和应付台账的方案列表各自独立

---

## 3. 功能清单

| 编号 | 功能点 | 页面位置 | 优先级 |
|---|---|---|---|
| F-001 | 账单复核节点，入参新增"复核说明"项 | 作业流程画布-节点配置面板-2、输入 | P1 |
| F-002 | 合同保存后，后台静默 AI 补全（前端零展示） | 合同管理-添加主合同/补充合同 | P1 |
| F-003 | 同步至产销线抽屉，表头字段方案保存与复用 | 应收台账/应付台账-同步至产销线抽屉 | P1 |

---

## 4. 功能详情

### F-001 账单复核节点，入参新增了"复核说明"项

**位置：** 作业流程画布 → "账单复核"节点配置面板 → "2、输入"参数列表末尾

**触发条件：** "金链全自动化作业"或"金链半自动化作业"模式

**字段属性：** 选填，纯文本输入框（非富文本）

**交互流程：**
```
账单复核节点配置 → 2、输入 → 末尾新增"复核说明"行（选填，纯文本）
```

### F-002 合同保存后，后台静默 AI 补全

**位置：** 合同管理 → 添加主合同/补充合同 → 保存成功后

**触发条件：** 用户保存合同（无条件触发，无论是否打断过前台 AI 解析）

**流程：**
```
前端 AI 解析（维持现状）
  ├── 正常完成 → 已解析字段填入表单
  └── 用户终止 → 请求被取消，无字段返回，用户自行填写

用户手动补充（填必填，选填可空）
  ↓
保存合同 → 立即成功
  ↓ 同时触发后台异步任务
后端调言犀 AI 接口解析合同 PDF
  ↓
遍历 14 个字段，每个字段：
  AI 返回值非空 AND 库表字段当前为空 → 写入
  否则 → 不动
  ↓
完成。前端不展示任何变化
```

**补全字段池（14 个）：**

| 字段 | 说明 |
|---|---|
| `contractAutoRenewal` | 是否自动续签 |
| `renewalCycle` | 自动续签周期 |
| `settleCycle` | 出账周期 |
| `billInitiator` | 对账发起方 |
| `billSendStartDay` / `billSendEndDay` | 账单发送日期范围 |
| `billSendDayType` | 发送账单时间预警维度 |
| `billCheckEndDay` | 客商对账完成时间要求 |
| `billCheckEndDayType` | 客商对账完成时间预警维度 |
| `paymentDayLimit` | 付款完成时间要求 |
| `paymentDayType` | 付款完成时间预警维度 |
| `specialItem` | 特殊条款 |
| `fundFlow` | 资金流向（仅主合同） |
| `stamped` | 是否完成盖章 |

**补全策略：**

| 条件 | 行为 |
|---|---|
| AI 返回有值 AND 库表为空 | 写入 |
| AI 返回空值 | 不动 |
| 库表已有值（用户填的） | 不动 |
| 不区分必填/选填 | 一视同仁 |

**前端表现：** 无。不展示 🤖 标记、列表标签、详情提示条等任何 AI 补全相关 UI。

**异常处理：**
- 后台 AI 调用失败 → 静默重试 1 次，仍失败则放弃，不打扰用户
- 用户保存后手动编辑了该合同 → 后台补全结果不覆盖用户手动修改的字段

---

### F-003 同步至产销线抽屉，表头字段方案保存与复用

**位置：** 应收台账 / 应付台账 → 同步至产销线抽屉 → "三、配置Excel生成规则" → "选择所需表头字段"区域

**触发条件：** 用户选择"需要携带Excel作为附件"后

**UI 改动：** 在表头字段复选框列表上方，新增一行操作栏：

| 元素 | 说明 |
|---|---|
| 字段方案下拉框 | 列出已保存的方案，默认不选 |
| 保存为方案按钮 | 将当前勾选的字段保存为方案 |
| 删除按钮 | 删除当前选中的方案（仅选中方案时可点击） |

**交互流程：**

**保存方案（新建）：**
```
手动勾选字段 → 点击【保存为方案】→ 弹出命名弹窗 → 输入方案名称 → 确认 → 写入 localStorage → Toast 提示"方案保存成功"
```

**复用方案：**
```
下拉框选择方案 → 复选框自动回填 → 用户可手动增减微调
```

**覆盖保存：**
```
选中已有方案 → 修改字段勾选 → 点击【保存为方案】→ 弹窗询问"覆盖已有方案 / 另存为新方案"
```

**删除方案：**
```
选中方案 → 点击【删除】→ 确认弹窗 → 从 localStorage 移除 → Toast 提示

---删除成功"
```

**数据存储：**

| Key | 值 |
|---|---|
| `FIELD_SCHEME_RECEIVE` | 应收台账的字段方案列表 |
| `FIELD_SCHEME_PAY` | 应付台账的字段方案列表 |

```json
[{
  "name": "日常同步（常用字段）",
  "fieldNames": ["billNo", "billCycle", "status", "sceneType"],
  "createTime": 1717200000000
}]
```

**校验/异常：**

| 场景 | 提示文案 |
|---|---|
| 方案名称为空 | "请输入方案名称" |
| 名称重复 | "已存在同名方案，请更换名称" |
| 删除确认 | "确定删除方案「XXX」？删除后不可恢复。" |
| 微调后切换方案 | "当前字段选择已修改，切换方案将丢失未保存的修改，确定切换吗？" |
| 方案数量上限（10个） | "最多保存10个字段方案" |

---

## 5. 验收标准

### 5.1 账单复核

- [ ] 全自动/半自动模式时，"2、输入"末尾出现"复核说明"行（选填，纯文本）
- [ ] 手动/外部系统模式时，不显示"复核说明"
- [ ] 留空可正常保存

### 5.2 合同 AI 补全

- [ ] 用户终止 AI 解析后，AI 请求被取消无任何字段返回，用户自行填写
- [ ] 保存合同时必填字段完整即可保存成功，不阻塞
- [ ] 保存后，后台异步调 AI，对 14 个字段执行"AI 有值 AND 库表为空 → 写入"逻辑
- [ ] 后台补全不覆盖用户已填字段（含必填和选填）
- [ ] 后台补全不区分必填/选填，一视同仁
- [ ] 前端不做任何 AI 补全相关展示（无标记、无标签、无提示条）
- [ ] 后台 AI 调用失败时静默重试 1 次，仍失败则放弃，不影响用户操作
- [ ] 用户保存后手动编辑过的字段，不被后台补全覆盖

### 5.3 表头字段方案

- [ ] 用户可手动勾选字段后，点击"保存为方案"，命名后成功保存
- [ ] 下拉选择已有方案，复选框自动回填
- [ ] 选择方案后可手动增减字段，微调后可覆盖或另存为新方案
- [ ] 可删除已保存的方案
- [ ] 方案保存后刷新页面再打开抽屉，方案仍存在（localStorage）
- [ ] 应收台账和应付台账的方案列表各自独立
- [ ] 方案列表最多10个，超出时提示
- [ ] 保存/复用/删除操作有 Toast 反馈

---

## 6. 相关资料

- 原型：`versions/v3.09.0/prototype/index.html`
