From 8dbe5e5f36901c5bc69fd19470f322612ff12de5 Mon Sep 17 00:00:00 2001 From: DESKTOP-9BNTV8O <DESKTOP-9BNTV8O@163.com> Date: 星期日, 19 一月 2025 09:15:27 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 148 +++++++++++-------------------------------------- 1 files changed, 34 insertions(+), 114 deletions(-) diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index e904d0f..35e9210 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -959,10 +959,11 @@ Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>() //.And(it => it.WareHouseNo == wareHouseNo) .AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus)) - .And(m => skuStrList.Contains(m.SkuNo)) + //.And(m => skuStrList.Contains(m.SkuNo)) .AndIF(type == "6", m => m.OwnerNo == ownerNo)//浠e偍鍑哄簱闇�瑕佸叧鑱旇揣涓� .AndIF(!string.IsNullOrWhiteSpace(msg), it => (it.SkuNo.Contains(msg) || it.SkuName.Contains(msg) || it.LotNo.Contains(msg))) - .And(it => (it.Qty - it.LockQty - it.FrozenQty) > 0) + //.And(it => (it.Qty - it.LockQty - it.FrozenQty) > 0) + .And(it=>!string.IsNullOrEmpty(it.LotNo)) .And(it => (it.Status == "0" || it.Status == "1")) .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� //搴撳瓨鏄庣粏 @@ -1037,14 +1038,7 @@ if (model == null || model.Detail.Count == 0) { throw new Exception("鍙傛暟寮傚父"); - } - var skuNos = model.Detail.Select(a => a.SkuNo).Distinct().ToList(); - //鏍规嵁鐗╂枡鍙疯幏鍙栫墿鏂欎俊鎭�佸簱瀛樻槑缁嗕腑鑾峰彇鎵规鎻忚堪渚涜揣鎵规绛� - var skuList = Db.Queryable<SysMaterials>().Where(a => skuNos.Contains(a.SkuNo) && a.IsDel == "0").ToList(); - var stockList = Db.Queryable<DataStock>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty - s.FrozenQty - s.LockQty) > 0).ToList(); - //var palletList = contextDb.Queryable<DataStockDetail>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty - s.FrozenQty - s.LockQty) > 0).ToList(); - //瀹㈡埛淇℃伅 - var customer = Db.Queryable<SysCustomer>().Where(m => m.IsDel == "0" && m.CustomerNo == model.CustomerNo).ToList(); + } var billNo = ""; var bl = true; do @@ -1055,111 +1049,58 @@ bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no); } while (bl); - Db.BeginTran();//寮�鍚簨鍔� - try { var list = new List<BllExportNoticeDetail>(); //娣诲姞鍑哄簱鍗� - foreach (var d in model.Detail) + foreach (var item in model.Detail) { - if (d.Qty < 1) + if (item.Qty < 1) { throw new Exception("鍑哄簱鏁伴噺蹇呴』澶т簬0"); } - var sku = skuList.FirstOrDefault(a => a.SkuNo == d.SkuNo); - if (sku == null) + if (string.IsNullOrWhiteSpace(item.LotNo)) { - throw new Exception($"鐗╂枡淇℃伅涓湭鏌ヨ鍒板嚭搴撶墿鏂欎俊鎭�:{d.SkuNo}"); + throw new Exception("鎵规涓嶅彲涓虹┖!"); } - - //0:鎴愬搧鍑哄簱銆�1:棰嗘枡鍑哄簱銆�2:鎶芥鍑哄簱銆�4:涓嶅悎鏍煎搧鍑哄簱銆�6:浠e偍鍑哄簱銆�7:鍏朵粬鍑哄簱銆� ///3锛氱墿鏂欏彇鏍峰嚭搴撱��5:涓棿鍝佸嚭搴撱��8:瀵勫瓨鍑哄簱 - if (model.Type == "0" || model.Type == "2" || model.Type == "4" || model.Type == "7") + var soNoticeDetail = Db.Queryable<BllExportNoticeDetail>().First(w => w.IsDel == "0" && w.LotNo == item.LotNo); + if (soNoticeDetail != null) { - if (string.IsNullOrWhiteSpace(d.LotNo)) + var soNotice = Db.Queryable<BllExportNotice>().First(w => w.IsDel == "0" && w.SONo == soNoticeDetail.SONo && (w.Status == "0" || w.Status == "1" || w.Status == "2" || w.Status == "3")); + if (soNotice != null) { - throw new Exception("鎵规涓嶅彲涓虹┖!"); - } - } - - if (model.Type == "1") - { - if (list.Count(m=>m.SkuNo == d.SkuNo)>=2) - { - throw new Exception("棰嗘枡鍑哄簱鍗曞悓鍗曟嵁鍚岀墿鏂欎笉鍏佽瓒呰繃3涓壒娆℃贩鎵瑰嚭搴�"); - } - } - else - { - if (list.Count(m => m.SkuNo == d.SkuNo) >= 1) - { - throw new Exception("鍑哄簱鍗曞悓鍗曟嵁鍚岀墿鏂欎笉鍏佽瓒呰繃2涓壒娆℃贩鎵瑰嚭搴�"); + throw new Exception($"璇ユ壒娆℃湁鏈畬鎴愮殑鍑哄簱鍗曪紝鎵规鍙凤細{soNoticeDetail.LotNo}!"); } } //搴撳瓨 - List<DataStock> stocks; + var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LotNo == item.LotNo); - decimal q1 = 0; - Dictionary<int, decimal> dic = new Dictionary<int, decimal>(); - if (!string.IsNullOrWhiteSpace(d.LotNo)) - { - stocks = stockList.Where(s => s.SkuNo == d.SkuNo && s.LotNo == d.LotNo).ToList(); - } - else - { - stocks = stockList.Where(s => s.SkuNo == d.SkuNo && string.IsNullOrWhiteSpace(s.LotNo)).ToList(); - } - if (stocks.Count < 1) - { - throw new Exception($"鎬诲簱瀛樹腑鏈煡璇㈠埌鍑哄簱鐗╂枡淇℃伅:{d.SkuNo}"); - } - //鍒ゆ柇鏁伴噺 - var qty = stocks.First().Qty - stocks.First().LockQty - stocks.First().FrozenQty; - if (d.Qty > qty) - { - throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo}銆亄d.LotNo} 搴撳瓨鏁伴噺涓嶈冻"); - } - - var item = new BllExportNoticeDetail() + var noticeDetail = new BllExportNoticeDetail() { SONo = billNo, - SkuNo = sku.SkuNo, - SkuName = sku.SkuName, - Standard = sku.Standard, - LotNo = d.LotNo, + SkuNo = stockDetail.SkuNo, + SkuName = stockDetail.SkuName, + Standard = stockDetail.Standard, + LotNo = stockDetail.LotNo, LotText = "", Status = "0", - Qty = d.Qty, + Qty = item.Qty, AllotQty = 0, FactQty = 0, CompleteQty = 0, - PackagNo = sku.PackagNo, - Price = sku.Price, - Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty, - IsBale = d.IsBale, - IsBelt = d.IsBelt, - SupplierLot = stocks.First().SupplierLot, - IsWave = "0", - WaveNo = "", + //PackagNo = sku.PackagNo, + //Price = sku.Price, + //Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty, + //IsBale = d.IsBale, + //IsBelt = d.IsBelt, + //SupplierLot = stocks.First().SupplierLot, + //IsWave = "0", + //WaveNo = "", CreateUser = userId, }; - list.Add(item); - - - stocks.First().LockQty += d.Qty;//閿佸畾鏁伴噺 - var i = Db.Updateable(stocks.First()).UpdateColumns(it => new { it.LockQty }) - .ExecuteCommand(); - - //foreach (var s in dic) - //{ - // var st = stockList.First(m => m.Id == s.Key); - // st.LockQty += s.Value;//閿佸畾鏁伴噺 - // var i = Db.Updateable(st).UpdateColumns(it => new { it.LockQty }) - // .ExecuteCommand(); - //} - + list.Add(noticeDetail); } var notice = new BllExportNotice() { @@ -1167,8 +1108,8 @@ Type = model.Type, Status = "0", Origin = "WMS", - CustomerNo = model.CustomerNo, - CustomerName = customer.FirstOrDefault() == null ? "" : customer.First().CustomerName, + //CustomerNo = model.CustomerNo, + //CustomerName = customer.FirstOrDefault() == null ? "" : customer.First().CustomerName, LogisticsId = model.LogisticsId, IsWave = "0", WaveNo = "", @@ -1674,37 +1615,16 @@ throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︽湭绛夊緟鎵ц鎴栨潵婧愭槸鍚︽槸WMS"); } - //鎬诲簱瀛樹俊鎭� - var stockList = Db.Queryable<DataStock>().ToList(); //鍑哄簱鍗曟槑缁� var noticeDetail = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).ToList(); Db.BeginTran();//寮�鍚簨鍔� try { - foreach (var d in noticeDetail) + foreach (var item in noticeDetail) { - //鎬诲簱瀛� - var sq = stockList.Where(s => s.SkuNo == d.SkuNo); - if (!string.IsNullOrWhiteSpace(d.LotNo)) - { - sq = sq.Where(s => s.LotNo == d.LotNo); - } - else - { - sq = sq.Where(s => string.IsNullOrWhiteSpace(s.LotNo)); - } - var fd = sq.FirstOrDefault(); - if (fd == null) - { - throw new Exception($"鏈壘鍒扮墿鏂檣d.SkuNo}銆佹壒娆d.LotNo} 鐨勫簱瀛樹俊鎭�"); - } - fd.LockQty -= d.Qty; - d.IsDel = "1"; - d.UpdateUser = userId; - d.UpdateTime = DateTime.Now; - Db.Updateable(d).ExecuteCommand(); - Db.Updateable(fd).UpdateColumns(it => new { it.LockQty }).ExecuteCommand(); + item.IsDel = "1"; } + Db.Updateable(noticeDetail).ExecuteCommand(); //鍒犻櫎鍑哄簱鍗� notice.IsDel = "1"; notice.UpdateUser = userId; -- Gitblit v1.8.0