From aa4aa67abfdf69e30d5076451716e5aba11d5ec0 Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期二, 14 四月 2026 16:12:40 +0800
Subject: [PATCH] 1

---
 WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs |  202 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 193 insertions(+), 9 deletions(-)

diff --git a/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs b/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
index bc22c16..534f144 100644
--- a/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
+++ b/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -1,11 +1,19 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
+锘縰sing Autofac.Core.Resolving.Middleware;
+using HslCommunication.WebSocket;
+using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
+using SqlSugar.Extensions;
+using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseController;
 using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_TaskInfoRepository;
+using WIDESEAWCS_TaskInfoService;
+using WIDESEAWCS_Tasks;
 
 namespace WIDESEAWCS_WCSServer.Controllers.Task
 {
@@ -14,16 +22,39 @@
     public class TaskController : ApiBaseController<ITaskService, Dt_Task>
     {
         private readonly IHttpContextAccessor _httpContextAccessor;
-        public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        private readonly IRouterExtension _routerExtension;
+        //private readonly WebSocketServer _webSocketServer;
+        private readonly ITaskService _taskService;
+        private readonly ITaskRepository _taskRepository;
+        public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor, IRouterExtension routerExtension, ITaskService taskService, ITaskRepository taskRepository /*, WebSocketServer webSocketServer*/) : base(service)
         {
             _httpContextAccessor = httpContextAccessor;
+            _routerExtension = routerExtension;
+            _taskService = taskService;
+            _taskRepository = taskRepository;
+            //_webSocketServer = webSocketServer;
         }
 
         [HttpPost, Route("ReceiveTask"), AllowAnonymous]
-        public WebResponseContent ReceiveWMSTask([FromBody] List<Dt_Task> taskDTOs)
+        public WebResponseContent ReceiveWMSTask([FromBody] List<WMSTaskDTO> taskDTOs)
         {
             return Service.ReceiveWMSTask(taskDTOs);
         }
+
+
+        [HttpPost, Route("ReceiveCPTask"), AllowAnonymous]
+        public WebResponseContent ReceiveWMSCPTask([FromBody] List<WMSTaskDTO> taskDTOs)
+        {
+            return Service.ReceiveWMSCPTask(taskDTOs);
+        }
+
+
+        [HttpPost, HttpGet, Route("RequestAssignLocation"), AllowAnonymous]
+        public string? RequestAssignLocation(int taskNum, string roadwayNo)
+        {
+            return Service.RequestAssignLocation(taskNum, roadwayNo);
+        }
+
 
         [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")]
         public WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message)
@@ -31,11 +62,11 @@
             return Service.UpdateTaskExceptionMessage(taskNum, message);
         }
 
-        [HttpPost, HttpGet, Route("UpdateTaskStatusToNext")]
-        public WebResponseContent UpdateTaskStatusToNext(int taskNum)
-        {
-            return Service.UpdateTaskStatusToNext(taskNum);
-        }
+        //[HttpPost, HttpGet, Route("UpdateTaskStatusToNext")]
+        //public WebResponseContent UpdateTaskStatusToNext(int taskNum)
+        //{
+        //    return Service.UpdateTaskStatusToNext(taskNum);
+        //}
 
         [HttpPost, HttpGet, Route("TaskStatusRecovery")]
         public WebResponseContent TaskStatusRecovery(int taskNum)
@@ -48,6 +79,159 @@
         {
             return Service.RollbackTaskStatusToLast(taskNum);
         }
-        
+
+        /// <summary>
+        /// 鍥炲AGV瀹夊叏淇″彿
+        /// </summary>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
+        //[HttpPost, HttpGet, Route("SendSecureReplyToAgv")]
+        //public WebResponseContent SendSecureReplyToAgv(int taskNum)
+        //{
+        //    return Service.SendSecureReplyToAgv(taskNum);
+        //}
+
+        [HttpPost, HttpGet, Route("GetRouteEndPoint"), AllowAnonymous]
+        public WebResponseContent GetRouteEndPoint(string startPoint, int routeType)
+        {
+            return WebResponseContent.Instance.OK(data: _routerExtension.GetEndPoint(startPoint, routeType));
+        }
+        [HttpPost, HttpGet, Route("AgvCarrying"), AllowAnonymous]
+        public WebResponseContent AgvCarrying(int row, int startColumn, int endColumn, int layer, int targetLayer)
+        {
+            return Service.AgvCarrying(row, startColumn, endColumn, layer, targetLayer);
+        }
+
+        [HttpPost, HttpGet, Route("LedShowTask"), AllowAnonymous]
+        public WebResponseContent LedShowTask(string stationCode, string palletCode, int taskType)
+        {
+            return Service.LedShowTask(stationCode,palletCode,taskType);
+        }
+        //[HttpPost, HttpGet, Route("WebSocketPushMessage"), AllowAnonymous]
+        //public WebResponseContent WebSocketPushMessage(string message)
+        //{
+        //    try
+        //    {
+        //         _webSocketServer.PublishAllClientPayload(message);
+        //        return WebResponseContent.Instance.OK();
+        //    }
+        //    catch(Exception ex)
+        //    {
+        //        return WebResponseContent.Instance.Error(ex.Message);
+        //    }
+        //}
+
+
+        [HttpPost, HttpGet, Route("RecWMSTaskCompleted"), AllowAnonymous]
+        public WebResponseContent RecWMSTaskCompleted(int taskNum)
+        {
+            return Service.RecWMSTaskCompleted(taskNum);
+        }
+
+        //鍫嗗灈鏈轰换鍔¢噸鍙�
+        [HttpPost, HttpGet, Route("StackerCraneTaskResending"), AllowAnonymous]
+        public WebResponseContent StackerCraneTaskResending(int taskNum)
+        {
+            try
+            {
+                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
+                if (task == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌浠诲姟淇℃伅");
+                }
+                if (task.TaskState == TaskStatusEnum.SC_Executing.ObjToInt())
+                {
+                    _taskService.UpdateTask(task, TaskStatusEnum.SC_Execute);
+                }
+                else
+                {
+                    return WebResponseContent.Instance.Error("闈炲爢鍨涙満鎵ц涓姸鎬�");
+                }
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        //鍫嗗灈鏈轰换鍔′紭鍏堟墽琛�
+        [HttpPost, HttpGet, Route("StackerCraneTaskPriority"), AllowAnonymous]
+        public WebResponseContent StackerCraneTaskPriority(int taskNum)
+        {
+            try
+            {
+                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
+                if (task == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌浠诲姟淇℃伅");
+                }
+                if (task.TaskState == TaskStatusEnum.SC_Execute.ObjToInt())
+                {
+                    task.Grade = 98;
+                }
+                else
+                {
+                    return WebResponseContent.Instance.Error("闈炲爢鍨涙満寰呮墽琛岀姸鎬�");
+                }
+                _taskRepository.UpdateData(task);
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        /// <summary>
+        /// 浠诲姟鎵嬪姩瀹屾垚
+        /// </summary>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("ManualTaskCompleted"), AllowAnonymous]
+        public async Task<WebResponseContent> ManualTaskCompleted(int taskNum)
+        {
+            return await Service.ManualTaskCompleted(taskNum);
+        }
+
+        /// <summary>
+        /// RGV浠诲姟閲嶅彂
+        /// </summary>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("RGVTaskResending"), AllowAnonymous]
+        public WebResponseContent RGVTaskResending(int taskNum)
+        {
+            try
+            {
+                Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
+                if(task == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌浠诲姟淇℃伅");
+                }
+                if (task.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt())
+                {
+                    if (task.TaskType >= TaskTypeEnum.Inbound.ObjToInt())
+                    {
+                        _taskService.UpdateTask(task, TaskStatusEnum.RGV_NEW);
+                    }
+                    else if (task.TaskType >= TaskTypeEnum.Outbound.ObjToInt() && task.TaskType < TaskTypeEnum.Inbound.ObjToInt())
+                    {
+                        _taskService.UpdateTask(task, TaskStatusEnum.RGV_Execute);
+                    }
+                }
+                else
+                {
+                    return WebResponseContent.Instance.Error("闈濺GV鎵ц涓姸鎬�");
+                }
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch(Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
     }
 }

--
Gitblit v1.9.3