From 5909649db85ff29faf983154763cc4b7301665e2 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期四, 18 十二月 2025 11:15:31 +0800
Subject: [PATCH] 新增任务调度功能及优化日志处理新增任务状态枚举值 HasSent,表示任务已发送。新增任务调度接口 `ISchedulerCenter`,定义任务调度相关方法。 新增任务工厂 `JobFactory`,通过依赖注入创建任务实例。 新增任务调度服务配置 `JobSetup`,支持依赖注入配置。 新增通用响应类 `ResponseContent`,封装任务调度操作结果。新增任务调度服务实现 `SchedulerCenterServer`,实现任务添加、暂停、恢复等功能。 新增任务信息 DTO `TaskInfoDto` 和任务计划实体类 `TasksQz`。 新增任务配置类 `JobConfig`,描述任务类型及执行间隔。 注释掉部分服务中的旧任务创建逻辑,准备替换为新调度机制。 新增 AGV 任务调度作业 `AgvTaskJob`,处理 AGV 任务调度。 新增 Quartz 中间件 `QuartzJobMiddleWare`,初始化任务调度。 在 `Program.cs` 中集成 Quartz,配置任务调度依赖注入。 优化日志记录和异常处理,提升代码可维护性和调试性。

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ESSController.cs |   48 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 31 insertions(+), 17 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ESSController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ESSController.cs"
index b5f625c..ba22c1c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ESSController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ESSController.cs"
@@ -46,8 +46,9 @@
             _logger.LogInformation(" ESSController  ContainerArrivalReport : CallId={CallId},ContainerCode={ContainerCode},SlotCode={SlotCode}", request.CallId, request.ContainerCode, request.SlotCode);
             var response = new ApiResponse<ContainerArrivalResponseData>
             {
-                Code = 1
-                
+                Code = 1,
+                Data = null,
+
             };
 
             // 鐢熸垚璇锋眰鐨勫敮涓�鏍囪瘑锛堝熀浜巆allId + 鏃堕棿鎴筹級
@@ -76,7 +77,12 @@
                     return Ok(response);
                 }
 
-                var result = await _taskService.RequestInboundTask(request.ContainerCode, request.SlotCode);
+                WebResponseContent result = await _taskService.RequestInboundTask(request.ContainerCode, request.SlotCode);
+                if (result != null && !string.IsNullOrEmpty(result.Message))
+                {
+                    _logger.LogError(" ESSController  ContainerArrivalReport  RequestInboundTask: Message={Message}", result?.Message);
+                }
+             
 
                 var cacheOptions = new MemoryCacheEntryOptions
                 {
@@ -87,14 +93,23 @@
                 {
                     Code = 0,
                     Msg = "",
-                    Data = new ContainerArrivalResponseData
+                    Data = null,
+                };
+                if (result != null && !string.IsNullOrEmpty( result.Message ) && result.Message.Contains("璇ユ墭鐩樺凡鐢熸垚浠诲姟"))
+                {
+
+                    response.Data = new ContainerArrivalResponseData
                     {
                         direction = "100"
-                    }
-                };
-                if (result.Status)
+                    };
+                    return Ok(response);
+                }
+                if (result != null && result.Status)
                 {
-                   
+                    response.Data = new ContainerArrivalResponseData
+                    {
+                        direction = "100"
+                    };
                     return Ok(response);
                 }
                 else
@@ -214,7 +229,7 @@
             _logger.LogInformation("浠诲姟瀹屾垚: TaskCode={TaskCode}, Container={Container}, Robot={Robot}",
                 request.TaskCode, request.ContainerCode, request.RobotCode);
 
-            _taskService.TaskCompleted(request.TaskCode);
+            await _taskService.TaskCompleted(request.TaskCode);
             // 鏍规嵁涓嶅悓鐨勪换鍔$被鍨嬭繘琛岀壒娈婂鐞�
             if (request.Weight.HasValue)
             {
@@ -272,8 +287,7 @@
         /// </summary>
         private async Task HandleTaskSuspended(StatusCallbackRequest request)
         {
-            _logger.LogWarning("浠诲姟鎸傝捣: TaskCode={TaskCode}, 绯荤粺浠诲姟鐮�={SysTaskCode}, 鍘熷洜={Message}",
-                request.TaskCode, request.SysTaskCode, request.Message);
+            _logger.LogWarning("浠诲姟鎸傝捣: TaskCode={TaskCode}, 绯荤粺浠诲姟鐮�={SysTaskCode}, 鍘熷洜={Message}",request.TaskCode, request.SysTaskCode, request.Message);
 
             // 杩欓噷娣诲姞鎮ㄧ殑鎸傝捣澶勭悊閫昏緫
             await Task.CompletedTask;
@@ -284,8 +298,7 @@
         /// </summary>
         private async Task HandleTaskAllocated(StatusCallbackRequest request)
         {
-            _logger.LogInformation("浠诲姟鍒嗛厤: TaskCode={TaskCode}, Robot={Robot}",
-                request.TaskCode, request.RobotCode);
+            _logger.LogInformation("浠诲姟鍒嗛厤: TaskCode={TaskCode}, Robot={Robot}",request.TaskCode, request.RobotCode);
 
             // 杩欓噷娣诲姞鎮ㄧ殑浠诲姟鍒嗛厤澶勭悊閫昏緫
             await Task.CompletedTask;
@@ -298,8 +311,9 @@
         {
             if (request.Status == WIDESEA_DTO.Basic.TaskStatus.success)
             {
-                _logger.LogInformation("鍙栫瀹屾垚: Container={Container}, Location={Location}",
-                    request.ContainerCode, request.LocationCode);
+                _logger.LogInformation("鍙栫瀹屾垚: Container={Container}, Location={Location}", request.ContainerCode, request.LocationCode);
+
+                await _taskService.TaskStatusChange(request.TaskCode, WIDESEA_Common.TaskEnum.TaskStatusEnum.AGV_Pull);
             }
             else
             {
@@ -318,8 +332,8 @@
         {
             if (request.Status == WIDESEA_DTO.Basic.TaskStatus.success)
             {
-                _logger.LogInformation("鏀剧瀹屾垚: Container={Container}, Location={Location}",
-                    request.ContainerCode, request.LocationCode);
+                _logger.LogInformation("鏀剧瀹屾垚: Container={Container}, Location={Location}", request.ContainerCode, request.LocationCode);
+                await _taskService.TaskStatusChange(request.TaskCode, WIDESEA_Common.TaskEnum.TaskStatusEnum.AGV_Puting);
             }
             else
             {

--
Gitblit v1.9.3