From f596bd80bcb5afe3ced74caf9214bb487bb7e2ee Mon Sep 17 00:00:00 2001 From: hjhan Date: Sun, 16 Aug 2026 11:53:15 +0800 Subject: [PATCH] =?UTF-8?q?docs(adjudication):=20=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E9=9D=A2=E6=9C=80=E7=BB=88=E5=85=B3=E9=97=AD=E2=80=94=E2=80=94?= =?UTF-8?q?EOD=E9=87=8D=E7=AE=97=E7=BB=93=E6=9E=9C=E8=A2=AB=E4=B8=A2?= =?UTF-8?q?=E5=BC=83,=E9=9B=B6=E7=94=9F=E4=BA=A7=E5=90=8E=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DealInterests hasClose 分支未接收 SaveAutoEodWithCloseInterestPosition 返回值, UpdateDbOption 仅打审计字段不落库,快照滚动盘中实结金额——错误的251,355 只存在于内存与日志。内网查证与数据修正清单取消,修复定性为重构卫生项。 Co-Authored-By: Claude Opus 4.7 --- ...入口口径裁决-复利mode2部分平仓-20260816.md | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/项目文档/双入口口径裁决-复利mode2部分平仓-20260816.md b/项目文档/双入口口径裁决-复利mode2部分平仓-20260816.md index fa86c888..792c9f8b 100644 --- a/项目文档/双入口口径裁决-复利mode2部分平仓-20260816.md +++ b/项目文档/双入口口径裁决-复利mode2部分平仓-20260816.md @@ -19,13 +19,16 @@ **重算事件金额是应结的 3.3 倍**(多出部分 ≈ 剩余 3500 万份额对应的待实现利息,在只平 30% 时被算进重算结果)。 -> **资金面影响裁定(2026-08-16 代码级核查):资金没有多结,本分歧不动钱。** -> ①该 EOD 重算路径(autoSwap=false)无任何 AddClientCash 调用,客户资金只在盘中流程与 -> EOD 自动互换/分红路径发生,均用盘中正确数;②EOD 快照"当日结出"(TdCloseInterest)与 -> 累计已结(RealizedInterest)滚动用的都是盘中实落库金额(75,999),剩余持仓待实现(≈177,300) -> 亦为正确值。错误的 251,355 只存在于当晚重算写入的一条**利息流水记录**(swap_flow_event)。 -> 残余影响:该流水记录金额错误(事件列表如展示即错数)、未来任何消费此记录的代码会拿到错值、 -> 与 9 个真金白银炸过的生产 fix 同根因(percent≡1 语义漂移)。**修复性质:排雷,非止血。** +> **影响面最终裁定(2026-08-16 代码级核查,三层全部关闭):资金没多结,数据没错,本分歧零生产后果。** +> ①**不落库**:`UpdateDbOption` 仅打审计字段不做 DbSet.Add,且 `DealInterests` 的 hasClose 分支 +> (SwapEodPositionService.cs:524)**未接收返回值**——重算结果被整个丢弃,库里不存在这条错误流水; +> ②**不动钱**:该路径(autoSwap=false)无 AddClientCash;客户资金只在盘中流程与 EOD 自动互换/分红路径发生; +> ③**不进快照**:`TdCloseInterest`/`RealizedInterest` 滚动盘中实落库金额(75,999),部分平仓×复利×mode2/9 +> 的 `TdInterestIncome` 被后续 DailyAccrual 干净重算覆盖,剩余待实现(≈177,300)正确。 +> 错误的 251,355 只存在于内存计算与 Log.Info 日志行。观察日×当日平仓路径(autoSwap=true)确会结现 +> (系统操作_互换),但该路 percent≡1 即"观察日全量结息"的正确语义,:1220 公式即为其设计。 +> **结论:这是共享计算器内的语义地雷(percent≡1 复用),非结算错误;修复性质=重构卫生项, +> 与普通重构同优先级;生产数据修正与内网查证全部取消。** ### 1.2 可复现实测锚点(玩具参数,字符化钉子) @@ -94,13 +97,9 @@ EOD 口径(全仓待实现 250,508.61 + 末段增量 846.43 = 251,355.08)**无 - `GetInterests` 内 mode2 无条件覆盖/mode9 兜底(2035e1df 粘合)随之退役删除 - 钉住测试翻转为"两入口相等" oracle 断言;黄金回放 diff 仅允许出现在本格子的 EOD 结息额(=裁决修正值) -## 七、生产影响面(待内网查证) +## 七、生产影响面(已关闭,无需内网查证) -受影响格子:**当日发生部分平仓 × 复利 × mode2/9 × 当晚 EOD 归档重算**——含两个来源: -- 人工盘中部分平仓后的当晚归档(常见); -- `SwapTradeAutoService` 自动归并部分平仓(反向流水量<持仓量)后的当晚归档。 - -**资金面已裁定无影响(见 §1.1 引注)。** 内网查询目的降级为两条: -1. 确认无消费方在汇总这条重算流水记录(遍历取数处:报表/事件列表/对账脚本是否 - 按 SwapTradeId+EventDate 汇总 swap_flow_event.InterestAmount 且未过滤 EventId=0 的重算行); -2. 量化错误记录的存量规模(多少笔重算行金额≠契约重算值)——作为修复后的数据修正清单。 +受影响格子:**当日发生部分平仓 × 复利 × mode2/9 × 当晚 EOD 归档重算**——经代码级核查, +该路径重算结果不落库、不动钱、不进快照(详见 §1.1 引注),**生产资金与数据均无影响, +原定内网查证与数据修正清单全部取消**。观察日×当日平仓(autoSwap=true)路径结现, +但 percent≡1 在该语义下正确,非本分歧范围。