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}。
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+