增加交易唯一码,方便在网络状态不佳的情况下重新获取操作结果

This commit is contained in:
qmj
2026-05-26 08:45:24 +08:00
parent 8208ba7488
commit 42e6579447
30 changed files with 2891 additions and 374 deletions
@@ -3,15 +3,14 @@ using Microsoft.Extensions.Caching.Memory;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Http;
using Antlr.Runtime;
using UFIDA.U8.Framework.Api.ControlObject.AA;
using UFIDA.U8.Framework.Api.ControlObject.AA.U8PzInsert;
using UFIDA.U8.Framework.Api.ControlObject.Entity;
using UFIDA.U8.Framework.Api.ControlObject.Json;
using UFIDA.U8.Framework.Api.ControlObject.U8M;
using UFIDA.U8.Framework.Api.Entity;
using UFIDA.U8.Framework.Api.Unit;
// ReSharper disable InconsistentNaming
@@ -217,8 +216,8 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
};
return await BaseLoad(cAccId, "CustomerClass", dict, input);
}
}
/// <summary>
/// 查询人员档案
/// </summary>
@@ -261,7 +260,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
/// </summary>
/// <returns></returns>
[NonAction]
public async Task<BaseResult<dynamic>> BaseLoad(string cAccId, string tableName,Dictionary<string,string> tables, [FromBody] Dictionary<string, object> input=null)
public async Task<BaseResult<dynamic>> BaseLoad(string cAccId, string tableName, Dictionary<string, string> tables, [FromBody] Dictionary<string, object> input = null)
{
var workId = SnowFlakeSingle.Instance.NextId();
@@ -306,7 +305,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
}
});
var colList = new Dictionary<string,string>();
var colList = new Dictionary<string, string>();
var query = db.Queryable<dynamic>();
var bFirst = true;
@@ -320,7 +319,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var cols = db.DbMaintenance.GetColumnInfosByTableName(table.Key);
if(cols != null && cols.Count > 0)
if (cols != null && cols.Count > 0)
{
foreach (var col in cols.Where(col => !colList.Any(a => string.Equals(a.Key, col.DbColumnName, StringComparison.CurrentCultureIgnoreCase))))
{
@@ -347,7 +346,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
{
if ($"{o.Value}".EndsWith("%") || $"{o.Value}".StartsWith("%"))
{
if (colList.Any(a=>string.Equals(a.Key, o.Key,StringComparison.OrdinalIgnoreCase) || string.Equals(a.Value, o.Key, StringComparison.OrdinalIgnoreCase)))
if (colList.Any(a => string.Equals(a.Key, o.Key, StringComparison.OrdinalIgnoreCase) || string.Equals(a.Value, o.Key, StringComparison.OrdinalIgnoreCase)))
{
var col = colList.First(a =>
string.Equals(a.Key, o.Key, StringComparison.OrdinalIgnoreCase) ||
@@ -432,5 +431,60 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
}
}
/// <summary>
/// 新增项目大类
/// </summary>
/// <param name="cAccId"></param>
/// <param name="cCardNum"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[Route("api/U8/AA/{cCardNum}/Add")]
public async Task<BaseResult<string>> Fitem_Add(string cAccId, string cCardNum, [FromBody] Dictionary<string, object> input)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
_logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{cAccId},数据:{input.ToJson()}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
_logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
var co = new IFitem();
var res = await co.Transact(baseLogin, "", null);
return res;
}
catch (Exception ex)
{
_logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
}
}
}
}