From f147cfa91feec613eb304c78fecafdf43286034a Mon Sep 17 00:00:00 2001 From: Administrator <Administrator@DESKTOP-5BIMHQ3> Date: 星期六, 30 三月 2024 11:12:24 +0800 Subject: [PATCH] Merge branch 'wxw' --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 204 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 138 insertions(+), 66 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index a0e81f2..b1a74da 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -68,7 +68,7 @@ throw new Exception("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜"); } var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo); - if (!string.IsNullOrEmpty(palletInfo.WareHouseNo)) + if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") { throw new Exception("璇ユ墭鐩樿繕鏈嚭搴�"); } @@ -447,7 +447,7 @@ { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); } - var pickQty = 0;//鎷h揣鐨勬暟閲� + decimal pickQty = 0;//鎷h揣鐨勬暟閲� var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList(); var comList = new List<BllCompleteDetail>(); foreach (var item in boxInfos) @@ -580,7 +580,7 @@ { throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } - int boxQty = boxInfo.First().Qty; + decimal boxQty = boxInfo.First().Qty; if (Convert.ToInt32(pickQty1) > boxQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); @@ -616,7 +616,7 @@ } } } - var pickQty = 0;//鎷h揣鐨勬暟閲� + decimal pickQty = 0;//鎷h揣鐨勬暟閲� var comList = new List<BllCompleteDetail>(); foreach (var item in boxInfos) @@ -837,6 +837,7 @@ var comList = new List<BllCompleteDetail>(); //鍒ゆ柇鏄惁瀛樺湪鎷h揣鏄庣粏 + isComplete = 0;// 鎵�鏈夋棤绠辩爜鎴栦竴绾х鐮佹嫞璐ф椂锛屾嫞璐ф槑缁嗗簲閲嶆柊鎻掑叆鏁版嵁(浣撶幇澶氭鎷h揣娴佺▼璁板綍) if (isComplete == 0) { //娣诲姞鎷h揣鏄庣粏 @@ -875,8 +876,6 @@ Db.Updateable(complete).ExecuteCommand(); } - - //淇敼鍑哄簱鍒嗛厤淇℃伅 allot.CompleteQty += int.Parse(PickQty); @@ -1234,6 +1233,20 @@ #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(); //楠岃瘉搴撳瓨鏄庣粏淇℃伅鏄惁瀛樺湪 @@ -1285,6 +1298,10 @@ 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(); @@ -1597,7 +1614,7 @@ { throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } - int boxQty = boxInfo.First().Qty; + decimal boxQty = boxInfo.First().Qty; if (Convert.ToInt32(pickQty1) > boxQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); @@ -1623,7 +1640,7 @@ } } } - var pickQty = 0;//鎷h揣鐨勬暟閲� + decimal pickQty = 0;//鎷h揣鐨勬暟閲� var comList = new List<BllCompleteDetail>(); foreach (var item in boxInfos) @@ -1851,7 +1868,7 @@ { throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } - int boxQty = boxInfo.First().Qty; + decimal boxQty = boxInfo.First().Qty; if (Convert.ToInt32(pickQty1) > boxQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); @@ -1886,7 +1903,7 @@ } } } - var pickQty = 0;//鎷h揣鐨勬暟閲� + decimal pickQty = 0;//鎷h揣鐨勬暟閲� var comList = new List<BllCompleteDetail>(); foreach (var item in boxInfos) @@ -2544,6 +2561,13 @@ { throw new Exception("鏂版墭鐩樼爜涓嶈兘涓虹┖"); } + if (palletNo == palletNoNew)//鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷� + { + if (!string.IsNullOrEmpty(boxNo)) + { + throw new Exception("鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷达紝璇烽�夋嫨鏁存墭鍑哄簱"); + } + } //鍑哄簱鍗� var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo); @@ -2594,13 +2618,16 @@ var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew); if (pinStockDetail != null) { - if (pinStockDetail.SONo != notice.SONo) + if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐� { - throw new Exception("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�"); - } - if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) - { - isNew = true; + if (pinStockDetail.SONo != notice.SONo) + { + throw new Exception("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�"); + } + if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) + { + isNew = true; + } } sdId = pinStockDetail.Id; } @@ -2665,7 +2692,7 @@ } #endregion - var pickQty = 0;//鎷h揣鐨勬暟閲� + decimal pickQty = 0;//鎷h揣鐨勬暟閲� if (string.IsNullOrWhiteSpace(boxNo))//鏁存墭鎷h揣 { List<DataBoxInfo> boxInfos; @@ -2716,11 +2743,15 @@ CreateUser = userId }; comList.Add(completeDetail); - + + if (palletNo != palletNoNew) + { + item.StockDetailId = sdId; + item.BindNo = null;//鎵樼洏缁戝畾鍙� + item.PalletNo = palletNoNew; + } + item.Status = "5";//绠辨敮鐘舵�侊紝0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 //淇敼搴撳瓨绠辩爜鏄庣粏 - item.StockDetailId = sdId; - item.BindNo = null;//鎵樼洏缁戝畾鍙� - item.PalletNo = palletNoNew; Db.Updateable(item).ExecuteCommand(); pickQty += item.Qty; @@ -2732,17 +2763,27 @@ allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; allot.UpdateTime = DateTime.Now; Db.Updateable(allot).ExecuteCommand(); - //鍒犻櫎鍘熸墭鐩樺簱瀛樻槑缁� - Db.Deleteable(stockDetail).ExecuteCommand(); - //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤 - var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); - if (pallet == null) + if (palletNo != palletNoNew) { - throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + //鍒犻櫎鍘熸墭鐩樺簱瀛樻槑缁� + Db.Deleteable(stockDetail).ExecuteCommand(); + + //鏀瑰彉鍘熸墭鐩樼姸鎬佷负锛氭湭浣跨敤 + var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); + if (pallet == null) + { + throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + } + pallet.Status = "0"; + Db.Updateable(pallet).ExecuteCommand(); } - pallet.Status = "0"; - Db.Updateable(pallet).ExecuteCommand(); + else + { + stockDetail.SONo = soNo; + Db.Updateable(stockDetail).ExecuteCommand(); + } + //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; Db.Updateable(noticeDetail).ExecuteCommand(); @@ -2807,7 +2848,7 @@ { throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } - int boxQty = boxInfo.First().Qty; + decimal boxQty = boxInfo.First().Qty; if (Convert.ToInt32(pickQty1) > boxQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); @@ -2877,6 +2918,7 @@ item.StockDetailId = sdId; item.BindNo = null;//鎵樼洏缁戝畾鍙� item.PalletNo = palletNoNew; + item.Status = "5";//绠辨敮鐘舵�侊紝0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 Db.Updateable(item).ExecuteCommand(); pickQty += item.Qty; @@ -2888,7 +2930,8 @@ item.BindNo = null;//鎵樼洏缁戝畾鍙� item.PalletNo = palletNoNew; item.BoxNo = item.BoxNo3;//灏嗘敮鐮佽祴缁欑鐮� - item.BitBoxMark = "1"; + item.BitBoxMark = "1";//闆剁鏍囪 + item.Status = "5";//绠辨敮鐘舵�侊紝0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 Db.Updateable(item).ExecuteCommand(); pickQty += item.Qty; @@ -2901,6 +2944,7 @@ item.StockDetailId = sdId; item.BindNo = null;//鎵樼洏缁戝畾鍙� item.PalletNo = palletNoNew; + item.Status = "5";//绠辨敮鐘舵�侊紝0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 Db.Updateable(item).ExecuteCommand(); } else @@ -2993,12 +3037,15 @@ } else { - //淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏 - pinStockDetail.Qty += pickQty; - pinStockDetail.LockQty += pickQty; - Db.Updateable(pinStockDetail).ExecuteCommand(); + if (palletNo != palletNoNew) + { + //淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏 + pinStockDetail.Qty += pickQty; + pinStockDetail.LockQty += pickQty; + Db.Updateable(pinStockDetail).ExecuteCommand(); + } } - + //娣诲姞鎿嶄綔鏃ュ織璁板綍 var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鎷兼墭", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勫師鎵樼洏鐮佷负锛歿palletNo}锛屾柊鎵樼洏鐮佷负锛歿palletNoNew}鐨勬嫞璐ф嫾鎵樻搷浣�", userId); Db.CommitTran(); @@ -3087,6 +3134,13 @@ { throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�"); } + if (palletNo == palletNoNew)//鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷� + { + if (int.Parse(PickQty) != stockDetail.Qty) + { + throw new Exception("鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷达紝闇�瑕佹妸鎵樼洏涓婃墍鏈夋暟閲忔嫞璐�"); + } + } #endregion #region 鎷兼墭淇℃伅 @@ -3094,13 +3148,16 @@ var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew); if (pinStockDetail != null) { - if (pinStockDetail.SONo != notice.SONo) + if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐� { - throw new Exception("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�"); - } - if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) - { - isNew = true; + if (pinStockDetail.SONo != notice.SONo) + { + throw new Exception("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�"); + } + if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) + { + isNew = true; + } } } else @@ -3169,10 +3226,18 @@ } else { - //淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏 - pinStockDetail.Qty += int.Parse(PickQty); - pinStockDetail.LockQty += int.Parse(PickQty); - Db.Updateable(pinStockDetail).ExecuteCommand(); + if (palletNo != palletNoNew) + { + //淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏 + pinStockDetail.Qty += int.Parse(PickQty); + pinStockDetail.LockQty += int.Parse(PickQty); + Db.Updateable(pinStockDetail).ExecuteCommand(); + } + else + { + pinStockDetail.SONo = soNo; + Db.Updateable(pinStockDetail).ExecuteCommand(); + } } #endregion @@ -3188,6 +3253,7 @@ var comList = new List<BllCompleteDetail>(); //鍒ゆ柇鏄惁瀛樺湪鎷h揣鏄庣粏 + isComplete = 0;//鎵�鏈夋棤绠辩爜鎴栦竴绾х鐮佹嫞璐ф椂锛屾嫞璐ф槑缁嗗簲閲嶆柊鎻掑叆鏁版嵁(浣撶幇澶氭鎷h揣娴佺▼璁板綍) if (isComplete == 0) { //娣诲姞鎷h揣鏄庣粏 @@ -3235,32 +3301,38 @@ int isDel = 0; - //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� - stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� - stockDetail.Qty -= int.Parse(PickQty); - stockDetail.LockQty -= int.Parse(PickQty); - if (stockDetail.Qty == stockDetail.LockQty) + if (palletNo != palletNoNew) { - stockDetail.Status = "2"; - } - else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0) - { - stockDetail.Status = "1"; - } - else - { - stockDetail.Status = "0"; - } - if (stockDetail.Qty <= 0) - { - Db.Deleteable(stockDetail).ExecuteCommand(); + //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� + stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� + stockDetail.Qty -= int.Parse(PickQty); + stockDetail.LockQty -= int.Parse(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) + { + Db.Deleteable(stockDetail).ExecuteCommand(); + } + else + { + isDel = 1; + Db.Updateable(stockDetail).ExecuteCommand(); + } } else { isDel = 1; - Db.Updateable(stockDetail).ExecuteCommand(); } - //鍒ゆ柇鎵樼洏涓婄墿鏂欐槸鍚︽嫞璐у畬姣� if (isDel == 0) { -- Gitblit v1.8.0