From 40f71192f067a48fff730a52fa8f47a1b69ba59d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期一, 13 十月 2025 17:28:00 +0800
Subject: [PATCH] 支持跨楼层与AGV搬运任务,优化货位管理新增跨楼层与AGV搬运任务相关页面、API及服务逻辑,支持任务状态更新与多任务类型处理。  更新货位管理功能,支持批量创建货位及批量记录货位状态变动。  重构任务状态更新逻辑,增强事务处理能力,优化代码结构。 调整页面配置与文档布局,新增常量与枚举以支持新功能。 修复部分任务状态处理中的潜在问题。

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs |   96 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 68 insertions(+), 28 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
index f07d2e9..beabf62 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
@@ -11,15 +11,11 @@
 {
     private readonly IHttpContextAccessor _httpContextAccessor;
     private readonly IDt_TaskService _taskService;
-    private readonly ILocationInfoService _locationService;
 
-    public TaskController(IDt_TaskService taskService,
-        IHttpContextAccessor httpContextAccessor,
-        ILocationInfoService locationService) : base(taskService)
+    public TaskController(IDt_TaskService service,
+        IHttpContextAccessor httpContextAccessor) : base(service)
     {
         _httpContextAccessor = httpContextAccessor;
-        _taskService = taskService;
-        _locationService = locationService;
     }
 
     /// <summary>
@@ -31,10 +27,10 @@
     //[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5绉掕妭娴�
     public async Task<WebResponseContent> CompleteTaskAsync(int taskNum)
     {
-        return await _taskService.CompleteAsync(taskNum);
+        return await Service.CompleteAsync(taskNum);
     }
     /// <summary>
-    /// 璇锋眰浠诲姟宸烽亾
+    /// 璇锋眰鍏ュ簱浠诲姟
     /// </summary>
     /// <param name="input">璇锋眰鏁版嵁</param>
     /// <returns></returns>
@@ -46,27 +42,15 @@
     }
 
     /// <summary>
-    /// 璇锋眰浠诲姟璐т綅
+    /// 鏇存柊璐т綅浠诲姟鐘舵�佸埌涓嬩竴涓妭鐐�
     /// </summary>
     /// <param name="input">璇锋眰鏁版嵁</param>
     /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("RequestLocationTaskAsync")]
+    [HttpPost, AllowAnonymous, Route("RequestLocationAsync")]
     [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5绉掕妭娴�
-    public async Task<WebResponseContent> UpdateExistingTask([FromBody] RequestTaskDto input)
+    public async Task<WebResponseContent> RequestLocationAsync([FromBody] RequestTaskDto input)
     {
-        return await Service.UpdateExistingTask(input);
-    }
-
-    /// <summary>
-    /// 绌烘墭鐩樺叆搴撹姹�
-    /// </summary>
-    /// <param name="input">璇锋眰鏁版嵁</param>
-    /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("RequestTrayInTaskAsync")]
-    [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5绉掕妭娴�
-    public async Task<WebResponseContent> RequestTrayInTaskAsync([FromBody] RequestTaskDto input)
-    {
-        return await Service.RequestTrayInTaskAsync(input);
+        return await Service.RequestLocationAsync(input);
     }
 
     /// <summary>
@@ -74,11 +58,11 @@
     /// </summary>
     /// <param name="request">璇锋眰鏁版嵁</param>
     /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("RequestTrayOutTaskAsync")]
+    [HttpPost, AllowAnonymous, Route("RequestOutTaskAsync")]
     [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5绉掕妭娴�
-    public async Task<WebResponseContent> RequestTrayOutTaskAsync([FromBody] RequestOutTaskDto request)
+    public async Task<WebResponseContent> RequestOutTaskAsync([FromBody] RequestTaskDto taskDto)
     {
-        return await Service.RequestTrayOutTaskAsync(request.Position, request.Tag, request.AreaCdoe, request.AreaCdoes, request.ProductionLine);
+        return await Service.RequestOutTaskAsync(taskDto);
     }
 
     /// <summary>
@@ -86,11 +70,67 @@
     /// </summary>
     /// <param name="input">璇锋眰鏁版嵁</param>
     /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("UpdateTaskStatus")]
+    [HttpPost,HttpGet,Route("UpdateTaskStatus") ,AllowAnonymous]
     [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5绉掕妭娴�
     public async Task<WebResponseContent> UpdateTaskStatus([FromBody] UpdateStatusDto input)
     {
         return await Service.UpdateTaskStatus(input.TaskNum, input.TaskState);
     }
 
+    /// <summary>
+    /// 璇锋眰璺ㄦゼ灞備换鍔�2
+    /// </summary>
+    /// <param name="taskDto"></param>
+    /// <returns></returns>
+    [HttpPost, AllowAnonymous, Route("AcrossFloorTaskAsync")]
+    public async Task<WebResponseContent> AcrossFloorTaskAsync([FromBody] RequestAcrossFloorTaskDto taskDto)
+    {
+        return await Service.AcrossFloorTaskAsync(taskDto);
+    }
+
+    /// <summary>
+    /// 璺ㄦゼ灞備换鍔¤姹�
+    /// </summary>
+    /// <param name="taskDto"></param>
+    /// <returns></returns>
+    [HttpPost, AllowAnonymous, Route("RequestAcrossFloorTaskAsync")]
+    public async Task<WebResponseContent> RequestAcrossFloorTaskAsync([FromBody] RequestTaskDto taskDto)
+    {
+        return await Service.RequestAcrossFloorTaskAsync(taskDto);
+    }
+
+    [HttpPost, AllowAnonymous, Route("RequestPointAcrossFloorTaskAsync")]
+    public async Task<WebResponseContent> RequestPointAcrossFloorTaskAsync([FromBody] RequestTaskDto taskDto)
+    {
+        return await Service.RequestPointAcrossFloorTaskAsync(taskDto);
+    }
+
+    /// <summary>
+    /// AGV鎼繍浠诲姟璇锋眰
+    /// </summary>
+    /// <param name="taskDto"></param>
+    /// <returns></returns>
+    [HttpPost, AllowAnonymous, Route("RequestAGVCarryTaskAsync")]
+    public async Task<WebResponseContent> RequestAGVCarryTaskAsync([FromBody] RequestTaskDto taskDto)
+    {
+        return await Service.RequestAGVCarryTaskAsync(taskDto);
+    }
+
+    [HttpPost, AllowAnonymous, Route("RequestAGVCarryTaskAsync")]
+    public async Task<WebResponseContent> RequestPointAGVCarryTaskAsync([FromBody] RequestTaskDto taskDto)
+    {
+        return await Service.RequestPointAGVCarryTaskAsync(taskDto);
+    }
+
+    [HttpPost, AllowAnonymous, Route("GetEmptyLocation")]
+    public async Task<DtLocationInfo> GetEmptyLocation(string roadWay)
+    {
+        return await Service.GetEmptyLocation(roadWay);
+    }
+
+    [HttpPost, AllowAnonymous, Route("GetAGVEmptyCacheLocation")]
+    public async Task<DtLocationInfo> GetAGVEmptyCacheLocation(int AreaId)
+    {
+        return await Service.GetAGVEmptyCacheLocation(AreaId);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3