问题:重新收盘后用户手动互换产生的资金记录(ClientCashInCashOut, Action=系统操作-互换)被误删。根因 ClearSwapPositions:400 按 Action 字符串模糊删除,而该 Action 手动/自动共用,表无来源字段区分。 引入点 commit 44e89726(2026-05-14)。 - 新增决策文档(根因/引入时间/三种修复方案/自测方法) - 新增 SwapReEodDeleteManualCashRecordTest 4个测试(探查/诊断/录制红灯/离线校验) - 录制 golden 坐实 bug: trade 1903 手动互换资金记录 id=13032 会被误删
分红被重复计入 RealizedPnl 两次的根因:互换/平仓事件的 MarkClosePnl 已含分红成分(DividendIn),导致分红既进 RealizedMtmPnL(盯市列) 又进 RealizedDividend(分红列)。本次提供数据证据与回归基线: - SwapDividendGoldenRecordTest: 连库录制1875(纯分红型)/1891(混合型) 5表快照→JSON golden,录制时逐事件拆解 MarkClosePnl=价差+费+分红, 按 PositionId 汇总出重复计入的分红金额。Step2 离线校验已通过。 诊断结论:1875 重复302400,1891 重复-18.66,均与 eod 分红列吻合。 - golden JSON 纳入源码树(全量复制规则),修复后可作回归基线。 - 排查SQL工具箱: 基于真实DDL核对全部列名(swap_flow_event.EventDate/ bond_payment_info.paying_interest 等),含定位样本/导出/验证/守恒4步。 - appsettings.json 测试库 zszq→glms 前缀修正。 详见 项目文档/互换分红损益字段语义与重复计算分析.md(9e6af84e)。
9e6af84e