From 54c9cb77e93d08bc330b9a421e6232b7f7bba57a Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期五, 19 九月 2025 17:30:36 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/HttpServer.cs | 150 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 120 insertions(+), 30 deletions(-) diff --git a/Wms/WMS.BLL/HttpServer.cs b/Wms/WMS.BLL/HttpServer.cs index 97b2d33..7ca3643 100644 --- a/Wms/WMS.BLL/HttpServer.cs +++ b/Wms/WMS.BLL/HttpServer.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading.Tasks; using Utility.Tools; using WMS.BLL.Logic; using WMS.BLL.LogServer; @@ -35,7 +36,7 @@ #region 鍒ゆ柇 if (string.IsNullOrEmpty(palletNo)) { - throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); + throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�!"); } if (string.IsNullOrEmpty(houseNo)) { @@ -144,7 +145,12 @@ for (int i = 1; i <= 2; i++) { var iStr = i.ToString(); - locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr); + try + { + locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr); + } + catch (Exception e) + { } if (locate != null) { break; @@ -840,7 +846,15 @@ var roadStr = Db.Queryable<SysStorageRoadway>().Where(m => m.IsDel == "0" && m.Status == "0").Select(m=>m.RoadwayNo).ToList(); //宸烽亾缁勪俊鎭� var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo) && !string.IsNullOrWhiteSpace(m.RoadwayNo) && roadStr.Contains(m.RoadwayNo)) - .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList(); + .GroupBy(m => m.RoadwayNo) + .Select(m => m.RoadwayNo) + .ToList() + .OrderBy(roadwayNo => + { + // 绉婚櫎鎵�鏈夐潪鏁板瓧瀛楃锛屽彧淇濈暀鏁板瓧 + var numbersOnly = new string(roadwayNo.Where(char.IsDigit).ToArray()); + return int.TryParse(numbersOnly, out int result) ? result : 0; + }).ToList(); #endregion @@ -1468,7 +1482,7 @@ var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); //鍒ゆ柇鏄惁鏄洖娴佸叆搴撳畬鎴� - if (!stockDetail.Any()) + if (!stockDetail.Any() && task.EndLocat!= "B100101")//B100101鏄┖鎵樼洏鏀堕泦鍣紝涓嶇敤鏍¢獙搴撳瓨 { throw new Exception("娌℃湁鏌ヨ鍒板簱瀛樹俊鎭�"); } @@ -1763,9 +1777,9 @@ { throw new Exception("鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱"); } - if (locate.WareHouseNo != "W02") + if (locate.WareHouseNo != "W02" && locate.WareHouseNo != "W04") { - throw new Exception("鎵樼洏涓嶅湪璐ф灦搴撲笂"); + throw new Exception("鎵樼洏涓嶅湪璐ф灦搴撲笂涔熶笉鍦ㄥ钩搴�"); } var locateEnd = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//褰撳墠鍑哄簱鐨勭洰鏍囧偍浣嶄俊鎭� if (locateEnd == null) @@ -1774,11 +1788,20 @@ } else if (locateEnd.Status != "0") { - throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅"); + var logEnd = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.EndLocat == locateEnd.LocatNo); + if (logEnd != null && logEnd.PalletNo != palletNo) + { + throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅"); + } + var detailEnd = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == locateEnd.LocatNo); + if (detailEnd != null && detailEnd.PalletNo != palletNo) + { + throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅"); + } } #endregion - if (locate.Status == "1") //鏈夌墿鍝� + if (locate.WareHouseNo == "W02" && locate.Status == "1") //鏈夌墿鍝� { #region 娣诲姞鍑哄簱浠诲姟 @@ -1857,9 +1880,9 @@ Db.Updateable(item).ExecuteCommand(); #endregion - + } - else if (locate.Status == "3") //鍑哄簱涓� + else if (locate.Status == "3" || locate.WareHouseNo == "W04") //鍑哄簱涓垨宸插湪骞冲簱 { #region 鏀瑰彉鏁版嵁 //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛� @@ -1883,21 +1906,31 @@ } } } - var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo); - if (taskNo == null) + if (locate.WareHouseNo == "W04") { - taskNo = logTaskList.FirstOrDefault(m => m.PalletNo == item.PalletNo);//褰撳墠鏈夊悓鎵樼洏涓嶅悓鐗╂枡鍑哄簱 + item.TaskNo = ""; + item.Status = "2"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� + item.OutMode = item.OutMode;//鍑哄簱鍙� + //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡 + Db.Updateable(item).ExecuteCommand(); } - if (taskNo == null) + else { - throw new Exception($"鎵樼洏鍙凤細{item.PalletNo},鍑哄簱寮傚父"); - } - item.TaskNo = taskNo.TaskNo; - item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� - item.OutMode = item.OutMode;//鍑哄簱鍙� - //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡 - Db.Updateable(item).ExecuteCommand(); - + var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo); + if (taskNo == null) + { + taskNo = logTaskList.FirstOrDefault(m => m.PalletNo == item.PalletNo);//褰撳墠鏈夊悓鎵樼洏涓嶅悓鐗╂枡鍑哄簱 + } + if (taskNo == null) + { + throw new Exception($"鎵樼洏鍙凤細{item.PalletNo},鍑哄簱寮傚父"); + } + item.TaskNo = taskNo.TaskNo; + item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� + item.OutMode = item.OutMode;//鍑哄簱鍙� + //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡 + Db.Updateable(item).ExecuteCommand(); + } #endregion } else if (locate.Status == "5") //绉诲嚭涓� @@ -1960,7 +1993,64 @@ throw new Exception(e.Message); } } + /// <summary> + /// PDA骞冲簱涓嬪彂鍑哄簱 + /// </summary> + /// <param name="soNo"></param> + /// <param name="detailId"></param> + /// <param name="palletNo"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> + public void IssueOutHousePk(string soNo, string detailId, string palletNo, int userId) + { + try + { + var notice = Db.Queryable<BllExportNotice>().First(m => m.SONo == soNo && m.IsDel == "0"); + if (notice == null) + { + throw new Exception($"鏈壘鍒皗soNo}鍑哄簱鍗曚俊鎭�"); + } + var detail=Db.Queryable<DataStockDetail>().First(m => m.PalletNo == palletNo && m.IsDel == "0"); + if (detail.WareHouseNo != "W04") + { + throw new Exception("浠撳簱鍙烽敊璇�"); + } + var intDetailId = int.Parse(detailId); + if (intDetailId <= 0) + { + throw new Exception("閫夋嫨鐨勫嚭搴撳崟鏄庣粏鍙傛暟閿欒"); + } + //寮�鍚簨鍔� + Db.BeginTran(); + notice.Status = "3";//姝e湪杩涜 + Db.Updateable(notice).ExecuteCommand(); + + //鎵�鏈夎鍑哄簱鐨勫嚭搴撳垎閰嶄俊鎭�(鏈笅鍙戠殑淇℃伅鍜屽緟鎷h揣鐨勪俊鎭�) + var allot = Db.Queryable<BllExportAllot>().Where(a => a.IsDel == "0" && a.PalletNo == palletNo && a.Status == "0").ToList(); + if (allot == null || allot.Count <= 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鍑哄簱娴佹按 + { + throw new Exception("褰撳墠鍑哄簱鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏"); + } + //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級 + foreach (var item in allot) + { + item.Status = "2"; + Db.Updateable(item).ExecuteCommand(); + } + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "涓嬪彂鍑哄簱", soNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鍑哄簱鍗曞彿涓猴細{soNo}鐨勫嚭搴撳崟", userId); + //鎻愪氦浜嬪姟 + Db.CommitTran(); + } + catch (Exception e) + { + //鍥炴粴浜嬪姟 + Db.RollbackTran(); + throw new Exception(e.Message); + } + } #region MyRegion @@ -2008,15 +2098,15 @@ //Db.Insertable(exTask).ExecuteCommand(); - // 璋冪敤Limes鎺ュ彛鍙戣捣璇烽獙 - var sendModel = new SendLimesModel() + // 璋冪敤Sqp鎺ュ彛鍙戣捣璇烽獙 + var sendModel = new SendSapQcDetailVm() { QcNo = data.QcNo, - SkuNo = data.SkuNo, - Qty = data.Qty.ToString(), - LotNo = data.LotNo, - SupplierLot = data.SupplierLot, - RequestUser = userName, // 璇烽獙浜� + skuNo=data.SkuNo, + skuName = data.SkuNo, + lotNo = data.LotNo, + Qty = Convert.ToDecimal(data.Qty), + SupplierLot = data.SupplierLot }; var jsonData = JsonConvert.SerializeObject(sendModel); string response = ""; @@ -2024,7 +2114,7 @@ try { var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") - //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Limes绯荤粺鍙戣捣璇烽獙", "Limes"); + //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Sap绯荤粺鍙戣捣璇烽獙", "Sap"); var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss") ////瑙f瀽杩斿洖鏁版嵁 -- Gitblit v1.8.0