From 2ecd9c5db603efcde9e6e51a500b3c2b1162fb85 Mon Sep 17 00:00:00 2001
From: bklLiudl <673013083@qq.com>
Date: 星期一, 28 四月 2025 17:15:44 +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 c4bc14f..a86c60e 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;
@@ -601,6 +602,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