From d75d3b7cf6ba68c9e9e69bced4552a554ca76e93 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期六, 21 六月 2025 15:12:29 +0800 Subject: [PATCH] 出库口问题修改;标签打印优化 --- Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 134 +++++++++++++++++++++++++++++++++----------- 1 files changed, 100 insertions(+), 34 deletions(-) diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index 33bac31..83b9df7 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -1,5 +1,6 @@ 锘縰sing Model.InterFaceModel; using Model.ModelDto; +using Model.ModelDto.BllAsnDto; using Model.ModelDto.SysDto; using Model.ModelVm; using Model.ModelVm.SysVm; @@ -138,7 +139,7 @@ } //鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲� - public string GetAsnDetailQtyList(int id) + public LabelPrintInfoDto GetAsnDetailQtyList(int id) { try { @@ -147,7 +148,11 @@ { throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟槑缁�"); } + var data = new LabelPrintInfoDto(); + data.ProductionTime = string.IsNullOrEmpty(detail.Lot1) ? "" : Convert.ToDateTime(detail.Lot1).ToString("yyyy-MM-dd"); + data.ExpirationTime = string.IsNullOrEmpty(detail.Lot2) ? "" : Convert.ToDateTime(detail.Lot2).ToString("yyyy-MM-dd"); + data.SupplierLot = detail.SupplierLot; var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null? 0: m.SamplingQty)); if (labelQty == null) { @@ -158,7 +163,8 @@ { qty = 0; } - return qty.ToString(); + data.Qty = qty.ToString(); + return data; } catch (Exception e) { @@ -301,6 +307,8 @@ }; List<BllArrivalNoticeDetail> details = new List<BllArrivalNoticeDetail>(); + var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList(); + foreach (ArrivalNoticeDetailVm detailModel in model.AsnDetail) { if (string.IsNullOrEmpty(detailModel.SkuNo)) @@ -318,7 +326,7 @@ strMessage = "-1:鏁伴噺蹇呴』澶т簬0;"; continue; } - + if ( model.Type == "5" || model.Type == "6" || model.Type == "7") { if (!string.IsNullOrWhiteSpace(detailModel.LotNo)) @@ -351,12 +359,27 @@ detailModel.LotNo = maxLotNo; } } - if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8") + //if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8") + //{ + // if (string.IsNullOrWhiteSpace(detailModel.LotNo)) + // { + // throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!"); + // } + //} + detailModel.BoxCodeStr = detailModel.LotNo; + if (string.IsNullOrWhiteSpace(detailModel.LotNo)) { - if (string.IsNullOrWhiteSpace(detailModel.LotNo)) + string toDayTime = DateTime.Now.ToString("yyyyMM"); + var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")).Max(m => m.BoxCodeStr); + if(string.IsNullOrWhiteSpace(maxBoxCodeStr)) { - throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!"); + maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001"; } + else + { + maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString(); + } + detailModel.BoxCodeStr = maxBoxCodeStr; } // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁� @@ -375,6 +398,33 @@ { detailModel.Price = 0; } + var sku = skuList.FirstOrDefault(m => m.SkuNo == detailModel.SkuNo); + if (sku == null) + { + throw new Exception("鏈煡璇㈠嚭鐗╂枡淇℃伅!"); + } + string lot1 = detailModel.Lot1; + string lot2 = detailModel.Lot2; + if (sku.IsPasteCode == "0") + { + //涓嶈创鏍囩墿鏂� 鐢熶骇鏃ユ湡銆佹湁鏁堟湡涓嶈兘涓虹┖ + DateTime lot12; + DateTime lot22; + if (!DateTime.TryParse(detailModel.Lot1, out lot12)) + { + throw new Exception("闈炶创鏍囩墿鏂欑敓浜ф棩鏈熻浆鎹㈠け璐�"); + } + if (!DateTime.TryParse(detailModel.Lot2, out lot22)) + { + throw new Exception("闈炶创鏍囩墿鏂欒繃鏈熸棩鏈熻浆鎹㈠け璐�"); + } + lot1 = lot12.ToString(); + lot2 = lot22.ToString(); + } + if (string.IsNullOrWhiteSpace(detailModel.PackagNo)) + { + throw new Exception("鍖呰涓嶈兘涓虹┖"); + } // 璁$畻鍑烘�婚噾棰� detailModel.Money = detailModel.Price * detailModel.Qty; BllArrivalNoticeDetail detail = new BllArrivalNoticeDetail() @@ -383,7 +433,7 @@ SkuNo = detailModel.SkuNo, SkuName = detailModel.SkuName, Standard = detailModel.Standard, - LotNo = detailModel.LotNo.Trim(), + LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(), LotText = detailModel.LotText, Qty = (decimal)detailModel.Qty, PackagNo = detailModel.PackagNo, @@ -397,6 +447,9 @@ Status = "0", IsSampling = "0", InspectStatus = "0", + Lot1 = lot1, //鐢熶骇鏃ユ湡 + Lot2 = lot2, // 杩囨湡鏃ユ湡 + BoxCodeStr = detailModel.BoxCodeStr, UDF1 = detailModel.UDF1, UDF2 = detailModel.UDF2, UDF3 = detailModel.UDF3, @@ -522,13 +575,13 @@ return strMessage; } - if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4") - { - if (string.IsNullOrWhiteSpace(detailModel.LotNo)) - { - throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!"); - } - } + //if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4") + //{ + // if (string.IsNullOrWhiteSpace(detailModel.LotNo)) + // { + // throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!"); + // } + //} if (TypeLot.Contains(model.Type)) { @@ -558,29 +611,39 @@ //鐢熸垚鑷湁鎵规 if (detailModel.Id == 0 || detailModel.Id == null || string.IsNullOrWhiteSpace(detailModel.LotNo)) { - var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && TypeLot.Contains(m.Type)).Select(m => m.ASNNo).ToList(); - if (string.IsNullOrWhiteSpace(maxLotNo)) + //var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && TypeLot.Contains(m.Type)).Select(m => m.ASNNo).ToList(); + //if (string.IsNullOrWhiteSpace(maxLotNo)) + //{ + // maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m => m.LotNo); + //} + //if (string.IsNullOrWhiteSpace(maxLotNo)) + //{ + // maxLotNo = toDayTime.Substring(2, 6) + "0001"; + //} + //else + //{ + // var lotStr = maxLotNo.Substring(0, 6); + // var timeStr = toDayTime.Substring(2, 6); + // if (lotStr == timeStr) + // { + // maxLotNo = toDayTime.Substring(2, 6) + (int.Parse(maxLotNo.Substring(6, 4)) + 1).ToString().PadLeft(4, '0'); + // } + // else + // { + // maxLotNo = timeStr + "0001"; + // } + //} + //detailModel.LotNo = maxLotNo; + var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")).Max(m => m.BoxCodeStr); + if (string.IsNullOrWhiteSpace(maxBoxCodeStr)) { - maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m => m.LotNo); - } - if (string.IsNullOrWhiteSpace(maxLotNo)) - { - maxLotNo = toDayTime.Substring(2, 6) + "0001"; + maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001"; } else { - var lotStr = maxLotNo.Substring(0, 6); - var timeStr = toDayTime.Substring(2, 6); - if (lotStr == timeStr) - { - maxLotNo = toDayTime.Substring(2, 6) + (int.Parse(maxLotNo.Substring(6, 4)) + 1).ToString().PadLeft(4, '0'); - } - else - { - maxLotNo = timeStr + "0001"; - } + maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString(); } - detailModel.LotNo = maxLotNo; + detailModel.BoxCodeStr = maxBoxCodeStr; } if (detailModel.Id == 0 || detailModel.Id == null) @@ -599,7 +662,7 @@ SkuNo = detailModel.SkuNo, SkuName = detailModel.SkuName, Standard = detailModel.Standard, - LotNo = detailModel.LotNo.Trim(), + LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(), LotText = detailModel.LotText, Qty = (decimal)detailModel.Qty, PackagNo = detailModel.PackagNo, @@ -611,8 +674,11 @@ IsBelt = detailModel.IsBelt, SupplierLot = detailModel.SupplierLot, Status = "0", + IsSampling = "0", + InspectStatus = "0", Lot1 = detailModel.Lot1, Lot2 = detailModel.Lot2, + BoxCodeStr = detailModel.BoxCodeStr, UDF1 = detailModel.UDF1, UDF2 = detailModel.UDF2, UDF3 = detailModel.UDF3, @@ -662,7 +728,7 @@ detailModel.Money = detailModel.Price * detailModel.Qty; dbDetail.Qty = (decimal)detailModel.Qty; - dbDetail.LotNo = detailModel.LotNo; + dbDetail.LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(); dbDetail.Money = detailModel.Money; dbDetail.LotText = detailModel.LotText; dbDetail.SupplierLot = detailModel.SupplierLot; -- Gitblit v1.8.0