From defffbf6b1410fe0672d8b25ad8e59cbe49f6c9e Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期六, 23 十一月 2024 22:54:31 +0800 Subject: [PATCH] 入库单更新 --- Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs | 2 Tiger.Business.MES/iERP/MES_U9C.cs | 145 ++++++++++++++++++++++++++++++++++-------------- Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs | 25 ++++++++ Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs | 2 Tiger.Business.MES/BIZ/BIZ_MES_WO.cs | 2 Tiger.IBusiness.MES/iERP/IMES_U9C.cs | 2 6 files changed, 133 insertions(+), 45 deletions(-) diff --git a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs index a1a6832..ada7107 100644 --- a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs +++ b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs @@ -722,6 +722,7 @@ ProdInBatch = new() { WORK_ORDER = wo.ORDER_NO, + SALES_ORDER = wo.SALES_ORDER, BATCH_NO = woSns[0].BATCH_NO, ITEM_CODE = wo.ITEM_CODE, ITEM_NAME = wo.ItemInfo?.ITEM_DESC, @@ -730,6 +731,7 @@ }, InStoreScanInfo = new() { SN = code, + SALES_ORDER = wo.SALES_ORDER, WORK_ORDER = wo.ORDER_NO, BATCH_NO = woSns[0].BATCH_NO, SCAN_QTY = woSns.Count diff --git a/Tiger.Business.MES/iERP/MES_U9C.cs b/Tiger.Business.MES/iERP/MES_U9C.cs index b8948e9..e1d0e1d 100644 --- a/Tiger.Business.MES/iERP/MES_U9C.cs +++ b/Tiger.Business.MES/iERP/MES_U9C.cs @@ -36,65 +36,124 @@ /// </summary> /// <param name="input"></param> /// <returns></returns> - public async Task<ApiAction> RcvRptDocCreate(List<RcvRptDocCreateInput> input) + public async Task<ApiAction<List<InStorePrintJson>>> RcvRptDocCreate(RcvRptDocCreateInput input) { Logger.Interface.Info($"/**\r\n *杩涘叆鍏ュ簱鍗曟帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 - var action = new ApiAction(); + var action = new ApiAction<List<InStorePrintJson>>(); try { - List<RcvRptDocCreateParam> param = new List<RcvRptDocCreateParam>(); - List<CompleteList> CompleteLists = new List<CompleteList>(); - foreach (var item in input) { - CompleteList completeList = new CompleteList - { - MOKey = new MOKey { DocNo = item.WorkOrder }, - Wh = new Wh { Code = item.WhCode }, - DescFlexField = new DescFlexField { PrivateDescSeg1 = item.PkgQty.ToString() }, - Item = new Item { Code = item.ItemCode }, - CompleteQty = item.CompleteQty, - OutputType = item.OutputType, - StorageType = item.StorageType, - DocState = item.DocState, - }; - CompleteLists.Add(completeList); - } - param.Add(new RcvRptDocCreateParam + //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(() => { - CompleteList = CompleteLists + 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(); }); - - var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode=admin{secret}"); - if (u9CLoginResult.Success) + if (!dbTran.IsSuccess) { - var token = u9CLoginResult.Data; - Logger.Interface.Info($"U9C鐧诲綍token: {token}"); - var response = await HttpHelper.PostAsync(RcvRptDocCreateUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", token } }); - var result = JsonConvert.DeserializeObject<U9CResult>(response.Message); - if (result != null) + action.CatchExceptionWithLog(dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); + Logger.Interface.Error(action.Message); + IsSuccessed = false; + } + //淇濆瓨鎴愬姛锛岃皟鐢║9C鎺ュ彛 + //int i = 1; + //foreach (var item in input.RcvRptDocBases) + //{ + // 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}"; + // } + // i++; + // } + //} + if (IsSuccessed) + { + var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode=admin{secret}"); + if (u9CLoginResult.Success) { - if (result.Success) + 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) { - Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); - var db = Biz.Db; - var dbTran = db.UseTran(() => + List<RcvRptDocCreateParam> param = new() { + new() { + CompleteList = new(){ + new CompleteList + { + MOKey = new MOKey { DocNo = item.WorkOrder }, + Wh = new Wh { Code = item.WhCode }, + DescFlexField = new DescFlexField { PrivateDescSeg1 = item.PkgQty.ToString() }, + Item = new Item { Code = item.ItemCode }, + CompleteQty = item.CompleteQty, + OutputType = item.OutputType, + StorageType = item.StorageType, + DocState = item.DocState, + } + } + } + }; + var response = await HttpHelper.PostAsync(RcvRptDocCreateUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", token } }); + var result = JsonConvert.DeserializeObject<U9CResult>(response.Message); + if (result != null) { - - }); - if (!dbTran.IsSuccess) - { - action.CatchExceptionWithLog(dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); - Logger.Interface.Error(action.Message); + if (result.Success) + { + 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(); + 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).FirstOrDefault(); + if (!d.IsNullOrEmpty()) + { + d.ORDER_NO = result.Data[0].m_code; + } + } + Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟垚鍔�"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"{result.Data[0].m_errorMsg}"); + Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曞け璐�:{result.Data[0].m_errorMsg}"); + } } - Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟垚鍔�"); } - else + var _db = Biz.Db; + var _dbTran = _db.UseTran(() => { - action.IsSuccessed = false; - action.LocaleMsg = new($"{result.Data[0].m_errorMsg}"); - Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曞け璐�:{result.Data[0].m_errorMsg}"); + _db.Updateable(ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.IS_HANDLED, x.HANDLED_DATE }).ExecuteCommand(); + }); + if (!dbTran.IsSuccess) + { + action.CatchExceptionWithLog(dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); + Logger.Interface.Error(action.Message); + IsSuccessed = false; } } } + action.Data = input.PrintJsons; } catch (System.Exception ex) { diff --git a/Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs b/Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs index e9c4b0a..016f505 100644 --- a/Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs +++ b/Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs @@ -21,7 +21,7 @@ /// <returns></returns> [HttpPost] [Route("api/[controller]/[action]")] - public async Task<IActionResult> RcvRptDocCreate([FromBody] ApiAction<List<RcvRptDocCreateInput>> action) + public async Task<IActionResult> RcvRptDocCreate([FromBody] ApiAction<RcvRptDocCreateInput> action) { ApiAction response = new(); try diff --git a/Tiger.IBusiness.MES/iERP/IMES_U9C.cs b/Tiger.IBusiness.MES/iERP/IMES_U9C.cs index 6221086..3d697f1 100644 --- a/Tiger.IBusiness.MES/iERP/IMES_U9C.cs +++ b/Tiger.IBusiness.MES/iERP/IMES_U9C.cs @@ -12,6 +12,6 @@ { public interface IMES_U9C { - public Task<ApiAction> RcvRptDocCreate(List<RcvRptDocCreateInput> input); + public Task<ApiAction<List<InStorePrintJson>>> RcvRptDocCreate(RcvRptDocCreateInput input); } } diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs index 20fecd6..d120597 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs +++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs @@ -38,6 +38,31 @@ /// </summary> public class RcvRptDocCreateInput { + public List<RcvRptDocBase> RcvRptDocBases { get; set; } + public List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths { get; set; } + public List<InStorePrintJson> PrintJsons { get; set; } + } + + public class InStorePrintJson + { + public string ID { get; set; } + public List<ProdInBatch> Items { get; set; } + } + + public class ProdInBatch + { + public string ORDER_NO { get; set; } + public string SALES_ORDER { get; set; } + public string BATCH_NO { get; set; } + public string WORK_ORDER { get; set; } + public string ITEM_CODE { get; set; } + public string ITEM_NAME { get; set; } + public double PLAN_QTY { get; set; } + public double SCAN_QTY { get; set; } + } + + public class RcvRptDocBase + { public string WorkOrder { get; set; } public string ItemCode { get; set; } public string WhCode { get; set; } = "10105"; diff --git a/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs b/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs index 38fdd85..dedf9b8 100644 --- a/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs +++ b/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs @@ -146,6 +146,7 @@ /// </summary> [DisplayName("入库单号")] public string ORDER_NO { get; set; } + public string SALES_ORDER { get; set; } /// <summary> /// 工单批次号 /// </summary> @@ -185,6 +186,7 @@ /// </summary> [DisplayName("条码")] public string SN { get; set; } + public string SALES_ORDER { get; set; } [DisplayName("工单批次号")] public string BATCH_NO { get; set; } /// <summary> -- Gitblit v1.9.3