From 2c60540518b5f2071987dcbe6aa237af4b97c77a Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期一, 12 五月 2025 23:49:52 +0800 Subject: [PATCH] 修复了一些已知问题 --- Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs | 81 +++++++++++++++++++--------------------- 1 files changed, 38 insertions(+), 43 deletions(-) diff --git a/Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs b/Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs index 243c7dc..e8bd236 100644 --- a/Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs +++ b/Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs @@ -10,9 +10,6 @@ using Tiger.Model; using Tiger.IBusiness; using Tiger.Business.WMS.Common; -using Org.BouncyCastle.Ocsp; -using Tiger.Model.Sharetronic.Shelf; -using MailKit.Search; using Tiger.Business.WMS.Extensions; namespace Tiger.Business.WMS.Transaction @@ -33,7 +30,7 @@ #region Propertys & Variables public Preparation CurPREP { get; set; } private List<BIZ_WMS_PREP_SN> CurSn = new(); - private BIZ_WMS_PREP_DTL CurPrepDtl = new(); + private BIZ_WMS_PREP_DTL CurPrepDtl; public List<SuggestItem> Suggests { get; set; } = new(); public List<WMS_ITEM_POOL> CurPoolList => Suggests.Where(q => !q.poolItem.IsNullOrEmpty()).Select(q => q.poolItem).ToList(); public List<WMS_LOCATION> LocationHis { get; set; } = new(); @@ -50,7 +47,8 @@ var action = new ApiAction<ScanOutput>(new ScanOutput()); try { - + //Result<List<SuggestItem>> result = Suggest("CurPrepDtl.ORDER_NO", "CurPrepDtl.ITEM_CODE", new SuggestOption(), new(), 100.0); + //action.LocaleMsg = result.LocaleMsg; if (input.Command == "ScanOrder") { action = await ScanOrder(input); @@ -130,7 +128,7 @@ if (CurPREP.Order.IsNullOrEmpty() || !CurPREP.Order.SourceOrders.Any(q => q.SOURCE_ORDER == inputOrder.SOURCE_ORDER)) { - action = CurPREP.AddOrder(inputOrder.BIZ_TYPE.GetEnum<BIZ_WMS_PREP.BIZ_TYPEs>(), inputOrder.SOURCE_CODE); + action = CurPREP.AddOrder(inputOrder.BIZ_TYPE.GetEnum<BIZ_WMS_PREP.BIZ_TYPEs>(), inputOrder.SOURCE_ORDER); } else { @@ -157,8 +155,8 @@ public async Task<ApiAction<BIZ_WMS_PREP>> GetPrepInfo() { var action = new ApiAction<BIZ_WMS_PREP>(); - CurPREP.Order = MainDB.Queryable<BIZ_WMS_PREP>().Where(q => q.ID == CurPREP.Order.ID).IncludesAllFirstLayer().First(); - + var prepId = CurPREP?.Order?.ID; + CurPREP.Order = MainDB.Queryable<BIZ_WMS_PREP>().Where(q => q.ID == prepId).IncludesAllFirstLayer().First(); action.Data = CurPREP.Order; return action; } @@ -171,8 +169,8 @@ var action = new ApiAction<ScanOutput>(new ScanOutput()); try { - var inputDtl = input?.Data?.JsonToObject<BIZ_WMS_PREP_DTL>(); - var prepDtl = MainDB.Queryable<BIZ_WMS_PREP_DTL>().Where(q => q.ID == inputDtl.ID).First(); + var option = CurPREP.Option = new BaseInput<SuggestOption>(input).Data; + var prepDtl = MainDB.Queryable<BIZ_WMS_PREP_DTL>().Where(q => q.ID == option.LineID).First(); if (prepDtl.IsNullOrEmpty()) { action.IsSuccessed = false; @@ -202,10 +200,10 @@ } //濡傛灉鏄濂楀彂鏂欙紝鍒欏彧鎺ㄨ崘褰撳墠鐗╂枡琛岀殑涓�鐩樼墿鏂� - if (CurPREP.Order.CurBatch.DLVY_MODE == BIZ_WMS_PREP_BTH.DLVY_MODEs.First.GetValue()) + if (option.DlvyMode == WMS_ITEM_POOL.DLVY_MODEs.First) { //鎺ㄨ崘鐗╂枡 - Result<List<SuggestItem>> result = Suggest(CurPrepDtl.ORDER_NO, CurPrepDtl.ITEM_CODE, null, inputDtl.WH_ID, inputDtl.REGION_ID, inputDtl.SHELF_ID, input.AuthOption, 1); + Result<List<SuggestItem>> result = Suggest(CurPrepDtl.ORDER_NO, CurPrepDtl.ITEM_CODE, option, input.AuthOption, 1); action.LocaleMsg = result.LocaleMsg; if (result.IsException) { @@ -221,7 +219,7 @@ var actQty = CurPrepDtl.QTY_PREP > CurPREP.BizType.GetActReqQty(CurPrepDtl) ? 0 : (CurPREP.BizType.GetActReqQty(CurPrepDtl) - CurPrepDtl.QTY_PREP); if (inv != null && actQty > 0) { - inv.poolItem = inv.Item.GetPoolItem(OrgCode, nameof(CurPREP.Order), CurPrepDtl.ORDER_NO, CurPrepDtl.ORDER_LINE, actQty, true); + inv.poolItem = inv.Item.GetPoolItem(OrgCode, TransID, nameof(CurPREP.Order), CurPrepDtl.ORDER_NO, CurPrepDtl.ORDER_LINE, actQty, true); } else { @@ -232,11 +230,11 @@ } //濡傛灉鏄甯稿彂鏂欙紝鍒欐寜瀹為檯闇�姹傛暟閲忔帹鑽愬綋鍓嶇墿鏂欒鐨勬墍鏈夌墿鏂� - if (CurPREP.Order.CurBatch.DLVY_MODE == BIZ_WMS_PREP_BTH.DLVY_MODEs.Supply.GetValue()) + if (option.DlvyMode == WMS_ITEM_POOL.DLVY_MODEs.Supply) { //鎺ㄨ崘鐗╂枡 var actQty = CurPrepDtl.QTY_PREP > CurPREP.BizType.GetActReqQty(CurPrepDtl) ? 0 : (CurPREP.BizType.GetActReqQty(CurPrepDtl) - CurPrepDtl.QTY_PREP); - Result<List<SuggestItem>> result = Suggest(CurPrepDtl.ORDER_NO, CurPrepDtl.ITEM_CODE, null, inputDtl.WH_ID, inputDtl.REGION_ID, inputDtl.SHELF_ID, input.AuthOption, actQty); + Result<List<SuggestItem>> result = Suggest(CurPrepDtl.ORDER_NO, CurPrepDtl.ITEM_CODE, option, input.AuthOption, actQty); action.LocaleMsg = result.LocaleMsg; if (result.IsException) { @@ -245,12 +243,13 @@ } Suggests.Clear(); + Suggests = result.Data; var remain = actQty; Suggests.ForEach((inv) => { if (remain > 0) { - inv.poolItem = inv.Item.GetPoolItem(input.AuthOption.OrgCode, nameof(CurPREP.Order), CurPrepDtl.ORDER_NO, CurPrepDtl.ORDER_LINE, remain, false); + inv.poolItem = inv.Item.GetPoolItem(OrgCode, TransID, nameof(CurPREP.Order), CurPrepDtl.ORDER_NO, CurPrepDtl.ORDER_LINE, remain, false); remain -= inv.poolItem.ALLOC_QTY; } else @@ -289,16 +288,15 @@ public async Task<ApiAction<BIZ_WMS_PREP_DTL>> GetCurPrepItem() { var action = new ApiAction<BIZ_WMS_PREP_DTL>(); - var prepDtl = MainDB.Queryable<BIZ_WMS_PREP_DTL>().Where(q => q.ID == CurPrepDtl.ID).First(); - prepDtl.ERP_WH = CurPrepDtl.ERP_WH; - prepDtl.WH_ID = CurPrepDtl.WH_ID; - prepDtl.REGION_ID = CurPrepDtl.REGION_ID; - prepDtl.SHELF_ID = CurPrepDtl.SHELF_ID; - prepDtl.Suggests = Suggests; - CurPrepDtl = prepDtl; - CurPREP.Order.Details.RemoveAll(q => q.ID == CurPrepDtl.ID); - CurPREP.Order.Details.Add(CurPrepDtl); - action.Data = CurPrepDtl; + if (!CurPrepDtl.IsNullOrEmpty()) + { + var prepDtl = MainDB.Queryable<BIZ_WMS_PREP_DTL>().Where(q => q.ID == CurPrepDtl.ID).First(); + prepDtl.Suggests = Suggests; + CurPrepDtl = prepDtl; + CurPREP.Order.Details.RemoveAll(q => q.ID == CurPrepDtl.ID); + CurPREP.Order.Details.Add(CurPrepDtl); + action.Data = CurPrepDtl; + } return action; } @@ -467,7 +465,6 @@ CurSn = CurInvItem.Items.Select(q => new BIZ_WMS_PREP_SN() { ORDER_NO = CurPREP.Order.ORDER_NO, ORDER_LINE = CurPrepDtl.ORDER_LINE, - ORDER_BATCH = CurPREP.Order.CurBatch.BATCH.ToString(), SN = q.SN, ITEM_CODE = q.ITEM_CODE, UNIT = q.UNIT, @@ -475,22 +472,23 @@ QTY_DLVY = q.QTY, STATUS = q.STATUS, LOTNO = q.LOTNO, + WH_ID = CurInvItem.Warehouse.ID, WH_CODE = CurInvItem.Warehouse.WH_CODE, + REGION_ID = CurInvItem.Region.ID, REGION_CODE = CurInvItem.Region.REGION_CODE, + SHELF_ID = CurInvItem.Shelf.ID, SHELF_CODE = CurInvItem.Shelf.SHELF_CODE, + LOCATION_ID = CurInvItem.Location.ID, LOCATION_CODE = CurInvItem.Location.LOCATION_CODE, - FTY_CODE = CurPREP.Order.CurBatch.FTY_CODE, - WS_CODE = CurPREP.Order.CurBatch.WS_CODE, - LINE_CODE = CurPREP.Order.CurBatch.LINE_CODE, - POST_CODE = CurPREP.Order.CurBatch.POST_CODE, - OPER_CODE = CurPREP.Order.CurBatch.OPER_CODE, - SEGMENT = CurPREP.Order.CurBatch.SEGMENT, + PREP_USER = UserCode, + DOWN_TIME = DateTime.Now, SMT_NO = CurPrepDtl.SMT_NO, STATION_NO = CurPrepDtl.STATION_NO, FEEDER_NO = CurPrepDtl.FEEDER_NO, FEEDER_TYPE = CurPrepDtl.FEEDER_TYPE, - IS_FIRST = CurPREP.Order.CurBatch.DLVY_MODE == BIZ_WMS_PREP_BTH.DLVY_MODEs.First.GetValue() ? "Y" : "N", + IS_FIRST = CurPREP.Option.DlvyMode == WMS_ITEM_POOL.DLVY_MODEs.First ? "Y" : "N", NEED_CUTTING = "N", + TRACE_ID = TransID, }).ToList(); @@ -621,14 +619,11 @@ } CurPrepDtl.QTY_PREP += CurSn.Sum(q => q.QTY_DLVY); CurPREP.Order.STATUS = BIZ_WMS_PREP.STATUSs.Picking.GetValue(); - CurPREP.Order.CurBatch.STATUS = BIZ_WMS_PREP_BTH.STATUSs.Picking.GetValue(); - CurPREP.Order.CurBatch.PICK_TIME = CurPREP.Order.CurBatch.PICK_TIME < new DateTime(2000, 1, 1) ? DateTime.Now : CurPREP.Order.CurBatch.PICK_TIME; //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� var _CurSn = CurSn.Clone(); var _CurPrepDtl = CurPrepDtl.Clone(); var _CurPREPOrder = CurPREP.Order.Clone(); - var _CurPREPCurBatch = CurPREP.Order.CurBatch.Clone(); AddCommitAction("UpdatePrep", () => { //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄 @@ -638,7 +633,6 @@ _CurPrepDtl.QTY_PREP = db.Queryable<BIZ_WMS_PREP_SN>().Where(q => q.ORDER_NO == _CurPrepDtl.ORDER_NO && q.ORDER_LINE == _CurPrepDtl.ORDER_LINE).Sum(q => q.QTY_DLVY); db.Updateable(_CurPrepDtl, UserCode).UpdateColumns(q => new { q.QTY_PREP, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); db.Updateable(_CurPREPOrder, UserCode).UpdateColumns(q => new { q.STATUS, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); - db.Updateable(_CurPREPCurBatch, UserCode).UpdateColumns(q => new { q.STATUS, q.PICK_TIME, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand(); }); //鐏伅 @@ -790,13 +784,14 @@ } /// <summary> - /// 璋冪敤鍙戞枡鍗曟嵁鐨凟RP鎺ュ彛 + /// 鍒涘缓鍙戞枡鎵规浠ュ畬鎴愭湰娆″彂鏂欙紝璋冪敤鍙戞枡鍗曟嵁鐨凟RP鎺ュ彛 /// </summary> /// <param name="input"></param> /// <returns></returns> - public async Task<ApiAction> CommitToERP(BaseInput input) + public async Task<ApiAction> GenerateDlvyBatch(BaseInput input) { - var action = await CurPREP.Order.BIZ_TYPE.GetEnum<BIZ_WMS_PREP.BIZ_TYPEs>() .CommitToERP(this, input); + var range = input.Data.ToInt32().GetEnum<BIZ_WMS_PREP_BTH.BATCH_RANGEs>(); + var action = await CurPREP.Order.BIZ_TYPE.GetEnum<BIZ_WMS_PREP.BIZ_TYPEs>() .GenerateDlvyBatch(this, range); return action; } @@ -809,7 +804,7 @@ { ResetScan(); CurPREP = new(MainDB, UserCode, OrgCode); - CurPrepDtl = new(); + CurPrepDtl = null; CurScanShelf = null; base.ResetTrans(); } @@ -830,7 +825,7 @@ //CloseLight(LocationHis).Wait(); if (!(CurPREP?.Order?.ORDER_NO ?? "").IsNullOrEmpty()) { - MainDB.Deleteable<WMS_ITEM_POOL>().Where(x => x.TRANS_NO == CurPREP.Order.ORDER_NO).ExecuteCommand(); + MainDB.Deleteable<WMS_ITEM_POOL>().Where(q => q.TRANS_NO == CurPREP.Order.ORDER_NO || q.TRANS_ID == TransID).ExecuteCommand(); } this.IsFinished = true; -- Gitblit v1.9.3