From 157abc191c34e57c1b958ae74fc3de6518ca8a30 Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期五, 28 二月 2025 11:06:36 +0800 Subject: [PATCH] 修改客户需求 --- Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 543 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 444 insertions(+), 99 deletions(-) diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs index db0a3dc..650d65e 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs @@ -15,6 +15,10 @@ using WMS.Entity.Context; using WMS.Entity.SysEntity; using WMS.IBLL.IBllAsnServer; +using ZXing; +using Model.ModelDto.BllCheckDto; +using WMS.Entity.BllCheckEntity; +using System.Data.SqlTypes; namespace WMS.BLL.BllAsnServer { @@ -264,7 +268,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; @@ -296,6 +300,7 @@ CreateTime = a.CreateTime, UpdateTime = a.UpdateTime }) + .OrderByDescending(a=>a.BoxNo) .OrderByDescending(a => a.CreateTime) .ToOffsetPage(model.Page, model.Limit, ref total); count = total; @@ -412,17 +417,19 @@ .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; 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() + .LeftJoin<SysMaterials>((a, b, c,d) => a.SkuNo == d.SkuNo) + .LeftJoin<SysUnit>((a, b, c, d,e) => d.UnitNo == e.UnitNo) + .Select((a, b, c,d,e) => new BoxInfoDto() { Id = a.Id, ASNNo = a.ASNNo, @@ -440,6 +447,8 @@ LotNo = a.LotNo, LotText = a.LotText, + + unit = e.UnitName, Status = a.Status, SupplierLot = a.SupplierLot, @@ -463,7 +472,7 @@ CreateTime = a.CreateTime, UpdateTime = a.UpdateTime - }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total); + }).OrderBy(a => a.BoxNo).OrderByDescending(a => a.CreateTime).ToOffsetPage(model.Page, model.Limit, ref total); count = total; return data; } @@ -520,6 +529,7 @@ data.Standard = asnDetail.Standard; data.SupplierLot = asnDetail.SupplierLot; data.PackageStandard = str; + data.SupplierLot = asnDetail.SupplierLot; return data; } catch (Exception e) @@ -529,18 +539,51 @@ } //鑾峰彇鏍囩淇℃伅(鐢熸垚鏍囩) - public List<BllBoxInfo> AddLabelBox(int imId, string isReset, decimal arriveQty, 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 - { + { #region 鍗曟嵁銆佺墿鏂欍�佸寘瑁呫�佹爣绛句俊鎭幏鍙� - + if (string.IsNullOrWhiteSpace(productionTime)) + { + throw new Exception("鐢熶骇鏃ユ湡涓嶈兘涓虹┖"); + } + if (!string.IsNullOrWhiteSpace(expirationTime) && !string.IsNullOrWhiteSpace(storeTime)) + { + throw new Exception("鏈夋晥鏈熷拰鍌ㄥ瓨鏈熶笉鑳藉悓鏃跺~鍐�"); + } + if (isReset != "0") + { + throw new Exception("涓嶅彲閲嶇疆鎵规"); + } + DateTime proTime; + DateTime expTime; + DateTime stoTime; + var bl1= DateTime.TryParse(productionTime, out proTime); + var bl2= DateTime.TryParse(expirationTime, out expTime); + var bl3= DateTime.TryParse(storeTime, out stoTime); + if (!bl1) + { + throw new Exception("鐢熶骇鏃ユ湡杞崲澶辫触"); + } + if (!bl2 && !string.IsNullOrWhiteSpace(expirationTime)) + { + throw new Exception("鏈夋晥鏈熻浆鎹㈠け璐�"); + } + if (!bl3 && !string.IsNullOrWhiteSpace(storeTime)) + { + throw new Exception("鍌ㄥ瓨鏈熻浆鎹㈠け璐�"); + } var asnList = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == imId && m.IsDel == "0"); if (asnList == null) { throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅"); } + //if (asnList.LotNo.Length != 10 && asnList.LotNo.Length != 11 && asnList.LotNo.Length != 12) + //{ + // throw new Exception("鍗曟嵁杩涘巶缂栧彿浣嶆暟闀垮害閿欒"); + //} var asn = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == asnList.ASNNo && m.IsDel == "0"); if (asn == null) { @@ -576,7 +619,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 @@ -605,36 +648,44 @@ zNum = Convert.ToInt32(pack.L1Num); } - if (packLevel <= 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗� + if (packLevel < 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�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; //鐢熶骇鏉$爜鏁伴噺 @@ -653,23 +704,39 @@ 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; - 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); + maxLotNoStr = asnList.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); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿 20241013 if (string.IsNullOrWhiteSpace(maxCode)) { maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; @@ -680,7 +747,7 @@ var timeStr = toDayTime.Substring(2, 6); if (lotStr == timeStr) { - maxLotNoStr = toDayTime.Substring(2, 6) + (int.Parse(maxCode.Substring(6, 4)) + 1).ToString().PadLeft(4, '0'); + maxLotNoStr = toDayTime.Substring(2, 6) + (int.Parse(maxCode.Substring(maxCode.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); } else { @@ -690,9 +757,10 @@ } } + addLotNo = maxLotNoStr; #endregion - + for (int i = 1; i <= labelNum; i++) { @@ -716,14 +784,14 @@ } //鑾峰彇绠辩爜 - if (maxBoxCode == "") + if (string.IsNullOrWhiteSpace(maxBoxCode)) { var str = "B"+maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按 2302010001000001 maxBoxCode = str; } else { - maxBoxCode = maxBoxCode.Substring(0, 11) + (int.Parse(maxBoxCode.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); + maxBoxCode = maxBoxCode.Substring(0, maxBoxCode.Length - 6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0'); } // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� @@ -732,7 +800,7 @@ ASNNo = asnList.ASNNo, ASNDetailNo = asnList.Id, BoxNo = maxBoxCode, - Qty = int.Parse(boxQty.ToString()), + Qty = boxQty, FullQty = bNum, Status = "0", SkuNo = asnList.SkuNo, @@ -740,20 +808,25 @@ LotNo = maxLotNoStr, Standard = asnList.Standard, PackageStandard = packStr, - SupplierLot = asnList.SupplierLot, + SupplierLot = supplierLot, InspectMark = "0", BitBoxMark = bNum > boxQty ? "1":"0", - InspectStatus = "", + InspectStatus = "0", - ProductionTime = DateTime.Parse(productionTime), - StoreTime = DateTime.Parse(storeTime), - ExpirationTime = DateTime.Parse(expirationTime), - + ProductionTime = proTime, + Origin = "WMS鐢熸垚", CreateUser = userId, CreateTime = DateTime.Now, }; - + if (bl2) + { + labelModel.ExpirationTime = expTime; + } + if (bl3) + { + labelModel.StoreTime = stoTime; + } Db.Insertable(labelModel).ExecuteCommand(); modelList.Add(labelModel); } @@ -765,25 +838,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,20 +877,39 @@ string toDayTime2 = DateTime.Now.ToString("yyyyMMdd"); if (isReset == "0") { - var maxCode = label.Max(a => a.LotNo); - var boxCode1 = label.Max(a => a.BoxNo);//绠卞彿 - var boxCode2 = label.Max(a => a.BoxNo3);//鏀彿 - 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); ; + maxCodestr2 = asnList.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"; @@ -836,9 +930,10 @@ } } + addLotNo = maxCodestr2; #endregion - + for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩 { @@ -863,13 +958,13 @@ } //鑾峰彇绠辩爜 - if (maxboxcode2 == "") + if (string.IsNullOrWhiteSpace(maxboxcode2)) { maxboxcode2 = "B"+maxCodestr2 + "000001"; // 绠卞彿 鎵瑰彿+绗嚑绠� } else { - maxboxcode2 = maxboxcode2.Substring(0, 11) + (int.Parse(maxboxcode2.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); + maxboxcode2 = maxboxcode2.Substring(0, maxboxcode2.Length - 6) + (int.Parse(maxboxcode2.Substring(maxboxcode2.Length-6, 6)) + 1).ToString().PadLeft(6, '0'); } //鑾峰彇绠卞唴鏀爣绛炬暟閲� if (i == labelNum2) @@ -907,14 +1002,17 @@ } } - if (maxboxcode3 == "") + 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'); + maxboxcode3 = maxboxcode3.Substring(0, maxboxcode3.Length - 4) + (int.Parse(maxboxcode3.Substring(maxboxcode3.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); } + + //var ssss = d.ToString("0"); + //var sss = int.Parse(ssss); // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� var labelModel = new BllBoxInfo() @@ -923,7 +1021,7 @@ ASNDetailNo = asnList.Id, BoxNo = maxboxcode2, BoxNo3 = maxboxcode3, - Qty = int.Parse(d.ToString()), + Qty = d, FullQty = bNum, Status = "0", SkuNo = asnList.SkuNo, @@ -931,20 +1029,25 @@ LotNo = maxCodestr2, Standard = asnList.Standard, PackageStandard = packStr, - SupplierLot = asnList.SupplierLot, + SupplierLot = supplierLot, InspectMark = "0", BitBoxMark = bNum > boxQty ? "1" : "0", InspectStatus = "0", - ProductionTime = DateTime.Parse(productionTime), - StoreTime = DateTime.Parse(storeTime), - ExpirationTime = DateTime.Parse(expirationTime), - + ProductionTime = proTime, + Origin = "WMS鐢熸垚", CreateUser = userId, CreateTime = DateTime.Now, }; - + if (bl2) + { + labelModel.ExpirationTime = expTime; + } + if (bl3) + { + labelModel.StoreTime = stoTime; + } Db.Insertable(labelModel).ExecuteCommand(); modelList.Add(labelModel); } @@ -954,7 +1057,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(); + } + } + Db.CommitTran(); return modelList; @@ -962,6 +1078,7 @@ } catch (Exception e) { + Db.RollbackTran(); throw new Exception(e.Message); } } @@ -978,6 +1095,8 @@ //List<WmsLabelPrintLog> printlog = new List<WmsLabelPrintLog>(); //鏍囩琛ㄦ暟鎹俊鎭� var list = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList(); + + #region MyRegion @@ -998,6 +1117,9 @@ { throw new Exception($"鏈煡璇㈠埌{boxNo}淇℃伅"); } + //鍗曚綅 + var sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'"; + var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault() ; // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; @@ -1011,10 +1133,11 @@ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺 + model.unit = unitname.unit; model.BoxNo = data.BoxNo; // 绠卞彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,160, 40,false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1053,6 +1176,9 @@ { throw new Exception($"鏈煡璇㈠埌{item}淇℃伅"); } + //鍗曚綅 + var sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'"; + var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; @@ -1066,10 +1192,11 @@ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model.Qty = data1.Sum(m => m.Qty);// 鏁伴噺 + model.unit = unitname.unit; model.BoxNo = data.BoxNo; // 绠卞彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1105,6 +1232,9 @@ { throw new Exception($"鏈煡璇㈠埌{boxNo2}淇℃伅"); } + //鍗曚綅 + var sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'"; + var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; @@ -1118,10 +1248,11 @@ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model.Qty = data.Qty;// 鏁伴噺 + model.unit = unitname.unit; model.BoxNo = data.BoxNo3; // 鏀彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1157,6 +1288,9 @@ var i = 0; foreach (var data in data2) { + //鍗曚綅 + var sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'"; + var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; @@ -1170,10 +1304,11 @@ model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model.Qty = data.Qty;// 鏁伴噺 + model.unit = unitname.unit; model.BoxNo = data.BoxNo3; // 绠卞彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1221,8 +1356,10 @@ { throw new Exception($"褰撳墠鏀爜涓嶆槸绠辩爜鍐�"); } - + //鍗曚綅 + var sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'"; + var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� 绠辩爜 BoxInfoDto model1 = new BoxInfoDto(); model1.SkuNo = data.SkuNo; @@ -1235,9 +1372,10 @@ model1.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦 model1.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model1.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺 + model1.unit = unitname.unit; model1.BoxNo = data.BoxNo; // 绠卞彿 - model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); + model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model1); @@ -1254,9 +1392,10 @@ model.ExpirationTime = data.ExpirationTime; // 鏈夋晥鏈熻嚦 model.StoreTime = data.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model.Qty = data.Qty;// 鏁伴噺 + model.unit = unitname.unit; model.BoxNo = data.BoxNo3; // 鏀彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1289,6 +1428,9 @@ var data = list.Where(m => m.BoxNo == boxNo); var boxData = data2.FirstOrDefault(); + //鍗曚綅 + var sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + boxData.SkuNo + "'"; + var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model = new BoxInfoDto(); model.SkuNo = boxData.SkuNo; @@ -1301,9 +1443,10 @@ model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦 model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model.Qty = data.Sum(m => m.Qty); // 鏁伴噺 + model.unit = unitname.unit; model.BoxNo = boxData.BoxNo; // 鏀彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1311,6 +1454,9 @@ var i = 0; foreach (var item in data2) { + //鍗曚綅 + sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + item.SkuNo + "'"; + unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model1 = new BoxInfoDto(); model1.SkuNo = item.SkuNo; @@ -1323,9 +1469,10 @@ model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦 model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model1.Qty = item.Qty;// 鏁伴噺 + model1.unit = unitname.unit; model1.BoxNo = item.BoxNo3; // 鏀彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1357,6 +1504,9 @@ { throw new Exception($"鏈煡璇㈠埌{boxNo}绠辩爜淇℃伅"); } + //鍗曚綅 + var sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + boxData.SkuNo + "'"; + var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model = new BoxInfoDto(); model.SkuNo = boxData.SkuNo; @@ -1369,9 +1519,10 @@ model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦 model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model.Qty = data.Sum(m => m.Qty); // 鏁伴噺 + model.unit = unitname.unit; model.BoxNo = boxData.BoxNo; // 鏀彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1381,6 +1532,9 @@ var i = 0; foreach (var item in data) { + //鍗曚綅 + sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + item.SkuNo + "'"; + unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model1 = new BoxInfoDto(); model1.SkuNo = item.SkuNo; @@ -1393,9 +1547,10 @@ model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦 model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model1.Qty = item.Qty; // 鏁伴噺 + model1.unit = unitname.unit; model1.BoxNo = item.BoxNo3; // 鏀彿 - model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); + model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 @@ -1449,6 +1604,9 @@ { throw new Exception($"鏈煡璇㈠埌{demo}绠辩爜淇℃伅"); } + //鍗曚綅 + var sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + boxData.SkuNo + "'"; + var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model = new BoxInfoDto(); model.SkuNo = boxData.SkuNo; @@ -1461,9 +1619,10 @@ model.ExpirationTime = boxData.ExpirationTime; // 鏈夋晥鏈熻嚦 model.StoreTime = boxData.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model.Qty = data.Sum(m => m.Qty); // 鏁伴噺 + model.unit = unitname.unit; model.BoxNo = boxData.BoxNo; // 鏀彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model); @@ -1477,6 +1636,9 @@ { foreach (var item in data.OrderBy(m => m.BoxNo3).ToList()) { + //鍗曚綅 + sqlString = "select a.UnitName as unit from SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + item.SkuNo + "'"; + unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault(); // 鐗╂枡鏉$爜淇℃伅璧嬪�� BoxInfoDto model1 = new BoxInfoDto(); model1.SkuNo = item.SkuNo; @@ -1489,9 +1651,10 @@ model1.ExpirationTime = item.ExpirationTime; // 鏈夋晥鏈熻嚦 model1.StoreTime = item.StoreTime; // 鍌ㄥ瓨鏈熻嚦 model1.Qty = item.Qty;// 鏁伴噺 + model1.unit = unitname.unit; model1.BoxNo = item.BoxNo3; // 鏀彿 - model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); + model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false); // 娣诲姞鍒發ist闆嗗悎 printModelList.Add(model1); @@ -1521,10 +1684,9 @@ } #endregion + + - //dataContext.WmsLabelPrintLog.InsertAllOnSubmit(printlog); - // dataContext.SubmitChanges(); - // return printModel; return printModelList; } catch (Exception e) @@ -1532,5 +1694,188 @@ throw new Exception(e.Message); } } + + //鏍规嵁鍏ュ簱鍗曞彿杩囧幓鍗曟嵁涓嬫墍鏈夋壒娆″彿 + 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); + } + } + + + //缂栬緫鏍囩鏁伴噺 + public void EditLabelQty(int id, string qty, int userId) + { + try + { + if (string.IsNullOrWhiteSpace(qty)) + { + throw new Exception("缂栬緫鏁伴噺涓嶅彲涓虹┖"); + } + var qtyData = 0m; + var isOk = decimal.TryParse(qty, out qtyData); + var boxInfo = Db.Queryable<BllBoxInfo>().First(m => m.IsDel == "0" && m.Id == id); + if (boxInfo == null) + { + throw new Exception("鏈煡璇㈠埌璇ユ爣绛句俊鎭�"); + } + + if (isOk) + { + if (qtyData <= 0) + { + throw new Exception("鏁伴噺涓嶈兘灏忎簬绛変簬0"); + } + boxInfo.Qty = qtyData; + + Db.Updateable(boxInfo).ExecuteCommand(); + } + else + { + throw new Exception("鏁伴噺杞崲澶辫触"); + } + + var msg = $"缂栬緫浜嗙鍙凤細{boxInfo.BoxNo}"; + if (!string.IsNullOrWhiteSpace(boxInfo.BoxNo3)) + { + msg += $"銆佹敮鍙凤細{boxInfo.BoxNo3}"; + } + msg += "鐨勬爣绛炬暟閲忎俊鎭�"; + + new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鐗╂枡鏍囩", boxInfo.BoxNo, "缂栬緫", msg, userId); + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + } } -- Gitblit v1.8.0