From 73905dea456af423049753fff10a853d7394ece7 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期日, 12 四月 2026 20:40:25 +0800
Subject: [PATCH] feat(WMS): 新增dispatchTasksToWCS.vue批量下发弹窗组件 - 工具栏按钮触发弹窗 - 表格展示选中任务,可编辑地址和优先级 - 非可下发状态任务行标红且不可编辑 - 显示下发失败任务列表

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs |  157 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 147 insertions(+), 10 deletions(-)

diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
index 6ece3ee..ac0da61 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -1,10 +1,11 @@
 锘縰sing Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
+using System.DirectoryServices.Protocols;
 using WIDESEA_Common.CommonEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseController;
-using WIDESEA_DTO;
+using WIDESEA_DTO.GradingMachine;
 using WIDESEA_DTO.Stock;
 using WIDESEA_DTO.Task;
 using WIDESEA_ITaskInfoService;
@@ -28,7 +29,7 @@
         /// </summary>
         /// <param name="taskDto"></param>
         /// <returns></returns>
-        [HttpGet, HttpPost, Route("CreateTaskInbound"),AllowAnonymous]
+        [HttpGet, HttpPost, Route("CreateTaskInbound"), AllowAnonymous]
         public async Task<WebResponseContent?> CreateTaskInboundAsync([FromBody] CreateTaskDto taskDto)
         {
             return await Service.CreateTaskInboundAsync(taskDto);
@@ -43,6 +44,28 @@
         public async Task<WebResponseContent?> CreateTaskOutboundAsync([FromBody] CreateTaskDto taskDto)
         {
             return await Service.CreateTaskOutboundAsync(taskDto);
+        }
+
+        /// <summary>
+        /// 鎵嬪姩鍒涘缓浠诲姟
+        /// </summary>
+        /// <param name="dto">鎵嬪姩鍒涘缓浠诲姟鍙傛暟</param>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("CreateManualTask"), AllowAnonymous]
+        public async Task<WebResponseContent?> CreateManualTaskAsync([FromBody] CreateManualTaskDto dto)
+        {
+            return await Service.CreateManualTaskAsync(dto);
+        }
+
+        /// <summary>
+        /// 鎵嬪姩涓嬪彂浠诲姟鍒癢CS
+        /// </summary>
+        /// <param name="dtos">涓嬪彂浠诲姟鍙傛暟鍒楄〃</param>
+        /// <returns>鎵归噺涓嬪彂缁撴灉</returns>
+        [HttpGet, HttpPost, Route("DispatchTasksToWCS"), AllowAnonymous]
+        public async Task<WebResponseContent?> DispatchTasksToWCSAsync([FromBody] List<DispatchTaskDto> dtos)
+        {
+            return await Service.DispatchTasksToWCSAsync(dtos);
         }
 
         /// <summary>
@@ -79,6 +102,17 @@
         }
 
         /// <summary>
+        /// 绉诲簱浠诲姟瀹屾垚锛氫慨鏀瑰簱瀛樹綅缃笌鐘舵�侊紝淇敼婧�/鐩爣璐т綅鐘舵�侊紝鍒犻櫎浠诲姟鏁版嵁
+        /// </summary>
+        /// <param name="taskDto"></param>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("RelocationFinishTask"), AllowAnonymous]
+        public async Task<WebResponseContent?> RelocationFinishTaskAsync([FromBody] CreateTaskDto taskDto)
+        {
+            return await Service.RelocationFinishTaskAsync(taskDto);
+        }
+
+        /// <summary>
         /// 鍒涘缓绌烘墭鐩樺嚭搴撲换鍔�
         /// </summary>
         /// <param name="taskDto"></param>
@@ -90,7 +124,7 @@
         }
 
         /// <summary>
-        /// 鍒涘缓绌烘墭鐩樺嚭搴撲换鍔�
+        /// 鍒涘缓绌烘墭鐩樺叆搴撲换鍔�
         /// </summary>
         /// <param name="taskDto"></param>
         /// <returns></returns>
@@ -101,14 +135,58 @@
         }
 
         /// <summary>
+        /// 绌烘墭鐩樺嚭搴撳畬鎴�
+        /// </summary>
+        /// <param name="taskDto"></param>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("OutboundFinishTaskTray"), AllowAnonymous]
+        public async Task<WebResponseContent?> OutboundFinishTaskTrayAsync([FromBody] CreateTaskDto taskDto)
+        {
+            return await Service.OutboundFinishTaskTrayAsync(taskDto);
+        }
+
+        /// <summary>
         /// 淇敼浠诲姟鐘舵�侊紙鏍规嵁浠诲姟ID淇敼涓烘寚瀹氱姸鎬侊級
         /// </summary>
         /// <param name="taskDto"></param>
         /// <returns></returns>
         [HttpGet, HttpPost, Route("UpdateTaskByStatus"), AllowAnonymous]
-        public async Task<WebResponseContent?> UpdateTaskByStatusAsync([FromBody] int taskId, int newStatus)
+        public async Task<WebResponseContent?> UpdateTaskByStatusAsync([FromBody] UpdateTaskDto taskDto)
         {
-            return await Service.UpdateTaskByStatusAsync(taskId, newStatus);
+            return await Service.UpdateTaskByStatusAsync(taskDto);
+        }
+
+        /// <summary>
+        /// 鍒涘缓鏈烘鎵嬬粍鐩樹换鍔�
+        /// </summary>
+        /// <param name="taskDto"></param>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("CreateRobotGroupPalletTask"), AllowAnonymous]
+        public async Task<WebResponseContent?> CreateRobotGroupPalletTaskAsync([FromBody] StockDTO taskDto)
+        {
+            return await Service.CreateRobotGroupPalletTaskAsync(taskDto);
+        }
+
+        /// <summary>
+        /// 鍒涘缓鏈烘鎵嬫媶鐩樹换鍔�
+        /// </summary>
+        /// <param name="taskDto"></param>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("CreateRobotSplitPalletTask"), AllowAnonymous]
+        public async Task<WebResponseContent?> CreateRobotSplitPalletTaskAsync([FromBody] StockDTO taskDto)
+        {
+            return await Service.CreateRobotSplitPalletTaskAsync(taskDto);
+        }
+
+        /// <summary>
+        /// 鍒涘缓鏈烘鎵嬫崲鐩樹换鍔�
+        /// </summary>
+        /// <param name="taskDto"></param>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("CreateRobotChangePalletTask"), AllowAnonymous]
+        public async Task<WebResponseContent?> CreateRobotChangePalletTaskAsync([FromBody] StockDTO taskDto)
+        {
+            return await Service.CreateRobotChangePalletTaskAsync(taskDto);
         }
 
         /// <summary>
@@ -117,7 +195,7 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpGet, HttpPost, Route("InOrOutCompleted"), AllowAnonymous]
-        public async Task<WebResponseContent?> InOrOutCompletedAsync([FromBody] InputDto input)
+        public async Task<WebResponseContent?> InOrOutCompletedAsync([FromBody] GradingMachineInputDto input)
         {
             return await Service.InOrOutCompletedAsync(input);
         }
@@ -128,7 +206,7 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpGet, HttpPost, Route("SendLocationStatus"), AllowAnonymous]
-        public async Task<WebResponseContent?> SendLocationStatusAsync([FromBody] InputDto input)
+        public async Task<WebResponseContent?> SendLocationStatusAsync([FromBody] GradingMachineInputDto input)
         {
             return await Service.SendLocationStatusAsync(input);
         }
@@ -139,7 +217,7 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpGet, HttpPost, Route("RequestOutbound"), AllowAnonymous]
-        public async Task<WebResponseContent?> RequestOutboundAsync([FromBody] InputDto input)
+        public async Task<WebResponseContent?> RequestOutboundAsync([FromBody] GradingMachineInputDto input)
         {
             return await Service.RequestOutboundAsync(input);
         }
@@ -150,9 +228,68 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpGet, HttpPost, Route("GetPalletCodeCell"), AllowAnonymous]
-        public async Task<WebResponseContent?> GetPalletCodeCellAsync([FromBody] InputDto input)
+        public async Task<WebResponseContent?> GetPalletCodeCellAsync([FromBody] GradingMachineInputDto input)
         {
             return await Service.GetPalletCodeCellAsync(input);
         }
+
+        #region 鏋佸嵎搴撲换鍔℃ā鍧�
+
+        /// <summary>
+        /// 鍑哄叆搴撶敵璇�
+        /// </summary>
+        /// <param name="applyInOutDto">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        [HttpPost("ApplyInOut"), AllowAnonymous]
+        public async Task<AGVResponse> ApplyInOutAsync([FromBody] ApplyInOutDto applyInOutDto)
+        {
+            return await Service.ApplyInOutAsync(applyInOutDto);
+        }
+
+        /// <summary>
+        /// 鎵嬪姩鍑哄簱瀹屾垚鍙嶉缁橝GV
+        /// </summary>
+        /// <param name="outTaskCompleteDto">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        [HttpPost, Route("OutTaskComplete"), AllowAnonymous]
+        public async Task<WebResponseContent> OutTaskComplete([FromBody] OutTaskCompleteDto outTaskCompleteDto)
+        {
+            return await Service.OutTaskComplete(outTaskCompleteDto);
+        }
+
+        /// <summary>
+        /// 杈撻�佺嚎鐢宠杩涘叆
+        /// </summary>
+        /// <param name="applyEnterDto">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        [HttpPost("ApplyEnter"), AllowAnonymous]
+        public async Task<AGVResponse?> ApplyEnterAsync([FromBody] ApplyEnterDto applyEnterDto)
+        {
+            return await Service.ApplyEnterAsync(applyEnterDto);
+        }
+
+        /// <summary>
+        /// 鍙栨斁璐у畬鎴�
+        /// </summary>
+        /// <param name="taskCompleteDto">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        [HttpPost("TaskComplete"), AllowAnonymous]
+        public async Task<AGVResponse?> TaskCompleteAsync([FromBody] TaskCompleteDto taskCompleteDto)
+        {
+            return await Service.TaskCompleteAsync(taskCompleteDto);
+        }
+
+        /// <summary>
+        /// 浠诲姟鍙栨秷
+        /// </summary>
+        /// <param name="taskCancelDto">璇锋眰鍙傛暟</param>
+        /// <returns></returns>
+        [HttpPost("TaskCancel"), AllowAnonymous]
+        public async Task<AGVResponse?> TaskCancelAsync([FromBody] TaskCancelDto taskCancelDto)
+        {
+            return await Service.TaskCancelAsync(taskCancelDto);
+        }
+
+        #endregion 鏋佸嵎搴撲换鍔℃ā鍧�
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3