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/BllSoServer/ExportNoticeServer.cs | 150 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 100 insertions(+), 50 deletions(-) diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index 71613e4..68367c9 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -1758,7 +1758,7 @@ if (isChai == "0") { var boxInfo = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.PalletNo == item.PalletNo && w.BitBoxMark == "1").ToList(); - if (boxInfo != null)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠� + if (boxInfo.Count>0)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠� { isChai = "1"; unstackingMode2 = "1";//闇�瑕佹媶绠遍渶璧癙DA鎷嗗灈 @@ -2249,10 +2249,10 @@ //鍑哄簱浠诲姟鍙锋洿鏀癸紝濡傛灉鐢盤LC鍑哄簱锛屽垯PLC鍥炰紶浠诲姟鍙蜂负锛氫换鍔″彿+瀹為檯鍑哄簱鍙� var TtaskNo = taskNo; var outLine = ""; - if (userId == 0) + if (taskNo.Length == 18) { - TtaskNo = taskNo.Substring(0, taskNo.Length - 4); - outLine = taskNo.Substring(taskNo.Length - 4, 3); + TtaskNo = taskNo.Substring(0, taskNo.Length - 3); + outLine = taskNo.Substring(taskNo.Length - 3, 3); } //褰撳墠浠诲姟淇℃伅 var task = Db.Queryable<LogTask>().First(m => m.TaskNo == TtaskNo && m.IsDel == "0"); @@ -2395,52 +2395,58 @@ //娣诲姞鎿嶄綔鏃ュ織璁板綍 var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", TtaskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{TtaskNo}鐨勪换鍔�", userId); } - if (outLine != "") + if (outLine != "" && outLine != "009" && outLine != "013" && outLine != "018" && outLine != "022") { #region 鍒嗛厤鍑哄簱鐩殑浣� - string positionStart = outLine, positionEnd = "" ,type ="D00"; + string positionStart = outLine, positionEnd = "", type = "D00"; var type1 = Db.Queryable<BllExportNotice>().Where(m => m.SONo == allot.First().SONo && m.IsDel == "0" && m.Status == "3").First(); if (type1 == null) { var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B13").ToList(); - type = "D02" ; //绌烘墭鐩樺灈鍑哄簱 - if (outLine == "443")//瑗夸晶鍑哄簱 + type = "D02"; //绌烘墭鐩樺灈鍑哄簱 + if (outLine == "443")//瑗夸晶鍑哄簱 { - positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "01" && m.LocatNo.Substring(3, 2) == "02" && m.LocatNo.Substring(3, 2) == "03" && - m.Status == "0" && m.Flag == "0").LocatNo; + positionEnd = locateno.First(m => m.Row == 1 && m.Status == "0" && m.Flag == "0").LocatNo; } else if (outLine == "440") //涓滀晶鍑哄簱 { - positionEnd = locateno.First(m => m.LocatNo.Substring(4, 2) == "04" && m.LocatNo.Substring(4, 2) == "05" && m.LocatNo.Substring(4, 2) == "06" && - m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅 + positionEnd = locateno.First(m => m.Row == 2 && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅 + } + else //1妤肩┖鎵樼洏鍑哄簱涓嶈皟鐢ˋGV + { + Db.CommitTran(); + return; } } - if (type1.Type == "1" && (type1.Type == "5" || (positionStart == "440" && positionStart == "440"))) //3妤奸鏂欏嚭搴� /3L涓棿鍝佸嚭搴� - { - var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B11").ToList(); - if (outLine == "443")//瑗夸晶鍑哄簱 + else + { + if (type1.Type == "1" || (type1.Type == "5" && (positionStart == "440" || positionStart == "443"))) //3妤奸鏂欏嚭搴� /3L涓棿鍝佸嚭搴� { - positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "01"&& m.LocatNo.Substring(4, 2) == "02" && m.Status == "0" && m.Flag == "0").LocatNo; //瑗夸晶鎴块棿搴撲綅 - } - else if(outLine == "440") //涓滀晶鍑哄簱 - { - positionEnd = locateno.First(m => m.LocatNo.Substring(3, 2) == "03" && m.LocatNo.Substring(4, 2) == "04" && m.LocatNo.Substring(4, 2) == "05" && - m.LocatNo.Substring(4, 2) == "06" && m.LocatNo.Substring(3, 2) == "07" && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅 - } - } - else if (type1.Type == "2" && type1.Type == "3") //鎶芥鍑哄簱 /鍙栨牱鍑哄簱 - { - positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B04" && m.Status == "0" && m.Flag == "0").LocatNo; - } - else if (type1.Type == "4")//涓嶅悎鏍煎搧鍑哄簱 - { + var locateno = Db.Queryable<SysStorageLocat>().Where(m => m.AreaNo == "B11").ToList(); + if (outLine == "443")//瑗夸晶鍑哄簱 + { - positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B03" && m.Status == "0" && m.Flag == "0").LocatNo; - } - else //鍏朵粬鍗曟嵁绫诲瀷閮藉瓨鏀惧彂璐х紦瀛樺尯 - { - positionEnd = Db.Queryable<SysStorageLocat>().First(m => m.AreaNo == "B02" && m.Status == "0" && m.Flag == "0").LocatNo; + positionEnd = locateno.OrderBy(m => m.LocatNo).First(m => m.Row == 1 && m.Status == "0" && m.Flag == "0").LocatNo; //瑗夸晶鎴块棿搴撲綅鍜屽闈㈡埧闂� + } + else if (outLine == "440") //涓滀晶鍑哄簱 + { + positionEnd = locateno.OrderBy(m => m.LocatNo).First(m => m.Row == 2 && m.Status == "0" && m.Flag == "0").LocatNo; //涓滀晶鎴块棿搴撲綅 + } + } + else if (type1.Type == "2" || type1.Type == "3") //鎶芥鍑哄簱 /鍙栨牱鍑哄簱 + { + positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m=>m.LocatNo).First(m => m.AreaNo == "B04" && m.Status == "0" && m.Flag == "0").LocatNo; + } + else if (type1.Type == "4")//涓嶅悎鏍煎搧鍑哄簱 + { + + positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m => m.LocatNo).First(m => m.AreaNo == "B03" && m.Status == "0" && m.Flag == "0").LocatNo; + } + else //鍏朵粬鍗曟嵁绫诲瀷閮藉瓨鏀惧彂璐х紦瀛樺尯 + { + positionEnd = Db.Queryable<SysStorageLocat>().OrderBy(m => m.LocatNo).First(m => m.AreaNo == "B02" && m.Status == "0" && m.Flag == "0").LocatNo; + } } #endregion @@ -2475,7 +2481,8 @@ agvTask.CtnrTyp = "1"; //瀹瑰櫒绫诲瀷锛屽�间负1 if (type == "D02") { - agvTask.CtnrNum = "10"; //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺 + var palnoNum = Db.Queryable<BllPalletBind>().OrderByDescending(w=>w.Id).First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo); + agvTask.CtnrNum = palnoNum.Qty.ToString(); //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺 } agvTaskList.Add(agvTask); @@ -2495,6 +2502,41 @@ LogFile.SaveLogToFile($"AGV浠诲姟鍙嶉鎵ц閫氱煡锛�( {jsonData} ),", logStr); } + #endregion + + #region 娣诲姞鍑哄簱浠诲姟淇℃伅 + + var taskNonew = new Common().GetMaxNo("TK"); + var exTask = new LogTask //灏忚溅绉诲簱浠诲姟 + { + TaskNo = TtaskNo, + Sender = "WMS", + Receiver = "AGV", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = positionStart,//璧峰浣嶇疆 + EndLocat = positionEnd,//鐩爣浣嶇疆 + PalletNo = task.PalletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + CreateTime = DateTime.Now, //鍒涘缓鏃堕棿 + CreateUser = userId, //鍒涘缓浜� + Msg = "灏忚溅浠�" + positionStart + "鍒�" + positionEnd + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅 + //FinishDate = serverTime, //瀹屾垚鏃堕棿 + }; + Db.Insertable(exTask).ExecuteCommand(); + + #endregion + + #region 鍌ㄤ綅鐘舵�佸彉鏇� + //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� + var locat = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == positionEnd); + locat.Status = "4"; //4 绉诲叆涓� + Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 #endregion } Db.CommitTran(); @@ -2882,7 +2924,15 @@ // 鍑哄簱鎬昏〃 鐘舵�佹敼涓洪儴鍒嗗垎閰� var noticeModel = Db.Queryable<BllExportNotice>().First(m => m.SONo == noticeDetailModel.SONo && m.IsDel == "0"); - noticeModel.Status = "1"; + if (noticeDetailModel.AllotQty<=0) + { + noticeModel.Status = "0"; + } + else + { + noticeModel.Status = "1"; + } + Db.Updateable(noticeModel).ExecuteCommand(); // 搴撳瓨鏄庣粏琛� 鐘舵�佷慨鏀逛负寮傚父閿佸畾 閿佸畾鏁伴噺淇敼涓烘墭鐩樹笂鏁伴噺 @@ -2896,7 +2946,7 @@ // 搴撳瓨鎬昏〃 閿佸畾鏁伴噺=褰撳墠閿佸畾鏁伴噺 + (搴撳瓨鏄庣粏鎵樼洏涓婃暟閲�-搴撳瓨鏄庣粏鎵樼洏涓婂凡閿佸畾鐨勬暟閲�) var stockModel = Db.Queryable<DataStock>().First(m => m.LotNo == stockDetailModel.LotNo && m.SkuNo == stockDetailModel.SkuNo && m.IsDel == "0"); - stockModel.LockQty = stockModel.LockQty + (int)(stockDetailModel.Qty - lockQty); + stockModel.LockQty = stockModel.LockQty + (decimal)(stockDetailModel.Qty - lockQty); Db.Updateable(stockModel).ExecuteCommand(); // 鎷h揣鏄庣粏琛� 鍒犻櫎 @@ -3581,7 +3631,7 @@ foreach (var item in detailList) { totalQty += item.Qty; - totalAllotQty += Convert.ToInt32(item.AllotQty); + totalAllotQty += Convert.ToDecimal(item.AllotQty); } if (totalAllotQty >= totalQty) @@ -3655,7 +3705,7 @@ } } var boxInfo = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.PalletNo == item.PalletNo && w.BitBoxMark == "1").ToList(); - if (boxInfo != null)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠� + if (boxInfo.Count>0)//鎵樼洏涓婃湁闆剁闇�瑕佹媶绠� { result = "1";//闇�瑕佹媶绠� break; @@ -3748,14 +3798,14 @@ try { // 鍒ゆ柇褰撳墠浠诲姟鐘舵�� Status 1:姝e湪鎵ц 3:寮傚父缁撴潫 - var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1"); + var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" ); if (taskModel == null) { throw new Exception("姝や换鍔′笉瀛樺湪鎴栦换鍔$姸鎬佸凡鍙樻洿!"); } // 楠岃瘉鎵樼洏鍒嗛厤淇℃伅 - var palletBindModel = Db.Queryable<BllExportAllot>().First(m => m.PalletNo == model.PalletNo && m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1"); - if (palletBindModel != null) + var palletBindModel = Db.Queryable<BllExportAllot>().First(m => m.PalletNo == model.PalletNo && m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "2"); + if (palletBindModel == null) { throw new Exception("鏈壘鍒板綋鍓嶆墭鐩樺垎閰嶄换鍔′俊鎭�!"); } @@ -3804,10 +3854,10 @@ } /// <summary> - /// 鑾峰彇鎷嗗灈鍒嗘嫞涓绘壂绠辩爜鍑哄簱 + /// 鎷嗗灈鍒嗘嫞涓绘壂绠辩爜鍑哄簱 /// </summary> - /// <param name="model">鎷嗗灈鎵樼洏鍙峰拰WCS浠诲姟鍙�</param> - /// <returns>鎷嗗灈鎵樼洏淇℃伅</returns> + /// <param name="model">绠卞彿</param> + /// <returns>鍑哄簱鍒嗘嫞鍙�</returns> public string BoxInfoExportWcs(string boxno) { try @@ -3882,7 +3932,7 @@ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); } decimal pickQty = 0;//鎷h揣鐨勬暟閲� - + Db.BeginTran(); var comList = new List<BllCompleteDetail>(); foreach (var item in boxInfos) { @@ -3989,12 +4039,12 @@ } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); - - return ""; + Db.CommitTran(); + return allot.LoadingAddre; } catch (Exception e) { - + Db.RollbackTran(); throw new Exception(e.Message); } } -- Gitblit v1.8.0