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_BasicService/ESSApiService.cs |   58 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 43 insertions(+), 15 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_BasicService/ESSApiService.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_BasicService/ESSApiService.cs"
index 5bc2bc6..659a98c 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_BasicService/ESSApiService.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_BasicService/ESSApiService.cs"
@@ -6,6 +6,7 @@
 using System.Linq;
 using System.Text;
 using System.Text.Json;
+using System.Threading;
 using System.Threading.Tasks;
 using WIDESEA_DTO.Basic;
 using WIDESEA_IBasicService;
@@ -25,12 +26,29 @@
         /// <summary>
         /// 瀹瑰櫒娴佸姩閫氱煡
         /// </summary>
-        public async Task MoveContainerAsync(MoveContainerRequest request)
+        public async Task<bool> MoveContainerAsync(MoveContainerRequest request)
         {
-            var url = "conveyor/moveContainer";
-
-            var result = await PostAsync<MoveContainerRequest, ApiResponse<string>>(url, request);
-
+            try
+            {
+                var url = "conveyor/moveContainer";
+                _logger.LogInformation("ESSApiService MoveContainerAsync Request:  " + JsonConvert.SerializeObject(request));
+                var result = await PostAsync<MoveContainerRequest, ApiResponse<string>>(url, request);
+                if (result != null && result.Code == 0)
+                {
+                    //{"code":0,"msg":"success","data":{"107":"TASK_ALREADY_EXIST"}}
+                    if (result.Data.Contains("TASK_ALREADY_EXIST"))
+                    {
+                        return false;
+                    }
+                    return true;
+                }
+                return false;
+            }
+            catch (Exception ex)
+            {
+                _logger.LogInformation("ESSApiService 瀹瑰櫒娴佸姩澶辫触:  " + ex.Message);
+                return false;
+            }
         }
 
         /// <summary>
@@ -40,21 +58,30 @@
         /// <returns></returns>
         public async Task<bool> CreateTaskAsync(TaskModel request)
         {
-            _logger.LogInformation("鍒涘缓浠诲姟Request:  " +  JsonConvert.SerializeObject(request));
-            var url = "task/create";
-
-            var result = await PostAsync<TaskModel, ApiResponse<TasksData>>(url, request);
-            if (result != null && result.Code == 0)
+            try
             {
-                return true;
-            }
-            return false;
-        }
+                _logger.LogInformation("ESSApiService 鍒涘缓浠诲姟Request:  " + JsonConvert.SerializeObject(request));
+                var url = "task/create";
 
+                var result = await PostAsync<TaskModel, ApiResponse<TasksData>>(url, request);
+                if (result != null && result.Code == 0)
+                {
+                    return true;
+                }
+                return false;
+            }
+            catch (Exception ex)
+            {
+                _logger.LogInformation("ESSApiService 鍒涘缓浠诲姟澶辫触:  " + ex.Message);
+                return false;
+            }
+        }
+ 
 
 
         private async Task<TResponse> PostAsync<TRequest, TResponse>(string url, TRequest request)
         {
+
             string json = JsonConvert.SerializeObject(request, new JsonSerializerSettings
             {
                 ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver()
@@ -67,13 +94,14 @@
 
             using var response = await _client.PostAsync(url, content);
             string body = await response.Content.ReadAsStringAsync();
-            _logger.LogInformation($"ESSAPI post :  {_client.BaseAddress}  {url}   {body}" );
+            _logger.LogInformation($"ESSAPI post :  {_client.BaseAddress}  {url}   {body}");
             if (!response.IsSuccessStatusCode)
             {
                 throw new HttpRequestException(body);
             }
 
             return JsonConvert.DeserializeObject<TResponse>(body);
+
         }
     }
 }

--
Gitblit v1.9.3