From 9b3567a5a2f1a81bec684e8aecda3a1146906cca Mon Sep 17 00:00:00 2001 From: bklLiudl <673013083@qq.com> Date: 星期一, 28 四月 2025 17:10:46 +0800 Subject: [PATCH] 托盘输送线交互 --- Admin.NET/WCS.Application/OpenApi/OpenApi.cs | 86 +++++++++++++++++++++++++++++++++--------- 1 files changed, 67 insertions(+), 19 deletions(-) diff --git a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs index 62c9a4d..91917e5 100644 --- a/Admin.NET/WCS.Application/OpenApi/OpenApi.cs +++ b/Admin.NET/WCS.Application/OpenApi/OpenApi.cs @@ -1,22 +1,8 @@ -锘縰sing DocumentFormat.OpenXml.Presentation; -using Elastic.Clients.Elasticsearch; +锘縰sing Admin.NET.Core.Service; using Furion.DatabaseAccessor; using Furion.Logging; -using NewLife.Serialization; -using Newtonsoft.Json; -using System; -using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Text; using WCS.Application.Entity; -using Microsoft.AspNetCore.Mvc; -using Admin.NET.Core.Service; -using DocumentFormat.OpenXml.Bibliography; -using AngleSharp.Common; -using AngleSharp.Text; -using Newtonsoft.Json.Linq; -using SqlSugar; -using NewLife.Reflection; +using WCS.Application.Util; namespace WCS.Application; @@ -42,7 +28,54 @@ _taskService = taskService; } - // <summary> + /// <summary> + /// 娴嬭瘯鍒嗛厤浠诲姟璺緞 + /// </summary> + /// <param name="models">浠诲姟淇℃伅</param> + /// <returns>鍙嶉淇℃伅</returns> + [AllowAnonymous] + public async Task AddAssignTasks(ResponseTasksModel models) + { + // 楠岃瘉浠诲姟鏄惁宸插瓨鍦� + var taskInfo = await _db.Queryable<WcsTask>().FirstAsync(w => w.TaskNo == models.TaskNo); + if (taskInfo == null) + { + throw Oops.Bah("浠诲姟:" + models.TaskNo + ";涓嶅瓨鍦�!"); + } + var data1 = FourWayCarUtil.GetCarPath(taskInfo.StartLocate, taskInfo.EndLocate); + if (data1 == null) //|| data1.Count == 0 + { + throw Oops.Bah("鍒嗛厤璺緞涓嶅瓨鍦�!"); + } + + // 鏍规嵁浠诲姟鐘舵�� 琛ュ厖璧峰缁撴潫鑺傜偣鐘舵�� + var data2 = FourWayCarUtil.GetCarPathUp(data1, 1); + var path = ""; + var executionPath1 = ""; + foreach (var item in data1) + { + //璺緞鑺傜偣 + var pathXYZ = item.X.ToString().PadLeft(2, '0') + item.Y.ToString().PadLeft(2, '0') + item.Z.ToString().PadLeft(2, '0') + item.NodeCom.ToString(); + path += pathXYZ + ";"; + if (item.IsSendPlc) + { + executionPath1 += pathXYZ + ";"; + } + } + // 鎻掑叆鍥涘悜杞︿换鍔¤〃 + var carTask1 = new WcsCarTasks() + { + TaskNo = taskInfo.TaskNo, + PreId = "", + ExecutionPath = executionPath1, + Path = path, + CarNo = "", + Status = TaskStatusEnum.Wait + }; + var i = _db.Insertable(carTask1).ExecuteCommand(); + Console.WriteLine(""+i); + } + /// WCS鎺ュ彈WMS涓嬪彂鐨勪换鍔�(澶� /// 鏉′换鍔�) /// <param name="models">浠诲姟淇℃伅</param> @@ -73,7 +106,7 @@ //鏂板浠诲姟 var taskAdd = new WcsTask() { - TaskNo = models.TaskNo, + TaskNo = models.TaskNo, TaskType = (TaskTypeEnum)Convert.ToInt32(models.TaskType), Type = models.Type, Status = TaskStatusEnum.Wait, @@ -85,6 +118,13 @@ EndRoadway = models.EndRoadway, PalletNo = models.PalletNo, }; + + // 鑻ラ潪AGV浠诲姟澧炲姞浠诲姟ID + if (models.Type != PLCTypeEnum.AGV) + { + taskAdd.TaskId = FourWayCarUtil.GetTaskId(); + } + listTask.Add(taskAdd); } await _db.Insertable(listTask).ExecuteCommandAsync(); @@ -115,8 +155,9 @@ var taskAdd = new WcsTask() { TaskNo = models.TaskNo, - TaskType = TaskTypeEnum.Out, + TaskType = (TaskTypeEnum?)int.Parse(models.TaskType), Status = TaskStatusEnum.Wait, + Type = models.Type, Levels = 999, Origin = "WMS", StartRoadway = models.StartRoadway, @@ -125,6 +166,13 @@ EndRoadway = models.EndRoadway, PalletNo = models.PalletNo, }; + + // 鑻ラ潪AGV浠诲姟澧炲姞浠诲姟ID + if (models.Type != PLCTypeEnum.AGV) + { + taskAdd.TaskId = FourWayCarUtil.GetTaskId(); + } + await _db.Insertable(taskAdd).ExecuteCommandAsync(); } -- Gitblit v1.8.0