From 4c7f2d26fd6041d32f4e291559bc443671493246 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期四, 19 六月 2025 16:52:45 +0800 Subject: [PATCH] 修改问题 --- Admin.NET/WCS.Application/Util/FourWayCarUtil.cs | 87 +++++++++++++++++++++++++++++++++---------- 1 files changed, 66 insertions(+), 21 deletions(-) diff --git a/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs b/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs index c4bc14f..0a8fe55 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; @@ -25,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) @@ -162,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 鑾峰彇閫傚悎鎵ц褰撳墠浠诲姟鐨勫皬杞� 鐢熸垚璺緞锛堥渶鑰冭檻灏忚溅闃婚樆鎸★級 @@ -196,13 +210,13 @@ executionPath1 += pathXYZQian + ";"; } executionPath2 += pathXYZQian + ";"; - //鍒ゆ柇娣诲姞鍓嶇疆浠诲姟Id - if (!preId1.Contains(item + "")) - { - preId1 += item + ";"; - } + } - + //鍒ゆ柇娣诲姞鍓嶇疆浠诲姟Id + if (!preId1.Contains(item + "")) + { + preId1 += item + ";"; + } isOk = "2"; } @@ -277,7 +291,8 @@ PalletNo = "", Status = TaskStatusEnum.Wait, Levels = 999, - Origin = "WCS" + Origin = "WCS", + CarIp = item.CarPlcIp }; _db.Insertable(modTask).ExecuteCommand(); HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); @@ -301,7 +316,8 @@ #region 鍒ゆ柇鐜版湁浠诲姟涓渶缁堣妭鐐规槸鍚﹀湪褰撳墠鍒嗛厤璺緞涓紝濡傛湁 娣诲姞绉昏蛋灏忚溅浠诲姟骞跺姞鍏ュ墠缃换鍔� 4 //鑾峰彇绛夊緟鎴栨鍦ㄦ墽琛岀殑浠诲姟涓寘鍚綋鍓嶈妭鐐圭殑灏忚溅浠诲姟锛屼笉浼氭湁澶浠诲姟锛屽悓灞傛湁鍑犱釜灏忚溅鏈�澶氭湁鍑犱釜浠诲姟 - var taskList4 = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.CarNo!=assignCar.CarPlcIp).ToList(); + var taskListTask4 = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.CarNo!=assignCar.CarPlcIp).GroupBy(m=>m.TaskNo).Select(m=>m.TaskNo).ToList(); + var taskList4 = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.CarNo != assignCar.CarPlcIp).ToList(); var preId4 = "";//鍓嶇疆浠诲姟Id var str4 = "";//鎵�鏈夊凡鍒嗛厤鎴栨墽琛岀殑浠诲姟鍏ㄨ矾寰勪箣鍜� @@ -310,16 +326,22 @@ str4 += item.Path; } //鍒ゆ柇鐜版湁浠诲姟涓渶缁堣妭鐐规槸鍚﹀湪褰撳墠鍒嗛厤璺緞涓紝濡傛湁 娣诲姞绉昏蛋灏忚溅浠诲姟骞跺姞鍏ュ墠缃换鍔� - foreach (var item in taskList4) + foreach (var item in taskListTask4) { - var lastPathList = item.ExecutionPath.Split(';'); + var lastTask = taskList4.Where(m => m.TaskNo == item ).OrderBy(m=>m.CreateTime).LastOrDefault(); + if (lastTask == null) + { + continue; + } + var lastPathList = lastTask.ExecutionPath.Split(';'); // a;b;c; 鏈�鍚庝竴涓綅鏄�溾�濓紝鎵�浠astPathList.Length - 2 var lastPath = lastPathList[lastPathList.Length - 2]; var lastPath2 = lastPath.Substring(0,6); - //濡傛灉姝ゆ鍒嗛厤璺緞鍖呭惈閱夎垶涓渶缁堣妭鐐硅矾寰勶紝娣诲姞绉昏蛋灏忚溅 + //濡傛灉姝ゆ鍒嗛厤璺緞鍖呭惈浠诲姟涓渶缁堣妭鐐硅矾寰勶紝娣诲姞绉昏蛋灏忚溅 if (path.Contains(lastPath2)) { + var endLocate = ""; var executionPath4 = ""; var path4 = ""; @@ -327,7 +349,7 @@ //鏌ユ壘鐩爣浣嶇疆 while (endLocate == "" || datas4.Count == 0 || datas4 == null) { - endLocate = FourWayCarUtil.GetCarEndLocation(lastPath, str4); + endLocate = FourWayCarUtil.GetCarEndLocation(lastPath, str4+path); var data4 = FourWayCarUtil.GetCarPath(lastPath, endLocate); datas4 = FourWayCarUtil.GetCarPathUp(data4, 0); } @@ -351,7 +373,8 @@ PalletNo = "", Status = TaskStatusEnum.Wait, Levels = 999, - Origin = "WCS" + Origin = "WCS", + CarIp = lastTask.CarNo }; _db.Insertable(modTask).ExecuteCommand(); HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); @@ -362,7 +385,7 @@ PreId = "", ExecutionPath = executionPath4, Path = path4, - CarNo = item.CarNo, + CarNo = lastTask.CarNo, Status = TaskStatusEnum.Wait }; var idLong = _db.Insertable(carTaskYC).ExecuteReturnSnowflakeId(); @@ -391,7 +414,7 @@ var carTask2 = new WcsCarTasks() { TaskNo = waitTask.TaskNo, - PreId = preId1, + PreId = "", ExecutionPath = executionPath2, Path = path, CarNo = assignCar.CarPlcIp, @@ -399,19 +422,19 @@ }; _db.Insertable(carTask2).ExecuteCommand(); } + waitTask.CarIp = assignCar.CarPlcIp; if (moveType == 1) { // 鏀瑰彉鎬讳换鍔¤〃鐘舵�� waitTask.Status = TaskStatusEnum.Doing; - waitTask.UpdateTime = DateTime.Now; - _db.Updateable(waitTask).ExecuteCommand(); - HubUtil.PublicTask(waitTask.Adapt<WcsTaskOutput>()); + waitTask.UpdateTime = DateTime.Now; } - + _db.Updateable(waitTask).ExecuteCommand(); + HubUtil.PublicTask(waitTask.Adapt<WcsTaskOutput>()); + return true; #endregion } - /// <summary> @@ -481,7 +504,7 @@ if (current.Equals(end)) { - Log.Error(ReconstructPath(cameFrom, current).ToString()); + Log.Error("灏忚溅璺緞鍒嗛厤锛�" +ReconstructPath(cameFrom, current).ToString()); return ReconstructPath(cameFrom, current); } @@ -601,6 +624,28 @@ } /// <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