From b8a9595cc1afa66c8f33bcd2cb0a312f8ed3bde6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=95=8F=E5=81=A5=20=E9=82=B1?= Date: Wed, 23 Jul 2025 08:57:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=BD=A6=E9=97=B4=E7=AE=A1=E7=90=86=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E4=B8=BA=E5=BC=82=E6=AD=A5=202.=E6=98=8E=E7=A1=AE?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E5=88=B6=E9=80=A0=E7=9A=84=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E4=B8=BA=E5=8D=95=E8=B4=A6=E5=A5=97=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=EF=BC=8C=E5=A4=9A=E8=B4=A6=E5=A5=97=E9=87=87=E7=94=A8?= =?UTF-8?q?=E5=A4=9A=E6=9C=8D=E5=8A=A1=E7=9A=84=E5=BD=A2=E5=BC=8F=E9=83=A8?= =?UTF-8?q?=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SA/ClsVoucherCO_SA.cs | 4 +- .../U8M/BaseLogin.cs | 224 ++++++++++++++---- .../U8M/IBaseBF.cs | 4 +- .../U8M/MoRoutingBill.cs | 99 +++++--- UFIDA.U8.Framework.Api/App_Data/U8API.xml | 18 +- .../App_Data/订单报工模板.json | 21 ++ .../Controllers/U8/APController.cs | 58 ++--- .../Controllers/U8/SFCController.cs | 137 +++++++---- .../UFIDA.U8.Framework.Api.csproj | 1 + .../Unit/AssemblyDynamicLoader.cs | 9 +- UFIDA.U8.Framework.Api/Unit/RemoteLoader.cs | 9 +- UFIDA.U8.Framework.Api/Web.config | 2 +- 12 files changed, 395 insertions(+), 191 deletions(-) create mode 100644 UFIDA.U8.Framework.Api/App_Data/订单报工模板.json diff --git a/UFIDA.U8.Framework.Api.ControlObject/SA/ClsVoucherCO_SA.cs b/UFIDA.U8.Framework.Api.ControlObject/SA/ClsVoucherCO_SA.cs index 151a631..dfe9cf4 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/SA/ClsVoucherCO_SA.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/SA/ClsVoucherCO_SA.cs @@ -27,11 +27,13 @@ namespace UFIDA.U8.Framework.Api.ControlObject.SA logInfo.Debug("开始输出登录信息"); logInfo.Debug(baseLogin._vbLogin.userToken); - var co = InitCo(baseLogin, enmVoucherType, bPositive, sBillType, sBusType, UserMode, sOverDetailsXml); + //var co = InitCo(baseLogin, enmVoucherType, bPositive, sBillType, sBusType, UserMode, sOverDetailsXml); IXMLDOMDocument2 domHead = new DOMDocument(); IXMLDOMDocument2 domBody = new DOMDocument(); IXMLDOMDocument2 domCur = new DOMDocument(); + + return new BaseResult(); } catch (Exception ex) { diff --git a/UFIDA.U8.Framework.Api.ControlObject/U8M/BaseLogin.cs b/UFIDA.U8.Framework.Api.ControlObject/U8M/BaseLogin.cs index 32b9efd..b132f7c 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/U8M/BaseLogin.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/U8M/BaseLogin.cs @@ -3,6 +3,7 @@ using System.Web.UI.WebControls; using ADODB; using log4net; using UFIDA.U8.Framework.Api.ControlObject.Entity; +using UFSoft.U8.Framework.BizBase; using UFSoft.U8.Framework.ContextSrv; using UFSoft.U8.Framework.Login.UI; using UFSoft.U8.Framework.LoginContext; @@ -20,8 +21,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M public class BaseLogin { - static ILog logInfo = LogManager.GetLogger("logInfo"); - + private ILog _logInfo = LogManager.GetLogger("logInfo"); public NetLogin _netLogin; @@ -43,7 +43,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M public string UfSystemDb => _vbLogin.UfSystemDb; - + public IContextContainer callar { get; set; } /// /// 初始化生产制造上下文 @@ -86,7 +86,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M _vbLogin.ClearError(); - logInfo.Debug($"VB--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); + _logInfo.Debug($"VB--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); if (!_vbLogin.Login(paramter.pSubId, paramter.pAccId, paramter.pYearId, paramter.pUserId, paramter.pPassword, paramter.pDate, paramter.cSrv, paramter.cSerial) && string.IsNullOrWhiteSpace(_vbLogin.userToken)) { @@ -99,36 +99,40 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M if (_productContext == null) { - logInfo.Debug($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); + _logInfo.Debug($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); if (!_netLogin.login(paramter.pSubId, paramter.pUserId, paramter.pPassword, paramter.cSrv, paramter.pDate, paramter.pAccId, paramter.cSerial) && string.IsNullOrWhiteSpace(_netLogin.userToken)) { //throw new Exception($"Net--U8登录失败---{_netLogin.ErrDescript}"); } - logInfo.Debug($"Net--开始进行上下文构建:{_netLogin.userToken}"); + _logInfo.Debug($"Net--开始进行上下文构建:{_netLogin.userToken}"); _productContext = _netLogin.SubLogin("DP") ?? _netLogin.Login("DP", _vbLogin.userToken); //throw new Exception($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); } - logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); + _logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); ClientUserContext.Instance.RefreshContext(); - logInfo.Debug("Net--完成生产制造登录进程"); + _logInfo.Debug("Net--完成生产制造登录进程"); + + callar = new DefaultContextContainer(); + + _logInfo.Debug($"Net--构建制造上下文:{callar.context.calledContext.token}"); #else _netLogin = new NetLogin(); - logInfo.Debug($"Net--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); + _logInfo.Debug($"Net--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); if (!_netLogin.login(paramter.pSubId, paramter.pUserId, paramter.pPassword, paramter.cSrv, paramter.pDate, paramter.pAccId, paramter.cSerial) && string.IsNullOrWhiteSpace(_netLogin.userToken)) { throw new Exception($"Net--U8登录失败---{_netLogin.ErrDescript}"); } - logInfo.Debug($"Net--开始进行上下文构建:{_netLogin.userToken}"); + _logInfo.Debug($"Net--开始进行上下文构建:{_netLogin.userToken}"); _productContext = _netLogin.SubLogin("DP"); @@ -138,11 +142,15 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M } - logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); + _logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); ClientUserContext.Instance.RefreshContext(); - logInfo.Debug("Net--完成生产制造登录进程"); + _logInfo.Debug("Net--完成生产制造登录进程"); + + callar = new DefaultContextContainer(); + + _logInfo.Debug($"Net--构建制造上下文:{callar.context.calledContext.token}"); return; @@ -153,19 +161,19 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M _vbLogin.ClearError(); - logInfo.Debug($"VB--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); + _logInfo.Debug($"VB--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); if (!_vbLogin.Login(paramter.pSubId, paramter.pAccId, paramter.pYearId, paramter.pUserId, paramter.pPassword, paramter.pDate, paramter.cSrv, paramter.cSerial) && string.IsNullOrWhiteSpace(_vbLogin.userToken)) { throw new Exception($"VB--U8登录失败---{_vbLogin.ShareString}"); } - logInfo.Debug($"VB--开始创建连接对象:{_vbLogin.userToken}"); + _logInfo.Debug($"VB--开始创建连接对象:{_vbLogin.userToken}"); Connection = new Connection(); Connection.Open(_vbLogin.UfDbName); - logInfo.Debug("VB--完成登录进程"); + _logInfo.Debug("VB--完成登录进程"); return; @@ -180,14 +188,14 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M if (!bMon) { - logInfo.Debug("非生产制造模块无需下面操作"); + _logInfo.Debug("非生产制造模块无需下面操作"); //Trace.WriteLine("非生产制造模块无需下面操作"); return; } - logInfo.Debug($"U8版本:{_vbLogin.GetVersionInfo()}"); + _logInfo.Debug($"U8版本:{_vbLogin.GetVersionInfo()}"); - logInfo.Debug($"1--登录令牌:{_vbLogin.userToken}"); + _logInfo.Debug($"1--登录令牌:{_vbLogin.userToken}"); if (!string.IsNullOrWhiteSpace(Cryptography.m_userToken)) { @@ -198,7 +206,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M if (_productContext != null) { - logInfo.Debug($"222--成功初始化上下文信息:{_vbLogin.userToken}"); + _logInfo.Debug($"222--成功初始化上下文信息:{_vbLogin.userToken}"); ClientUserContext.Instance.RefreshContext(); //ThreadContext.ServerToken = _netLogin.userToken; @@ -206,7 +214,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M Connection = new Connection(); Connection.Open(_vbLogin.UfDbName); - logInfo.Debug($"333--完成局部构建:{_netLogin.userToken}"); + _logInfo.Debug($"333--完成局部构建:{_netLogin.userToken}"); return; } @@ -222,7 +230,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M if (_productContext == null) throw new Exception($"11--初始化U8登录上下文失败------{_netLogin.ErrDescript}"); - logInfo.Debug($"22--登录令牌:{_netLogin.userToken}"); + _logInfo.Debug($"22--登录令牌:{_netLogin.userToken}"); //Trace.WriteLine($"2--上下文令牌:{_productContext.calledContext.token}"); @@ -232,16 +240,16 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M //_vbLogin.set_TaskId(taskId); - logInfo.Debug($"33--登录令牌:{_vbLogin.userToken}"); + _logInfo.Debug($"33--登录令牌:{_vbLogin.userToken}"); - logInfo.Debug($"44--正在创建应用池:{_netLogin.userToken}"); + _logInfo.Debug($"44--正在创建应用池:{_netLogin.userToken}"); ClientUserContext.Instance.RefreshContext(); //ThreadContext.ServerToken = _netLogin.userToken; - logInfo.Debug($"55--完成局部构建:{_netLogin.userToken}"); + _logInfo.Debug($"55--完成局部构建:{_netLogin.userToken}"); return; @@ -249,7 +257,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M _productContext = _netLogin.Login("AS", _vbLogin.userToken); - logInfo.Debug($"3--上下文令牌:{_productContext.calledContext.token}"); + _logInfo.Debug($"3--上下文令牌:{_productContext.calledContext.token}"); if (_productContext == null) throw new Exception($"2--初始化U8登录上下文失败------{_netLogin.ErrDescript}"); @@ -261,7 +269,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M } catch (Exception ex) { - logInfo.Error($"重试次数:{traceTimes},错误信息:{ex.Message}", ex); + _logInfo.Error($"重试次数:{traceTimes},错误信息:{ex.Message}", ex); Init(paramter, bMon, traceTimes + 1); } @@ -297,7 +305,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M #if DEBUG _vbLogin = new VBLogin(); _vbLogin.ClearError(); - logInfo.Debug($"VB--开始进行U8登录:{userToken}"); + _logInfo.Debug($"VB--开始进行U8登录:{userToken}"); if (!_vbLogin.ConstructLogin(userToken)) { throw new Exception($"VB--U8登录失败---{_vbLogin.ShareString}"); @@ -306,42 +314,42 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M _productContext = _netLogin.Login("DP", _vbLogin.userToken); if (_productContext == null) { - logInfo.Debug($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); + _logInfo.Debug($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); - logInfo.Debug($"Net--开始进行上下文构建:{userToken}"); + _logInfo.Debug($"Net--开始进行上下文构建:{userToken}"); _productContext = _netLogin.Login("DP", _vbLogin.userToken); //throw new Exception($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); } - logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); + _logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); ClientUserContext.Instance.RefreshContext(); - logInfo.Debug("Net--完成生产制造登录进程"); + _logInfo.Debug("Net--完成生产制造登录进程"); + + callar = new DefaultContextContainer(); + + _logInfo.Debug($"Net--构建制造上下文:{callar.context.calledContext.token}"); #else _netLogin = new NetLogin(); - logInfo.Debug($"Net--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); + _logInfo.Debug($"Net--开始进行U8登录:{userToken}"); - if (!_netLogin.login(paramter.pSubId, paramter.pUserId, paramter.pPassword, paramter.cSrv, paramter.pDate, paramter.pAccId, paramter.cSerial) && string.IsNullOrWhiteSpace(_netLogin.userToken)) - { - throw new Exception($"Net--U8登录失败---{_netLogin.ErrDescript}"); - } - - logInfo.Debug($"Net--开始进行上下文构建:{_netLogin.userToken}"); - - _productContext = _netLogin.SubLogin("DP"); + _productContext = _netLogin.Login("DP", userToken); if (_productContext == null) { throw new Exception($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); } - - logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); + _logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); ClientUserContext.Instance.RefreshContext(); - logInfo.Debug("Net--完成生产制造登录进程"); + _logInfo.Debug("Net--完成生产制造登录进程"); + + callar = new DefaultContextContainer(); + + _logInfo.Debug($"Net--构建制造上下文:{callar.context.calledContext.token}"); return; @@ -351,20 +359,20 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M _vbLogin = new VBLogin(); _vbLogin.ClearError(); - logInfo.Debug($"VB--开始进行U8登录:{userToken}"); + _logInfo.Debug($"VB--开始进行U8登录:{userToken}"); if (!_vbLogin.ConstructLogin(userToken)) { throw new Exception($"VB--U8登录失败---{_vbLogin.ShareString}"); } - logInfo.Debug($"VB--开始创建连接对象:{_vbLogin.userToken}"); + _logInfo.Debug($"VB--开始创建连接对象:{_vbLogin.userToken}"); Connection = new Connection(); Connection.Open(_vbLogin.UfDbName); - logInfo.Debug("VB--完成登录进程"); + _logInfo.Debug("VB--完成登录进程"); return; } catch (Exception ex) { - logInfo.Error($"重试次数:{traceTimes},错误信息:{ex.Message}", ex); + _logInfo.Error($"重试次数:{traceTimes},错误信息:{ex.Message}", ex); if (ex.Message == "VB--U8登录失败---登录使用时间超过系统预置时间,请重新登录!") { @@ -375,6 +383,128 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M } } + public bool CheckCallar() + { + return callar != null; + } + + public void RefreshCallar(LoginParamter paramter) + { +#if DEBUG + + _netLogin = new NetLogin(); + + _productContext= _netLogin.Login("DP", _vbLogin.userToken); + + if (_productContext == null) + { + _logInfo.Debug($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); + + if (!_netLogin.login(paramter.pSubId, paramter.pUserId, paramter.pPassword, paramter.cSrv, paramter.pDate, paramter.pAccId, paramter.cSerial) && string.IsNullOrWhiteSpace(_netLogin.userToken)) + { + //throw new Exception($"Net--U8登录失败---{_netLogin.ErrDescript}"); + } + + _logInfo.Debug($"Net--开始进行上下文构建:{_netLogin.userToken}"); + + _productContext = _netLogin.SubLogin("DP") ?? _netLogin.Login("DP", _vbLogin.userToken); + //throw new Exception($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); + } + + _logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); + + ClientUserContext.Instance.RefreshContext(); + + _logInfo.Debug("Net--完成生产制造登录进程"); + + callar = new DefaultContextContainer(); + + _logInfo.Debug($"Net--构建制造上下文:{callar.context.calledContext.token}"); + +#else + _netLogin = new NetLogin(); + + _logInfo.Debug($"Net--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); + + if (!_netLogin.login(paramter.pSubId, paramter.pUserId, paramter.pPassword, paramter.cSrv, paramter.pDate, paramter.pAccId, paramter.cSerial) && string.IsNullOrWhiteSpace(_netLogin.userToken)) + { + throw new Exception($"Net--U8登录失败---{_netLogin.ErrDescript}"); + } + + _logInfo.Debug($"Net--开始进行上下文构建:{_netLogin.userToken}"); + + _productContext = _netLogin.SubLogin("DP"); + + if (_productContext == null) + { + throw new Exception($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); + } + + + _logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); + + ClientUserContext.Instance.RefreshContext(); + + _logInfo.Debug("Net--完成生产制造登录进程"); + + callar = new DefaultContextContainer(); + + _logInfo.Debug($"Net--构建制造上下文:{callar.context.calledContext.token}"); + + return; + +#endif + } + + public void RefreshCallar(string userToken) + { +#if DEBUG + _netLogin = new NetLogin(); + _productContext = _netLogin.Login("DP", _vbLogin.userToken); + if (_productContext == null) + { + _logInfo.Debug($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); + + _logInfo.Debug($"Net--开始进行上下文构建:{userToken}"); + _productContext = _netLogin.Login("DP", _vbLogin.userToken); + //throw new Exception($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); + } + _logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); + ClientUserContext.Instance.RefreshContext(); + + _logInfo.Debug("Net--完成生产制造登录进程"); + + callar = new DefaultContextContainer(); + + _logInfo.Debug($"Net--构建制造上下文:{callar.context.calledContext.token}"); + +#else + _netLogin = new NetLogin(); + + _logInfo.Debug($"Net--开始进行U8登录:{userToken}"); + + _productContext = _netLogin.Login("DP", userToken); + + if (_productContext == null) + { + throw new Exception($"Net--U8上下文构建失败---{_netLogin.ErrDescript}"); + } + + _logInfo.Debug($"Net--开始进行上下文刷新:{_productContext.calledContext.token}"); + + ClientUserContext.Instance.RefreshContext(); + + _logInfo.Debug("Net--完成生产制造登录进程"); + + callar = new DefaultContextContainer(); + + _logInfo.Debug($"Net--构建制造上下文:{callar.context.calledContext.token}"); + + return; + +#endif + } + public void ShutDown() { U8LoginInfoPool.Clear(); diff --git a/UFIDA.U8.Framework.Api.ControlObject/U8M/IBaseBF.cs b/UFIDA.U8.Framework.Api.ControlObject/U8M/IBaseBF.cs index c3f0251..66ae17a 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/U8M/IBaseBF.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/U8M/IBaseBF.cs @@ -9,8 +9,8 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M { public interface IBaseBF { - BaseResult Save(string cCardNum, Dictionary input); + Task> Save(BaseLogin baseLogin,string cCardNum, Dictionary input); - BaseResult Save(string cCardNum, List> inputs); + Task> Save(BaseLogin baseLogin, string cCardNum, List> inputs); } } diff --git a/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs b/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs index 5fc9802..d581008 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs @@ -6,6 +6,7 @@ using System.Data; using System.Linq; using System.Linq.Expressions; using System.Reflection; +using System.Threading.Tasks; using UFIDA.U8.Framework.Api.ControlObject.Common; using UFIDA.U8.Framework.Api.ControlObject.Entity; using UFIDA.U8.Framework.Api.ControlObject.Json; @@ -26,43 +27,51 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M /// /// 报工单 /// - public class MoRoutingBill: IBaseBF + public class MoRoutingBill:IBaseBF { protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); - private IContextContainer callar { get; set; } - - private MoRoutingBillDs GetEmptyDs(string cCardNum) + private async Task GetEmptyDs(IContextContainer callar, string cCardNum) { - var ds = SFExecutor.BFMoRoutingBill_LoadData("LoadFirst", 0, "", cCardNum, callar); - - #region 清除数据集里的数据 - - if (ds.Tables.Contains("fc_MoRoutingBilldetail_ExtraDefine")) + try { - ds.Tables["fc_MoRoutingBilldetail_ExtraDefine"].Clear(); + var ds = SFExecutor.BFMoRoutingBill_LoadData("LoadFirst", 0, "", cCardNum, callar); + + #region 清除数据集里的数据 + + if (ds.Tables.Contains("fc_MoRoutingBilldetail_ExtraDefine")) + { + ds.Tables["fc_MoRoutingBilldetail_ExtraDefine"].Clear(); + } + + if (ds.Tables.Contains("fc_MoRoutingBill_ExtraDefine")) + { + ds.Tables["fc_MoRoutingBill_ExtraDefine"].Clear(); + } + + ds.MoRoutingBillRes.Clear(); + ds.MoRoutingBillDetail.Clear(); + ds.MoRoutingBill.Clear(); + + #endregion + + return ds; } - if (ds.Tables.Contains("fc_MoRoutingBill_ExtraDefine")) + catch { - ds.Tables["fc_MoRoutingBill_ExtraDefine"].Clear(); + await Task.Delay(1); + + throw; } - - ds.MoRoutingBillRes.Clear(); - ds.MoRoutingBillDetail.Clear(); - ds.MoRoutingBill.Clear(); - - #endregion - - return ds; } - private MoRoutingBillDs GetVoucherDs(string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary input) + private async Task GetVoucherDs(IContextContainer callar, string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary input) { - var ds = GetEmptyDs(cCardNum); + var ds = await GetEmptyDs(callar, cCardNum); var head = ds.MoRoutingBill.NewMoRoutingBillRow(); @@ -104,18 +113,18 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M - public BaseResult Save(string cCardNum, Dictionary input) + public async Task> Save(BaseLogin baseLogin, string cCardNum, Dictionary input) { try { - callar = new DefaultContextContainer(); + var callar = baseLogin.callar; var docNoParam = new AutoDocNoGenerateParam(EnumAutoDocNoType.HandAuto, cCardNum) { IsCurrentDocNoByHand = false }; - var ds = GetVoucherDs(cCardNum, docNoParam, input); + var ds =GetVoucherDs(callar, cCardNum, docNoParam, input); if (ds == null) { @@ -127,7 +136,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M logInfo.Debug($"单据编码:{cCardNum},开始保存"); - var id = SFExecutor.BFMoRoutingBill_MoRoutingBillSave(ds, docNoParam, callar); + var id = SFExecutor.BFMoRoutingBill_MoRoutingBillSave(ds.Result, docNoParam, callar); logInfo.Debug($"单据编码:{cCardNum},保存完成,id:{id}"); @@ -139,6 +148,8 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M { logInfo.Error(ex.Message, ex); + await Task.Delay(1); + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } catch (TargetInvocationException ex) @@ -147,12 +158,16 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M { logInfo.Error(ex.InnerException.Message, ex.InnerException); + await Task.Delay(1); + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.InnerException.Message }; } else { logInfo.Error(ex.Message, ex); + await Task.Delay(1); + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } @@ -162,11 +177,13 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M logInfo.Error(ex.Message, ex); + await Task.Delay(1); + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } } - public BaseResult Save(string cCardNum, List> inputs) + public async Task> Save(BaseLogin baseLogin, string cCardNum, List> inputs) { var idList = new List(); @@ -175,11 +192,11 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M { foreach (var input in inputs) { - var iRes = Save(cCardNum, input); + var iRes = await Save(baseLogin, cCardNum, input); if (!iRes.bSuccess && idList.Count > 0) { - Delete(idList); + await Delete(baseLogin, idList); return iRes; } @@ -204,7 +221,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M } - public BaseResult Delete(string cCardNum, List inputs) + public async Task> Delete(BaseLogin baseLogin,string cCardNum, List inputs) { try { @@ -220,7 +237,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M newInput.Add(int.Parse($"{dataReader[0]}")); } - return Delete(newInput); + return await Delete(baseLogin, newInput); } catch (U8MReferenceBENotExistException ex) { @@ -236,7 +253,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M } } - public BaseResult Delete(List inputs) + public async Task> Delete(BaseLogin baseLogin,List inputs) { try { @@ -250,7 +267,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M ht.Add(input, input); } - var id = SFExecutor.BFMoRoutingBill_MoRoutingBillBatchDelete(ht, new DefaultContextContainer()); + var id = SFExecutor.BFMoRoutingBill_MoRoutingBillBatchDelete(ht, baseLogin.callar); return new BaseResult { bSuccess = true, message = "删除成功", result = $"{id}" }; } @@ -258,19 +275,23 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M { logInfo.Error(ex.Message, ex); + await Task.Delay(1); + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } catch (Exception ex) { logInfo.Error(ex.Message, ex); + await Task.Delay(1); + return new BaseResult { bSuccess = false, message = "删除失败", result = ex.Message }; } } - public BaseResult Verify(string cCardNum, List inputs) + public async Task> Verify(BaseLogin baseLogin,string cCardNum, List inputs) { try { @@ -286,7 +307,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M newInput.Add(int.Parse($"{dataReader[0]}")); } - return Verify(newInput); + return await Verify(baseLogin,newInput); } catch (U8MReferenceBENotExistException ex) { @@ -302,7 +323,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M } } - public BaseResult Verify(List inputs) + public async Task> Verify(BaseLogin baseLogin, List inputs) { try { @@ -316,7 +337,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M ht.Add(input, $"{input}"); } - var id = SFExecutor.BFMoRoutingBill_Verify(ht, new DefaultContextContainer()); + var id = SFExecutor.BFMoRoutingBill_Verify(ht,baseLogin.callar); return new BaseResult { bSuccess = true, message = "审核成功", result = $"{id}" }; } @@ -324,12 +345,16 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M { logInfo.Error(ex.Message, ex); + await Task.Delay(1); + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } catch (Exception ex) { logInfo.Error(ex.Message, ex); + await Task.Delay(1); + return new BaseResult { bSuccess = false, message = "审核失败", result = ex.Message }; } diff --git a/UFIDA.U8.Framework.Api/App_Data/U8API.xml b/UFIDA.U8.Framework.Api/App_Data/U8API.xml index 12385a8..b10392f 100644 --- a/UFIDA.U8.Framework.Api/App_Data/U8API.xml +++ b/UFIDA.U8.Framework.Api/App_Data/U8API.xml @@ -599,22 +599,6 @@ 报文数据 - - - 收款单保存 - - - - - - - - 收款单保存 - - - - - 票据保存 @@ -862,7 +846,7 @@ 车间管理 - + 日志组件 diff --git a/UFIDA.U8.Framework.Api/App_Data/订单报工模板.json b/UFIDA.U8.Framework.Api/App_Data/订单报工模板.json new file mode 100644 index 0000000..8672485 --- /dev/null +++ b/UFIDA.U8.Framework.Api/App_Data/订单报工模板.json @@ -0,0 +1,21 @@ +{ + "MoId": 1000000001, //生产订单id + "MoDId": 1000000001, //生产订单明细id + "MoCode": "000000001", //生产订单号 + "WcId": "", //工作中心id + "MoSeq": 1, //生产订单行号 + "Body": [ + { + "cPersonCode": "", //人员编码 + "cTeamCode": "", //班组编码 + "dDate": "2025-07-22", //报工日期 + "Qualifiedqty": 1, //合格数量 + "MoRoutingId": 1000000001, //生产订单工艺路线id + "MoRoutingDId": 1000000001, //生产订单工艺路线明细id + "MoId": 1000000001, //生产订单id + "MoDId": 1000000001, //生产订单明细id + "MoCode": "000000001", //生产订单号 + "MoSeq": 1 //生产订单行号 + } + ] +} \ No newline at end of file diff --git a/UFIDA.U8.Framework.Api/Controllers/U8/APController.cs b/UFIDA.U8.Framework.Api/Controllers/U8/APController.cs index 67d41b1..692b2d7 100644 --- a/UFIDA.U8.Framework.Api/Controllers/U8/APController.cs +++ b/UFIDA.U8.Framework.Api/Controllers/U8/APController.cs @@ -37,7 +37,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 /// /// [HttpPost] - [Route("api/U8/{cSubId}/{cCardNum}/Save")] + //[Route("api/U8/{cSubId}/{cCardNum}/Save")] public async Task> Save(string cAccId, string cCardNum, string cSubId, [FromBody] Dictionary input, string busDate="", bool bNeedBillClosed = false) { try @@ -74,8 +74,8 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 /// 报文数据 /// [HttpPost] - [Route("api/U8/AP/{cCardNum}/CloseBillSave")] - [Route("api/U8/AR/{cCardNum}/CloseBillSave")] + //[Route("api/U8/AP/{cCardNum}/CloseBillSave")] + //[Route("api/U8/AR/{cCardNum}/CloseBillSave")] public async Task> CloseBillSave(string cAccId, string cCardNum, [FromBody] Dictionary input) { try @@ -130,33 +130,33 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } - /// - /// 收款单保存 - /// - /// - /// - /// - [HttpPost] - [Route("api/U8/AR/AP48/Save")] - [Route("api/U8/AR/AP49/Save")] - public async Task> AP48Save(string cAccId, [FromBody] Dictionary input) - { - return await CloseBillSave(cAccId, "AP48", input); - } + ///// + ///// 收款单保存 + ///// + ///// + ///// + ///// + //[HttpPost] + //[Route("api/U8/AR/AP48/Save")] + //[Route("api/U8/AR/AP49/Save")] + //public async Task> AP48Save(string cAccId, [FromBody] Dictionary input) + //{ + // return await CloseBillSave(cAccId, "AP48", input); + //} - /// - /// 收款单保存 - /// - /// - /// - /// - [HttpPost] - [Route("api/U8/AP/AP49/Save")] - [Route("api/U8/AP/AP49/Save")] - public async Task> AP49Save(string cAccId, [FromBody] Dictionary input) - { - return await CloseBillSave(cAccId, "AP49", input); - } + ///// + ///// 收款单保存 + ///// + ///// + ///// + ///// + //[HttpPost] + //[Route("api/U8/AP/AP49/Save")] + //[Route("api/U8/AP/AP49/Save")] + //public async Task> AP49Save(string cAccId, [FromBody] Dictionary input) + //{ + // return await CloseBillSave(cAccId, "AP49", input); + //} /// /// 票据保存 diff --git a/UFIDA.U8.Framework.Api/Controllers/U8/SFCController.cs b/UFIDA.U8.Framework.Api/Controllers/U8/SFCController.cs index 70ccfcd..fc53782 100644 --- a/UFIDA.U8.Framework.Api/Controllers/U8/SFCController.cs +++ b/UFIDA.U8.Framework.Api/Controllers/U8/SFCController.cs @@ -10,6 +10,7 @@ using UFIDA.U8.Framework.Api.ControlObject.U8M; using UFIDA.U8.Framework.Api.Unit; using UFIDA.U8.Framework.Api.Models; using Convert = System.Convert; +using SqlSugar; // ReSharper disable InconsistentNaming // ReSharper disable IdentifierTypo @@ -25,7 +26,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 /// /// 日志组件 /// - protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); + protected readonly ILog _logInfo = LogManager.GetLogger("logInfo"); private static readonly MemoryCache _cache = new MemoryCache(new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan.FromMinutes(10) }); @@ -42,17 +43,55 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 { //var taskId = 0L; - var db = CommUnit.GetDbClient(); - - BaseLogin baseLogin=null; - try { - logInfo.Debug($"接口标识:MoRoutingBillSave,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}"); + var db = CommUnit.GetDbClient(); + + var workId = SnowFlakeSingle.Instance.NextId(); + + _logInfo.Debug($"作业Id:{workId}-----接口标识:MoRoutingBillSave,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}"); if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") throw new Exception("当前接口不支持此类型的单据"); + 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); + + try + { + _cache.Remove($"U8_{cAccId}"); + } + catch + { + _logInfo.Debug($"不存在[U8_{cAccId}]的缓存"); + } + + _cache.Set($"U8_{cAccId}", baseLogin); + } + + if (baseLogin == null) + { + throw new Exception("登录对象加载失败"); + } + + if (!baseLogin.CheckCallar()) + { + baseLogin.RefreshCallar(baseLogin.userToken); + } + + //var runtimes = 0; //var u8mTask = new SysU8MTask() @@ -60,30 +99,30 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // U8MPool = $"U8M_{cAccId}" //}; -//#if !DEBUG -// while (await db.Queryable().AnyAsync()) -// { -// if (runtimes > 20) -// { -// throw new Exception("当前任务队列过长"); -// } + //#if !DEBUG + // while (await db.Queryable().AnyAsync()) + // { + // if (runtimes > 20) + // { + // throw new Exception("当前任务队列过长"); + // } -// runtimes++; + // runtimes++; -// await Task.Delay(100 * runtimes); + // await Task.Delay(100 * runtimes); -// //u8mTask.Id = DateTime.Now.Ticks; + // //u8mTask.Id = DateTime.Now.Ticks; -// if (await db.Queryable() -// .AnyAsync(a => SqlFunc.DateDiff(DateType.Minute, a.dDate, DateTime.Now) > 1)) -// { -// await db.Deleteable() -// .Where(a => SqlFunc.DateDiff(DateType.Minute, a.dDate, DateTime.Now) > 1) -// .ExecuteCommandAsync(); -// } + // if (await db.Queryable() + // .AnyAsync(a => SqlFunc.DateDiff(DateType.Minute, a.dDate, DateTime.Now) > 1)) + // { + // await db.Deleteable() + // .Where(a => SqlFunc.DateDiff(DateType.Minute, a.dDate, DateTime.Now) > 1) + // .ExecuteCommandAsync(); + // } -// } -//#endif + // } + //#endif //u8mTask.dDate = DateTime.Now; @@ -96,23 +135,23 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 //var taskid = SnowFlakeSingle.Instance.NextId(); - //logInfo.Debug($"开始操作,当前任务ID:{taskId}"); + //_logInfo.Debug($"开始操作,当前任务ID:{taskId}"); //if (!_cache.TryGetValue($"U8M_{cAccId}", out BaseLogin baseLogin)) //{ // _cache.Clear(); - baseLogin = new BaseLogin(); + ////baseLogin = new BaseLogin(); - var param = await CommUnit.GetLoginParamter(cAccId); + ////var param = await CommUnit.GetLoginParamter(cAccId); - if (param == null) - { - throw new Exception("未能加载指定系统号的登录信息"); - } + ////if (param == null) + ////{ + //// throw new Exception("未能加载指定系统号的登录信息"); + ////} - logInfo.Debug("开始登录"); + ////_logInfo.Debug("开始登录"); - baseLogin.Init(param,true); + ////baseLogin.Init(param,true); var bo = new MoRoutingBill(); BaseResult res; @@ -120,11 +159,11 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 { var inputs = input["inputs"] as List> ?? $"{input["inputs"]}".ToObject>>(); - res = bo.Save(cCardNum, inputs); + res =await bo.Save(baseLogin, cCardNum, inputs); } else { - res = bo.Save(cCardNum, input); + res =await bo.Save(baseLogin, cCardNum, input); } //loader.Unload(); @@ -140,7 +179,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 //var bf = new MoRoutingBill(); - logInfo.Debug($"开始保存"); + _logInfo.Debug($"开始保存"); //BaseResult res; //if (input.ContainsKey("bBatch") && Convert.ToBoolean(input["bBatch"])) @@ -154,7 +193,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // res = bf.Save(cCardNum, input); //} - logInfo.Debug($"退出登录"); + _logInfo.Debug($"退出登录"); //baseLogin.ShutDown(); //if (taskId != 0) @@ -167,7 +206,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); //if (taskId != 0) //{ @@ -244,7 +283,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 { try { - logInfo.Debug($"接口标识:MoRoutingBillDelete,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}"); + _logInfo.Debug($"接口标识:MoRoutingBillDelete,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}"); if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") throw new Exception("当前接口不支持此类型的单据"); @@ -269,17 +308,17 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 if (input.cVouchCode != null && input.cVouchCode.Count > 0) { - return bf.Delete(cCardNum, input.cVouchCode); + return await bf.Delete(baseLogin,cCardNum, input.cVouchCode); } else { - return bf.Delete(input.MID); + return await bf.Delete(baseLogin,input.MID); } } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult {bSuccess = false,message = ex.Message,result = ex.StackTrace}; } @@ -343,7 +382,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 { try { - logInfo.Debug($"接口标识:MoRoutingBillVerify,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}"); + _logInfo.Debug($"接口标识:MoRoutingBillVerify,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}"); if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") throw new Exception("当前接口不支持此类型的单据"); @@ -368,17 +407,17 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 if (input.cVouchCode != null && input.cVouchCode.Count > 0) { - return bf.Verify(cCardNum, input.cVouchCode); + return await bf.Verify(baseLogin, cCardNum, input.cVouchCode); } else { - return bf.Verify(input.MID); + return await bf.Verify(baseLogin, input.MID); } } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult {bSuccess = false,message = ex.Message,result = ex.StackTrace}; } @@ -442,7 +481,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 { try { - logInfo.Debug($"接口标识:MoRoutingBillUnVerify,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}"); + _logInfo.Debug($"接口标识:MoRoutingBillUnVerify,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}"); if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") @@ -478,7 +517,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult {bSuccess = false,message = ex.Message,result = ex.StackTrace}; } diff --git a/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj b/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj index e674655..aa0f46c 100644 --- a/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj +++ b/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj @@ -488,6 +488,7 @@ + Designer diff --git a/UFIDA.U8.Framework.Api/Unit/AssemblyDynamicLoader.cs b/UFIDA.U8.Framework.Api/Unit/AssemblyDynamicLoader.cs index f89a37b..8dc079c 100644 --- a/UFIDA.U8.Framework.Api/Unit/AssemblyDynamicLoader.cs +++ b/UFIDA.U8.Framework.Api/Unit/AssemblyDynamicLoader.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; +using System.Threading.Tasks; using System.Web; using System.Web.UI.WebControls; using UFIDA.U8.Framework.Api.ControlObject.Entity; @@ -38,18 +39,18 @@ namespace UFIDA.U8.Framework.Api.Unit remoteLoader = (RemoteLoader)appDomain.CreateInstanceAndUnwrap(name, typeof(RemoteLoader).FullName ?? throw new InvalidOperationException()); } - internal BaseResult Save(LoginParamter paramter, string cCardNum, Dictionary input) + internal async Task> Save(LoginParamter paramter, string cCardNum, Dictionary input) { remoteLoader._paramter = paramter; - return remoteLoader.Save(cCardNum, input); + return await remoteLoader.Save(cCardNum, input); } - internal BaseResult Save(LoginParamter paramter, string cCardNum, List> inputs) + internal async Task> Save(LoginParamter paramter, string cCardNum, List> inputs) { remoteLoader._paramter = paramter; - return remoteLoader.Save(cCardNum, inputs); + return await remoteLoader.Save(cCardNum, inputs); } /// diff --git a/UFIDA.U8.Framework.Api/Unit/RemoteLoader.cs b/UFIDA.U8.Framework.Api/Unit/RemoteLoader.cs index 5938381..4a08f95 100644 --- a/UFIDA.U8.Framework.Api/Unit/RemoteLoader.cs +++ b/UFIDA.U8.Framework.Api/Unit/RemoteLoader.cs @@ -1,6 +1,7 @@ using log4net; using System; using System.Collections.Generic; +using System.Threading.Tasks; using UFIDA.U8.Framework.Api.ControlObject.Entity; using UFIDA.U8.Framework.Api.ControlObject.U8M; @@ -30,7 +31,7 @@ namespace UFIDA.U8.Framework.Api.Unit /// 数据包 /// /// - internal BaseResult Save(string cCardNum, Dictionary input) + internal async Task> Save(string cCardNum, Dictionary input) { try { @@ -57,7 +58,7 @@ namespace UFIDA.U8.Framework.Api.Unit baseLogin.Init(_paramter); - return bf.Save(cCardNum, input); + return await bf.Save(baseLogin, cCardNum, input); } catch (Exception ex) @@ -75,7 +76,7 @@ namespace UFIDA.U8.Framework.Api.Unit /// 数据包 /// /// - internal BaseResult Save(string cCardNum, List> inputs) + internal async Task> Save(string cCardNum, List> inputs) { try { @@ -102,7 +103,7 @@ namespace UFIDA.U8.Framework.Api.Unit baseLogin.Init(_paramter); - return bf.Save(cCardNum, inputs); + return await bf.Save(baseLogin, cCardNum, inputs); } catch (Exception ex) diff --git a/UFIDA.U8.Framework.Api/Web.config b/UFIDA.U8.Framework.Api/Web.config index cdce6e7..38d59e8 100644 --- a/UFIDA.U8.Framework.Api/Web.config +++ b/UFIDA.U8.Framework.Api/Web.config @@ -150,7 +150,7 @@ - +