diff --git a/UnitTestProject/Modules/SwapModule/BondTrsAutoSwapScenarioTest.cs b/UnitTestProject/Modules/SwapModule/BondTrsAutoSwapScenarioTest.cs
index e9b542c8..85052b9c 100644
--- a/UnitTestProject/Modules/SwapModule/BondTrsAutoSwapScenarioTest.cs
+++ b/UnitTestProject/Modules/SwapModule/BondTrsAutoSwapScenarioTest.cs
@@ -124,6 +124,17 @@ namespace YLErp.Modules.SwapModule
return new swap_event { id = SwapEvents.Count };
}
+ ///
+ /// 捕获 SaveAutoSwapDeal 落库的 flow_event(生产写 DbContext.swap_flow_event)。
+ /// 同步到 PersistedFlowEvents 供 AS_009/010/011 断言;基类 FlowEvents 仍由它填充,
+ /// 供 GetConsumedInterest 真实计算已结利息。
+ ///
+ protected override void PersistFlowEvent(swap_flow_event flowEvent)
+ {
+ base.PersistFlowEvent(flowEvent);
+ PersistedFlowEvents.Add(flowEvent);
+ }
+
///
/// 利息腿金额直接给定(付息金额),避免把 GetInterests 的计息细节混入本用例——
/// 本文件关注的是「自动互换是否触发 / 几条 / 资金发生日 / 金额量级」,
diff --git a/UnitTestProject/Modules/SwapModule/TestableSwapEodPositionService.cs b/UnitTestProject/Modules/SwapModule/TestableSwapEodPositionService.cs
index 55518401..ce5faa45 100644
--- a/UnitTestProject/Modules/SwapModule/TestableSwapEodPositionService.cs
+++ b/UnitTestProject/Modules/SwapModule/TestableSwapEodPositionService.cs
@@ -62,7 +62,7 @@ namespace YLErp.Modules.SwapModule
/// 捕获真实收盘产生的 swap_flow_event(生产写 DbContext.swap_flow_event)。
/// 与 PersistEodSwapPosition 同理,这里只收集不写库,供 GetConsumedInterest 真实计算。
///
- protected void PersistFlowEvent(swap_flow_event flowEvent)
+ protected override void PersistFlowEvent(swap_flow_event flowEvent)
{
if (flowEvent.id == 0) flowEvent.id = _nextId++;
FlowEvents.Add(flowEvent);
diff --git a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs
index d42fc903..9bf583aa 100644
--- a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs
+++ b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs
@@ -134,6 +134,12 @@ namespace YLErp.Modules.SwapModule
return new SwapEventService(this).AddSwapEventDate(tradeDate, swapTradeId, eventType, data, clientCashId, save, reason);
}
+ /// 持久化互换流水事件(生产: DbContext.swap_flow_event.Add;测试: 收集到列表)
+ protected virtual void PersistFlowEvent(swap_flow_event flowEvent)
+ {
+ DbContext.swap_flow_event.Add(flowEvent);
+ }
+
/// 在事务中执行(生产: BeginTransaction/Commit/Rollback;测试: 直接执行不包事务)
protected virtual void ExecuteInTransaction(Action action)
{
@@ -738,24 +744,26 @@ namespace YLErp.Modules.SwapModule
unwindData.ClientCashIds = clientCashIds;
string data = JsonConvert.SerializeObject(unwindData);
- var swapEvent = new SwapEventService(this).AddSwapEventDate(unwindData.ValueDate, unwindData.SwapTradeId, (int)SwapEventTypeEnum.自动互换, data, clientCashId, true, "系统操作-自动互换");//将互换总额存入事件
+ // 走虚方法 AddSwapEvent(与 ComposePage:800 一致),让测试可 override 捕获事件;
+ // 默认实现仍是 new SwapEventService(this).AddSwapEventDate,生产行为不变。
+ var swapEvent = AddSwapEvent(unwindData.ValueDate, unwindData.SwapTradeId, (int)SwapEventTypeEnum.自动互换, data, clientCashId, true, "系统操作-自动互换");//将互换总额存入事件
if (flowEvents!=null)
{
flowEvents.ForEach(x =>
{
x.EventId = swapEvent.id;
- DbContext.swap_flow_event.Add(x);
+ PersistFlowEvent(x);
});
UpdateInitalPostion(flowEvents, td.id);
}
-
+
// 保存分红事件
if (dividendEvents != null)
{
dividendEvents.ForEach(x =>
{
x.EventId = swapEvent.id;
- DbContext.swap_flow_event.Add(x);
+ PersistFlowEvent(x);
});
UpdateInitalPostion(dividendEvents, td.id);
}