簿记 刷新冻结资金

This commit is contained in:
yexuzhong
2025-08-29 14:43:24 +08:00
parent 165f7c7df1
commit 816155e09f
4 changed files with 87 additions and 6 deletions
@@ -3,10 +3,13 @@ using Confluent.Kafka;
using CsvHelper;
using Dapper;
using DocumentFormat.OpenXml.Drawing;
using DocumentFormat.OpenXml.Spreadsheet;
using MoreLinq;
using Newtonsoft.Json;
using NPOI.SS.Formula.Functions;
using Org.BouncyCastle.Asn1.Ocsp;
using Qdp.ComputeServiceV2.Data.CommonModels.TradeInfos;
using Qdp.Foundation.Utilities;
using Qdp.Pricing.Base.Enums;
using Qdp.Pricing.Base.Implementations;
using System.Linq;
@@ -26,6 +29,7 @@ using YLErp.Models;
using YLErp.Modules.AppModule;
using YLErp.Modules.EodModule.QueryModule;
using YLErp.Modules.RiskModule;
using YLErp.Modules.SwapModule.Dto;
using YLErp.Modules.TradeMsgOutputModule;
using YLErp.QdpModule;
using static alglib;
@@ -461,13 +465,13 @@ namespace YLErp.Modules.SwapModule
/// </summary>
/// <param name="mergeList"></param>
/// <param name="valueDate"></param>
public void MergeAvgModeCompose(List<swap_flow_merge> mergeList, DateTime valueDate, Action<int>? action)
public Dictionary<long, List<string>> MergeAvgModeCompose(List<swap_flow_merge> mergeList, DateTime valueDate, Action<int>? action)
{
var flowquery = mergeList.GroupBy(g => g.ClientId);
var flowCount = flowquery.Count();
if (flowCount == 0)
{
return;
return null;
}
var swaptrades = DbContext.trade.Where(t => t.TradeType == "收益互换"
&& t.TradeDate <= valueDate
@@ -479,11 +483,59 @@ namespace YLErp.Modules.SwapModule
var floatRatePredicate = PredicateBuilder.Create<SwapFloatRate>(x => x.StartDate <= valueDate && x.EndDate >= matuirityDate);
var floatRateQuery = DbContext.swap_float_rate.Where(floatRatePredicate);
int dealCount = 0;
Dictionary<long,List<string>> clientUmsDic = new Dictionary<long, List<string>>();
foreach (var groupItem in flowquery)
{
MergeAvgModelItem(groupItem, swaptrades, swapPositions, floatRateQuery, ref dealCount, action);
clientUmsDic.Add(groupItem.Key ?? 0, groupItem.Select(p => p.UnderlyingCode).Distinct().ToList());
}
return clientUmsDic;
}
/// <summary>
/// 刷新冻结资金缓存
/// </summary>
/// <param name="clientUmsDic"></param>
public void refreshFrozenCashCache(Dictionary<long, List<string>> clientUmsDic)
{
if (clientUmsDic == null || clientUmsDic.Count == 0)
{
return;
}
Task.Run(() => {
try
{
//发送http请求
var baseUrl = Environment.GetEnvironmentVariable("BondOmsInterface_BaseUrl");
if (!string.IsNullOrEmpty(baseUrl))
{
var httpHelper = new HttpHelper(baseUrl, null);
var url = $"{baseUrl}/riskJob/refreshClientFrozenCash";
foreach (var item in clientUmsDic)
{
var clientId = item.Key;
var underlyingCodes = item.Value;
//请求参数
RefreshFrozenCashCacheReq req = new RefreshFrozenCashCacheReq(clientId, underlyingCodes);
// http 请求 Web项目接口
var result = httpHelper.PostRequestNoAuth<RefreshFrozenCashCacheReq, RefreshFrozenCashCacheResp>(url, req).Result;
if (result != null && !result.success)
{
LogFactory.GetLogger("刷新冻结资金").Info("刷新冻结资金:" + result.message);
}
}
}
}
catch (Exception ex)
{
LogFactory.GetLogger("刷新冻结资金").Error("刷新冻结资金:" + ex.Message);
}
});
}
public void UpdateSwapFlowState(List<swap_flow> swapFlows)
{
foreach (var item in swapFlows)