From 9f4c61d83f48afa6df174e39da6ddbd1f3f0ea99 Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期五, 02 八月 2024 15:39:21 +0800 Subject: [PATCH] PDA端优化异步 --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 803 +++++++++++++++++++++++++++----------------------------- 1 files changed, 389 insertions(+), 414 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index a8d053b..d3b7475 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -319,7 +319,7 @@ } //鍑哄簱pda鎷h揣 - public void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, int userId) + public async Task SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, int userId) { Db.BeginTran(); try @@ -328,60 +328,60 @@ if (string.IsNullOrWhiteSpace(soNo)) { - throw new Exception("鍑哄簱鍗曟嵁涓嶈兘涓虹┖"); + throw Oops.Bah("鍑哄簱鍗曟嵁涓嶈兘涓虹┖"); } if (string.IsNullOrWhiteSpace(soDetailId)) { - throw new Exception("鍑哄簱鐗╂枡-鎵规涓嶈兘涓虹┖"); + throw Oops.Bah("鍑哄簱鐗╂枡-鎵规涓嶈兘涓虹┖"); } if (string.IsNullOrWhiteSpace(palletNo)) { - throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); + throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�"); } if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0) { - throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); + throw Oops.Bah("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } //鍑哄簱鍗� - var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo); + var notice = await Db.Queryable<BllExportNotice>().FirstAsync(m => m.IsDel == "0" && m.SONo == soNo); if (notice == null) { - throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); + throw Oops.Bah("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); } if (notice.Status != "3") { - throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); + throw Oops.Bah("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); } //鍑哄簱鍗曟槑缁� - var noticeDetail = Db.Queryable<BllExportNoticeDetail>() - .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); + var noticeDetail = await Db.Queryable<BllExportNoticeDetail>() + .FirstAsync(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); if (noticeDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�"); + throw Oops.Bah("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�"); } //鍑哄簱鍒嗛厤淇℃伅 - var allot = Db.Queryable<BllExportAllot>().First(m => + var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.SONo == soNo && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo); if (allot == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅"); } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; //搴撳瓨鏄庣粏 - var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId); + var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.Id == allot.StockId); if (stockDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); } //搴撳瓨鎬昏〃 - var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); + var stock = await Db.Queryable<DataStock>().FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); if (stock == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); } #endregion @@ -389,28 +389,28 @@ { List<DataBoxInfo> boxInfos; var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo);//鎵惧埌鎵樼洏涓婃墍鏈夌鐮� - boxInfos = boxInfo.ToList(); + boxInfos = await boxInfo.ToListAsync(); if (boxInfo.Count() <= 0) { - throw new Exception("璇ユ墭鐩樹笂娌℃湁鍙嫞璐х殑绠卞瓙"); + throw Oops.Bah("璇ユ墭鐩樹笂娌℃湁鍙嫞璐х殑绠卞瓙"); } - var boxQty = boxInfo.GroupBy(m => m.PalletNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToList(); + var boxQty = await boxInfo.GroupBy(m => m.PalletNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToListAsync(); if (boxQty[0] > needQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); } decimal pickQty = 0;//鎷h揣鐨勬暟閲� - var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList(); + var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToListAsync(); var comList = new List<BllCompleteDetail>(); foreach (var item in boxInfos) { if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3) && item.BoxNo3 != null) { - throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); + throw Oops.Bah($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); } if (item.SkuNo != allot.SkuNo || item.LotNo != allot.LotNo) { - throw new Exception("褰撳墠鎵樼洏涓婃湁鍏朵粬涓嶅悓鐗╂枡鎵规锛屾嫞璐уけ璐�"); + throw Oops.Bah("褰撳墠鎵樼洏涓婃湁鍏朵粬涓嶅悓鐗╂枡鎵规锛屾嫞璐уけ璐�"); } //娣诲姞鎷h揣鏄庣粏 var completeDetail = new BllCompleteDetail() @@ -437,60 +437,60 @@ comList.Add(completeDetail); //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - Db.Deleteable(item).ExecuteCommand(); + await Db.Deleteable(item).ExecuteCommandAsync(); pickQty += item.Qty; } //娣诲姞鎷h揣鏄庣粏 - Db.Insertable(comList).ExecuteCommand(); + await Db.Insertable(comList).ExecuteCommandAsync(); //淇敼鍑哄簱鍒嗛厤淇℃伅 allot.CompleteQty += pickQty; allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; allot.UpdateTime = DateTime.Now; - Db.Updateable(allot).ExecuteCommand(); + await Db.Updateable(allot).ExecuteCommandAsync(); //鍒犻櫎搴撳瓨鏄庣粏 - Db.Deleteable(stockDetail).ExecuteCommand(); + await Db.Deleteable(stockDetail).ExecuteCommandAsync(); //鍒犻櫎鎴栦慨鏀瑰簱瀛� stock.Qty -= pickQty; stock.LockQty -= pickQty; if (stock.Qty <= 0) { - Db.Deleteable(stock).ExecuteCommand(); + await Db.Deleteable(stock).ExecuteCommandAsync(); } else { - Db.Updateable(stock).ExecuteCommand(); + await Db.Updateable(stock).ExecuteCommandAsync(); } //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤 var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); if (pallet == null) { - throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); } pallet.Status = "0"; - Db.Updateable(pallet).ExecuteCommand(); + await Db.Updateable(pallet).ExecuteCommandAsync(); //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; - Db.Updateable(noticeDetail).ExecuteCommand(); + await Db.Updateable(noticeDetail).ExecuteCommandAsync(); - var num = Db.Queryable<BllExportNoticeDetail>() - .Count(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty); + var num = await Db.Queryable<BllExportNoticeDetail>() + .CountAsync(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty); if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� //淇敼鍑哄簱鍗曚俊鎭� - Db.Updateable(notice).ExecuteCommand(); + await Db.Updateable(notice).ExecuteCommandAsync(); if (notice.IsWave == "1") { - var waveNum = Db.Queryable<BllExportNotice>().Count(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4"); + var waveNum = await Db.Queryable<BllExportNotice>().CountAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4"); if (waveNum == 0) { - var wave = Db.Queryable<BllWaveMage>().First(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo); + var wave = await Db.Queryable<BllWaveMage>().FirstAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo); if (wave != null) { wave.Status = "4"; wave.UpdateUser = userId; wave.UpdateTime = DateTime.Now; - Db.Updateable(wave).ExecuteCommand(); + await Db.Updateable(wave).ExecuteCommandAsync(); } } } @@ -502,11 +502,11 @@ var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐� List<DataBoxInfo> boxInfos; var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); - if (boxInfo.Count() == 0) + if (await boxInfo.CountAsync() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); } - boxInfos = boxInfo.ToList(); + boxInfos = await boxInfo.ToListAsync(); var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList(); if (!string.IsNullOrWhiteSpace(boxNo3)) //鏁f敮鎷h揣 @@ -515,28 +515,28 @@ if (boxInfos.Count() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); } if (boxInfos.Count() > 1) { - throw new Exception("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�"); + throw Oops.Bah("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�"); } if (boxInfos.Any(m => m.PalletNo != palletNo)) { - throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); + throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); } var boxQty = boxInfos.First().Qty; if (boxQty > needQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } foreach (var item in boxInfos) { if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3)) { - throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); + throw Oops.Bah($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); } } @@ -546,16 +546,16 @@ { if (boxInfo.Count() > 1) { - throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); + throw Oops.Bah("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } decimal boxQty = boxInfo.First().Qty; if (Convert.ToInt32(pickQty1) > boxQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); } if (Convert.ToInt32(pickQty1) > needQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } biaoShi = "2"; @@ -564,23 +564,23 @@ { if (boxInfo.Count() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅"); } if (boxInfo.Any(m => m.PalletNo != palletNo)) { - throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); + throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); } - var boxQty = boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToList(); + var boxQty = await boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToListAsync(); if (boxQty[0] > needQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); } foreach (var item in boxInfos) { if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo == item.BoxNo)) { - throw new Exception($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); + throw Oops.Bah($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); } } } @@ -616,20 +616,20 @@ if (biaoShi != "2") { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - Db.Deleteable(item).ExecuteCommand(); + await Db.Deleteable(item).ExecuteCommandAsync(); } else//鏁伴噺鎷h揣 { if (decimal.Parse(pickQty1) == item.Qty) { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - Db.Deleteable(item).ExecuteCommand(); + await Db.Deleteable(item).ExecuteCommandAsync(); } else { item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 - Db.Updateable(item).ExecuteCommand(); + await Db.Updateable(item).ExecuteCommandAsync(); } } pickQty += item.Qty; @@ -641,11 +641,11 @@ foreach (var item in boxSurplusList) { item.BitBoxMark = "1"; - Db.Updateable(item).ExecuteCommand(); + await Db.Updateable(item).ExecuteCommandAsync(); } } - Db.Insertable(comList).ExecuteCommand(); + await Db.Insertable(comList).ExecuteCommandAsync(); //淇敼鍑哄簱鍒嗛厤淇℃伅 allot.CompleteQty += pickQty; allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; @@ -654,7 +654,7 @@ { //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴� } - Db.Updateable(allot).ExecuteCommand(); + await Db.Updateable(allot).ExecuteCommandAsync(); //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� @@ -675,58 +675,58 @@ if (stockDetail.Qty <= 0) { - Db.Deleteable(stockDetail).ExecuteCommand(); + await Db.Deleteable(stockDetail).ExecuteCommandAsync(); } else { - Db.Updateable(stockDetail).ExecuteCommand(); + await Db.Updateable(stockDetail).ExecuteCommandAsync(); } stock.Qty -= pickQty; stock.LockQty -= pickQty; if (stock.Qty <= 0) { - Db.Deleteable(stock).ExecuteCommand(); + await Db.Deleteable(stock).ExecuteCommandAsync(); } else { - Db.Updateable(stock).ExecuteCommand(); + await Db.Updateable(stock).ExecuteCommandAsync(); } - var num2 = Db.Queryable<DataStockDetail>().Count(m => m.IsDel == "0" && m.PalletNo == palletNo); + var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); if (num2 <= 0) { //鏀瑰彉鎵樼洏鐘舵�� - var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); + var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0"); if (pallet == null) { - throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); } pallet.Status = "0"; - Db.Updateable(pallet).ExecuteCommand(); + await Db.Updateable(pallet).ExecuteCommandAsync(); } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; - Db.Updateable(noticeDetail).ExecuteCommand(); + await Db.Updateable(noticeDetail).ExecuteCommandAsync(); - var num = Db.Queryable<BllExportNoticeDetail>() - .Count(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty); + var num = await Db.Queryable<BllExportNoticeDetail>() + .CountAsync(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty); if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� //淇敼鍑哄簱鍗曚俊鎭� - Db.Updateable(notice).ExecuteCommand(); + await Db.Updateable(notice).ExecuteCommandAsync(); if (notice.IsWave == "1") { - var waveNum = Db.Queryable<BllExportNotice>() - .Count(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4"); + var waveNum = await Db.Queryable<BllExportNotice>() + .CountAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4"); if (waveNum == 0) { - var wave = Db.Queryable<BllWaveMage>().First(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo); + var wave = await Db.Queryable<BllWaveMage>().FirstAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo); if (wave != null) { wave.Status = "4"; wave.UpdateUser = userId; wave.UpdateTime = DateTime.Now; - Db.Updateable(wave).ExecuteCommand(); + await Db.Updateable(wave).ExecuteCommandAsync(); } } } @@ -736,6 +736,10 @@ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鍑哄簱", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId); Db.CommitTran(); } + catch (AppFriendlyException e) + { + Db.RollbackTran(); + } catch (Exception e) { Db.RollbackTran(); @@ -744,7 +748,7 @@ } //鍑哄簱pda鎷h揣 - public void SoSetQtyPick(string soNo, string soDetailId, string palletNo, string PickQty, int userId) + public async Task SoSetQtyPick(string soNo, string soDetailId, string palletNo, string PickQty, int userId) { Db.BeginTran(); try @@ -753,7 +757,7 @@ if (string.IsNullOrWhiteSpace(soNo)) { - throw new Exception("鍑哄簱鍗曟嵁涓嶈兘涓虹┖"); + throw Oops.Bah("鍑哄簱鍗曟嵁涓嶈兘涓虹┖"); } //if (string.IsNullOrWhiteSpace(soDetailId)) //{ @@ -761,56 +765,56 @@ //} if (string.IsNullOrWhiteSpace(palletNo)) { - throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); + throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�"); } //鍑哄簱鍗� - var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo); + var notice = await Db.Queryable<BllExportNotice>().FirstAsync(m => m.IsDel == "0" && m.SONo == soNo); if (notice == null) { - throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); + throw Oops.Bah("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); } if (notice.Status != "3") { - throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); + throw Oops.Bah("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); } //鍑哄簱鍗曟槑缁� - var noticeDetail = Db.Queryable<BllExportNoticeDetail>() - .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); + var noticeDetail = await Db.Queryable<BllExportNoticeDetail>() + .FirstAsync(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); if (noticeDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�"); + throw Oops.Bah("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�"); } //鍑哄簱鍒嗛厤淇℃伅 - var allot = Db.Queryable<BllExportAllot>().First(m => + var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.SONo == soNo && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo); if (allot == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅"); } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; if (int.Parse(PickQty) > needQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); } //搴撳瓨鏄庣粏 - var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId); + var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.Id == allot.StockId); if (stockDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); } //搴撳瓨鎬昏〃 - var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); + var stock = await Db.Queryable<DataStock>().FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); if (stock == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); } #endregion //鑾峰彇褰撳墠鎵樼洏鎷h揣鏄庣粏 - var complete = Db.Queryable<BllCompleteDetail>().First(a => a.IsDel == "0" && a.PalletNo == palletNo && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.ExportAllotId == allot.Id && a.StockId == stockDetail.Id); + var complete = await Db.Queryable<BllCompleteDetail>().FirstAsync(a => a.IsDel == "0" && a.PalletNo == palletNo && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.ExportAllotId == allot.Id && a.StockId == stockDetail.Id); //鍒よ鏄惁瀛樺湪鎷h揣鏄庣粏 int isComplete = 0; @@ -850,7 +854,7 @@ comList.Add(completeDetail); //娣诲姞鎷h揣鏄庣粏 - Db.Insertable(comList).ExecuteCommand(); + await Db.Insertable(comList).ExecuteCommandAsync(); } else if (isComplete == 1) { @@ -858,14 +862,14 @@ complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); - Db.Updateable(complete).ExecuteCommand(); + await Db.Updateable(complete).ExecuteCommandAsync(); } //淇敼鍑哄簱鍒嗛厤淇℃伅 allot.CompleteQty += int.Parse(PickQty); allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; allot.UpdateTime = DateTime.Now; - Db.Updateable(allot).ExecuteCommand(); + await Db.Updateable(allot).ExecuteCommandAsync(); int isDel = 0; @@ -887,62 +891,62 @@ } if (stockDetail.Qty <= 0) { - Db.Deleteable(stockDetail).ExecuteCommand(); + await Db.Deleteable(stockDetail).ExecuteCommandAsync(); } else { isDel = 1; - Db.Updateable(stockDetail).ExecuteCommand(); + await Db.Updateable(stockDetail).ExecuteCommandAsync(); } //鍒犻櫎鎴栦慨鏀瑰簱瀛� stock.Qty -= int.Parse(PickQty); stock.LockQty -= int.Parse(PickQty); if (stock.Qty <= 0) { - Db.Deleteable(stock).ExecuteCommand(); + await Db.Deleteable(stock).ExecuteCommandAsync(); } else { - Db.Updateable(stock).ExecuteCommand(); + await Db.Updateable(stock).ExecuteCommandAsync(); } //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤 - var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); + var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0"); if (pallet == null) { - throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); } //鍒ゆ柇鎵樼洏涓婄墿鏂欐槸鍚︽嫞璐у畬姣� if (isDel == 0) { pallet.Status = "0"; - Db.Updateable(pallet).ExecuteCommand(); + await Db.Updateable(pallet).ExecuteCommandAsync(); } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += int.Parse(PickQty); - Db.Updateable(noticeDetail).ExecuteCommand(); + await Db.Updateable(noticeDetail).ExecuteCommandAsync(); - var num = Db.Queryable<BllExportNoticeDetail>() - .Count(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty); + var num = await Db.Queryable<BllExportNoticeDetail>() + .CountAsync(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty); if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� //淇敼鍑哄簱鍗曚俊鎭� - Db.Updateable(notice).ExecuteCommand(); + await Db.Updateable(notice).ExecuteCommandAsync(); if (notice.IsWave == "1") { - var waveNum = Db.Queryable<BllExportNotice>().Count(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4"); + var waveNum = await Db.Queryable<BllExportNotice>().CountAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4"); if (waveNum <= 0) { - var wave = Db.Queryable<BllWaveMage>().First(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo); + var wave = await Db.Queryable<BllWaveMage>().FirstAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo); if (wave != null) { wave.Status = "4"; wave.UpdateUser = userId; wave.UpdateTime = DateTime.Now; - Db.Updateable(wave).ExecuteCommand(); + await Db.Updateable(wave).ExecuteCommandAsync(); } } } @@ -956,7 +960,6 @@ catch (Exception e) { Db.RollbackTran(); - throw new Exception(e.Message); } } @@ -968,33 +971,31 @@ /// <param name="url"> </param> /// <returns></returns> /// <exception cref="Exception"></exception> - public string IssuePlnOutHouse(OutModePalletVm model, int userId, string url) + public async Task<string> IssuePlnOutHouse(OutModePalletVm model, int userId, string url) { try { - string strMsg = ""; var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚� //鑾峰彇褰撳墠鏃堕棿 DateTime serverTime = Db.GetDate(); //鑾峰彇搴撳瓨鏄庣粏鏄惁灏忎簬绛変簬璇ュ灈鏁� - string str = "select * from DataStockDetail where IsDel = '0' and SkuNo = '100099' and Status = '0' "; - var stockDetail = Db.Ado.SqlQuery<DataStockDetail>(str); + //string str = "select * from DataStockDetail where IsDel = '0' and SkuNo = '100099' and Status = '0' "; + //var stockDetail = Db.Ado.SqlQuery<DataStockDetail>(str); + var stockDetail = await Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.SkuNo == "100099" && s.Status == "0").ToListAsync(); if (stockDetail.Count > 0) { //鍒ゆ柇鏄惁澶т簬闇�瑕佸灈鏁� if (stockDetail.Count < int.Parse(model.Num)) { - strMsg = "闇�瑕佸灈鏁板ぇ浜庡簱瀛樺灈鏁帮紝璇烽噸鏂拌緭鍏�!"; - return strMsg; + throw Oops.Bah("闇�瑕佸灈鏁板ぇ浜庡簱瀛樺灈鏁帮紝璇烽噸鏂拌緭鍏�!"); } } //鑾峰彇搴撳瓨鎬昏〃淇℃伅 - var stock = Db.Queryable<DataStock>().First(s => s.IsDel == "0" && s.SkuNo == "100099"); + var stock = await Db.Queryable<DataStock>().FirstAsync(s => s.IsDel == "0" && s.SkuNo == "100099"); //楠岃瘉搴撳瓨鎬昏〃鏄惁涓虹┖ if (stock == null) { - strMsg = "搴撳瓨淇℃伅涓嶅瓨鍦紝璇锋牳鏌�!"; - return strMsg; + throw Oops.Bah("搴撳瓨淇℃伅涓嶅瓨鍦紝璇锋牳鏌�!"); } int i = 0; @@ -1005,7 +1006,7 @@ foreach (var s in stockDetail) { //鑾峰彇鍌ㄤ綅淇℃伅 - var locat = Db.Queryable<SysStorageLocat>().First(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W01"); + var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W01"); if (locat != null) { @@ -1018,7 +1019,7 @@ locat.UpdateTime = serverTime; //淇敼鏃堕棿 locat.UpdateUser = userId; //淇敼浜� //淇敼鍌ㄤ綅淇℃伅 - Db.Updateable(locat).ExecuteCommand(); + await Db.Updateable(locat).ExecuteCommandAsync(); } //澧炲姞搴撳瓨閿佸畾鏁伴噺 @@ -1027,7 +1028,7 @@ stock.UpdateTime = serverTime; //淇敼鏃堕棿 stock.UpdateUser = userId; //淇敼浜� //淇敼搴撳瓨鎬昏〃淇℃伅 - Db.Updateable(stock).ExecuteCommand(); + await Db.Updateable(stock).ExecuteCommandAsync(); //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺 //s.AllotQty += @@ -1036,7 +1037,7 @@ s.UpdateUser = userId; //淇敼浜� s.Status = "2"; //2 宸插垎閰� //淇敼搴撳瓨鏄庣粏淇℃伅 - Db.Updateable(s).ExecuteCommand(); + await Db.Updateable(s).ExecuteCommandAsync(); #region 鍒嗛厤 @@ -1068,7 +1069,7 @@ CreateUser = userId, CreateTime = DateTime.Now }; - Db.Insertable(allot).ExecuteCommand(); + await Db.Insertable(allot).ExecuteCommandAsync(); #endregion @@ -1107,7 +1108,7 @@ OutMode = model.OutMode, //鐩爣鍦板潃 Order = 1 }); - Db.Insertable(exTask).ExecuteCommand(); + await Db.Insertable(exTask).ExecuteCommandAsync(); #endregion i += 1; @@ -1137,13 +1138,17 @@ { //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// new TaskServer().EditTaskIssueOk(list2, time1, time2); - str += "涓嬪彂鎴愬姛"; + //str += "涓嬪彂鎴愬姛"; } if (wcsModel.StatusCode == -1) { new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); - throw new Exception(wcsModel.Msg); + throw Oops.Bah(wcsModel.Msg); } + } + catch (AppFriendlyException e) + { + throw Oops.Bah(e.Message); } catch (Exception ex) { @@ -1162,35 +1167,28 @@ catch (Exception e) { Db.RollbackTran(); - throw new Exception(e.Message); + return ""; } } //鑾峰彇骞冲簱鎵樼洏淇℃伅 - public List<Model.ModelDto.BoxInfo> GetPingKuInfoByPallet(string soNo, string palletNo) + public async Task<List<BoxInfo>> GetPingKuInfoByPallet(string soNo, string palletNo) { - try + var info = Db.Queryable<BllExportAllot>().Where(m => m.SONo == soNo && m.PalletNo == palletNo && m.IsDel == "0"); + if (await info.CountAsync() == 0) { - var info = Db.Queryable<BllExportAllot>().Where(m => m.SONo == soNo && m.PalletNo == palletNo && m.IsDel == "0"); - if (info.Count() == 0) - { - throw new Exception("鏈煡璇㈠埌鎵樼洏鍒嗛厤涓嬪彂鐨勪俊鎭�"); - } - - var data = info.GroupBy(m => new { m.SkuNo, m.SkuName, m.LotNo }).Select(m => new BoxInfo() - { - SkuNo = m.SkuNo, - SkuName = m.SkuName, - LotNo = m.LotNo - }).ToList(); - - return data; + throw Oops.Bah("鏈煡璇㈠埌鎵樼洏鍒嗛厤涓嬪彂鐨勪俊鎭�"); } - catch (Exception e) + + var data = await info.GroupBy(m => new { m.SkuNo, m.SkuName, m.LotNo }).Select(m => new BoxInfo() { - throw new Exception(e.Message); - } + SkuNo = m.SkuNo, + SkuName = m.SkuName, + LotNo = m.LotNo + }).ToListAsync(); + + return data; } /// <summary> @@ -1199,224 +1197,202 @@ /// <param name="soNo">鍗曟嵁鍙�</param> /// <param name="palletNo">鎵樼洏鐮�</param> /// <param name="userId">鎿嶄綔浜�</param> - public void PlaneExportSuccess(string soNo, string palletNo, int userId) + public async Task PlaneExportSuccess(string soNo, string palletNo, int userId) { + #region 鎵樼洏淇℃伅 + + //鑾峰彇鎵樼洏淇℃伅 + var pallet = await Db.Queryable<SysPallets>().FirstAsync(p => p.IsDel == "0" && p.PalletNo == palletNo); + //楠岃瘉鎵樼洏淇℃伅鏄惁涓虹┖ + if (pallet == null) + { + throw Oops.Bah("鎵樼洏淇℃伅涓嶅瓨鍦紝璇锋鏌�!"); + } + if (pallet.Status == "0") + { + throw Oops.Bah("鎵樼洏鏈娇鐢紝璇锋鏌�!"); + } + #endregion + + #region 鎵樼洏鏄惁鍦ㄥ钩搴撻獙璇� + + var result = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.PalletNo == palletNo); + if (result == null) + { + throw Oops.Bah("搴撳瓨淇℃伅涓笉瀛樺湪璇ユ墭鐩樹俊鎭紝璇锋鏌�!"); + } + + if (result.WareHouseNo != "W02")//W02锛氶浂绠卞簱 + { + throw Oops.Bah("璇ユ墭鐩樻湭鍦ㄩ浂绠卞簱锛岃妫�鏌�!"); + } + + #endregion + + #region 楠岃瘉鍌ㄤ綅鐘舵�佹槸鍚︽甯� + + var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(a => a.IsDel == "0" && a.LocatNo == result.LocatNo); + if (locat == null) + { + throw Oops.Bah("鏈幏鍙栧埌瀵瑰簲鍌ㄤ綅淇℃伅锛岃妫�鏌�!"); + } + if (locat.Status != "1") + { + throw Oops.Bah("褰撳墠鍌ㄤ綅涓嶆槸鏈夌墿鍝侊紝璇锋鏌�!"); + } + + #endregion + + //鑾峰彇搴撳瓨鏄庣粏淇℃伅 + var stockDetail = await Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.PalletNo == palletNo).ToListAsync(); + //楠岃瘉搴撳瓨鏄庣粏淇℃伅鏄惁瀛樺湪 + if (stockDetail == null) + { + throw Oops.Bah("搴撳瓨鏄庣粏涓嶅瓨鍦紝璇锋鏌ュ簱瀛樹俊鎭�!"); + } + + Db.BeginTran(); + try { - #region 鎵樼洏淇℃伅 - - //鑾峰彇鎵樼洏淇℃伅 - var pallet = Db.Queryable<SysPallets>().First(p => p.IsDel == "0" && p.PalletNo == palletNo); - //楠岃瘉鎵樼洏淇℃伅鏄惁涓虹┖ - if (pallet == null) + foreach (var item in stockDetail) { - throw new Exception("鎵樼洏淇℃伅涓嶅瓨鍦紝璇锋鏌�!"); - } - if (pallet.Status == "0") - { - throw new Exception("鎵樼洏鏈娇鐢紝璇锋鏌�!"); - } - #endregion - - #region 鎵樼洏鏄惁鍦ㄥ钩搴撻獙璇� - - var result = Db.Queryable<DataStockDetail>().First(m => m.PalletNo == palletNo); - if (result == null) - { - throw new Exception("搴撳瓨淇℃伅涓笉瀛樺湪璇ユ墭鐩樹俊鎭紝璇锋鏌�!"); - } - - if (result.WareHouseNo != "W02")//W02锛氶浂绠卞簱 - { - throw new Exception("璇ユ墭鐩樻湭鍦ㄩ浂绠卞簱锛岃妫�鏌�!"); - } - - #endregion - - #region 楠岃瘉鍌ㄤ綅鐘舵�佹槸鍚︽甯� - - var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.LocatNo == result.LocatNo); - if (locat == null) - { - throw new Exception("鏈幏鍙栧埌瀵瑰簲鍌ㄤ綅淇℃伅锛岃妫�鏌�!"); - } - if (locat.Status != "1") - { - throw new Exception("褰撳墠鍌ㄤ綅涓嶆槸鏈夌墿鍝侊紝璇锋鏌�!"); - } - - #endregion - - //鑾峰彇搴撳瓨鏄庣粏淇℃伅 - var stockDetail = Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.PalletNo == palletNo).ToList(); - //楠岃瘉搴撳瓨鏄庣粏淇℃伅鏄惁瀛樺湪 - if (stockDetail == null) - { - throw new Exception("搴撳瓨鏄庣粏涓嶅瓨鍦紝璇锋鏌ュ簱瀛樹俊鎭�!"); - } - - Db.BeginTran(); - - try - { - foreach (var item in stockDetail) + if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴� { - if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴� + //鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺 + var stock = await Db.Queryable<DataStock>().FirstAsync(m => m.SkuNo == "100099"); + + if (stock != null) { - //鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺 - var stock = Db.Queryable<DataStock>().First(m => m.SkuNo == "100099"); - - if (stock != null) + if (item.LockQty != null) { - if (item.LockQty != null) - { - stock.Qty -= item.LockQty.Value; - stock.LockQty -= item.LockQty.Value; - Db.Updateable(stock).ExecuteCommand(); - } - - if (stock.Qty == 0) - { - Db.Deleteable(stock).ExecuteCommand(); - } + stock.Qty -= item.LockQty.Value; + stock.LockQty -= item.LockQty.Value; + await Db.Updateable(stock).ExecuteCommandAsync(); } - //鎵樼洏鐘舵�佹敼涓烘湭浣跨敤 - var sCode = Db.Queryable<SysPallets>().First(m => m.PalletNo == item.PalletNo); - if (sCode != null) + if (stock.Qty == 0) { - sCode.Status = "0"; - Db.Updateable(sCode).ExecuteCommand(); + await Db.Deleteable(stock).ExecuteCommandAsync(); } - Db.Deleteable(item).ExecuteCommand(); - - continue; } - item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� - item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級 - item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級 - item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 - Db.Updateable(item).ExecuteCommand(); - } - //鍙樻洿鍌ㄤ綅鐘舵�� - locat.Status = "0";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖鍌ㄤ綅锛� - Db.Updateable(locat).ExecuteCommand(); - //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級 - var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo && m.SONo == soNo).ToList(); - - foreach (var item in allot) - { - if (item.SkuNo == "100099") + //鎵樼洏鐘舵�佹敼涓烘湭浣跨敤 + var sCode = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == item.PalletNo); + if (sCode != null) { - item.Status = "5"; - item.CompleteQty += stockDetail[0].Qty; + sCode.Status = "0"; + await Db.Updateable(sCode).ExecuteCommandAsync(); } - else - { - item.Status = "2"; - } + await Db.Deleteable(item).ExecuteCommandAsync(); + continue; } - Db.Updateable(allot).ExecuteCommand(); - - #region 娣诲姞鍑哄簱鎿嶄綔鏃ュ織璁板綍淇℃伅 - - //娣诲姞鎿嶄綔鏃ュ織璁板綍 - var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鎷h揣鏄庣粏", soNo, "瀹屾垚", $"鐢≒DA瀹屾垚浜嗗崟鎹彿涓簕soNo}鐨勫钩搴撳嚭搴�", userId); - - #endregion - - Db.CommitTran(); + item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� + item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級 + item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級 + item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 + await Db.Updateable(item).ExecuteCommandAsync(); } - catch (Exception e) + //鍙樻洿鍌ㄤ綅鐘舵�� + locat.Status = "0";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖鍌ㄤ綅锛� + await Db.Updateable(locat).ExecuteCommandAsync(); + + //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級 + var allot = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo && m.SONo == soNo).ToListAsync(); + + foreach (var item in allot) { - Db.RollbackTran(); - throw new Exception(e.Message); + if (item.SkuNo == "100099") + { + item.Status = "5"; + item.CompleteQty += stockDetail[0].Qty; + } + else + { + item.Status = "2"; + } + } + await Db.Updateable(allot).ExecuteCommandAsync(); + + #region 娣诲姞鍑哄簱鎿嶄綔鏃ュ織璁板綍淇℃伅 + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鎷h揣鏄庣粏", soNo, "瀹屾垚", $"鐢≒DA瀹屾垚浜嗗崟鎹彿涓簕soNo}鐨勫钩搴撳嚭搴�", userId); + + #endregion + + Db.CommitTran(); } catch (Exception e) { - throw new Exception(e.Message); + Db.RollbackTran(); } } //鏍规嵁鎵樼洏鍙疯幏鍙栧彇鏍风被鍨� - public string GetSampleType(string palletNo) + public async Task<string> GetSampleType(string palletNo) { - try + var type = ""; + var detail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); + if (detail == null) { - var type = ""; - var detail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); - if (detail == null) - { - throw new Exception("褰撳墠鎵樼洏鏈湪搴撳瓨涓�"); - } - //鎬庝箞鍒ゆ柇褰撳墠鎵樼洏鏄簱澶栬鍙栨牱鐨勬墭鐩橈紝姝e父鍑哄簱鍓╀綑鎵樼洏鐩墠杩欑鎯呭喌涔熻兘鎷h揣鍟婏紝涔熸病鏈夊垎閰嶄俊鎭� - var allot = Db.Queryable<BllExportAllot>().First(m => - m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6"); - if (allot != null) - { - var soNo = Db.Queryable<BllExportNotice>() - .First(m => m.IsDel == "0" && m.SONo == allot.SONo); - if (soNo == null) - { - throw new Exception("鏈壘鍒版墭鐩樹笂鍑哄簱鍗曟嵁淇℃伅"); - } - if (soNo.Type != "3") - { - throw new Exception("璇ユ墭鐩樹笉鏄彇鏍锋墭鐩�"); - } - type = "0";//搴撳唴鍙栨牱 - } - else - { - //鍒ゆ柇褰撳墠鎵樼洏鏄惁鏄湪骞冲簱鎴栧簱澶� - type = "1";//搴撳墠鍙栨牱 - } - return type; + throw Oops.Bah("褰撳墠鎵樼洏鏈湪搴撳瓨涓�"); } - catch (Exception e) + //鎬庝箞鍒ゆ柇褰撳墠鎵樼洏鏄簱澶栬鍙栨牱鐨勬墭鐩橈紝姝e父鍑哄簱鍓╀綑鎵樼洏鐩墠杩欑鎯呭喌涔熻兘鎷h揣鍟婏紝涔熸病鏈夊垎閰嶄俊鎭� + var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m => + m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6"); + if (allot != null) { - throw new Exception(e.Message); + var soNo = await Db.Queryable<BllExportNotice>() + .FirstAsync(m => m.IsDel == "0" && m.SONo == allot.SONo); + if (soNo == null) + { + throw Oops.Bah("鏈壘鍒版墭鐩樹笂鍑哄簱鍗曟嵁淇℃伅"); + } + if (soNo.Type != "3") + { + throw Oops.Bah("璇ユ墭鐩樹笉鏄彇鏍锋墭鐩�"); + } + type = "0";//搴撳唴鍙栨牱 } + else + { + //鍒ゆ柇褰撳墠鎵樼洏鏄惁鏄湪骞冲簱鎴栧簱澶� + type = "1";//搴撳墠鍙栨牱 + } + return type; } //鏍规嵁鎵樼洏鍙疯幏鍙栧叆搴撳崟鎹� - public List<string> GetAsnNoByPallet(string palletNo) + public async Task<List<string>> GetAsnNoByPallet(string palletNo) { - try + var type = ""; + var detail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); + if (detail == null) { - var type = ""; - var detail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); - if (detail == null) - { - throw new Exception("褰撳墠鎵樼洏鏈湪搴撳瓨涓�"); - } + throw Oops.Bah("褰撳墠鎵樼洏鏈湪搴撳瓨涓�"); + } - var list = new List<string>(); - if (string.IsNullOrWhiteSpace(detail.ASNNo)) - { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍏ュ簱鍗曚俊鎭�"); - } - list.Add(detail.ASNNo); - return list; - } - catch (Exception e) + var list = new List<string>(); + if (string.IsNullOrWhiteSpace(detail.ASNNo)) { - throw new Exception(e.Message); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樼殑鍏ュ簱鍗曚俊鎭�"); } + list.Add(detail.ASNNo); + return list; } //鍙栨牱鍑哄簱鎷h揣(鏍囩) - public void SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string asnNo, int userId) + public async Task SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string asnNo, int userId) { Db.BeginTran(); try { if (string.IsNullOrWhiteSpace(soType)) { - throw new Exception("鍙栨牱鏍囪瘑涓嶈兘涓虹┖"); + throw Oops.Bah("鍙栨牱鏍囪瘑涓嶈兘涓虹┖"); } //soType: 0搴撳唴鍙栨牱锛屾湁鍑哄簱鍗曞強鍒嗛厤淇℃伅锛� 1搴撳墠鍙栨牱锛屽弽鍚戞坊鍔犲嚭搴撳崟鍙婂垎閰嶄俊鎭� @@ -1427,46 +1403,46 @@ if (string.IsNullOrWhiteSpace(asnNo)) { - throw new Exception("鍏ュ簱鍗曚笉鑳戒负绌�"); + throw Oops.Bah("鍏ュ簱鍗曚笉鑳戒负绌�"); } if (string.IsNullOrWhiteSpace(palletNo)) { - throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); + throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�"); } if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0) { - throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); + throw Oops.Bah("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } //鍏堝垽鏂槸鍚︽槸搴撳鍙栨牱鎵樼洏 - var allot = Db.Queryable<BllExportAllot>().First(m => + var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6"); if (allot != null) { - throw new Exception("褰撳墠鎵樼洏涓嶅睘浜庡簱鍓嶅彇鏍�"); + throw Oops.Bah("褰撳墠鎵樼洏涓嶅睘浜庡簱鍓嶅彇鏍�"); } //搴撳瓨鏄庣粏 - var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNNo == asnNo && m.PalletNo == palletNo); + var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.ASNNo == asnNo && m.PalletNo == palletNo); if (stockDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑搴撳瓨鏄庣粏淇℃伅锛�"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樼殑搴撳瓨鏄庣粏淇℃伅锛�"); } var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == stockDetail.SkuNo); if (sku == null) { - throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏涓婄殑鐗╂枡淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌褰撳墠鎵樼洏涓婄殑鐗╂枡淇℃伅"); } //搴撳瓨鎬昏〃 - var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); + var stock = await Db.Queryable<DataStock>().FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); if (stock == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); } //鍑哄簱鍗� - var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo); + var notice = await Db.Queryable<BllExportNotice>().FirstAsync(m => m.IsDel == "0" && m.AsnSampleNo == asnNo); //鍒涘缓鍑哄簱鍗� if (notice == null || notice.Status == "6") { @@ -1477,7 +1453,7 @@ //鑾峰彇鑷鍗曟嵁鍙� billNo = new Common().GetMaxNo("SO"); var no = billNo; - bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no); + bl = await Db.Queryable<BllExportNotice>().AnyAsync(m => m.SONo == no); } while (bl); @@ -1495,12 +1471,12 @@ CreateUser = userId, }; - var n = Db.Insertable(addNotice).ExecuteReturnEntity(); + var n = await Db.Insertable(addNotice).ExecuteReturnEntityAsync(); notice = n; } //鍒涘缓鍑哄簱鍗曟槑缁� - var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.SONo == notice.SONo && m.SkuNo == stockDetail.SkuNo && m.LotNo.Contains(stockDetail.LotNo)); + var noticeDetail = await Db.Queryable<BllExportNoticeDetail>().FirstAsync(m => m.IsDel == "0" && m.SONo == notice.SONo && m.SkuNo == stockDetail.SkuNo && m.LotNo.Contains(stockDetail.LotNo)); if (noticeDetail == null) { var addNoticeDetail = new BllExportNoticeDetail() @@ -1528,11 +1504,11 @@ CreateUser = userId, }; - var m = Db.Insertable(addNoticeDetail).ExecuteReturnEntity(); + var m = await Db.Insertable(addNoticeDetail).ExecuteReturnEntityAsync(); noticeDetail = m; } //鍑哄簱鍒嗛厤淇℃伅 - var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == notice.SONo && m.PalletNo == palletNo); + var allot2 = await Db.Queryable<BllExportAllot>().FirstAsync(m => m.IsDel == "0" && m.Status == "5" && m.SONo == notice.SONo && m.PalletNo == palletNo); if (allot2 == null) { //娣诲姞鍒嗛厤琛ㄤ俊鎭� @@ -1564,7 +1540,7 @@ UpdateTime = DateTime.Now }; - var fp = Db.Insertable(addAllot).ExecuteReturnEntity(); + var fp = await Db.Insertable(addAllot).ExecuteReturnEntityAsync(); allot2 = fp; } @@ -1576,34 +1552,34 @@ var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐� List<DataBoxInfo> boxInfos; var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); - if (boxInfo.Count() == 0) + if (await boxInfo.CountAsync() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); } - boxInfos = boxInfo.ToList(); - var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot2.Id && m.PalletNo == palletNo).ToList(); + boxInfos = await boxInfo.ToListAsync(); + var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot2.Id && m.PalletNo == palletNo).ToListAsync(); if (!string.IsNullOrWhiteSpace(boxNo3)) //鏁f敮鎷h揣 { boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo3).ToList(); if (boxInfos.Count() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); } if (boxInfos.Count() > 1) { - throw new Exception("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�"); + throw Oops.Bah("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�"); } if (boxInfos.Any(m => m.PalletNo != palletNo)) { - throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); + throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); } foreach (var item in boxInfos) { if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3)) { - throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); + throw Oops.Bah($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); } } biaoShi = "1"; @@ -1612,12 +1588,12 @@ { if (boxInfo.Count() > 1) { - throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); + throw Oops.Bah("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } decimal boxQty = boxInfo.First().Qty; if (Convert.ToInt32(pickQty1) > boxQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); } biaoShi = "2"; @@ -1626,17 +1602,17 @@ { if (boxInfo.Count() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅"); } if (boxInfo.Any(m => m.PalletNo != palletNo)) { - throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); + throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); } foreach (var item in boxInfos) { if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo == item.BoxNo)) { - throw new Exception($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); + throw Oops.Bah($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); } } } @@ -1677,21 +1653,21 @@ if (biaoShi != "2") { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - Db.Deleteable(item).ExecuteCommand(); + await Db.Deleteable(item).ExecuteCommandAsync(); } else//鏁伴噺鎷h揣 { if (decimal.Parse(pickQty1) == item.Qty) { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - Db.Deleteable(item).ExecuteCommand(); + await Db.Deleteable(item).ExecuteCommandAsync(); } else { item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 item.InspectMark = "1";//鎶芥绠辨爣璇� - Db.Updateable(item).ExecuteCommand(); + await Db.Updateable(item).ExecuteCommandAsync(); } } pickQty += biaoShi == "2" ? decimal.Parse(pickQty1) : item.Qty; @@ -1706,15 +1682,15 @@ { item.BitBoxMark = "1"; item.InspectMark = "1"; - Db.Updateable(item).ExecuteCommand(); + await Db.Updateable(item).ExecuteCommandAsync(); } } - Db.Insertable(comList).ExecuteCommand(); + await Db.Insertable(comList).ExecuteCommandAsync(); //淇敼鍑哄簱鍒嗛厤淇℃伅 allot2.Qty += pickQty; allot2.CompleteQty += pickQty; - Db.Updateable(allot2).ExecuteCommand(); + await Db.Updateable(allot2).ExecuteCommandAsync(); //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� @@ -1722,32 +1698,32 @@ if (stockDetail.Qty <= 0) { - Db.Deleteable(stockDetail).ExecuteCommand(); + await Db.Deleteable(stockDetail).ExecuteCommandAsync(); } else { - Db.Updateable(stockDetail).ExecuteCommand(); + await Db.Updateable(stockDetail).ExecuteCommandAsync(); } stock.Qty -= pickQty; if (stock.Qty <= 0) { - Db.Deleteable(stock).ExecuteCommand(); + await Db.Deleteable(stock).ExecuteCommandAsync(); } else { - Db.Updateable(stock).ExecuteCommand(); + await Db.Updateable(stock).ExecuteCommandAsync(); } - var num2 = Db.Queryable<DataStockDetail>().Count(m => m.IsDel == "0" && m.PalletNo == palletNo); + var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); if (num2 <= 0) { //鏀瑰彉鎵樼洏鐘舵�� - var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); + var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0"); if (pallet == null) { - throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); } pallet.Status = "0"; - Db.Updateable(pallet).ExecuteCommand(); + await Db.Updateable(pallet).ExecuteCommandAsync(); } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.Qty += pickQty; @@ -1755,7 +1731,7 @@ noticeDetail.FactQty += pickQty; noticeDetail.CompleteQty += pickQty; noticeDetail.Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * noticeDetail.Qty; - Db.Updateable(noticeDetail).ExecuteCommand(); + await Db.Updateable(noticeDetail).ExecuteCommandAsync(); } else if (soType == "0") @@ -1764,60 +1740,60 @@ if (string.IsNullOrWhiteSpace(soNo)) { - throw new Exception("鍑哄簱鍗曟嵁涓嶈兘涓虹┖"); + throw Oops.Bah("鍑哄簱鍗曟嵁涓嶈兘涓虹┖"); } if (string.IsNullOrWhiteSpace(soDetailId)) { - throw new Exception("鍑哄簱鐗╂枡-鎵规涓嶈兘涓虹┖"); + throw Oops.Bah("鍑哄簱鐗╂枡-鎵规涓嶈兘涓虹┖"); } if (string.IsNullOrWhiteSpace(palletNo)) { - throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); + throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�"); } if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0) { - throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); + throw Oops.Bah("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } //鍑哄簱鍗� - var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo); + var notice = await Db.Queryable<BllExportNotice>().FirstAsync(m => m.IsDel == "0" && m.SONo == soNo); if (notice == null) { - throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); + throw Oops.Bah("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); } if (notice.Status != "3") { - throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); + throw Oops.Bah("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); } //鍑哄簱鍗曟槑缁� - var noticeDetail = Db.Queryable<BllExportNoticeDetail>() - .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); + var noticeDetail = await Db.Queryable<BllExportNoticeDetail>() + .FirstAsync(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); if (noticeDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�"); + throw Oops.Bah("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�"); } //鍑哄簱鍒嗛厤淇℃伅 - var allot = Db.Queryable<BllExportAllot>().First(m => + var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.SONo == soNo && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo); if (allot == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅"); } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; //搴撳瓨鏄庣粏 - var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId); + var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.Id == allot.StockId); if (stockDetail == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); } //搴撳瓨鎬昏〃 - var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); + var stock = await Db.Queryable<DataStock>().FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); if (stock == null) { - throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); } #endregion @@ -1825,39 +1801,39 @@ var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐� List<DataBoxInfo> boxInfos; var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); - if (boxInfo.Count() == 0) + if (await boxInfo.CountAsync() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); } - boxInfos = boxInfo.ToList(); - var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList(); + boxInfos = await boxInfo.ToListAsync(); + var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToListAsync(); if (!string.IsNullOrWhiteSpace(boxNo3)) //鏁f敮鎷h揣 { boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo3).ToList(); if (boxInfos.Count() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); } if (boxInfos.Count() > 1) { - throw new Exception("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�"); + throw Oops.Bah("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�"); } if (boxInfos.Any(m => m.PalletNo != palletNo)) { - throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); + throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); } var boxQty = boxInfos.First().Qty; if (boxQty > needQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } foreach (var item in boxInfos) { if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3)) { - throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); + throw Oops.Bah($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); } } biaoShi = "1"; @@ -1866,16 +1842,16 @@ { if (boxInfo.Count() > 1) { - throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); + throw Oops.Bah("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } decimal boxQty = boxInfo.First().Qty; if (Convert.ToInt32(pickQty1) > boxQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); } if (Convert.ToInt32(pickQty1) > needQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } biaoShi = "2"; @@ -1884,22 +1860,22 @@ { if (boxInfo.Count() == 0) { - throw new Exception("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅"); + throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅"); } if (boxInfo.Any(m => m.PalletNo != palletNo)) { - throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); + throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); } var boxQty = boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToList(); if (boxQty[0] > needQty) { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); + throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); } foreach (var item in boxInfos) { if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo == item.BoxNo)) { - throw new Exception($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); + throw Oops.Bah($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣"); } } } @@ -1939,21 +1915,21 @@ if (biaoShi != "2") { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - Db.Deleteable(item).ExecuteCommand(); + await Db.Deleteable(item).ExecuteCommandAsync(); } else//鏁伴噺鎷h揣 { if (decimal.Parse(pickQty1) == item.Qty) { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - Db.Deleteable(item).ExecuteCommand(); + await Db.Deleteable(item).ExecuteCommandAsync(); } else { item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 item.InspectMark = "1"; //鎶芥绠辨爣璇� - Db.Updateable(item).ExecuteCommand(); + await Db.Updateable(item).ExecuteCommandAsync(); } } pickQty += item.Qty; @@ -1965,11 +1941,11 @@ foreach (var item in boxSurplusList) { item.BitBoxMark = "1"; - Db.Updateable(item).ExecuteCommand(); + await Db.Updateable(item).ExecuteCommandAsync(); } } - Db.Insertable(comList).ExecuteCommand(); + await Db.Insertable(comList).ExecuteCommandAsync(); //淇敼鍑哄簱鍒嗛厤淇℃伅 allot.CompleteQty += pickQty; allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; @@ -1978,7 +1954,7 @@ { //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴� } - Db.Updateable(allot).ExecuteCommand(); + await Db.Updateable(allot).ExecuteCommandAsync(); //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� @@ -2000,47 +1976,47 @@ if (stockDetail.Qty <= 0) { - Db.Deleteable(stockDetail).ExecuteCommand(); + await Db.Deleteable(stockDetail).ExecuteCommandAsync(); } else { - Db.Updateable(stockDetail).ExecuteCommand(); + await Db.Updateable(stockDetail).ExecuteCommandAsync(); } stock.Qty -= pickQty; stock.LockQty -= pickQty; stock.IsSampling = "1"; if (stock.Qty <= 0) { - Db.Deleteable(stock).ExecuteCommand(); + await Db.Deleteable(stock).ExecuteCommandAsync(); } else { - Db.Updateable(stock).ExecuteCommand(); + await Db.Updateable(stock).ExecuteCommandAsync(); } - var num2 = Db.Queryable<DataStockDetail>().Count(m => m.IsDel == "0" && m.PalletNo == palletNo); + var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); if (num2 <= 0) { //鏀瑰彉鎵樼洏鐘舵�� - var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); + var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0"); if (pallet == null) { - throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); } pallet.Status = "0"; - Db.Updateable(pallet).ExecuteCommand(); + await Db.Updateable(pallet).ExecuteCommandAsync(); } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; - Db.Updateable(noticeDetail).ExecuteCommand(); + await Db.Updateable(noticeDetail).ExecuteCommandAsync(); - var num = Db.Queryable<BllExportNoticeDetail>() - .Count(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty); + var num = await Db.Queryable<BllExportNoticeDetail>() + .CountAsync(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty); if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� } //淇敼鍑哄簱鍗曚俊鎭� - Db.Updateable(notice).ExecuteCommand(); + await Db.Updateable(notice).ExecuteCommandAsync(); } //娣诲姞鎿嶄綔鏃ュ織璁板綍 var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鍑哄簱", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId); @@ -2049,7 +2025,6 @@ catch (Exception e) { Db.RollbackTran(); - throw new Exception(e.Message); } } -- Gitblit v1.8.0