From 4606665e0e359aa54483283c042934c644a45434 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期一, 28 四月 2025 17:26:15 +0800 Subject: [PATCH] 修改冲突问题 --- Admin.NET/WCS.Application/Util/FourWayCarUtil.cs | 70 +++++++++++++++++++++++++--------- 1 files changed, 51 insertions(+), 19 deletions(-) diff --git a/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs b/Admin.NET/WCS.Application/Util/FourWayCarUtil.cs index c4bc14f..010fb9c 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; @@ -196,13 +197,13 @@ executionPath1 += pathXYZQian + ";"; } executionPath2 += pathXYZQian + ";"; - //鍒ゆ柇娣诲姞鍓嶇疆浠诲姟Id - if (!preId1.Contains(item + "")) - { - preId1 += item + ";"; - } + } - + //鍒ゆ柇娣诲姞鍓嶇疆浠诲姟Id + if (!preId1.Contains(item + "")) + { + preId1 += item + ";"; + } isOk = "2"; } @@ -277,7 +278,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 +303,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,9 +313,14 @@ 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); @@ -320,6 +328,7 @@ //濡傛灉姝ゆ鍒嗛厤璺緞鍖呭惈閱夎垶涓渶缁堣妭鐐硅矾寰勶紝娣诲姞绉昏蛋灏忚溅 if (path.Contains(lastPath2)) { + var endLocate = ""; var executionPath4 = ""; var path4 = ""; @@ -327,7 +336,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 +360,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 +372,7 @@ PreId = "", ExecutionPath = executionPath4, Path = path4, - CarNo = item.CarNo, + CarNo = lastTask.CarNo, Status = TaskStatusEnum.Wait }; var idLong = _db.Insertable(carTaskYC).ExecuteReturnSnowflakeId(); @@ -391,7 +401,7 @@ var carTask2 = new WcsCarTasks() { TaskNo = waitTask.TaskNo, - PreId = preId1, + PreId = "", ExecutionPath = executionPath2, Path = path, CarNo = assignCar.CarPlcIp, @@ -399,19 +409,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> @@ -601,6 +611,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