From 0acd18b6bebdcfc24a0d7c27edb0f8ef1fc7f9aa Mon Sep 17 00:00:00 2001 From: Administrator <Administrator@DESKTOP-5BIMHQ3> Date: 星期一, 04 三月 2024 10:29:34 +0800 Subject: [PATCH] 出库单复核功能修改 --- Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs | 100 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 69 insertions(+), 31 deletions(-) diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs index 2d8c259..d65b27e 100644 --- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs +++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs @@ -11,6 +11,7 @@ using Model.ModelVm.BllCheckVm; using Newtonsoft.Json; using SqlSugar; +using SqlSugar.Extensions; using Utility.Tools; using WMS.BLL.LogServer; using WMS.DAL; @@ -543,53 +544,90 @@ //寰幆鐩樼偣璁板綍 foreach (var l in demo) { + var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == l.SkuNo); if (l.CheckResult == 0)//姝e父 { - var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3); - if (de3 == null) + if (sku.Type != "4") { - throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�"); + var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3); + if (de3 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�"); + } + var de2 = stockDetail.First(m => m.Id == de3.StockDetailId); + if (de2 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�"); + } + de2.Status = "0";//灏嗗簱瀛樻槑缁嗙姸鎬佹敼涓哄緟鍒嗛厤 + Db.Updateable(de2).ExecuteCommand(); } - var de2 = stockDetail.First(m => m.Id == de3.StockDetailId); - if (de2 == null) + else { - throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�"); + var de2 = stockDetail.First(m => m.PalletNo == l.PalletNo && m.SkuNo == l.SkuNo); + if (de2 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.PalletNo}鐨勫簱瀛樻槑缁嗙殑淇℃伅"); + } + de2.Status = "0";//灏嗗簱瀛樻槑缁嗙姸鎬佹敼涓哄緟鍒嗛厤 + Db.Updateable(de2).ExecuteCommand(); } - de2.Status = "0";//灏嗗簱瀛樻槑缁嗙姸鎬佹敼涓哄緟鍒嗛厤 - Db.Updateable(de2).ExecuteCommand(); + } else if (l.CheckResult == 1)//鐩樹簭 { - var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3); - if (de3 == null) + if (sku.Type != "4") { - throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�"); - } + var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3); + if (de3 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�"); + } - var de2 = stockDetail.First(m => m.Id == de3.StockDetailId); - if (de2 == null) - { - throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�"); - } - de2.Status = "0"; - de2.Qty -= de3.Qty; - var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo); - if (de == null) - { - throw new Exception($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅"); - } - de.Qty -= de3.Qty; + var de2 = stockDetail.First(m => m.Id == de3.StockDetailId); + if (de2 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�"); + } + de2.Status = "0"; + de2.Qty -= de3.Qty; + var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo); + if (de == null) + { + throw new Exception($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅"); + } + de.Qty -= de3.Qty; - Db.Updateable(de).ExecuteCommand(); - Db.Updateable(de2).ExecuteCommand(); - Db.Deleteable(de3).ExecuteCommand(); + Db.Updateable(de).ExecuteCommand(); + Db.Updateable(de2).ExecuteCommand(); + Db.Deleteable(de3).ExecuteCommand(); + } + else + { + var de2 = stockDetail.First(m => m.PalletNo == l.PalletNo && m.SkuNo == l.SkuNo); + if (de2 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.PalletNo}鐨勫簱瀛樻槑缁嗙殑淇℃伅"); + } + de2.Status = "0"; + de2.Qty = l.RealQty; + var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo); + if (de == null) + { + throw new Exception($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅"); + } + de.Qty -= Convert.ToDecimal(l.Qty - l.RealQty); + + Db.Updateable(de).ExecuteCommand(); + Db.Updateable(de2).ExecuteCommand(); + } } else if (l.CheckResult == 2)//鐩樼泩 { - var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == l.SkuNo); + var stockDetailInfo = stockDetail.First(m => m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo);//搴撳瓨鏄庣粏 - + if (sku.Type != "4") { var stockBoxInfo = stockBox.First(m => m.StockDetailId == stockDetailInfo.Id);//搴撳瓨绠辨敮鏄庣粏 @@ -644,7 +682,7 @@ { de.Qty += (int)(l.RealQty - l.Qty); } - + Db.Updateable(de).ExecuteCommand(); } } -- Gitblit v1.8.0