From cbf4a8f42cd0d7e4ff994ee7f9b9e9c33b9c39c8 Mon Sep 17 00:00:00 2001 From: Demo <Demo@DESKTOP-CPA90BF> Date: 星期三, 13 三月 2024 19:32:29 +0800 Subject: [PATCH] PDA取样出库拣货 --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 173 +++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 119 insertions(+), 54 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 211d77a..785537c 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -1388,39 +1388,17 @@ } - //鍑哄簱鍗� - var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo); - BllExportNoticeDetail noticeDetail2; - if (notice != null && notice.Status != "6") - { - - } - else - { - //鍒涘缓鍑哄簱鍗曞強鏄庣粏 - - } - - //鍑哄簱鍗曟槑缁� - var noticeDetail = Db.Queryable<BllExportNoticeDetail>() - .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); - if (noticeDetail == null) - { - throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�"); - } - //鍑哄簱鍒嗛厤淇℃伅 - var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == soNo && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo); - if (allot2 == null) - { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅"); - } - - //搴撳瓨鏄庣粏 - var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId); + var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNNo == asnNo && m.PalletNo == palletNo); if (stockDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); + throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑搴撳瓨鏄庣粏淇℃伅锛�"); + } + + var sku = Db.Queryable<SysMaterials>().First(m=>m.IsDel == "0" && m.SkuNo == stockDetail.SkuNo); + if (sku == null) + { + throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏涓婄殑鐗╂枡淇℃伅"); } //搴撳瓨鎬昏〃 var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); @@ -1429,11 +1407,111 @@ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); } + //鍑哄簱鍗� + var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo); + //鍒涘缓鍑哄簱鍗� + if (notice == null || (notice != null && notice.Status != "6")) + { + var billNo = ""; + var bl = true; + do + { + //鑾峰彇鑷鍗曟嵁鍙� + billNo = new Common().GetMaxNo("SO"); + var no = billNo; + bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no); + } while (bl); + + + var addNotice = new BllExportNotice() + { + SONo = billNo, + Type = "3", + Status = "4", + Origin = "WMS", + + IsWave = "0", + WaveNo = "", + IsDespatch = "0", + CompleteTime = DateTime.Now, + CreateUser = 0, + }; + + var n = Db.Insertable(addNotice).ExecuteCommand(); + notice = addNotice; + } + + //鍒涘缓鍑哄簱鍗曟槑缁� + var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.SONo == notice.SONo && m.SkuNo == stockDetail.SkuNo && m.LotNo.Contains(stockDetail.LotNo)); + if (noticeDetail == null) + { + var addNoticeDetail = new BllExportNoticeDetail() + { + SONo = notice.SONo, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + LotNo = stockDetail.LotNo, + LotText = "", + Qty = 0, + AllotQty = 0, + FactQty = 0, + CompleteQty = 0, + PackagNo = sku.PackagNo, + Price = sku.Price, + //Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * pickQty, + IsBale = "", + IsBelt = "", + SupplierLot = stock.SupplierLot, + IsWave = "0", + WaveNo = "", + IsIssueLotNo = "0", + Status = "3", + CreateUser = 0, + }; + var m = Db.Insertable(addNoticeDetail).ExecuteCommand(); + noticeDetail = addNoticeDetail; + } + //鍑哄簱鍒嗛厤淇℃伅 + var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == notice.SONo && m.PalletNo == palletNo); + if (allot2 == null) + { + //娣诲姞鍒嗛厤琛ㄤ俊鎭� + var addAllot = new BllExportAllot + { + SONo = notice.SONo, + WaveNo = "", + SODetailNo = noticeDetail.Id, + StockId = stockDetail.Id, + LotNo = stockDetail.LotNo, + LotText = stockDetail.LotText, + SupplierLot = stockDetail.SupplierLot, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + PalletNo = palletNo, + IsBale = "0" , //鏄惁瑁瑰寘 + IsBelt = "0" , //鏄惁鎵撳甫 + + Qty = 0, + CompleteQty = 0, + + Status = "5", + LogisticsId = notice.LogisticsId, + IsAdvance = "0", + OutMode = "",//鍑哄簱鍙� + + CreateUser = userId, + CreateTime = DateTime.Now + }; + + var fp = Db.Insertable(addAllot).ExecuteCommand(); + allot2 = addAllot; + } + + #endregion - - - //鍒ゆ柇鏄暎鏀嫞璐ц繕鏄暟閲忔嫞璐� var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐� @@ -1547,6 +1625,8 @@ } pickQty += item.Qty; } + + //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅 if (biaoShi == "1") { @@ -1561,31 +1641,14 @@ Db.Insertable(comList).ExecuteCommand(); //淇敼鍑哄簱鍒嗛厤淇℃伅 - allot.CompleteQty += pickQty; - allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; - if (allot.Status == "5") - { - //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴� - } + allot2.Qty += pickQty; + allot2.CompleteQty += pickQty; Db.Updateable(allot).ExecuteCommand(); //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� stockDetail.Qty -= pickQty; - stockDetail.LockQty -= pickQty; - if (stockDetail.Qty == stockDetail.LockQty) - { - stockDetail.Status = "2"; - } - else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0) - { - stockDetail.Status = "1"; - } - else - { - stockDetail.Status = "0"; - } - + if (stockDetail.Qty <= 0) { Db.Deleteable(stockDetail).ExecuteCommand(); @@ -1595,7 +1658,6 @@ Db.Updateable(stockDetail).ExecuteCommand(); } stock.Qty -= pickQty; - stock.LockQty -= pickQty; if (stock.Qty <= 0) { Db.Deleteable(stock).ExecuteCommand(); @@ -1617,6 +1679,9 @@ Db.Updateable(pallet).ExecuteCommand(); } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� + noticeDetail.Qty += pickQty; + noticeDetail.AllotQty += pickQty; + noticeDetail.FactQty += pickQty; noticeDetail.CompleteQty += pickQty; Db.Updateable(noticeDetail).ExecuteCommand(); -- Gitblit v1.8.0