From 790032df98d586627a771159d5b6c7646e3fff35 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期六, 07 十二月 2024 23:18:29 +0800 Subject: [PATCH] 入库单更新 --- Tiger.Model.Net/Entitys/MES/ParameterEntity/BizPrintInstoreDocParameter.cs | 8 Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs | 41 ++- Tiger.Business.MES/iERP/MES_U9C.cs | 40 +-- Tiger.Business.MES/Transaction/InStoreOrderNo.cs | 261 ++++++++++++++++++++++++- Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs | 30 +- Tiger.Business.MES/BIZ/BIZ_MES_WO.cs | 13 - Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_SN.cs | 5 Tiger.Business.MES/BIZ/BizPrintInstoreDoc.cs | 2 Tiger.Controllers.MES/Controllers/MESController.InStoreOrderNo.cs | 151 +++++++++++++++ Tiger.Model.Net/Entitys/MES/MES_WIP_PKG.cs | 4 Tiger.IBusiness.MES/Transaction/IInStoreOrderNo.cs | 8 11 files changed, 478 insertions(+), 85 deletions(-) diff --git a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs index 83c7f2b..163aa8c 100644 --- a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs +++ b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs @@ -724,21 +724,12 @@ ErpProdInBth= new() { WORK_ORDER = wo.ORDER_NO, BATCH_NO = woSns[0].BATCH_NO, - ITEM_CODE = wo.ITEM_CODE, - ITEM_NAME = wo.ItemInfo?.ITEM_DESC, - SCAN_QTY = woSns.Count - }, - ProdInBatch = new() - { - WORK_ORDER = wo.ORDER_NO, SALES_ORDER = wo.SALES_ORDER, - BATCH_NO = woSns[0].BATCH_NO, ITEM_CODE = wo.ITEM_CODE, - SapCode = wo.ItemInfo?.ExtInfo?.SapCode, ITEM_NAME = wo.ItemInfo?.ITEM_DESC, - PLAN_QTY = wo.PLAN_QTY, + SapCode = wo.ItemInfo?.ExtInfo?.SapCode, SCAN_QTY = woSns.Count, - STATUS = "N" //Y-宸茬敓鎴愶紝N-鏈敓鎴愶紝F-澶辫触 + IS_HANDLED = "N" //Y-宸茬敓鎴愶紝N-鏈敓鎴愶紝F-澶辫触 }, InStoreScanInfo = new() { SN = cartonSn, diff --git a/Tiger.Business.MES/BIZ/BizPrintInstoreDoc.cs b/Tiger.Business.MES/BIZ/BizPrintInstoreDoc.cs index c9eedba..3dabf0c 100644 --- a/Tiger.Business.MES/BIZ/BizPrintInstoreDoc.cs +++ b/Tiger.Business.MES/BIZ/BizPrintInstoreDoc.cs @@ -63,7 +63,7 @@ } if (item.VAR_NAME.StartsWith("BoxQty")) { - item.Value = v.PLAN_QTY.ToString(); + item.Value = v.CartonQty.ToString(); } if (item.VAR_NAME.StartsWith("InQty")) { diff --git a/Tiger.Business.MES/Transaction/InStoreOrderNo.cs b/Tiger.Business.MES/Transaction/InStoreOrderNo.cs index 40f52ea..f4ee422 100644 --- a/Tiger.Business.MES/Transaction/InStoreOrderNo.cs +++ b/Tiger.Business.MES/Transaction/InStoreOrderNo.cs @@ -11,6 +11,12 @@ using Tiger.Model; using Tiger.Model.Sharetronic.Shelf; using System.ComponentModel; +using Tiger.Model.Entitys.MES.U9C; +using ProdInBatch = Tiger.Model.ProdInBatch; +using Org.BouncyCastle.Ocsp; +using Tiger.Model.Entitys.MES.BizPrintInstoreDoc; +using System.Drawing.Printing; +using Tiger.Model.Entitys.MES.Position; namespace Tiger.Business.MES.Transaction { @@ -20,12 +26,14 @@ public class InStoreOrderNo : MESTransactionBase, IInStoreOrderNo { private readonly IMES_U9C _IMES_U9C = DI.Resolve<IMES_U9C>(); - public IInStoreOrderNo Init(string id, string userCode, string apiHost, string orgCode) + private readonly IBIZ_MES_WO _IBIZ_MES_WO = DI.Resolve<IBIZ_MES_WO>(); + public IInStoreOrderNo Init(string id, string apiHost, InstoreDocInput input) { TransID = id; - UserCode = userCode; + UserCode = input.UserCode; ApiHost = apiHost; - OrgCode = orgCode; + OrgCode = input.OrgCode; + pageSize = input.pageSize; Logger.Console.Info($"Start {this.GetType().Name} Transaction[ID: {TransID}]"); return this; } @@ -35,40 +43,265 @@ public string UserCode { get; set; } public long UserId { get; set; } public string OrgCode { get; set; } - public string CurSmtCode { get; set; } - public string CurrSlotNo { get; set; } + public string CurSN { get; set; } + public int pageSize { get; set; } + public RcvRptDocCreateInput RcvRptInput { get; set; } = new RcvRptDocCreateInput(); + public List<ProdInBatch> ProdInBatchs { get; set; } = new List<ProdInBatch>(); + public List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths { get; set; } = new List<BIZ_ERP_PROD_IN_BTH>(); + /// <summary> + /// 鎵弿鍒楄〃 + /// </summary> + public List<InStoreScanInfo> InStoreScanInfos { get; set; } = new List<InStoreScanInfo>(); + public List<BIZ_ERP_PROD_IN_SN> ErpProdInSns { get; set; } = new List<BIZ_ERP_PROD_IN_SN>(); #endregion Propertys & Variables #region Functions /// <summary> - /// 鎵弿鏉$爜涓婃枡 + /// 鎵弿鏉$爜 /// </summary> - /// <param name="input"></param> + /// <param name="code"></param> /// <returns></returns> - public async Task<ApiAction<SmtLoadingReturn>> ScanItem(SmtLoadingInput input) + public async Task<ApiAction<InStoreInfos>> Submit(string code) { - var action = new ApiAction<SmtLoadingReturn>(); + var action = new ApiAction<InStoreInfos>(); try { - if (input.Code.IsNullOrEmpty()) + if (code.IsNullOrEmpty()) { action.IsSuccessed = false; - //action.LocaleMsg = Biz.L($"{EnumHelper.GetEnum<Step_Types>(input.Step).GetDesc()}涓嶈兘涓虹┖"); + action.LocaleMsg = Biz.L($"鏉$爜涓嶈兘涓虹┖"); return action; } + var apiAction = await _IBIZ_MES_WO.GetErpProdInBth(code); + if (!apiAction.IsSuccessed) + { + return action; + } + CurSN = code.Split('|')[0]; + InStoreInfo Info = apiAction.Data; + //瑕佸瓨鍏ョ殑鎵规鍏ュ簱鍗曟暟鎹� + int n = InStoreScanInfos.Where(q => q.WORK_ORDER == Info.ErpProdInBth.WORK_ORDER).Count(); + if (!ErpProdInBths.Any(q => q.WORK_ORDER == Info.ErpProdInBth.WORK_ORDER)) + { + Info.ErpProdInBth.AUTH_ORG = OrgCode; + Info.ErpProdInBth.CREATE_USER = UserCode; + Info.ErpProdInBth.CREATE_TIME = DateTime.Now; + Info.ErpProdInBth.SCANED_DATE = DateTime.Now; + Info.ErpProdInBth.HANDLED_DATE = DateTime.Now; + Info.ErpProdInBth.IS_SCANED = "Y"; + Info.ErpProdInBth.ORDER_NO = UserCode; + Info.ErpProdInBth.IS_HANDLED = "N"; + Info.ErpProdInBth.CartonQty = n == 0 ? 1 : n; + ErpProdInBths.Add(Info.ErpProdInBth); + } + else + { + if (!InStoreScanInfos.Any(q => q.WORK_ORDER == Info?.ErpProdInBth.WORK_ORDER && q.SN == CurSN)) + { + var erpbth = ErpProdInBths.Where(q => q.WORK_ORDER == Info.ErpProdInBth.WORK_ORDER).FirstOrDefault(); + if (!erpbth.IsNullOrEmpty()) + { + erpbth.SCAN_QTY += Info.InStoreScanInfo.SCAN_QTY.ToDouble(); + Info.ErpProdInBth.CartonQty++; + } + } + } - + //鐢熸垚鎵撳嵃瀹炰綋 + if (RcvRptInput.PrintJsons.Count == 0) + { + RcvRptInput.PrintJsons.Add(new() + { + ID = Guid.NewGuid().ToString("N"), + Items = new() { + Info.ErpProdInBth + } + }); + } + else + { + //鎷煎垎椤� + bool isAdded = false; + foreach (var item in RcvRptInput.PrintJsons) + { + if (!item.Items.Any(q => q.WORK_ORDER == Info.ErpProdInBth.WORK_ORDER)) + { + if (item.Items.Count < pageSize) + { + item.Items.Add(Info.ErpProdInBth); + isAdded = true; + } + } + else + { + isAdded = true; + } + } + if (isAdded) + { + RcvRptInput.PrintJsons.Add(new() + { + ID = Guid.NewGuid().ToString("N"), + Items = new() { + Info.ErpProdInBth + } + }); + } + } + + //鏆傚瓨鎵爜鏁版嵁 + if (!InStoreScanInfos.Any(q => q.WORK_ORDER == Info?.ErpProdInBth.WORK_ORDER && q.SN == CurSN)) + { + InStoreScanInfos.Add(Info.InStoreScanInfo); + } + var wipPkgs = Biz.Db.Ado.UseStoredProcedure().SqlQuery<MES_WIP_PKG>("SP_MES_GET_ITEM_PKG", new SugarParameter("root", CurSN)); + int maxLevel = wipPkgs.Max(p => p.LEVEL); + foreach (var item in wipPkgs.Where(q=> q.LEVEL == maxLevel)) + { + var scanResult = new BIZ_ERP_PROD_IN_SN + { + ID = Guid.NewGuid().ToString(), + CARTONNO = CurSN, + SN = item.SN, + BUSINESSCODE = UserCode, + ITEM_CODE = item.ITEM_CODE, + Qty = item.QTY.ToDecimal(), + SOURCECODE = Info?.ErpProdInBth.WORK_ORDER, + STATUS = WMS_ITEM.STATUSs.Counted.GetValue(), + CREATE_USER = UserCode, + CREATE_TIME = DateTime.Now, + UPDATE_USER = UserCode, + UPDATE_TIME = DateTime.Now, + }; + ErpProdInSns.Add(scanResult); + } + + //淇濆瓨鏁版嵁搴� + var db = Business.Biz.Db; + var dbTran = db.UseTran(() => + { + var x = db.Storageable(ErpProdInBths, $"InStoreOrderNo_{UserCode}") + .WhereColumns(t => new { t.ORDER_NO, t.WORK_ORDER, t.GHOST_ROW }) + .ToStorage(); + x.AsInsertable.ExecuteCommand(); + x.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); + + var s = db.Storageable(ErpProdInSns, $"InStoreOrderNo_{UserCode}") + .WhereColumns(t => new { t.CARTONNO, t.SN, t.GHOST_ROW }) + .ToStorage(); + s.AsInsertable.ExecuteCommand(); + s.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); + }); + if (!dbTran.IsSuccess) + { + Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception"); + this.Close(!dbTran.IsSuccess); + throw dbTran.ErrorException; + } + action.Data = new() { + ErpProdInBths = ErpProdInBths, + InStoreScanInfos = InStoreScanInfos, + }; } catch (Exception ex) { - action.CatchExceptionWithLog(ex, $"鎵弿鐗╂枡[{input.Code}]澶嶆牳寮傚父"); + action.CatchExceptionWithLog(ex, $"鎵弿鏉$爜[{code}]澶嶆牳寮傚父"); } return action; } - + /// <summary> + /// 璋冪敤U9C鎺ュ彛鐢熸垚鍏ュ簱鍗� + /// </summary> + /// <param name="code"></param> + /// <returns></returns> + public async Task<ApiAction<RcvRptDocCreateInput>> GenerateInStoreOrder(RcvRptDocCreateInput input) + { + var action = new ApiAction<RcvRptDocCreateInput>(); + try + { + //input.RcvRptDocBases = new() + //{ + // new(){ + // WorkOrder = item.WORK_ORDER, + // ItemCode = item.ITEM_CODE, + // WhCode = "10105", + // PkgQty = item.SCAN_QTY, + // CompleteQty = item.SCAN_QTY, + // OutputType = 0, + // StorageType = 4, + // DocState = 1, + // Status = "N" + // } + //}; + action = await _IMES_U9C.RcvRptDocCreate(input); + + //淇濆瓨鏁版嵁搴� + var db = Business.Biz.Db; + var dbTran = db.UseTran(() => + { + //var x = db.Storageable(ErpProdInBths, $"InStoreOrderNo_{UserCode}") + // .WhereColumns(t => new { t.ORDER_NO, t.WORK_ORDER, t.GHOST_ROW }) + // .ToStorage(); + //x.AsInsertable.ExecuteCommand(); + //x.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); + + //var s = db.Storageable(ErpProdInSns, $"InStoreOrderNo_{UserCode}") + // .WhereColumns(t => new { t.CARTONNO, t.SN, t.GHOST_ROW }) + // .ToStorage(); + //s.AsInsertable.ExecuteCommand(); + //s.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); + }); + if (!dbTran.IsSuccess) + { + Logger.Default.Fatal(dbTran.ErrorException, "Database transaction save exception"); + this.Close(!dbTran.IsSuccess); + throw dbTran.ErrorException; + } + + } + catch (Exception ex) + { + action.CatchExceptionWithLog(ex, $"璋冪敤U9C鎺ュ彛鐢熸垚鍏ュ簱鍗曞紓甯�"); + } + return action; + } + + /// <summary> + /// 鏌ヨ瀵瑰簲鐨勬潯鐮� + /// </summary> + /// <returns></returns> + public async Task<ApiAction<RcvRptDocCreateInput>> GetScannedBarcodes() + { + var action = new ApiAction<RcvRptDocCreateInput>(); + try + { + //var query = await Biz.Db.Queryable<BIZ_ERP_RECEIPT_SN, BAS_ITEM>((t, m) => + // new JoinQueryInfos( + // JoinType.Left, t.ITEM_CODE == m.ITEM_CODE + // )) + // .Where((t, m) => t.CREATE_USER == UserCode + // //&& t.WAREHOUSECODE.ToUpper() == WarehouseCode.ToUpper() + // && t.STATUS == WMS_ITEM.STATUSs.Counted.GetValue() + // && t.ITEM_CODE.ToUpper() == MaterialCode.ToUpper() + // && t.BILLCODE == UserCode + // && t.AUTH_ORG == OrgCode) + // .Select((t, m) => new Model.Minsun.CustSupplyCheckDetail + // { + // Barcode = t.SN, + // BarcodeQty = t.SCANQTY, + // Unit = m.UNIT + // }) + // .ToListAsync(); + } + catch (Exception ex) + { + action.CatchExceptionWithLog(ex, $"鏌ヨ瀵瑰簲鐨勬潯鐮佸紓甯�"); + } + return action; + } #endregion Functions diff --git a/Tiger.Business.MES/iERP/MES_U9C.cs b/Tiger.Business.MES/iERP/MES_U9C.cs index f173244..15eac1f 100644 --- a/Tiger.Business.MES/iERP/MES_U9C.cs +++ b/Tiger.Business.MES/iERP/MES_U9C.cs @@ -47,21 +47,6 @@ { //鍏堜繚瀛樻暟鎹� 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; @@ -93,9 +78,9 @@ //{ // _db.Updateable(ErpProdInBths, "U9C_RcvRptDocCreate").UpdateColumns(x => new { x.ORDER_NO, x.REMARK, x.IS_HANDLED, x.HANDLED_DATE }).ExecuteCommand(); //}); - //if (!dbTran.IsSuccess) + //if (!_dbTran.IsSuccess) //{ - // action.CatchExceptionWithLog(dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); + // action.CatchExceptionWithLog(_dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触"); // Logger.Interface.Error(action.Message); // IsSuccessed = false; //} @@ -149,11 +134,11 @@ } foreach (var p in input.PrintJsons) { - var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.STATUS != "P").FirstOrDefault(); + 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.STATUS = "Y"; + d.IS_HANDLED = "Y"; } } Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟垚鍔�"); @@ -172,11 +157,11 @@ } foreach (var p in input.PrintJsons) { - var d = p.Items.Where(q => q.WORK_ORDER == item.WorkOrder && q.STATUS != "P").FirstOrDefault(); + 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.STATUS = "F"; + d.IS_HANDLED = "F"; } } Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曞け璐�:{result.Data[0].m_errorMsg}"); @@ -186,11 +171,11 @@ 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(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; } @@ -208,14 +193,15 @@ 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").IncludesAllFirstLayer().First(); - foreach (var v in p.Items.Where(q => q.STATUS != "F" && q.STATUS != "P")) + foreach (var v in p.Items.Where(q => q.IS_HANDLED != "F" && q.IS_HANDLED != "P")) { foreach (var item in label.Variables) { @@ -253,7 +239,7 @@ } if (item.VAR_NAME == $"BoxQty{j}") { - item.Value = v.PLAN_QTY.ToString(); + item.Value = v.CartonQty.ToString(); } if (item.VAR_NAME == $"InQty{j}") { diff --git a/Tiger.Controllers.MES/Controllers/MESController.InStoreOrderNo.cs b/Tiger.Controllers.MES/Controllers/MESController.InStoreOrderNo.cs new file mode 100644 index 0000000..16f3892 --- /dev/null +++ b/Tiger.Controllers.MES/Controllers/MESController.InStoreOrderNo.cs @@ -0,0 +1,151 @@ +锘縰sing Autofac; +using Microsoft.AspNetCore.Mvc; +using Rhea.Common; +using SqlSugar; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Xml.Linq; +using Tiger.Api.iBiz; +using Tiger.IBusiness; +using Tiger.Model; +using Tiger.Model.Entitys.MES.BizPrintInstoreDoc; +using Tiger.Model.Entitys.MES.Position; + +namespace Tiger.Api.Controllers.MES +{ + public partial class MESController : ControllerBase + { + /// <summary> + /// GetTransaction(ApiAction(Data:InstoreDocInput)) + /// </summary> + /// <param name="action"></param> + /// <returns></returns> + [HttpPost] + [Route("api/[controller]/InStoreOrderNo/GetTransaction")] + public IActionResult InStoreOrderNo_GetTransaction([FromBody] ApiAction<InstoreDocInput> action) + { + ApiAction response; + IInStoreOrderNo trans = null; + try + { + if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID)) + { + trans = iBiz.MES.Context.GetTransDic()[action.ID] as IInStoreOrderNo; + } + else + { + trans = AutoFacContainer.Instance.Resolve<IInStoreOrderNo>().Init(action.ID, Request.Host.Value, action.Data); + iBiz.MES.Context.NewTransaction(HttpContext, trans); + } + + response = action.GetResponse(); + } + catch (System.IO.InvalidDataException ex) + { + response = action.GetResponse(); + response.IsSuccessed = false; + response.LocaleMsg = new(ex.Message, ex.InnerException.Message.Split('|', System.StringSplitOptions.RemoveEmptyEntries)); + } + catch (System.Exception ex) + { + response = action.GetResponse().CatchExceptionWithLog(ex); + } + trans?.AddHistory(Request, action); + return Ok(response); + } + + /// <summary> + /// CloseTransaction(ApiAction) + /// 鍏抽棴浜嬪姟 + /// </summary> + /// <param name="action"></param> + /// <returns></returns> + [HttpPost] + [Route("api/[controller]/InStoreOrderNo/CloseTransaction")] + public IActionResult InStoreOrderNo_CloseTransaction([FromBody] ApiAction action) + { + ApiAction response; + IInStoreOrderNo trans = null; + try + { + if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID)) + { + trans = iBiz.MES.Context.GetTransDic()[action.ID] as IInStoreOrderNo; + if (!trans.IsFinished) + { + if (action.IsAsync) + { + response = action.GetResponse(trans.Close()); + } + else + { + lock (trans.TransLock) { response = action.GetResponse(trans.Close()); } + } + response.Message = $"鍏ュ簱鍗曚簨鍔ID:{action.ID}]鍏抽棴{(response.IsSuccessed ? "鎴愬姛" : "澶辫触")}"; + } + else + { + response = action.GetResponse($"Transaction Error: 鍏ュ簱鍗曚簨鍔ID:{action.ID}]宸茬粡鍏抽棴", false); + } + } + else + { + response = action.GetResponse($"Transaction Error: 鍏ュ簱鍗曚簨鍔ID:{action.ID}]宸茬粡琚叧闂�", false); + } + } + catch (System.Exception ex) + { + response = action.GetResponse().CatchExceptionWithLog(ex); + } + trans?.AddHistory(Request, action); + return Ok(response); + } + + /// <summary> + /// Submit(ApiAction(Data:{SubmitInput})) + /// 鍏ュ簱鍗曪細鎻愪氦鎿嶄綔鏁版嵁 + /// </summary> + /// <param name="action"></param> + /// <returns></returns> + [HttpPost] + [Route("api/[controller]/InStoreOrderNo/Submit")] + public async Task<IActionResult> InStoreOrderNo_SubmitAsync([FromBody] ApiAction action) + { + ApiAction response; + IInStoreOrderNo trans = null; + try + { + if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID)) + { + trans = iBiz.MES.Context.GetTransDic()[action.ID] as IInStoreOrderNo; + if (!trans.IsFinished) + { + if (action.IsAsync) + { + response = action.GetResponse(await trans.Submit(action.Data?.ToString())); + } + else + { + lock (trans.TransLock) { response = action.GetResponse(trans.Submit(action.Data?.ToString()).Result); } + } + } + else + { + response = action.GetResponse($"Transaction Error: 鍏ュ簱鍗曚簨鍔ID:{action.ID}]宸茬粡鍏抽棴", false); + } + } + else + { + response = action.GetResponse($"Transaction Error: 鍏ュ簱鍗曚簨鍔ID:{action.ID}]宸茬粡琚叧闂�", false); + } + } + catch (System.Exception ex) + { + response = action.GetResponse().CatchExceptionWithLog(ex); + } + trans?.AddHistory(Request, action); + return Ok(response); + } + + } +} diff --git a/Tiger.IBusiness.MES/Transaction/IInStoreOrderNo.cs b/Tiger.IBusiness.MES/Transaction/IInStoreOrderNo.cs index 9b11a8e..db27594 100644 --- a/Tiger.IBusiness.MES/Transaction/IInStoreOrderNo.cs +++ b/Tiger.IBusiness.MES/Transaction/IInStoreOrderNo.cs @@ -1,14 +1,18 @@ -锘縰sing System; +锘縰sing Rhea.Common; +using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tiger.Model; +using Tiger.Model.Entitys.MES.BizPrintInstoreDoc; namespace Tiger.IBusiness { public interface IInStoreOrderNo : IMESTransaction { - public IInStoreOrderNo Init(string id, string userCode, string apiHost, string orgCode); + public IInStoreOrderNo Init(string id, string apiHost, InstoreDocInput input); + public Task<ApiAction<InStoreInfos>> Submit(string code); public bool Close(bool needSaveHistoryLog = false); } diff --git a/Tiger.Model.Net/Entitys/MES/MES_WIP_PKG.cs b/Tiger.Model.Net/Entitys/MES/MES_WIP_PKG.cs index 7110e09..c3ebbaf 100644 --- a/Tiger.Model.Net/Entitys/MES/MES_WIP_PKG.cs +++ b/Tiger.Model.Net/Entitys/MES/MES_WIP_PKG.cs @@ -148,10 +148,12 @@ #region 铏氭嫙灞炴�� /*渚嬪瓙 [SugarColumn(IsIgnore = true)] - public string FieldName { get; set; } + public string FieldName { get; set; } LEVEL */ [SugarColumn(IsIgnore = true)] public string FLOW_SN { get; set; } + [SugarColumn(IsIgnore = true)] + public int LEVEL { get; set; } #endregion #region 澶栭敭灞炴�� diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/BizPrintInstoreDocParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/BizPrintInstoreDocParameter.cs index 6cc8931..9b17806 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/BizPrintInstoreDocParameter.cs +++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/BizPrintInstoreDocParameter.cs @@ -13,4 +13,12 @@ public List<InStorePrintJson> printJsons { get; set; } } + + public class InstoreDocInput + { + public string UserCode { get; set; } + public string OrgCode { get; set; } + public int pageSize { get; set; } = 10; + + } } diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs index cc170b5..250bcdc 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs +++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs @@ -40,7 +40,7 @@ { public List<RcvRptDocBase> RcvRptDocBases { get; set; } public List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths { get; set; } - public List<InStorePrintJson> PrintJsons { get; set; } + public List<InStorePrintJson> PrintJsons { get; set; } = new List<InStorePrintJson>(); public List<BAS_LABEL_TEMP> labels { get; set; } public string userId { get; set; } } @@ -48,22 +48,22 @@ public class InStorePrintJson { public string ID { get; set; } - public List<ProdInBatch> Items { get; set; } + public List<BIZ_ERP_PROD_IN_BTH> Items { get; set; } } - public class ProdInBatch - { - public string ORDER_NO { get; set; } - public string SALES_ORDER { get; set; } - public string STATUS { get; set; } - public string BATCH_NO { get; set; } - public string WORK_ORDER { get; set; } - public string ITEM_CODE { get; set; } - public string SapCode { get; set; } - public string ITEM_NAME { get; set; } - public double PLAN_QTY { get; set; } - public double SCAN_QTY { get; set; } - } + //public class ProdInBatch + //{ + // public string ORDER_NO { get; set; } + // public string SALES_ORDER { get; set; } + // public string STATUS { get; set; } + // public string BATCH_NO { get; set; } + // public string WORK_ORDER { get; set; } + // public string ITEM_CODE { get; set; } + // public string SapCode { get; set; } + // public string ITEM_NAME { get; set; } + // public double PLAN_QTY { get; set; } + // public double SCAN_QTY { get; set; } + //} public class RcvRptDocBase { 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 0ae1b36..2b1dee9 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 @@ -98,17 +98,24 @@ /// </summary> [DisplayName("备注")] public string REMARK { get; set; } - #endregion + #endregion - #region 虚拟属性 - /*例子 + #region 虚拟属性 + /*例子 [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ - #endregion - #region 外键属性 - /*例子 + [SugarColumn(IsIgnore = true)] + public string SALES_ORDER { get; set; } + [SugarColumn(IsIgnore = true)] + public string SapCode { get; set; } + [SugarColumn(IsIgnore = true)] + public int CartonQty { get; set; } + #endregion + + #region 外键属性 + /*例子 //一对一外键导航 [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_ERP_PROD_IN_BTH类里面的外键ID字段 public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null @@ -119,10 +126,10 @@ [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_ERP_PROD_IN_BTHId), nameof(MappingClass.ClassAId))]//注意顺序 public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null */ - #endregion + #endregion - #region 枚举变量 - /*例子 + #region 枚举变量 + /*例子 public enum FieldNames { [Description("枚举描述0")] @@ -131,13 +138,13 @@ Enum1, } */ - #endregion + #endregion - #region 公共方法 + #region 公共方法 - #endregion + #endregion - }//endClass + }//endClass public class ProdInBatch { @@ -205,7 +212,13 @@ public class InStoreInfo { public BIZ_ERP_PROD_IN_BTH ErpProdInBth { get; set; } - public ProdInBatch ProdInBatch { get; set; } + //public ProdInBatch ProdInBatch { get; set; } public InStoreScanInfo InStoreScanInfo { get; set; } } + + public class InStoreInfos + { + public List<BIZ_ERP_PROD_IN_BTH> ErpProdInBths { get; set; } + public List<InStoreScanInfo> InStoreScanInfos { get; set; } + } } \ No newline at end of file diff --git a/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_SN.cs b/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_SN.cs index 71e0d4e..e33e035 100644 --- a/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_SN.cs +++ b/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_SN.cs @@ -77,6 +77,11 @@ [SugarColumn(IsIgnore = true)] public string FieldName { get; set; } */ + + [SugarColumn(IsIgnore = true)] + public string SALES_ORDER { get; set; } + [SugarColumn(IsIgnore = true)] + public string BATCH_NO { get; set; } #endregion #region 澶栭敭灞炴�� -- Gitblit v1.9.3