From d254250296297f391ae8bc1128122e3c9a71243e Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 14 五月 2025 01:34:55 +0800 Subject: [PATCH] 生成截料条码 --- Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs | 55 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 44 insertions(+), 11 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 23f7840..830c306 100644 --- a/Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs +++ b/Tiger.Business.WMS/Transaction/Yada/Out_BIZ_WMS_PREP.cs @@ -290,13 +290,13 @@ var action = new ApiAction<BIZ_WMS_PREP_DTL>(); if (!CurPrepDtl.IsNullOrEmpty()) { - var prepDtl = MainDB.Queryable<BIZ_WMS_PREP_DTL>().Where(q => q.ID == CurPrepDtl.ID).First(); - prepDtl.Suggests = Suggests; + var prepDtl = MainDB.Queryable<BIZ_WMS_PREP_DTL>().Where(q => q.ID == CurPrepDtl.ID).First(); + prepDtl.Suggests = Suggests; prepDtl.Deliverys = MainDB.Queryable<BIZ_WMS_PREP_SN>().Where(q => q.ORDER_NO == CurPrepDtl.ORDER_NO && q.ORDER_LINE == CurPrepDtl.ORDER_LINE && q.STATUS == WMS_ITEM.STATUSs.OffShelf.GetValue()).ToList(); CurPrepDtl = prepDtl; - CurPREP.Order.Details.RemoveAll(q => q.ID == CurPrepDtl.ID); - CurPREP.Order.Details.Add(CurPrepDtl); - action.Data = CurPrepDtl; + CurPREP.Order.Details.RemoveAll(q => q.ID == CurPrepDtl.ID); + CurPREP.Order.Details.Add(CurPrepDtl); + action.Data = CurPrepDtl; } return action; } @@ -471,7 +471,8 @@ // return action; //} CurInvItem = inv; - CurSn = CurInvItem.Items.Select(q => new BIZ_WMS_PREP_SN() { + CurSn = CurInvItem.Items.Select(q => new BIZ_WMS_PREP_SN() + { ORDER_NO = CurPREP.Order.ORDER_NO, ORDER_LINE = CurPrepDtl.ORDER_LINE, SN = q.SN, @@ -527,13 +528,13 @@ //action.LocaleMsg = Biz.L($"鏉$爜[{0}]鎵弿鎴愬姛锛屽鏂欑墿鏂橻{1}]闇�姹俒{2}]杩橀渶澶囨枡[{3}]锛岃閫夋嫨瑕佽秴鍙戣繕鏄埅鏂欙紵"); action.LocaleMsg = Biz.L($"WMS.Out_BIZ_WMS_PREP.ScanItem.Success{(isNeedCut ? "" : "Confirm")}", CurInvItem.SN, CurInvItem.ItemInfo.ITEM_CODE, CurPREP.BizType.GetActReqQty(CurPrepDtl), actQty, CurSn.Sum(q => q.QTY_DLVY)); action.Data.Command = "ConfirmExceed"; - action.Data.Data = new + action.Data.Data = new { isExceed, isNeedCut, CurSn, }; - } + } else { input.Data = CurSn.ToJson(); @@ -686,7 +687,7 @@ whUnit = whUnit.IsNullOrEmpty(await MainDB.Queryable<V_WH_UNIT>().Where(t => (t.SHELF_CODE.ToUpper() == Code || t.LOCATION_CODE.ToUpper() == Code) && t.AUTH_ORG == OrgCode).IncludesAllFirstLayer().FirstAsync()); // 鎵弿璐ф灦浠g爜锛屼笖涓烘櫤鑳借揣鏋� - if (!whUnit.IsNullOrEmpty() && whUnit.SHELF_CODE == Code) + if (!whUnit.IsNullOrEmpty() && whUnit.SHELF_CODE == Code) { CurScanShelf.Shelf = whUnit.Shelf; CurScanShelf.WarehouseCode = whUnit.WH_CODE; @@ -728,7 +729,7 @@ CurScanShelf.Location = whUnit.Location; CurScanShelf.WarehouseCode = whUnit.WH_CODE; CurScanShelf.RegionCode = whUnit.REGION_CODE; - CurScanShelf.ShelfCode = whUnit .SHELF_CODE; + CurScanShelf.ShelfCode = whUnit.SHELF_CODE; CurScanShelf.LocationCode = whUnit.LOCATION_CODE; CurScanShelf.IsSmartRack = false; } @@ -753,6 +754,38 @@ action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanShelf.ScanException", Code)); } return action; + } + + + + /// <summary> + /// 鐢熸垚鎴枡鏉$爜 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<ApiAction<ScanOutput>> GenerateSNs(BaseInput input) + { + var action = new ApiAction<ScanOutput>(new ScanOutput()); + try + { + var snlist = input.Options["Snlist"].ToString().JsonToObject<List<BIZ_WMS_PREP_SN>>(); + List<string> SnList = new(); + foreach (var sn in snlist) + { + var metaSn = $"{DI.Resolve<ICodeRuleCache>()["CuttingBarcode"]?.Generate(sn.SN, "/").Data.ToString() ?? ""}" ; + SnList.Add(metaSn); + sn.ReserveSN = sn.SN; + sn.DeliverySN = metaSn; + } + // 杩斿洖鏁版嵁 + action.Data.Data = new { Snlist = snlist, Sns = SnList }; + action.LocaleMsg = Biz.L("鐢熸垚鎴枡鏉$爜鎴愬姛"); + } + catch (Exception ex) + { + action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN)); + } + return SetOutPutMqttMsg(action, input.Locale); } /// <summary> @@ -802,7 +835,7 @@ var range = input.Data.ToInt32().GetEnum<BIZ_WMS_PREP_BTH.BATCH_RANGEs>(); //浠庢暟鎹簱鏇存柊褰撳墠鍗曟嵁鐨勬墍鏈変俊鎭� CurPREP.Order = MainDB.Queryable<BIZ_WMS_PREP>().Where(q => q.ID == CurPREP.Order.ID).IncludesAllFirstLayer().First(); - var action = await CurPREP.Order.BIZ_TYPE.GetEnum<BIZ_WMS_PREP.BIZ_TYPEs>() .GenerateDlvyBatch(this, range); + var action = await CurPREP.Order.BIZ_TYPE.GetEnum<BIZ_WMS_PREP.BIZ_TYPEs>().GenerateDlvyBatch(this, range); return action; } -- Gitblit v1.9.3