Underestimated Joey - FAB
type: channel
link: https://underestimated.blog/tag/FAB/
items: FAB SVA 退出 - 余额清空功能设计文档

FAB SVA 退出 - 余额清空功能设计文档
type: item
date: 2026-04-08T04:50:18+00:00
description: 版本: v1.0日期: 2026-04-08模块: gp104_escrow1. 背景与目标1.1 背景PayBy 决定退出 FAB 的 SVA（Stored Value Account）功能。退出前需将所有 SVA 卡上的余额清空（归零），确保 Pool Account 资金与卡余额一致归零后，完成业务退出。1.2 目标基于 FAB 提供的余额文件，与系统内余额进行比对核验在确认一致后，生成余额清空交易列表，逐笔报送 FAB处理因卡状态异常导致的报送失败，通过与 FAB 协调修复后重新报送最终实现所有卡余额清零，Pool Account 余额归零1.3 约束条件所有卡总余额 = Pool Account 余额（FAB 提供的文件需满足此等式）需要设定一个系统截止时间点（Cutoff Time），截止后不再接受新交易余额清空为不可逆操作，需经过 Operator 确认后方可执行2. 整体流程概览flowchart TD A[FAB 提供余额文件] --> B[Operator 通过 Counter 上传余额文件] B --> C[设定系统截止时间点 Cutoff Time] C --> D[系统生成内部余额快照] D --> E[余额比对: FAB文件 vs 系统快照] E --> F{比对结果} F -->|一致| G[生成汇总报告] F -->|不一致| H[生成差异明细报告] H --> I[Operator 审核差异] I -->|确认差异可接受| G I -->|需要调整| J[与 FAB 协调处理差异] J --> A G --> K[Operator 确认提交] K --> L[生成余额清空交易列表] L --> M[逐批报送 FAB] M --> N{报送结果} N -->|全部成功| O[余额清空完成] N -->|部分失败| P[生成失败卡列表] P --> Q[发送失败列表给 FAB 修改卡状态] Q --> R[FAB 修复卡状态] R --> M O --> S[Pool Account 余额归零确认]3. 详细流程设计3.1 阶段一：余额文件上传与截止时间设定sequenceDiagram participant FAB as FAB Bank participant OP as Operator participant CT as Counter (UI) participant SYS as Escrow System participant UFS as UFS 文件服务 FAB->>OP: 提供余额文件(CSV) OP->>CT: 上传余额文件 + 设定截止时间 CT->>UFS: 存储余额文件 UFS-->>CT: 返回 fileTag CT->>SYS: 发起余额清空请求(fileTag + cutoffTime) SYS->>SYS: 创建清空批次记录(ClearingBatch) SYS->>SYS: 设定系统截止时间 SYS-->>CT: 返回批次号(clearingBatchId)FAB 余额文件格式（CSV）：字段说明示例CardID卡ID1234567890Balance卡余额(AED)150.00文件末尾包含汇总行：字段说明Total Cards卡总数Total Balance总余额(应等于 Pool Account 余额)3.2 阶段二：系统余额快照生成sequenceDiagram participant SYS as Escrow System participant DB as Database participant QRY as Query Service SYS->>SYS: 触发余额快照(cutoffTime) SYS->>DB: 查询所有活跃卡列表(t_issue_record + t_card_detail) DB-->>SYS: 卡列表(cardId, memberId) loop 分批处理(batch_size=200) SYS->>QRY: 查询会员账户余额(BASIC + RED_PACKET_SETTLE + OUTER_TRANSFER_SETTLE) QRY-->>SYS: 各账户类型余额 SYS->>SYS: 汇总每张卡的系统总余额 SYS->>DB: 存储余额快照明细(t_clearing_balance_detail) end SYS->>DB: 更新批次状态为 SNAPSHOT_DONE3.3 阶段三：余额比对sequenceDiagram participant SYS as Escrow System participant UFS as UFS 文件服务 participant DB as Database SYS->>UFS…

FAB SVA 退出 - 余额清空功能设计文档
type: item
date: 2026-04-08T04:50:00+00:00
description: 版本: v1.0日期: 2026-04-08模块: gp104_escrow1. 背景与目标1.1 背景PayBy 决定退出 FAB 的 SVA（Stored Value Account）功能。退出前需将所有 SVA 卡上的余额清空（归零），确保 Pool Account 资金与卡余额一致归零后，完成业务退出。1.2 目标基于 FAB 提供的余额文件，与系统内余额进行比对核验在确认一致后，生成余额清空交易列表，逐笔报送 FAB处理因卡状态异常导致的报送失败，通过与 FAB 协调修复后重新报送最终实现所有卡余额清零，Pool Account 余额归零1.3 约束条件所有卡总余额 = Pool Account 余额（FAB 提供的文件需满足此等式）需要设定一个系统截止时间点（Cutoff Time），截止后不再接受新交易余额清空为不可逆操作，需经过 Operator 确认后方可执行2. 整体流程概览flowchart TD A[FAB 提供余额文件] --> B[Operator 通过 Counter 上传余额文件] B --> C[设定系统截止时间点 Cutoff Time] C --> D[系统生成内部余额快照] D --> E[余额比对: FAB文件 vs 系统快照] E --> F{比对结果} F -->|一致| G[生成汇总报告] F -->|不一致| H[生成差异明细报告] H --> I[Operator 审核差异] I -->|确认差异可接受| G I -->|需要调整| J[与 FAB 协调处理差异] J --> A G --> K[Operator 确认提交] K --> L[生成余额清空交易列表] L --> M[逐批报送 FAB] M --> N{报送结果} N -->|全部成功| O[余额清空完成] N -->|部分失败| P[生成失败卡列表] P --> Q[发送失败列表给 FAB 修改卡状态] Q --> R[FAB 修复卡状态] R --> M O --> S[Pool Account 余额归零确认]3. 详细流程设计3.1 阶段一：余额文件上传与截止时间设定sequenceDiagram participant FAB as FAB Bank participant OP as Operator participant CT as Counter (UI) participant SYS as Escrow System participant UFS as UFS 文件服务 FAB->>OP: 提供余额文件(CSV) OP->>CT: 上传余额文件 + 设定截止时间 CT->>UFS: 存储余额文件 UFS-->>CT: 返回 fileTag CT->>SYS: 发起余额清空请求(fileTag + cutoffTime) SYS->>SYS: 创建清空批次记录(ClearingBatch) SYS->>SYS: 设定系统截止时间 SYS-->>CT: 返回批次号(clearingBatchId)FAB 余额文件格式（CSV）：字段说明示例CardID卡ID1234567890Balance卡余额(AED)150.00文件末尾包含汇总行：字段说明Total Cards卡总数Total Balance总余额(应等于 Pool Account 余额)3.2 阶段二：系统余额快照生成sequenceDiagram participant SYS as Escrow System participant DB as Database participant QRY as Query Service SYS->>SYS: 触发余额快照(cutoffTime) SYS->>DB: 查询所有活跃卡列表(t_issue_record + t_card_detail) DB-->>SYS: 卡列表(cardId, memberId) loop 分批处理(batch_size=200) SYS->>QRY: 查询会员账户余额(BASIC + RED_PACKET_SETTLE + OUTER_TRANSFER_SETTLE) QRY-->>SYS: 各账户类型余额 SYS->>SYS: 汇总每张卡的系统总余额 SYS->>DB: 存储余额快照明细(t_clearing_balance_detail) end SYS->>DB: 更新批次状态为 SNAPSHOT_DONE3.3 阶段三：余额比对sequenceDiagram participant SYS as Escrow System participant UFS as UFS 文件服务 participant DB as Database SYS->>UFS…

FAB SVA 退出 - 余额清空功能设计文档
type: item
date: 2026-04-08T04:50:00+00:00
description: 版本: v1.0日期: 2026-04-08模块: gp104_escrow1. 背景与目标1.1 背景PayBy 决定退出 FAB 的 SVA（Stored Value Account）功能。退出前需将所有 SVA 卡上的余额清空（归零），确保 Pool Account 资金与卡余额一致归零后，完成业务退出。1.2 目标基于 FAB 提供的余额文件，与系统内余额进行比对核验在确认一致后，生成余额清空交易列表，逐笔报送 FAB处理因卡状态异常导致的报送失败，通过与 FAB 协调修复后重新报送最终实现所有卡余额清零，Pool Account 余额归零1.3 约束条件所有卡总余额 = Pool Account 余额（FAB 提供的文件需满足此等式）需要设定一个系统截止时间点（Cutoff Time），截止后不再接受新交易余额清空为不可逆操作，需经过 Operator 确认后方可执行2. 整体流程概览flowchart TD A[FAB 提供余额文件] --> B[Operator 通过 Counter 上传余额文件] B --> C[设定系统截止时间点 Cutoff Time] C --> D[系统生成内部余额快照] D --> E[余额比对: FAB文件 vs 系统快照] E --> F{比对结果} F -->|一致| G[生成汇总报告] F -->|不一致| H[生成差异明细报告] H --> I[Operator 审核差异] I -->|确认差异可接受| G I -->|需要调整| J[与 FAB 协调处理差异] J --> A G --> K[Operator 确认提交] K --> L[生成余额清空交易列表] L --> M[逐批报送 FAB] M --> N{报送结果} N -->|全部成功| O[余额清空完成] N -->|部分失败| P[生成失败卡列表] P --> Q[发送失败列表给 FAB 修改卡状态] Q --> R[FAB 修复卡状态] R --> M O --> S[Pool Account 余额归零确认]3. 详细流程设计3.1 阶段一：余额文件上传与截止时间设定sequenceDiagram participant FAB as FAB Bank participant OP as Operator participant CT as Counter (UI) participant SYS as Escrow System participant UFS as UFS 文件服务 FAB->>OP: 提供余额文件(CSV) OP->>CT: 上传余额文件 + 设定截止时间 CT->>UFS: 存储余额文件 UFS-->>CT: 返回 fileTag CT->>SYS: 发起余额清空请求(fileTag + cutoffTime) SYS->>SYS: 创建清空批次记录(ClearingBatch) SYS->>SYS: 设定系统截止时间 SYS-->>CT: 返回批次号(clearingBatchId)FAB 余额文件格式（CSV）：字段说明示例CardID卡ID1234567890Balance卡余额(AED)150.00文件末尾包含汇总行：字段说明Total Cards卡总数Total Balance总余额(应等于 Pool Account 余额)3.2 阶段二：系统余额快照生成sequenceDiagram participant SYS as Escrow System participant DB as Database participant QRY as Query Service SYS->>SYS: 触发余额快照(cutoffTime) SYS->>DB: 查询所有活跃卡列表(t_issue_record + t_card_detail) DB-->>SYS: 卡列表(cardId, memberId) loop 分批处理(batch_size=200) SYS->>QRY: 查询会员账户余额(BASIC + RED_PACKET_SETTLE + OUTER_TRANSFER_SETTLE) QRY-->>SYS: 各账户类型余额 SYS->>SYS: 汇总每张卡的系统总余额 SYS->>DB: 存储余额快照明细(t_clearing_balance_detail) end SYS->>DB: 更新批次状态为 SNAPSHOT_DONE3.3 阶段三：余额比对sequenceDiagram participant SYS as Escrow System participant UFS as UFS 文件服务 participant DB as Database SYS->>UFS…