From 4e36cf33cda2a9fee04e7e33691bcc0c0d68576f Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期六, 02 八月 2025 14:41:31 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 211 insertions(+), 22 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 4cc999e..0b84754 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -1475,7 +1475,7 @@ } } - //杞﹂棿pda鎷h揣 + //杞﹂棿pda鎷h揣 - 鏍囩 public async Task ChejianPick(string palletNo, string boxNo, int userId) { Db.BeginTran(); @@ -1489,7 +1489,7 @@ } if (string.IsNullOrEmpty(boxNo)) { - throw Oops.Bah("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); + throw Oops.Bah("绠辩爜涓嶅彲涓虹┖"); } //绠辩爜鏄庣粏 @@ -1502,26 +1502,37 @@ boxInfos = await boxInfo.ToListAsync(); //搴撳瓨鏄庣粏 - var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == boxInfos.First().SkuNo && m.LotNo == boxInfos.First().LotNo); + var stockDetail = await Db.Queryable<DataStockDetail>() + .FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo + && m.SkuNo == boxInfos.First().SkuNo && m.LotNo == boxInfos.First().LotNo); if (stockDetail == null) { throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�"); } + string lotNpstr = boxInfos.First().LotNo; + string skuNo = boxInfos.First().SkuNo; + string skuName = boxInfos.First().SkuName; + + // 楠岃瘉鏄惁杞﹂棿绾胯竟浠撳簱 var areaList = new List<string>() { "B06", "B07", "B09" }; if (!areaList.Contains(stockDetail.AreaNo)) { throw Oops.Bah("鎵樼洏涓嶆槸杞﹂棿鎵樼洏锛�"); } + //搴撳瓨鎬昏〃 - var stock = await Db.Queryable<DataStock>().FirstAsync(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 Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); } #endregion - var pickQty = boxInfos.Sum(m => m.Qty); + + // 鍒犻櫎绠变换鍔� + await Db.Deleteable(boxInfos).ExecuteCommandAsync(); //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� @@ -1558,6 +1569,7 @@ { await Db.Updateable(stock).ExecuteCommandAsync(); } + var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); if (num2 <= 0) { @@ -1570,9 +1582,179 @@ pallet.Status = "0"; await Db.Updateable(pallet).ExecuteCommandAsync(); } - + + #region 鎻掑叆杞﹂棿鍑哄叆搴撹褰曡〃 + //鎻掑叆鍏ュ簱鏃ュ織 + var _log = new LogWorkShop + { + Type = "1",//绫诲瀷锛�0锛氬叆搴� 1锛氬嚭搴� + PalletNo = palletNo, + BoxNo = boxNo, + LotNo = lotNpstr, + SkuNo = skuNo, + SkuName = skuName, + Qty = pickQty + }; + // 鎻掑叆杞﹂棿鍑哄簱璁板綍 + Db.Insertable(_log).ExecuteCommand(); + #endregion + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 - var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "杞﹂棿鍑哄簱", boxNo, "鎷h揣", $"鍦≒DA涓婂绠卞彿涓猴細{boxNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId); + var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "杞﹂棿鍑哄簱", + boxNo, "鍑哄簱", $"鍦≒DA涓婂绠卞彿涓猴細{boxNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId); + Db.CommitTran(); + } + catch (AppFriendlyException e) + { + Db.RollbackTran(); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + // 杞﹂棿Pda鎷h揣-鏁伴噺 + public async Task ChejianPickNum(PdaSoVm model, int userId) + { + Db.BeginTran(); + try + { + #region 鍒ゆ柇 + + if (string.IsNullOrWhiteSpace(model.PalletNo)) + { + throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�"); + } + if (string.IsNullOrWhiteSpace(model.SkuNo)) + { + throw Oops.Bah("鐗╂枡缂栫爜涓嶈兘涓虹┖"); + } + + decimal skuNum = 0; + if (string.IsNullOrEmpty(model.PickQty)) + { + throw Oops.Bah("鐗╂枡鏁伴噺涓嶅彲涓簄ull"); + } + else + { + skuNum = decimal.Parse(model.PickQty); + if (skuNum <= 0) + { + throw Oops.Bah("鐗╂枡鏁伴噺搴斿ぇ浜�0锛�"); + } + } + + // 鍒ゆ柇鏄惁璐存爣鐗╂枡 + var skuModel = await Db.Queryable<SysMaterials>().FirstAsync(m => m.IsDel == "0" && m.SkuNo == model.SkuNo); + if (skuModel == null) + { + throw Oops.Bah("鐗╂枡涓嶅瓨鍦紝璇锋鏌ョ墿鏂欑紪鐮佹槸鍚︽嫰鍗达紒"); + } + else + { + if (skuModel.IsPasteCode != "0") + { + throw Oops.Bah("璇ョ墿鏂欎负璐存爣鐗╂枡锛岃鍒版爣绛鹃〉闈㈡嫞璐э紒"); + } + } + + + //搴撳瓨鏄庣粏 + var stockDetail = await Db.Queryable<DataStockDetail>() + .FirstAsync(m => m.IsDel == "0" && m.PalletNo == model.PalletNo + && m.SkuNo == model.SkuNo && m.LotNo == model.LotNo); + if (stockDetail == null) + { + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樹笂璐х墿鐨勫簱瀛樻槑缁嗕俊鎭紒"); + } + + // 楠岃瘉鏄惁杞﹂棿绾胯竟浠撳簱 + var areaList = new List<string>() { "B06", "B07", "B09" }; + if (!areaList.Contains(stockDetail.AreaNo)) + { + throw Oops.Bah("鎵樼洏涓嶆槸杞﹂棿鎵樼洏锛�"); + } + + //搴撳瓨鎬昏〃 + var stock = await Db.Queryable<DataStock>() + .FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); + if (stock == null) + { + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樹笂璐х墿鐨勫簱瀛樹俊鎭紒"); + } + #endregion + + var pickQty = skuNum; + + //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� + stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� + stockDetail.Qty -= 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) + { + await Db.Deleteable(stockDetail).ExecuteCommandAsync(); + } + else + { + await Db.Updateable(stockDetail).ExecuteCommandAsync(); + } + stock.Qty -= pickQty; + if (stock.Qty <= 0) + { + await Db.Deleteable(stock).ExecuteCommandAsync(); + } + else + { + await Db.Updateable(stock).ExecuteCommandAsync(); + } + + var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); + if (num2 <= 0) + { + //鏀瑰彉鎵樼洏鐘舵�� + var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == model.PalletNo && m.IsDel == "0"); + if (pallet == null) + { + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + } + pallet.Status = "0"; + await Db.Updateable(pallet).ExecuteCommandAsync(); + } + + #region 鎻掑叆杞﹂棿鍑哄叆搴撹褰曡〃 + // 鍒涘缓瀹炰綋 + var _log = new LogWorkShop + { + Type = "1",//绫诲瀷锛�0锛氬叆搴� 1锛氬嚭搴� + PalletNo = model.PalletNo, + BoxNo = "", + LotNo = model.LotNo, + SkuNo = skuModel.SkuNo, + SkuName = skuModel.SkuName, + Qty = pickQty + }; + // 鎻掑叆杞﹂棿鍑哄簱璁板綍 + Db.Insertable(_log).ExecuteCommand(); + #endregion + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "杞﹂棿鍑哄簱", + skuModel.SkuName, "鎷h揣", $"鍦≒DA杞﹂棿鍑哄簱椤典笂瀵癸細锛歿skuModel.SkuName}鐨勭墿鏂欒繘琛屾嫞璐ф搷浣�", userId); Db.CommitTran(); } catch (AppFriendlyException e) @@ -2546,10 +2728,8 @@ else { stockDetail.Status = "0"; - } - //鍒ゆ柇鎵樼洏涓婅繕鏈夋病鏈夊叾浠栫墿鏂� - var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && w.Id != stockDetail.Id); - if (stockDetail.Qty <= 0 && palletData == null) + } + if (stockDetail.Qty <= 0) { await Db.Deleteable(stockDetail).ExecuteCommandAsync(); } @@ -2578,7 +2758,9 @@ } //鍒ゆ柇鎵樼洏涓婄墿鏂欐槸鍚︽嫞璐у畬姣� - if (isDel == 0) + //鍒ゆ柇鎵樼洏涓婅繕鏈夋病鏈夊叾浠栫墿鏂� + var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && w.Id != stockDetail.Id); + if (isDel == 0 && palletData == null) { pallet.Status = "0"; await Db.Updateable(pallet).ExecuteCommandAsync(); @@ -2640,8 +2822,8 @@ //鑾峰彇褰撳墠鏃堕棿 DateTime serverTime = Db.GetDate(); //鑾峰彇搴撳瓨鏄庣粏鏄惁灏忎簬绛変簬璇ュ灈鏁� - - var stockDetail = await Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.SkuNo == "100099" && s.Status == "0" && !string.IsNullOrWhiteSpace(s.WareHouseNo)).ToListAsync(); + + var stockDetail = await Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.SkuNo == "100099" && s.Status == "0" && s.WareHouseNo == "W02").ToListAsync(); if (stockDetail.Count > 0) { //鍒ゆ柇鏄惁澶т簬闇�瑕佸灈鏁� @@ -2658,16 +2840,26 @@ { throw Oops.Bah("搴撳瓨淇℃伅涓嶅瓨鍦紝璇锋牳鏌�!"); } - + //鐩爣鍌ㄤ綅淇℃伅 + var endLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.OutMode); + if (endLocat == null) + { + throw Oops.Bah("搴撳瓨淇℃伅涓嶅瓨鍦紝璇锋牳鏌�!"); + } + //if (endLocat.Status != "0") + //{ + // throw Oops.Bah("鐩爣鍌ㄤ綅涓嶆槸绌哄偍浣嶏紝璇锋牳鏌�!"); + //} int i = 0; + //寮�鍚簨鍔� Db.BeginTran(); //閬嶅巻搴撳瓨淇℃伅 foreach (var s in stockDetail) { //鑾峰彇鍌ㄤ綅淇℃伅 - var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && (l.WareHouseNo == "W01"||l.WareHouseNo == "W02")); + var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W02"); if (locat == null) { @@ -2681,7 +2873,7 @@ locat.Status = "3"; //3 鍑哄簱涓� locat.UpdateTime = serverTime; //淇敼鏃堕棿 locat.UpdateUser = userId; //淇敼浜� - //淇敼鍌ㄤ綅淇℃伅 + //淇敼鍌ㄤ綅淇℃伅 await Db.Updateable(locat).ExecuteCommandAsync(); //澧炲姞搴撳瓨閿佸畾鏁伴噺 @@ -2726,7 +2918,7 @@ Status = "1", LogisticsId = 0, IsAdvance = "0", - OutMode = model.OutMode,//鍑哄簱鍙� + OutMode = model.OutMode,//鍑哄簱鐩爣鍌ㄤ綅 CreateUser = userId, CreateTime = DateTime.Now @@ -2777,7 +2969,7 @@ EndRoadway = endroad, Order = 999, - Type = locat.WareHouseNo == "W01"?PLCTypeEnum.ShuttleCar : PLCTypeEnum.AGV + Type = PLCTypeEnum.AGV,//locat.WareHouseNo == "W01"?PLCTypeEnum.ShuttleCar : PLCTypeEnum.AGV }); await Db.Insertable(exTask).ExecuteCommandAsync(); @@ -5119,9 +5311,6 @@ return data; } - - - #endregion } -- Gitblit v1.8.0