测试线程静态前提交

This commit is contained in:
minjQiu
2024-08-07 18:44:46 +08:00
parent b13ae6ec88
commit 4e4316c6dc
33 changed files with 1596 additions and 380 deletions
@@ -1,5 +1,5 @@
using SqlSugar; using SqlSugar;
using UFIDA.U8.Framework.Api.ControlObject.Models; using UFIDA.U8.Framework.Api.Common.Enum;
namespace UFIDA.U8.Framework.Api.Common.Entity namespace UFIDA.U8.Framework.Api.Common.Entity
{ {
@@ -8,7 +8,7 @@ namespace UFIDA.U8.Framework.Api.Common.Entity
/// </summary> /// </summary>
[SugarTable("SysU8AccountConfig", "系统U8账套对接参数配置表")] [SugarTable("SysU8AccountConfig", "系统U8账套对接参数配置表")]
[SugarIndex("index_{table}_I", nameof(Id), OrderByType.Asc)] [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)] [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "主键", ColumnName = "Id", IsNullable = false)]
@@ -18,61 +18,61 @@ namespace UFIDA.U8.Framework.Api.Common.Entity
/// 系统号 /// 系统号
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "系统号", Length = 100)] [SugarColumn(ColumnDescription = "系统号", Length = 100)]
public override string cAccountNo { get; set; } public virtual string cAccountNo { get; set; }
/// <summary> /// <summary>
/// 账套号 /// 账套号
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "账套号", Length = 100)] [SugarColumn(ColumnDescription = "账套号", Length = 100)]
public override string cAcc_Id { get; set; } public virtual string cAcc_Id { get; set; }
/// <summary> /// <summary>
/// 账套名称 /// 账套名称
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "账套名称", Length = 255)] [SugarColumn(ColumnDescription = "账套名称", Length = 255)]
public override string cAcc_Name { get; set; } public virtual string cAcc_Name { get; set; }
/// <summary> /// <summary>
/// 账套数据源 /// 账套数据源
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "账套数据源", Length = 255)] [SugarColumn(ColumnDescription = "账套数据源", Length = 255)]
public override string cAcc_DataSource { get; set; } public virtual string cAcc_DataSource { get; set; }
/// <summary> /// <summary>
/// 用户ID /// 用户ID
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "用户ID", Length = 100)] [SugarColumn(ColumnDescription = "用户ID", Length = 100)]
public override string cUser_Id { get; set; } public virtual string cUser_Id { get; set; }
/// <summary> /// <summary>
/// 用户名 /// 用户名
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "用户名", Length = 255)] [SugarColumn(ColumnDescription = "用户名", Length = 255)]
public override string cUser_Name { get; set; } public virtual string cUser_Name { get; set; }
/// <summary> /// <summary>
/// 密码 /// 密码
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "密码", Length = 255)] [SugarColumn(ColumnDescription = "密码", Length = 255)]
public override string cPassword { get; set; } public virtual string cPassword { get; set; }
/// <summary> /// <summary>
/// 服务器地址 /// 服务器地址
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "服务器地址", Length = 255)] [SugarColumn(ColumnDescription = "服务器地址", Length = 255)]
public override string cSrv { get; set; } public virtual string cSrv { get; set; }
/// <summary> /// <summary>
/// 状态 /// 状态
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "状态")] [SugarColumn(ColumnDescription = "状态")]
public override StatusEnum Status { get; set; } = StatusEnum.Enable; public virtual StatusEnum Status { get; set; } = StatusEnum.Enable;
/// <summary> /// <summary>
/// 备注 /// 备注
/// </summary> /// </summary>
[SugarColumn(ColumnDescription = "备注", Length = 255)] [SugarColumn(ColumnDescription = "备注", Length = 255)]
public override string Remark { get; set; } public virtual string Remark { get; set; }
} }
} }
@@ -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
{
/// <summary>
/// 系统U8账套对接参数配置表
/// </summary>
[SugarTable("SysU8MTask", "U8生产制造任务")]
public class SysU8MTask
{
[SugarColumn(IsPrimaryKey = true, ColumnDescription = "主键", ColumnName = "Id", IsNullable = false)]
public long Id { get; set; }
/// <summary>
/// U8生产制造登录信息
/// </summary>
[SugarColumn(ColumnDescription = "U8生产制造登录信息", Length = 100)]
public string U8MPool { get; set; }
/// <summary>
/// 任务时间
/// </summary>
[SugarColumn(ColumnDescription = "任务时间")]
public DateTime dDate { get; set; }
}
}
@@ -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
{
/// <summary>
/// 通用状态枚举
/// </summary>
[Description("通用状态枚举")]
public enum StatusEnum
{
/// <summary>
/// 启用
/// </summary>
[Description("启用")]
Enable = 1,
/// <summary>
/// 停用
/// </summary>
[Description("停用")]
Disable = 2,
}
}
@@ -22,6 +22,7 @@
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
@@ -41,40 +42,24 @@
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="SqlSugar, Version=5.1.4.162, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="SqlSugar, Version=5.1.4.166, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SqlSugar.5.1.4.162\lib\SqlSugar.dll</HintPath> <HintPath>..\packages\SqlSugar.5.1.4.166\lib\SqlSugar.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="UFSoft.U8.U8M.DAC">
<HintPath>D:\U8SOFT\U8M\UFSoft.U8.U8M.DAC.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Entity\SysU8AccountConfig.cs" /> <Compile Include="Entity\SysU8AccountConfig.cs" />
<Compile Include="Entity\SysU8MTask.cs" />
<Compile Include="Enum\StatusEnum.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Unit\GM\GM.cs" /> <Compile Include="Unit\GM\GM.cs" />
<Compile Include="Unit\GM\GMUtil.cs" /> <Compile Include="Unit\GM\GMUtil.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" />
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup />
<ProjectReference Include="..\UFIDA.U8.Framework.Api.ControlObject\UFIDA.U8.Framework.Api.ControlObject.csproj">
<Project>{22c84be9-1613-4e32-9e98-237e96fd3540}</Project>
<Name>UFIDA.U8.Framework.Api.ControlObject</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Enum\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
@@ -3,5 +3,5 @@
<package id="BouncyCastle.Cryptography" version="2.4.0" targetFramework="net48" /> <package id="BouncyCastle.Cryptography" version="2.4.0" targetFramework="net48" />
<package id="log4net" version="2.0.17" targetFramework="net48" /> <package id="log4net" version="2.0.17" targetFramework="net48" />
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
<package id="SqlSugar" version="5.1.4.162" targetFramework="net48" /> <package id="SqlSugar" version="5.1.4.166" targetFramework="net48" />
</packages> </packages>
@@ -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<dynamic> CloseBillSave(BaseLogin baseLogin,Dictionary<string,object> 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<Dictionary<string, object>> 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<dynamic> { bSuccess = true, message = "保存成功", result = "保存成功" };
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic> { bSuccess = false, message = "保存失败", result = ex.Message };
}
}
}
}
@@ -1,7 +1,9 @@
using System; using log4net;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Web.UI.WebControls;
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
// ReSharper disable IdentifierTypo // ReSharper disable IdentifierTypo
@@ -11,8 +13,22 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common
{ {
public class BEHelper public class BEHelper
{ {
protected readonly ILog logInfo = LogManager.GetLogger("logInfo");
private readonly dynamic _be; private readonly dynamic _be;
private readonly PropertyInfo[] _props; 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) public BEHelper(dynamic be)
{ {
@@ -25,7 +41,10 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common
{ {
foreach (var key in dictionary.Keys) 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", "")); var defineCode = int.Parse(key.Replace("define", ""));
if (dictionary.TryGetValue(key, out var bValue) && !string.IsNullOrWhiteSpace($"{bValue}")) 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]; _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") 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)); var prop = _props.First(a => string.Equals(a.Name, key, StringComparison.OrdinalIgnoreCase));
if (prop.PropertyType == typeof(string)) CommonHelper.SetPropValue(prop, _be, dictionary[key]);
{
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]}"));
}
} }
} }
} }
} }
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);
}
} }
} }
@@ -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<string,object> 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<string, object> 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<Dictionary<string, object>> 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<string, object> dictionary, string bodyKey = "body")
{
if (dictionary.ContainsKey(bodyKey))
{
var body= dictionary[bodyKey].ToJson().ToList<Dictionary<string,object>>();
dictionary[bodyKey] = body;
}
}
public static dynamic GetComObject(this string comName)
{
var comInstance = new GetComInstance();
var obj = comInstance.GetComObject(ref comName);
return obj;
}
}
}
@@ -1,23 +1,25 @@
using System; using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ADODB; using ADODB;
using log4net;
using UFIDA.U8.Framework.Api.ControlObject.Models; using UFIDA.U8.Framework.Api.ControlObject.Models;
using UFSoft.U8.Framework.ContextSrv; using UFSoft.U8.Framework.ContextSrv;
using UFSoft.U8.Framework.Login.UI; using UFSoft.U8.Framework.Login.UI;
using UFSoft.U8.Framework.LoginContext; using UFSoft.U8.Framework.LoginContext;
using NetLogin = UFSoft.U8.Framework.Login.UI.clsLogin; using NetLogin = UFSoft.U8.Framework.Login.UI.clsLogin;
using ThreadContext = UFSoft.U8.Framework.ContextSrv.ThreadContext;
using VBLogin = U8Login.clsLogin; using VBLogin = U8Login.clsLogin;
// ReSharper disable IdentifierTypo
// ReSharper disable InconsistentNaming
namespace UFIDA.U8.Framework.Api.ControlObject.U8M namespace UFIDA.U8.Framework.Api.ControlObject.U8M
{ {
public class BaseLogin public class BaseLogin
{ {
protected readonly ILog logInfo = LogManager.GetLogger("logInfo");
private NetLogin _netLogin { get; set; } private NetLogin _netLogin { get; set; }
private VBLogin _vbLogin { get; set; } public VBLogin _vbLogin { get; set; }
public ProductContext _productContext { get; set; } public ProductContext _productContext { get; set; }
@@ -27,78 +29,221 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
/// 初始化生产制造上下文 /// 初始化生产制造上下文
/// </summary> /// </summary>
/// <param name="paramter">登录参数</param> /// <param name="paramter">登录参数</param>
/// <param name="bMon"></param>
/// <exception cref="ArgumentNullException"></exception> /// <exception cref="ArgumentNullException"></exception>
/// <exception cref="Exception"></exception> /// <exception cref="Exception"></exception>
public void Init(LoginParamter paramter) public void Init(LoginParamter paramter,bool bMon=true, int traceTimes=0)
{ {
//if (!string.IsNullOrWhiteSpace(ThreadContext.ServerToken)) if (traceTimes > 5)
//{ throw new Exception("U8登录异常");
// ThreadContext.ServerToken = null;
//}
//if (!string.IsNullOrWhiteSpace(ThreadContext.U8LoginInfo!=null)) try
//{
// 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))
{ {
//_vbLogin.ShutDown(); //if (!string.IsNullOrWhiteSpace(ThreadContext.ServerToken))
throw new Exception(_vbLogin.ShareString); //{
} // ThreadContext.ServerToken = null;
Trace.WriteLine($"U8版本:{_vbLogin.GetVersionInfo()}"); //}
Trace.WriteLine($"1--登录令牌:{_netLogin.userToken}");
if (!string.IsNullOrWhiteSpace(Cryptography.m_userToken)) //if (!string.IsNullOrWhiteSpace(ThreadContext.U8LoginInfo!=null))
{ //{
Cryptography.m_userToken = ""; // ThreadContext.U8LoginInfo = null;
} //}
if (_netLogin.login(paramter.pSubId, paramter.pUserId, paramter.pPassword, paramter.cSrv, paramter.pDate, paramter.pAccId, paramter.cSerial)) if (paramter == null) throw new ArgumentNullException(nameof(paramter));
{
_productContext = _netLogin.SubLogin("AS");
if (_productContext == null) if (!string.IsNullOrWhiteSpace(Cryptography.m_userToken))
throw new Exception($"1--初始化U8登录上下文失败------{_netLogin.ErrDescript}"); {
Cryptography.m_userToken = "";
}
Trace.WriteLine($"2--登录令牌:{_netLogin.userToken}"); if (bMon)
//Trace.WriteLine($"2--上下文令牌:{_productContext.calledContext.token}"); {
#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.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; 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); Init(paramter, bMon, traceTimes + 1);
}
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);
} }
public void ShutDown() public void ShutDown()
@@ -109,15 +254,10 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
_vbLogin?.ShutDown(); _vbLogin?.ShutDown();
_productContext=null; _productContext=null;
_netLogin?.SubLogout("DP");
_netLogin?.ShutDown(); _netLogin?.ShutDown();
_netLogin?.Dispose();
_vbLogin = null; _vbLogin = null;
_netLogin = null; _netLogin = null;
if (!string.IsNullOrWhiteSpace(Cryptography.m_userToken))
{
Cryptography.m_userToken = "";
}
} }
public bool CheckAccId(string cAccId) public bool CheckAccId(string cAccId)
@@ -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<string, object> 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<Dictionary<string, object>> ?? $"{input["body"]}".ToObject<List<Dictionary<string, object>>>();
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<dynamic> Save(string cCardNum, Dictionary<string, object> 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<dynamic>() { bSuccess = true, message = "新增成功", result = id };
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "新增失败", result = ex.Message };
}
}
public BaseResult<dynamic> Delete(string cCardNum, List<string> 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<int>();
while (dataReader.Read())
{
newInput.Add(int.Parse($"{dataReader[0]}"));
}
return Delete(newInput);
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "删除失败", result = ex.Message };
}
}
public BaseResult<dynamic> Delete(List<int> 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<dynamic>() { bSuccess = true, message = "删除成功", result = id };
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "删除失败", result = ex.Message };
}
}
//public BaseResult<dynamic> Verify(string cCardNum, List<string> 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<int>();
// while (dataReader.Read())
// {
// newInput.Add(int.Parse($"{dataReader[0]}"));
// }
// return Verify(newInput);
// }
// catch (Exception ex)
// {
// logInfo.Error(ex.Message, ex);
// return new BaseResult<dynamic>() { bSuccess = false, message = "审核失败", result = ex.Message };
// }
//}
//public BaseResult<dynamic> StatusProcess(List<int> inputs)
//{
// try
// {
// if (inputs == null || inputs.Count <= 0)
// throw new Exception("没有需要审核的数据");
// var ht = new Dictionary<int, string>();
// foreach (var input in inputs)
// {
// ht.Add(input, $"{input}");
// }
// var id = MOMExecutor.BFMomProcess_MOStatusProcess(ht, new DefaultContextContainer());
// return new BaseResult<dynamic>() { bSuccess = true, message = "审核成功", result = id };
// }
// catch (Exception ex)
// {
// logInfo.Error(ex.Message, ex);
// return new BaseResult<dynamic>() { bSuccess = false, message = "审核失败", result = ex.Message };
// }
//}
//public BaseResult<dynamic> UnVerify(string cCardNum, List<string> 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<int>();
// while (dataReader.Read())
// {
// newInput.Add(int.Parse($"{dataReader[0]}"));
// }
// return UnVerify(newInput);
// }
// catch (Exception ex)
// {
// logInfo.Error(ex.Message, ex);
// return new BaseResult<dynamic>() { bSuccess = false, message = "弃审失败", result = ex.Message };
// }
//}
//public BaseResult<dynamic> UnVerify(List<int> inputs)
//{
// try
// {
// if (inputs == null || inputs.Count <= 0)
// throw new Exception("没有需要弃审的数据");
// var ht = new Dictionary<int, string>();
// foreach (var input in inputs)
// {
// ht.Add(input, $"{input}");
// }
// var id = SFExecutor.BFMoRoutingBill_UnVerify(ht, new DefaultContextContainer());
// return new BaseResult<dynamic>() { bSuccess = true, message = "弃审成功", result = id };
// }
// catch (Exception ex)
// {
// logInfo.Error(ex.Message, ex);
// return new BaseResult<dynamic>() { bSuccess = false, message = "弃审失败", result = ex.Message };
// }
//}
}
}
@@ -2,6 +2,10 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; 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.Common;
using UFIDA.U8.Framework.Api.ControlObject.Json; using UFIDA.U8.Framework.Api.ControlObject.Json;
using UFIDA.U8.Framework.Api.ControlObject.Models; 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.Common;
using UFSoft.U8.U8M.DAC; using UFSoft.U8.U8M.DAC;
using UFSoft.U8.U8M.DOSchema.SF; using UFSoft.U8.U8M.DOSchema.SF;
using UFSoft.U8.U8M.Exceptions;
// ReSharper disable IdentifierTypo // ReSharper disable IdentifierTypo
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
// ReSharper disable StringLiteralTypo // ReSharper disable StringLiteralTypo
namespace UFIDA.U8.Framework.Api.ControlObject.U8M namespace UFIDA.U8.Framework.Api.ControlObject.U8M
{ {
public class MoRoutingBill public class MoRoutingBill
{ {
@@ -45,6 +52,8 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
return ds; return ds;
} }
private MoRoutingBillDs GetVoucherDs(string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary<string, object> input) private MoRoutingBillDs GetVoucherDs(string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary<string, object> input)
{ {
@@ -83,43 +92,112 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
} }
return (MoRoutingBillDs)be.DataObject; ds = (MoRoutingBillDs)be.DataObject;
return ds;
} }
public BaseResult<dynamic> Save(string cCardNum, Dictionary<string, object> input)
public BaseResult<string> Save(string cCardNum, Dictionary<string, object> input)
{ {
try try
{ {
var docNoParam = new AutoDocNoGenerateParam(EnumAutoDocNoType.HandAuto, cCardNum) 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) if (ds == null)
{ {
throw new Exception("未能构建数据集"); throw new Exception("未能构建数据集");
} }
//var context = new DefaultContextContainer(); //var context = new DefaultContextContainer();
//context.context["taskid"] = taskId; //context.context["taskid"] = taskId;
logInfo.Debug($"单据编码:{cCardNum},开始保存");
var id = SFExecutor.BFMoRoutingBill_MoRoutingBillSave(ds, docNoParam, new DefaultContextContainer()); var id = SFExecutor.BFMoRoutingBill_MoRoutingBillSave(ds, docNoParam, new DefaultContextContainer());
return new BaseResult<dynamic>() { bSuccess = true, message = "新增成功", result = id };
logInfo.Debug($"单据编码:{cCardNum},保存完成,id:{id}");
return new BaseResult<string> { bSuccess = true, message = "新增成功", result = $"{id}" };
}
catch (U8MReferenceBENotExistException ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
catch (TargetInvocationException ex)
{
if (ex.InnerException is U8MReferenceBENotExistException)
{
logInfo.Error(ex.InnerException.Message, ex.InnerException);
return new BaseResult<string>
{ bSuccess = false, message = "新增失败", result = ex.InnerException.Message };
}
else
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
}
public BaseResult<string> Save(string cCardNum, List<Dictionary<string, object>> inputs)
{
var idList = new List<int>();
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<string> { bSuccess = true, message = "新增成功", result = $"{string.Join(",", idList)}" };
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "新增失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
} }
} }
public BaseResult<dynamic> Delete(string cCardNum, List<string> inputs) public BaseResult<string> Delete(string cCardNum, List<string> inputs)
{ {
try try
{ {
@@ -137,15 +215,21 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
return Delete(newInput); return Delete(newInput);
} }
catch (U8MReferenceBENotExistException ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "删除失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message };
} }
} }
public BaseResult<dynamic> Delete(List<int> inputs) public BaseResult<string> Delete(List<int> inputs)
{ {
try try
{ {
@@ -161,19 +245,25 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
var id = SFExecutor.BFMoRoutingBill_MoRoutingBillBatchDelete(ht, new DefaultContextContainer()); var id = SFExecutor.BFMoRoutingBill_MoRoutingBillBatchDelete(ht, new DefaultContextContainer());
return new BaseResult<dynamic>() { bSuccess = true, message = "删除成功", result = id }; return new BaseResult<string> { bSuccess = true, message = "删除成功", result = $"{id}" };
}
catch (U8MReferenceBENotExistException ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "删除失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message };
} }
} }
public BaseResult<dynamic> Verify(string cCardNum, List<string> inputs) public BaseResult<string> Verify(string cCardNum, List<string> inputs)
{ {
try try
{ {
@@ -191,15 +281,21 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
return Verify(newInput); return Verify(newInput);
} }
catch (U8MReferenceBENotExistException ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "审核失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message };
} }
} }
public BaseResult<dynamic> Verify(List<int> inputs) public BaseResult<string> Verify(List<int> inputs)
{ {
try try
{ {
@@ -215,19 +311,25 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
var id = SFExecutor.BFMoRoutingBill_Verify(ht, new DefaultContextContainer()); var id = SFExecutor.BFMoRoutingBill_Verify(ht, new DefaultContextContainer());
return new BaseResult<dynamic>() { bSuccess = true, message = "审核成功", result = id }; return new BaseResult<string> { bSuccess = true, message = "审核成功", result = $"{id}" };
}
catch (U8MReferenceBENotExistException ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "审核失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message };
} }
} }
public BaseResult<dynamic> UnVerify(string cCardNum, List<string> inputs) public BaseResult<string> UnVerify(string cCardNum, List<string> inputs)
{ {
try try
{ {
@@ -245,15 +347,21 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
return UnVerify(newInput); return UnVerify(newInput);
} }
catch (U8MReferenceBENotExistException ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "弃审失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "弃审失败", result = ex.Message };
} }
} }
public BaseResult<dynamic> UnVerify(List<int> inputs) public BaseResult<string> UnVerify(List<int> inputs)
{ {
try try
{ {
@@ -269,13 +377,19 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
var id = SFExecutor.BFMoRoutingBill_UnVerify(ht, new DefaultContextContainer()); var id = SFExecutor.BFMoRoutingBill_UnVerify(ht, new DefaultContextContainer());
return new BaseResult<dynamic>() { bSuccess = true, message = "弃审成功", result = id }; return new BaseResult<string> { bSuccess = true, message = "弃审成功", result = $"{id}" };
}
catch (U8MReferenceBENotExistException ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic>() { bSuccess = false, message = "弃审失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "弃审失败", result = ex.Message };
} }
@@ -50,19 +50,27 @@
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
<HintPath>D:\U8SOFT\Interop\Interop.U8Login.dll</HintPath> <HintPath>D:\U8SOFT\Interop\Interop.U8Login.dll</HintPath>
</Reference> </Reference>
<Reference Include="Interop.UFBillComponent">
<HintPath>D:\U8SOFT\Interop\Interop.UFBillComponent.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="log4net, Version=2.0.17.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL"> <Reference Include="log4net, Version=2.0.17.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.17\lib\net45\log4net.dll</HintPath> <HintPath>..\packages\log4net.2.0.17\lib\net45\log4net.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Numerics" />
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
@@ -91,6 +99,10 @@
<HintPath>D:\U8SOFT\U8M\UFSoft.U8.Framework.DBConnection.dll</HintPath> <HintPath>D:\U8SOFT\U8M\UFSoft.U8.Framework.DBConnection.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UFSoft.U8.Framework.Exceptions">
<HintPath>D:\U8SOFT\U8M\UFSoft.U8.Framework.Exceptions.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UFSoft.U8.Framework.Login.BO"> <Reference Include="UFSoft.U8.Framework.Login.BO">
<HintPath>D:\U8SOFT\Framework\UFSoft.U8.Framework.Login.BO.dll</HintPath> <HintPath>D:\U8SOFT\Framework\UFSoft.U8.Framework.Login.BO.dll</HintPath>
<Private>False</Private> <Private>False</Private>
@@ -104,6 +116,10 @@
<HintPath>D:\U8SOFT\Framework\UFSoft.U8.Framework.LoginContext.dll</HintPath> <HintPath>D:\U8SOFT\Framework\UFSoft.U8.Framework.LoginContext.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UFSoft.U8.MO.BE">
<HintPath>D:\U8SOFT\U8M\UFSoft.U8.MO.BE.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="UFSoft.U8.SF.BE"> <Reference Include="UFSoft.U8.SF.BE">
<HintPath>D:\U8SOFT\U8M\UFSoft.U8.SF.BE.dll</HintPath> <HintPath>D:\U8SOFT\U8M\UFSoft.U8.SF.BE.dll</HintPath>
<Private>False</Private> <Private>False</Private>
@@ -132,9 +148,15 @@
<HintPath>D:\U8SOFT\U8M\UFSoft.U8.U8M.DOSchema.dll</HintPath> <HintPath>D:\U8SOFT\U8M\UFSoft.U8.U8M.DOSchema.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="UFSoft.U8.U8M.Exceptions">
<HintPath>D:\U8SOFT\U8M\UFSoft.U8.U8M.Exceptions.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AP\UFAPBO.cs" />
<Compile Include="Common\BEHelper.cs" /> <Compile Include="Common\BEHelper.cs" />
<Compile Include="Common\CommonHelper.cs" />
<Compile Include="Json\JsonHelper.cs" /> <Compile Include="Json\JsonHelper.cs" />
<Compile Include="Models\BaseResult.cs" /> <Compile Include="Models\BaseResult.cs" />
<Compile Include="Models\LoginParamter.cs" /> <Compile Include="Models\LoginParamter.cs" />
@@ -142,6 +164,7 @@
<Compile Include="Models\SysU8AccountConfig.cs" /> <Compile Include="Models\SysU8AccountConfig.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="U8M\BaseLogin.cs" /> <Compile Include="U8M\BaseLogin.cs" />
<Compile Include="U8M\MOrder.cs" />
<Compile Include="U8M\MoRoutingBill.cs" /> <Compile Include="U8M\MoRoutingBill.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -149,6 +172,7 @@
<Folder Include="ST\" /> <Folder Include="ST\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" />
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="log4net" version="2.0.17" targetFramework="net48" /> <package id="log4net" version="2.0.17" targetFramework="net48" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="8.0.0" targetFramework="net48" />
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
</packages> </packages>
+4
View File
@@ -117,6 +117,10 @@
<assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" /> <assemblyIdentity name="SQLitePCLRaw.core" publicKeyToken="1488e028ca7ab535" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.8.2226" newVersion="2.1.8.2226" /> <bindingRedirect oldVersion="0.0.0.0-2.1.8.2226" newVersion="2.1.8.2226" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.118.0" newVersion="1.0.118.0" />
</dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
</configuration> </configuration>
@@ -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);
}
}
}
@@ -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<Dictionary<string, object>>();
var da = new Dictionary<string, object>(){
{ "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<string, object>()
{
{ "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");
}
}
}
@@ -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<string> 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);
// 断言
}
}
}
@@ -1,8 +1,8 @@
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\MSTest.TestAdapter.3.4.3\build\net462\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.3.4.3\build\net462\MSTest.TestAdapter.props')" /> <Import Project="..\packages\MSTest.TestAdapter.3.5.0\build\net462\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.3.5.0\build\net462\MSTest.TestAdapter.props')" />
<Import Project="..\packages\Microsoft.Testing.Extensions.Telemetry.1.2.1\build\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.props" Condition="Exists('..\packages\Microsoft.Testing.Extensions.Telemetry.1.2.1\build\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.props')" /> <Import Project="..\packages\Microsoft.Testing.Extensions.Telemetry.1.3.1\build\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.props" Condition="Exists('..\packages\Microsoft.Testing.Extensions.Telemetry.1.3.1\build\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.props')" />
<Import Project="..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.props" Condition="Exists('..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.props')" /> <Import Project="..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.props" Condition="Exists('..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.props')" />
<Import Project="..\packages\Microsoft.Testing.Platform.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.props" Condition="Exists('..\packages\Microsoft.Testing.Platform.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.props')" /> <Import Project="..\packages\Microsoft.Testing.Platform.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.props" Condition="Exists('..\packages\Microsoft.Testing.Platform.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -28,6 +28,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
@@ -42,20 +43,20 @@
<HintPath>..\packages\Microsoft.ApplicationInsights.2.22.0\lib\net46\Microsoft.ApplicationInsights.dll</HintPath> <HintPath>..\packages\Microsoft.ApplicationInsights.2.22.0\lib\net46\Microsoft.ApplicationInsights.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Testing.Extensions.Telemetry, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.Testing.Extensions.Telemetry, Version=1.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Testing.Extensions.Telemetry.1.2.1\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll</HintPath> <HintPath>..\packages\Microsoft.Testing.Extensions.Telemetry.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Testing.Extensions.TrxReport.Abstractions, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.Testing.Extensions.TrxReport.Abstractions, Version=1.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.2.1\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll</HintPath> <HintPath>..\packages\Microsoft.Testing.Extensions.TrxReport.Abstractions.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.TrxReport.Abstractions.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Testing.Extensions.VSTestBridge, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.Testing.Extensions.VSTestBridge, Version=1.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.2.1\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll</HintPath> <HintPath>..\packages\Microsoft.Testing.Extensions.VSTestBridge.1.3.1\lib\netstandard2.0\Microsoft.Testing.Extensions.VSTestBridge.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Testing.Platform, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.Testing.Platform, Version=1.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Testing.Platform.1.2.1\lib\netstandard2.0\Microsoft.Testing.Platform.dll</HintPath> <HintPath>..\packages\Microsoft.Testing.Platform.1.3.1\lib\netstandard2.0\Microsoft.Testing.Platform.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Testing.Platform.MSBuild, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.Testing.Platform.MSBuild, Version=1.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll</HintPath> <HintPath>..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\lib\netstandard2.0\Microsoft.Testing.Platform.MSBuild.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.TestPlatform.CoreUtilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.TestPlatform.CoreUtilities, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll</HintPath> <HintPath>..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.TestPlatform.CoreUtilities.dll</HintPath>
@@ -67,10 +68,10 @@
<HintPath>..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll</HintPath> <HintPath>..\packages\Microsoft.TestPlatform.ObjectModel.17.10.0\lib\net462\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.3.4.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath> <HintPath>..\packages\MSTest.TestFramework.3.5.0\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.3.4.3\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath> <HintPath>..\packages\MSTest.TestFramework.3.5.0\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
@@ -153,11 +154,20 @@
</Reference> </Reference>
<Reference Include="System.Net.Http" /> <Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" /> <Reference Include="System.Net.Http.WebRequest" />
<Reference Include="UFSoft.U8.Framework.ContextSrv">
<HintPath>D:\U8SOFT\U8M\UFSoft.U8.Framework.ContextSrv.dll</HintPath>
</Reference>
<Reference Include="UFSoft.U8.Framework.Login.UI">
<HintPath>D:\U8SOFT\Framework\UFSoft.U8.Framework.Login.UI.dll</HintPath>
</Reference>
<Reference Include="UFSoft.U8.Framework.LoginContext, Version=1.0.0.0, Culture=neutral, PublicKeyToken=90e57cffdf9d854d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>D:\U8SOFT\Framework\UFSoft.U8.Framework.LoginContext.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Controllers\UnitTest1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Controllers\HomeControllerTest.cs" />
<Compile Include="Controllers\ValuesControllerTest.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="App.config" /> <Content Include="App.config" />
@@ -166,9 +176,9 @@
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\UFIDA.U8.Framework.Api\UFIDA.U8.Framework.Api.csproj"> <ProjectReference Include="..\UFIDA.U8.Framework.Api.ControlObject\UFIDA.U8.Framework.Api.ControlObject.csproj">
<Project>{EF3F89D5-BA03-4768-9064-7FE0DFF841BB}</Project> <Project>{22c84be9-1613-4e32-9e98-237e96fd3540}</Project>
<Name>UFIDA.U8.Framework.Api</Name> <Name>UFIDA.U8.Framework.Api.ControlObject</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
@@ -176,15 +186,15 @@
<PropertyGroup> <PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText> <ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.Testing.Platform.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Testing.Platform.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.props'))" /> <Error Condition="!Exists('..\packages\Microsoft.Testing.Platform.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Testing.Platform.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.props'))" /> <Error Condition="!Exists('..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.targets'))" /> <Error Condition="!Exists('..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.Testing.Extensions.Telemetry.1.2.1\build\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Testing.Extensions.Telemetry.1.2.1\build\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.props'))" /> <Error Condition="!Exists('..\packages\Microsoft.Testing.Extensions.Telemetry.1.3.1\build\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Testing.Extensions.Telemetry.1.3.1\build\netstandard2.0\Microsoft.Testing.Extensions.Telemetry.props'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.3.4.3\build\net462\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.3.4.3\build\net462\MSTest.TestAdapter.props'))" /> <Error Condition="!Exists('..\packages\MSTest.TestAdapter.3.5.0\build\net462\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.3.5.0\build\net462\MSTest.TestAdapter.props'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.3.4.3\build\net462\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.3.4.3\build\net462\MSTest.TestAdapter.targets'))" /> <Error Condition="!Exists('..\packages\MSTest.TestAdapter.3.5.0\build\net462\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.3.5.0\build\net462\MSTest.TestAdapter.targets'))" />
</Target> </Target>
<Import Project="..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.targets" Condition="Exists('..\packages\Microsoft.Testing.Platform.MSBuild.1.2.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.targets')" /> <Import Project="..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.targets" Condition="Exists('..\packages\Microsoft.Testing.Platform.MSBuild.1.3.1\build\netstandard2.0\Microsoft.Testing.Platform.MSBuild.targets')" />
<Import Project="..\packages\MSTest.TestAdapter.3.4.3\build\net462\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.3.4.3\build\net462\MSTest.TestAdapter.targets')" /> <Import Project="..\packages\MSTest.TestAdapter.3.5.0\build\net462\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.3.5.0\build\net462\MSTest.TestAdapter.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
+7 -7
View File
@@ -13,15 +13,15 @@
<package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.3.0" targetFramework="net48" /> <package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.3.0" targetFramework="net48" />
<package id="Microsoft.AspNet.WebPages" version="3.3.0" targetFramework="net48" /> <package id="Microsoft.AspNet.WebPages" version="3.3.0" targetFramework="net48" />
<package id="Microsoft.AspNet.WebPages.zh-Hans" version="3.3.0" targetFramework="net48" /> <package id="Microsoft.AspNet.WebPages.zh-Hans" version="3.3.0" targetFramework="net48" />
<package id="Microsoft.Testing.Extensions.Telemetry" version="1.2.1" targetFramework="net48" /> <package id="Microsoft.Testing.Extensions.Telemetry" version="1.3.1" targetFramework="net48" />
<package id="Microsoft.Testing.Extensions.TrxReport.Abstractions" version="1.2.1" targetFramework="net48" /> <package id="Microsoft.Testing.Extensions.TrxReport.Abstractions" version="1.3.1" targetFramework="net48" />
<package id="Microsoft.Testing.Extensions.VSTestBridge" version="1.2.1" targetFramework="net48" /> <package id="Microsoft.Testing.Extensions.VSTestBridge" version="1.3.1" targetFramework="net48" />
<package id="Microsoft.Testing.Platform" version="1.2.1" targetFramework="net48" /> <package id="Microsoft.Testing.Platform" version="1.3.1" targetFramework="net48" />
<package id="Microsoft.Testing.Platform.MSBuild" version="1.2.1" targetFramework="net48" /> <package id="Microsoft.Testing.Platform.MSBuild" version="1.3.1" targetFramework="net48" />
<package id="Microsoft.TestPlatform.ObjectModel" version="17.10.0" targetFramework="net48" /> <package id="Microsoft.TestPlatform.ObjectModel" version="17.10.0" targetFramework="net48" />
<package id="Microsoft.Web.Infrastructure" version="2.0.1" targetFramework="net48" /> <package id="Microsoft.Web.Infrastructure" version="2.0.1" targetFramework="net48" />
<package id="MSTest.TestAdapter" version="3.4.3" targetFramework="net48" /> <package id="MSTest.TestAdapter" version="3.5.0" targetFramework="net48" />
<package id="MSTest.TestFramework" version="3.4.3" targetFramework="net48" /> <package id="MSTest.TestFramework" version="3.5.0" targetFramework="net48" />
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
<package id="Newtonsoft.Json.Bson" version="1.0.2" targetFramework="net48" /> <package id="Newtonsoft.Json.Bson" version="1.0.2" targetFramework="net48" />
<package id="NuGet.Frameworks" version="6.10.1" targetFramework="net48" /> <package id="NuGet.Frameworks" version="6.10.1" targetFramework="net48" />
+45
View File
@@ -0,0 +1,45 @@
{
"cVouchType": "49",
"cVouchID": "0000000030",
"dVouchDate": "2015-07-22 00:00:00.000",
"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": [
{
"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"
}
]
}
Binary file not shown.
+36 -1
View File
@@ -568,6 +568,41 @@
<param name="input"></param> <param name="input"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="F:UFIDA.U8.Framework.Api.Controllers.U8.APController.logInfo">
<summary>
日志组件
</summary>
</member>
<member name="M:UFIDA.U8.Framework.Api.Controllers.U8.APController.CloseBillSave(System.String,System.String,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
收付款单保存
</summary>
<param name="cAccId">系统号</param>
<param name="cCardNum">单据类型编码</param>
<param name="input">报文数据</param>
<returns></returns>
</member>
<member name="M:UFIDA.U8.Framework.Api.Controllers.U8.APController.AP48Save(System.String,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
收款单保存
</summary>
<param name="cAccId"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:UFIDA.U8.Framework.Api.Controllers.U8.APController.AP49Save(System.String,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
收款单保存
</summary>
<param name="cAccId"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="T:UFIDA.U8.Framework.Api.Controllers.U8.MOController">
<summary>
生产订单
</summary>
</member>
<member name="T:UFIDA.U8.Framework.Api.Controllers.U8.SFCController"> <member name="T:UFIDA.U8.Framework.Api.Controllers.U8.SFCController">
<summary> <summary>
车间管理 车间管理
@@ -710,7 +745,7 @@
<param name="input">报文数据</param> <param name="input">报文数据</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:UFIDA.U8.Framework.Api.WebApiApplication.__CurrentDomain_AssemblyResolve(System.Object,System.ResolveEventArgs)"> <member name="M:UFIDA.U8.Framework.Api.WebApiApplication.CurrentDomain_AssemblyResolve(System.Object,System.ResolveEventArgs)">
<summary> <summary>
缺少程序集全局处理事件 缺少程序集全局处理事件
</summary> </summary>
@@ -1,5 +1,4 @@
using Autofac.Integration.WebApi;
using Autofac;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@@ -12,12 +11,12 @@ namespace UFIDA.U8.Framework.Api
public static void Register(HttpConfiguration config) public static void Register(HttpConfiguration config)
{ {
// Web API 配置和服务 // Web API 配置和服务
var builder = new ContainerBuilder(); //var builder = new ContainerBuilder();
//builder.RegisterType<GMUtil>().As<IMyService>(); //builder.RegisterType<GMUtil>().As<IMyService>();
var container = builder.Build(); //var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container); //config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
// Web API 路由 // Web API 路由
config.MapHttpAttributeRoutes(); config.MapHttpAttributeRoutes();
@@ -0,0 +1,114 @@
using log4net;
using Microsoft.Extensions.Caching.Memory;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Web.Http;
using UFIDA.U8.Framework.Api.ControlObject.AP;
using UFIDA.U8.Framework.Api.ControlObject.Models;
using UFIDA.U8.Framework.Api.ControlObject.U8M;
using UFIDA.U8.Framework.Api.Unit;
// ReSharper disable InconsistentNaming
namespace UFIDA.U8.Framework.Api.Controllers.U8
{
public class APController : ApiController
{
/// <summary>
/// 日志组件
/// </summary>
protected readonly ILog logInfo = LogManager.GetLogger("logInfo");
private static readonly MemoryCache _cache = new MemoryCache(new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan.FromMinutes(10) });
/// <summary>
/// 收付款单保存
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="input">报文数据</param>
/// <returns></returns>
[HttpPost]
[Route("api/U8/AP/{cCardNum}/CloseBillSave")]
[Route("api/U8/AR/{cCardNum}/CloseBillSave")]
public async Task<BaseResult<dynamic>> CloseBillSave(string cAccId, string cCardNum, [FromBody] Dictionary<string, object> input)
{
try
{
if (!_cache.TryGetValue($"U8AP_{cAccId}", out BaseLogin baseLogin))
{
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Set($"U8AP_{cAccId}", baseLogin);
}
var subId = "";
if (cCardNum == "AP48")
{
subId = "AR";
}
if (cCardNum == "AP49")
{
subId = "AP";
}
if (string.IsNullOrWhiteSpace(subId))
throw new Exception("单据标识不正确");
var bo = new UFAPBO();
var res = bo.CloseBillSave(baseLogin, input, subId);
return res;
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
}
}
/// <summary>
/// 收款单保存
/// </summary>
/// <param name="cAccId"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[Route("api/U8/AR/AP48/CloseBillSave")]
public async Task<BaseResult<dynamic>> AP48Save(string cAccId, [FromBody] Dictionary<string, object> input)
{
return await CloseBillSave(cAccId, "AP48", input);
}
/// <summary>
/// 收款单保存
/// </summary>
/// <param name="cAccId"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[Route("api/U8/AP/AP49/CloseBillSave")]
public async Task<BaseResult<dynamic>> AP49Save(string cAccId, [FromBody] Dictionary<string, object> input)
{
return await CloseBillSave(cAccId, "AP49", input);
}
}
}
@@ -4,10 +4,18 @@ using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web.Http; using System.Web.Http;
using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Caching.Memory;
using Microsoft.JScript;
using SqlSugar;
using UFIDA.U8.Framework.Api.Common.Entity;
using UFIDA.U8.Framework.Api.ControlObject.Json;
using UFIDA.U8.Framework.Api.ControlObject.Models; using UFIDA.U8.Framework.Api.ControlObject.Models;
using UFIDA.U8.Framework.Api.ControlObject.U8M; using UFIDA.U8.Framework.Api.ControlObject.U8M;
using UFIDA.U8.Framework.Api.Unit; using UFIDA.U8.Framework.Api.Unit;
using UFIDA.U8.Framework.Api.Models; using UFIDA.U8.Framework.Api.Models;
using Yitter.IdGenerator;
using System.Web.UI.WebControls;
using Convert = System.Convert;
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
// ReSharper disable IdentifierTypo // ReSharper disable IdentifierTypo
// ReSharper disable FieldCanBeMadeReadOnly.Local // ReSharper disable FieldCanBeMadeReadOnly.Local
@@ -35,33 +43,107 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("api/U8/SFC/MoRoutingBillSave")] [Route("api/U8/SFC/MoRoutingBillSave")]
public async Task<BaseResult<dynamic>> MoRoutingBillSave(string cAccId,string cCardNum, [FromBody] Dictionary<string, object> input) public async Task<BaseResult<string>> MoRoutingBillSave(string cAccId,string cCardNum, [FromBody] Dictionary<string, object> input)
{ {
var taskId = 0L;
var db = CommUnit.GetDbClient();
BaseLogin baseLogin=null;
try try
{ {
logInfo.Debug($"接口标识:MoRoutingBillSave,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}");
if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92")
throw new Exception("当前接口不支持此类型的单据"); throw new Exception("当前接口不支持此类型的单据");
if (!_cache.TryGetValue($"U8M_{cAccId}", out BaseLogin baseLogin)) var runtimes = 0;
var u8mTask = new SysU8MTask()
{ {
baseLogin = new BaseLogin(); U8MPool = $"U8M_{cAccId}"
};
var param = await CommUnit.GetLoginParamter(cAccId); #if !DEBUG
while (await db.Queryable<SysU8MTask>().AnyAsync())
if (param == null) {
if (runtimes > 20)
{ {
throw new Exception("未能加载指定系统号的登录信息"); throw new Exception("当前任务队列过长");
} }
baseLogin.Init(param); runtimes++;
await Task.Delay(100 * runtimes);
//u8mTask.Id = DateTime.Now.Ticks;
if (await db.Queryable<SysU8MTask>()
.AnyAsync(a => SqlFunc.DateDiff(DateType.Minute, a.dDate, DateTime.Now) > 1))
{
await db.Deleteable<SysU8MTask>()
.Where(a => SqlFunc.DateDiff(DateType.Minute, a.dDate, DateTime.Now) > 1)
.ExecuteCommandAsync();
}
_cache.Set($"U8M_{cAccId}", baseLogin);
} }
#endif
u8mTask.dDate = DateTime.Now;
//if (u8mTask.Id == null)
//{
// u8mTask.Id = DateTime.Now.Ticks;
//}
taskId = await db.Insertable(u8mTask).ExecuteReturnSnowflakeIdAsync();
logInfo.Debug($"开始操作,当前任务ID:{taskId}");
//if (!_cache.TryGetValue($"U8M_{cAccId}", out BaseLogin baseLogin))
//{
// _cache.Clear();
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
logInfo.Debug($"开始登录,当前任务ID:{taskId}");
baseLogin.Init(param,true);
//_cache.Set($"U8M_{cAccId}", baseLogin);
//}
var bf = new MoRoutingBill(); var bf = new MoRoutingBill();
var res=bf.Save( cCardNum, input); logInfo.Debug($"开始保存,当前任务ID:{taskId}");
BaseResult<string> res;
if (input.ContainsKey("bBatch") && Convert.ToBoolean(input["bBatch"]))
{
var inputs = input["inputs"] as List<Dictionary<string, object>> ?? $"{input["inputs"]}".ToObject<List<Dictionary<string, object>>>();
res = bf.Save(cCardNum, inputs);
}
else
{
res = bf.Save(cCardNum, input);
}
logInfo.Debug($"退出登录,当前任务ID:{taskId}");
baseLogin.ShutDown();
if (taskId != 0)
{
await db.Deleteable<SysU8MTask>(taskId).ExecuteCommandAsync();
}
return res; return res;
@@ -70,7 +152,21 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic> {bSuccess = false,message = ex.Message,result = ex.StackTrace}; if (taskId != 0)
{
await db.Deleteable<SysU8MTask>(taskId).ExecuteCommandAsync();
}
return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
}
finally
{
if (taskId != 0)
{
await db.Deleteable<SysU8MTask>(taskId).ExecuteCommandAsync();
}
baseLogin?.ShutDown();
} }
@@ -85,7 +181,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC90/Save")] [Route("api/U8/SFC/FC90/Save")]
[Route("api/U8/SFC/FC90/Save/{cAccId}")] [Route("api/U8/SFC/FC90/Save/{cAccId}")]
public async Task<BaseResult<dynamic>> FC90Save(string cAccId, [FromBody] Dictionary<string, object> input) public async Task<BaseResult<string>> FC90Save(string cAccId, [FromBody] Dictionary<string, object> input)
{ {
return await MoRoutingBillSave(cAccId, "FC90", input); return await MoRoutingBillSave(cAccId, "FC90", input);
} }
@@ -99,7 +195,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC91/Save")] [Route("api/U8/SFC/FC91/Save")]
[Route("api/U8/SFC/FC91/Save/{cAccId}")] [Route("api/U8/SFC/FC91/Save/{cAccId}")]
public async Task<BaseResult<dynamic>> FC91Save(string cAccId, [FromBody] Dictionary<string, object> input) public async Task<BaseResult<string>> FC91Save(string cAccId, [FromBody] Dictionary<string, object> input)
{ {
return await MoRoutingBillSave(cAccId, "FC91", input); return await MoRoutingBillSave(cAccId, "FC91", input);
} }
@@ -113,7 +209,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC92/Save")] [Route("api/U8/SFC/FC92/Save")]
[Route("api/U8/SFC/FC92/Save/{cAccId}")] [Route("api/U8/SFC/FC92/Save/{cAccId}")]
public async Task<BaseResult<dynamic>> FC92Save(string cAccId, [FromBody] Dictionary<string, object> input) public async Task<BaseResult<string>> FC92Save(string cAccId, [FromBody] Dictionary<string, object> input)
{ {
return await MoRoutingBillSave(cAccId, "FC92", input); return await MoRoutingBillSave(cAccId, "FC92", input);
} }
@@ -127,10 +223,12 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("api/U8/SFC/MoRoutingBillDelete")] [Route("api/U8/SFC/MoRoutingBillDelete")]
public async Task<BaseResult<dynamic>> MoRoutingBillDelete(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> MoRoutingBillDelete(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input)
{ {
try try
{ {
logInfo.Debug($"接口标识:MoRoutingBillDelete,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}");
if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92")
throw new Exception("当前接口不支持此类型的单据"); throw new Exception("当前接口不支持此类型的单据");
@@ -166,7 +264,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic> {bSuccess = false,message = ex.Message,result = ex.StackTrace}; return new BaseResult<string> {bSuccess = false,message = ex.Message,result = ex.StackTrace};
} }
@@ -182,7 +280,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC90/Delete")] [Route("api/U8/SFC/FC90/Delete")]
[Route("api/U8/SFC/FC90/Delete/{cAccId}")] [Route("api/U8/SFC/FC90/Delete/{cAccId}")]
public async Task<BaseResult<dynamic>> FC90Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC90Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillDelete(cAccId, "FC90", input); return await MoRoutingBillDelete(cAccId, "FC90", input);
} }
@@ -196,7 +294,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC91/Delete")] [Route("api/U8/SFC/FC91/Delete")]
[Route("api/U8/SFC/FC91/Delete/{cAccId}")] [Route("api/U8/SFC/FC91/Delete/{cAccId}")]
public async Task<BaseResult<dynamic>> FC91Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC91Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillDelete(cAccId, "FC91", input); return await MoRoutingBillDelete(cAccId, "FC91", input);
} }
@@ -210,7 +308,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC92/Delete")] [Route("api/U8/SFC/FC92/Delete")]
[Route("api/U8/SFC/FC92/Delete/{cAccId}")] [Route("api/U8/SFC/FC92/Delete/{cAccId}")]
public async Task<BaseResult<dynamic>> FC92Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC92Delete(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillDelete(cAccId, "FC92", input); return await MoRoutingBillDelete(cAccId, "FC92", input);
} }
@@ -224,10 +322,12 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("api/U8/SFC/MoRoutingBillVerify")] [Route("api/U8/SFC/MoRoutingBillVerify")]
public async Task<BaseResult<dynamic>> MoRoutingBillVerify(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> MoRoutingBillVerify(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input)
{ {
try try
{ {
logInfo.Debug($"接口标识:MoRoutingBillVerify,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}");
if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92")
throw new Exception("当前接口不支持此类型的单据"); throw new Exception("当前接口不支持此类型的单据");
@@ -263,7 +363,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic> {bSuccess = false,message = ex.Message,result = ex.StackTrace}; return new BaseResult<string> {bSuccess = false,message = ex.Message,result = ex.StackTrace};
} }
@@ -279,7 +379,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC90/Verify")] [Route("api/U8/SFC/FC90/Verify")]
[Route("api/U8/SFC/FC90/Verify/{cAccId}")] [Route("api/U8/SFC/FC90/Verify/{cAccId}")]
public async Task<BaseResult<dynamic>> FC90Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC90Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillVerify(cAccId, "FC90", input); return await MoRoutingBillVerify(cAccId, "FC90", input);
} }
@@ -293,7 +393,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC91/Verify")] [Route("api/U8/SFC/FC91/Verify")]
[Route("api/U8/SFC/FC91/Verify/{cAccId}")] [Route("api/U8/SFC/FC91/Verify/{cAccId}")]
public async Task<BaseResult<dynamic>> FC91Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC91Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillVerify(cAccId, "FC91", input); return await MoRoutingBillVerify(cAccId, "FC91", input);
} }
@@ -307,7 +407,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC92/Verify")] [Route("api/U8/SFC/FC92/Verify")]
[Route("api/U8/SFC/FC92/Verify/{cAccId}")] [Route("api/U8/SFC/FC92/Verify/{cAccId}")]
public async Task<BaseResult<dynamic>> FC92Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC92Verify(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillVerify(cAccId, "FC92", input); return await MoRoutingBillVerify(cAccId, "FC92", input);
} }
@@ -321,10 +421,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("api/U8/SFC/MoRoutingBillUnVerify")] [Route("api/U8/SFC/MoRoutingBillUnVerify")]
public async Task<BaseResult<dynamic>> MoRoutingBillUnVerify(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> MoRoutingBillUnVerify(string cAccId,string cCardNum, [FromBody] DeleteMoRoutingBillInput input)
{ {
try try
{ {
logInfo.Debug($"接口标识:MoRoutingBillUnVerify,系统号:{cAccId},单据类型编码:{cCardNum},报文数据:{input.ToJson()}");
if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92") if (cCardNum != "FC90" && cCardNum != "FC91" && cCardNum != "FC92")
throw new Exception("当前接口不支持此类型的单据"); throw new Exception("当前接口不支持此类型的单据");
@@ -360,7 +463,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
{ {
logInfo.Error(ex.Message, ex); logInfo.Error(ex.Message, ex);
return new BaseResult<dynamic> {bSuccess = false,message = ex.Message,result = ex.StackTrace}; return new BaseResult<string> {bSuccess = false,message = ex.Message,result = ex.StackTrace};
} }
@@ -376,7 +479,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC90/UnVerify")] [Route("api/U8/SFC/FC90/UnVerify")]
[Route("api/U8/SFC/FC90/UnVerify/{cAccId}")] [Route("api/U8/SFC/FC90/UnVerify/{cAccId}")]
public async Task<BaseResult<dynamic>> FC90UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC90UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillVerify(cAccId, "FC90", input); return await MoRoutingBillVerify(cAccId, "FC90", input);
} }
@@ -390,7 +493,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC91/UnVerify")] [Route("api/U8/SFC/FC91/UnVerify")]
[Route("api/U8/SFC/FC91/UnVerify/{cAccId}")] [Route("api/U8/SFC/FC91/UnVerify/{cAccId}")]
public async Task<BaseResult<dynamic>> FC91UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC91UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillUnVerify(cAccId, "FC91", input); return await MoRoutingBillUnVerify(cAccId, "FC91", input);
} }
@@ -404,7 +507,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
[HttpPost] [HttpPost]
[Route("api/U8/SFC/FC92/UnVerify")] [Route("api/U8/SFC/FC92/UnVerify")]
[Route("api/U8/SFC/FC92/UnVerify/{cAccId}")] [Route("api/U8/SFC/FC92/UnVerify/{cAccId}")]
public async Task<BaseResult<dynamic>> FC92UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input) public async Task<BaseResult<string>> FC92UnVerify(string cAccId, [FromBody] DeleteMoRoutingBillInput input)
{ {
return await MoRoutingBillUnVerify(cAccId, "FC92", input); return await MoRoutingBillUnVerify(cAccId, "FC92", input);
} }
+13 -14
View File
@@ -1,5 +1,4 @@
using Autofac;
using Autofac.Integration.WebApi;
using Microsoft.JScript; using Microsoft.JScript;
using Microsoft.Win32; using Microsoft.Win32;
using System; using System;
@@ -24,7 +23,7 @@ namespace UFIDA.U8.Framework.Api
public WebApiApplication() public WebApiApplication()
{ {
s_u8Root = __GetU8InstallPath(); s_u8Root = GetU8InstallPath();
s_u8MPath = $@"{s_u8Root}U8M\"; s_u8MPath = $@"{s_u8Root}U8M\";
s_u8FrameworkPath = $@"{s_u8Root}Framework\"; s_u8FrameworkPath = $@"{s_u8Root}Framework\";
s_u8APIFramework = $@"{s_u8Root}UFMOM\U8APIFramework\"; s_u8APIFramework = $@"{s_u8Root}UFMOM\U8APIFramework\";
@@ -40,23 +39,23 @@ namespace UFIDA.U8.Framework.Api
RouteConfig.RegisterRoutes(RouteTable.Routes); RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles); BundleConfig.RegisterBundles(BundleTable.Bundles);
AppDomain.CurrentDomain.AssemblyResolve -= __CurrentDomain_AssemblyResolve; AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
AppDomain.CurrentDomain.AssemblyResolve += __CurrentDomain_AssemblyResolve; AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
} }
private void ConfigureDependencyInjection(HttpConfiguration config) //private void ConfigureDependencyInjection(HttpConfiguration config)
{ //{
var builder = new ContainerBuilder(); // var builder = new ContainerBuilder();
//builder.RegisterType<GMUtil>().As<>(); // //builder.RegisterType<GMUtil>().As<>();
var container = builder.Build(); // var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container); // config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
} //}
private static string __GetU8InstallPath() private static string GetU8InstallPath()
{ {
string root; string root;
var installPath = Registry.LocalMachine.OpenSubKey(GlobalConstDefine.Product_Registry_InstallKey); var installPath = Registry.LocalMachine.OpenSubKey(GlobalConstDefine.Product_Registry_InstallKey);
@@ -70,7 +69,7 @@ namespace UFIDA.U8.Framework.Api
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="args"></param> /// <param name="args"></param>
/// <returns></returns> /// <returns></returns>
private Assembly __CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{ {
//先在已经加载的程序集中选择 //先在已经加载的程序集中选择
foreach (var asm in AppDomain.CurrentDomain.GetAssemblies()) foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
@@ -17,7 +17,7 @@
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews> <MvcBuildViews>false</MvcBuildViews>
<UseIISExpress>true</UseIISExpress> <UseIISExpress>true</UseIISExpress>
<Use64BitIISExpress /> <Use64BitIISExpress>false</Use64BitIISExpress>
<IISExpressSSLPort>44366</IISExpressSSLPort> <IISExpressSSLPort>44366</IISExpressSSLPort>
<IISExpressAnonymousAuthentication /> <IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication /> <IISExpressWindowsAuthentication />
@@ -47,12 +47,6 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Autofac, Version=8.0.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.8.0.0\lib\netstandard2.0\Autofac.dll</HintPath>
</Reference>
<Reference Include="Autofac.Integration.WebApi, Version=6.1.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
<HintPath>..\packages\Autofac.WebApi2.6.1.1\lib\net472\Autofac.Integration.WebApi.dll</HintPath>
</Reference>
<Reference Include="Dapper, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Dapper, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Dapper.2.1.35\lib\net461\Dapper.dll</HintPath> <HintPath>..\packages\Dapper.2.1.35\lib\net461\Dapper.dll</HintPath>
</Reference> </Reference>
@@ -168,17 +162,17 @@
<Reference Include="Microsoft.Extensions.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL"> <Reference Include="Microsoft.Extensions.Primitives, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Primitives.8.0.0\lib\net462\Microsoft.Extensions.Primitives.dll</HintPath> <HintPath>..\packages\Microsoft.Extensions.Primitives.8.0.0\lib\net462\Microsoft.Extensions.Primitives.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.IdentityModel.Abstractions, Version=7.6.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.IdentityModel.Abstractions, Version=8.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Abstractions.7.6.3\lib\net472\Microsoft.IdentityModel.Abstractions.dll</HintPath> <HintPath>..\packages\Microsoft.IdentityModel.Abstractions.8.0.1\lib\net472\Microsoft.IdentityModel.Abstractions.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=7.6.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=8.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.7.6.3\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath> <HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.8.0.1\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.IdentityModel.Logging, Version=7.6.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.IdentityModel.Logging, Version=8.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Logging.7.6.3\lib\net472\Microsoft.IdentityModel.Logging.dll</HintPath> <HintPath>..\packages\Microsoft.IdentityModel.Logging.8.0.1\lib\net472\Microsoft.IdentityModel.Logging.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.IdentityModel.Tokens, Version=7.6.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.IdentityModel.Tokens, Version=8.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Tokens.7.6.3\lib\net472\Microsoft.IdentityModel.Tokens.dll</HintPath> <HintPath>..\packages\Microsoft.IdentityModel.Tokens.8.0.1\lib\net472\Microsoft.IdentityModel.Tokens.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.JScript" /> <Reference Include="Microsoft.JScript" />
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
@@ -202,8 +196,8 @@
<Reference Include="SQLitePCLRaw.provider.dynamic_cdecl, Version=2.1.8.2226, Culture=neutral, PublicKeyToken=b68184102cba0b3b, processorArchitecture=MSIL"> <Reference Include="SQLitePCLRaw.provider.dynamic_cdecl, Version=2.1.8.2226, Culture=neutral, PublicKeyToken=b68184102cba0b3b, processorArchitecture=MSIL">
<HintPath>..\packages\SQLitePCLRaw.provider.dynamic_cdecl.2.1.8\lib\netstandard2.0\SQLitePCLRaw.provider.dynamic_cdecl.dll</HintPath> <HintPath>..\packages\SQLitePCLRaw.provider.dynamic_cdecl.2.1.8\lib\netstandard2.0\SQLitePCLRaw.provider.dynamic_cdecl.dll</HintPath>
</Reference> </Reference>
<Reference Include="SqlSugar, Version=5.1.4.162, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="SqlSugar, Version=5.1.4.166, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SqlSugar.5.1.4.162\lib\SqlSugar.dll</HintPath> <HintPath>..\packages\SqlSugar.5.1.4.166\lib\SqlSugar.dll</HintPath>
</Reference> </Reference>
<Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL"> <Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL">
<HintPath>..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll</HintPath> <HintPath>..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll</HintPath>
@@ -238,8 +232,8 @@
<Reference Include="System.Formats.Asn1, Version=8.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.Formats.Asn1, Version=8.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Formats.Asn1.8.0.1\lib\net462\System.Formats.Asn1.dll</HintPath> <HintPath>..\packages\System.Formats.Asn1.8.0.1\lib\net462\System.Formats.Asn1.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=7.6.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="System.IdentityModel.Tokens.Jwt, Version=8.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.7.6.3\lib\net472\System.IdentityModel.Tokens.Jwt.dll</HintPath> <HintPath>..\packages\System.IdentityModel.Tokens.Jwt.8.0.1\lib\net472\System.IdentityModel.Tokens.Jwt.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath> <HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
@@ -363,6 +357,9 @@
<Private>True</Private> <Private>True</Private>
<HintPath>..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath> <HintPath>..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
</Reference> </Reference>
<Reference Include="Yitter.IdGenerator, Version=1.0.14.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Yitter.IdGenerator.1.0.14\lib\netstandard2.0\Yitter.IdGenerator.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="App_Start\BundleConfig.cs" /> <Compile Include="App_Start\BundleConfig.cs" />
@@ -401,6 +398,7 @@
<Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" /> <Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" />
<Compile Include="Controllers\CommonController.cs" /> <Compile Include="Controllers\CommonController.cs" />
<Compile Include="Controllers\HomeController.cs" /> <Compile Include="Controllers\HomeController.cs" />
<Compile Include="Controllers\U8\APController.cs" />
<Compile Include="Controllers\U8\MOController.cs" /> <Compile Include="Controllers\U8\MOController.cs" />
<Compile Include="Controllers\U8\SFCController.cs" /> <Compile Include="Controllers\U8\SFCController.cs" />
<Compile Include="Global.asax.cs"> <Compile Include="Global.asax.cs">
@@ -412,7 +410,11 @@
<Compile Include="Unit\CommUnit.cs" /> <Compile Include="Unit\CommUnit.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="App_Data\AP49.json" />
<None Include="App_Data\FC90.json" /> <None Include="App_Data\FC90.json" />
<Content Include="App_Data\U8API.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Areas\HelpPage\HelpPage.css" /> <Content Include="Areas\HelpPage\HelpPage.css" />
<Content Include="Content\bootstrap-grid.css" /> <Content Include="Content\bootstrap-grid.css" />
<Content Include="Content\bootstrap-grid.min.css" /> <Content Include="Content\bootstrap-grid.min.css" />
+4
View File
@@ -146,6 +146,10 @@
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" /> <assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.118.0" newVersion="1.0.118.0" /> <bindingRedirect oldVersion="0.0.0.0-1.0.118.0" newVersion="1.0.118.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.17.0" newVersion="2.0.17.0" />
</dependentAssembly> </dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
+1
View File
@@ -28,6 +28,7 @@
<param name="MaxFileSize" value="20480" /> <param name="MaxFileSize" value="20480" />
<param name="RollingStyle" value="Date" /> <param name="RollingStyle" value="Date" />
<param name="AppendToFile" value="true" /> <param name="AppendToFile" value="true" />
<param name="lockingModel" value="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout"> <layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %r - %message%newline" /> <param name="ConversionPattern" value="%date [%thread] %-5level %r - %message%newline" />
</layout> </layout>
+7 -6
View File
@@ -60,10 +60,10 @@
<package id="Microsoft.Extensions.Options" version="8.0.2" targetFramework="net48" /> <package id="Microsoft.Extensions.Options" version="8.0.2" targetFramework="net48" />
<package id="Microsoft.Extensions.Options.ConfigurationExtensions" version="8.0.0" targetFramework="net48" /> <package id="Microsoft.Extensions.Options.ConfigurationExtensions" version="8.0.0" targetFramework="net48" />
<package id="Microsoft.Extensions.Primitives" version="8.0.0" targetFramework="net48" /> <package id="Microsoft.Extensions.Primitives" version="8.0.0" targetFramework="net48" />
<package id="Microsoft.IdentityModel.Abstractions" version="7.6.3" targetFramework="net48" /> <package id="Microsoft.IdentityModel.Abstractions" version="8.0.1" targetFramework="net48" />
<package id="Microsoft.IdentityModel.JsonWebTokens" version="7.6.3" targetFramework="net48" /> <package id="Microsoft.IdentityModel.JsonWebTokens" version="8.0.1" targetFramework="net48" />
<package id="Microsoft.IdentityModel.Logging" version="7.6.3" targetFramework="net48" /> <package id="Microsoft.IdentityModel.Logging" version="8.0.1" targetFramework="net48" />
<package id="Microsoft.IdentityModel.Tokens" version="7.6.3" targetFramework="net48" /> <package id="Microsoft.IdentityModel.Tokens" version="8.0.1" targetFramework="net48" />
<package id="Microsoft.Web.Infrastructure" version="2.0.1" targetFramework="net48" /> <package id="Microsoft.Web.Infrastructure" version="2.0.1" targetFramework="net48" />
<package id="Modernizr" version="2.8.3" targetFramework="net48" /> <package id="Modernizr" version="2.8.3" targetFramework="net48" />
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" /> <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
@@ -74,7 +74,7 @@
<package id="SQLitePCLRaw.core" version="2.1.8" targetFramework="net48" /> <package id="SQLitePCLRaw.core" version="2.1.8" targetFramework="net48" />
<package id="SQLitePCLRaw.lib.e_sqlite3" version="2.1.8" targetFramework="net48" /> <package id="SQLitePCLRaw.lib.e_sqlite3" version="2.1.8" targetFramework="net48" />
<package id="SQLitePCLRaw.provider.dynamic_cdecl" version="2.1.8" targetFramework="net48" /> <package id="SQLitePCLRaw.provider.dynamic_cdecl" version="2.1.8" targetFramework="net48" />
<package id="SqlSugar" version="5.1.4.162" targetFramework="net48" /> <package id="SqlSugar" version="5.1.4.166" targetFramework="net48" />
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.118.0" targetFramework="net48" /> <package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.118.0" targetFramework="net48" />
<package id="Swashbuckle" version="5.6.0" targetFramework="net48" /> <package id="Swashbuckle" version="5.6.0" targetFramework="net48" />
<package id="Swashbuckle.Core" version="5.6.0" targetFramework="net48" /> <package id="Swashbuckle.Core" version="5.6.0" targetFramework="net48" />
@@ -87,7 +87,7 @@
<package id="System.Data.SQLite.Linq" version="1.0.118.0" targetFramework="net48" /> <package id="System.Data.SQLite.Linq" version="1.0.118.0" targetFramework="net48" />
<package id="System.Diagnostics.DiagnosticSource" version="8.0.1" targetFramework="net48" /> <package id="System.Diagnostics.DiagnosticSource" version="8.0.1" targetFramework="net48" />
<package id="System.Formats.Asn1" version="8.0.1" targetFramework="net48" /> <package id="System.Formats.Asn1" version="8.0.1" targetFramework="net48" />
<package id="System.IdentityModel.Tokens.Jwt" version="7.6.3" targetFramework="net48" /> <package id="System.IdentityModel.Tokens.Jwt" version="8.0.1" targetFramework="net48" />
<package id="System.IO" version="4.3.0" targetFramework="net48" /> <package id="System.IO" version="4.3.0" targetFramework="net48" />
<package id="System.Memory" version="4.5.5" targetFramework="net48" /> <package id="System.Memory" version="4.5.5" targetFramework="net48" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net48" /> <package id="System.Net.Http" version="4.3.4" targetFramework="net48" />
@@ -105,4 +105,5 @@
<package id="WebActivator" version="1.5.1" targetFramework="net48" /> <package id="WebActivator" version="1.5.1" targetFramework="net48" />
<package id="WebActivatorEx" version="2.2.0" targetFramework="net48" /> <package id="WebActivatorEx" version="2.2.0" targetFramework="net48" />
<package id="WebGrease" version="1.6.0" targetFramework="net48" /> <package id="WebGrease" version="1.6.0" targetFramework="net48" />
<package id="Yitter.IdGenerator" version="1.0.14" targetFramework="net48" />
</packages> </packages>