From ecb386a4201213c6635f28f9e9e02e3faf217b51 Mon Sep 17 00:00:00 2001 From: yuyou_x <2336760928@qq.com> Date: 星期六, 16 三月 2024 11:08:34 +0800 Subject: [PATCH] 修改储位图例柱状图以及圆形图显示数据问题。 --- Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 1319 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 1,059 insertions(+), 260 deletions(-) diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs index e9f9f90..9b74c1f 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Linq.Expressions; using Model.ModelDto.BllAsnDto; +using Model.ModelVm.BllAsnVm; using Utility.Tools; using WMS.BLL.LogServer; using WMS.DAL; @@ -263,7 +264,7 @@ .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime >= Convert.ToDateTime(model.ProductionTime)) .AndIF(!string.IsNullOrWhiteSpace(model.InspectMark), it => it.InspectMark == model.InspectMark.Trim()) .AndIF(!string.IsNullOrWhiteSpace(model.BitBoxMark), it => it.BitBoxMark == model.BitBoxMark.Trim()) - .AndIF(!string.IsNullOrWhiteSpace(model.Origin), it => it.Origin == model.Origin.Trim()) + .AndIF(!string.IsNullOrWhiteSpace(model.Origin), it => model.Origin.Trim().Contains(it.Origin)) .And(m => m.SkuNo != "100099" && m.IsDel == "0" && m.Status == "0") .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� var total = 0; @@ -399,9 +400,136 @@ } + + //鑾峰彇鏍囩绠辩爜淇℃伅 + public List<BoxInfoDto> GetLabelBoxList(LabelBoxInfoVm model, out int count) + { + try + { + Expression<Func<BllBoxInfo, bool>> item = Expressionable.Create<BllBoxInfo>() + .AndIF(!string.IsNullOrWhiteSpace(model.AsnNo), it => it.ASNNo.Contains(model.AsnNo.Trim())) + .AndIF(!string.IsNullOrWhiteSpace(model.BoxNo), it => it.BoxNo.Contains(model.BoxNo.Trim())) + .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.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" && it.Origin == "WMS鐢熸垚") + .ToExpression(); + + var total = 0; + var data = GetAllWhereAsync(item) + .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) + .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) + .Select((a, b, c) => new BoxInfoDto() + { + Id = a.Id, + ASNNo = a.ASNNo, + ASNDetailNo = a.ASNDetailNo, + BoxNo = a.BoxNo, + BoxNo2 = a.BoxNo2, + BoxNo3 = a.BoxNo3, + Qty = a.Qty, + FullQty = a.FullQty, + + SkuNo = a.SkuNo, + SkuName = a.SkuName, + Standard = a.Standard, + PackageStandard = a.PackageStandard, + + LotNo = a.LotNo, + LotText = a.LotText, + + Status = a.Status, + SupplierLot = a.SupplierLot, + + ProductionTime = a.ProductionTime, + ExpirationTime = a.ExpirationTime, + StoreTime = a.StoreTime, + CompleteTime = a.CompleteTime, + + InspectMark = a.InspectMark, + BitBoxMark = a.BitBoxMark, + InspectStatus = a.InspectStatus, + + Origin = a.Origin, + QtyCount = a.QtyCount, + QtyOrd = a.QtyOrd, + + + CreateUserName = b.RealName, + UpdateUserName = c.RealName, + CreateTime = a.CreateTime, + UpdateTime = a.UpdateTime + + }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total); + count = total; + return data; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + //鑾峰彇鏍囩妯℃澘鏍规嵁鍏ュ簱鍗曟槑缁咺D + public BoxInfoDto GetLabelBoxModel(int id) + { + try + { + var asnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == id && m.IsDel == "0"); + if (asnDetail == null) + { + throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅锛岃鏍稿疄"); + } + + var packInfo = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnDetail.PackagNo); + if (packInfo == null) + { + throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏涓殑鐗╂枡鍖呰淇℃伅"); + } + + var str = ""; + + if (!string.IsNullOrWhiteSpace(packInfo.L1Name)) + { + str += packInfo.L1Num + "/" + packInfo.L1Name; + } + if (!string.IsNullOrWhiteSpace(packInfo.L2Name)) + { + str += "-" + packInfo.L2Num + "/" + packInfo.L2Name; + } + if (!string.IsNullOrWhiteSpace(packInfo.L3Name)) + { + str += "-" + packInfo.L3Num + "/" + packInfo.L3Name; + } + if (!string.IsNullOrWhiteSpace(packInfo.L4Name)) + { + str += "-" + packInfo.L4Num + "/" + packInfo.L4Name; + } + if (!string.IsNullOrWhiteSpace(packInfo.L5Name)) + { + str += "-" + packInfo.L5Num + "/" + packInfo.L5Name; + } + + + var data = new BoxInfoDto(); + data.SkuNo = asnDetail.SkuNo; + data.SkuName = asnDetail.SkuName; + data.Standard = asnDetail.Standard; + data.SupplierLot = asnDetail.SupplierLot; + data.PackageStandard = str; + return data; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + //鑾峰彇鏍囩淇℃伅(鐢熸垚鏍囩) - public List<LabelBoxDto> AddLabelBoxReturn(int imId, string isReset, decimal arriveQty, string skuName, string standard, string packStandard, string skuNo, - string supplierLot, string productionTime, string expirationTime, string storeTime, int userId) + public List<BllBoxInfo> AddLabelBox(int imId, string isReset, decimal arriveQty, string productionTime, string expirationTime, string storeTime,string supplierLot, int userId) { try { @@ -418,15 +546,37 @@ { throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅"); } - //鐗╂枡 - var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == asnList.SkuNo); + var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnList.PackagNo); if (pack == null) { throw new Exception("鏈煡璇㈠埌褰撳墠鍗曟嵁涓墿鏂欑殑鍖呰淇℃伅"); } + + var packStr = ""; + + if (!string.IsNullOrWhiteSpace(pack.L1Name)) + { + packStr += pack.L1Num + "/" + pack.L1Name; + } + if (!string.IsNullOrWhiteSpace(pack.L2Name)) + { + packStr += "-" + pack.L2Num + "/" + pack.L2Name; + } + if (!string.IsNullOrWhiteSpace(pack.L3Name)) + { + packStr += "-" + pack.L3Num + "/" + pack.L3Name; + } + if (!string.IsNullOrWhiteSpace(pack.L4Name)) + { + packStr += "-" + pack.L4Num + "/" + pack.L4Name; + } + if (!string.IsNullOrWhiteSpace(pack.L5Name)) + { + packStr += "-" + pack.L5Num + "/" + pack.L5Name; + } //鏍囩琛� - var label = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == imId).ToList(); + var label = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList(); #endregion @@ -436,40 +586,14 @@ var bNum = 0;//绠辩墿鍝佹暟閲� var zNum = 0;//鏀墿鍝佹暟閲� var packLevel = 0; - var isGo = true; - - if (pack.L5Num.HasValue) - { - if (pack.L5Name != "鎵�") - { - isGo = false; - packLevel = 5; - bNum = Convert.ToInt32(pack.L5Num); - } - } - if (pack.L4Num.HasValue && isGo) - { - if (pack.L4Name != "鎵�") - { - isGo = false; - packLevel = 4; - bNum = Convert.ToInt32(pack.L4Num); - } - } - if (pack.L3Num.HasValue && isGo) - { - if (pack.L4Name != "鎵�") - { - isGo = false; - packLevel = 3; - bNum = Convert.ToInt32(pack.L3Num); - } - } + if (pack.L2Num.HasValue) { - packLevel = 2; - bNum = Convert.ToInt32(pack.L2Num); - + if (pack.L2Name != "鎵�") + { + packLevel = 2; + bNum = Convert.ToInt32(pack.L2Num); + } } if (pack.L1Num.HasValue) { @@ -481,36 +605,44 @@ zNum = Convert.ToInt32(pack.L1Num); } - if (packLevel <= 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗� + if (packLevel < 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗� { - packLevel = 1; + throw new Exception("鍖呰淇℃伅鏈夎锛屽皬浜庝竴绾�"); } #endregion + var modelList = new List<BllBoxInfo>(); + var addLotNo = ""; + if (arriveQty <= 0) + { + throw new Exception("鍒拌揣鏁伴噺涓嶈兘灏忎簬绛変簬0!"); + } + Db.BeginTran(); 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; //鐢熶骇鏉$爜鏁伴噺 @@ -529,23 +661,39 @@ string maxBoxCode = ""; //绠辩爜鍙� // 鐢熸垚鑷紪鎵瑰彿 string toDayTime = DateTime.Now.ToString("yyyyMMdd"); - var diJiJian = 0; - - var maxLotNo = label.Max(a => a.LotNo); - var maxBoxNo = label.Max(a => a.BoxNo); + if (isReset == "0") { - - maxLotNoStr = maxLotNo; - maxBoxCode = maxBoxNo; - if (string.IsNullOrWhiteSpace(maxLotNoStr)) + //鍒ゆ柇鍗曟嵁鏄惁鏄綑鏂欓��鍥炲崟 + if (asn.Type == "4") { - maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; + maxLotNoStr = asnList.LotNo; + maxBoxCode = label.Where(m=>m.LotNo == maxLotNoStr).Max(a => a.BoxNo); + if (string.IsNullOrWhiteSpace(maxLotNoStr)) + { + throw new Exception("杞﹂棿浣欐枡閫�鍥炲崟鎹壒娆′笉鑳戒负绌�"); + } } + else + { + var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList(); + if (labelCount.Count <= 0) + { + throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱"); + } + maxLotNoStr = labelCount.Max(a => a.LotNo); + + if (string.IsNullOrWhiteSpace(maxLotNoStr)) + { + maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; + } + maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo); + } + } 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"; @@ -566,91 +714,73 @@ } } + addLotNo = maxLotNoStr; #endregion - var modelList = new List<LabelBoxDto>(); + for (int i = 1; i <= labelNum; i++) { - // 鐗╂枡鏉$爜淇℃伅璧嬪�� - LabelBoxDto model = new LabelBoxDto(); - model.AsnDetailNo = imId; - model.SkuNo = asnList.SkuNo; - model.SkuName = asnList.SkuName; - - model.SupplierName = asn.CustomerName; // 渚涘簲鍟� - - model.Standard = asnList.Standard; // 瑙勬牸 - model.PackageStandard = packStandard; - model.SupplierLot = supplierLot; // 鍘傚鎵瑰彿 - model.LotNo = maxLotNoStr; //鎵规 - - model.ProductionTime = DateTime.Parse(productionTime); // 鐢熶骇鏃ユ湡 - model.StoreTime = DateTime.Parse(storeTime); // 鍌ㄥ瓨鏈熻嚦 - model.ExpirationTime = DateTime.Parse(expirationTime); // 鏈夋晥鏈熻嚦/璐瓨鏈� + decimal boxQty = 0; if (i == labelNum) { // 鏈�鍚庝竴涓潯鐮� var s = zNum * (i - 1); if (zNum > qty - s) { - model.Qty = qty - s;// 鏁伴噺 + boxQty = qty - s;// 鏁伴噺 } else { - model.Qty = zNum;// 鏁伴噺 + boxQty = zNum;// 鏁伴噺 } } else { - model.Qty = zNum; // 鏁伴噺 + boxQty = zNum; // 鏁伴噺 } - - if (maxBoxCode == "") + //鑾峰彇绠辩爜 + if (string.IsNullOrWhiteSpace(maxBoxCode)) { - var str = model.LotNo + "000001"; - model.BoxNo = str; // 鏀彿 鎵瑰彿+ 娴佹按 2302010001000001 - maxBoxCode = model.BoxNo; + var str = "B"+maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按 2302010001000001 + maxBoxCode = str; } else { - model.BoxNo = maxBoxCode.Substring(0, 10) + (int.Parse(maxBoxCode.Substring(10, 6)) + 1).ToString().PadLeft(6, '0'); - maxBoxCode = model.BoxNo; - } - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 80, 50); - - // 娣诲姞鍒發ist闆嗗悎 - modelList.Add(model); - + maxBoxCode = maxBoxCode.Substring(0, 11) + (int.Parse(maxBoxCode.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); + } + // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� - var labelModel = new BllLabelBoxNo() + var labelModel = new BllBoxInfo() { ASNNo = asnList.ASNNo, ASNDetailNo = asnList.Id, - BoxNo = model.BoxNo, - ParentBoxNo = "", - Qty = model.Qty, - SkuNo = model.SkuNo, - SkuName = model.SkuName, - Standard = model.Standard, - PackageStandard = model.PackageStandard, + BoxNo = maxBoxCode, + Qty = int.Parse(boxQty.ToString()), + FullQty = bNum, + Status = "0", + SkuNo = asnList.SkuNo, + SkuName = asnList.SkuName, + LotNo = maxLotNoStr, + Standard = asnList.Standard, + PackageStandard = packStr, + SupplierLot = supplierLot, + InspectMark = "0", + BitBoxMark = bNum > boxQty ? "1":"0", + InspectStatus = "", - LotNo = model.LotNo, - SupplierName = asn.CustomerName, - ProductionTime = model.ProductionTime, - SupplierLot = model.SupplierLot, - StoreTime = model.StoreTime, - ExpirationTime = model.ExpirationTime, - IsUse = "0", - Level = "1", + ProductionTime = DateTime.Parse(productionTime), + StoreTime = DateTime.Parse(storeTime), + ExpirationTime = DateTime.Parse(expirationTime), + Origin = "WMS鐢熸垚", CreateUser = userId, CreateTime = DateTime.Now, }; Db.Insertable(labelModel).ExecuteCommand(); - + modelList.Add(labelModel); } #endregion @@ -660,25 +790,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()); @@ -697,20 +829,38 @@ string toDayTime2 = DateTime.Now.ToString("yyyyMMdd"); if (isReset == "0") { - var maxCode = label.Max(a => a.LotNo); - var boxCode1 = label.Where(m => m.Level == "1").Max(a => a.BoxNo);//绠卞彿 - var boxCode2 = label.Where(m => m.Level == "2").Max(a => a.BoxNo);//鏀彿 - maxCodestr2 = maxCode; - maxboxcode2 = boxCode1; - maxboxcode3 = boxCode2; - if (string.IsNullOrWhiteSpace(maxCodestr2)) + //鍒ゆ柇鍗曟嵁鏄惁鏄綑鏂欓��鍥炲崟 + if (asn.Type == "4") { - maxCodestr2 = toDayTime2.Substring(2, 6) + "0001"; + maxCodestr2 = asnList.LotNo; + maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo); + maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//鏀彿 + if (string.IsNullOrWhiteSpace(maxCodestr2)) + { + throw new Exception("杞﹂棿浣欐枡閫�鍥炲崟鎹壒娆′笉鑳戒负绌�"); + } } + else + { + var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList(); + if (labelCount.Count <= 0) + { + throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱"); + } + maxCodestr2 = labelCount.Max(a => a.LotNo); ; + + if (string.IsNullOrWhiteSpace(maxCodestr2)) + { + maxCodestr2 = toDayTime2.Substring(2, 6) + "0001"; + } + maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo);//绠卞彿; + maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//鏀彿; + } + } 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"; @@ -731,61 +881,43 @@ } } + addLotNo = maxCodestr2; #endregion - var modelList = new List<LabelBoxDto>(); + for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩 { - // 鐗╂枡鏉$爜淇℃伅璧嬪�� - LabelBoxDto model = new LabelBoxDto(); - model.AsnDetailNo = imId; - model.SkuNo = asnList.SkuNo; - model.SkuName = asnList.SkuName; - - model.Standard = asnList.Standard; // 瑙勬牸 - model.PackageStandard = packStandard; - - model.SupplierLot = supplierLot; // 鍘傚鎵瑰彿 - model.LotNo = maxCodestr2; //鎵规 - - model.ProductionTime = DateTime.Parse(productionTime); // 鐢熶骇鏃ユ湡 - model.StoreTime = DateTime.Parse(storeTime); // 鍌ㄥ瓨鏈熻嚦 - model.ExpirationTime = DateTime.Parse(expirationTime); // 鏈夋晥鏈熻嚦/璐瓨鏈� + //绠卞唴鏁伴噺 + decimal boxQty = 0; if (i == labelNum2) { // 鏈�鍚庝竴涓潯鐮� var s = bNum * (i - 1); if (bNum > qty2 - s) { - model.Qty = qty2 - s;// 鏁伴噺 + boxQty = qty2 - s;// 鏁伴噺 } else { - model.Qty = bNum;// 鏁伴噺 + boxQty = bNum;// 鏁伴噺 } } else { - model.Qty = bNum; // 鏁伴噺 + boxQty = bNum; // 鏁伴噺 } - if (maxboxcode2 == "") + //鑾峰彇绠辩爜 + if (string.IsNullOrWhiteSpace(maxboxcode2)) { - maxboxcode2 = model.LotNo + "000001"; - model.BoxNo = maxboxcode2; // 绠卞彿 鎵瑰彿+绗嚑绠� - maxboxcode2 = model.BoxNo; + maxboxcode2 = "B"+maxCodestr2 + "000001"; // 绠卞彿 鎵瑰彿+绗嚑绠� } else { - model.BoxNo = maxboxcode2.Substring(0, 10) + (int.Parse(maxboxcode2.Substring(10, 6)) + 1).ToString().PadLeft(6, '0'); - maxboxcode2 = model.BoxNo; + maxboxcode2 = maxboxcode2.Substring(0, 11) + (int.Parse(maxboxcode2.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); } - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 80, 50); - - // 娣诲姞鍒發ist闆嗗悎 - modelList.Add(model); - + //鑾峰彇绠卞唴鏀爣绛炬暟閲� if (i == labelNum2) { var isGo2 = false; @@ -796,16 +928,11 @@ { break; } - var d = zNum; - if (i == labelNum2) + var s = bNum * (i - 1); + var s2 = zNum * (j - 1); + if (zNum >= qty2 - s - s2) { - var s = bNum * (i - 1); - var s2 = zNum * (j - 1); - if (zNum >= qty2 - s - s2) - { - d = (int)(qty2 - s - s2); // 鏁伴噺 - isGo2 = true; - } + isGo2 = true; } sl++; } @@ -814,99 +941,61 @@ for (int j = 1; j <= labelNumZ2; j++)//鏈�灏忓崟浣嶆爣绛� { - if (isGo) - { - break; - } - var d = zNum; + + decimal d = zNum; if (i == labelNum2) { var s = bNum * (i - 1); var s2 = zNum * (j - 1); if (zNum >= qty2 - s - s2) { - d = (int)(qty2 - s - s2); // 鏁伴噺 - isGo = true; + d = qty2 - s - s2; // 鏁伴噺 } } - //// 鐗╂枡鏉$爜淇℃伅璧嬪�� - //LabelPrint5Model model2 = new LabelPrint5Model(); - //model2.ImportId = imId; - //model2.OuterBillCode = list.OuterBillCode; - //model2.ImportBillCode = list.ImportBillCode; - //model2.SkuNo = list.GoodsCode; - //model2.SkuName = list.GoodsName; - //model2.QtyCount = (int)labelNumZ2; // 鎬讳欢鏁�(int)labelNumZ2 + + if (string.IsNullOrWhiteSpace(maxboxcode3)) + { + maxboxcode3 = "Z"+maxCodestr2 + "0001"; // 鏀彿 鎵瑰彿+绗嚑绠� + } + else + { + maxboxcode3 = maxboxcode3.Substring(0, 11) + (int.Parse(maxboxcode3.Substring(11, 4)) + 1).ToString().PadLeft(4, '0'); + } - //model2.SupplierName = supplierName; // 鐢熶骇鍘傚 - //model2.ProductionDate = productionDate; // 鐢熶骇鏃ユ湡 - //model2.SapSkuNo = sapNo; // SAP浠g爜 - //model2.Standard = good.GoodsStandard; // 瑙勬牸 - //model2.SupplierLot = supplierLot; // 鍘傚鎵瑰彿 + var ssss = d.ToString("0"); + var sss = int.Parse(ssss); - //model2.LotNo = maxCodestr2; //鎵规 + // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� + var labelModel = new BllBoxInfo() + { + ASNNo = asnList.ASNNo, + ASNDetailNo = asnList.Id, + BoxNo = maxboxcode2, + BoxNo3 = maxboxcode3, + Qty = sss, + FullQty = bNum, + Status = "0", + SkuNo = asnList.SkuNo, + SkuName = asnList.SkuName, + LotNo = maxCodestr2, + Standard = asnList.Standard, + PackageStandard = packStr, + SupplierLot = asnList.SupplierLot, + InspectMark = "0", + BitBoxMark = bNum > boxQty ? "1" : "0", + InspectStatus = "0", + ProductionTime = DateTime.Parse(productionTime), + StoreTime = DateTime.Parse(storeTime), + ExpirationTime = DateTime.Parse(expirationTime), - //model2.InspectTime = inspectTime; // 澶嶉獙鏈熻嚦 - //model2.ExpirationTime = expirationTime; // 鏈夋晥鏈熻嚦/璐瓨鏈� - //model2.ExpirationType = good.GoodsTemp; // 璐瓨鏉′欢 - //model2.Qty = d; // 鏁伴噺 + Origin = "WMS鐢熸垚", + CreateUser = userId, + CreateTime = DateTime.Now, + }; - //model2.QtyOrd = j; // 绗嚑浠� - //if (maxboxcode3 == "") - //{ - // var str = mesGood.PadRight(16, ' ') + model.LotNo.PadRight(12, ' ') + "0001"; - // model2.BoxCode = str; // 鏀彿 鎵瑰彿+绗嚑绠� - // maxboxcode3 = model2.BoxCode; - //} - //else - //{ - // model2.BoxCode = maxboxcode3.Substring(0, 28) + (int.Parse(maxboxcode3.Substring(28, 4)) + 1).ToString().PadLeft(4, '0'); - // maxboxcode3 = model2.BoxCode; - //} - - //model2.imageStr = Utility.Extra.BarcodeHelper.GetQrCodeBase64(model2.BoxCode, 85, 85); - //// 娣诲姞鍒發ist闆嗗悎 - - //if (printModel.Count(m => m.BoxCode.Length > 17) <= 100)//鎺掗櫎寰呯鐮佸垽鏂敮鐮佹槸鍚﹀皬浜�100 - //{ - // printModel.Add(model2); - //} - //var guid = Guid.NewGuid().ToString("N"); - //// 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� - //var LabelModel2 = new LabelPrint - //{ - // LabelID = guid, - // LabelStream = model.BoxCode, - // BoxCode1 = model2.BoxCode, - // GoodsCode = model2.SkuNo, - // GoodsName = model2.SkuName, - // GoodsStandard = model2.Standard, - // ImportLotNo = model2.LotNo, - // SupplierName = model2.SupplierName, - // ImportId = model2.ImportId, - // OuterBillCode = model2.OuterBillCode, - // ImportBillCode = model2.ImportBillCode, - // ProductionDate = model2.ProductionDate, - // SapSkuNo = model2.SapSkuNo, - // Qty = model2.Qty, - // SupplierLot = model2.SupplierLot, - // InspectTime = model2.InspectTime, - // ExpirationTime = model2.ExpirationTime, - // QtyCount = model2.QtyCount, - // QtyOrd = model2.QtyOrd, - // ExpirationType = model2.ExpirationType, - // BoxNum = bNum,//model.Qty, - - // BulkTank = model.Qty == bNum ? 0 : 1,//闆跺ご绠� - // BulkCase = 0,//闆跺ご鐩� - - // CreateUser = createUser, - // CreateTime = DateTime.Now, - // IsUse = 0 - //}; - - //DataContext.LabelPrint.InsertOnSubmit(LabelModel2); + Db.Insertable(labelModel).ExecuteCommand(); + modelList.Add(labelModel); } @@ -914,11 +1003,589 @@ #endregion } - - //return printModel; + 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(); + } + } + Db.CommitTran(); + return modelList; - throw new NotImplementedException(); + //throw new NotImplementedException(); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + // 琛ユ墦鏍囩 + 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) { @@ -926,6 +1593,138 @@ } } + //鏍规嵁鍏ュ簱鍗曞彿杩囧幓鍗曟嵁涓嬫墍鏈夋壒娆″彿 + public List<string> GetLotNoListByAsn(string asnNo) + { + try + { + var data = new List<string>(); + var asnList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList(); + if (asnList.Count == 0) + { + throw new Exception("鏈煡璇㈠埌璇ュ崟鎹彿鐨勪俊鎭�"); + } + + foreach (var item in asnList) + { + if (string.IsNullOrWhiteSpace(item.LotNo)) + { + continue; + } + + var strList = item.LotNo.Split(";"); + foreach (var str in strList) + { + if (string.IsNullOrWhiteSpace(str)) + { + continue; + } + data.Add(str); + } + } + + return data; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + //鍒犻櫎鍗曟嵁涓嬪崟涓垨澶氫釜鎵规鐨勬爣绛� + public void DelLabelByAsnNo(string asnNo,string lotNo, int userId) + { + try + { + var asnList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList(); + if (asnList.Count == 0) + { + throw new Exception("鏈煡璇㈠埌璇ュ崟鎹彿鐨勪俊鎭�"); + } + + Db.BeginTran(); + + //鎵规涓虹┖锛氬綋鍓嶅崟鎹笅鎵�鏈夋壒娆$殑鏍囩鍏ㄩ儴鍒犻櫎锛� 鏈夋壒娆★細浼ゅ褰撳墠鍗曟嵁涓嬪綋鍓嶆壒娆$殑鏍囩 + if (string.IsNullOrWhiteSpace(lotNo)) //鍒犻櫎鍏ㄩ儴鏍囩 + { + var labelList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList(); + if (labelList.Count(m => m.Status != "0") >= 1) + { + throw new Exception("褰撳墠鍗曟嵁鎵规鐨勬爣绛惧凡鏈夊凡浣跨敤锛屼笉鑳藉垹闄�"); + } + + foreach (var item in asnList) + { + if (string.IsNullOrWhiteSpace(item.LotNo)) + { + continue; + } + + item.LotNo = ""; + Db.Updateable(item).ExecuteCommand(); + + } + Db.Deleteable(labelList).ExecuteCommand(); + } + else //鍒犻櫎鍥哄畾鎵规鏍囩 + { + var labelList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.LotNo == lotNo).ToList(); + if (labelList.Count(m=>m.Status != "0") >= 1 ) + { + throw new Exception("褰撳墠鍗曟嵁鎵规鐨勬爣绛惧凡鏈夊凡浣跨敤锛屼笉鑳藉垹闄�"); + } + + foreach (var item in asnList) + { + if (string.IsNullOrWhiteSpace(item.LotNo) || item.LotNo!=lotNo) + { + continue; + } + + var strList = item.LotNo.Split(";"); + var updateLotNo = ""; + foreach (var str in strList) + { + if (string.IsNullOrWhiteSpace(str) || str == lotNo) + { + continue; + } + + if (string.IsNullOrWhiteSpace(updateLotNo)) + { + updateLotNo = str; + } + else + { + updateLotNo += ";" + str; + } + + } + + item.LotNo = updateLotNo; + Db.Updateable(item).ExecuteCommand(); + + } + Db.Deleteable(labelList).ExecuteCommand(); + } + + Db.CommitTran(); + + var msg = $"鍒犻櫎浜嗗崟鎹彿锛歿asnNo}"; + if (!string.IsNullOrWhiteSpace(lotNo)) + { + msg += $"銆佹壒娆″彿锛歿lotNo}"; + } + msg += "鐨勬爣绛句俊鎭�"; + + new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鐗╂枡鏍囩", asnNo, "鍒犻櫎", msg, userId); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } } } -- Gitblit v1.8.0