From 9556c5fc2168b71e5aba4bd5353fcd70e681ee46 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期一, 09 十二月 2024 01:54:25 +0800 Subject: [PATCH] 调用U9C接口生成入库单更新 --- Tiger.Business.MES/iERP/MES_U9C.cs | 228 +++++++++++++++++++++++++------------------------------- 1 files changed, 101 insertions(+), 127 deletions(-) diff --git a/Tiger.Business.MES/iERP/MES_U9C.cs b/Tiger.Business.MES/iERP/MES_U9C.cs index 4130575..5770308 100644 --- a/Tiger.Business.MES/iERP/MES_U9C.cs +++ b/Tiger.Business.MES/iERP/MES_U9C.cs @@ -26,13 +26,13 @@ { public partial class MES_U9C : IMES_U9C { - public static string U9CAuthLoginUrl { get; set; } = Biz.SysParam["U9CAuthLoginUrl_Test", "U9CUrl"].PARAM_VALUE; // "http://172.16.80.20/U9C/webapi/OAuth2/AuthLogin?"; 娴嬭瘯 - //public static string U9CAuthLoginUrl { get; set; } = Biz.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; //姝e紡 + public static string U9CAuthLoginUrl { get; set; } = Cache.SysParam["U9CAuthLoginUrl_Test", "U9CUrl"].PARAM_VALUE; // "http://172.16.80.20/U9C/webapi/OAuth2/AuthLogin?"; 娴嬭瘯 + //public static string U9CAuthLoginUrl { get; set; } = Cache.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; //姝e紡 public static string secret = "&entcode=02&orgcode=101&clientid=mes&clientsecret=12c8ee7e9bb74ad2a6a0fb3315c8af20"; public static string RcvRptDocCreateUrl - { get; set; } = Biz.SysParam["RcvRptDocCreateUrl_Test", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/u9C/webapi/RcvRptDoc/Create"; 娴嬭瘯 + { get; set; } = Cache.SysParam["RcvRptDocCreateUrl_Test", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/u9C/webapi/RcvRptDoc/Create"; 娴嬭瘯 //public static string RcvRptDocCreateUrl - //{ get; set; } = Biz.SysParam["RcvRptDocCreateUrl", "U9CUrl"].PARAM_VALUE; //姝e紡 + //{ get; set; } = Cache.SysParam["RcvRptDocCreateUrl", "U9CUrl"].PARAM_VALUE; //姝e紡 /// <summary> /// 鍏ュ簱鍗曟帴鍙� @@ -45,45 +45,25 @@ var action = new ApiAction<RcvRptDocCreateInput>(); try { - //鍏堜繚瀛樻暟鎹� - bool IsSuccessed = true; - var db = Biz.Db; - var dbTran = db.UseTran(() => - { - var s = db.Storageable(input.ErpProdInBths, "U9C_RcvRptDocCreate") - .WhereColumns(t => new { t.ORDER_NO, t.WORK_ORDER, t.GHOST_ROW }) - .ToStorage(); - s.AsInsertable.ExecuteCommand(); - s.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); - }); - if (!dbTran.IsSuccess) - { - action.CatchExceptionWithLog(dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); - Logger.Interface.Error(action.Message); - IsSuccessed = false; - } - //淇濆瓨鎴愬姛锛岃皟鐢║9C鎺ュ彛-娴嬭瘯鐢� //int i = 1; - //List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths = new List<BIZ_ERP_PROD_IN_BTH>(); //foreach (var item in input.RcvRptDocBases.Where(q => q.Status != "Y")) //{ - // var ErpProdInBth = Biz.Db.Queryable<BIZ_ERP_PROD_IN_BTH>().Where(q => q.WORK_ORDER == item.WorkOrder).First(); + // var ErpProdInBth = input.ErpProdInBths.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault(); // item.Status = "Y"; // if (!ErpProdInBth.IsNullOrEmpty()) // { - // ErpProdInBth.ORDER_NO = $"XX001-{i}"; + // ErpProdInBth.ORDER_NO = $"YDRKD24120000{5+i}"; // ErpProdInBth.IS_HANDLED = "Y"; // ErpProdInBth.HANDLED_DATE = DateTime.Now; - // ErpProdInBths.Add(ErpProdInBth); // } // foreach (var p in input.PrintJsons) // { // var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault(); // if (!d.IsNullOrEmpty()) // { - // d.ORDER_NO = $"XX001-{i}"; - // d.STATUS = "Y"; + // d.ORDER_NO = $"YDRKD24120000{5 + i}"; + // d.IS_HANDLED = "Y"; // } // } // i++; @@ -91,28 +71,24 @@ //var _db = Biz.Db; //var _dbTran = _db.UseTran(() => //{ - // _db.Updateable(ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE }).ExecuteCommand(); + // _db.Updateable(input.ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE, x.UPDATE_USER, x.UPDATE_TIME }).ExecuteCommand(); //}); - //if (!dbTran.IsSuccess) + //if (!_dbTran.IsSuccess) //{ - // action.CatchExceptionWithLog(dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); + // action.CatchExceptionWithLog(_dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); // Logger.Interface.Error(action.Message); // IsSuccessed = false; //} - //input.ErpProdInBths = ErpProdInBths; //淇濆瓨鎴愬姛锛岃皟鐢║9C鎺ュ彛 - if (IsSuccessed) + var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}"); + if (u9CLoginResult.Success) { - var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode=admin{secret}"); - if (u9CLoginResult.Success) + var token = u9CLoginResult.Data; + Logger.Interface.Info($"U9C鐧诲綍token: {token}"); + foreach (var item in input.RcvRptDocBases.Where(q => q.Status != "Y")) { - var token = u9CLoginResult.Data; - Logger.Interface.Info($"U9C鐧诲綍token: {token}"); - List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths = new List<BIZ_ERP_PROD_IN_BTH>(); - foreach (var item in input.RcvRptDocBases.Where(q => q.Status != "Y")) - { - List<RcvRptDocCreateParam> param = new() { + List<RcvRptDocCreateParam> param = new() { new() { CompleteList = new(){ new CompleteList @@ -126,73 +102,70 @@ StorageType = item.StorageType, DocState = item.DocState, } - } + }, + Remark = "鎺ュ彛鐢熸垚", + BusinessDate = DateTime.Now, } }; - var response = await HttpHelper.PostAsync(RcvRptDocCreateUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", token } }); - var result = JsonConvert.DeserializeObject<U9CResult>(response.Message); - var ErpProdInBth = Biz.Db.Queryable<BIZ_ERP_PROD_IN_BTH>().Where(q => q.WORK_ORDER == item.WorkOrder).First(); - if (result != null) + var response = await HttpHelper.PostAsync(RcvRptDocCreateUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", token } }); + var result = JsonConvert.DeserializeObject<U9CResult>(response.Message); + var ErpProdInBth = input.ErpProdInBths.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault();.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault(); + if (result != null) + { + if (result.Success && result.Data[0].m_isSucess) { - if (result.Success && result.Data[0].m_isSucess) + Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); + item.Status = "Y"; + if (!ErpProdInBth.IsNullOrEmpty()) { - Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); - item.Status = "Y"; - if (!ErpProdInBth.IsNullOrEmpty()) - { - ErpProdInBth.ORDER_NO = result.Data[0].m_code; - ErpProdInBth.IS_HANDLED = "Y"; - ErpProdInBth.HANDLED_DATE = DateTime.Now; - ErpProdInBths.Add(ErpProdInBth); - } - foreach (var p in input.PrintJsons) - { - var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.STATUS !="P").FirstOrDefault(); - if (!d.IsNullOrEmpty()) - { - d.ORDER_NO = result.Data[0].m_code; - d.STATUS = "Y"; - } - } - Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟垚鍔�"); + ErpProdInBth.ORDER_NO = result.Data[0].m_code; + ErpProdInBth.IS_HANDLED = "Y"; + ErpProdInBth.HANDLED_DATE = DateTime.Now; } - else + foreach (var p in input.PrintJsons) { - action.IsSuccessed = false; - action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}"); - item.Status = "F"; - if (!ErpProdInBth.IsNullOrEmpty()) + var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.IS_HANDLED != "P").FirstOrDefault(); + if (!d.IsNullOrEmpty()) { - ErpProdInBth.REMARK = result.Data[0].m_errorMsg; - ErpProdInBth.IS_HANDLED = "F"; - ErpProdInBth.HANDLED_DATE = DateTime.Now; - ErpProdInBths.Add(ErpProdInBth); + d.ORDER_NO = result.Data[0].m_code; + d.IS_HANDLED = "Y"; } - foreach (var p in input.PrintJsons) - { - var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.STATUS != "P").FirstOrDefault(); - if (!d.IsNullOrEmpty()) - { - d.ORDER_NO = result.Data[0].m_code; - d.STATUS = "F"; - } - } - Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曞け璐�:{result.Data[0].m_errorMsg}"); } + Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟垚鍔�"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"{action.Message}; {result.Data[0].m_errorMsg}"); + item.Status = "F"; + if (!ErpProdInBth.IsNullOrEmpty()) + { + ErpProdInBth.REMARK = result.Data[0].m_errorMsg; + ErpProdInBth.IS_HANDLED = "F"; + ErpProdInBth.HANDLED_DATE = DateTime.Now; + } + foreach (var p in input.PrintJsons) + { + var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.IS_HANDLED != "P").FirstOrDefault(); + if (!d.IsNullOrEmpty()) + { + d.ORDER_NO = result.Data[0].m_code; + d.IS_HANDLED = "F"; + } + } + Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曞け璐�:{result.Data[0].m_errorMsg}"); } } - var _db = Biz.Db; - var _dbTran = _db.UseTran(() => - { - _db.Updateable(ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE }).ExecuteCommand(); - }); - if (!dbTran.IsSuccess) - { - action.CatchExceptionWithLog(dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); - Logger.Interface.Error(action.Message); - IsSuccessed = false; - } - input.ErpProdInBths = ErpProdInBths; + } + var _db = Biz.Db; + var _dbTran = _db.UseTran(() => + { + _db.Updateable(input.ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE, x.UPDATE_USER, x.UPDATE_TIME }).ExecuteCommand(); + }); + if (!_dbTran.IsSuccess) + { + action.CatchExceptionWithLog(_dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); + Logger.Interface.Error(action.Message); } } input.labels = GetLabels(input.PrintJsons); @@ -206,74 +179,75 @@ return action; } - private List<BAS_LABEL_TEMP> GetLabels(List<InStorePrintJson> printJsons) { + private List<BAS_LABEL_TEMP> GetLabels(List<InStorePrintJson> printJsons) + { List<BAS_LABEL_TEMP> labels = new List<BAS_LABEL_TEMP>(); int i = 1; int j = 1; foreach (var p in printJsons) { - BAS_LABEL_TEMP label = Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == "InstoreTemplate").First(); - foreach (var item in label.Variables.OrderBy(q => q.VAR_TYPE == BAS_LABEL_VAR.VAR_TYPEs.BarcodeGenerate.GetValue() ? 0 : 1)) + BAS_LABEL_TEMP label = Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(q => q.LABEL_CODE == "InstoreTemplate").IncludesAllFirstLayer().First(); + foreach (var v in p.Items.Where(q => q.IS_HANDLED != "F" && q.IS_HANDLED != "P")) { - foreach (var v in p.Items.Where(q=>q.STATUS !="F" && q.STATUS !="P")) + foreach (var item in label.Variables) { - if (item.VAR_NAME.StartsWith("RcvDoc")) + if (item.VAR_NAME == "PageNum") + { + item.Value = $"绗瑊i}椤�"; + } + if (item.VAR_NAME == "PageSize") + { + item.Value = $"鍏眥printJsons.Count}椤�"; + } + if (item.VAR_NAME == "BusinessDate") + { + item.Value = DateTime.Now.ToString("yyyy.MM.dd"); + } + if (item.VAR_NAME == $"RcvDoc{j}") { item.Value = v.ORDER_NO; } - if (item.VAR_NAME.StartsWith("SoDoc")) + if (item.VAR_NAME == $"SoDoc{j}") { item.Value = v.SALES_ORDER; } - if (item.VAR_NAME.StartsWith("MoDoc")) + if (item.VAR_NAME == $"MoDoc{j}") { item.Value = v.WORK_ORDER; } - if (item.VAR_NAME.StartsWith("ItemCode")) + if (item.VAR_NAME == $"ItemCode{j}") { item.Value = v.ITEM_CODE; } - if (item.VAR_NAME.StartsWith("Description")) + if (item.VAR_NAME == $"Description{j}") { item.Value = v.ITEM_NAME; } - if (item.VAR_NAME.StartsWith("BoxQty")) + if (item.VAR_NAME == $"BoxQty{j}") { - item.Value = v.PLAN_QTY.ToString(); + item.Value = v.CartonQty.ToString(); } - if (item.VAR_NAME.StartsWith("InQty")) + if (item.VAR_NAME == $"InQty{j}") { item.Value = v.SCAN_QTY.ToString(); } - if (item.VAR_NAME.StartsWith("RcvQrCode")) + if (item.VAR_NAME == $"RcvQrCode{j}") { item.Value = v.ORDER_NO.ToString(); } - if (item.VAR_NAME.StartsWith("SapCode")) + if (item.VAR_NAME == $"SapCode{j}") { item.Value = v.SapCode; } - if (item.VAR_NAME.StartsWith("Seq")) + if (item.VAR_NAME == $"Seq{j}") { - item.Value = i.ToString(); + item.Value = j.ToString(); } - i++; } - if (item.VAR_NAME == "PageNum") - { - item.Value = j.ToString(); - } - if (item.VAR_NAME == "PageSize") - { - item.Value = printJsons.Count.ToString(); - } - if (item.VAR_NAME == "BusinessDate") - { - item.Value = DateTime.Now.ToString("yyyyy.MM.dd"); - } + j++; } + i++; labels.Add(label); - j++; } return labels; } -- Gitblit v1.9.3