From 1204e1ae66a50ec99b4dea80e839c1264c36ef48 Mon Sep 17 00:00:00 2001 From: Demo <Demo@DESKTOP-CPA90BF> Date: 星期一, 19 二月 2024 13:24:30 +0800 Subject: [PATCH] 修改标签因单据条件生成重复问题,前端防止重复点击问题 --- Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 692 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 644 insertions(+), 48 deletions(-) diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs index 866b3b5..9c0ad7a 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs @@ -412,10 +412,10 @@ .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), it => it.SkuNo.Contains(model.SkuNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(model.SupplierLot), it => it.SupplierLot.Contains(model.SupplierLot.Trim())) - .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.SupplierLot) + .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status) .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime >= Convert.ToDateTime(model.ProductionTime)) .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime <= Convert.ToDateTime(model.ProductionTime).AddDays(1)) - .And(it => it.IsDel == "0") + .And(it => it.IsDel == "0" && it.Origin == "WMS鐢熸垚") .ToExpression(); var total = 0; @@ -576,7 +576,7 @@ packStr += "-" + pack.L5Num + "/" + pack.L5Name; } //鏍囩琛� - var label = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == imId).ToList(); + var label = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList(); #endregion @@ -612,29 +612,37 @@ #endregion var modelList = new List<BllBoxInfo>(); + + var addLotNo = ""; + if (arriveQty < 0) + { + throw new Exception("鍒拌揣鏁伴噺涓嶈兘灏忎簬0!"); + } + if (packLevel == 1) { #region 涓�绾у寘瑁� // 鏍规嵁鐢ㄦ埛杈撳叆鐨勭鏁伴噺璁$畻闇�瑕佺殑鏉$爜鏁� - var labQty = label.Sum(m => m.Qty); - var qty = asnList.Qty - labQty;//褰撳墠鍗曟嵁鍓╀綑闇�瑕佹墦鍗扮殑鐗╂枡鏁伴噺(涓嶆槸鏍囩鏁伴噺) - if (qty <= 0) - { - throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦"); - } + //var labQty = label.Sum(m => m.Qty); + //var qty = asnList.Qty - labQty;//褰撳墠鍗曟嵁鍓╀綑闇�瑕佹墦鍗扮殑鐗╂枡鏁伴噺(涓嶆槸鏍囩鏁伴噺) + //if (qty <= 0) + //{ + // throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦"); + //} #region 鍒拌揣鏁伴噺 - if (arriveQty - qty > 0) - { - throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺骞舵牳瀹�!"); - } - else - { - qty = arriveQty; - } - + //if (arriveQty - qty > 0) + //{ + // throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺骞舵牳瀹�!"); + //} + //else + //{ + // qty = arriveQty; + //} + + var qty = arriveQty; #endregion int labelNum = 1; //鐢熶骇鏉$爜鏁伴噺 @@ -653,15 +661,16 @@ string maxBoxCode = ""; //绠辩爜鍙� // 鐢熸垚鑷紪鎵瑰彿 string toDayTime = DateTime.Now.ToString("yyyyMMdd"); - - - var maxLotNo = label.Max(a => a.LotNo); - var maxBoxNo = label.Max(a => a.BoxNo); + if (isReset == "0") { - - maxLotNoStr = maxLotNo; - maxBoxCode = maxBoxNo; + var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList(); + if (labelCount.Count <=0) + { + throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱"); + } + maxLotNoStr = label.Max(a => a.LotNo); + maxBoxCode = label.Max(a => a.BoxNo); if (string.IsNullOrWhiteSpace(maxLotNoStr)) { maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; @@ -669,7 +678,7 @@ } else { - var maxCode = Db.Queryable<BllLabelBoxNo>().Max(a => a.LotNo); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿 + var maxCode = Db.Queryable<BllBoxInfo>().Where(m=>m.Origin == "WMS鐢熸垚").Max(a => a.LotNo); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿 if (string.IsNullOrWhiteSpace(maxCode)) { maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; @@ -690,9 +699,10 @@ } } + addLotNo = maxLotNoStr; #endregion - + for (int i = 1; i <= labelNum; i++) { @@ -716,7 +726,7 @@ } //鑾峰彇绠辩爜 - if (maxBoxCode == "") + if (string.IsNullOrWhiteSpace(maxBoxCode)) { var str = "B"+maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按 2302010001000001 maxBoxCode = str; @@ -765,25 +775,27 @@ #region 浜岀骇鍖呰 // 鏍规嵁鐢ㄦ埛杈撳叆鐨勭鏁伴噺璁$畻闇�瑕佺殑鏉$爜鏁� - var labQty = label.Sum(m => m.Qty); - var qty2 = asnList.Qty - labQty; - if (qty2 <= 0) - { - throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦"); - } + //var labQty = label.Sum(m => m.Qty); + //var qty2 = asnList.Qty - labQty; + //if (qty2 <= 0) + //{ + // throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦"); + //} #region 澧炲姞鍒拌揣鏁伴噺 - if (arriveQty - qty2 > 0) - { - throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺!"); - } - else - { - qty2 = arriveQty; - } + //if (arriveQty - qty2 > 0) + //{ + // throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺!"); + //} + //else + //{ + // qty2 = arriveQty; + //} #endregion + + var qty2 = arriveQty; int labelNum2 = 1; //鐢熶骇绠辨潯鐮佹暟閲� labelNum2 = int.Parse(Math.Ceiling(qty2 / bNum).ToString()); @@ -802,6 +814,11 @@ string toDayTime2 = DateTime.Now.ToString("yyyyMMdd"); if (isReset == "0") { + var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList(); + if (labelCount.Count <= 0) + { + throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱"); + } var maxCode = label.Max(a => a.LotNo); var boxCode1 = label.Max(a => a.BoxNo);//绠卞彿 var boxCode2 = label.Max(a => a.BoxNo3);//鏀彿 @@ -815,7 +832,7 @@ } else { - var maxCode = Db.Queryable<BllLabelBoxNo>().Max(a => a.LotNo); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿 + var maxCode = Db.Queryable<BllBoxInfo>().Where(m => m.Origin == "WMS鐢熸垚").Max(a => a.LotNo); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿 if (string.IsNullOrWhiteSpace(maxCode)) { maxCodestr2 = toDayTime2.Substring(2, 6) + "0001"; @@ -836,9 +853,10 @@ } } + addLotNo = maxCodestr2; #endregion - + for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩 { @@ -863,7 +881,7 @@ } //鑾峰彇绠辩爜 - if (maxboxcode2 == "") + if (string.IsNullOrWhiteSpace(maxboxcode2)) { maxboxcode2 = "B"+maxCodestr2 + "000001"; // 绠卞彿 鎵瑰彿+绗嚑绠� } @@ -907,7 +925,7 @@ } } - if (maxboxcode3 == "") + if (string.IsNullOrWhiteSpace(maxboxcode3)) { maxboxcode3 = "Z"+maxCodestr2 + "0001"; // 鏀彿 鎵瑰彿+绗嚑绠� } @@ -916,6 +934,9 @@ maxboxcode3 = maxboxcode3.Substring(0, 11) + (int.Parse(maxboxcode3.Substring(11, 4)) + 1).ToString().PadLeft(4, '0'); } + var ssss = d.ToString("0"); + var sss = int.Parse(ssss); + // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� var labelModel = new BllBoxInfo() { @@ -923,7 +944,7 @@ ASNDetailNo = asnList.Id, BoxNo = maxboxcode2, BoxNo3 = maxboxcode3, - Qty = int.Parse(d.ToString()), + Qty = sss, FullQty = bNum, Status = "0", SkuNo = asnList.SkuNo, @@ -954,7 +975,20 @@ #endregion } - + if (string.IsNullOrWhiteSpace(asnList.LotNo)) + { + asnList.LotNo = addLotNo; + Db.Updateable(asnList).ExecuteCommand(); + } + else + { + if (!asnList.LotNo.Contains(addLotNo)) + { + asnList.LotNo += ";" + addLotNo; + Db.Updateable(asnList).ExecuteCommand(); + } + } + return modelList; @@ -966,6 +1000,568 @@ } } + // 琛ユ墦鏍囩 + public List<BoxInfoDto> GetBuDaLabelList(string boxNo, string endBoxNo, string boxNo2, string endBoxNo2, string type, int userId) + { + try + { + //鎵撳嵃鏁版嵁闆嗗悎 + var printList = new List<BoxInfoDto>(); + List<BoxInfoDto> printModelList = new List<BoxInfoDto>(); + //List<WmsLabelPrintLog> printlog = new List<WmsLabelPrintLog>(); + //鏍囩琛ㄦ暟鎹俊鎭� + var list = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList(); + + #region MyRegion + + switch (type) + { + case "1": + if (string.IsNullOrWhiteSpace(endBoxNo)) + { + #region 鍗曚釜绠辩爜鏍囩 + + if (string.IsNullOrWhiteSpace(boxNo)) + { + throw new Exception($"璧峰绠辩爜涓嶈兘涓虹┖"); + } + var dataList = list.Where(m => m.BoxNo == boxNo); + var data = list.FirstOrDefault(m => m.BoxNo == boxNo); + if (data == null) + { + throw new Exception($"鏈煡璇㈠埌{boxNo}淇℃伅"); + } + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model = new BoxInfoDto(); + model.SkuNo = data.SkuNo; + model.SkuName = data.SkuName; + model.LotNo = data.LotNo; //鎵规 + model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿 + model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿 + model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸 + + model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦 + model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + + model.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺 + + model.BoxNo = data.BoxNo; // 绠卞彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,160, 40,false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + + //娣诲姞鎵撳嵃璁板綍 + //WmsLabelPrintLog log = new WmsLabelPrintLog(); + //log.BoxCode = data.LabelStream; + //log.CreateTime = DateTime.Now; + //log.Demo = Demo; + //log.Isdel = 0; + //log.CreateUser = userId; + //printlog.Add(log); + #endregion + } + else + { + #region 澶氫釜绠辩爜鏍囩 寮�濮�-缁撴潫 + if (string.IsNullOrWhiteSpace(boxNo)) + { + throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖"); + } + var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'"; + var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql); + var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList(); + if (data3.Count == 0) + { + throw new Exception($"鏈煡璇㈠埌{boxNo}-{endBoxNo}涓俊鎭�"); + } + + var i = 0; + foreach (var item in data3) + { + var data1 = data2.Where(m => m.BoxNo == item); + var data = data2.FirstOrDefault(m => m.BoxNo == item); + if (data == null) + { + throw new Exception($"鏈煡璇㈠埌{item}淇℃伅"); + } + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model = new BoxInfoDto(); + model.SkuNo = data.SkuNo; + model.SkuName = data.SkuName; + model.LotNo = data.LotNo; //鎵规 + model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿 + model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿 + model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸 + + model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦 + model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + + model.Qty = data1.Sum(m => m.Qty);// 鏁伴噺 + + model.BoxNo = data.BoxNo; // 绠卞彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + i++; + ////娣诲姞鎵撳嵃璁板綍 + //WmsLabelPrintLog log = new WmsLabelPrintLog(); + //log.BoxCode = data.LabelStream; + //log.CreateTime = DateTime.Now; + //log.Demo = Demo; + //log.Isdel = 0; + //log.CreateUser = userId; + //printlog.Add(log); + if (i >= 100) + { + break; + } + } + + #endregion + } + break; + case "2": + if (string.IsNullOrWhiteSpace(endBoxNo2)) + { + #region 鍗曚釜鏀爜鏍囩 + + if (string.IsNullOrWhiteSpace(boxNo2)) + { + throw new Exception($"璧峰鏀爜涓嶈兘涓虹┖"); + } + var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2); + if (data == null) + { + throw new Exception($"鏈煡璇㈠埌{boxNo2}淇℃伅"); + } + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model = new BoxInfoDto(); + model.SkuNo = data.SkuNo; + model.SkuName = data.SkuName; + model.LotNo = data.LotNo; //鎵规 + model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿 + model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿 + model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸 + + model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦 + model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + + model.Qty = data.Qty;// 鏁伴噺 + + model.BoxNo = data.BoxNo3; // 鏀彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + + ////娣诲姞鎵撳嵃璁板綍 + //WmsLabelPrintLog log = new WmsLabelPrintLog(); + //log.BoxCode = data.BoxCode1; + //log.CreateTime = DateTime.Now; + //log.Demo = Demo; + //log.Isdel = 0; + //log.CreateUser = userId; + //printlog.Add(log); + + #endregion + } + else + { + #region 澶氫釜鏀爜鏍囩 寮�濮�-缁撴潫 + + if (string.IsNullOrWhiteSpace(boxNo2)) + { + throw new Exception("璧峰鏀爜涓嶈兘涓虹┖"); + } + + var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'"; + var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql); + + if (data2.Count == 0) + { + throw new Exception($"鏈煡璇㈠埌{boxNo2}-{endBoxNo2}涓俊鎭�"); + } + + var i = 0; + foreach (var data in data2) + { + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model = new BoxInfoDto(); + model.SkuNo = data.SkuNo; + model.SkuName = data.SkuName; + model.LotNo = data.LotNo; //鎵规 + model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿 + model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿 + model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸 + + model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦 + model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + + model.Qty = data.Qty;// 鏁伴噺 + + model.BoxNo = data.BoxNo3; // 绠卞彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + i++; + ////娣诲姞鎵撳嵃璁板綍 + //WmsLabelPrintLog log = new WmsLabelPrintLog(); + //log.BoxCode = data.BoxCode1; + //log.CreateTime = DateTime.Now; + //log.Demo = Demo; + //log.Isdel = 0; + //log.CreateUser = userId; + //printlog.Add(log); + if (i >= 100) + { + break; + } + } + + #endregion + } + break; + case "3": + if (string.IsNullOrWhiteSpace(endBoxNo)) + { + if (string.IsNullOrWhiteSpace(boxNo)) + { + throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖"); + } + #region 绠辩爜鍜岀鐮佸唴鐨勬敮鐮� + + if (!string.IsNullOrWhiteSpace(boxNo2)) + { + if (string.IsNullOrWhiteSpace(endBoxNo2)) //鍗曚釜鏀爜鍜岀鐮� + { + #region 鍗曚釜鏀爜鍜岀鐮� + + var dataList = list.Where(m => m.BoxNo == boxNo); + var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2); + if (data == null) + { + throw new Exception($"鏈煡璇㈠埌{boxNo2}淇℃伅"); + } + + if (data.BoxNo != boxNo)//鍒ゆ柇绠辩爜鏄惁鐩稿悓 + { + throw new Exception($"褰撳墠鏀爜涓嶆槸绠辩爜鍐�"); + } + + + // 鐗╂枡鏉$爜淇℃伅璧嬪�� 绠辩爜 + BoxInfoDto model1 = new BoxInfoDto(); + model1.SkuNo = data.SkuNo; + model1.SkuName = data.SkuName; + model1.LotNo = data.LotNo; //鎵规 + model1.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿 + model1.Standard = data.Standard; // 瑙勬牸/鍨嬪彿 + model1.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸 + + model1.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦 + model1.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + model1.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺 + model1.BoxNo = data.BoxNo; // 绠卞彿 + + model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model1); + + // 鐗╂枡鏉$爜淇℃伅璧嬪�� 鏀爜 + BoxInfoDto model = new BoxInfoDto(); + model.SkuNo = data.SkuNo; + model.SkuName = data.SkuName; + model.LotNo = data.LotNo; //鎵规 + model.SupplierLot = data.SupplierLot; // 鍘熷巶鎵瑰彿 + model.Standard = data.Standard; // 瑙勬牸/鍨嬪彿 + model.PackageStandard = data.PackageStandard; // 鍖呰瑙勬牸 + + model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦 + model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + model.Qty = data.Qty;// 鏁伴噺 + model.BoxNo = data.BoxNo3; // 鏀彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + ////娣诲姞鎵撳嵃璁板綍 + //WmsLabelPrintLog log = new WmsLabelPrintLog(); + //log.BoxCode = data.BoxCode1; + //log.CreateTime = DateTime.Now; + //log.Demo = Demo; + //log.Isdel = 0; + //log.CreateUser = userId; + //printlog.Add(log); + #endregion + } + else//涓�绠卞唴鏌愬嚑涓敮鐮� + { + #region 鍗曚釜绠辩爜鍜屽涓敮鐮� + + var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'"; + var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql); + + if (data2.Count == 0) + { + throw new Exception($"鏈煡璇㈠埌{boxNo2}-{endBoxNo2}涓俊鎭�"); + } + + if (data2.Count(m => m.BoxNo != boxNo) > 0) + { + throw new Exception($"{boxNo2}-{endBoxNo2}涓俊鎭湁涓嶅睘浜巤boxNo}绠辩爜鍐呯殑"); + } + + var data = list.Where(m => m.BoxNo == boxNo); + var boxData = data2.FirstOrDefault(); + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model = new BoxInfoDto(); + model.SkuNo = boxData.SkuNo; + model.SkuName = boxData.SkuName; + model.LotNo = boxData.LotNo; //鎵规 + model.SupplierLot = boxData.SupplierLot; // 鍘熷巶鎵瑰彿 + model.Standard = boxData.Standard; // 瑙勬牸/鍨嬪彿 + model.PackageStandard = boxData.PackageStandard; // 鍖呰瑙勬牸 + + model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦 + model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + model.Qty = data.Sum(m => m.Qty); // 鏁伴噺 + model.BoxNo = boxData.BoxNo; // 鏀彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + + var i = 0; + foreach (var item in data2) + { + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model1 = new BoxInfoDto(); + model1.SkuNo = item.SkuNo; + model1.SkuName = item.SkuName; + model1.LotNo = item.LotNo; //鎵规 + model1.SupplierLot = item.SupplierLot; // 鍘熷巶鎵瑰彿 + model1.Standard = item.Standard; // 瑙勬牸/鍨嬪彿 + model1.PackageStandard = item.PackageStandard; // 鍖呰瑙勬牸 + + model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦 + model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + model1.Qty = item.Qty;// 鏁伴噺 + model1.BoxNo = item.BoxNo3; // 鏀彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + i++; + ////娣诲姞鎵撳嵃璁板綍 + //WmsLabelPrintLog log = new WmsLabelPrintLog(); + //log.BoxCode = item.BoxCode1; + //log.CreateTime = DateTime.Now; + //log.Demo = Demo; + //log.Isdel = 0; + //log.CreateUser = userId; + //printlog.Add(log); + if (i >= 100) + { + break; + } + } + + #endregion + } + } + else //鏁寸鏀爜鍜屼竴涓鐮� + { + #region 鏁寸鏀爜鍜屼竴涓鐮� + + var data = list.Where(m => m.BoxNo == boxNo).ToList(); + var boxData = data.FirstOrDefault(); + if (boxData == null) + { + throw new Exception($"鏈煡璇㈠埌{boxNo}绠辩爜淇℃伅"); + } + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model = new BoxInfoDto(); + model.SkuNo = boxData.SkuNo; + model.SkuName = boxData.SkuName; + model.LotNo = boxData.LotNo; //鎵规 + model.SupplierLot = boxData.SupplierLot; // 鍘熷巶鎵瑰彿 + model.Standard = boxData.Standard; // 瑙勬牸/鍨嬪彿 + model.PackageStandard = boxData.PackageStandard; // 鍖呰瑙勬牸 + + model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦 + model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + model.Qty = data.Sum(m => m.Qty); // 鏁伴噺 + model.BoxNo = boxData.BoxNo; // 鏀彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + + if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //鍒ゆ柇鏄惁鏈夋敮鐮� + { + var i = 0; + foreach (var item in data) + { + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model1 = new BoxInfoDto(); + model1.SkuNo = item.SkuNo; + model1.SkuName = item.SkuName; + model1.LotNo = item.LotNo; //鎵规 + model1.SupplierLot = item.SupplierLot; // 鍘熷巶鎵瑰彿 + model1.Standard = item.Standard; // 瑙勬牸/鍨嬪彿 + model1.PackageStandard = item.PackageStandard; // 鍖呰瑙勬牸 + + model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦 + model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + model1.Qty = item.Qty; // 鏁伴噺 + model1.BoxNo = item.BoxNo3; // 鏀彿 + + model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false); + + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model1); + i++; + ////娣诲姞鎵撳嵃璁板綍 + //WmsLabelPrintLog log = new WmsLabelPrintLog(); + //log.BoxCode = item.BoxCode1; + //log.CreateTime = DateTime.Now; + //log.Demo = Demo; + //log.Isdel = 0; + //log.CreateUser = userId; + //printlog.Add(log); + if (i >= 100) + { + break; + } + } + } + else + { + throw new Exception("褰撳墠绠卞唴娌℃湁鏀爜"); + } + #endregion + } + #endregion + } + else + { + if (string.IsNullOrWhiteSpace(boxNo)) + { + throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖"); + } + + #region 澶氫釜绠辩爜鍜屽唴鏀爜 + + var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'"; + var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql); + var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList(); + if (data3.Count == 0) + { + throw new Exception($"鏈煡璇㈠埌{boxNo}-{endBoxNo}涓俊鎭�"); + } + var i = 0; + var j = 0; + foreach (var demo in data3) + { + var data = list.Where(m => m.BoxNo == demo).ToList(); + var boxData = data.FirstOrDefault(); + if (boxData == null) + { + throw new Exception($"鏈煡璇㈠埌{demo}绠辩爜淇℃伅"); + } + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model = new BoxInfoDto(); + model.SkuNo = boxData.SkuNo; + model.SkuName = boxData.SkuName; + model.LotNo = boxData.LotNo; //鎵规 + model.SupplierLot = boxData.SupplierLot; // 鍘熷巶鎵瑰彿 + model.Standard = boxData.Standard; // 瑙勬牸/鍨嬪彿 + model.PackageStandard = boxData.PackageStandard; // 鍖呰瑙勬牸 + + model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦 + model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + model.Qty = data.Sum(m => m.Qty); // 鏁伴噺 + model.BoxNo = boxData.BoxNo; // 鏀彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model); + + j++; + if (j >= 100) + { + break; + } + if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //鍒ゆ柇鏄惁鏈夋敮鐮� + { + foreach (var item in data.OrderBy(m => m.BoxNo3).ToList()) + { + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + BoxInfoDto model1 = new BoxInfoDto(); + model1.SkuNo = item.SkuNo; + model1.SkuName = item.SkuName; + model1.LotNo = item.LotNo; //鎵规 + model1.SupplierLot = item.SupplierLot; // 鍘熷巶鎵瑰彿 + model1.Standard = item.Standard; // 瑙勬牸/鍨嬪彿 + model1.PackageStandard = item.PackageStandard; // 鍖呰瑙勬牸 + + model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦 + model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦 + model1.Qty = item.Qty;// 鏁伴噺 + model1.BoxNo = item.BoxNo3; // 鏀彿 + + model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false); + + // 娣诲姞鍒發ist闆嗗悎 + printModelList.Add(model1); + i++; + ////娣诲姞鎵撳嵃璁板綍 + //WmsLabelPrintLog log = new WmsLabelPrintLog(); + //log.BoxCode = item.BoxCode1; + //log.CreateTime = DateTime.Now; + //log.Demo = Demo; + //log.Isdel = 0; + //log.CreateUser = userId; + //printlog.Add(log); + if (i >= 100) + { + break; + } + } + } + + } + + #endregion + } + break; + default: + throw new Exception("璇烽�夋嫨琛ユ墦绫诲瀷"); + } + + #endregion + + return printModelList; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } } } -- Gitblit v1.8.0