From 734f49c3f74e4a46cfb5892ce60dbf1bb86e74ab Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期二, 22 七月 2025 19:14:39 +0800
Subject: [PATCH] 出入库流程

---
 WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs |  135 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 125 insertions(+), 10 deletions(-)

diff --git a/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs b/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
index 1d1b131..1bfac75 100644
--- a/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
+++ b/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -1,11 +1,18 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
+锘縰sing 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,15 +21,29 @@
     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("ReceiveWMSTask"), AllowAnonymous]
-        public WebResponseContent ReceiveWMSTask([FromBody] List<Dt_Task> taskDTOs)
+        [HttpPost, Route("ReceiveTask"), AllowAnonymous]
+        public WebResponseContent ReceiveWMSTask([FromBody] List<WMSTaskDTO> taskDTOs)
         {
             return Service.ReceiveWMSTask(taskDTOs);
+        }
+
+        [HttpPost, HttpGet, Route("RequestAssignLocation"), AllowAnonymous]
+        public string? RequestAssignLocation(int taskNum, string roadwayNo)
+        {
+            return Service.RequestAssignLocation(taskNum, roadwayNo);
         }
 
         [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")]
@@ -31,11 +52,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 +69,100 @@
         {
             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("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);
+            }
+        }
     }
 }

--
Gitblit v1.9.3