From f2bc08e28dda7022202f07217f6a3c150f818af7 Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期一, 20 一月 2025 08:32:16 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/liudongl/jc24-wms --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 320 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 210 insertions(+), 110 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 594ae57..52a0b07 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -388,7 +388,7 @@ { throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); } - if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0) + if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0) { throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } @@ -399,9 +399,21 @@ { throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); } - if (notice.Status != "3") + var type1 = new List<string>() { "0", "4" }; //鎷h揣涓嶅彲澶氬嚭 鎴愬搧鍑哄簱銆佷笉鍚堟牸鍝佸嚭搴� + var type2 = new List<string>() { "1", "2", "3", "5", "6", "7", "8" };//鎷h揣鍙鍑� 棰嗘枡鍑哄簱銆佹娊妫�鍑哄簱銆佺墿鏂欏彇鏍峰嚭搴撱�佷腑闂村搧鍑哄簱銆佷唬鍌ㄥ嚭搴撱�佸叾浠栧嚭搴撱�佸瘎瀛樺嚭搴� + if (type1.Contains(notice.Type)) { - throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); + if (notice.Status != "3") + { + throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); + } + } + if (type2.Contains(notice.Type)) + { + if (notice.Status != "3" && notice.Status != "4") + { + throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛屾垨鎵ц瀹屾垚锛屼笉鑳芥嫞璐�"); + } } //鍑哄簱鍗曟槑缁� var noticeDetail = Db.Queryable<BllExportNoticeDetail>() @@ -520,6 +532,7 @@ Db.Updateable(pallet).ExecuteCommand(); //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -527,7 +540,10 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } + //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); } @@ -535,7 +551,7 @@ { var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐� List<DataBoxInfo> boxInfos; - var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); + var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo && m.StockDetailId == stockDetail.Id); if (boxInfo.Count() == 0) { throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); @@ -576,18 +592,18 @@ biaoShi = "1"; } - else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣 + else if (!string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)//鏁伴噺鎷h揣 { if (boxInfo.Count() > 1) { throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } decimal boxQty = boxInfo.First().Qty; - if (Convert.ToInt32(pickQty1) > boxQty) + if (Convert.ToDecimal(pickQty1) > boxQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); } - if (Convert.ToInt32(pickQty1) > needQty) + if (Convert.ToDecimal(pickQty1) > needQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } @@ -649,6 +665,7 @@ if (biaoShi != "2") { + pickQty += item.Qty; //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); } @@ -656,17 +673,20 @@ { if (decimal.Parse(pickQty1) == item.Qty) { + pickQty += item.Qty; //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); + } else { + pickQty += decimal.Parse(pickQty1); item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 Db.Updateable(item).ExecuteCommand(); } } - pickQty += item.Qty; + } //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅 if (biaoShi == "1") @@ -739,6 +759,7 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -746,6 +767,9 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); @@ -809,7 +833,7 @@ } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; - if (int.Parse(PickQty) > needQty) + if (decimal.Parse(PickQty) > needQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); } @@ -872,7 +896,7 @@ } else if (isComplete == 1) { - complete.CompleteQty += int.Parse(PickQty); + complete.CompleteQty += decimal.Parse(PickQty); complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); @@ -880,7 +904,7 @@ } //淇敼鍑哄簱鍒嗛厤淇℃伅 - allot.CompleteQty += int.Parse(PickQty); + allot.CompleteQty += decimal.Parse(PickQty); allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; allot.UpdateTime = DateTime.Now; Db.Updateable(allot).ExecuteCommand(); @@ -889,8 +913,8 @@ //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� - stockDetail.Qty -= int.Parse(PickQty); - stockDetail.LockQty -= int.Parse(PickQty); + stockDetail.Qty -= decimal.Parse(PickQty); + stockDetail.LockQty -= decimal.Parse(PickQty); if (stockDetail.Qty == stockDetail.LockQty) { stockDetail.Status = "2"; @@ -913,8 +937,8 @@ Db.Updateable(stockDetail).ExecuteCommand(); } //鍒犻櫎鎴栦慨鏀瑰簱瀛� - stock.Qty -= int.Parse(PickQty); - stock.LockQty -= int.Parse(PickQty); + stock.Qty -= decimal.Parse(PickQty); + stock.LockQty -= decimal.Parse(PickQty); if (stock.Qty <= 0) { Db.Deleteable(stock).ExecuteCommand(); @@ -940,6 +964,7 @@ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += int.Parse(PickQty); + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -947,6 +972,8 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); @@ -1337,35 +1364,35 @@ { #region 鍒嗛厤 - //娣诲姞鍒嗛厤琛ㄤ俊鎭� - var allot = new BllExportAllot - { - SONo = "", - WaveNo = "", - SODetailNo = 0, - StockId = s.Id, - LotNo = "", - LotText = "", - SupplierLot = "", - SkuNo = s.SkuNo, - SkuName = s.SkuName, - Standard = s.Standard, - PalletNo = s.PalletNo, - IsBale = "0", //鏄惁瑁瑰寘 - IsBelt = "0", //鏄惁鎵撳甫 + ////娣诲姞鍒嗛厤琛ㄤ俊鎭� + //var allot = new BllExportAllot + //{ + // SONo = "", + // WaveNo = "", + // SODetailNo = 0, + // StockId = s.Id, + // LotNo = "", + // LotText = "", + // SupplierLot = "", + // SkuNo = s.SkuNo, + // SkuName = s.SkuName, + // Standard = s.Standard, + // PalletNo = s.PalletNo, + // IsBale = "0", //鏄惁瑁瑰寘 + // IsBelt = "0", //鏄惁鎵撳甫 - //BoxexQty = s.Qty, - Qty = (int)s.Qty, - CompleteQty = 0, - Status = "1", - LogisticsId = 0, - IsAdvance = "0", - OutMode = model.OutMode,//鍑哄簱鍙� + // //BoxexQty = s.Qty, + // Qty = (int)s.Qty, + // CompleteQty = 0, + // Status = "1", + // LogisticsId = 0, + // IsAdvance = "0", + // OutMode = model.OutMode,//鍑哄簱鍙� - CreateUser = userId, - CreateTime = DateTime.Now - }; - Db.Insertable(allot).ExecuteCommand(); + // CreateUser = userId, + // CreateTime = DateTime.Now + //}; + //Db.Insertable(allot).ExecuteCommand(); #endregion @@ -1380,7 +1407,10 @@ } //鑾峰彇绉诲簱鐨勫簱浣� var newSlot = MoveAddress(slotBefore.LocatNo, slotBefore.RoadwayNo, SkuNo, slotBefore.AreaNo); - + if (string.IsNullOrWhiteSpace(newSlot)) + { + continue; + } var taskNo = new Common().GetMaxNo("TK"); var exTask = new LogTask //鍑哄簱浠诲姟 { @@ -1400,7 +1430,7 @@ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� CreateTime = serverTime, //鍒涘缓鏃堕棿 CreateUser = userId, //鍒涘缓浜� - Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + newSlot + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅 + Msg = "Pda绌烘墭浠�" + locat == null ? "" : slotBefore.LocatNo + "鍒�" + newSlot + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅 //FinishDate = serverTime, //瀹屾垚鏃堕棿 }; moveDto.Add(new OutCommandDto() @@ -1410,7 +1440,7 @@ StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� EndLocate = exTask.EndLocat, // 鐩爣浣嶇疆 TaskNo = exTask.TaskNo, // 浠诲姟鍙� - TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱) + TaskType = "2",// 浠诲姟绫诲瀷 (绉诲簱) OutMode = "", //鐩爣鍦板潃 Order = 1 }); @@ -1422,6 +1452,12 @@ //鏇存敼鍌ㄤ綅鐘舵�佷负绉诲嚭涓� slotBefore.Status = "5"; //5 绉诲嚭涓� Db.Updateable(slotBefore).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 + var newSlot2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == newSlot && m.IsDel == "0"); + if (newSlot2!= null) + { + newSlot2.Status = "4";//绉诲叆涓� + Db.Updateable(newSlot2).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 + } #endregion } else //鍑哄簱 @@ -1429,17 +1465,17 @@ #region 鏀瑰彉搴撳瓨 //澧炲姞搴撳瓨閿佸畾鏁伴噺 - stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + stock.LockQty += (int)pallSku.Qty; //閿佸畾鏁伴噺 stock.UpdateTime = serverTime; //淇敼鏃堕棿 stock.UpdateUser = userId; //淇敼浜� Db.Updateable(stock).ExecuteCommand();//淇敼搴撳瓨鎬昏〃淇℃伅 //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺 - s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 - s.UpdateTime = serverTime; //淇敼鏃堕棿 - s.UpdateUser = userId; //淇敼浜� - s.Status = "2"; //2 宸插垎閰� - Db.Updateable(s).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅 + pallSku.LockQty += (int)pallSku.Qty; //閿佸畾鏁伴噺 + pallSku.UpdateTime = serverTime; //淇敼鏃堕棿 + pallSku.UpdateUser = userId; //淇敼浜� + pallSku.Status = "2"; //2 宸插垎閰� + Db.Updateable(pallSku).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅 #endregion @@ -1451,19 +1487,19 @@ SONo = "", WaveNo = "", SODetailNo = 0, - StockId = s.Id, + StockId = pallSku.Id, LotNo = "", LotText = "", SupplierLot = "", - SkuNo = s.SkuNo, - SkuName = s.SkuName, - Standard = s.Standard, - PalletNo = s.PalletNo, + SkuNo = pallSku.SkuNo, + SkuName = pallSku.SkuName, + Standard = pallSku.Standard, + PalletNo = pallSku.PalletNo, IsBale = "0", //鏄惁瑁瑰寘 IsBelt = "0", //鏄惁鎵撳甫 //BoxexQty = s.Qty, - Qty = (int)s.Qty, + Qty = (int)pallSku.Qty, CompleteQty = 0, Status = "1", LogisticsId = 0, @@ -1487,9 +1523,9 @@ Receiver = "PDA", IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 - StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 + StartLocat = locat == null ? "" : pallSku.LocatNo,//璧峰浣嶇疆 EndLocat = model.OutMode,//鐩爣浣嶇疆 - PalletNo = s.PalletNo,//鎵樼洏鐮� + PalletNo = pallSku.PalletNo,//鎵樼洏鐮� IsSend = 1,//鏄惁鍙啀娆′笅鍙� IsCancel = 1,//鏄惁鍙彇娑� IsFinish = 1,//鏄惁鍙畬鎴� @@ -1498,7 +1534,7 @@ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� CreateTime = serverTime, //鍒涘缓鏃堕棿 CreateUser = userId, //鍒涘缓浜� - Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 + Msg = "Pda绌烘墭浠�" + locat == null ? "" : pallSku.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 //FinishDate = serverTime, //瀹屾垚鏃堕棿 }; outDto2.Add(new OutCommandDto() @@ -2714,7 +2750,7 @@ { throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); } - if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0) + if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0) { throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } @@ -2889,7 +2925,7 @@ } biaoShi = "1"; } - else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣 + else if (!string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)//鏁伴噺鎷h揣 { if (boxInfo.Count() > 1) { @@ -3055,7 +3091,7 @@ { throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); } - if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0) + if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0) { throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } @@ -3143,18 +3179,18 @@ } biaoShi = "1"; } - else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣 + else if (!string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)//鏁伴噺鎷h揣 { if (boxInfo.Count() > 1) { throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } decimal boxQty = boxInfo.First().Qty; - if (Convert.ToInt32(pickQty1) > boxQty) + if (Convert.ToDecimal(pickQty1) > boxQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); } - if (Convert.ToInt32(pickQty1) > needQty) + if (Convert.ToDecimal(pickQty1) > needQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } @@ -3219,6 +3255,7 @@ if (biaoShi != "2") { + pickQty += item.Qty; //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); } @@ -3226,17 +3263,19 @@ { if (decimal.Parse(pickQty1) == item.Qty) { + pickQty += item.Qty; //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); } else { + pickQty += decimal.Parse(pickQty1); item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 Db.Updateable(item).ExecuteCommand(); } } - pickQty += item.Qty; + } //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅 if (biaoShi == "1") @@ -3515,7 +3554,7 @@ SkuName = allot2.SkuName, Standard = allot2.Standard, PalletNo = palletNo, - CompleteQty = int.Parse(PickQty), + CompleteQty = decimal.Parse(PickQty), InspectMark = "1", CreateUser = userId @@ -3527,7 +3566,7 @@ } else if (isComplete == 1) { - complete.CompleteQty += int.Parse(PickQty); + complete.CompleteQty += decimal.Parse(PickQty); complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); @@ -3537,8 +3576,8 @@ //淇敼鍑哄簱鍒嗛厤淇℃伅 - allot2.Qty += int.Parse(PickQty); - allot2.CompleteQty += int.Parse(PickQty); + allot2.Qty += decimal.Parse(PickQty); + allot2.CompleteQty += decimal.Parse(PickQty); Db.Updateable(allot2).ExecuteCommand(); int isDel = 0; @@ -3546,7 +3585,7 @@ //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� stockDetail.InspectMark = "1";//淇敼涓烘娊妫�鎵樻爣璇� - stockDetail.Qty -= int.Parse(PickQty); + stockDetail.Qty -= decimal.Parse(PickQty); if (stockDetail.Qty == stockDetail.LockQty && stockDetail.Qty != 0) { stockDetail.Status = "2"; @@ -3594,10 +3633,10 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� - noticeDetail.Qty += int.Parse(PickQty); - noticeDetail.AllotQty += int.Parse(PickQty); - noticeDetail.FactQty += int.Parse(PickQty); - noticeDetail.CompleteQty += int.Parse(PickQty); + noticeDetail.Qty += decimal.Parse(PickQty); + noticeDetail.AllotQty += decimal.Parse(PickQty); + noticeDetail.FactQty += decimal.Parse(PickQty); + noticeDetail.CompleteQty += decimal.Parse(PickQty); noticeDetail.Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * noticeDetail.Qty; Db.Updateable(noticeDetail).ExecuteCommand(); @@ -3646,7 +3685,7 @@ } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; - if (int.Parse(PickQty) > needQty) + if (decimal.Parse(PickQty) > needQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); } @@ -3696,7 +3735,7 @@ SkuName = allot.SkuName, Standard = allot.Standard, PalletNo = palletNo, - CompleteQty = int.Parse(PickQty), + CompleteQty = decimal.Parse(PickQty), CreateUser = userId, CreateTime = Db.GetDate(), @@ -3708,7 +3747,7 @@ } else if (isComplete == 1) { - complete.CompleteQty += int.Parse(PickQty); + complete.CompleteQty += decimal.Parse(PickQty); complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); @@ -3718,7 +3757,7 @@ //淇敼鍑哄簱鍒嗛厤淇℃伅 - allot.CompleteQty += int.Parse(PickQty); + allot.CompleteQty += decimal.Parse(PickQty); allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; allot.UpdateTime = DateTime.Now; @@ -3728,8 +3767,8 @@ //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� - stockDetail.Qty -= int.Parse(PickQty); - stockDetail.LockQty -= int.Parse(PickQty); + stockDetail.Qty -= decimal.Parse(PickQty); + stockDetail.LockQty -= decimal.Parse(PickQty); if (stockDetail.Qty == stockDetail.LockQty) { stockDetail.Status = "2"; @@ -3752,8 +3791,8 @@ Db.Updateable(stockDetail).ExecuteCommand(); } //鍒犻櫎鎴栦慨鏀瑰簱瀛� - stock.Qty -= int.Parse(PickQty); - stock.LockQty -= int.Parse(PickQty); + stock.Qty -= decimal.Parse(PickQty); + stock.LockQty -= decimal.Parse(PickQty); if (stock.Qty <= 0) { Db.Deleteable(stock).ExecuteCommand(); @@ -3778,7 +3817,7 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� - noticeDetail.CompleteQty += int.Parse(PickQty); + noticeDetail.CompleteQty += decimal.Parse(PickQty); Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -3835,7 +3874,7 @@ { throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); } - if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0) + if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0) { throw new Exception("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } @@ -3857,10 +3896,14 @@ { throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); } - if (notice.Status != "3") + if (notice.Type != "1" && notice.Type != "2" && notice.Type != "3") { - throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); + if (notice.Status != "3") + { + throw new Exception("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣"); + } } + //鍑哄簱鍗曟槑缁� var noticeDetail = Db.Queryable<BllExportNoticeDetail>() .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId)); @@ -3897,7 +3940,7 @@ #region 鎷兼墭淇℃伅 var sdId = 0; bool isNew = false; - var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo == allot.SkuNo && m.LotNo == allot.LotNo); + var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew); if (pinStockDetail != null) { if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐� @@ -4068,6 +4111,7 @@ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -4075,6 +4119,8 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); @@ -4083,7 +4129,7 @@ { var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐� List<DataBoxInfo> boxInfos; - var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); + var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo && m.StockDetailId == stockDetail.Id); if (boxInfo.Count() == 0) { throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); @@ -4124,18 +4170,18 @@ biaoShi = "1"; } - else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣 + else if (!string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)//鏁伴噺鎷h揣 { if (boxInfo.Count() > 1) { throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } decimal boxQty = boxInfo.First().Qty; - if (Convert.ToInt32(pickQty1) > boxQty) + if (decimal.Parse(pickQty1) > boxQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); } - if (Convert.ToInt32(pickQty1) > needQty) + if (decimal.Parse(pickQty1) > needQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } @@ -4220,6 +4266,8 @@ } else//鏁伴噺鎷h揣 { + var boxInfo2 = Db.Queryable<DataBoxInfo>().First(m => m.IsDel == "0" && m.BoxNo == boxNo && m.StockDetailId == sdId); + if (decimal.Parse(pickQty1) == item.Qty) { //淇敼搴撳瓨绠辩爜鏄庣粏 @@ -4231,12 +4279,56 @@ } else { + if (boxInfo2 == null) + { + var dataBoxInfo = new DataBoxInfo() + { + StockDetailId = sdId, + BindNo = item.BindNo, + BoxNo = item.BoxNo, + BoxNo2 = item.BoxNo2, + BoxNo3 = item.BoxNo3, + PalletNo = item.PalletNo, + PalletNo2 = item.PalletNo2, + PalletNo3 = item.PalletNo3, + Qty = decimal.Parse(pickQty1), + FullQty = item.FullQty, + Status = "5", + LotNo = item.LotNo, + LotText = item.LotText, + SkuNo = item.SkuNo, + SkuName = item.SkuName, + Standard = item.Standard, + ProductionTime = item.ProductionTime, + SupplierLot = item.SupplierLot, + InspectMark = item.InspectMark, + BitBoxMark = "1", + InspectStatus = item.InspectStatus, + InspectTime = item.InspectTime, + }; + + Db.Insertable(dataBoxInfo).ExecuteCommand(); + } + else + { + boxInfo2.Qty += decimal.Parse(pickQty1); + item.BitBoxMark = boxInfo2.Qty>= boxInfo2.FullQty? "0":"1" ;//闆剁鏍囪瘑 + Db.Updateable(boxInfo2).ExecuteCommand(); + } item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 - Db.Updateable(item).ExecuteCommand(); + if (item.Qty<=0) + { + Db.Deleteable(item).ExecuteCommand(); + } + else + { + Db.Updateable(item).ExecuteCommand(); + } + } - pickQty += int.Parse(pickQty1); + pickQty += decimal.Parse(pickQty1); } } //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅 @@ -4300,6 +4392,7 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -4307,17 +4400,21 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } + //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); } if (isNew) { - sd.Qty = pickQty; - sd.LockQty = pickQty; + var sd2 = Db.Queryable<DataStockDetail>().First(m=>m.Id == sdId); + sd2.Qty = pickQty; + sd2.LockQty = pickQty; - Db.Updateable(sd).ExecuteCommand(); + Db.Updateable(sd2).ExecuteCommand(); } else { @@ -4401,7 +4498,7 @@ } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; - if (int.Parse(PickQty) > needQty) + if (decimal.Parse(PickQty) > needQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); } @@ -4420,7 +4517,7 @@ } if (palletNo == palletNoNew)//鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷� { - if (int.Parse(PickQty) != stockDetail.Qty) + if (decimal.Parse(PickQty) != stockDetail.Qty) { throw new Exception("鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷达紝闇�瑕佹妸鎵樼洏涓婃墍鏈夋暟閲忔嫞璐�"); } @@ -4469,8 +4566,8 @@ sd.SkuName = stockDetail.SkuName; sd.Standard = stockDetail.Standard; - sd.Qty = int.Parse(PickQty); - sd.LockQty = int.Parse(PickQty); + sd.Qty = decimal.Parse(PickQty); + sd.LockQty = decimal.Parse(PickQty); sd.FrozenQty = 0; sd.InspectQty = 0; @@ -4513,8 +4610,8 @@ if (palletNo != palletNoNew) { //淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏 - pinStockDetail.Qty += int.Parse(PickQty); - pinStockDetail.LockQty += int.Parse(PickQty); + pinStockDetail.Qty += decimal.Parse(PickQty); + pinStockDetail.LockQty += decimal.Parse(PickQty); Db.Updateable(pinStockDetail).ExecuteCommand(); } else @@ -4558,7 +4655,7 @@ SkuName = allot.SkuName, Standard = allot.Standard, PalletNo = palletNo, - CompleteQty = int.Parse(PickQty), + CompleteQty = decimal.Parse(PickQty), CreateUser = userId, CreateTime = Db.GetDate(), @@ -4570,7 +4667,7 @@ } else if (isComplete == 1) { - complete.CompleteQty += int.Parse(PickQty); + complete.CompleteQty += decimal.Parse(PickQty); complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); @@ -4578,7 +4675,7 @@ } //淇敼鍑哄簱鍒嗛厤淇℃伅 - allot.CompleteQty += int.Parse(PickQty); + allot.CompleteQty += decimal.Parse(PickQty); allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; allot.UpdateTime = DateTime.Now; Db.Updateable(allot).ExecuteCommand(); @@ -4589,8 +4686,8 @@ { //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� - stockDetail.Qty -= int.Parse(PickQty); - stockDetail.LockQty -= int.Parse(PickQty); + stockDetail.Qty -= decimal.Parse(PickQty); + stockDetail.LockQty -= decimal.Parse(PickQty); if (stockDetail.Qty == stockDetail.LockQty) { stockDetail.Status = "2"; @@ -4632,7 +4729,8 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� - noticeDetail.CompleteQty += int.Parse(PickQty); + noticeDetail.CompleteQty += decimal.Parse(PickQty); + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -4640,6 +4738,8 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); -- Gitblit v1.8.0