From 969aafa8bd335025da4caf5939a1626bad4f4236 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期四, 19 六月 2025 16:54:03 +0800 Subject: [PATCH] Merge branch 'csc' --- Admin.NET/WCS.Application/Util/FourWayCarUtil.cs | 171 +++++---------------------------------------------------- 1 files changed, 15 insertions(+), 156 deletions(-) diff --git a/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs b/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs index b8aa592..0a8fe55 100644 --- a/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs +++ b/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs @@ -26,6 +26,10 @@ /// <returns></returns> public static List<CarModel> GetCarPathUp(List<CarModel> list, int moveType) { + if (list == null) + { + return null; + } for (int i = 0; i < list.Count; i++) { if (i >= 0 && i < list.Count - 1) @@ -163,6 +167,15 @@ } + /// <summary> + /// + /// </summary> + /// <param name="data">褰撳墠浠诲姟鎬昏矾寰�</param> + /// <param name="kXCarList">鎵�鏈夊皬杞�</param> + /// <param name="assignCar">褰撳墠鍒嗛厤灏忚溅</param> + /// <param name="waitTask">褰撳墠鎬讳换鍔�</param> + /// <param name="moveType">0鍘诲彇璐т换鍔� 1鍘绘斁璐�</param> + /// <returns></returns> public static bool AddCarTask(List<CarModel> data, List<CarInfo> kXCarList, CarInfo assignCar, WcsTask waitTask,int moveType) { #region 鑾峰彇閫傚悎鎵ц褰撳墠浠诲姟鐨勫皬杞� 鐢熸垚璺緞锛堥渶鑰冭檻灏忚溅闃婚樆鎸★級 @@ -325,7 +338,7 @@ var lastPath = lastPathList[lastPathList.Length - 2]; var lastPath2 = lastPath.Substring(0,6); - //濡傛灉姝ゆ鍒嗛厤璺緞鍖呭惈閱夎垶涓渶缁堣妭鐐硅矾寰勶紝娣诲姞绉昏蛋灏忚溅 + //濡傛灉姝ゆ鍒嗛厤璺緞鍖呭惈浠诲姟涓渶缁堣妭鐐硅矾寰勶紝娣诲姞绉昏蛋灏忚溅 if (path.Contains(lastPath2)) { @@ -424,7 +437,6 @@ } - /// <summary> /// 鑾峰彇灏忚溅璺緞 /// </summary> @@ -492,7 +504,7 @@ if (current.Equals(end)) { - Log.Error(ReconstructPath(cameFrom, current).ToString()); + Log.Error("灏忚溅璺緞鍒嗛厤锛�" +ReconstructPath(cameFrom, current).ToString()); return ReconstructPath(cameFrom, current); } @@ -609,159 +621,6 @@ } return null; - } - - /// <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> -- Gitblit v1.8.0