docs: 新增结算调整单分场景操作流程说明

This commit is contained in:
刘泉佳
2026-10-17 18:17:26 +08:00
parent 41501a7060
commit 755d420aa2
@@ -0,0 +1,190 @@
# 结算调整单操作流程说明(分场景)
> 整理日期:2026-10-17
> 定位:面向操作者的流程说明,只讲"谁在哪个页面做什么、系统发生什么、结果是什么",不含代码细节。
> 依据:`2026-10-16-结算调整单接入金蝶设计(未推送自动推-已推送冲销后重推新单).md` 及当前已落地实现。
---
## 一、结算调整单是什么
正式结算单**审批通过后不允许直接改金额**,一切费用调整都必须通过「结算调整单」完成。
- **作用**:对一张已审批通过的正式结算单,调整其费用项目和金额(调增、调减、新增手工费用)。
- **单号规则**:`TZ + 日期 + 4 位流水`,保存草稿时自动生成。
- **只能手工新增**:系统不会自动生成调整单,全部由业务人员在页面发起。
- **没有作废功能**:调整单一旦提交走审批,不支持作废;错了只能走"驳回 → 修改"或重新建单。
- **推送金蝶按钮是高危操作**:点击前有二次确认,请确认金蝶侧状态后再操作。
---
## 二、状态与可用操作总览
### 2.1 状态流转
```
新增/保存草稿 ──→ 草稿 ──提交──→ 审批中 ──审批通过──→ 审批通过(终态)
↑ │
│ 驳回
└──── 已驳回 ←───┘
(可改后重新提交)
```
- 草稿、已驳回:可编辑、可删除(草稿)、可提交。
- 审批中:只能"通过"或"驳回"。
- 审批通过:终态,只剩金蝶推送相关操作。
### 2.2 各状态下的按钮
| 状态 | 可用操作 | 说明 |
|---|---|---|
| 草稿 | 编辑 / 删除 / 提交 | 删除为物理删除,含明细 |
| 已驳回 | 编辑 / 提交 | 须先"编辑"保存一次(保存自动回到草稿)才能提交,直接提交会被拒绝 |
| 审批中 | 通过 / 驳回 | 审批人操作 |
| 审批通过 | 推送金蝶 / 重新推送(合一按钮)| 按金蝶状态自动分流,高危确认 |
### 2.3 金蝶同步状态(调整单上的展示字段)
| 状态 | 含义 |
|---|---|
| 未同步 | 原结算单还没推过金蝶,或推送尚未发生 |
| 已同步 | 已在金蝶生成应付/应收单,调整单上可看到金蝶单据号 |
| 生成失败 | 推送失败,可用"推送金蝶"重试或等定时重推 |
---
## 三、通用操作说明(每个操作:前置条件 → 系统动作 → 结果)
### 3.1 新增调整单
| 项 | 说明 |
|---|---|
| 入口 | 结算调整单列表 → 新增 |
| 前置 | 必须先选定一张**可调整的正式结算单**,条件缺一不可:① 审批通过;② 未完成收款/付款;③ 非尾款结算;④ 未发起尾款付款/付款申请。不满足的单在选单列表里根本搜不到 |
| 系统动作 | 选定结算单后自动回带:客商、调整类型(应收/应付)、合同、原结算金额、原单费用明细;同时做一次**金蝶冲销预检(软提示)** |
| 预检提示 | ① 未推送金蝶 → 正常继续;② 已推送且旧单已冲销 → 提示"审批后可重新推送新单";③ 已推送且旧单未冲销 → 醒目提示"审批后需先由财务在金蝶完成冲销,才能重新推送";④ 金蝶查不到/超时 → 提示"未校验",**不阻断建单** |
| 结果 | 生成一张草稿,获得单号 |
> 预检只是提示,不拦人;真正的拦截在"重新推送"那一步。填单时必须至少录入一条调整费用,否则无法提交。
### 3.2 保存草稿 / 编辑 / 删除
- 草稿和已驳回的单可反复编辑;删除仅限草稿,删除后单号作废、不留痕迹。
- 手工费用行(不对应原单明细的费用)与关联原单明细的费用行在明细里混排,提交时会校验关联完整性。
### 3.3 提交
- 草稿 / 已驳回 → 审批中,进入审批人的待办。
- 提交后单据锁定,提交人不能再改。
### 3.4 审批通过 ★ 核心分流点
审批人点"通过"后,系统按**原结算单是否推送过金蝶**自动走两条完全不同的路(见第四、五节场景 A / B):
- **原单未推送**:把调整直接回写到原结算单,然后自动推金蝶。
- **原单已推送**:原单数据一律不动,只留一条变更记录,等财务冲销后再人工重推。
> 注:审批接口会顺带返回自动推送的失败原因(如有),前端直接提示,不用去翻日志。
### 3.5 驳回
- 审批中 → 已驳回,驳回原因写入备注。
- 驳回后单据解锁,提交人可修改后重新提交,回到审批中。注意:重新提交前必须先点一次「编辑」并保存(保存会把单据重置回草稿),对已驳回单直接点提交会被拒绝。
### 3.6 推送金蝶 / 重新推送(合一按钮,高危)
列表和详情里只有一个按钮,系统按金蝶状态自动分流:
| 调整单金蝶状态 | 按钮实际行为 | 前置闸门 |
|---|---|---|
| 未同步 / 生成失败 | 推送其关联的**原结算单**到金蝶 | 无冲销要求 |
| 已同步 | **重新推送(高危)**:确认金蝶旧单已冲销后,克隆一张新正式结算单并推送 | 硬闸门:金蝶旧单必须已冲销,否则直接拒绝并提示先冲销 |
按钮点击均有高危二次确认弹窗。
---
## 四、分场景流程
### 场景 A:原结算单未推送金蝶(最常见、全自动)
适用:正式结算单审批通过了,但还没推到金蝶。
| 步骤 | 操作人 | 操作 | 系统动作 |
|---|---|---|---|
| 1 | 业务 | 新增调整单,选定结算单,录调整费用,保存草稿 | 回带信息、生成 TZ 单号 |
| 2 | 业务 | 提交 | 草稿 → 审批中 |
| 3 | 审批人 | 审批通过 | ① 调整直接回写原结算单(费用、明细、合计、结算金额全部更新);② 原单追加变更记录;③ 调整单 → 审批通过;④ 事务提交后**自动触发金蝶推送**(走正式结算单既有的推送链路:生成财务应付/应收单 + 单据落锁 + 附件上传) |
| 4 | 系统 | — | 推送成功:调整单回填"已同步 + 金蝶单据号";推送失败:调整单置"生成失败"+ 原因,**审批结果不受影响**,转入场景 D 处理 |
结束后:原结算单即调整后的金额,金蝶里是一张含调整金额的应付/应收单。
> 注意:审批后自动推送受系统开关控制。若环境未开启自动同步,审批仍成功,但需人工在列表点"推送金蝶"完成推送。
### 场景 B:原结算单已推送金蝶(需财务在金蝶冲销后重推)
适用:正式结算单已在金蝶生成应付/应收单。核心约束:**原单一经推送金蝶即冻结,本地数据一律不动**。
| 步骤 | 操作人 | 操作 | 系统动作 |
|---|---|---|---|
| 1 | 业务 | 新增调整单(选单时预检会提示"旧单未冲销"或"已冲销"),提交 | 同场景 A 步骤 1-2 |
| 2 | 审批人 | 审批通过 | ① 原结算单业务数据**零改动**,只追加 1 条变更记录("调整单XX审批通过,调整金额XX,待重推金蝶");② 调整单 → 审批通过,金蝶状态保持"已同步"快照("重新推送"按钮因此亮起);③ 前端提示:**"原结算单已推送金蝶,请财务人员在金蝶手工完成旧应付/应收单冲销处理"** |
| 3 | 财务 | **在金蝶系统内手工冲销**旧的应付/应收单 | TMS 不参与,这是金蝶侧的人工操作 |
| 4 | 业务 | 回到 TMS,点"重新推送(高危)"并二次确认 | 系统依次:① 硬闸门——按原结算单号去金蝶查旧单,**必须已冲销**(部分冲销也算已冲销),未冲销直接拒绝;② **克隆一张新的正式结算单**(全新 FJS/SJS 单号),把调整应用上去,直接置为审批通过(新单不再走审批流);③ 用新单号推送金蝶,生成**全新**的财务应付/应收单 + 落锁 + 附件;④ 调整单改挂到新单,回填"已同步 + 金蝶单据号";⑤ 原单标记"已调整",原单在金蝶的旧锁解锁 |
| 5 | 系统 | — | 完成。此时列表里**新旧两张正式结算单并存**,带标识区分(见第六节) |
失败处理:第 4 步若推送失败,已克隆的新单不回滚,新单置"生成失败";再点"重新推送"会**复用已克隆的新单**从推送步骤继续,不会重复建单(幂等)。调整单已改挂新单后再点重推,会被冲销闸门拦截,无副作用。
> 为什么第 2 步不自动推:金蝶侧已有一张旧单,直接再推会重复生成应付/应收单;必须先冲销旧单,且冲销只能由财务在金蝶完成,TMS 无法代办。
### 场景 C:审批驳回 → 修改后重新提交
1. 审批人在"审批中"单据上点"驳回",填写驳回原因。
2. 单据回到"已驳回",提交人可编辑(改费用、改金额),重新提交。
3. 提交后回到"审批中",等同重新走审批。
4. 若已驳回单不想调了:留置即可(无作废功能),或改对后再次提交。
> 已审批通过的单**无法驳回、无法作废、无法撤回**,录入时请谨慎;金额确认错的分析原因后新建调整单二次调整。
### 场景 D:金蝶推送失败
| 触发 | 现象 | 处理 |
|---|---|---|
| 场景 A 审批后自动推送失败 | 调整单状态"生成失败",审批接口直接返回失败原因,原结算单也有失败标记 | ① 等定时重推任务自动扫描重试;② 或人工在调整单列表点"推送金蝶"立即重试 |
| 场景 B 重推新单失败 | 新正式结算单"生成失败",调整单显示失败状态 | 再点"重新推送",系统复用已克隆的新单从推送步骤续推,不会重复建单 |
审批结果与推送结果相互独立:推送失败不影响"审批通过",只影响金蝶侧是否生成单据。
### 场景 E:边界情况速查
| 情况 | 系统行为 |
|---|---|
| 未审批就点重推 | 拒绝,要求先审批通过 |
| 金蝶旧单未冲销就点重推 | 硬拦截,提示先冲销 |
| 金蝶旧单被删除(非冲销)| 查不到旧单 → 同样拦截 |
| 部分冲销 | 视同已冲销,放行重推 |
| 审批时原单刚好已被推送到金蝶 | 按**当下**状态走场景 B,选单时的预检结论不作数 |
| 选单时金蝶超时/不可用 | 预检降级"未校验",不阻断建单 |
| 重推成功前原单旧锁残留 | 重推成功时统一解锁 |
| 应收结算单 | 与应付完全同一套流程,仅接口不同(应收 A302 系 / 应付 A102 系) |
---
## 五、单据标识与字段说明(列表里怎么认单)
| 单据/字段 | 含义 |
|---|---|
| 正式结算单标"**已调整**" | 该单已被调整单重推过,金额已作废(数据保留),不要再用它做下游业务 |
| 正式结算单标"**调整后单**"并显示原单号 | 这是重推克隆出的新单,金额 = 原单 + 调整 |
| 调整单"金蝶单据号" | 该调整最终落到金蝶哪张应付/应收单上 |
| 调整单"金蝶同步状态" | 见 2.3 |
| 调整金额 / 原结算金额 / 调整后金额 | 调整后金额 = 原结算金额 + 调整金额 |
---
## 六、重要业务口径(须知)
1. **原单冻结原则**:原结算单一经推送金蝶,TMS 本地对其零改动;调整金额只体现在重推克隆的新单上。
2. **新单是全新独立单**:原单的下游关联(开票申请、收款认领、对账)**不迁移**,留在原单;新单发票状态、收付款状态均从零开始(未收票、未付款)。应收场景下新单会显示"未开票/未收款",属正常现象。
3. **新单不走审批流**:克隆的新正式结算单直接是审批通过状态,无需再审批。
4. **冲销是财务的人工操作**:TMS 不自动冲销金蝶单据,也不会因为调整单驳回/删除而自动恢复冲销——所以建单阶段只做软提示,把硬拦截留在重推。