From 94a1a7574f7ce3c61148742cb6f8e6c60a4ed3aa Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期一, 28 四月 2025 17:19:53 +0800 Subject: [PATCH] 解决冲突 --- Admin.NET/WCS.Application/Util/FourWayCarUtil.cs | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 176 insertions(+), 0 deletions(-) diff --git a/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs b/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs index 596b8d0..b8aa592 100644 --- a/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs +++ b/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs @@ -7,6 +7,7 @@ using System.Text; using System.Threading.Tasks; using WCS.Application.Entity; +using static Elastic.Clients.Elasticsearch.JoinField; using static SKIT.FlurlHttpClient.Wechat.Api.Models.CustomServiceKfSessionGetWaitCaseResponse.Types; namespace WCS.Application.Util; @@ -611,6 +612,181 @@ } /// <summary> + /// 鑾峰彇灏忚溅绉诲姩鐨勭洰鏍囦綅缃� + /// </summary> + /// <param name="startLocation">璧峰浣嶇疆</param> + /// <param name="noPathStr">涓嶈兘瀛樻斁鐨勫偍浣嶅瓧绗︿覆</param> + /// <returns></returns> + public static string GetCarEndLocation(string startLocation,string noPathStr) + { + if (string.IsNullOrEmpty(startLocation)) + { + return null; + } + + // 璧峰浣嶇疆 + CarModel start = new CarModel() + { + X = int.Parse(startLocation.Substring(0, 2)), + Y = int.Parse(startLocation.Substring(2, 2)), + Z = int.Parse(startLocation.Substring(4, 2)), + NodeCom = 0 + }; + + // 鑾峰彇鍌ㄤ綅琛ㄤ俊鎭瓨鍌ㄥ埌闆嗗悎閲� + var layer = int.Parse(startLocation.Substring(4, 2)); + + // 鑾峰彇褰撳墠灞傚偍浣嶄俊鎭� + var locationModels = _db.Queryable<WcsStorageLocat>() + .Where(m => m.WareHouseNo == "W01" && m.Layer == layer && m.IsDelete == false) + .ToList(); + + #region MyRegion + + var list = locationModels.Where(m => !noPathStr.Contains(m.LocatNo)).OrderBy(m=> Math.Abs(start.X - m.Row) + Math.Abs(start.Y - m.Column)).ToList(); + var locateStr = ""; + foreach (var item in list) + { + // 鍌ㄤ綅鐘舵�佷负鎹熷潖涓嶅彲閫氳 鍌ㄤ綅鐘舵�佷负灞忚斀涓哄彲閫氳涓嶅彲瀛樺偍鎵樼洏 + if (item.Flag == "2") + { + continue; + } + locateStr = item.LocatNo; + break; + } + return locateStr; + #endregion + + #region 浣跨敤绠楁硶璁$畻灏忚溅鍙Щ鍔ㄧ殑鐩爣璺緞 + //try + //{ + + // // 瀹氫箟鍏抽棴鑺傜偣瀛楀吀 + // var closeSet = new Dictionary<CarModel, CarModel>(); + + // // 瀛樺偍灏忚溅鍙繍琛岀殑鏂瑰悜 + // var validDirections = new List<CarModel>(); + // var currentLocation = locationModels.FirstOrDefault(m => m.Row == start.X && m.Column == start.Y); + // if (currentLocation.Make == "0") + // { + // // 涓婚�氶亾 + // validDirections.Add(new CarModel() { X = 1, Y = 0 }); // 鍙� + // validDirections.Add(new CarModel() { X = -1, Y = 0 }); // 宸� + // validDirections.Add(new CarModel() { X = 0, Y = 1 }); // 涓� + // validDirections.Add(new CarModel() { X = 0, Y = -1 }); // 涓� + // } + + // if (currentLocation.Make == "1") + // { + // // 瀛愰�氶亾 + // // 鍏堟媶鍒嗗嚭鍙� + // var outNode = currentLocation.AisleOne; + // if (string.IsNullOrEmpty(outNode)) + // { + // throw new Exception("褰撳墠浣嶇疆娌℃湁缁存姢鍑哄彛锛�"); + // } + // int outX = int.Parse(outNode.Substring(0, 2)); + // int outY = int.Parse(outNode.Substring(2, 2)); + // if (start.X == outX) + // { + // validDirections.Add(new CarModel() { X = 0, Y = 1 }); // 涓� + // validDirections.Add(new CarModel() { X = 0, Y = -1 }); // 涓� + + // } + // else + // { + // validDirections.Add(new CarModel() { X = 1, Y = 0 }); // 鍙� + // validDirections.Add(new CarModel() { X = -1, Y = 0 }); // 宸� + // } + // } + + // foreach (var dir in validDirections) + // { + // CarModel neighbor = new CarModel() { X = start.X + dir.X, Y = start.Y + dir.Y, Z = layer }; + + // // 楠岃瘉涓嬩竴鑺傜偣浣嶇疆鏄惁鍙�氳骞朵笖鍒ゆ柇鏄惁琚叾浠栧皬杞﹀崰鐢� + + + // // 鍒ゆ柇涓嬩竴鑺傜偣鏄惁鍏抽棴 + // if (closeSet.ContainsKey(neighbor)) + // { + // closeSet[neighbor] = neighbor; + // } + + // // 褰撳墠鑺傜偣 + // var currentModel = locationModels.FirstOrDefault(it => it.Row == start.X && it.Column == start.Y); + // // 涓嬩竴鑺傜偣 + // var locationModel = locationModels.FirstOrDefault(it => it.Row == neighbor.X && it.Column == neighbor.Y); + + // // 涓嶅瓨鍦ㄦ浣嶇疆淇℃伅 + // if (locationModel == null) + // { + // closeSet[neighbor] = neighbor; + // continue; + // } + // // 鍌ㄤ綅鐘舵�佷负鎹熷潖涓嶅彲閫氳 鍌ㄤ綅鐘舵�佷负灞忚斀涓哄彲閫氳涓嶅彲瀛樺偍鎵樼洏 + // if (locationModel.Flag == "2") + // { + // closeSet[neighbor] = neighbor; + // continue; + // } + + // } + + + + //} + //catch (Exception) + //{ + // throw; + //} + + //return null; + #endregion + } + + public static int GetTaskNo() + { + var list = _db.Queryable<WcsCarTasks>().ToList(); + var maxNo = list.Max(m => m.CarTaskNo); + + if (maxNo!=null && maxNo > 0) + { + if (maxNo++ > 65535) + { + return 1; + } + + return (int)maxNo++; + } + return 1; + + } + + /// <summary> + /// 鑾峰彇鎬讳换鍔¤〃涓嬪彂ID涓婚敭 + /// </summary> + /// <returns></returns> + public static int GetTaskId() + { + var list = _db.Queryable<WcsTask>().ToList(); + var maxNo = list.Max(m => m.TaskId); + + if (maxNo != null && maxNo > 0) + { + if (maxNo++ > 99999999) + { + return 1; + } + + return (int)maxNo++; + } + + return 1; + } + + /// <summary> /// 璁$畻鏇煎搱椤胯窛绂� /// </summary> /// <param name="start">璧峰浣嶇疆</param> -- Gitblit v1.8.0