diff --git a/YLErpDAL/BLL/EodSettlement/ClientBalanceUtility.cs b/YLErpDAL/BLL/EodSettlement/ClientBalanceUtility.cs index 2f14ab3f..6edaf639 100644 --- a/YLErpDAL/BLL/EodSettlement/ClientBalanceUtility.cs +++ b/YLErpDAL/BLL/EodSettlement/ClientBalanceUtility.cs @@ -1428,21 +1428,12 @@ namespace YLErp.BLL.EodSettlement foreach (var item in clientEodSwaps.GroupBy(x => x.SwapTradeId)) { - var eventPosi = item.FirstOrDefault(t => t.PayDirection > 0); + var eventPosis = item.Where(t => t.PayDirection > 0).ToList(); var eventInterests = item.Where(t => t.PayDirection == 0).ToList(); - - foreach (var interest in eventInterests) - { - double ratio = interest.InterestDirection == (int)SwapDirectionEnum.收取 ? 1 : -1;//收取为正,支付为负 - if (marginTypes.Contains(interest.InterestMode)) - { - ratio = -ratio; - } - interestPnl += Convert.ToDouble(interest.InterestClosePnL) * (-1); - } + interestPnl += Convert.ToDouble(eventInterests.Sum(s=>s.InterestClosePnL)) * (-1); - tradeFee += Convert.ToDouble(eventPosi.TradingFee+ eventPosi.TradingFeePending) * (-1); + tradeFee += Convert.ToDouble(eventPosis.Sum(s=>s.TradingFee+s.TradingFeePending)) * (-1); } clientBalance.trade_fee = tradeFee; clientBalance.interest_pnl = interestPnl; diff --git a/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs b/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs index b7968f1a..102162b0 100644 --- a/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs +++ b/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs @@ -839,13 +839,11 @@ namespace YLErp.Modules.EodModule.SettlementModule var clientEventFlowList = clientEventFlows.Where(x=>x.ClientId== client.id); foreach (var item in clientEventFlowList.GroupBy(x => x.SwapTradeId)) { - var eventPosi = item.FirstOrDefault(t => t.PayDirection > 0); - + var eventPosis = item.Where(t => t.PayDirection > 0).ToList(); var eventInterests = item.Where(t => t.PayDirection == 0).ToList(); + interestPnl += Convert.ToDouble(eventInterests.Sum(s => s.InterestClosePnL)) * (-1); - interestPnl += Convert.ToDouble(eventInterests.Sum(x=>x.InterestClosePnL)) * (-1); - - tradeFee += Convert.ToDouble(eventPosi.TradingFee + eventPosi.TradingFeePending) * (-1); + tradeFee += Convert.ToDouble(eventPosis.Sum(s => s.TradingFee + s.TradingFeePending)) * (-1); } var clientmarignQuery = marignQuery.Where(x => x.ClientId == client.id&&x.StructureType!="多空组合"); SwapMarinAmount = Convert.ToDouble(clientmarignQuery.Sum(s => s.marin));