From 6b4e4a2d8e3c8f4d2d686832aa11386cfd1c5f66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=94=A6=E9=BA=9F=20=E7=8E=8B?= Date: Wed, 17 Dec 2025 13:58:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BC=B0=E5=80=BC=E5=8D=95=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E4=BB=8E=E4=BA=A4=E6=98=93=E6=97=A5=E5=88=B0=E8=B5=B7?= =?UTF-8?q?=E5=A7=8B=E6=97=A5=E7=9A=84=E4=BA=92=E6=8D=A2=E4=BC=B0=E5=80=BC?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EodModule/SettlementModule/EodClientBalanceCalc.cs | 4 ++-- YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs b/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs index 207d5eea..afe7d581 100644 --- a/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs +++ b/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs @@ -123,11 +123,11 @@ namespace YLErp.Modules.EodModule.SettlementModule } // 互换合约估值信息 var eodSwapQuery = from eod in DbContext.eod_swap.Where(x => x.ValueDate <= balanceDate && x.ValueDate >= preBalanceDate) - join t in DbContext.trade.Where(x => x.TradeType == "收益互换" && x.ValidState != ConsGlobal.InValid && ConsTrade.TradeStatusAfterConfirmed.Contains(x.TradeStatus) && x.StartDate <= balanceDate) on eod.SwapTradeId equals t.id + join t in DbContext.trade.Where(x => x.TradeType == "收益互换" && x.ValidState != ConsGlobal.InValid && ConsTrade.TradeStatusAfterConfirmed.Contains(x.TradeStatus) && x.TradeDate <= balanceDate) on eod.SwapTradeId equals t.id select eod; // 互换合约估值持仓信息 var eodSwapPosiQuery = from eod in DbContext.eod_swap_position.Where(x => x.ValueDate <= balanceDate && x.ValueDate >= preBalanceDate) - join t in DbContext.trade.Where(x => x.TradeType == "收益互换" && x.ValidState != ConsGlobal.InValid && ConsTrade.TradeStatusAfterConfirmed.Contains(x.TradeStatus) && x.StartDate <= balanceDate) on eod.SwapTradeId equals t.id + join t in DbContext.trade.Where(x => x.TradeType == "收益互换" && x.ValidState != ConsGlobal.InValid && ConsTrade.TradeStatusAfterConfirmed.Contains(x.TradeStatus) && x.TradeDate <= balanceDate) on eod.SwapTradeId equals t.id select eod; var positionList = DbContext.trade.Where(t => (ConsTrade.TradeStatusAfterConfirmed.Contains(t.TradeStatus)||t.UnWindDate> balanceDate) && t.ValidState != "InValid"&&t.TradeType=="收益互换"); var marignQuery = from t in positionList diff --git a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs index 7a397fd5..675129c2 100644 --- a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs @@ -1881,7 +1881,7 @@ namespace YLErp.Modules.SwapModule if (req.ValueDate != null) { predicate = predicate.And(x => x.ValueDate == req.ValueDate); - tradePredicate = tradePredicate.And(x => req.ValueDate >= x.StartDate); + tradePredicate = tradePredicate.And(x => req.ValueDate >= x.TradeDate); } var positionQuery = DbContext.eod_swap_position.Where(predicate); var tradeQuery = DbContext.trade.Where(tradePredicate); @@ -1921,7 +1921,7 @@ namespace YLErp.Modules.SwapModule { eventDate = QdpCalendarHelper.GetNonHoliday(eventDate.AddDays(tradeExtend.ExtendObj.SettlementRules)); } - item.DayCount = (eventDate - item.position.PosiStartDate).Days + 1; + item.DayCount = Math.Max(0,(eventDate - item.position.PosiStartDate).Days + 1); //item.position.PosiProfitSum += item.position.VTradingFee-item.position.PosiFeePending; SetClientEodPosition(item.position); //item.position.PosiProfitSum += item.TradingFee;