雷池测试

This commit is contained in:
qmj
2025-06-07 22:11:51 +08:00
parent 71ca541865
commit 68a6bbd27e
15 changed files with 626 additions and 134 deletions
@@ -11,6 +11,9 @@ using UFIDA.U8.Framework.Api.ControlObject.U8M;
namespace UFIDA.U8.Framework.Api.ControlObject.AP namespace UFIDA.U8.Framework.Api.ControlObject.AP
{ {
/// <summary>
/// 票据管理(应收)
/// </summary>
public class NoteManageAR public class NoteManageAR
{ {
/// <summary> /// <summary>
@@ -74,15 +77,11 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
//voucher.OneVoucherData = voucherData; //voucher.OneVoucherData = voucherData;
//voucher.objPub = clsPub; //voucher.objPub = clsPub;
clsPub.Conn.BeginTrans();
res.bSuccess = voucher.NoteCheck(voucherData, ref errMsg); res.bSuccess = voucher.NoteCheck(voucherData, ref errMsg);
//res.bSuccess = voucher.VoucherHeadCheck(voucherData,true, ref errMsg); //res.bSuccess = voucher.VoucherHeadCheck(voucherData,true, ref errMsg);
if (!res.bSuccess) if (!res.bSuccess)
{ {
clsPub.Conn.RollbackTrans();
//login.Connection.RollbackTrans();
res.message = "保存失败"; res.message = "保存失败";
res.result = errMsg; res.result = errMsg;
@@ -93,8 +92,6 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
if (!res.bSuccess) if (!res.bSuccess)
{ {
clsPub.Conn.RollbackTrans();
//login.Connection.RollbackTrans();
res.message = "保存失败"; res.message = "保存失败";
res.result = errMsg; res.result = errMsg;
@@ -105,7 +102,9 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
var newInput = new Dictionary<string, object>() var newInput = new Dictionary<string, object>()
{ {
{"cVouchID","0000000001"},
{ "dVouchDate", $"{login._vbLogin.CurDate:yyyy-MM-dd}" }, { "dVouchDate", $"{login._vbLogin.CurDate:yyyy-MM-dd}" },
{ "cTypeName", "收款单" },
{ "cSSName", voucherData.cVouchTypeName }, { "cSSName", voucherData.cVouchTypeName },
{ "cexch_name", voucherData.cExch_Name }, { "cexch_name", voucherData.cExch_Name },
{ "iAmount_f", voucherData.iAmount }, { "iAmount_f", voucherData.iAmount },
@@ -114,11 +113,15 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
{ "cBankAccount", voucherData.cPayBillAccount }, { "cBankAccount", voucherData.cPayBillAccount },
{ "cNoteNo", voucherData.CVouchId }, { "cNoteNo", voucherData.CVouchId },
{ "cDepCode", voucherData.cDeptCode }, { "cDepCode", voucherData.cDeptCode },
//{ "cDwCode", "03006" },
{ "iPayType", 0 },
{ "cPayType", "货款" },
{ "cDwCode", voucherData.cDwCode }, { "cDwCode", voucherData.cDwCode },
{ "cOperator", voucherData.CBill }, { "cOperator", voucherData.CBill },
{ "cDigest", voucherData.cDigest }, { "cDigest", voucherData.cDigest },
{ "bStartFlag", voucher.m_bStartFlag }, { "bStartFlag", voucher.m_bStartFlag },
{ "cVouchType", "48" }, { "cVouchType", "48" },
{ "cAuthID", "00000001" },
{ "cCoVouchType", voucherData.cVouchType }, { "cCoVouchType", voucherData.cVouchType },
{ "cCoVouchID", voucherData.CVouchId }, { "cCoVouchID", voucherData.CVouchId },
{ "cFlag", voucherData.cFlag }, { "cFlag", voucherData.cFlag },
@@ -126,7 +129,12 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
{ "cPerson", voucherData.cPerson }, { "cPerson", voucherData.cPerson },
{ "cNatBank", voucherData.cReceiveBank }, { "cNatBank", voucherData.cReceiveBank },
{ "cNatBankAccount", voucherData.cReceiveAccount }, { "cNatBankAccount", voucherData.cReceiveAccount },
{ "cCode", voucher.getNoteKm(voucherData.cVouchType) } //{ "cCode", voucher.getNoteKm(voucherData.cVouchType) },
{ "cCode", "" },
{ "iPayForOther", 0 },
{ "bFromBank", 0 },
{ "bToBank", 0 },
{ "bSure", 0 },
}; };
var bodys = new List<Dictionary<string, object>>(); var bodys = new List<Dictionary<string, object>>();
@@ -136,6 +144,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
{"editprop","A"}, {"editprop","A"},
{"cMemo",voucherData.cDigest}, {"cMemo",voucherData.cDigest},
{"cCusVen",voucherData.cDwCode}, {"cCusVen",voucherData.cDwCode},
//{"cCusVen","03006"},
{"iAmt_f",voucherData.iAmount}, {"iAmt_f",voucherData.iAmount},
{"iAmt",voucherData.iAmount_Local}, {"iAmt",voucherData.iAmount_Local},
{"cKm",voucher.getNoteKm(voucherData.cVouchType)}, {"cKm",voucher.getNoteKm(voucherData.cVouchType)},
@@ -143,6 +152,8 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
{"iRAmt",voucherData.iAmount_Local}, {"iRAmt",voucherData.iAmount_Local},
{"cDepCode",voucherData.cDeptCode}, {"cDepCode",voucherData.cDeptCode},
{"cPersonCode",voucherData.cPerson}, {"cPersonCode",voucherData.cPerson},
{"iType",0},
{"cType","应收款"},
}; };
newInput["body"] = bodys; newInput["body"] = bodys;
@@ -165,17 +176,14 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
if (!res2.bSuccess) if (!res2.bSuccess)
{ {
clsPub.Conn.RollbackTrans();
//login.Connection.RollbackTrans();
res.message = "保存失败"; res.message = "保存失败";
res.result = res2.message; res.result = res2.result;
res.voucherCode = $"{voucherData.CVouchId}";
res.voucherId = $"{voucherData.CVouchId}";
return res; return res;
} }
clsPub.Conn.CommitTrans();
//login.Connection.CommitTrans();
res.message = "保存成功"; res.message = "保存成功";
res.voucherCode = $"{voucherData.CVouchId}"; res.voucherCode = $"{voucherData.CVouchId}";
res.voucherId = $"{voucherData.CVouchId}"; res.voucherId = $"{voucherData.CVouchId}";
@@ -19,13 +19,24 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
{ {
protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); protected readonly ILog logInfo = LogManager.GetLogger("logInfo");
/// <summary>
/// 保存单据
/// </summary>
/// <param name="login"></param>
/// <param name="input"></param>
/// <param name="VouchClass"></param>
/// <param name="bGetCode"></param>
/// <param name="codeKey"></param>
/// <param name="bPrintDom"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<BaseResult<string>> SaveVouch(BaseLogin login, Dictionary<string, object> input,string VouchClass,bool bGetCode=false,string codeKey="",bool bPrintDom=false) public async Task<BaseResult<string>> SaveVouch(BaseLogin login, Dictionary<string, object> input,string VouchClass,bool bGetCode=false,string codeKey="",bool bPrintDom=false)
{ {
try try
{ {
var clsVouchFacade = $"UFAPBO.clsVouchFacade".GetComObject(); var clsVouchFacade = $"UFAPBO.clsVouchFacade".GetComObject();
clsVouchFacade.Init(VouchClass, login._vbLogin, login.Connection); clsVouchFacade.Init(VouchClass, login._vbLogin);
IXMLDOMDocument2 domHead = new DOMDocument(); IXMLDOMDocument2 domHead = new DOMDocument();
IXMLDOMDocument2 domBody = new DOMDocument(); IXMLDOMDocument2 domBody = new DOMDocument();
@@ -50,37 +61,39 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
throw new Exception("无法获取表体数据"); throw new Exception("无法获取表体数据");
} }
if (bGetCode) //if (bGetCode)
{ //{
var cardNum = ""; // var cardNum = "";
switch (VouchClass) // switch (VouchClass)
{ // {
case "收款单": // case "收款单":
cardNum = "AR48"; // cardNum = "AR48";
break; // break;
default: // default:
break; // break;
} // }
var clsBillComponent = "UFBillComponent.clsBillComponent".GetComObject(); // //var clsBillComponent = "UFBillComponent.clsBillComponent".GetComObject();
if (!clsBillComponent.InitBill(login._vbLogin.UfDbName, cardNum)) // //if (!clsBillComponent.InitBill(login._vbLogin.UfDbName, cardNum))
{ // //{
throw new Exception("初始化单据编号组件失败"); // // throw new Exception("初始化单据编号组件失败");
} // //}
var newCode = clsBillComponent.GetNumber(clsBillComponent.GetBillFormat()); // //var newCode = clsBillComponent.GetNumber(clsBillComponent.GetBillFormat());
logInfo.Debug($"获取新单号:{newCode}"); // var newCode = "0000000001";
if (!string.IsNullOrWhiteSpace(newCode)) // logInfo.Debug($"获取新单号:{newCode}");
{
CommonHelper.SetDomKeyValue(domHead, codeKey, newCode);
}
input[codeKey] = newCode; // if (!string.IsNullOrWhiteSpace(newCode))
} // {
// CommonHelper.SetDomKeyValue(domHead, codeKey, newCode);
// }
// input[codeKey] = newCode;
//}
logInfo.Debug("填充表体DOM..."); logInfo.Debug("填充表体DOM...");
domBody = dictionarys.ToDocument2(domBody); domBody = dictionarys.ToDocument2(domBody);
@@ -96,8 +109,6 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP
var res = new BaseResult<string>(); var res = new BaseResult<string>();
clsVouchFacade.bOutTrans = true;
res.bSuccess = clsVouchFacade.SaveVouch(domHead, domBody, ref errMsg); res.bSuccess = clsVouchFacade.SaveVouch(domHead, domBody, ref errMsg);
if (!res.bSuccess) if (!res.bSuccess)
@@ -23,7 +23,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common
/// <summary> /// <summary>
/// 日志组件 /// 日志组件
/// </summary> /// </summary>
private static readonly ILog logInfo = LogManager.GetLogger("logInfo"); private static readonly ILog _logInfo = LogManager.GetLogger("logInfo");
public static void SetPropValue(this PropertyInfo prop, object obj, object value) public static void SetPropValue(this PropertyInfo prop, object obj, object value)
{ {
@@ -574,7 +574,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Debug($"字段:{def.FieldName}公式解析失败,公式结果:{calcFormula}"); _logInfo.Debug($"字段:{def.FieldName}公式解析失败,公式结果:{calcFormula}");
} }
@@ -772,7 +772,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common
var strSql = $"SELECT {fieldName} AS ID FROM {tableName} WHERE {cDefWhere} AND {codeName}='{cVoucherCode}'"; var strSql = $"SELECT {fieldName} AS ID FROM {tableName} WHERE {cDefWhere} AND {codeName}='{cVoucherCode}'";
logInfo.Debug($"查询ID:{strSql}"); _logInfo.Debug($"查询ID:{strSql}");
var rst = new Recordset(); var rst = new Recordset();
@@ -789,6 +789,45 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common
} }
/// <summary>
/// 获取事件ID
/// </summary>
/// <param name="conn">连接对象</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="eventId">事件Id</param>
/// <returns></returns>
/// <exception cref="ArgumentNullException"></exception>
public static string GetEventId(Connection conn, string cCardNum,string eventId,bool bUAP =false)
{
if (conn == null) throw new ArgumentNullException(nameof(conn));
if (cCardNum == null) throw new ArgumentNullException(nameof(cCardNum));
var sCardNum = cCardNum;
if (bUAP)
{
sCardNum = $"UAPFORM.{sCardNum}";
}
var strSql = $"SELECT cBizEventId FROM dbo.AuditBizEvents WHERE cBizObjectId='{sCardNum}' AND cBizEventId='{cCardNum}.{eventId}'";
_logInfo.Debug($"查询对象事件:{strSql}");
var rst = new Recordset();
rst.Open(strSql, conn);
if (rst.BOF || rst.EOF)
{
throw new Exception($"没有查询到对象ID为{cCardNum}的单据");
}
var voucherId = rst.Fields["cBizEventId"].Value;
return voucherId;
}
public static string GetVoucherWhereSqlByCode(VouchersInfo vouchers,string cVoucherCode) public static string GetVoucherWhereSqlByCode(VouchersInfo vouchers,string cVoucherCode)
{ {
var tableName = vouchers.cBTTblName; var tableName = vouchers.cBTTblName;
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace UFIDA.U8.Framework.Api.ControlObject.Entity
{
public class AuditBizEvents
{
}
}
@@ -0,0 +1,46 @@
using log4net;
using MSXML2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UFGeneralFilterOCX;
using UFIDA.U8.Framework.Api.ControlObject.Entity;
using UFIDA.U8.Framework.Api.ControlObject.PU;
using UFIDA.U8.Framework.Api.ControlObject.U8M;
namespace UFIDA.U8.Framework.Api.ControlObject.SA
{
/// <summary>
/// 销售管理
/// </summary>
public class ClsVoucherCO_SA
{
protected readonly ILog logInfo = LogManager.GetLogger("logInfo");
public async Task<BaseResult<string>> Save(BaseLogin baseLogin, Dictionary<string, object> dictionary, string cardNumber, string VoucherState, bool bGetCode = false, string codeKey = null, bool bAudit = false, bool iswfcontrolled = false, string cFlowFieldName = "IsWfControlled")
{
try
{
var errorMsg = "";
logInfo.Debug("开始输出登录信息");
logInfo.Debug(baseLogin._vbLogin.userToken);
var co = InitCo(baseLogin, enmVoucherType, bPositive, sBillType, sBusType, UserMode, sOverDetailsXml);
IXMLDOMDocument2 domHead = new DOMDocument();
IXMLDOMDocument2 domBody = new DOMDocument();
IXMLDOMDocument2 domCur = new DOMDocument();
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "保存失败", result = ex.Message };
}
}
}
}
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace UFIDA.U8.Framework.Api.ControlObject.SA
{
public enum VoucherTypeSA
{
/// <summary>
/// 发货单蓝字
/// </summary>
DispatchBlue=9,
}
}
@@ -197,6 +197,7 @@
<Compile Include="Common\APARHelper.cs" /> <Compile Include="Common\APARHelper.cs" />
<Compile Include="Common\BEHelper.cs" /> <Compile Include="Common\BEHelper.cs" />
<Compile Include="Common\CommonHelper.cs" /> <Compile Include="Common\CommonHelper.cs" />
<Compile Include="Entity\AuditBizEvents.cs" />
<Compile Include="Entity\Exch.cs" /> <Compile Include="Entity\Exch.cs" />
<Compile Include="Entity\VouchersInfo.cs" /> <Compile Include="Entity\VouchersInfo.cs" />
<Compile Include="Json\JsonHelper.cs" /> <Compile Include="Json\JsonHelper.cs" />
@@ -207,6 +208,8 @@
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PU\clsVoucherCO_PU.cs" /> <Compile Include="PU\clsVoucherCO_PU.cs" />
<Compile Include="PU\UseMode.cs" /> <Compile Include="PU\UseMode.cs" />
<Compile Include="SA\ClsVoucherCO_SA.cs" />
<Compile Include="SA\VoucherTypeSA.cs" />
<Compile Include="ST\USERPCO.cs" /> <Compile Include="ST\USERPCO.cs" />
<Compile Include="PU\vouchertype.cs" /> <Compile Include="PU\vouchertype.cs" />
<Compile Include="U8M\BaseLogin.cs" /> <Compile Include="U8M\BaseLogin.cs" />
@@ -1,9 +1,14 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web.UI.WebControls;
using log4net; using log4net;
using UFIDA.U8.Audit.ServiceProxy; using UFIDA.U8.Audit.ServiceProxy;
using UFIDA.U8.Framework.Api.ControlObject.Common;
using UFIDA.U8.Framework.Api.ControlObject.Entity; using UFIDA.U8.Framework.Api.ControlObject.Entity;
using UFIDA.U8.Framework.Api.ControlObject.U8M; using UFIDA.U8.Framework.Api.ControlObject.U8M;
using UFSoft.U8.BO.BE;
using UFSoft.U8.Framework.LoginContext;
// ReSharper disable IdentifierTypo // ReSharper disable IdentifierTypo
namespace UFIDA.U8.Framework.Api.ControlObject.Workflow namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
@@ -13,7 +18,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
/// </summary> /// </summary>
public class ServiceProxy public class ServiceProxy
{ {
private readonly ILog _logInfo = LogManager.GetLogger("_logInfo"); private readonly ILog _logInfo = LogManager.GetLogger("logInfo");
/// <summary> /// <summary>
/// #是否启用审批流# /// #是否启用审批流#
@@ -103,6 +108,102 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
} }
} }
/// <summary>
/// #提交审批流#
/// </summary>
/// <param name="login"></param>
/// <param name="cCardNum"></param>
/// <param name="eventId"></param>
/// <param name="voucherCode"></param>
/// <param name="bUAP"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<BaseResult<string>> SubmitApplicationMessage(BaseLogin login, string cCardNum, string eventId, string voucherCode, bool bUAP = false)
{
var voucherId = "";
try
{
var vouchers = CommonHelper.GetVouchers(login.Connection, cCardNum);
voucherId = $"{CommonHelper.GetVoucherId(login.Connection, voucherCode, vouchers)}";
var bizObjectId = cCardNum;
if (bUAP)
{
bizObjectId = $"UAPFORM.{bizObjectId}";
}
eventId = $"{cCardNum}.{eventId}";
return await SubmitApplicationMessage(login, bizObjectId, eventId, voucherId, voucherCode);
}
catch (Exception ex)
{
_logInfo.Error($"审批流异常:{ex.Message}", ex);
await Task.Delay(1);
return new BaseResult<string>
{
bSuccess = false,
message = "提交失败",
voucherCode = voucherCode,
voucherId = voucherId,
result = ex.Message
};
}
}
/// <summary>
/// #提交审批流#
/// </summary>
/// <param name="login"></param>
/// <param name="cCardNum"></param>
/// <param name="eventId"></param>
/// <param name="voucherId"></param>
/// <param name="bUAP"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<BaseResult<string>> SubmitApplicationMessage(BaseLogin login, string cCardNum, string eventId, object voucherId, bool bUAP = false)
{
var voucherCode = "";
try
{
var vouchers = CommonHelper.GetVouchers(login.Connection, cCardNum);
voucherCode = $"{CommonHelper.GetVoucherCode(login.Connection, voucherId, vouchers)}";
var bizObjectId = cCardNum;
if (bUAP)
{
bizObjectId = $"UAPFORM.{bizObjectId}";
}
eventId = $"{cCardNum}.{eventId}";
return await SubmitApplicationMessage(login, bizObjectId, eventId,$"{voucherId}" , voucherCode);
}
catch (Exception ex)
{
_logInfo.Error($"审批流异常:{ex.Message}", ex);
await Task.Delay(1);
return new BaseResult<string>
{
bSuccess = false,
message = "提交失败",
voucherCode = voucherCode,
voucherId = $"{voucherId}",
result = ex.Message
};
}
}
/// <summary> /// <summary>
/// #单据审核# /// #单据审核#
/// </summary> /// </summary>
+36 -3
View File
@@ -1004,7 +1004,7 @@
库存管理 库存管理
</summary> </summary>
</member> </member>
<member name="F:UFIDA.U8.Framework.Api.Controllers.U8.STController.logInfo"> <member name="F:UFIDA.U8.Framework.Api.Controllers.U8.STController._logInfo">
<summary> <summary>
日志组件 日志组件
</summary> </summary>
@@ -1023,7 +1023,7 @@
<param name="bReMote">是否远程</param> <param name="bReMote">是否远程</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:UFIDA.U8.Framework.Api.Controllers.U8.STController.Insert2(System.String,System.Collections.Generic.Dictionary{System.String,System.Object},System.Boolean,System.Boolean,System.Boolean,System.String,System.Boolean)"> <member name="M:UFIDA.U8.Framework.Api.Controllers.U8.STController.InsertToken(System.String,System.Collections.Generic.Dictionary{System.String,System.Object},System.Boolean,System.Boolean,System.Boolean,System.String,System.Boolean)">
<summary> <summary>
新增单据 新增单据
</summary> </summary>
@@ -1155,11 +1155,44 @@
审批流 审批流
</summary> </summary>
</member> </member>
<member name="F:UFIDA.U8.Framework.Api.Controllers.U8.WorkflowController.logInfo"> <member name="F:UFIDA.U8.Framework.Api.Controllers.U8.WorkflowController._logInfo">
<summary> <summary>
日志组件 日志组件
</summary> </summary>
</member> </member>
<member name="M:UFIDA.U8.Framework.Api.Controllers.U8.WorkflowController.SubmitApplicationMessage(System.String,System.String,System.String,System.String,System.Boolean)">
<summary>
提交审批流(单号)
</summary>
<param name="cAccId">系统注册号</param>
<param name="cCardNum">单据类型编码</param>
<param name="cCode">单据编号</param>
<param name="eventId">审批事件</param>
<param name="bUap">是否UAP单据</param>
<returns></returns>
</member>
<member name="M:UFIDA.U8.Framework.Api.Controllers.U8.WorkflowController.SubmitApplicationMessageToken(System.String,System.String,System.String,System.Boolean)">
<summary>
提交审批流(单号)
</summary>
<param name="cAccId">系统注册号</param>
<param name="cCardNum">单据类型编码</param>
<param name="cCode">单据编号</param>
<param name="eventId">审批事件</param>
<param name="bUap">是否UAP单据</param>
<returns></returns>
</member>
<member name="M:UFIDA.U8.Framework.Api.Controllers.U8.WorkflowController.SubmitApplicationMessage(System.String,System.String,System.Int64,System.String,System.Boolean)">
<summary>
提交审批流(单号)
</summary>
<param name="cCardNum">单据类型编码</param>
<param name="voucherId">单据ID</param>
<param name="cAccId">系统注册号</param>
<param name="eventId">审批事件</param>
<param name="bUap">是否UAP单据</param>
<returns></returns>
</member>
<member name="T:UFIDA.U8.Framework.Api.Entity.LoginInput"> <member name="T:UFIDA.U8.Framework.Api.Entity.LoginInput">
<summary> <summary>
登录参数 登录参数
@@ -2,7 +2,7 @@
"cVouchType": "50", "cVouchType": "50",
"cPayBillBank": "招商银行双榆树支行", "cPayBillBank": "招商银行双榆树支行",
"cVouchTypeName": "银行承兑汇票", "cVouchTypeName": "银行承兑汇票",
"CVouchId": "12312345", "CVouchId": "12312345234",
"cDwCode": "00000001", "cDwCode": "00000001",
"cDeptCode": "0301", "cDeptCode": "0301",
"cPerson": "00024", "cPerson": "00024",
@@ -0,0 +1,39 @@
{
"csocode": "0000000001", //订单号
"ddate": "2025-01-01", //订单日期
"cbustype": "普通销售", //业务类型
"itaxrate": 13, //表头税率
"cexch_name": "人民币", //币种
"cmaker": "demo", //制单人
"breturnflag": 0, //退货标志
"cstcode": "", //销售类型编码
"cdepcode": "", //部门编码
"ccuscode": "", //客户编码
"dpredatebt": "2025-01-01", //预发货日期
"dpremodatebt": "2025-01-01", //预完工日期
"iexchrate": 1, //汇率
"cmemo": "", //备注
"cpersoncode": "", //业务员编码
"body": [
{
"cinvcode": "", //存货编码
"iquantity": 10, //数量
"dpredate": "2025-01-01", //预发货日期
"dpremodate": "2025-01-01", //预完工日期
"editprop": "A", //编辑属性
"irowno": 1, //行号
"itaxunitprice": 1, //含税单价
"iquotedprice": 1, //报价
"iunitprice": 1, //无税单价
"imoney": 1, //无税金额
"itax": 1, //税额
"isum": 1, //价税合计
"inatunitprice": 1, //本币单价
"inatmoney": 1, //本币金额
"inattax": 1, //本币税额
"inatsum": 1, //本币价税合计
"itaxrate": 13, //税率
"cmemo": "" //备注
}
]
}
@@ -31,7 +31,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
/// <summary> /// <summary>
/// 日志组件 /// 日志组件
/// </summary> /// </summary>
protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); private readonly ILog _logInfo = LogManager.GetLogger("logInfo");
private static readonly MemoryCache _cache = new MemoryCache(new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan.FromMinutes(10) }); private static readonly MemoryCache _cache = new MemoryCache(new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan.FromMinutes(10) });
@@ -57,13 +57,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var workId = SnowFlakeSingle.Instance.NextId(); var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{cAccId},数据:{input.ToJson()}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{cAccId},数据:{input.ToJson()}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -85,7 +85,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -131,45 +131,45 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
.Where(a => a.bDefault == true && a.cPosition == "H" && a.DefaultValue == "单号" && .Where(a => a.bDefault == true && a.cPosition == "H" && a.DefaultValue == "单号" &&
a.bEnable == true).Select(a => a.FieldName).First(); a.bEnable == true).Select(a => a.FieldName).First();
logInfo.Debug($"作业Id:{workId}-----配置获取单号"); _logInfo.Debug($"作业Id:{workId}-----配置获取单号");
} }
else else
{ {
logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); _logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定");
} }
#region 调整日期,去掉时间部分 #region 调整日期,去掉时间部分
if (input.ContainsKey("ddate")) if (input.ContainsKey("ddate"))
{ {
logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分");
input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}"; input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}";
} }
if (input.ContainsKey("dtvdate")) if (input.ContainsKey("dtvdate"))
{ {
logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分");
input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}"; input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}";
} }
#endregion #endregion
logInfo.Debug($"作业Id:{workId}-----设置表头数据"); _logInfo.Debug($"作业Id:{workId}-----设置表头数据");
input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch); input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch);
logInfo.Debug($"作业Id:{workId}-----读取表体数据"); _logInfo.Debug($"作业Id:{workId}-----读取表体数据");
var bodyData = input[voucherInfo.BodyName].ToJson().ToList<Dictionary<string, object>>(); //读取表体的数据 var bodyData = input[voucherInfo.BodyName].ToJson().ToList<Dictionary<string, object>>(); //读取表体的数据
if (bodyData == null || bodyData.Count <= 0) if (bodyData == null || bodyData.Count <= 0)
throw new Exception("无表体数据!"); throw new Exception("无表体数据!");
logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); _logInfo.Debug($"作业Id:{workId}-----获取表体字段配置");
var defsBody = await db.Queryable<SysU8FieldDefine>().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable==true).ToListAsync(); //获取表体的字段配置 var defsBody = await db.Queryable<SysU8FieldDefine>().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable==true).ToListAsync(); //获取表体的字段配置
var rowNo = 1; var rowNo = 1;
foreach (var body in bodyData) foreach (var body in bodyData)
{ {
logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); _logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据");
body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch); body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch);
rowNo++; rowNo++;
@@ -177,7 +177,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// 根据存货档案是否批次管理调整批次号 // 根据存货档案是否批次管理调整批次号
if (body.ContainsKey("binvbatch") && body.ContainsKey("cbatch")) if (body.ContainsKey("binvbatch") && body.ContainsKey("cbatch"))
{ {
logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号"); _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号");
if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean()) if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean())
{ {
body["cbatch"] = ""; body["cbatch"] = "";
@@ -187,7 +187,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// 根据存货档案是否批次管理调整批次号(调拨单) // 根据存货档案是否批次管理调整批次号(调拨单)
if (body.ContainsKey("binvbatch") && body.ContainsKey("ctvbatch")) if (body.ContainsKey("binvbatch") && body.ContainsKey("ctvbatch"))
{ {
logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号(调拨单)"); _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号(调拨单)");
if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean()) if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean())
{ {
body["ctvbatch"] = ""; body["ctvbatch"] = "";
@@ -197,7 +197,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// 根据存货档案是否保质期管理调整生产日期和失效日期 // 根据存货档案是否保质期管理调整生产日期和失效日期
if (body.ContainsKey("binvquality") && body.ContainsKey("dmadedate")) if (body.ContainsKey("binvquality") && body.ContainsKey("dmadedate"))
{ {
logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否保质期管理调整生产日期和失效日期"); _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否保质期管理调整生产日期和失效日期");
if (body["binvquality"] == null || body["binvquality"] == DBNull.Value || !body["binvquality"].ToBoolean()) if (body["binvquality"] == null || body["binvquality"] == DBNull.Value || !body["binvquality"].ToBoolean())
{ {
@@ -250,7 +250,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace }; return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
} }
@@ -270,13 +270,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("api/U8/ST/{cCardNum}/Insert/Token")] [Route("api/U8/ST/{cCardNum}/Insert/Token")]
public async Task<BaseResult<string>> Insert2(string cCardNum, [FromBody] Dictionary<string, object> input, bool bCheck = true, bool bBeforCheckStock = true, bool bIsRedVouch = false, string sAddedState = "", bool bReMote = false) public async Task<BaseResult<string>> InsertToken(string cCardNum, [FromBody] Dictionary<string, object> input, bool bCheck = true, bool bBeforCheckStock = true, bool bIsRedVouch = false, string sAddedState = "", bool bReMote = false)
{ {
try try
{ {
var userToken = Request.Headers.GetValues("userToken").First(); var userToken = Request.Headers.GetValues("userToken").First();
logInfo.Debug($"当前接口:api/U8/ST/{cCardNum}/Insert/{userToken},参数:{input.ToJson()}"); _logInfo.Debug($"当前接口:api/U8/ST/{cCardNum}/Insert/{userToken},参数:{input.ToJson()}");
var output = CommUnit.GetDecrypt(userToken).ToObject<LoginOutput>(); var output = CommUnit.GetDecrypt(userToken).ToObject<LoginOutput>();
@@ -286,13 +286,15 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var workId = SnowFlakeSingle.Instance.NextId(); var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{output.cAccId},数据:{input.ToJson()}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{output.cAccId},数据:{input.ToJson()}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{userToken}_{output.cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{userToken}_{output.cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -307,7 +309,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -353,45 +355,45 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
.Where(a => a.bDefault == true && a.cPosition == "H" && a.DefaultValue == "单号" && .Where(a => a.bDefault == true && a.cPosition == "H" && a.DefaultValue == "单号" &&
a.bEnable == true).Select(a => a.FieldName).First(); a.bEnable == true).Select(a => a.FieldName).First();
logInfo.Debug($"作业Id:{workId}-----配置获取单号"); _logInfo.Debug($"作业Id:{workId}-----配置获取单号");
} }
else else
{ {
logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); _logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定");
} }
#region 调整日期,去掉时间部分 #region 调整日期,去掉时间部分
if (input.ContainsKey("ddate")) if (input.ContainsKey("ddate"))
{ {
logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分");
input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}"; input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}";
} }
if (input.ContainsKey("dtvdate")) if (input.ContainsKey("dtvdate"))
{ {
logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分");
input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}"; input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}";
} }
#endregion #endregion
logInfo.Debug($"作业Id:{workId}-----设置表头数据"); _logInfo.Debug($"作业Id:{workId}-----设置表头数据");
input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch); input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch);
logInfo.Debug($"作业Id:{workId}-----读取表体数据"); _logInfo.Debug($"作业Id:{workId}-----读取表体数据");
var bodyData = input[voucherInfo.BodyName].ToJson().ToList<Dictionary<string, object>>(); //读取表体的数据 var bodyData = input[voucherInfo.BodyName].ToJson().ToList<Dictionary<string, object>>(); //读取表体的数据
if (bodyData == null || bodyData.Count <= 0) if (bodyData == null || bodyData.Count <= 0)
throw new Exception("无表体数据!"); throw new Exception("无表体数据!");
logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); _logInfo.Debug($"作业Id:{workId}-----获取表体字段配置");
var defsBody = await db.Queryable<SysU8FieldDefine>().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable == true).ToListAsync(); //获取表体的字段配置 var defsBody = await db.Queryable<SysU8FieldDefine>().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable == true).ToListAsync(); //获取表体的字段配置
var rowNo = 1; var rowNo = 1;
foreach (var body in bodyData) foreach (var body in bodyData)
{ {
logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); _logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据");
body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch); body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch);
rowNo++; rowNo++;
@@ -399,7 +401,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// 根据存货档案是否批次管理调整批次号 // 根据存货档案是否批次管理调整批次号
if (body.ContainsKey("binvbatch") && body.ContainsKey("cbatch")) if (body.ContainsKey("binvbatch") && body.ContainsKey("cbatch"))
{ {
logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号"); _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号");
if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean()) if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean())
{ {
body["cbatch"] = ""; body["cbatch"] = "";
@@ -409,7 +411,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// 根据存货档案是否批次管理调整批次号(调拨单) // 根据存货档案是否批次管理调整批次号(调拨单)
if (body.ContainsKey("binvbatch") && body.ContainsKey("ctvbatch")) if (body.ContainsKey("binvbatch") && body.ContainsKey("ctvbatch"))
{ {
logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号(调拨单)"); _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号(调拨单)");
if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean()) if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean())
{ {
body["ctvbatch"] = ""; body["ctvbatch"] = "";
@@ -419,7 +421,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// 根据存货档案是否保质期管理调整生产日期和失效日期 // 根据存货档案是否保质期管理调整生产日期和失效日期
if (body.ContainsKey("binvquality") && body.ContainsKey("dmadedate")) if (body.ContainsKey("binvquality") && body.ContainsKey("dmadedate"))
{ {
logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否保质期管理调整生产日期和失效日期"); _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否保质期管理调整生产日期和失效日期");
if (body["binvquality"] == null || body["binvquality"] == DBNull.Value || !body["binvquality"].ToBoolean()) if (body["binvquality"] == null || body["binvquality"] == DBNull.Value || !body["binvquality"].ToBoolean())
{ {
@@ -472,7 +474,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace }; return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
} }
@@ -500,13 +502,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// var workId = SnowFlakeSingle.Instance.NextId(); // var workId = SnowFlakeSingle.Instance.NextId();
// logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:修改,对接账套:{cAccId},数据:{input.ToJson()}"); // _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:修改,对接账套:{cAccId},数据:{input.ToJson()}");
// //LoginParamter param; // //LoginParamter param;
// if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) // if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
// { // {
// logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); // _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
// baseLogin = new BaseLogin(); // baseLogin = new BaseLogin();
@@ -528,7 +530,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// // param = await CommUnit.GetLoginParamter(cAccId); // // param = await CommUnit.GetLoginParamter(cAccId);
// //} // //}
// logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); // _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
// var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); // var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -574,45 +576,45 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// .Where(a => a.bDefault == true && a.cPosition == "H" && a.DefaultValue == "单号" && // .Where(a => a.bDefault == true && a.cPosition == "H" && a.DefaultValue == "单号" &&
// a.bEnable == true).Select(a => a.FieldName).First(); // a.bEnable == true).Select(a => a.FieldName).First();
// logInfo.Debug($"作业Id:{workId}-----配置获取单号"); // _logInfo.Debug($"作业Id:{workId}-----配置获取单号");
// } // }
// else // else
// { // {
// logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); // _logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定");
// } // }
// #region 调整日期,去掉时间部分 // #region 调整日期,去掉时间部分
// if (input.ContainsKey("ddate")) // if (input.ContainsKey("ddate"))
// { // {
// logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); // _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分");
// input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}"; // input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}";
// } // }
// if (input.ContainsKey("dtvdate")) // if (input.ContainsKey("dtvdate"))
// { // {
// logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); // _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分");
// input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}"; // input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}";
// } // }
// #endregion // #endregion
// logInfo.Debug($"作业Id:{workId}-----设置表头数据"); // _logInfo.Debug($"作业Id:{workId}-----设置表头数据");
// input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch); // input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch);
// logInfo.Debug($"作业Id:{workId}-----读取表体数据"); // _logInfo.Debug($"作业Id:{workId}-----读取表体数据");
// var bodyData = input[voucherInfo.BodyName].ToJson().ToList<Dictionary<string, object>>(); //读取表体的数据 // var bodyData = input[voucherInfo.BodyName].ToJson().ToList<Dictionary<string, object>>(); //读取表体的数据
// if (bodyData == null || bodyData.Count <= 0) // if (bodyData == null || bodyData.Count <= 0)
// throw new Exception("无表体数据!"); // throw new Exception("无表体数据!");
// logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); // _logInfo.Debug($"作业Id:{workId}-----获取表体字段配置");
// var defsBody = await db.Queryable<SysU8FieldDefine>().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable == true).ToListAsync(); //获取表体的字段配置 // var defsBody = await db.Queryable<SysU8FieldDefine>().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable == true).ToListAsync(); //获取表体的字段配置
// var rowNo = 1; // var rowNo = 1;
// foreach (var body in bodyData) // foreach (var body in bodyData)
// { // {
// logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); // _logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据");
// body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch); // body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch);
// rowNo++; // rowNo++;
@@ -620,7 +622,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// // 根据存货档案是否批次管理调整批次号 // // 根据存货档案是否批次管理调整批次号
// if (body.ContainsKey("binvbatch") && body.ContainsKey("cbatch")) // if (body.ContainsKey("binvbatch") && body.ContainsKey("cbatch"))
// { // {
// logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号"); // _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号");
// if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean()) // if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean())
// { // {
// body["cbatch"] = ""; // body["cbatch"] = "";
@@ -630,7 +632,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// // 根据存货档案是否批次管理调整批次号(调拨单) // // 根据存货档案是否批次管理调整批次号(调拨单)
// if (body.ContainsKey("binvbatch") && body.ContainsKey("ctvbatch")) // if (body.ContainsKey("binvbatch") && body.ContainsKey("ctvbatch"))
// { // {
// logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号(调拨单)"); // _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否批次管理调整批次号(调拨单)");
// if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean()) // if (body["binvbatch"] == null || body["binvbatch"] == DBNull.Value || !body["binvbatch"].ToBoolean())
// { // {
// body["ctvbatch"] = ""; // body["ctvbatch"] = "";
@@ -640,7 +642,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// // 根据存货档案是否保质期管理调整生产日期和失效日期 // // 根据存货档案是否保质期管理调整生产日期和失效日期
// if (body.ContainsKey("binvquality") && body.ContainsKey("dmadedate")) // if (body.ContainsKey("binvquality") && body.ContainsKey("dmadedate"))
// { // {
// logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否保质期管理调整生产日期和失效日期"); // _logInfo.Debug($"作业Id:{workId}-----第{rowNo}行根据存货档案是否保质期管理调整生产日期和失效日期");
// if (body["binvquality"] == null || body["binvquality"] == DBNull.Value || !body["binvquality"].ToBoolean()) // if (body["binvquality"] == null || body["binvquality"] == DBNull.Value || !body["binvquality"].ToBoolean())
// { // {
@@ -693,7 +695,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// } // }
// catch (Exception ex) // catch (Exception ex)
// { // {
// logInfo.Error(ex.Message, ex); // _logInfo.Error(ex.Message, ex);
// return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace }; // return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
// } // }
@@ -720,13 +722,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var workId = SnowFlakeSingle.Instance.NextId(); var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{cCode}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{cCode}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin) || baseLogin ==null) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin) || baseLogin ==null)
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -748,7 +750,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -758,7 +760,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message };
} }
@@ -785,13 +787,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var workId = SnowFlakeSingle.Instance.NextId(); var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},ID:{voucherId}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},ID:{voucherId}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -813,7 +815,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -823,7 +825,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message };
} }
@@ -878,13 +880,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
strId = string.Join(",", voucherIds); strId = string.Join(",", voucherIds);
} }
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{strCode},ID:{strId}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{strCode},ID:{strId}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -906,7 +908,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -927,7 +929,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null }; return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null };
} }
@@ -954,13 +956,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var workId = SnowFlakeSingle.Instance.NextId(); var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{cCode}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{cCode}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -982,7 +984,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -992,7 +994,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "弃审失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "弃审失败", result = ex.Message };
} }
@@ -1020,13 +1022,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var workId = SnowFlakeSingle.Instance.NextId(); var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},ID:{voucherId}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},ID:{voucherId}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -1048,7 +1050,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -1058,7 +1060,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "弃审失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "弃审失败", result = ex.Message };
} }
@@ -1113,13 +1115,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
strId = string.Join(",", voucherIds); strId = string.Join(",", voucherIds);
} }
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{strCode},ID:{strId}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{strCode},ID:{strId}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -1141,7 +1143,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -1162,7 +1164,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null }; return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null };
} }
@@ -1189,13 +1191,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var workId = SnowFlakeSingle.Instance.NextId(); var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{cCode}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{cCode}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -1217,7 +1219,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -1227,7 +1229,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message };
} }
@@ -1255,13 +1257,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
var workId = SnowFlakeSingle.Instance.NextId(); var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},ID:{voucherId}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},ID:{voucherId}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -1283,7 +1285,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -1293,7 +1295,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message }; return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message };
} }
@@ -1348,13 +1350,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
strId = string.Join(",", voucherIds); strId = string.Join(",", voucherIds);
} }
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{strCode},ID:{strId}"); _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{strCode},ID:{strId}");
//LoginParamter param; //LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{ {
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin(); baseLogin = new BaseLogin();
@@ -1376,7 +1378,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
// param = await CommUnit.GetLoginParamter(cAccId); // param = await CommUnit.GetLoginParamter(cAccId);
//} //}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum); var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
@@ -1397,7 +1399,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
} }
catch (Exception ex) catch (Exception ex)
{ {
logInfo.Error(ex.Message, ex); _logInfo.Error(ex.Message, ex);
return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null }; return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null };
} }
@@ -1,11 +1,21 @@
using log4net; using log4net;
using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Caching.Memory;
using SqlSugar;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http; using System.Web.Http;
using System.Web.UI.WebControls;
using UFIDA.U8.Framework.Api.ControlObject.Entity;
using UFIDA.U8.Framework.Api.ControlObject.Json;
using UFIDA.U8.Framework.Api.ControlObject.U8M;
using UFIDA.U8.Framework.Api.ControlObject.Workflow;
using UFIDA.U8.Framework.Api.Entity;
using UFIDA.U8.Framework.Api.Models;
using UFIDA.U8.Framework.Api.Unit;
namespace UFIDA.U8.Framework.Api.Controllers.U8 namespace UFIDA.U8.Framework.Api.Controllers.U8
{ {
@@ -17,10 +27,176 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
/// <summary> /// <summary>
/// 日志组件 /// 日志组件
/// </summary> /// </summary>
protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); private readonly ILog _logInfo = LogManager.GetLogger("logInfo");
private static readonly MemoryCache _cache = new MemoryCache(new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan.FromMinutes(10) }); 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="cCode">单据编号</param>
/// <param name="eventId">审批事件</param>
/// <param name="bUap">是否UAP单据</param>
/// <returns></returns>
[HttpGet]
[Route("api/U8/Workflow/SubmitApplicationMessage/Code")]
public async Task<BaseResult<string>> SubmitApplicationMessage(string cAccId, string cCardNum,string cCode,string eventId, bool bUap=false)
{
try
{
if (Request.Headers.TryGetValues("userToken", out var userToken))
{
return await SubmitApplicationMessageToken(cCardNum, cCode, eventId, bUap);
}
_logInfo.Debug($"当前接口:api/U8/Workflow/SubmitApplicationMessage/Code,对接账套:{cAccId},单据:{cCardNum},事件:{eventId},单据编号:{cCode}");
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
_logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:提交审批流,对接账套:{cAccId},单据编号:{cCode}");
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
_logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, true);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
var services = new ServiceProxy();
return await services.SubmitApplicationMessage(baseLogin, cCardNum, eventId, cCode, bUap);
}
catch (Exception ex)
{
_logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
}
}
/// <summary>
/// 提交审批流(单号)
/// </summary>
/// <param name="cAccId">系统注册号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="cCode">单据编号</param>
/// <param name="eventId">审批事件</param>
/// <param name="bUap">是否UAP单据</param>
/// <returns></returns>
[HttpGet]
[Route("api/U8/Workflow/SubmitApplicationMessage/Code/Token")]
public async Task<BaseResult<string>> SubmitApplicationMessageToken(string cCardNum,string cCode,string eventId, bool bUap=false)
{
try
{
var userToken = Request.Headers.GetValues("userToken").First();
_logInfo.Debug($"当前接口:api/U8/Workflow/SubmitApplicationMessage/Code,userToken:{userToken},单据:{cCardNum},事件:{eventId},单据编号:{cCode}");
var output = CommUnit.GetDecrypt(userToken).ToObject<LoginOutput>();
var token = CommUnit.GetDecrypt(output.userToken);
var workId = SnowFlakeSingle.Instance.NextId();
_logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{output.cAccId},单据编号:{cCode}");
if (!_cache.TryGetValue($"U8_{userToken}_{output.cAccId}", out BaseLogin baseLogin))
{
_logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
baseLogin.Init(token, true, 5);
_cache.Clear();
_cache.Set($"U8_{userToken}_{output.cAccId}", baseLogin);
}
var services = new ServiceProxy();
return await services.SubmitApplicationMessage(baseLogin, cCardNum, eventId, cCode, bUap);
}
catch (Exception ex)
{
_logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
}
}
/// <summary>
/// 提交审批流(单号)
/// </summary>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="voucherId">单据ID</param>
/// <param name="cAccId">系统注册号</param>
/// <param name="eventId">审批事件</param>
/// <param name="bUap">是否UAP单据</param>
/// <returns></returns>
[HttpGet]
[Route("api/U8/Workflow/SubmitApplicationMessage/ID")]
public async Task<BaseResult<string>> SubmitApplicationMessage(string cAccId, string cCardNum, long voucherId, string eventId, bool bUap = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
_logInfo.Debug($"当前接口:api/U8/Workflow/SubmitApplicationMessage/Code,作业Id:{workId},对接账套:{cAccId},单据:{cCardNum},事件:{eventId},单据ID:{voucherId}");
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
_logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
var services = new ServiceProxy();
return await services.SubmitApplicationMessage(baseLogin, cCardNum, eventId, voucherId, bUap);
}
catch (Exception ex)
{
_logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
}
}
} }
} }
+4
View File
@@ -19,6 +19,7 @@ namespace UFIDA.U8.Framework.Api
private readonly string s_u8MPath; private readonly string s_u8MPath;
private readonly string s_u8FrameworkPath; private readonly string s_u8FrameworkPath;
private readonly string s_u8APIFramework; private readonly string s_u8APIFramework;
private readonly string s_u8workflow;
public WebApiApplication() public WebApiApplication()
@@ -27,6 +28,7 @@ namespace UFIDA.U8.Framework.Api
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\";
s_u8workflow = $@"{s_u8Root}Workflow\Lib\";
} }
@@ -90,6 +92,8 @@ namespace UFIDA.U8.Framework.Api
return Assembly.LoadFrom(s_u8FrameworkPath + sAsmName); return Assembly.LoadFrom(s_u8FrameworkPath + sAsmName);
if (File.Exists(s_u8APIFramework + sAsmName)) if (File.Exists(s_u8APIFramework + sAsmName))
return Assembly.LoadFrom(s_u8APIFramework + sAsmName); return Assembly.LoadFrom(s_u8APIFramework + sAsmName);
if (File.Exists(s_u8workflow + sAsmName))
return Assembly.LoadFrom(s_u8workflow + sAsmName);
return null; return null;
} }
} }
@@ -487,6 +487,7 @@
<Content Include="App_Data\采购入库单模板.json" /> <Content Include="App_Data\采购入库单模板.json" />
<Content Include="App_Data\票据录入模板.json" /> <Content Include="App_Data\票据录入模板.json" />
<Content Include="App_Data\请购单模板.json" /> <Content Include="App_Data\请购单模板.json" />
<Content Include="App_Data\销售订单模板.json" />
<None Include="Oracle.DataAccess.Common.Configuration.Section.xsd"> <None Include="Oracle.DataAccess.Common.Configuration.Section.xsd">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</None> </None>