diff --git a/UFIDA.U8.Framework.Api.Common/Entity/SysU8AccountConfig.cs b/UFIDA.U8.Framework.Api.Common/Entity/SysU8AccountConfig.cs index 91546c5..932adeb 100644 --- a/UFIDA.U8.Framework.Api.Common/Entity/SysU8AccountConfig.cs +++ b/UFIDA.U8.Framework.Api.Common/Entity/SysU8AccountConfig.cs @@ -1,5 +1,5 @@ using SqlSugar; -using UFIDA.U8.Framework.Api.ControlObject.Models; +using UFIDA.U8.Framework.Api.Common.Enum; namespace UFIDA.U8.Framework.Api.Common.Entity { @@ -8,7 +8,7 @@ namespace UFIDA.U8.Framework.Api.Common.Entity /// [SugarTable("SysU8AccountConfig", "系统U8账套对接参数配置表")] [SugarIndex("index_{table}_I", nameof(Id), OrderByType.Asc)] - public class SysU8AccountConfig :ControlObject.Models.SysU8AccountConfig + public class SysU8AccountConfig //:ControlObject.Models.SysU8AccountConfig { [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "主键", ColumnName = "Id", IsNullable = false)] @@ -18,61 +18,61 @@ namespace UFIDA.U8.Framework.Api.Common.Entity /// 系统号 /// [SugarColumn(ColumnDescription = "系统号", Length = 100)] - public override string cAccountNo { get; set; } + public virtual string cAccountNo { get; set; } /// /// 账套号 /// [SugarColumn(ColumnDescription = "账套号", Length = 100)] - public override string cAcc_Id { get; set; } + public virtual string cAcc_Id { get; set; } /// /// 账套名称 /// [SugarColumn(ColumnDescription = "账套名称", Length = 255)] - public override string cAcc_Name { get; set; } + public virtual string cAcc_Name { get; set; } /// /// 账套数据源 /// [SugarColumn(ColumnDescription = "账套数据源", Length = 255)] - public override string cAcc_DataSource { get; set; } + public virtual string cAcc_DataSource { get; set; } /// /// 用户ID /// [SugarColumn(ColumnDescription = "用户ID", Length = 100)] - public override string cUser_Id { get; set; } + public virtual string cUser_Id { get; set; } /// /// 用户名 /// [SugarColumn(ColumnDescription = "用户名", Length = 255)] - public override string cUser_Name { get; set; } + public virtual string cUser_Name { get; set; } /// /// 密码 /// [SugarColumn(ColumnDescription = "密码", Length = 255)] - public override string cPassword { get; set; } + public virtual string cPassword { get; set; } /// /// 服务器地址 /// [SugarColumn(ColumnDescription = "服务器地址", Length = 255)] - public override string cSrv { get; set; } + public virtual string cSrv { get; set; } /// /// 状态 /// [SugarColumn(ColumnDescription = "状态")] - public override StatusEnum Status { get; set; } = StatusEnum.Enable; + public virtual StatusEnum Status { get; set; } = StatusEnum.Enable; /// /// 备注 /// [SugarColumn(ColumnDescription = "备注", Length = 255)] - public override string Remark { get; set; } + public virtual string Remark { get; set; } } } diff --git a/UFIDA.U8.Framework.Api.Common/Entity/SysU8MTask.cs b/UFIDA.U8.Framework.Api.Common/Entity/SysU8MTask.cs new file mode 100644 index 0000000..b55e6bf --- /dev/null +++ b/UFIDA.U8.Framework.Api.Common/Entity/SysU8MTask.cs @@ -0,0 +1,32 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace UFIDA.U8.Framework.Api.Common.Entity +{ + + /// + /// 系统U8账套对接参数配置表 + /// + [SugarTable("SysU8MTask", "U8生产制造任务")] + public class SysU8MTask + { + [SugarColumn(IsPrimaryKey = true, ColumnDescription = "主键", ColumnName = "Id", IsNullable = false)] + public long Id { get; set; } + + /// + /// U8生产制造登录信息 + /// + [SugarColumn(ColumnDescription = "U8生产制造登录信息", Length = 100)] + public string U8MPool { get; set; } + + /// + /// 任务时间 + /// + [SugarColumn(ColumnDescription = "任务时间")] + public DateTime dDate { get; set; } + } +} diff --git a/UFIDA.U8.Framework.Api.Common/Enum/StatusEnum.cs b/UFIDA.U8.Framework.Api.Common/Enum/StatusEnum.cs new file mode 100644 index 0000000..78072fb --- /dev/null +++ b/UFIDA.U8.Framework.Api.Common/Enum/StatusEnum.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace UFIDA.U8.Framework.Api.Common.Enum +{ + /// + /// 通用状态枚举 + /// + [Description("通用状态枚举")] + public enum StatusEnum + { + /// + /// 启用 + /// + [Description("启用")] + Enable = 1, + + /// + /// 停用 + /// + [Description("停用")] + Disable = 2, + } +} diff --git a/UFIDA.U8.Framework.Api.Common/UFIDA.U8.Framework.Api.Common.csproj b/UFIDA.U8.Framework.Api.Common/UFIDA.U8.Framework.Api.Common.csproj index f3a27fc..c524159 100644 --- a/UFIDA.U8.Framework.Api.Common/UFIDA.U8.Framework.Api.Common.csproj +++ b/UFIDA.U8.Framework.Api.Common/UFIDA.U8.Framework.Api.Common.csproj @@ -22,6 +22,7 @@ prompt 4 x86 + true pdbonly @@ -41,40 +42,24 @@ ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - - ..\packages\SqlSugar.5.1.4.162\lib\SqlSugar.dll + + ..\packages\SqlSugar.5.1.4.166\lib\SqlSugar.dll - - - - - - - - - - D:\U8SOFT\U8M\UFSoft.U8.U8M.DAC.dll - + + + - - - {22c84be9-1613-4e32-9e98-237e96fd3540} - UFIDA.U8.Framework.Api.ControlObject - - - - - + \ No newline at end of file diff --git a/UFIDA.U8.Framework.Api.Common/app.config b/UFIDA.U8.Framework.Api.Common/app.config new file mode 100644 index 0000000..1586ad8 --- /dev/null +++ b/UFIDA.U8.Framework.Api.Common/app.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UFIDA.U8.Framework.Api.Common/packages.config b/UFIDA.U8.Framework.Api.Common/packages.config index 146c4ee..c1ae9e6 100644 --- a/UFIDA.U8.Framework.Api.Common/packages.config +++ b/UFIDA.U8.Framework.Api.Common/packages.config @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/UFIDA.U8.Framework.Api.ControlObject/AP/UFAPBO.cs b/UFIDA.U8.Framework.Api.ControlObject/AP/UFAPBO.cs new file mode 100644 index 0000000..cc87359 --- /dev/null +++ b/UFIDA.U8.Framework.Api.ControlObject/AP/UFAPBO.cs @@ -0,0 +1,69 @@ +using log4net; +using System; +using System.Collections.Generic; +using ADODB; +using MSXML2; +using UFIDA.U8.Framework.Api.ControlObject.Common; +using UFIDA.U8.Framework.Api.ControlObject.Models; +using UFIDA.U8.Framework.Api.ControlObject.U8M; + +// ReSharper disable IdentifierTypo +// ReSharper disable InconsistentNaming +// ReSharper disable StringLiteralTypo + +namespace UFIDA.U8.Framework.Api.ControlObject.AP +{ + public class UFAPBO + { + protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); + + public BaseResult CloseBillSave(BaseLogin baseLogin,Dictionary dictionary,string cSubId,bool isAdd=true, bool bFirst=false,string bodyKey="body") + { + try + { + var m_Login = baseLogin._vbLogin; + + var domHead = dictionary.ToDocument2(); + + IXMLDOMDocument2 domBody = new DOMDocument(); + + if (dictionary[bodyKey] is List> bodyList && bodyList.Count > 0) + { + domBody = bodyList.ToDocument2(domBody); + } + + var bo = "UFAPBO.clsCloseBill".GetComObject(); + + var m_conn = new Connection(); + + m_conn.Open(m_Login.UfDbName); + + bo.Init(m_Login, m_conn, null,cSubId); + + bo.First = bFirst; + + var errorMessage = ""; + + var checkFlag = bo.VouchCheck(domHead, domBody, ref errorMessage, isAdd); + + if (!checkFlag) + throw new Exception(errorMessage); + + errorMessage = ""; + + var saveFlag = bo.SaveVouch(domHead, domBody, ref errorMessage, isAdd); + + if (!saveFlag) + throw new Exception(errorMessage); + + return new BaseResult { bSuccess = true, message = "保存成功", result = "保存成功" }; + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "保存失败", result = ex.Message }; + } + } + } +} diff --git a/UFIDA.U8.Framework.Api.ControlObject/Common/BEHelper.cs b/UFIDA.U8.Framework.Api.ControlObject/Common/BEHelper.cs index 1878c24..6d3ab77 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/Common/BEHelper.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/Common/BEHelper.cs @@ -1,7 +1,9 @@ -using System; +using log4net; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; +using System.Web.UI.WebControls; // ReSharper disable InconsistentNaming // ReSharper disable IdentifierTypo @@ -11,8 +13,22 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common { public class BEHelper { + protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); + private readonly dynamic _be; private readonly PropertyInfo[] _props; + private string _invCode; + private string _free1; + private string _free2; + private string _free3; + private string _free4; + private string _free5; + private string _free6; + private string _free7; + private string _free8; + private string _free9; + private string _free10; + private int _bomVersion; public BEHelper(dynamic be) { @@ -25,7 +41,10 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common { foreach (var key in dictionary.Keys) { - if (key.Contains("define") && !key.Contains("chdefine")) + if(key != "body") + logInfo.Debug($"正在设置字段:{key}--{dictionary[key]}"); + + if (key.Contains("define") && !key.Contains("chdefine") && !key.Contains("cbdefine")) { var defineCode = int.Parse(key.Replace("define", "")); if (dictionary.TryGetValue(key, out var bValue) && !string.IsNullOrWhiteSpace($"{bValue}")) @@ -41,46 +60,86 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common { _be.ExtendUserDefineItem[defineCode] = dictionary[key]; } + } else if (key.Contains("cbdefine")) + { + var defineCode = int.Parse(key.Replace("cbdefine", "")); + + if (dictionary.TryGetValue(key, out var bValue) && !string.IsNullOrWhiteSpace($"{bValue}")) + { + _be.ExtendUserDefineItem[defineCode] = dictionary[key]; + } + }else if (key.Contains("free")) + { + var freeCode = int.Parse(key.Replace("free", "")); + + SetFreeItem(freeCode, dictionary[key]); + } else if (key != "body") { - if (!string.IsNullOrWhiteSpace($"{dictionary[key]}") && _props.Any(a => string.Equals(a.Name, key, StringComparison.OrdinalIgnoreCase))) + if (string.Equals(key, "invCode", StringComparison.OrdinalIgnoreCase)) + { + _invCode = $"{dictionary[key]}"; + }else if (string.Equals(key, "bomversion", StringComparison.OrdinalIgnoreCase)) + { + _bomVersion = int.Parse($"{dictionary[key]}"); + } + else if(!string.IsNullOrWhiteSpace($"{dictionary[key]}") && _props.Any(a => string.Equals(a.Name, key, StringComparison.OrdinalIgnoreCase))) { var prop = _props.First(a => string.Equals(a.Name, key, StringComparison.OrdinalIgnoreCase)); - if (prop.PropertyType == typeof(string)) - { - prop.SetValue(_be, dictionary[key]); - } - - if (prop.PropertyType == typeof(DateTime)) - { - prop.SetValue(_be, DateTime.Parse($"{dictionary[key]}")); - } - - if (prop.PropertyType == typeof(byte)) - { - prop.SetValue(_be, byte.Parse($"{dictionary[key]}")); - } - - if (prop.PropertyType == typeof(int)) - { - prop.SetValue(_be, int.Parse($"{dictionary[key]}")); - } - - if (prop.PropertyType == typeof(long)) - { - prop.SetValue(_be, long.Parse($"{dictionary[key]}")); - } - - if (prop.PropertyType == typeof(decimal)) - { - prop.SetValue(_be, decimal.Parse($"{dictionary[key]}")); - } - + CommonHelper.SetPropValue(prop, _be, dictionary[key]); } } } } + + public void SetFreeItem(int i, object value) + { + switch (i) + { + case 1: + _free1 = $"{value}"; + break; + case 2: + _free2 = $"{value}"; + break; + case 3: + _free3 = $"{value}"; + break; + case 4: + _free4 = $"{value}"; + break; + case 5: + _free5 = $"{value}"; + break; + case 6: + _free6 = $"{value}"; + break; + case 7: + _free7 = $"{value}"; + break; + case 8: + _free8 = $"{value}"; + break; + case 9: + _free9 = $"{value}"; + break; + case 10: + _free10 = $"{value}"; + break; + } + } + + + public void SetPartId() + { + _be.SetPartId(_invCode, new[] { _free1, _free2, _free3, _free4, _free5, _free6, _free7, _free8, _free9, _free10 }); + } + + public void SetBomId() + { + _be.SetBomId(_be.PartId, _bomVersion); + } } } diff --git a/UFIDA.U8.Framework.Api.ControlObject/Common/CommonHelper.cs b/UFIDA.U8.Framework.Api.ControlObject/Common/CommonHelper.cs new file mode 100644 index 0000000..0880192 --- /dev/null +++ b/UFIDA.U8.Framework.Api.ControlObject/Common/CommonHelper.cs @@ -0,0 +1,154 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using GetComObj; +using MSXML2; +using UFIDA.U8.Framework.Api.ControlObject.Json; + +namespace UFIDA.U8.Framework.Api.ControlObject.Common +{ + public static class CommonHelper + { + + public static void SetPropValue(this PropertyInfo prop, object obj, object value) + { + if (prop.PropertyType == typeof(string)) + { + prop.SetValue(obj, value); + } + + if (prop.PropertyType == typeof(DateTime)) + { + prop.SetValue(obj, DateTime.Parse($"{value}")); + } + + if (prop.PropertyType == typeof(byte)) + { + prop.SetValue(obj, byte.Parse($"{value}")); + } + + if (prop.PropertyType == typeof(int)) + { + prop.SetValue(obj, int.Parse($"{value}")); + } + + if (prop.PropertyType == typeof(long)) + { + prop.SetValue(obj, long.Parse($"{value}")); + } + + if (prop.PropertyType == typeof(decimal)) + { + prop.SetValue(obj, decimal.Parse($"{value}")); + } + } + + public static IXMLDOMDocument2 ToDocument2(this Dictionary dictionary,IXMLDOMDocument2 domDocument2=null) + { + + if (domDocument2 == null) + { + domDocument2 = new DOMDocument(); + } + + var root = domDocument2.ClearDocument(); + + var newRow = SetRowData(dictionary, domDocument2); + + root.appendChild(newRow); + + return domDocument2; + + } + + public static IXMLDOMNode SetRowData(this Dictionary dictionary, IXMLDOMDocument2 domDocument2 = null,string bodyKey="body") + { + if (domDocument2 == null) + { + domDocument2 = new DOMDocument(); + } + + var newRow = domDocument2.createElement("z:row"); + + foreach (var key in dictionary.Keys) + { + if(key==bodyKey) + continue; + + var attr = domDocument2.createAttribute(key); + + attr.value = dictionary[key]; + + newRow.attributes.setNamedItem(attr); + } + + return newRow; + } + + public static IXMLDOMDocument2 ToDocument2(this List> dictionaryList, IXMLDOMDocument2 domDocument2 = null) + { + + if (domDocument2 == null) + { + domDocument2 = new DOMDocument(); + } + + var root = domDocument2.ClearDocument(); + + foreach (var dictionary in dictionaryList) + { + var newRow = SetRowData(dictionary, domDocument2); + + root.appendChild(newRow); + } + + return domDocument2; + + } + + public static IXMLDOMNode ClearDocument(this IXMLDOMDocument2 domDocument2) + { + var root = domDocument2.selectSingleNode("//rs:data"); + + if (root == null) + { + root = domDocument2.createElement("rs:data"); + + domDocument2.appendChild(root); + } + + var rows = domDocument2.selectNodes("//z:row"); + + if (rows != null && rows.length > 0) + { + for (var i = 0; i < rows.length; i++) + { + var row = rows[i]; + + root.removeChild(row); + } + } + + return root; + } + + public static void ResetDictionary(this Dictionary dictionary, string bodyKey = "body") + { + if (dictionary.ContainsKey(bodyKey)) + { + var body= dictionary[bodyKey].ToJson().ToList>(); + + dictionary[bodyKey] = body; + } + } + + public static dynamic GetComObject(this string comName) + { + var comInstance = new GetComInstance(); + + var obj = comInstance.GetComObject(ref comName); + + return obj; + } + } +} diff --git a/UFIDA.U8.Framework.Api.ControlObject/U8M/BaseLogin.cs b/UFIDA.U8.Framework.Api.ControlObject/U8M/BaseLogin.cs index d588062..9dc9ea6 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/U8M/BaseLogin.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/U8M/BaseLogin.cs @@ -1,23 +1,25 @@ using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using ADODB; +using log4net; using UFIDA.U8.Framework.Api.ControlObject.Models; using UFSoft.U8.Framework.ContextSrv; using UFSoft.U8.Framework.Login.UI; using UFSoft.U8.Framework.LoginContext; using NetLogin = UFSoft.U8.Framework.Login.UI.clsLogin; +using ThreadContext = UFSoft.U8.Framework.ContextSrv.ThreadContext; using VBLogin = U8Login.clsLogin; +// ReSharper disable IdentifierTypo +// ReSharper disable InconsistentNaming namespace UFIDA.U8.Framework.Api.ControlObject.U8M { public class BaseLogin { + protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); + + private NetLogin _netLogin { get; set; } - private VBLogin _vbLogin { get; set; } + public VBLogin _vbLogin { get; set; } public ProductContext _productContext { get; set; } @@ -27,78 +29,221 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M /// 初始化生产制造上下文 /// /// 登录参数 + /// /// /// - public void Init(LoginParamter paramter) + public void Init(LoginParamter paramter,bool bMon=true, int traceTimes=0) { - //if (!string.IsNullOrWhiteSpace(ThreadContext.ServerToken)) - //{ - // ThreadContext.ServerToken = null; - //} + if (traceTimes > 5) + throw new Exception("U8登录异常"); - //if (!string.IsNullOrWhiteSpace(ThreadContext.U8LoginInfo!=null)) - //{ - // ThreadContext.U8LoginInfo = null; - //} - - - if (paramter == null) throw new ArgumentNullException(nameof(paramter)); - - _vbLogin = new VBLogin(); - - _netLogin = new NetLogin(); - - _vbLogin.ClearError(); - - if (!_vbLogin.Login(paramter.pSubId, paramter.pAccId, paramter.pYearId, paramter.pUserId, paramter.pPassword, paramter.pDate, paramter.cSrv, paramter.cSerial) && string.IsNullOrWhiteSpace(_vbLogin.userToken)) + try { - //_vbLogin.ShutDown(); - throw new Exception(_vbLogin.ShareString); - } - Trace.WriteLine($"U8版本:{_vbLogin.GetVersionInfo()}"); - Trace.WriteLine($"1--登录令牌:{_netLogin.userToken}"); + //if (!string.IsNullOrWhiteSpace(ThreadContext.ServerToken)) + //{ + // ThreadContext.ServerToken = null; + //} - if (!string.IsNullOrWhiteSpace(Cryptography.m_userToken)) - { - Cryptography.m_userToken = ""; - } + //if (!string.IsNullOrWhiteSpace(ThreadContext.U8LoginInfo!=null)) + //{ + // ThreadContext.U8LoginInfo = null; + //} - if (_netLogin.login(paramter.pSubId, paramter.pUserId, paramter.pPassword, paramter.cSrv, paramter.pDate, paramter.pAccId, paramter.cSerial)) - { - _productContext = _netLogin.SubLogin("AS"); + if (paramter == null) throw new ArgumentNullException(nameof(paramter)); - if (_productContext == null) - throw new Exception($"1--初始化U8登录上下文失败------{_netLogin.ErrDescript}"); + if (!string.IsNullOrWhiteSpace(Cryptography.m_userToken)) + { + Cryptography.m_userToken = ""; + } - Trace.WriteLine($"2--登录令牌:{_netLogin.userToken}"); - //Trace.WriteLine($"2--上下文令牌:{_productContext.calledContext.token}"); + if (bMon) + { +#if DEBUG + _vbLogin = new VBLogin(); + + _vbLogin.ClearError(); + + 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}"); + } + + _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--完成生产制造登录进程"); + +#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--完成生产制造登录进程"); + + return; + +#endif + } + + _vbLogin = new VBLogin(); _vbLogin.ClearError(); - _vbLogin.ConstructLogin(_netLogin.userToken); - var taskId = DateTime.Now.Ticks.ToString(); - _vbLogin.set_TaskId(taskId); + logInfo.Debug($"VB--开始进行U8登录:{paramter.cSrv}--{paramter.pUserId}--{paramter.pAccId}"); - Trace.WriteLine($"3--登录令牌:{_vbLogin.userToken}"); + 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}"); + } - Trace.WriteLine($"4--正在创建应用池:{_netLogin.userToken}"); + logInfo.Debug($"VB--开始创建连接对象:{_vbLogin.userToken}"); + + Connection = new Connection(); + Connection.Open(_vbLogin.UfDbName); + + logInfo.Debug("VB--完成登录进程"); return; + + + + + + + + + + if (!bMon) + { + logInfo.Debug("非生产制造模块无需下面操作"); + //Trace.WriteLine("非生产制造模块无需下面操作"); + return; + } + + logInfo.Debug($"U8版本:{_vbLogin.GetVersionInfo()}"); + + logInfo.Debug($"1--登录令牌:{_vbLogin.userToken}"); + + if (!string.IsNullOrWhiteSpace(Cryptography.m_userToken)) + { + Cryptography.m_userToken = ""; + } + + _productContext = _netLogin.Login("DP", _vbLogin.userToken); + + if (_productContext != null) + { + logInfo.Debug($"222--成功初始化上下文信息:{_vbLogin.userToken}"); + + ClientUserContext.Instance.RefreshContext(); + //ThreadContext.ServerToken = _netLogin.userToken; + + Connection = new Connection(); + Connection.Open(_vbLogin.UfDbName); + + logInfo.Debug($"333--完成局部构建:{_netLogin.userToken}"); + + return; + } + + + + + + if (_netLogin.login(paramter.pSubId, paramter.pUserId, paramter.pPassword, paramter.cSrv, paramter.pDate, paramter.pAccId, paramter.cSerial)) + { + _productContext = _netLogin.SubLogin("AS"); + + if (_productContext == null) + throw new Exception($"11--初始化U8登录上下文失败------{_netLogin.ErrDescript}"); + + logInfo.Debug($"22--登录令牌:{_netLogin.userToken}"); + //Trace.WriteLine($"2--上下文令牌:{_productContext.calledContext.token}"); + + + //_vbLogin.ClearError(); + //_vbLogin.ConstructLogin(_netLogin.userToken); + //var taskId = DateTime.Now.Ticks.ToString(); + //_vbLogin.set_TaskId(taskId); + + + logInfo.Debug($"33--登录令牌:{_vbLogin.userToken}"); + + logInfo.Debug($"44--正在创建应用池:{_netLogin.userToken}"); + + ClientUserContext.Instance.RefreshContext(); + //ThreadContext.ServerToken = _netLogin.userToken; + + + + logInfo.Debug($"55--完成局部构建:{_netLogin.userToken}"); + + return; + + } + + _productContext = _netLogin.Login("AS", _vbLogin.userToken); + + logInfo.Debug($"3--上下文令牌:{_productContext.calledContext.token}"); + + if (_productContext == null) + throw new Exception($"2--初始化U8登录上下文失败------{_netLogin.ErrDescript}"); + + ClientUserContext.Instance.RefreshContext(); + //ThreadContext.ServerToken = _netLogin.userToken; + Connection = new Connection(); + Connection.Open(_vbLogin.UfDbName); } + catch (Exception ex) + { + logInfo.Error($"重试次数:{traceTimes},错误信息:{ex.Message}", ex); - _productContext = _netLogin.Login("AS", _vbLogin.userToken); - - Trace.WriteLine($"3--上下文令牌:{_productContext.calledContext.token}"); - - if (_productContext == null) - throw new Exception($"2--初始化U8登录上下文失败------{_netLogin.ErrDescript}"); - - ClientUserContext.Instance.RefreshContext(); - Connection = new Connection(); - Connection.Open(_vbLogin.UfDbName); + Init(paramter, bMon, traceTimes + 1); + } } public void ShutDown() @@ -109,15 +254,10 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M _vbLogin?.ShutDown(); _productContext=null; + _netLogin?.SubLogout("DP"); _netLogin?.ShutDown(); - _netLogin?.Dispose(); _vbLogin = null; _netLogin = null; - - if (!string.IsNullOrWhiteSpace(Cryptography.m_userToken)) - { - Cryptography.m_userToken = ""; - } } public bool CheckAccId(string cAccId) diff --git a/UFIDA.U8.Framework.Api.ControlObject/U8M/MOrder.cs b/UFIDA.U8.Framework.Api.ControlObject/U8M/MOrder.cs new file mode 100644 index 0000000..5a8ede9 --- /dev/null +++ b/UFIDA.U8.Framework.Api.ControlObject/U8M/MOrder.cs @@ -0,0 +1,285 @@ +using log4net; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UFIDA.U8.Framework.Api.ControlObject.Common; +using UFIDA.U8.Framework.Api.ControlObject.Json; +using UFIDA.U8.Framework.Api.ControlObject.Models; +using UFSoft.U8.Framework.ContextSrv; +using UFSoft.U8.U8M.BFDispatcher; +using UFSoft.U8.U8M.Common; +using UFSoft.U8.U8M.DAC; +using UFSoft.U8.U8M.DOSchema.MO; + +namespace UFIDA.U8.Framework.Api.ControlObject.U8M +{ + public class MOrder + { + protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); + + private MOrderDs GetEmptyDs() + { + var ds = MOMExecutor.BFMOrder_LoadData("LoadFirst", 0, new DefaultContextContainer()); + + #region 清除数据集里的数据 + + if (ds.Tables.Contains("mom_orderdetail_ExtraDefine")) + { + ds.Tables["mom_orderdetail_ExtraDefine"].Clear(); + } + if (ds.Tables.Contains("mom_order_ExtraDefine")) + { + ds.Tables["mom_order_ExtraDefine"].Clear(); + } + + ds.MoAllocateSubs.Clear(); + ds.MoAllocates.Clear(); + ds.MOrderDetails.Clear(); + ds.Order.Clear(); + + #endregion + + return ds; + } + + private MOrderDs GetVoucherDs(string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary input) + { + + var ds = GetEmptyDs(); + + var head = ds.Order.NewOrderRow(); + + ds.Order.AddOrderRow(head); + + var docNo = U8MCommonExecutor.BFVoucher_GetVoucherID(cCardNum, docNoParam.Paramaters, false, new DefaultContextContainer()); + + var be = new UFSoft.U8.MO.BE.MOrder(ds); + + var beHead = new BEHelper(be); + + beHead.SetValue(input); + + if (string.IsNullOrWhiteSpace(be.MoCode)) + { + be.MoCode = docNo; + } + + var bodys = input["body"] as List> ?? $"{input["body"]}".ToObject>>(); + + for (var i = 0; i < bodys.Count; i++) + { + var body = bodys[i]; + var detail = be.MOrderDetails[i]; + + var beBody = new BEHelper(detail); + + beBody.SetValue(body); + + beBody.SetPartId(); + + beBody.SetBomId(); + } + + + return (MOrderDs)be.DataObject; + } + + public BaseResult Save(string cCardNum, Dictionary input) + { + try + { + var docNoParam = new AutoDocNoGenerateParam(EnumAutoDocNoType.HandAuto, cCardNum) + { + IsCurrentDocNoByHand = false + }; + + var ds = GetVoucherDs(cCardNum, docNoParam, input); + + if (ds == null) + { + throw new Exception("未能构建数据集"); + } + + //var context = new DefaultContextContainer(); + //context.context["taskid"] = taskId; + + var id = MOMExecutor.BFMomProcess_HMOSaveWithDocNoPara(ds, docNoParam, new DefaultContextContainer()); + + return new BaseResult() { bSuccess = true, message = "新增成功", result = id }; + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "新增失败", result = ex.Message }; + + } + + } + + public BaseResult Delete(string cCardNum, List inputs) + { + try + { + if (inputs == null || inputs.Count <= 0) + throw new Exception("没有需要删除的数据"); + + var dataReader = SimpleDACObject.ExecuteReader($"SELECT MID FROM dbo.fc_MoRoutingBill WHERE cVouchCode IN ('{string.Join("','", inputs)}') AND cVouchType='{cCardNum}'"); + + var newInput = new List(); + + while (dataReader.Read()) + { + newInput.Add(int.Parse($"{dataReader[0]}")); + } + + return Delete(newInput); + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "删除失败", result = ex.Message }; + } + } + + public BaseResult Delete(List inputs) + { + try + { + if (inputs == null || inputs.Count <= 0) + throw new Exception("没有需要删除的数据"); + + var ht = new Hashtable(); + + foreach (var input in inputs) + { + ht.Add(input, input); + } + + var id = MOMExecutor.BFMomProcess_MODeleteProcess(ht, new DefaultContextContainer()); + + return new BaseResult() { bSuccess = true, message = "删除成功", result = id }; + } + catch (Exception ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult() { bSuccess = false, message = "删除失败", result = ex.Message }; + + } + + } + + //public BaseResult Verify(string cCardNum, List inputs) + //{ + // try + // { + // if (inputs == null || inputs.Count <= 0) + // throw new Exception("没有需要审核的数据"); + + // var dataReader = SimpleDACObject.ExecuteReader($"SELECT MID FROM dbo.fc_MoRoutingBill WHERE cVouchCode IN ('{string.Join("','", inputs)}') AND cVouchType='{cCardNum}'"); + + // var newInput = new List(); + + // while (dataReader.Read()) + // { + // newInput.Add(int.Parse($"{dataReader[0]}")); + // } + + // return Verify(newInput); + // } + // catch (Exception ex) + // { + // logInfo.Error(ex.Message, ex); + + // return new BaseResult() { bSuccess = false, message = "审核失败", result = ex.Message }; + // } + //} + + //public BaseResult StatusProcess(List inputs) + //{ + // try + // { + // if (inputs == null || inputs.Count <= 0) + // throw new Exception("没有需要审核的数据"); + + // var ht = new Dictionary(); + + // foreach (var input in inputs) + // { + // ht.Add(input, $"{input}"); + // } + + // var id = MOMExecutor.BFMomProcess_MOStatusProcess(ht, new DefaultContextContainer()); + + // return new BaseResult() { bSuccess = true, message = "审核成功", result = id }; + // } + // catch (Exception ex) + // { + // logInfo.Error(ex.Message, ex); + + // return new BaseResult() { bSuccess = false, message = "审核失败", result = ex.Message }; + + // } + + //} + + //public BaseResult UnVerify(string cCardNum, List inputs) + //{ + // try + // { + // if (inputs == null || inputs.Count <= 0) + // throw new Exception("没有需要弃审的数据"); + + // var dataReader = SimpleDACObject.ExecuteReader($"SELECT MID FROM dbo.fc_MoRoutingBill WHERE cVouchCode IN ('{string.Join("','", inputs)}') AND cVouchType='{cCardNum}'"); + + // var newInput = new List(); + + // while (dataReader.Read()) + // { + // newInput.Add(int.Parse($"{dataReader[0]}")); + // } + + // return UnVerify(newInput); + // } + // catch (Exception ex) + // { + // logInfo.Error(ex.Message, ex); + + // return new BaseResult() { bSuccess = false, message = "弃审失败", result = ex.Message }; + // } + //} + + //public BaseResult UnVerify(List inputs) + //{ + // try + // { + // if (inputs == null || inputs.Count <= 0) + // throw new Exception("没有需要弃审的数据"); + + // var ht = new Dictionary(); + + // foreach (var input in inputs) + // { + // ht.Add(input, $"{input}"); + // } + + // var id = SFExecutor.BFMoRoutingBill_UnVerify(ht, new DefaultContextContainer()); + + // return new BaseResult() { bSuccess = true, message = "弃审成功", result = id }; + // } + // catch (Exception ex) + // { + // logInfo.Error(ex.Message, ex); + + // return new BaseResult() { bSuccess = false, message = "弃审失败", result = ex.Message }; + + // } + + //} + } +} diff --git a/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs b/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs index b6abff0..27221b4 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/U8M/MoRoutingBill.cs @@ -2,6 +2,10 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; using UFIDA.U8.Framework.Api.ControlObject.Common; using UFIDA.U8.Framework.Api.ControlObject.Json; using UFIDA.U8.Framework.Api.ControlObject.Models; @@ -10,12 +14,15 @@ using UFSoft.U8.U8M.BFDispatcher; using UFSoft.U8.U8M.Common; using UFSoft.U8.U8M.DAC; using UFSoft.U8.U8M.DOSchema.SF; +using UFSoft.U8.U8M.Exceptions; + // ReSharper disable IdentifierTypo // ReSharper disable InconsistentNaming // ReSharper disable StringLiteralTypo namespace UFIDA.U8.Framework.Api.ControlObject.U8M { + public class MoRoutingBill { @@ -45,6 +52,8 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M return ds; } + + private MoRoutingBillDs GetVoucherDs(string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary input) { @@ -83,43 +92,112 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M } - return (MoRoutingBillDs)be.DataObject; + ds = (MoRoutingBillDs)be.DataObject; + + return ds; } - public BaseResult Save(string cCardNum, Dictionary input) + + public BaseResult Save(string cCardNum, Dictionary input) { try { var docNoParam = new AutoDocNoGenerateParam(EnumAutoDocNoType.HandAuto, cCardNum) - { - IsCurrentDocNoByHand = false - }; + { + IsCurrentDocNoByHand = false + }; - var ds = GetVoucherDs(cCardNum, docNoParam, input); + var ds = GetVoucherDs(cCardNum, docNoParam, input); - if (ds == null) - { - throw new Exception("未能构建数据集"); - } + if (ds == null) + { + throw new Exception("未能构建数据集"); + } //var context = new DefaultContextContainer(); //context.context["taskid"] = taskId; + logInfo.Debug($"单据编码:{cCardNum},开始保存"); + var id = SFExecutor.BFMoRoutingBill_MoRoutingBillSave(ds, docNoParam, new DefaultContextContainer()); - return new BaseResult() { bSuccess = true, message = "新增成功", result = id }; + + logInfo.Debug($"单据编码:{cCardNum},保存完成,id:{id}"); + + return new BaseResult { bSuccess = true, message = "新增成功", result = $"{id}" }; + + } + catch (U8MReferenceBENotExistException ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; + } + catch (TargetInvocationException ex) + { + if (ex.InnerException is U8MReferenceBENotExistException) + { + logInfo.Error(ex.InnerException.Message, ex.InnerException); + + return new BaseResult + { bSuccess = false, message = "新增失败", result = ex.InnerException.Message }; + } + else + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; + } + + } + catch (Exception ex) + { + + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; + } + } + + public BaseResult Save(string cCardNum, List> inputs) + { + + var idList = new List(); + + try + { + foreach (var input in inputs) + { + var iRes = Save(cCardNum, input); + + if (!iRes.bSuccess && idList.Count > 0) + { + Delete(idList); + + return iRes; + } + else if (!iRes.bSuccess) + { + return iRes; + } + + idList.Add(Convert.ToInt32(iRes.result)); + + } + + return new BaseResult { bSuccess = true, message = "新增成功", result = $"{string.Join(",", idList)}" }; + } catch (Exception ex) { logInfo.Error(ex.Message, ex); - return new BaseResult() { bSuccess = false, message = "新增失败", result = ex.Message }; - + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } } - public BaseResult Delete(string cCardNum, List inputs) + public BaseResult Delete(string cCardNum, List inputs) { try { @@ -137,15 +215,21 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M return Delete(newInput); } + catch (U8MReferenceBENotExistException ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; + } catch (Exception ex) { logInfo.Error(ex.Message, ex); - return new BaseResult() { bSuccess = false, message = "删除失败", result = ex.Message }; + return new BaseResult { bSuccess = false, message = "删除失败", result = ex.Message }; } } - public BaseResult Delete(List inputs) + public BaseResult Delete(List inputs) { try { @@ -161,19 +245,25 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M var id = SFExecutor.BFMoRoutingBill_MoRoutingBillBatchDelete(ht, new DefaultContextContainer()); - return new BaseResult() { bSuccess = true, message = "删除成功", result = id }; + return new BaseResult { bSuccess = true, message = "删除成功", result = $"{id}" }; + } + catch (U8MReferenceBENotExistException ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } catch (Exception ex) { logInfo.Error(ex.Message, ex); - return new BaseResult() { bSuccess = false, message = "删除失败", result = ex.Message }; + return new BaseResult { bSuccess = false, message = "删除失败", result = ex.Message }; } } - public BaseResult Verify(string cCardNum, List inputs) + public BaseResult Verify(string cCardNum, List inputs) { try { @@ -191,15 +281,21 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M return Verify(newInput); } + catch (U8MReferenceBENotExistException ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; + } catch (Exception ex) { logInfo.Error(ex.Message, ex); - return new BaseResult() { bSuccess = false, message = "审核失败", result = ex.Message }; + return new BaseResult { bSuccess = false, message = "审核失败", result = ex.Message }; } } - public BaseResult Verify(List inputs) + public BaseResult Verify(List inputs) { try { @@ -215,19 +311,25 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M var id = SFExecutor.BFMoRoutingBill_Verify(ht, new DefaultContextContainer()); - return new BaseResult() { bSuccess = true, message = "审核成功", result = id }; + return new BaseResult { bSuccess = true, message = "审核成功", result = $"{id}" }; + } + catch (U8MReferenceBENotExistException ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } catch (Exception ex) { logInfo.Error(ex.Message, ex); - return new BaseResult() { bSuccess = false, message = "审核失败", result = ex.Message }; + return new BaseResult { bSuccess = false, message = "审核失败", result = ex.Message }; } } - public BaseResult UnVerify(string cCardNum, List inputs) + public BaseResult UnVerify(string cCardNum, List inputs) { try { @@ -245,15 +347,21 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M return UnVerify(newInput); } + catch (U8MReferenceBENotExistException ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; + } catch (Exception ex) { logInfo.Error(ex.Message, ex); - return new BaseResult() { bSuccess = false, message = "弃审失败", result = ex.Message }; + return new BaseResult { bSuccess = false, message = "弃审失败", result = ex.Message }; } } - public BaseResult UnVerify(List inputs) + public BaseResult UnVerify(List inputs) { try { @@ -269,13 +377,19 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M var id = SFExecutor.BFMoRoutingBill_UnVerify(ht, new DefaultContextContainer()); - return new BaseResult() { bSuccess = true, message = "弃审成功", result = id }; + return new BaseResult { bSuccess = true, message = "弃审成功", result = $"{id}" }; + } + catch (U8MReferenceBENotExistException ex) + { + logInfo.Error(ex.Message, ex); + + return new BaseResult { bSuccess = false, message = "新增失败", result = ex.Message }; } catch (Exception ex) { logInfo.Error(ex.Message, ex); - return new BaseResult() { bSuccess = false, message = "弃审失败", result = ex.Message }; + return new BaseResult { bSuccess = false, message = "弃审失败", result = ex.Message }; } diff --git a/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj b/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj index a20e22d..accc235 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj +++ b/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj @@ -50,19 +50,27 @@ True D:\U8SOFT\Interop\Interop.U8Login.dll - - D:\U8SOFT\Interop\Interop.UFBillComponent.dll - True - ..\packages\log4net.2.0.17\lib\net45\log4net.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + @@ -91,6 +99,10 @@ D:\U8SOFT\U8M\UFSoft.U8.Framework.DBConnection.dll False + + D:\U8SOFT\U8M\UFSoft.U8.Framework.Exceptions.dll + False + D:\U8SOFT\Framework\UFSoft.U8.Framework.Login.BO.dll False @@ -104,6 +116,10 @@ D:\U8SOFT\Framework\UFSoft.U8.Framework.LoginContext.dll False + + D:\U8SOFT\U8M\UFSoft.U8.MO.BE.dll + False + D:\U8SOFT\U8M\UFSoft.U8.SF.BE.dll False @@ -132,9 +148,15 @@ D:\U8SOFT\U8M\UFSoft.U8.U8M.DOSchema.dll False + + D:\U8SOFT\U8M\UFSoft.U8.U8M.Exceptions.dll + False + + + @@ -142,6 +164,7 @@ + @@ -149,6 +172,7 @@ + diff --git a/UFIDA.U8.Framework.Api.ControlObject/app.config b/UFIDA.U8.Framework.Api.ControlObject/app.config new file mode 100644 index 0000000..1696df6 --- /dev/null +++ b/UFIDA.U8.Framework.Api.ControlObject/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/UFIDA.U8.Framework.Api.ControlObject/packages.config b/UFIDA.U8.Framework.Api.ControlObject/packages.config index 98c0e1a..8ed6ba4 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/packages.config +++ b/UFIDA.U8.Framework.Api.ControlObject/packages.config @@ -1,5 +1,8 @@  + + + \ No newline at end of file diff --git a/UFIDA.U8.Framework.Api.Tests/App.config b/UFIDA.U8.Framework.Api.Tests/App.config index ce50be8..7518474 100644 --- a/UFIDA.U8.Framework.Api.Tests/App.config +++ b/UFIDA.U8.Framework.Api.Tests/App.config @@ -117,6 +117,10 @@ + + + + diff --git a/UFIDA.U8.Framework.Api.Tests/Controllers/HomeControllerTest.cs b/UFIDA.U8.Framework.Api.Tests/Controllers/HomeControllerTest.cs deleted file mode 100644 index 028a555..0000000 --- a/UFIDA.U8.Framework.Api.Tests/Controllers/HomeControllerTest.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; -using System.Web.Mvc; -using UFIDA.U8.Framework.Api; -using UFIDA.U8.Framework.Api.Controllers; - -namespace UFIDA.U8.Framework.Api.Tests.Controllers -{ - [TestClass] - public class HomeControllerTest - { - [TestMethod] - public void Index() - { - // 排列 - HomeController controller = new HomeController(); - - // 操作 - ViewResult result = controller.Index() as ViewResult; - - // 断言 - Assert.IsNotNull(result); - Assert.AreEqual("Home Page", result.ViewBag.Title); - } - } -} diff --git a/UFIDA.U8.Framework.Api.Tests/Controllers/UnitTest1.cs b/UFIDA.U8.Framework.Api.Tests/Controllers/UnitTest1.cs new file mode 100644 index 0000000..d268e81 --- /dev/null +++ b/UFIDA.U8.Framework.Api.Tests/Controllers/UnitTest1.cs @@ -0,0 +1,86 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Web.UI.WebControls; +using UFIDA.U8.Framework.Api.ControlObject.AP; +using UFIDA.U8.Framework.Api.ControlObject.Models; +using UFIDA.U8.Framework.Api.ControlObject.U8M; + +namespace UFIDA.U8.Framework.Api.Tests.Controllers +{ + [TestClass] + public class UnitTest1 + { + [TestMethod] + public void TestMethod1() + { + var baseLogin = new BaseLogin(); + + baseLogin.Init( + new LoginParamter() + { + cSerial = "", cSrv = "192.168.50.31", pAccId = "(default)@801", pDate = "2015-07-01", + pPassword = "", pSubId = "DP", pUserId = "demo", pYearId = "2015" + }, false); + + var bo = new UFAPBO(); + + var dd = new List>(); + + var da = new Dictionary(){ + { "bPrePay", 0 }, + { "iType", 0 }, + { "cType", "应付款" }, + { "iAmt_f", 100 }, + { "iAmt", 100 }, + { "cKm", "220202" }, + { "cDepName", "采购部" }, + { "cPersonName", "顾潇" }, + { "iRAmt_f", 100.00 }, + { "iRAmt", 100.00 }, + { "cCusVen", "01004" }, + { "iAmt_s", 0 }, + { "iRAmt_s", 0 }, + { "cDepCode", "0401" }, + { "cPersonCode", "00043" } + }; ; + + dd.Add(da); + + var dict = new Dictionary() + { + { "cVouchType", "49" }, + { "cVouchID", "0000000030" }, + { "dVouchDate", "2015-07-22" }, + { "cDwCode", "01004" }, + { "cSSCode", "1" }, + {"cDeptCode", "0401"}, + {"cSSName", "现金"}, + {"iPeriod", 7}, + {"cPerson", "00043"}, + {"cPersonName", "顾潇"}, + {"cexch_name", "人民币"}, + {"iExchRate", 1}, + {"iAmount_f", 100.00}, + {"iAmount", 100.00}, + {"iRAmount_f", 100.00}, + {"iRAmount", 100.00}, + {"cTypeName", "付款单"}, + {"cFlag", "AP"}, + {"iPayForOther", 0}, + {"bFromBank", 0}, + {"bToBank", 0}, + {"bSure", 0}, + {"cCode", "1001"}, + { "bStartFlag", 0}, + {"body",dd} + }; + + var res= bo.CloseBillSave(baseLogin, dict, "AP"); + + Trace.WriteLine("aaaaa"); + + } + } +} diff --git a/UFIDA.U8.Framework.Api.Tests/Controllers/ValuesControllerTest.cs b/UFIDA.U8.Framework.Api.Tests/Controllers/ValuesControllerTest.cs deleted file mode 100644 index 5e26c6f..0000000 --- a/UFIDA.U8.Framework.Api.Tests/Controllers/ValuesControllerTest.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net.Http; -using System.Text; -using System.Web.Http; -using UFIDA.U8.Framework.Api; -using UFIDA.U8.Framework.Api.Controllers; - -namespace UFIDA.U8.Framework.Api.Tests.Controllers -{ - [TestClass] - public class ValuesControllerTest - { - [TestMethod] - public void Get() - { - // 排列 - ValuesController controller = new ValuesController(); - - // 操作 - IEnumerable result = controller.Get(); - - // 断言 - Assert.IsNotNull(result); - Assert.AreEqual(2, result.Count()); - Assert.AreEqual("value1", result.ElementAt(0)); - Assert.AreEqual("value2", result.ElementAt(1)); - } - - [TestMethod] - public void GetById() - { - // 排列 - ValuesController controller = new ValuesController(); - - // 操作 - string result = controller.Get(5); - - // 断言 - Assert.AreEqual("value", result); - } - - [TestMethod] - public void Post() - { - // 排列 - ValuesController controller = new ValuesController(); - - // 操作 - controller.Post("value"); - - // 断言 - } - - [TestMethod] - public void Put() - { - // 排列 - ValuesController controller = new ValuesController(); - - // 操作 - controller.Put(5, "value"); - - // 断言 - } - - [TestMethod] - public void Delete() - { - // 排列 - ValuesController controller = new ValuesController(); - - // 操作 - controller.Delete(5); - - // 断言 - } - } -} diff --git a/UFIDA.U8.Framework.Api.Tests/UFIDA.U8.Framework.Api.Tests.csproj b/UFIDA.U8.Framework.Api.Tests/UFIDA.U8.Framework.Api.Tests.csproj index a54267c..0d60643 100644 --- a/UFIDA.U8.Framework.Api.Tests/UFIDA.U8.Framework.Api.Tests.csproj +++ b/UFIDA.U8.Framework.Api.Tests/UFIDA.U8.Framework.Api.Tests.csproj @@ -1,8 +1,8 @@  - - - - + + + + Debug AnyCPU @@ -28,6 +28,7 @@ DEBUG;TRACE prompt 4 + x86 pdbonly @@ -42,20 +43,20 @@ ..\packages\Microsoft.ApplicationInsights.2.22.0\lib\net46\Microsoft.ApplicationInsights.dll - - ..\packages\Microsoft.Testing.Extensions.Telemetry.1.2.1\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll + + ..\packages\Microsoft.Testing.Extensions.Telemetry.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll - - ..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.2.1\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll + + ..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll - - ..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.2.1\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll + + ..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll - - ..\packages\Microsoft.Testing.Platform.1.2.1\lib\netstandard2.0\Microsoft.Testing.Platform.dll + + ..\packages\Microsoft.Testing.Platform.1.3.1\lib\netstandard2.0\Microsoft.Testing.Platform.dll - - ..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll + + ..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll @@ -67,10 +68,10 @@ ..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll - ..\packages\MSTest.TestFramework.3.4.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + ..\packages\MSTest.TestFramework.3.5.0\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - ..\packages\MSTest.TestFramework.3.4.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + ..\packages\MSTest.TestFramework.3.5.0\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -153,11 +154,20 @@ + + D:\U8SOFT\U8M\UFSoft.U8.Framework.ContextSrv.dll + + + D:\U8SOFT\Framework\UFSoft.U8.Framework.Login.UI.dll + + + False + D:\U8SOFT\Framework\UFSoft.U8.Framework.LoginContext.dll + + - - @@ -166,9 +176,9 @@ - - {EF3F89D5-BA03-4768-9064-7FE0DFF841BB} - UFIDA.U8.Framework.Api + + {22c84be9-1613-4e32-9e98-237e96fd3540} + UFIDA.U8.Framework.Api.ControlObject @@ -176,15 +186,15 @@ 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 - - - - - - + + + + + + - - + +