From 787368a1712cda50045270db41f6fa4a9c04f15a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=B9=E6=B5=B7?= Date: Thu, 29 May 2025 13:47:49 +0800 Subject: [PATCH] =?UTF-8?q?TRS-ZS-460=20=E6=AF=8F=E6=97=A5=E4=BC=B0?= =?UTF-8?q?=E5=80=BC=E6=8A=A5=E5=91=8A=EF=BC=8C=E5=8D=95=E8=BE=B9=E8=B4=B9?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RealTimeClientBanlanceService.cs | 2 +- .../SettlementModule/EodClientBalanceCalc.cs | 15 ++++++++++++--- .../SettlementReportFotShanXiService.cs | 2 +- .../SwapModule/SwapEodPositionService.cs | 3 ++- YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx | Bin 18328 -> 18336 bytes .../TradeMarketReport_EodPosition.js | 6 +++--- 6 files changed, 19 insertions(+), 9 deletions(-) diff --git a/YLErpDAL/BLL/EodSettlement/RealTimeClientBanlanceService.cs b/YLErpDAL/BLL/EodSettlement/RealTimeClientBanlanceService.cs index 8796d2f4..13e40b66 100644 --- a/YLErpDAL/BLL/EodSettlement/RealTimeClientBanlanceService.cs +++ b/YLErpDAL/BLL/EodSettlement/RealTimeClientBanlanceService.cs @@ -1280,7 +1280,7 @@ namespace YLErp.BLL.Eod var posiQty = eodPosi?.PosiQuantity ?? 0; var flowEvents = swapFlowEvents.Where(x => x.SwapTradeId == item.Key).ToList(); var unwindQty = flowEvents.Sum(s => s.Quantity); - var pnl = lastEodSwap.PostionValue; + var pnl = lastEodSwap.PostionValue- eodPosi?.VTradingFee+eodPosi?.PosiFeePending; decimal unwindPercent = 0; if (unwindQty != 0) { diff --git a/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs b/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs index 20106ec9..6d7ed87a 100644 --- a/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs +++ b/YLErpDAL/Modules/EodModule/SettlementModule/EodClientBalanceCalc.cs @@ -129,7 +129,10 @@ 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)) 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&&x.PosiDirection>0) + join t in DbContext.trade.Where(x => x.TradeType == "收益互换" && x.ValidState != ConsGlobal.InValid && ConsTrade.TradeStatusAfterConfirmed.Contains(x.TradeStatus)) 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 join s in DbContext.eod_swap_position on t.id equals s.SwapTradeId @@ -142,9 +145,11 @@ namespace YLErp.Modules.EodModule.SettlementModule }; var eodSwaps = eodSwapQuery.ToList(); + var eodSwapPosis = eodSwapPosiQuery.ToList(); if (reqClientIds != null && reqClientIds.Any()) { eodSwaps = eodSwaps.Where(t => reqClientIds.Contains(t.ClientId)).ToList(); + eodSwapPosis= eodSwapPosis.Where(t => reqClientIds.Contains(t.ClientId)).ToList(); marignQuery = marignQuery.Where(t => reqClientIds.Contains(t.ClientId)); } var swapIds = eodSwaps.Select(s => s.SwapTradeId); @@ -701,6 +706,7 @@ namespace YLErp.Modules.EodModule.SettlementModule //持仓交易 var positionTrades = trades.Where(t => t.TradeStatus.Equals(ConsTrade.确认成交) && t.ClientId == client.id && t.TradeType != "收益互换").ToList(); var clientEodSwaps = eodSwaps.Where(t => t.ClientId == client.id && t.ValueDate == balanceDate).ToList(); + var clientEodSwapPosis= eodSwapPosis.Where(t => t.ClientId == client.id && t.ValueDate == balanceDate).ToList(); //var tradeIds = clientTrades.Where(t => t.ClientId == client.id).Select(t => t.id).ToList(); //获取所有持仓交易ids var positionTradeIds = positionTrades == null || positionTrades.Count == 0 ? new List() : positionTrades.Select(t => t.id).ToList(); @@ -837,14 +843,17 @@ namespace YLErp.Modules.EodModule.SettlementModule } #region 收益互换V2 var clientEodSwapsLast = clientEodSwaps.ToList(); + var clientEodSwapPositionLast = clientEodSwapPosis.ToList(); foreach (var item in clientEodSwapsLast) { var lastEodSwap = eodSwaps.FirstOrDefault(t => t.SwapTradeId == item.SwapTradeId && t.ValueDate == preBalanceDate); + var lastEodSwapPosition = eodSwapPosis.FirstOrDefault(t => t.SwapTradeId == item.SwapTradeId && t.ValueDate == preBalanceDate); + var eodSwapPosition = clientEodSwapPositionLast.FirstOrDefault(t => t.SwapTradeId == item.SwapTradeId && t.ValueDate == balanceDate); PotentialSurpluses += Convert.ToDouble(item.PostionValue) * (-1); WinLoss += Convert.ToDouble(item.TdRealizedPnL) * (-1); - var lastPv = lastEodSwap != null ? Convert.ToDouble(lastEodSwap.PostionValue) * (-1) : 0; + var lastPv = lastEodSwap != null ? Convert.ToDouble(lastEodSwap.PostionValue- lastEodSwapPosition?.VTradingFee+lastEodSwapPosition?.PosiFeePending) * (-1) : 0; eodPnlSum.LastPvSum = eodPnlSum.LastPvSum.HasValue ? eodPnlSum.LastPvSum + lastPv : lastPv; - var pnl = item.PostionValue; + var pnl = item.PostionValue- eodSwapPosition?.VTradingFee+ eodSwapPosition?.PosiFeePending; eodPnlSum.PvSum = eodPnlSum.PvSum.HasValue ? eodPnlSum.PvSum - Convert.ToDouble(item.PostionValue) : Convert.ToDouble(item.PostionValue) * (-1); eodPnlSum.SellPvSum = eodPnlSum.SellPvSum.HasValue ? eodPnlSum.SellPvSum - Convert.ToDouble(item.MarketValueShort) : Convert.ToDouble(item.MarketValueShort) * (-1); eodPnlSum.RoundedPvSum = eodPnlSum.RoundedPvSum.HasValue ? eodPnlSum.RoundedPvSum - Math.Round(Convert.ToDouble(item.PostionValue), 2) : Math.Round(Convert.ToDouble(item.PostionValue), 2) * (-1); diff --git a/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs b/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs index 1e54f8b8..f057be3c 100644 --- a/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs +++ b/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs @@ -240,7 +240,7 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule PosiQuantitySum= report.EodSwapPositions.Sum(x => x.position.PosiQuantity), PeriodAmountSum= report.EodSwapPositions.Sum(x => x.PeriodAmount), InterestAmountSum= report.EodSwapPositions.Sum(x => x.InterestAmount), - VTradingFeeSum= report.EodSwapPositions.Sum(x => x.position.VTradingFee), + PosiFeePendingSum = report.EodSwapPositions.Sum(x => x.position.PosiFeePending), PosiProfitSum= report.EodSwapPositions.Sum(x => x.position.PosiProfitSum), NetSettmentAmountSum= report.EodSwapPositions.Sum(x => x.NetSettmentAmount), }); diff --git a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs index e13a929d..c0b00f33 100644 --- a/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapEodPositionService.cs @@ -1895,7 +1895,7 @@ namespace YLErp.Modules.SwapModule var posiProfitSum= item.position.PosiProfitSum; //item.position.PosiProfitSum 不需要加交易费用 item.position.PosiProfitSum = item.position.PosiProfitSum - item.position.VTradingFee-item.position.PosiDividendSum; - item.NetSettmentAmount = posiProfitSum; + item.NetSettmentAmount = item.position.PosiProfitSum+ item.position.PosiDividendSum+ item.position.PosiFeePending; item.PeriodAmount = item.position.PosiDividendSum; var margins = positions.Where(x => x.SwapTradeId == item.position.SwapTradeId); var interests = eodPositions.Where(x => x.SwapTradeId == item.position.SwapTradeId && x.ValueDate == item.position.ValueDate); @@ -1939,6 +1939,7 @@ namespace YLErp.Modules.SwapModule position.InterestProfitSum = -position.InterestProfitSum; position.PosiProfitSum = -position.PosiProfitSum; position.VTradingFee = -position.VTradingFee; + position.PosiFeePending = -position.PosiFeePending; position.SwapPositionValue = -position.SwapPositionValue; position.PosiDividendSum = -position.PosiDividendSum; } diff --git a/YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx b/YLErpWeb/App_Docs/导出模板/结算报告模板.xlsx index ded2478ed515aa1f75527bd10eb32643b60995fb..6f1c339a555b20cd46e20d4de843f1819dec14c1 100644 GIT binary patch delta 9600 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 D6-ML5 delta 9591 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 diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_EodPosition.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_EodPosition.js index 9c6b9f68..df4a8579 100644 --- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_EodPosition.js +++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/TradeMarketReport_EodPosition.js @@ -288,9 +288,9 @@ var colModelGrid = [ formatter: StockEqvNotionalFormat, sortable: false, }, { - name: 'position.VTradingFee', - label: '预估交易费用', - index: 'position.VTradingFee', + name: 'position.PosiFeePending', + label: '开仓交易费用', + index: 'position.PosiFeePending', width: 120, align: 'center', formatter: StockEqvNotionalFormat,