diff --git a/YLErpWeb/App/KafkaTask/CashCalcConsumerKafkaTask.cs b/YLErpWeb/App/KafkaTask/CashCalcConsumerKafkaTask.cs
deleted file mode 100644
index f4f9b5ff..00000000
--- a/YLErpWeb/App/KafkaTask/CashCalcConsumerKafkaTask.cs
+++ /dev/null
@@ -1,113 +0,0 @@
-using Newtonsoft.Json;
-using YLErp.Abstract;
-using YLErp.BLL.Eod;
-using YLErp.Cache;
-using YLErp.Helpers;
-using YLErp.Modules.ClientModule;
-using YLErp.Modules.EodModule.QueryModule;
-using YLErp.Modules.SwapModule;
-
-namespace YLErp.Web.App.KafkaTask
-{
- ///
- /// TRS资金计算消费
- ///
- public class CashCalcConsumerKafkaTask : IHostedService, IDisposable
- {
- private readonly IYcLogger _logger;
- private readonly CancellationTokenSource _cts = new CancellationTokenSource();
- private KafkaConsumerHelper _cashCalcConsumer;
- private string cashCalcTopic = string.Empty;
- private string cashCalcGroupId = string.Empty;
- private string onRspAccountCapitalTopic=string.Empty;
- private IYLCache _yLCache;
- private IKafkaProduce kafkaProduceHelper;
- public CashCalcConsumerKafkaTask(IYLCache yLCache, IKafkaProduce kafkaProduce)
- {
- _logger = LogFactory.GetLogger("CashCalcConsumerKafkaTask");
- cashCalcTopic = Environment.GetEnvironmentVariable("KafkaConfig_YiLian_CashCalcConsumerTopic");
- cashCalcGroupId = Environment.GetEnvironmentVariable("KafkaConfig_YiLian_CashCalcConsumerGroup");
- onRspAccountCapitalTopic = Environment.GetEnvironmentVariable("KafkaConfig_OnRspAccountCapitalTopic");
- _cashCalcConsumer = new KafkaConsumerHelper(cashCalcGroupId, cashCalcTopic);
- _yLCache = yLCache;
- kafkaProduceHelper = kafkaProduce;
- }
-
- public void Dispose()
- {
- _cts.Dispose();
- }
-
- public Task StartAsync(CancellationToken cancellationToken)
- {
- Task.Run(() => ExecuteTask(_cts.Token), _cts.Token);
- return Task.CompletedTask;
- }
-
- public async Task StopAsync(CancellationToken cancellationToken)
- {
- _cts.Cancel();
- await Task.CompletedTask;
- }
-
- private void ExecuteTask(CancellationToken cancellationToken)
- {
- while (!cancellationToken.IsCancellationRequested)
- {
- try
- {
- _cashCalcConsumer.Subscribe(msg =>
- {
- if (!string.IsNullOrEmpty(msg))
- {
- var result = JsonHelper.Deserialize(msg);
- if (result == null)
- {
- _logger.Error("资金计算失败", new Exception("缺少客户信息"));
- return;
- }
- using var clientDb = new ClientDBContext();
- var client = clientDb.client.FirstOrDefault(x => x.id == result.clientId);
- if (client == null || client.SwapTradeType == 0)
- {
- _logger.Error("资金计算失败", new Exception("找不到客户信息或客户不是dma"));
- return;
- }
- //系统交易日
- var valuedate = valuedateBLL.ValueDate;
- //获取根据系统时间
- var lastBalanceDate = EodOperationBase.GetLastSettlementDate(valuedate);
- var cbs = new RealTimeClientBanlanceService(new OptUserInfo(0, "实时客户资金服务", OptUserFrom.Service)).GetBanlances(new List() { result.clientId }, valuedateBLL.ValueDate, calcDate: valuedateBLL.ValueDate);
- var cb = cbs.FirstOrDefault();
- if (cb!=null)
- {
- cb.AvailableAmount = cb.AmountFund + cb.TotalCredit + cb.PayableMargin + cb.GuaranteesTotalAmount;
- var obj = new ClientBalanceForTrsResponse
- {
- TotalAmountTotal = cb.RoundedTotalAmountTotal,
- AvailableAmount = Math.Round(cb.AvailableAmount, 2),
- PositionPv = cb.RoundedPositionPv,
- PositionPnl = cb.RoundedPositionPnl,
- DaliyPnl = Math.Round(cb.DaliyPnl, 2),
- ClientId = client.id,
- ClientType = cb.ClientType,
- Credit = cb.TotalCredit
- };
- if (_yLCache != null)
- {
- _yLCache.StringSet("ClientBalance:" + cb.ClientId, obj);
- }
- kafkaProduceHelper.Produce(onRspAccountCapitalTopic, JsonConvert.SerializeObject(obj));
- }
-
- }
- });
- }
- catch (Exception ex)
- {
- _logger.Error("CashCalcConsumerKafkaTask Exception", ex);
- }
- }
- }
- }
-}
diff --git a/YLErpWeb/App/KafkaTask/CashNoticeConsumerKafkaTask.cs b/YLErpWeb/App/KafkaTask/CashNoticeConsumerKafkaTask.cs
deleted file mode 100644
index b94cfdfc..00000000
--- a/YLErpWeb/App/KafkaTask/CashNoticeConsumerKafkaTask.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using Newtonsoft.Json;
-using YLErp.Abstract;
-using YLErp.BLL.Eod;
-using YLErp.Cache;
-using YLErp.Helpers;
-using YLErp.Modules.ClientModule;
-using YLErp.Modules.SwapModule;
-
-namespace YLErp.Web.App.KafkaTask
-{
- ///
- /// TRS资金通知消费
- ///
- public class CashNoticeConsumerKafkaTask : IHostedService, IDisposable
- {
- private readonly IYcLogger _logger;
- private readonly CancellationTokenSource _cts = new CancellationTokenSource();
- private KafkaConsumerHelper _cashNoticeConsumer;
- private string cashNoticeTopic = string.Empty;
- private string cashNoticeGroupId = string.Empty;
- private IYLCache _yLCache;
- private IKafkaProduce kafkaProduceHelper;
- public CashNoticeConsumerKafkaTask(IYLCache yLCache, IKafkaProduce kafkaProduce)
- {
- _logger = LogFactory.GetLogger("CashNoticeConsumerKafkaTask");
- cashNoticeTopic = Environment.GetEnvironmentVariable("KafkaConfig_YiLian_CashNoticeConsumerTopic");
- cashNoticeGroupId = Environment.GetEnvironmentVariable("KafkaConfig_YiLian_CashNoticeConsumerGroup");
- _cashNoticeConsumer = new KafkaConsumerHelper(cashNoticeGroupId, cashNoticeTopic);
- _yLCache = yLCache;
- kafkaProduceHelper = kafkaProduce;
- }
-
- public void Dispose()
- {
- _cts.Dispose();
- }
-
- public Task StartAsync(CancellationToken cancellationToken)
- {
- Task.Run(() => ExecuteTask(_cts.Token), _cts.Token);
- return Task.CompletedTask;
- }
-
- public async Task StopAsync(CancellationToken cancellationToken)
- {
- _cts.Cancel();
- await Task.CompletedTask;
- }
-
- private void ExecuteTask(CancellationToken cancellationToken)
- {
- while (!cancellationToken.IsCancellationRequested)
- {
- try
- {
- var service = new SwapConsumerService(OptUserInfo.SystemUser);
- service.SetKafKaProduce(kafkaProduceHelper);
- }
- catch (Exception ex)
- {
- _logger.Error("CashNoticeConsumerKafkaTask Exception", ex);
- }
- }
- }
- }
-}
diff --git a/YLErpWeb/Program.cs b/YLErpWeb/Program.cs
index c702dc22..24854a07 100644
--- a/YLErpWeb/Program.cs
+++ b/YLErpWeb/Program.cs
@@ -106,9 +106,6 @@ try
builder.Services.AddHostedService();
builder.Services.AddHostedService();
- builder.Services.AddHostedService();
- builder.Services.AddHostedService();
-
builder.Services.AddHostedService();
builder.Services.AddHostedService();
diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/SwapflowList.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/SwapflowList.js
index 0f4ace36..3ae3ed69 100644
--- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/SwapflowList.js
+++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/SwapflowList.js
@@ -51,6 +51,11 @@ function CombookingHub() {
$('#msg').text(msg);
getList();
});
+ // 监听连接关闭,启动启动重连
+ bookconnection.Closed += async (error) => {
+ await Task.Delay(3 * 1000);
+ await bookconnection.StartAsync();
+ };
}
// 流水重置交互
function ResetHub() {
@@ -94,6 +99,11 @@ function ResetHub() {
layer.close(progressBar);
getList();
});
+ // 监听连接关闭,启动启动重连
+ connection.Closed += async (error) => {
+ await Task.Delay(3 * 1000);
+ await connection.StartAsync();
+ };
}
//标的选择组件
const vueUnderlying = function () {