From 8f6e51b0674bfa6382e1b9730c0eaadeb5a78bc9 Mon Sep 17 00:00:00 2001 From: yuyou_x <2336760928@qq.com> Date: 星期四, 29 二月 2024 14:23:52 +0800 Subject: [PATCH] 调整pda手持是否数量盘点代码,修改更换有无码盘点界面及后台代码,修改pda确认代码,修改调整库存代码。 --- Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 204 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 143 insertions(+), 61 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs index cda3452..ed93f45 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs @@ -82,7 +82,7 @@ } //鑾峰彇瑕佺洏鐐圭殑绠辩爜淇℃伅锛堢洏鐐硅褰曚腑鏁版嵁锛� - public List<StockCheckLogDto> GetStockCheckLogList(string crNo, string crDetail, string palletNo, string boxNo) + public List<StockCheckLogDto> GetStockCheckLogList(string crNo, string crDetail, string palletNo, string boxNo, string isContinue) { try { @@ -101,6 +101,18 @@ var detail = crDetail.Split("-"); var sku = detail[0]; + //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂� + var skuinfo = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == sku); + //鍒ゆ柇鏄惁瀛樺湪鐗╂枡娑堟伅 + if (skuinfo == null) + { + throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); + } + int isQtySku = 0; + if (skuinfo.Type == "4" && isContinue == "1") + { + isQtySku = 1; + } var lotNo = detail[1]; var list = Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == crNo); //var deList= Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.SkuNo == sku && m.LotNo == lotNo && m.PalletNo == palletNo); @@ -108,25 +120,47 @@ //{ // throw new Exception("鏈煡璇㈠埌鎵樼洏涓婄殑鐩樼偣鐗╂枡鎵规淇℃伅"); //} - list = list.Where(m => m.SkuNo == sku && m.LotNo == lotNo && m.PalletNo == palletNo); if (!string.IsNullOrWhiteSpace(boxNo)) { list = list.Where(m => m.BoxNo == boxNo); } - - var data = list.Select(m => new StockCheckLogDto() + List<StockCheckLogDto> data = new List<StockCheckLogDto>(); + //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂� + if (isQtySku == 1) { - BoxNo = m.BoxNo, - BoxNo3 = m.BoxNo3, - SkuNo = m.SkuNo, - SkuName = m.SkuName, - LotNo = m.LotNo, - Qty = m.Qty, - CheckResult = m.CheckResult, + //鑾峰彇搴撳瓨淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().First(a => a.IsDel == "0" && a.Status == "3" && a.SkuNo == sku && a.PalletNo == palletNo); - }).ToList(); + var model = new StockCheckLogDto() + { + PalletNo = palletNo, + SkuNo = sku, + Qty = (int?)stockDetail.Qty, + CheckResult = 4, + }; + + data.Add(model); + + } + else + { + data = list.Select(m => new StockCheckLogDto() + { + BoxNo = m.BoxNo, + BoxNo3 = m.BoxNo3, + SkuNo = m.SkuNo, + SkuName = m.SkuName, + LotNo = m.LotNo, + Qty = m.Qty, + CheckResult = m.CheckResult, + + }).ToList(); + + } + return data; + } catch (Exception e) { @@ -134,7 +168,7 @@ } } - public void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo, string boxNo3, string result, int? qty, int userId) + public void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo, string boxNo3, string result, int? qty, string isContinue, int userId) { try { @@ -164,8 +198,8 @@ //鐩樼偣璁板綍 var checkLog = Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == crNo && m.PalletNo == palletNo && m.SkuNo == sku && m.LotNo == lotNo && m.CheckResult == null); - var time = DateTime.Now; + //姝e父 if (result == "0") { if (!string.IsNullOrWhiteSpace(boxNo)) @@ -177,7 +211,7 @@ checkLog = checkLog.Where(m => m.BoxNo3 == boxNo3); } - if (checkLog.Count() == 0) + if (checkLog.Count() == 0 && isContinue == "0") { throw new Exception("鏈煡璇㈠埌鏈洏鐐圭殑绠辨敮淇℃伅"); } @@ -188,7 +222,7 @@ { if (l.CheckResult != null) { - continue; + continue; } l.RealQty = l.Qty; l.CheckResult = 0; @@ -203,6 +237,7 @@ checkDetail.RealQty = 0; } checkDetail.RealQty += num; + checkDetail.CheckResult = 0; //if (checkDetail.CheckResult == null || checkDetail.CheckResult == 0) //{ // checkDetail.CheckResult = 0; @@ -210,6 +245,7 @@ Db.Updateable(checkDetail).ExecuteCommand(); Db.Updateable(list).ExecuteCommand(); } + //鐩樹簭 else if (result == "1") { if (!string.IsNullOrWhiteSpace(boxNo)) @@ -221,10 +257,20 @@ checkLog = checkLog.Where(m => m.BoxNo3 == boxNo3); } - if (checkLog.Count() == 0) + if (checkLog.Count() == 0 && isContinue == "0") { throw new Exception("鏈煡璇㈠埌绠辨敮淇℃伅"); } + + // + if (isContinue == "1") + { + if (qty == null || qty <= 0) + { + throw new Exception("鏁伴噺鐩樼偣鏃躲�佺洏浜忔暟閲忎笉鑳戒负绌轰笖闇�澶т簬0"); + } + } + var list = checkLog.ToList(); var num = 0; @@ -241,64 +287,100 @@ checkDetail.RealQty = 0; } checkDetail.RealQty += num; - //checkDetail.CheckResult = 1; + if (isContinue == "1") + { + checkDetail.RealQty = qty; + } + checkDetail.CheckResult = 1; Db.Updateable(checkDetail).ExecuteCommand(); Db.Updateable(list).ExecuteCommand(); } + //鐩樼泩 else if (result == "2") { - if (string.IsNullOrWhiteSpace(boxNo) || string.IsNullOrWhiteSpace(boxNo3)) + if (isContinue == "0") { - throw new Exception("鐩樼泩鏃剁鐮佷笌鏀爜涓嶈兘涓虹┖"); + if (string.IsNullOrWhiteSpace(boxNo) || string.IsNullOrWhiteSpace(boxNo3)) + { + throw new Exception("鐩樼泩鏃剁鐮佷笌鏀爜涓嶈兘涓虹┖"); + } } - if (qty == null || qty <= 0) { throw new Exception("鐩樼泩鏃舵暟閲忎笉鑳戒负绌轰笖闇�澶т簬0"); } - - var count = Db.Queryable<DataBoxInfo>() - .Count(m => m.IsDel == "0" && m.BoxNo == boxNo && m.BoxNo3 == boxNo3); - var count2 = Db.Queryable<BllStockCheckLog>() - .Count(m => m.IsDel == "0" && m.BoxNo == boxNo && m.BoxNo3 == boxNo3); - if (count > 0 || count2 > 0) + if (isContinue == "0") { - throw new Exception("褰撳墠搴撳瓨涓凡瀛樺湪璇ョ鏀俊鎭�"); + var count = Db.Queryable<DataBoxInfo>() + .Count(m => m.IsDel == "0" && m.BoxNo == boxNo && m.BoxNo3 == boxNo3); + var count2 = Db.Queryable<BllStockCheckLog>() + .Count(m => m.IsDel == "0" && m.BoxNo == boxNo && m.BoxNo3 == boxNo3); + if (count > 0 || count2 > 0) + { + throw new Exception("褰撳墠搴撳瓨涓凡瀛樺湪璇ョ鏀俊鎭�"); + } } - var crLog = new BllStockCheckLog() + BllStockCheckLog crLog = new BllStockCheckLog(); + if (isContinue == "0") { - CRNo = crNo, - PalletNo = palletNo, - BoxNo = boxNo, - BoxNo2 = null, - BoxNo3 = boxNo3, - Qty = qty, - SkuNo = checkDetail.SkuNo, - SkuName = checkDetail.SkuName, - Standard = checkDetail.Standard, - LotNo = checkDetail.LotNo, - LotText = checkDetail.LotText, - SupplierLot = checkDetail.SupplierLot, + crLog = new BllStockCheckLog() + { + CRNo = crNo, + PalletNo = palletNo, + BoxNo = boxNo, + BoxNo2 = null, + BoxNo3 = boxNo3, + Qty = qty, + SkuNo = checkDetail.SkuNo, + SkuName = checkDetail.SkuName, + Standard = checkDetail.Standard, + LotNo = checkDetail.LotNo, + LotText = checkDetail.LotText, + SupplierLot = checkDetail.SupplierLot, - RealQty = qty, - CheckResult = 2, - CheckDate = time, - CheckUserId = userId, + RealQty = qty, + CheckResult = 2, + CheckDate = time, + CheckUserId = userId, - CreateUser = userId, - CreateTime = time - }; - if (checkDetail.RealQty == null) + CreateUser = userId, + CreateTime = time + }; + } + else + { + var checkInfo = Db.Queryable<BllStockCheckLog>().First(m => + m.IsDel == "0" && m.CRNo == crNo && m.PalletNo == palletNo && m.SkuNo == sku && m.LotNo == lotNo); + checkInfo.RealQty = qty; + checkInfo.CheckResult = 2; + + checkInfo.CheckUserId = userId; + checkInfo.CheckDate = time; + + checkInfo.UpdateUser = userId; + checkInfo.UpdateTime = time; + Db.Updateable(checkInfo).ExecuteCommand(); + } + + if (checkDetail.RealQty == null && isContinue == "0") { checkDetail.RealQty = 0; } checkDetail.RealQty += qty; - //checkDetail.CheckResult = 1; + if (isContinue == "1") + { + checkDetail.RealQty = qty; + } + checkDetail.CheckResult = 2; Db.Updateable(checkDetail).ExecuteCommand(); - Db.Insertable(crLog).ExecuteCommand(); + if (isContinue == "0") + { + Db.Insertable(crLog).ExecuteCommand(); + } } else { + Db.RollbackTran(); throw new Exception("鐩樼偣缁撴灉涓嶇锛岃鏍稿疄锛�"); } var checkLogNum = Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == crNo && m.PalletNo == palletNo && m.SkuNo == sku && m.LotNo == lotNo); @@ -351,7 +433,7 @@ { str += " and PalletNo like @palletno"; } - + //鎺掑簭 str += " order by LotNo,LocatNo,PalletNo"; List<DataStockDetail> stockList = Db.Ado.SqlQuery<DataStockDetail>(str, new @@ -376,7 +458,7 @@ { throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); } - var detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m=>m.Id).ToList(); + var detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m => m.Id).ToList(); var info = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && detail.Contains(m.StockDetailId)) .GroupBy(m => m.BoxNo).Select(a => new PdaPalletNoCheckDto { @@ -385,7 +467,7 @@ }).ToList(); return info; } - catch(Exception e) + catch (Exception e) { throw new Exception(e.Message); } @@ -400,9 +482,9 @@ { throw new Exception("绠辩爜涓嶈兘涓虹┖"); } - + var info = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo) - .GroupBy(m => new{m.BoxNo,m.SkuNo,m.SkuName,m.LotNo}).Select(a => new PdaPalletNoCheckDto + .GroupBy(m => new { m.BoxNo, m.SkuNo, m.SkuName, m.LotNo }).Select(a => new PdaPalletNoCheckDto { BoxNo = a.BoxNo, SkuNo = a.SkuNo, @@ -410,7 +492,7 @@ LotNo = a.LotNo, Qty = SqlFunc.AggregateSum(a.Qty) }).ToList(); - if (info.Count>1) + if (info.Count > 1) { throw new Exception("褰撳墠绠辩爜鏌ヨ鍑哄鏉$墿鏂欐垨鎵规淇℃伅锛岃鏍稿疄"); } @@ -424,7 +506,7 @@ } //瑙g粦鍘熸墭鐩樼粦瀹氭柊鎵樼洏 - public void SaveUnbind(string palletNo,string boxNo,string palletNoNew,int userId) + public void SaveUnbind(string palletNo, string boxNo, string palletNoNew, int userId) { try { @@ -449,7 +531,7 @@ throw new Exception("鍘熸墭鐩樹笂鏈煡鍒扮鏀槑缁嗭紝璇锋牳瀹�"); } //搴撳瓨鏄庣粏id - var infoIds = infos.GroupBy(m => m.StockDetailId).Select(a =>a.StockDetailId).ToList(); + var infoIds = infos.GroupBy(m => m.StockDetailId).Select(a => a.StockDetailId).ToList(); if (infoIds.Count == 0) { throw new Exception("鏈煡璇㈠埌褰撳墠绠辩爜淇℃伅锛岃鏍稿疄"); @@ -484,7 +566,7 @@ } } } - } + } #endregion } if (!newPalletHaveGoods)//鏂版墭鐩樹笂娌℃湁鐗╁搧 @@ -519,7 +601,7 @@ } var stockDetail2 = stockDetailList.FirstOrDefault(w => w.SkuNo == stockDetail1.SkuNo && w.LotNo == stockDetail1.LotNo); - var stId = 0; + var stId = 0; if (stockDetail2 == null) //娣诲姞-鏂版墭鐩樹笂娌℃湁鍚岀墿鏂欏悓鎵规鐗╁搧 { //鏂版墭鐩樻坊鍔犲簱瀛樻槑缁� -- Gitblit v1.8.0