From eaa41fed2f107ce160e899bbc2900bb19124d736 Mon Sep 17 00:00:00 2001 From: Demo <Demo@DESKTOP-CPA90BF> Date: 星期六, 03 二月 2024 17:18:48 +0800 Subject: [PATCH] 补打标签功能开发 --- Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 565 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 565 insertions(+), 0 deletions(-) diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs index 866b3b5..db0a3dc 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs @@ -966,6 +966,571 @@ } } + // 琛ユ墦鏍囩 + 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,100, 25); + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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, 100, 25); + + + // 娣诲姞鍒發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, 100, 25); + + // 娣诲姞鍒發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; // 鏀彿 + + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); + + // 娣诲姞鍒發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 + + //dataContext.WmsLabelPrintLog.InsertAllOnSubmit(printlog); + // dataContext.SubmitChanges(); + // return printModel; + return printModelList; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } } } -- Gitblit v1.8.0