From 157abc191c34e57c1b958ae74fc3de6518ca8a30 Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期五, 28 二月 2025 11:06:36 +0800 Subject: [PATCH] 修改客户需求 --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 536 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 408 insertions(+), 128 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 908c485..12de074 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -20,6 +20,7 @@ using WMS.Entity.LogEntity; using Model.ModelDto.SysDto; using Model.ModelDto.BllSoDto; +using System.Security.Policy; namespace WMS.BLL.BllPdaServer { @@ -388,7 +389,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 +400,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 +533,7 @@ Db.Updateable(pallet).ExecuteCommand(); //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -527,7 +541,10 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } + //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); } @@ -535,7 +552,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 +593,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 +666,7 @@ if (biaoShi != "2") { + pickQty += item.Qty; //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); } @@ -656,17 +674,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 +760,7 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -746,6 +768,9 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); @@ -809,7 +834,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 +897,7 @@ } else if (isComplete == 1) { - complete.CompleteQty += int.Parse(PickQty); + complete.CompleteQty += decimal.Parse(PickQty); complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); @@ -880,7 +905,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 +914,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 +938,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 +965,7 @@ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += int.Parse(PickQty); + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -947,6 +973,8 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); @@ -1337,40 +1365,53 @@ { #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 #region 娣诲姞绉诲簱浠诲姟淇℃伅 - + var stkModel = Db.Queryable<DataStockDetail>().First(m => m.LocatNo == slotBefore.LocatNo); + string PalletNo = "LN000000"; // 榛樿婕旂ず鎵樼洏 + string SkuNo = ""; + if (stkModel != null) + { + PalletNo = stkModel.PalletNo; + SkuNo = stkModel.SkuNo; + } + //鑾峰彇绉诲簱鐨勫簱浣� + 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 //鍑哄簱浠诲姟 { @@ -1379,9 +1420,9 @@ Receiver = "PDA", IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 - StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 - EndLocat = model.OutMode,//鐩爣浣嶇疆 - PalletNo = s.PalletNo,//鎵樼洏鐮� + StartLocat = slotBefore.LocatNo,//璧峰浣嶇疆 + EndLocat = newSlot,//鐩爣浣嶇疆 + PalletNo = PalletNo,//鎵樼洏鐮� IsSend = 1,//鏄惁鍙啀娆′笅鍙� IsCancel = 1,//鏄惁鍙彇娑� IsFinish = 1,//鏄惁鍙畬鎴� @@ -1390,7 +1431,7 @@ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� CreateTime = serverTime, //鍒涘缓鏃堕棿 CreateUser = userId, //鍒涘缓浜� - Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅 + Msg = "Pda绌烘墭浠�" + locat == null ? "" : slotBefore.LocatNo + "鍒�" + newSlot + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅 //FinishDate = serverTime, //瀹屾垚鏃堕棿 }; moveDto.Add(new OutCommandDto() @@ -1398,10 +1439,10 @@ PalletNo = exTask.PalletNo,//鎵樼洏鍙� StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� - EndLocate = model.OutMode, // 鐩爣浣嶇疆 + EndLocate = exTask.EndLocat, // 鐩爣浣嶇疆 TaskNo = exTask.TaskNo, // 浠诲姟鍙� - TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱) - OutMode = model.OutMode, //鐩爣鍦板潃 + TaskType = "2",// 浠诲姟绫诲瀷 (绉诲簱) + OutMode = "", //鐩爣鍦板潃 Order = 1 }); Db.Insertable(exTask).ExecuteCommand(); @@ -1412,6 +1453,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 //鍑哄簱 @@ -1419,17 +1466,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 @@ -1441,19 +1488,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, @@ -1477,9 +1524,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,//鏄惁鍙畬鎴� @@ -1488,7 +1535,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() @@ -1731,7 +1778,7 @@ } ////鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� - //locat.Status = "3"; //3 鍑哄簱涓� + //locat.Status = "3"; // 1 鏈夌墿鍝� //locat.UpdateTime = serverTime; //淇敼鏃堕棿 //locat.UpdateUser = userId; //淇敼浜� ////淇敼鍌ㄤ綅淇℃伅 @@ -2082,18 +2129,28 @@ #endregion #region 娣诲姞绉诲簱浠诲姟淇℃伅 + var stkModel = Db.Queryable<DataStockDetail>().First(m=>m.LocatNo == slotBefore.LocatNo); + string PalletNo = "LN000000"; // 榛樿婕旂ず鎵樼洏 + string SkuNo = ""; + if (stkModel != null) + { + PalletNo = stkModel.PalletNo; + SkuNo= stkModel.SkuNo; + } + //鑾峰彇绉诲簱鐨勫簱浣� + var newSlot = MoveAddress(slotBefore.LocatNo, slotBefore.RoadwayNo, SkuNo, slotBefore.AreaNo); var taskNo = new Common().GetMaxNo("TK"); - var exTask = new LogTask //鍑哄簱浠诲姟 + var exTask = new LogTask // 绉诲簱浠诲姟 { TaskNo = taskNo, Sender = "WMS", Receiver = "WCS", IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 - StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 - EndLocat = model.OutMode,//鐩爣浣嶇疆 - PalletNo = s.PalletNo,//鎵樼洏鐮� + StartLocat = slotBefore.LocatNo,//璧峰浣嶇疆 + EndLocat = newSlot,//鐩爣浣嶇疆 + PalletNo = PalletNo,//鎵樼洏鐮� IsSend = 1,//鏄惁鍙啀娆′笅鍙� IsCancel = 1,//鏄惁鍙彇娑� IsFinish = 1,//鏄惁鍙畬鎴� @@ -2102,7 +2159,7 @@ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� CreateTime = serverTime, //鍒涘缓鏃堕棿 CreateUser = userId, //鍒涘缓浜� - Msg = "WCS绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅 + Msg = "WCS绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + newSlot + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅 //FinishDate = serverTime, //瀹屾垚鏃堕棿 }; moveDto.Add(new OutCommandDto() @@ -2110,10 +2167,10 @@ PalletNo = exTask.PalletNo,//鎵樼洏鍙� StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� - EndLocate = model.OutMode, // 鐩爣浣嶇疆 + EndLocate = exTask.EndLocat, // 鐩爣浣嶇疆 TaskNo = exTask.TaskNo, // 浠诲姟鍙� TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱) - OutMode = model.OutMode, //鐩爣鍦板潃 + OutMode = "", //鐩爣鍦板潃 Order = 1 }); Db.Insertable(exTask).ExecuteCommand(); @@ -2355,20 +2412,178 @@ } - public string MoveAddress(string oldAddress, string roadWay, string skuNo)//01020201 鎺�-鍒�-灞�-娣卞害 + /// <summary> + /// WMS鐢宠鎷h揣绌烘墭 + /// </summary> + /// <param name="model"> </param> + /// <param name="userId"> </param> + /// <param name="url"> </param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public string IssuePlnCehckHouseWcs(CheckModePalletVm model, int userId, string url) + { + try + { + string StartLocate = "" ,EndLocate = ""; + + Db.BeginTran(); + if (model.OutMode == "001") //瑗夸晶鎷h揣浣嶅彨绌烘墭鐩� + { + var xLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")); + if (xLocate == null) + { + throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏"); + } + StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")).LocatNo; + EndLocate = "B15010101"; + } + else//涓滀晶鎷h揣浣嶅彨绌烘墭鐩� + { + var dLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101")); + if (dLocate == null) + { + throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏"); + } + StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101")).LocatNo; + EndLocate = "B15020101"; + } + + //娣诲姞鍑哄簱浠诲姟 + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "AGV", + IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = StartLocate,//璧峰浣嶇疆 + EndLocat = EndLocate,//鐩爣浣嶇疆 + PalletNo = "",//鎵樼洏鐮� + Msg = string.Format("杞繍浠诲姟锛歿0}=>>{1}", StartLocate, EndLocate), + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + + CreateTime = DateTime.Now + }; + Db.Insertable(exTask).ExecuteCommand(); + + var storageLocatEnd = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == EndLocate); + //淇敼鐩爣鍌ㄤ綅鍦板潃鐘舵�� + if (storageLocatEnd != null) + { + storageLocatEnd.Status = "4";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + Db.Updateable(storageLocatEnd).ExecuteCommand(); + } + + #region 鍛煎彨灏忚溅浠g爜 + + var endlono = EndLocate; + string tasktype = "D01"; + + //鐐瑰埌鐐规寚浠ら泦鍚� + object[] position = new object[2]; + position[0] = new + { + positionCode = StartLocate, + type = "00" + }; + position[1] = new + { + positionCode = endlono, + type = "00" + }; + + List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>(); + AgvSchedulingTask agvTask = new AgvSchedulingTask(); + Random r = new Random(); + long ran = DateTime.Now.Ticks; + agvTask.ReqCode = ran.ToString(); + agvTask.TaskCode = taskNo; + agvTask.TaskTyp = tasktype; + agvTask.PositionCodePath = position; + agvTask.CtnrTyp = "1"; + + agvTaskList.Add(agvTask); + + string str = ""; + var list2 = agvTaskList.Select(m => m.TaskCode).ToList(); + var jsonData = JsonConvert.SerializeObject(agvTaskList); + jsonData = jsonData.Substring(1, jsonData.Length - 1); + jsonData = jsonData.Substring(0, jsonData.Length - 1); + string response = ""; + + try + { + var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") + response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV"); + var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss") + + //////瑙f瀽杩斿洖鏁版嵁 + var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response); + if (agvModel.Code == "0") + { + //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// + new TaskServer().EditTaskIssueOk(list2, time1, time2); + str += "涓嬪彂鎴愬姛"; + } + if (agvModel.Code == "1") + { + new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message); + throw new Exception(agvModel.Message); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + + #endregion + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "AGV杞繍", "", "绉诲簱", $"PDA鍛煎彨灏忚溅鎷嗙┖鎵樼洏鎷h揣", userId); + Db.CommitTran(); + + return ""; + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + + + public string MoveAddress(string oldAddress, string roadWay, string skuNo,string areaNo="")//01020201 鎺�-鍒�-灞�-娣卞害 { string nowAddress = ""; - //鏍规嵁鐗╂枡缂栫爜鑾峰彇瀵瑰簲鍖哄煙 - var skuCategoryNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.SkuNo == skuNo).Select(a => a.CategoryNo).First(); - var category = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == skuCategoryNo); + var category = new SysMaterialCategory(); + if (!string.IsNullOrEmpty(skuNo)) + { + //鏍规嵁鐗╂枡缂栫爜鑾峰彇瀵瑰簲鍖哄煙 + var skuCategoryNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.SkuNo == skuNo).Select(a => a.CategoryNo).First(); + category = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == skuCategoryNo); + + areaNo = category.AreaNo; + } + else + { + //todo 寰呴獙璇� + category = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.AreaNo == areaNo); + } // 鑾峰彇绉诲簱鐩爣鍌ㄤ綅 var row = int.Parse(oldAddress.Substring(0, 2)); var lie = int.Parse(oldAddress.Substring(2, 2)); var ceng = int.Parse(oldAddress.Substring(4, 2)); - var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng})) as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{category.AreaNo}') order by distNum;"; + var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng})) as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{areaNo}') order by distNum;"; var addressModels = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList(); if (addressModels.Count > 0) // 鍒ゆ柇鍚屽贩閬撳唴鎺掔┖搴撲綅 @@ -2683,7 +2898,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("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } @@ -2858,7 +3073,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) { @@ -3024,7 +3239,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("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } @@ -3112,18 +3327,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揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } @@ -3188,6 +3403,7 @@ if (biaoShi != "2") { + pickQty += item.Qty; //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); } @@ -3195,17 +3411,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") @@ -3299,6 +3517,7 @@ throw new Exception(e.Message); } } + //鍙栨牱鍑哄簱鎷h揣(鏃犳爣绛�) public void SampleSoSetQtyPick(string soType, string soNo, string soDetailId, string palletNo, string PickQty, string asnNo, int userId) @@ -3483,7 +3702,7 @@ SkuName = allot2.SkuName, Standard = allot2.Standard, PalletNo = palletNo, - CompleteQty = int.Parse(PickQty), + CompleteQty = decimal.Parse(PickQty), InspectMark = "1", CreateUser = userId @@ -3495,7 +3714,7 @@ } else if (isComplete == 1) { - complete.CompleteQty += int.Parse(PickQty); + complete.CompleteQty += decimal.Parse(PickQty); complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); @@ -3505,8 +3724,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; @@ -3514,7 +3733,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"; @@ -3562,10 +3781,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(); @@ -3614,7 +3833,7 @@ } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; - if (int.Parse(PickQty) > needQty) + if (decimal.Parse(PickQty) > needQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); } @@ -3664,7 +3883,7 @@ SkuName = allot.SkuName, Standard = allot.Standard, PalletNo = palletNo, - CompleteQty = int.Parse(PickQty), + CompleteQty = decimal.Parse(PickQty), CreateUser = userId, CreateTime = Db.GetDate(), @@ -3676,7 +3895,7 @@ } else if (isComplete == 1) { - complete.CompleteQty += int.Parse(PickQty); + complete.CompleteQty += decimal.Parse(PickQty); complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); @@ -3686,7 +3905,7 @@ //淇敼鍑哄簱鍒嗛厤淇℃伅 - allot.CompleteQty += int.Parse(PickQty); + allot.CompleteQty += decimal.Parse(PickQty); allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; allot.UpdateTime = DateTime.Now; @@ -3696,8 +3915,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"; @@ -3720,8 +3939,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(); @@ -3746,7 +3965,7 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� - noticeDetail.CompleteQty += int.Parse(PickQty); + noticeDetail.CompleteQty += decimal.Parse(PickQty); Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -3803,7 +4022,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("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�"); } @@ -3825,10 +4044,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)); @@ -3865,7 +4088,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)//闈炴暣鎵樻嫞璐� @@ -4036,6 +4259,7 @@ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -4043,6 +4267,8 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); @@ -4051,7 +4277,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("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅"); @@ -4092,18 +4318,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揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); } @@ -4188,6 +4414,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) { //淇敼搴撳瓨绠辩爜鏄庣粏 @@ -4199,12 +4427,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); } } //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅 @@ -4268,6 +4540,7 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -4275,17 +4548,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 { @@ -4369,7 +4646,7 @@ } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; - if (int.Parse(PickQty) > needQty) + if (decimal.Parse(PickQty) > needQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); } @@ -4388,7 +4665,7 @@ } if (palletNo == palletNoNew)//鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷� { - if (int.Parse(PickQty) != stockDetail.Qty) + if (decimal.Parse(PickQty) != stockDetail.Qty) { throw new Exception("鍘熸墭鐩樹笌鏂版墭鐩樹竴鑷达紝闇�瑕佹妸鎵樼洏涓婃墍鏈夋暟閲忔嫞璐�"); } @@ -4437,8 +4714,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; @@ -4481,8 +4758,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 @@ -4526,7 +4803,7 @@ SkuName = allot.SkuName, Standard = allot.Standard, PalletNo = palletNo, - CompleteQty = int.Parse(PickQty), + CompleteQty = decimal.Parse(PickQty), CreateUser = userId, CreateTime = Db.GetDate(), @@ -4538,7 +4815,7 @@ } else if (isComplete == 1) { - complete.CompleteQty += int.Parse(PickQty); + complete.CompleteQty += decimal.Parse(PickQty); complete.UpdateUser = userId; complete.UpdateTime = Db.GetDate(); @@ -4546,7 +4823,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(); @@ -4557,8 +4834,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"; @@ -4600,7 +4877,8 @@ } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� - noticeDetail.CompleteQty += int.Parse(PickQty); + noticeDetail.CompleteQty += decimal.Parse(PickQty); + noticeDetail.Status = "2"; Db.Updateable(noticeDetail).ExecuteCommand(); var num = Db.Queryable<BllExportNoticeDetail>() @@ -4608,6 +4886,8 @@ if (num <= 0) { notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴� + noticeDetail.Status = "3"; + Db.Updateable(noticeDetail).ExecuteCommand(); } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); -- Gitblit v1.8.0