diff --git a/UFIDA.U8.Framework.Api.ControlObject/AP/NoteManageAR.cs b/UFIDA.U8.Framework.Api.ControlObject/AP/NoteManageAR.cs index 11eb58a..b7ec53d 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/AP/NoteManageAR.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/AP/NoteManageAR.cs @@ -11,6 +11,9 @@ using UFIDA.U8.Framework.Api.ControlObject.U8M; namespace UFIDA.U8.Framework.Api.ControlObject.AP { + /// + /// 票据管理(应收) + /// public class NoteManageAR { /// @@ -74,15 +77,11 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP //voucher.OneVoucherData = voucherData; //voucher.objPub = clsPub; - clsPub.Conn.BeginTrans(); - res.bSuccess = voucher.NoteCheck(voucherData, ref errMsg); //res.bSuccess = voucher.VoucherHeadCheck(voucherData,true, ref errMsg); if (!res.bSuccess) { - clsPub.Conn.RollbackTrans(); - //login.Connection.RollbackTrans(); res.message = "保存失败"; res.result = errMsg; @@ -93,8 +92,6 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP if (!res.bSuccess) { - clsPub.Conn.RollbackTrans(); - //login.Connection.RollbackTrans(); res.message = "保存失败"; res.result = errMsg; @@ -105,7 +102,9 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP var newInput = new Dictionary() { + {"cVouchID","0000000001"}, { "dVouchDate", $"{login._vbLogin.CurDate:yyyy-MM-dd}" }, + { "cTypeName", "收款单" }, { "cSSName", voucherData.cVouchTypeName }, { "cexch_name", voucherData.cExch_Name }, { "iAmount_f", voucherData.iAmount }, @@ -114,11 +113,15 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP { "cBankAccount", voucherData.cPayBillAccount }, { "cNoteNo", voucherData.CVouchId }, { "cDepCode", voucherData.cDeptCode }, + //{ "cDwCode", "03006" }, + { "iPayType", 0 }, + { "cPayType", "货款" }, { "cDwCode", voucherData.cDwCode }, { "cOperator", voucherData.CBill }, { "cDigest", voucherData.cDigest }, { "bStartFlag", voucher.m_bStartFlag }, { "cVouchType", "48" }, + { "cAuthID", "00000001" }, { "cCoVouchType", voucherData.cVouchType }, { "cCoVouchID", voucherData.CVouchId }, { "cFlag", voucherData.cFlag }, @@ -126,7 +129,12 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP { "cPerson", voucherData.cPerson }, { "cNatBank", voucherData.cReceiveBank }, { "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>(); @@ -136,6 +144,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP {"editprop","A"}, {"cMemo",voucherData.cDigest}, {"cCusVen",voucherData.cDwCode}, + //{"cCusVen","03006"}, {"iAmt_f",voucherData.iAmount}, {"iAmt",voucherData.iAmount_Local}, {"cKm",voucher.getNoteKm(voucherData.cVouchType)}, @@ -143,8 +152,10 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP {"iRAmt",voucherData.iAmount_Local}, {"cDepCode",voucherData.cDeptCode}, {"cPersonCode",voucherData.cPerson}, + {"iType",0}, + {"cType","应收款"}, }; - + newInput["body"] = bodys; bodys.Add(body); @@ -165,17 +176,14 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP if (!res2.bSuccess) { - clsPub.Conn.RollbackTrans(); - //login.Connection.RollbackTrans(); res.message = "保存失败"; - res.result = res2.message; - + res.result = res2.result; + res.voucherCode = $"{voucherData.CVouchId}"; + res.voucherId = $"{voucherData.CVouchId}"; return res; } - clsPub.Conn.CommitTrans(); - //login.Connection.CommitTrans(); res.message = "保存成功"; res.voucherCode = $"{voucherData.CVouchId}"; res.voucherId = $"{voucherData.CVouchId}"; diff --git a/UFIDA.U8.Framework.Api.ControlObject/AP/clsVouchFacade.cs b/UFIDA.U8.Framework.Api.ControlObject/AP/clsVouchFacade.cs index e56b2ae..500369f 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/AP/clsVouchFacade.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/AP/clsVouchFacade.cs @@ -19,13 +19,24 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP { protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); + /// + /// 保存单据 + /// + /// + /// + /// + /// + /// + /// + /// + /// public async Task> SaveVouch(BaseLogin login, Dictionary input,string VouchClass,bool bGetCode=false,string codeKey="",bool bPrintDom=false) { try { var clsVouchFacade = $"UFAPBO.clsVouchFacade".GetComObject(); - clsVouchFacade.Init(VouchClass, login._vbLogin, login.Connection); + clsVouchFacade.Init(VouchClass, login._vbLogin); IXMLDOMDocument2 domHead = new DOMDocument(); IXMLDOMDocument2 domBody = new DOMDocument(); @@ -50,37 +61,39 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP throw new Exception("无法获取表体数据"); } - if (bGetCode) - { - var cardNum = ""; + //if (bGetCode) + //{ + // var cardNum = ""; - switch (VouchClass) - { - case "收款单": - cardNum = "AR48"; - break; - default: - break; - } + // switch (VouchClass) + // { + // case "收款单": + // cardNum = "AR48"; + // break; + // default: + // break; + // } - var clsBillComponent = "UFBillComponent.clsBillComponent".GetComObject(); + // //var clsBillComponent = "UFBillComponent.clsBillComponent".GetComObject(); - if (!clsBillComponent.InitBill(login._vbLogin.UfDbName, cardNum)) - { - throw new Exception("初始化单据编号组件失败"); - } + // //if (!clsBillComponent.InitBill(login._vbLogin.UfDbName, cardNum)) + // //{ + // // 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)) - { - CommonHelper.SetDomKeyValue(domHead, codeKey, newCode); - } + // logInfo.Debug($"获取新单号:{newCode}"); - input[codeKey] = newCode; - } + // if (!string.IsNullOrWhiteSpace(newCode)) + // { + // CommonHelper.SetDomKeyValue(domHead, codeKey, newCode); + // } + + // input[codeKey] = newCode; + //} logInfo.Debug("填充表体DOM..."); domBody = dictionarys.ToDocument2(domBody); @@ -96,8 +109,6 @@ namespace UFIDA.U8.Framework.Api.ControlObject.AP var res = new BaseResult(); - clsVouchFacade.bOutTrans = true; - res.bSuccess = clsVouchFacade.SaveVouch(domHead, domBody, ref errMsg); if (!res.bSuccess) diff --git a/UFIDA.U8.Framework.Api.ControlObject/Common/CommonHelper.cs b/UFIDA.U8.Framework.Api.ControlObject/Common/CommonHelper.cs index f25ddaa..4c7e267 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/Common/CommonHelper.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/Common/CommonHelper.cs @@ -23,7 +23,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common /// /// 日志组件 /// - 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) { @@ -574,7 +574,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common } 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}'"; - logInfo.Debug($"查询ID:{strSql}"); + _logInfo.Debug($"查询ID:{strSql}"); var rst = new Recordset(); @@ -789,6 +789,45 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common } + /// + /// 获取事件ID + /// + /// 连接对象 + /// 单据类型编码 + /// 事件Id + /// + /// + 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) { var tableName = vouchers.cBTTblName; diff --git a/UFIDA.U8.Framework.Api.ControlObject/Entity/AuditBizEvents.cs b/UFIDA.U8.Framework.Api.ControlObject/Entity/AuditBizEvents.cs new file mode 100644 index 0000000..a4b2a62 --- /dev/null +++ b/UFIDA.U8.Framework.Api.ControlObject/Entity/AuditBizEvents.cs @@ -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 + { + + } +} diff --git a/UFIDA.U8.Framework.Api.ControlObject/SA/ClsVoucherCO_SA.cs b/UFIDA.U8.Framework.Api.ControlObject/SA/ClsVoucherCO_SA.cs new file mode 100644 index 0000000..151a631 --- /dev/null +++ b/UFIDA.U8.Framework.Api.ControlObject/SA/ClsVoucherCO_SA.cs @@ -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 +{ + /// + /// 销售管理 + /// + public class ClsVoucherCO_SA + { + protected readonly ILog logInfo = LogManager.GetLogger("logInfo"); + + public async Task> Save(BaseLogin baseLogin, Dictionary 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 { bSuccess = false, message = "保存失败", result = ex.Message }; + } + } + } +} diff --git a/UFIDA.U8.Framework.Api.ControlObject/SA/VoucherTypeSA.cs b/UFIDA.U8.Framework.Api.ControlObject/SA/VoucherTypeSA.cs new file mode 100644 index 0000000..dc93866 --- /dev/null +++ b/UFIDA.U8.Framework.Api.ControlObject/SA/VoucherTypeSA.cs @@ -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 + { + /// + /// 发货单蓝字 + /// + DispatchBlue=9, + } +} diff --git a/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj b/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj index f227794..713754b 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj +++ b/UFIDA.U8.Framework.Api.ControlObject/UFIDA.U8.Framework.Api.ControlObject.csproj @@ -197,6 +197,7 @@ + @@ -207,6 +208,8 @@ + + diff --git a/UFIDA.U8.Framework.Api.ControlObject/Workflow/ServiceProxy.cs b/UFIDA.U8.Framework.Api.ControlObject/Workflow/ServiceProxy.cs index e74f273..04bd47d 100644 --- a/UFIDA.U8.Framework.Api.ControlObject/Workflow/ServiceProxy.cs +++ b/UFIDA.U8.Framework.Api.ControlObject/Workflow/ServiceProxy.cs @@ -1,9 +1,14 @@ using System; using System.Threading.Tasks; +using System.Web.UI.WebControls; using log4net; 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.U8M; +using UFSoft.U8.BO.BE; +using UFSoft.U8.Framework.LoginContext; + // ReSharper disable IdentifierTypo namespace UFIDA.U8.Framework.Api.ControlObject.Workflow @@ -13,7 +18,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow /// public class ServiceProxy { - private readonly ILog _logInfo = LogManager.GetLogger("_logInfo"); + private readonly ILog _logInfo = LogManager.GetLogger("logInfo"); /// /// #是否启用审批流# @@ -103,6 +108,102 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow } } + /// + /// #提交审批流# + /// + /// + /// + /// + /// + /// + /// + /// + public async Task> 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 + { + bSuccess = false, + message = "提交失败", + voucherCode = voucherCode, + voucherId = voucherId, + result = ex.Message + }; + } + } + + /// + /// #提交审批流# + /// + /// + /// + /// + /// + /// + /// + /// + public async Task> 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 + { + bSuccess = false, + message = "提交失败", + voucherCode = voucherCode, + voucherId = $"{voucherId}", + result = ex.Message + }; + } + } + /// /// #单据审核# /// diff --git a/UFIDA.U8.Framework.Api/App_Data/U8API.xml b/UFIDA.U8.Framework.Api/App_Data/U8API.xml index 8b76c3e..12385a8 100644 --- a/UFIDA.U8.Framework.Api/App_Data/U8API.xml +++ b/UFIDA.U8.Framework.Api/App_Data/U8API.xml @@ -1004,7 +1004,7 @@ 库存管理 - + 日志组件 @@ -1023,7 +1023,7 @@ 是否远程 - + 新增单据 @@ -1155,11 +1155,44 @@ 审批流 - + 日志组件 + + + 提交审批流(单号) + + 系统注册号 + 单据类型编码 + 单据编号 + 审批事件 + 是否UAP单据 + + + + + 提交审批流(单号) + + 系统注册号 + 单据类型编码 + 单据编号 + 审批事件 + 是否UAP单据 + + + + + 提交审批流(单号) + + 单据类型编码 + 单据ID + 系统注册号 + 审批事件 + 是否UAP单据 + + 登录参数 diff --git a/UFIDA.U8.Framework.Api/App_Data/票据录入模板.json b/UFIDA.U8.Framework.Api/App_Data/票据录入模板.json index 7685990..f035dd2 100644 --- a/UFIDA.U8.Framework.Api/App_Data/票据录入模板.json +++ b/UFIDA.U8.Framework.Api/App_Data/票据录入模板.json @@ -2,7 +2,7 @@ "cVouchType": "50", "cPayBillBank": "招商银行双榆树支行", "cVouchTypeName": "银行承兑汇票", - "CVouchId": "12312345", + "CVouchId": "12312345234", "cDwCode": "00000001", "cDeptCode": "0301", "cPerson": "00024", diff --git a/UFIDA.U8.Framework.Api/App_Data/销售订单模板.json b/UFIDA.U8.Framework.Api/App_Data/销售订单模板.json new file mode 100644 index 0000000..e7309db --- /dev/null +++ b/UFIDA.U8.Framework.Api/App_Data/销售订单模板.json @@ -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": "" //备注 + } + ] +} \ No newline at end of file diff --git a/UFIDA.U8.Framework.Api/Controllers/U8/STController.cs b/UFIDA.U8.Framework.Api/Controllers/U8/STController.cs index ae2007a..c93f698 100644 --- a/UFIDA.U8.Framework.Api/Controllers/U8/STController.cs +++ b/UFIDA.U8.Framework.Api/Controllers/U8/STController.cs @@ -31,7 +31,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 /// /// 日志组件 /// - 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) }); @@ -57,13 +57,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 var workId = SnowFlakeSingle.Instance.NextId(); - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{cAccId},数据:{input.ToJson()}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{cAccId},数据:{input.ToJson()}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -85,7 +85,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().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 == "单号" && a.bEnable == true).Select(a => a.FieldName).First(); - logInfo.Debug($"作业Id:{workId}-----配置获取单号"); + _logInfo.Debug($"作业Id:{workId}-----配置获取单号"); } else { - logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); + _logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); } #region 调整日期,去掉时间部分 if (input.ContainsKey("ddate")) { - logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); + _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}"; } if (input.ContainsKey("dtvdate")) { - logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); + _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}"; } #endregion - logInfo.Debug($"作业Id:{workId}-----设置表头数据"); + _logInfo.Debug($"作业Id:{workId}-----设置表头数据"); input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch); - logInfo.Debug($"作业Id:{workId}-----读取表体数据"); + _logInfo.Debug($"作业Id:{workId}-----读取表体数据"); var bodyData = input[voucherInfo.BodyName].ToJson().ToList>(); //读取表体的数据 if (bodyData == null || bodyData.Count <= 0) throw new Exception("无表体数据!"); - logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); + _logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); var defsBody = await db.Queryable().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable==true).ToListAsync(); //获取表体的字段配置 var rowNo = 1; foreach (var body in bodyData) { - logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); + _logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch); rowNo++; @@ -177,7 +177,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // 根据存货档案是否批次管理调整批次号 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()) { body["cbatch"] = ""; @@ -187,7 +187,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // 根据存货档案是否批次管理调整批次号(调拨单) 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()) { body["ctvbatch"] = ""; @@ -197,7 +197,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // 根据存货档案是否保质期管理调整生产日期和失效日期 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()) { @@ -250,7 +250,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult { bSuccess = false, message = ex.Message, result = ex.StackTrace }; } @@ -270,13 +270,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 /// [HttpPost] [Route("api/U8/ST/{cCardNum}/Insert/Token")] - public async Task> Insert2(string cCardNum, [FromBody] Dictionary input, bool bCheck = true, bool bBeforCheckStock = true, bool bIsRedVouch = false, string sAddedState = "", bool bReMote = false) + public async Task> InsertToken(string cCardNum, [FromBody] Dictionary input, bool bCheck = true, bool bBeforCheckStock = true, bool bIsRedVouch = false, string sAddedState = "", bool bReMote = false) { try { 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(); @@ -286,13 +286,15 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 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; + + if (!_cache.TryGetValue($"U8_{userToken}_{output.cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -307,7 +309,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().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 == "单号" && a.bEnable == true).Select(a => a.FieldName).First(); - logInfo.Debug($"作业Id:{workId}-----配置获取单号"); + _logInfo.Debug($"作业Id:{workId}-----配置获取单号"); } else { - logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); + _logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); } #region 调整日期,去掉时间部分 if (input.ContainsKey("ddate")) { - logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); + _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}"; } if (input.ContainsKey("dtvdate")) { - logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); + _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}"; } #endregion - logInfo.Debug($"作业Id:{workId}-----设置表头数据"); + _logInfo.Debug($"作业Id:{workId}-----设置表头数据"); input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch); - logInfo.Debug($"作业Id:{workId}-----读取表体数据"); + _logInfo.Debug($"作业Id:{workId}-----读取表体数据"); var bodyData = input[voucherInfo.BodyName].ToJson().ToList>(); //读取表体的数据 if (bodyData == null || bodyData.Count <= 0) throw new Exception("无表体数据!"); - logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); + _logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); var defsBody = await db.Queryable().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable == true).ToListAsync(); //获取表体的字段配置 var rowNo = 1; foreach (var body in bodyData) { - logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); + _logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch); rowNo++; @@ -399,7 +401,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // 根据存货档案是否批次管理调整批次号 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()) { body["cbatch"] = ""; @@ -409,7 +411,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // 根据存货档案是否批次管理调整批次号(调拨单) 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()) { body["ctvbatch"] = ""; @@ -419,7 +421,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // 根据存货档案是否保质期管理调整生产日期和失效日期 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()) { @@ -472,7 +474,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult { bSuccess = false, message = ex.Message, result = ex.StackTrace }; } @@ -500,13 +502,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // var workId = SnowFlakeSingle.Instance.NextId(); - // logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:修改,对接账套:{cAccId},数据:{input.ToJson()}"); + // _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:修改,对接账套:{cAccId},数据:{input.ToJson()}"); // //LoginParamter param; // if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) // { - // logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + // _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); // baseLogin = new BaseLogin(); @@ -528,7 +530,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // // param = await CommUnit.GetLoginParamter(cAccId); // //} - // logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + // _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); // var voucherInfo = await db.Queryable().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 == "单号" && // a.bEnable == true).Select(a => a.FieldName).First(); - // logInfo.Debug($"作业Id:{workId}-----配置获取单号"); + // _logInfo.Debug($"作业Id:{workId}-----配置获取单号"); // } // else // { - // logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); + // _logInfo.Debug($"作业Id:{workId}-----没有单号需要自动指定"); // } // #region 调整日期,去掉时间部分 // if (input.ContainsKey("ddate")) // { - // logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); + // _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); // input["ddate"] = $"{Convert.ToDateTime(input["ddate"]):yyyy-MM-dd}"; // } // if (input.ContainsKey("dtvdate")) // { - // logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); + // _logInfo.Debug($"作业Id:{workId}-----调整日期,去掉时间部分"); // input["dtvdate"] = $"{Convert.ToDateTime(input["dtvdate"]):yyyy-MM-dd}"; // } // #endregion - // logInfo.Debug($"作业Id:{workId}-----设置表头数据"); + // _logInfo.Debug($"作业Id:{workId}-----设置表头数据"); // input.SetDictionaryData(defs, baseLogin.Connection, newNumber, 1, exch); - // logInfo.Debug($"作业Id:{workId}-----读取表体数据"); + // _logInfo.Debug($"作业Id:{workId}-----读取表体数据"); // var bodyData = input[voucherInfo.BodyName].ToJson().ToList>(); //读取表体的数据 // if (bodyData == null || bodyData.Count <= 0) // throw new Exception("无表体数据!"); - // logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); + // _logInfo.Debug($"作业Id:{workId}-----获取表体字段配置"); // var defsBody = await db.Queryable().Where(s => s.CardNumber == cCardNum && s.cPosition == "B" && s.bEnable == true).ToListAsync(); //获取表体的字段配置 // var rowNo = 1; // foreach (var body in bodyData) // { - // logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); + // _logInfo.Debug($"作业Id:{workId}-----设置第{rowNo}行单据数据"); // body.SetDictionaryData(defsBody, baseLogin.Connection, newNumber, rowNo, exch); // rowNo++; @@ -620,7 +622,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // // 根据存货档案是否批次管理调整批次号 // 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()) // { // body["cbatch"] = ""; @@ -630,7 +632,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // // 根据存货档案是否批次管理调整批次号(调拨单) // 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()) // { // body["ctvbatch"] = ""; @@ -640,7 +642,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // // 根据存货档案是否保质期管理调整生产日期和失效日期 // 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()) // { @@ -693,7 +695,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // } // catch (Exception ex) // { - // logInfo.Error(ex.Message, ex); + // _logInfo.Error(ex.Message, ex); // return new BaseResult { bSuccess = false, message = ex.Message, result = ex.StackTrace }; // } @@ -720,13 +722,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 var workId = SnowFlakeSingle.Instance.NextId(); - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{cCode}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{cCode}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin) || baseLogin ==null) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -748,7 +750,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -758,7 +760,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult { bSuccess = false, message = "审核失败", result = ex.Message }; } @@ -785,13 +787,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 var workId = SnowFlakeSingle.Instance.NextId(); - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},ID:{voucherId}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},ID:{voucherId}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -813,7 +815,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -823,7 +825,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult { bSuccess = false, message = "审核失败", result = ex.Message }; } @@ -878,13 +880,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 strId = string.Join(",", voucherIds); } - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{strCode},ID:{strId}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{strCode},ID:{strId}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -906,7 +908,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -927,7 +929,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult>> { bSuccess = false, message = ex.Message, result = null }; } @@ -954,13 +956,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 var workId = SnowFlakeSingle.Instance.NextId(); - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{cCode}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{cCode}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -982,7 +984,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -992,7 +994,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult { bSuccess = false, message = "弃审失败", result = ex.Message }; } @@ -1020,13 +1022,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 var workId = SnowFlakeSingle.Instance.NextId(); - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},ID:{voucherId}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},ID:{voucherId}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -1048,7 +1050,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -1058,7 +1060,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult { bSuccess = false, message = "弃审失败", result = ex.Message }; } @@ -1113,13 +1115,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 strId = string.Join(",", voucherIds); } - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{strCode},ID:{strId}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{strCode},ID:{strId}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -1141,7 +1143,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -1162,7 +1164,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult>> { bSuccess = false, message = ex.Message, result = null }; } @@ -1189,13 +1191,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 var workId = SnowFlakeSingle.Instance.NextId(); - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{cCode}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{cCode}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -1217,7 +1219,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -1227,7 +1229,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult { bSuccess = false, message = "删除失败", result = ex.Message }; } @@ -1255,13 +1257,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 var workId = SnowFlakeSingle.Instance.NextId(); - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},ID:{voucherId}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},ID:{voucherId}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -1283,7 +1285,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -1293,7 +1295,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult { bSuccess = false, message = "删除失败", result = ex.Message }; } @@ -1348,13 +1350,13 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 strId = string.Join(",", voucherIds); } - logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{strCode},ID:{strId}"); + _logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{strCode},ID:{strId}"); //LoginParamter param; if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin)) { - logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); + _logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建"); baseLogin = new BaseLogin(); @@ -1376,7 +1378,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 // param = await CommUnit.GetLoginParamter(cAccId); //} - logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); + _logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息"); var voucherInfo = await db.Queryable().FirstAsync(s => s.CardNumber == cCardNum); @@ -1397,7 +1399,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 } catch (Exception ex) { - logInfo.Error(ex.Message, ex); + _logInfo.Error(ex.Message, ex); return new BaseResult>> { bSuccess = false, message = ex.Message, result = null }; } diff --git a/UFIDA.U8.Framework.Api/Controllers/U8/WorkflowController.cs b/UFIDA.U8.Framework.Api/Controllers/U8/WorkflowController.cs index d944c4b..d3aca16 100644 --- a/UFIDA.U8.Framework.Api/Controllers/U8/WorkflowController.cs +++ b/UFIDA.U8.Framework.Api/Controllers/U8/WorkflowController.cs @@ -1,11 +1,21 @@ using log4net; using Microsoft.Extensions.Caching.Memory; +using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; +using System.Threading.Tasks; 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 { @@ -17,10 +27,176 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8 /// /// 日志组件 /// - 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) }); + /// + /// 提交审批流(单号) + /// + /// 系统注册号 + /// 单据类型编码 + /// 单据编号 + /// 审批事件 + /// 是否UAP单据 + /// + [HttpGet] + [Route("api/U8/Workflow/SubmitApplicationMessage/Code")] + public async Task> 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 { bSuccess = false, message = ex.Message, result = ex.StackTrace }; + + } + } + + /// + /// 提交审批流(单号) + /// + /// 系统注册号 + /// 单据类型编码 + /// 单据编号 + /// 审批事件 + /// 是否UAP单据 + /// + [HttpGet] + [Route("api/U8/Workflow/SubmitApplicationMessage/Code/Token")] + public async Task> 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(); + + 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 { bSuccess = false, message = ex.Message, result = ex.StackTrace }; + + } + } + + /// + /// 提交审批流(单号) + /// + /// 单据类型编码 + /// 单据ID + /// 系统注册号 + /// 审批事件 + /// 是否UAP单据 + /// + [HttpGet] + [Route("api/U8/Workflow/SubmitApplicationMessage/ID")] + public async Task> 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 { bSuccess = false, message = ex.Message, result = ex.StackTrace }; + + } + } } } diff --git a/UFIDA.U8.Framework.Api/Global.asax.cs b/UFIDA.U8.Framework.Api/Global.asax.cs index 9c3f541..6344796 100644 --- a/UFIDA.U8.Framework.Api/Global.asax.cs +++ b/UFIDA.U8.Framework.Api/Global.asax.cs @@ -19,6 +19,7 @@ namespace UFIDA.U8.Framework.Api private readonly string s_u8MPath; private readonly string s_u8FrameworkPath; private readonly string s_u8APIFramework; + private readonly string s_u8workflow; public WebApiApplication() @@ -27,6 +28,7 @@ namespace UFIDA.U8.Framework.Api s_u8MPath = $@"{s_u8Root}U8M\"; s_u8FrameworkPath = $@"{s_u8Root}Framework\"; 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); if (File.Exists(s_u8APIFramework + sAsmName)) return Assembly.LoadFrom(s_u8APIFramework + sAsmName); + if (File.Exists(s_u8workflow + sAsmName)) + return Assembly.LoadFrom(s_u8workflow + sAsmName); return null; } } diff --git a/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj b/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj index 57809dc..e674655 100644 --- a/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj +++ b/UFIDA.U8.Framework.Api/UFIDA.U8.Framework.Api.csproj @@ -487,6 +487,7 @@ + Designer