From 86e443e42c4bee972c5b795def4917e02f98ce40 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期五, 11 七月 2025 16:45:08 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 226 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 207 insertions(+), 19 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 4839936..ad3c91d 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) @@ -2040,7 +2222,7 @@ if (string.IsNullOrWhiteSpace(boxNo))//鏁存墭鎷h揣 { List<DataBoxInfo> boxInfos; - var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo);//鎵惧埌鎵樼洏涓婃墍鏈夌鐮� + var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == stockDetail.SkuNo && m.LotNo == stockDetail.LotNo);//鎵惧埌鎵樼洏涓婃墍鏈夌鐮� boxInfos = await boxInfo.ToListAsync(); if (boxInfo.Count() <= 0) { @@ -2112,14 +2294,20 @@ { await Db.Updateable(stock).ExecuteCommandAsync(); } - //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤 - var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); - if (pallet == null) + //鍒ゆ柇鎵樼洏涓婅繕鏈夋病鏈夊叾浠栫墿鏂� + var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && w.Id != stockDetail.Id); + if (palletData == null) { - throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤 + var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); + if (pallet == null) + { + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + } + pallet.Status = "0"; + await Db.Updateable(pallet).ExecuteCommandAsync(); } - pallet.Status = "0"; - await Db.Updateable(pallet).ExecuteCommandAsync(); + //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; await Db.Updateable(noticeDetail).ExecuteCommandAsync(); @@ -2541,7 +2729,9 @@ { stockDetail.Status = "0"; } - if (stockDetail.Qty <= 0) + //鍒ゆ柇鎵樼洏涓婅繕鏈夋病鏈夊叾浠栫墿鏂� + var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && w.Id != stockDetail.Id); + if (stockDetail.Qty <= 0 && palletData == null) { await Db.Deleteable(stockDetail).ExecuteCommandAsync(); } @@ -2642,6 +2832,7 @@ throw Oops.Bah("闇�瑕佸灈鏁板ぇ浜庡簱瀛樺灈鏁帮紝璇烽噸鏂拌緭鍏�!"); } } + stockDetail = new AllotSku().GetDataListOrder(stockDetail); //鑾峰彇搴撳瓨鎬昏〃淇℃伅 var stock = await Db.Queryable<DataStock>().FirstAsync(s => s.IsDel == "0" && s.SkuNo == "100099"); //楠岃瘉搴撳瓨鎬昏〃鏄惁涓虹┖ @@ -2745,7 +2936,7 @@ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - CreateTime = serverTime, //鍒涘缓鏃堕棿 + CreateTime = Db.GetDate(), //鍒涘缓鏃堕棿 CreateUser = userId, //鍒涘缓浜� Msg = "Pda绌烘墭浠�" + s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 //FinishDate = serverTime, //瀹屾垚鏃堕棿 @@ -5110,9 +5301,6 @@ return data; } - - - #endregion } -- Gitblit v1.8.0