fix(swap): 修复互换实时持仓服务异常处理和结算模块计算问题
- 添加try-catch块包装RealtimeSwapPosition调用以捕获异常 - 记录互换实时持仓服务计算失败的日志 - 修复结算模块金额计算中的空引用问题 - 为unwind百分比、原始名义金额和计数比率添加空值检查
This commit is contained in:
@@ -64,7 +64,7 @@ namespace YLErp.Plugins.GuoLian.DocumentGenerator
|
||||
row["期初价格"] = currentTrade?.TradePrice.OtcFormatMoney() ?? "0.00";
|
||||
row["结算日期"] = tradeCashItem.ValueDate.ToString("yyyy/MM/dd");
|
||||
row["结算价格"] = tradeCashItem.FinalPrice.OtcFormatMoney();
|
||||
row["结算模块"] = (tradeCashItem.UnwindPercentRate * currentTrade?.OriginalNotional * underlying?.CountRatio).OtcFormatMoney() ?? "0.00";
|
||||
row["结算模块"] = ((tradeCashItem.UnwindPercentRate ?? 0) * (currentTrade?.OriginalNotional ?? 0) * (underlying?.CountRatio ?? 0)).OtcFormatMoney() ?? "0.00";
|
||||
row["结算单价"] = settlementPrice;
|
||||
|
||||
var amountQrs = -tradeCashItem.Amount;
|
||||
|
||||
@@ -1,30 +1,14 @@
|
||||
using ClosedXML.Report.Utils;
|
||||
using CsvHelper;
|
||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using MoreLinq.Extensions;
|
||||
using MoreLinq.Extensions;
|
||||
using Newtonsoft.Json;
|
||||
using OfficeOpenXml.Drawing;
|
||||
using OfficeOpenXml.Drawing.Controls;
|
||||
using Org.BouncyCastle.Asn1.Ocsp;
|
||||
using Qdp.Pricing.Base.Implementations;
|
||||
using Qdp.Pricing.Core.Modules;
|
||||
using Qdp.Pricing.Library.Base.Utilities;
|
||||
using System.Linq.Expressions;
|
||||
using YLErp.BLL;
|
||||
using YLErp.BLL.Eod;
|
||||
using YLErp.DBModels;
|
||||
using YLErp.DBModels.Enums;
|
||||
using YLErp.Model;
|
||||
using YLErp.Models;
|
||||
using YLErp.Modules.DataProviderModule;
|
||||
using YLErp.Modules.EodModule;
|
||||
using YLErp.Modules.EodModule.QueryModule;
|
||||
using YLErp.Modules.TradeModule;
|
||||
using YLErp.Modules.TradeModule.DealModule;
|
||||
using YLErp.QdpModule;
|
||||
using static Microsoft.IO.RecyclableMemoryStreamManager;
|
||||
using static YLErp.ConsGlobal;
|
||||
|
||||
namespace YLErp.Modules.SwapModule
|
||||
{
|
||||
@@ -799,7 +783,14 @@ namespace YLErp.Modules.SwapModule
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
RealtimePnlCalc.RealtimeSwapPosition(new OptUserInfo(0, "互换实时持仓服务", OptUserFrom.Service));
|
||||
try
|
||||
{
|
||||
RealtimePnlCalc.RealtimeSwapPosition(new OptUserInfo(0, "互换实时持仓服务", OptUserFrom.Service));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogFactory.GetLogger<SwapDealService>().Error("互换实时持仓服务计算失败", ex);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user