From 6cc05f3689e7616431886ec183948c433a30220c Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 03 十二月 2024 20:51:38 +0800 Subject: [PATCH] 一些优化 --- Tiger.Business.MES/iERP/MES_U9C.cs | 159 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 137 insertions(+), 22 deletions(-) diff --git a/Tiger.Business.MES/iERP/MES_U9C.cs b/Tiger.Business.MES/iERP/MES_U9C.cs index e1d0e1d..4130575 100644 --- a/Tiger.Business.MES/iERP/MES_U9C.cs +++ b/Tiger.Business.MES/iERP/MES_U9C.cs @@ -26,36 +26,32 @@ { public partial class MES_U9C : IMES_U9C { - public static string U9CAuthLoginUrl { get; set; } = "http://172.16.80.20/U9C/webapi/OAuth2/AuthLogin?"; + 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 secret = "&entcode=02&orgcode=101&clientid=mes&clientsecret=12c8ee7e9bb74ad2a6a0fb3315c8af20"; public static string RcvRptDocCreateUrl - { get; set; } = "http://172.16.80.20/u9C/webapi/RcvRptDoc/Create"; + { get; set; } = Biz.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紡 /// <summary> /// 鍏ュ簱鍗曟帴鍙� /// </summary> /// <param name="input"></param> /// <returns></returns> - public async Task<ApiAction<List<InStorePrintJson>>> RcvRptDocCreate(RcvRptDocCreateInput input) + public async Task<ApiAction<RcvRptDocCreateInput>> RcvRptDocCreate(RcvRptDocCreateInput input) { Logger.Interface.Info($"/**\r\n *杩涘叆鍏ュ簱鍗曟帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 - var action = new ApiAction<List<InStorePrintJson>>(); + var action = new ApiAction<RcvRptDocCreateInput>(); try { - //List<RcvRptDocCreateParam> param = new List<RcvRptDocCreateParam>(); - //List<CompleteList> CompleteLists = new List<CompleteList>(); - //param.Add(new RcvRptDocCreateParam - //{ - // CompleteList = CompleteLists - //}); - //鍏堜繚瀛樻暟鎹� 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 }) + .WhereColumns(t => new { t.ORDER_NO, t.WORK_ORDER, t.GHOST_ROW }) .ToStorage(); s.AsInsertable.ExecuteCommand(); s.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); @@ -66,20 +62,46 @@ Logger.Interface.Error(action.Message); IsSuccessed = false; } - //淇濆瓨鎴愬姛锛岃皟鐢║9C鎺ュ彛 + + //淇濆瓨鎴愬姛锛岃皟鐢║9C鎺ュ彛-娴嬭瘯鐢� //int i = 1; - //foreach (var item in input.RcvRptDocBases) + //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(); + // item.Status = "Y"; + // if (!ErpProdInBth.IsNullOrEmpty()) + // { + // ErpProdInBth.ORDER_NO = $"XX001-{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"; // } - // i++; // } + // i++; //} + //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; + + //淇濆瓨鎴愬姛锛岃皟鐢║9C鎺ュ彛 if (IsSuccessed) { var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode=admin{secret}"); @@ -88,7 +110,7 @@ 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) + foreach (var item in input.RcvRptDocBases.Where(q => q.Status != "Y")) { List<RcvRptDocCreateParam> param = new() { new() { @@ -109,12 +131,13 @@ }; 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) { - if (result.Success) + if (result.Success && result.Data[0].m_isSucess) { Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); - var ErpProdInBth = Biz.Db.Queryable<BIZ_ERP_PROD_IN_BTH>().Where(q=> q.WORK_ORDER == item.WorkOrder).First(); + item.Status = "Y"; if (!ErpProdInBth.IsNullOrEmpty()) { ErpProdInBth.ORDER_NO = result.Data[0].m_code; @@ -124,10 +147,11 @@ } foreach (var p in input.PrintJsons) { - var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder).FirstOrDefault(); + 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($"鐢熸垚鍏ュ簱鍗曟垚鍔�"); @@ -135,7 +159,24 @@ else { action.IsSuccessed = false; - action.LocaleMsg = new($"{result.Data[0].m_errorMsg}"); + 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; + 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 = "F"; + } + } Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曞け璐�:{result.Data[0].m_errorMsg}"); } } @@ -143,7 +184,7 @@ var _db = Biz.Db; var _dbTran = _db.UseTran(() => { - _db.Updateable(ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.IS_HANDLED, x.HANDLED_DATE }).ExecuteCommand(); + _db.Updateable(ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE }).ExecuteCommand(); }); if (!dbTran.IsSuccess) { @@ -151,9 +192,11 @@ Logger.Interface.Error(action.Message); IsSuccessed = false; } + input.ErpProdInBths = ErpProdInBths; } } - action.Data = input.PrintJsons; + input.labels = GetLabels(input.PrintJsons); + action.Data = input; } catch (System.Exception ex) { @@ -162,5 +205,77 @@ Logger.Interface.Info($"/* 鍏ュ簱鍗曟帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶 return action; } + + 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)) + { + foreach (var v in p.Items.Where(q=>q.STATUS !="F" && q.STATUS !="P")) + { + if (item.VAR_NAME.StartsWith("RcvDoc")) + { + item.Value = v.ORDER_NO; + } + if (item.VAR_NAME.StartsWith("SoDoc")) + { + item.Value = v.SALES_ORDER; + } + if (item.VAR_NAME.StartsWith("MoDoc")) + { + item.Value = v.WORK_ORDER; + } + if (item.VAR_NAME.StartsWith("ItemCode")) + { + item.Value = v.ITEM_CODE; + } + if (item.VAR_NAME.StartsWith("Description")) + { + item.Value = v.ITEM_NAME; + } + if (item.VAR_NAME.StartsWith("BoxQty")) + { + item.Value = v.PLAN_QTY.ToString(); + } + if (item.VAR_NAME.StartsWith("InQty")) + { + item.Value = v.SCAN_QTY.ToString(); + } + if (item.VAR_NAME.StartsWith("RcvQrCode")) + { + item.Value = v.ORDER_NO.ToString(); + } + if (item.VAR_NAME.StartsWith("SapCode")) + { + item.Value = v.SapCode; + } + if (item.VAR_NAME.StartsWith("Seq")) + { + item.Value = i.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"); + } + } + labels.Add(label); + j++; + } + return labels; + } } } -- Gitblit v1.9.3