feat(swap): EQD-6953 平仓期末结算收益率字段载体+结算确认书Excel导出——[NotMapped]ExitYtm随UnwindData进swap_event.EventData(零表结构变更);生成器从浮动腿回读导出固定4位不去零(0.0000);模板nodma_01.xlsx新增S列;命名遵《互换价格字段命名规范决策文档》平仓=Exit(非End/Close/Final)

This commit is contained in:
hjhan
2026-08-20 17:29:10 +08:00
parent 828dc237ab
commit 71683083ef
4 changed files with 26 additions and 0 deletions
@@ -67,6 +67,9 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
decimal interestRate = unwindFlowEvents.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode)).Sum(s => s.InterestRate);
row.InterestRate = interestRate.ToString("0.00%");
var PosiNotionalValue = flowEventGroup.Quantity * flowEventGroup.ContractSize * posi.PosiGrossPrice;
// EQD-6953 期末标的结算收益率:平仓簿记时随 UnwindData 存进 swap_event.EventData
// 此处从浮动腿(PositionType>0)回读。存储态=展示态百分数(6.3721),导出固定 4 位不去零。
decimal? exitYtm = null;
if (flowEventGroup.EventId.HasValue)
{
var swapEvent = Context.GetEvent(flowEventGroup.EventId.Value);
@@ -74,8 +77,12 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
{
swapEvent.unwindData = JsonHelper.Deserialize<UnwindData>(swapEvent.EventData);
PosiNotionalValue = swapEvent.unwindData.CloseNotionalValue;
exitYtm = swapEvent.unwindData.FlowEvents?
.FirstOrDefault(f => f.PositionType > 0)?
.ExitYtm;
}
}
row.ExitYtm = exitYtm?.ToString("0.0000") ?? string.Empty;
row.Quantity = flowEventGroup.Quantity.ToString("0.00");
row.PosiNotionalValue = PosiNotionalValue.ToString("0.00");