From 47f95fcc45b580359deacdeb02c049468aa3cff2 Mon Sep 17 00:00:00 2001 From: hjhan Date: Wed, 1 Jul 2026 13:58:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(swap):=20=E4=BA=92=E6=8D=A2=E7=BB=93?= =?UTF-8?q?=E6=B8=85=E5=90=8Eeod=E5=BE=85=E5=AE=9E=E7=8E=B0=E5=88=A9?= =?UTF-8?q?=E6=81=AF=E6=AD=A3=E7=A1=AE=E6=89=A3=E5=87=8F(SaveEodInterestPo?= =?UTF-8?q?sition)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SaveEodInterestPosition(cs:834)原公式: InterestIncomeSum = pre + TdInterestIncome - TdCloseInterest 其中 TdInterestIncome = TdCloseInterest(互换日全程利息), 两者抵消导致 InterestIncomeSum=pre不变。 互换结清后待实现没归零,后续平仓默认值偏大。 修复:只改InterestIncomeSum公式为 pre - TdCloseInterest (前日待实现 - 当日实现 = 剩余待实现)。 TdInterestIncome保持原值不动(入库字段,影响报表)。 验证需重新收盘:修复改的是eod生成逻辑,已有eod不会自动变。 --- YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs index 8c15c222..1fa4c2ad 100644 --- a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs @@ -831,7 +831,10 @@ namespace YLErp.Modules.SwapModule newEodPayPosition.TdCloseInterestFee = newEodPayPosition.TdInterestFee; //持仓内容-利息腿-损益统计(本方视角) newEodPayPosition.TdInterestIncome = newEodPayPosition.TdCloseInterest; - newEodPayPosition.InterestIncomeSum = eodPayPosition.InterestIncomeSum + newEodPayPosition.TdInterestIncome - newEodPayPosition.TdCloseInterest; + // 互换日待实现应扣减当日实现的全程利息(TdCloseInterest)。 + // 原公式 pre + TdInterestIncome - TdCloseInterest 中 TdInterestIncome==TdCloseInterest 会抵消, + // 导致待实现不变(互换结清后没归零)。改为直接 pre - TdCloseInterest。 + newEodPayPosition.InterestIncomeSum = eodPayPosition.InterestIncomeSum - newEodPayPosition.TdCloseInterest; newEodPayPosition.InterestFeeSum = eodPayPosition.InterestFeeSum + newEodPayPosition.TdInterestFee - newEodPayPosition.TdCloseInterestFee; newEodPayPosition.InterestProfitSum = newEodPayPosition.InterestIncomeSum + newEodPayPosition.InterestFeeSum; //持仓价值