feat(interest): 融资腿计息接入 trace 并常驻落盘

FundingLegAccrual.AccrueSimpleEod 接 InterestTrace;SwapCalcTrace 新增 Persist
把收集器条目经 Critical 无条件落盘(与开关无关);已迁移的 EOD 单利适配器
CalcDailySimpleInterestByEod 创建并 Persist trace。纯增量、数值逻辑不变。
This commit is contained in:
hjhan
2026-08-12 06:05:02 +08:00
parent fba87bd7cc
commit fcf52a305e
3 changed files with 32 additions and 3 deletions
@@ -3,6 +3,7 @@ using Newtonsoft.Json;
using YLErp.BLL;
using YLErp.BLL.Eod;
using YLErp.DBModels.Enums;
using YLErp.Core.Interest;
using YLErp.Derivatives.Interest;
using YLErp.Helpers;
using YLErp.Modules.DataProviderModule;
@@ -1591,6 +1592,8 @@ namespace YLErp.Modules.SwapModule
resetPeriodDays: position.interest_rest_days ?? 1,
annualDays: annualDays,
isAnnualized: position.IsAnnualized);
// 完整计息 trace:收集器由适配器创建,随后经 SwapCalcTrace 常驻落盘(关键路径日志,无条件)。
var interestTrace = new InterestTrace();
var result = FundingLegAccrual.AccrueSimpleEod(
priorUnrealized: preEodPosition.InterestProfitSum,
priorAccrualPrincipal: preEodPosition.TdInterestPrincipal,
@@ -1598,9 +1601,12 @@ namespace YLErp.Modules.SwapModule
closeRatio: closePercent,
originalPv: orginPv,
rate: legRate,
policy: accrualPolicy);
policy: accrualPolicy,
eodDate: endDate,
trace: interestTrace);
InterestAmount = result.Accrued;
TdInterestAmount = result.AccruedToday;
SwapCalcTrace.Persist(interestTrace);
}
/// <summary>