test(swap): 为债券TRS期间结算自动互换10场景补单测 + SaveAutoSwapDeal接缝可测化

- 新增 BondTrsAutoSwapScenarioTest:覆盖测试场景/测试场景-0702复测两页
  10个自动互换场景(含付息日历登记日2/28→支付日3/2、资金发生日3/3/3/4)、
  部分平仓后按登记日持仓数量计算(剩余60%为54240)、同日多腿合并、
  分红支付日偏移、无结算观察日不得凭空产生互换等,共11条断言全绿。
- SaveAutoSwapDeal 改为走 AddClientCash/AddSwapEvent/PersistFlowEvent 接缝
  (默认实现与重构前行为一致,零行为变更);UpdateInitalPostion 由 private
  改 protected virtual;GetPreDealDate 改 virtual,便于无DB单测。
This commit is contained in:
hjhan
2026-08-08 13:32:22 +08:00
parent 5ca297a73c
commit 096d2609eb
3 changed files with 559 additions and 8 deletions
@@ -284,7 +284,7 @@ namespace YLErp.Modules.SwapModule
/// <param name="valueDate"></param>
/// <param name="eventTypes"></param>
/// <returns></returns>
public DateTime? GetPreDealDate(int tradeId, DateTime valueDate, List<int> eventTypes)
public virtual DateTime? GetPreDealDate(int tradeId, DateTime valueDate, List<int> eventTypes)
{
Expression<Func<swap_event, bool>> eventExpression = x => x.SwapTradeId == tradeId && x.ValueDate <= valueDate && !x.Invalid && eventTypes.Contains(x.EventType);
var swapEvent = DbContext.swap_event.Where(eventExpression).OrderByDescending(o => o.ValueDate).FirstOrDefault();