From 3a1b00b6c32b15f691ec3c1ca8bbe0920382de4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=94=A6=E9=BA=9F=20=E7=8E=8B?= <2452821485@qq.com> Date: Tue, 6 May 2025 11:11:22 +0800 Subject: [PATCH] =?UTF-8?q?BugFix=20=E4=BA=A4=E6=98=93=E8=B4=B9=E7=8E=87?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BD=BF=E7=94=A8=E6=B1=87=E6=80=BB=E5=80=BC?= =?UTF-8?q?=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TradeConfirmationGenerator.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeConfirmationGenerator.cs b/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeConfirmationGenerator.cs index 0770cfc8..0f7a00bb 100644 --- a/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeConfirmationGenerator.cs +++ b/Plugins/YLErp.Plugins.ZheShang/DocumentGenerator/TradeConfirmationGenerator.cs @@ -1,6 +1,7 @@ using Microsoft.VisualBasic; using Newtonsoft.Json.Linq; using NPOI.SS.Formula.Functions; +using System.Diagnostics; using System.Net.Http.Headers; using System.Text.RegularExpressions; using YLErp.Core.Helpers; @@ -113,6 +114,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator var trades = Context.Trades; var totalPosiQuantity = 0.0; var StockEqvNotionalRealSum = 0.0; + var PosiTradingFeePending = 0.0; var allSwapPositions = Context.GetSwapPositions(trades.Select(x => x.id).ToList(), true); var allinterestMargins = allSwapPositions.Where(x => ConsTrade.InterestModels.Contains(x.InterestMode)); foreach (var trade in trades) @@ -142,8 +144,6 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator dic["到期日期"] = trade.ExerciseDate?.ToString("yyyy年M月d日"); bool posiLong = swapPosition?.PositionType == (int)PositionTypeFlag.Short ? false : true; var interestRate = interestMargin?.InterestRateDefault * 100 ?? 0; - var basicFee = (trade.OriginalStockEqvNotional ?? 0) == 0 ? 0 : ((double)((swapPosition?.PosiTradingFeePending) ?? 0) / (trade.OriginalStockEqvNotional ?? 0)) * 100; - dic["基本费率"] = (basicFee * 2).ToString("f4"); dic["交易费用"] = (double)((swapPosition?.PosiTradingFeePending * 2) ?? 0); dic["多头约定利率"] = "不适用"; dic["空头约定利率"] = "不适用"; @@ -200,7 +200,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator //dic["计算基准"] = calculationBasis; dic["初始保障金率"] = ((clientMarginRate?.InitMarginRate ?? 0) * 100).ToString("0.####") + "%"; dic["维持保障金率"] = ((clientMarginRate?.MaintenanceRate ?? 0) * 100).ToString("0.####") + "%"; - dic["交易费率"] = dic["基本费率"]; + //var initialMarginSum = initialMarginQuery.Sum(x => // x.InterestDirection == 2 ? x.InterestPrincipalFix * -1 : x.InterestPrincipalFix); //dic["期初预付金".Insert("期初预付金".Length, "2?")] = initialMarginSum.ToString("0.##"); @@ -221,7 +221,7 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator //row["利差"] = ((interestMargin?.InterestRateDefault) ?? 0) * 100; //var basicFee = trade.StockEqvNotionalReal == 0 ? 0 : ((double)((swapPosition?.PosiTradingFeePending) ?? 0) / trade.StockEqvNotionalReal) * 100; //row["基本费率"] = (basicFee * 2).ToString("f4"); - + PosiTradingFeePending += (double)((swapPosition?.PosiTradingFeePending) ?? 0); FormatToDict("交易费用", (double)((swapPosition?.PosiTradingFeePending * 2) ?? 0), row); row["期初预付金利率"] = ((initialMarginQuery.FirstOrDefault()?.InterestRateDefault) ?? 0) * 100; @@ -253,9 +253,12 @@ namespace YLErp.Plugins.ShanXi.DocumentGenerator _ => "" }; table1.Add(row); - dic["名义本金".Insert("名义本金".Length, "2?")] = StockEqvNotionalRealSum.ToString("0.##"); - dic["期初预付金".Insert("期初预付金".Length, "2?")] = (StockEqvNotionalRealSum * clientMarginRate?.InitMarginRate)?.ToString("0.##"); } + var basicFee = (StockEqvNotionalRealSum == 0 ? 0 : (PosiTradingFeePending / StockEqvNotionalRealSum * 100)); + dic["基本费率"] = (basicFee * 2).ToString("f4"); + dic["交易费率"] = dic["基本费率"]; + dic["名义本金".Insert("名义本金".Length, "2?")] = StockEqvNotionalRealSum.ToString("0.##"); + dic["期初预付金".Insert("期初预付金".Length, "2?")] = (StockEqvNotionalRealSum * clientMarginRate?.InitMarginRate)?.ToString("0.##"); clientduties = clientduties.Where(x => x.ContactTypeId.Contains("3")).OrderBy(o => o.id).ToList();//交易确认书邮件接收人