diff --git a/YLErpDAL/Modules/SwapModule/SwapRateService.cs b/YLErpDAL/Modules/SwapModule/SwapRateService.cs index 26184c06..3b6ac440 100644 --- a/YLErpDAL/Modules/SwapModule/SwapRateService.cs +++ b/YLErpDAL/Modules/SwapModule/SwapRateService.cs @@ -107,8 +107,8 @@ namespace YLErp.Modules.SwapModule swapRate.DiscountRateIsPercent = req.DiscountRateIsPercent; swapRate.DiscountRate = req.DiscountRate; swapRate.FrontDeskCharge = req.FrontDeskCharge; - swapRate.FrontDeskChargeIsPercent=req.FrontDeskChargeIsPercent; - swapRate.BackDeskCharge=req.BackDeskCharge; + swapRate.FrontDeskChargeIsPercent = req.FrontDeskChargeIsPercent; + swapRate.BackDeskCharge = req.BackDeskCharge; swapRate.BackDeskChargeIsPercent = req.BackDeskChargeIsPercent; swapRate.SetOpt(UserId, UserName); } @@ -227,34 +227,55 @@ namespace YLErp.Modules.SwapModule var tempRate = reader.GetString("临时费率"); if (!string.IsNullOrEmpty(tempRate)) { + decimal rate = 0; if (tempRate.EndsWith("%")) { swapRate.TempRateIsPercent = true; tempRate = tempRate.Replace("%", ""); + decimal.TryParse(tempRate, out rate); + rate = rate / 100; + } + else + { + swapRate.TempRateIsPercent = false; + decimal.TryParse(tempRate, out rate); } - decimal.TryParse(tempRate, out var rate); swapRate.TempRate = rate; } var baseRate = reader.GetString("基础费率"); if (!string.IsNullOrEmpty(baseRate)) { + decimal rate = 0; if (baseRate.EndsWith("%")) { swapRate.BaseRateIsPercent = true; baseRate = baseRate.Replace("%", ""); + decimal.TryParse(baseRate, out rate); + rate = rate / 100; + } + else + { + swapRate.BaseRateIsPercent = false; + decimal.TryParse(baseRate, out rate); } - decimal.TryParse(baseRate, out var rate); swapRate.BaseRate = rate; } var disAccRate = reader.GetString("优惠费率"); if (!string.IsNullOrEmpty(disAccRate)) { + decimal rate = 0; if (disAccRate.EndsWith("%")) { swapRate.DiscountRateIsPercent = true; disAccRate = disAccRate.Replace("%", ""); + decimal.TryParse(disAccRate, out rate); + rate = rate / 100; + } + else + { + swapRate.DiscountRateIsPercent = false; + decimal.TryParse(disAccRate, out rate); } - decimal.TryParse(disAccRate, out var rate); swapRate.DiscountRate = rate; } var frontRate = reader.GetString("现券对冲交易费用"); @@ -265,7 +286,8 @@ namespace YLErp.Modules.SwapModule swapRate.FrontDeskChargeIsPercent = true; frontRate = frontRate.Replace("‱", ""); } - decimal.TryParse(frontRate, out var rate); + + decimal.TryParse(frontRate, out var rate); swapRate.FrontDeskCharge = rate * 0.0001m; } var backRate = reader.GetString("现券对冲结算费用"); @@ -277,7 +299,7 @@ namespace YLErp.Modules.SwapModule backRate = backRate.Replace("‱", ""); } decimal.TryParse(backRate, out var rate); - swapRate.BackDeskCharge = rate*0.0001m; + swapRate.BackDeskCharge = rate * 0.0001m; } swapRate.DiscountAccDown = reader.GetDecimal("优惠累计量下限"); ValidateSwapRate(swapRate); @@ -321,7 +343,7 @@ namespace YLErp.Modules.SwapModule exportModel.TempRate = item.TempRateIsPercent ? item.TempRate.OtcFormatPercent(4) : item.TempRate.OtcFormatMoney(true); exportModel.DiscountRate = item.DiscountRateIsPercent ? item.DiscountRate.OtcFormatPercent(4) : item.DiscountRate.OtcFormatMoney(true); exportModel.DiscountAccDown = item.DiscountAccDown.OtcFormatMoney(true); - exportModel.FrontDeskCharge= item.FrontDeskChargeIsPercent==true ? item.FrontDeskCharge.OtcFormatTenThousandsPercent(4) : item.FrontDeskCharge.OtcFormatMoney(true); + exportModel.FrontDeskCharge = item.FrontDeskChargeIsPercent == true ? item.FrontDeskCharge.OtcFormatTenThousandsPercent(4) : item.FrontDeskCharge.OtcFormatMoney(true); exportModel.BackDeskCharge = item.BackDeskChargeIsPercent == true ? item.BackDeskCharge.OtcFormatTenThousandsPercent(4) : item.BackDeskCharge.OtcFormatMoney(true); list.Add(exportModel); } @@ -363,11 +385,11 @@ namespace YLErp.Modules.SwapModule var posiNotionalValueGroup = DbContext.trade.Where(x => x.TradeDate >= monthStart && x.ValidState != ConsGlobal.InValid && x.TradeType == "收益互换" - && ConsTrade.TradeStatusCustomexport.Contains(x.TradeStatus)).ToList().GroupBy(x=>x.ClientId); + && ConsTrade.TradeStatusCustomexport.Contains(x.TradeStatus)).ToList().GroupBy(x => x.ClientId); foreach (var swapRate in swapRates) { - var clientPosiNotional = posiNotionalValueGroup.FirstOrDefault(x=>x.Key== swapRate.ClientId).ToList().Sum(s=>s.OriginalStockEqvNotional??0); - SendToKafka(swapRate, clientPosiNotional); + var clientPosiNotional = posiNotionalValueGroup.FirstOrDefault(x => x.Key == swapRate.ClientId).ToList().Sum(s => s.OriginalStockEqvNotional ?? 0); + SendToKafka(swapRate, clientPosiNotional); } } /// @@ -398,13 +420,13 @@ namespace YLErp.Modules.SwapModule swapRateKafkaModel.isRate = swapRate.BaseRateIsPercent; swapRateKafkaModel.rate = swapRate.BaseRate ?? 0; swapRateKafkaModel.disRateDown = swapRate.DiscountAccDown ?? 0; - if (swapRate.DiscountAccDown.HasValue&&Convert.ToDecimal(clientPosiNotional)>= swapRateKafkaModel.disRateDown) + if (swapRate.DiscountAccDown.HasValue && Convert.ToDecimal(clientPosiNotional) >= swapRateKafkaModel.disRateDown) { swapRateKafkaModel.isDisRate = swapRate.DiscountRateIsPercent; - swapRateKafkaModel.disRate= swapRate.DiscountRate ?? 0; + swapRateKafkaModel.disRate = swapRate.DiscountRate ?? 0; swapRateKafkaModel.rate = swapRateKafkaModel.disRate; } - + } kafkaProduceHelper.Produce(Environment.GetEnvironmentVariable("KafkaConfig_ClientRateTopic"), JsonConvert.SerializeObject(swapRateKafkaModel)); } diff --git a/YLErpWeb/App_Docs/导入模板/阶梯费率导入模板.xlsx b/YLErpWeb/App_Docs/导入模板/阶梯费率导入模板.xlsx index d7ffdcec..fd6df59c 100644 Binary files a/YLErpWeb/App_Docs/导入模板/阶梯费率导入模板.xlsx and b/YLErpWeb/App_Docs/导入模板/阶梯费率导入模板.xlsx differ