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_TaskInfoService/TaskService_Outbound.cs | 279 ++++++++++++++++++++++++++++---------------------------
1 files changed, 142 insertions(+), 137 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_TaskInfoService/TaskService_Outbound.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_TaskInfoService/TaskService_Outbound.cs"
index e5090c9..e85a591 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_TaskInfoService/TaskService_Outbound.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_TaskInfoService/TaskService_Outbound.cs"
@@ -88,31 +88,33 @@
_unitOfWorkManage.CommitTran();
- TaskModel esstask = new TaskModel()
- {
- taskType = "carry",
- taskGroupCode = "",
- groupPriority = 0,
- tasks = new List<TasksType>
- {
- new()
- {
- taskCode=task.TaskNum.ToString(),
- taskPriority=0,
- taskDescribe=new TaskDescribeType{
- containerCode=stockInfo.PalletCode,
- containerType= "CT_KUBOT_STANDARD",
- fromLocationCode=stockInfo.LocationCode??"",
- toStationCode="",
- toLocationCode="1-2",
- deadline=0,storageTag=""
- }
- }
- }
- };
- var result = await _eSSApiService.CreateTaskAsync(esstask);
+ //TaskModel esstask = new TaskModel()
+ //{
+ // taskType = "carry",
+ // taskGroupCode = "",
+ // groupPriority = 0,
+ // tasks = new List<TasksType>
+ // {
+ // new()
+ // {
+ // taskCode=task.TaskNum.ToString(),
+ // taskPriority=0,
+ // taskDescribe=new TaskDescribeType
+ // {
+ // containerCode=stockInfo.PalletCode,
+ // containerType= "CT_KUBOT_STANDARD",
+ // fromLocationCode=stockInfo.LocationCode??"",
+ // toStationCode="",
+ // toLocationCode="1-2",
+ // deadline=0,
+ // storageTag=""
+ // }
+ // }
+ // }
+ //};
+ //var result = await _eSSApiService.CreateTaskAsync(esstask);
- _logger.LogInformation("鍒涘缓浠诲姟PalletOutboundTask 杩斿洖: " + result);
+ //_logger.LogInformation("鍒涘缓浠诲姟PalletOutboundTask 杩斿洖: " + result);
}
return content.OK("绌烘墭鍑哄簱鎴愬姛!");
}
@@ -314,45 +316,46 @@
_outboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
}
_unitOfWorkManage.CommitTran();
- TaskModel esstask = new TaskModel()
- {
- taskType = "carry",
- taskGroupCode = "",
- groupPriority = 0,
- tasks = new List<TasksType>()
- };
+ return WebResponseContent.Instance.OK();
+ //TaskModel esstask = new TaskModel()
+ //{
+ // taskType = "carry",
+ // taskGroupCode = "",
+ // groupPriority = 0,
+ // tasks = new List<TasksType>()
+ //};
- foreach (var task in tasks)
- {
- esstask.
- tasks.Add(new TasksType
- {
- taskCode = task.TaskNum.ToString(),
- taskPriority = 0,
- taskDescribe = new TaskDescribeType
- {
- containerCode = task.PalletCode,
- containerType = "CT_KUBOT_STANDARD",
- fromLocationCode = task.SourceAddress ?? "",
- toStationCode = "",
- toLocationCode = task.TargetAddress,
- deadline = 0,
- storageTag = ""
- }
- }
- );
- }
- var result = await _eSSApiService.CreateTaskAsync(esstask);
+ //foreach (var task in tasks)
+ //{
+ // esstask.
+ // tasks.Add(new TasksType
+ // {
+ // taskCode = task.TaskNum.ToString(),
+ // taskPriority = 0,
+ // taskDescribe = new TaskDescribeType
+ // {
+ // containerCode = task.PalletCode,
+ // containerType = "CT_KUBOT_STANDARD",
+ // fromLocationCode = task.SourceAddress ?? "",
+ // toStationCode = "",
+ // toLocationCode = task.TargetAddress,
+ // deadline = 0,
+ // storageTag = ""
+ // }
+ // }
+ // );
+ //}
+ //var result = await _eSSApiService.CreateTaskAsync(esstask);
- _logger.LogInformation("鍒涘缓浠诲姟PalletOutboundTask 杩斿洖: " + result);
- if (result)
- {
- return WebResponseContent.Instance.OK();
- }
- else
- {
- return WebResponseContent.Instance.Error("涓嬪彂鏈哄櫒浜轰换鍔″け璐ワ紒");
- }
+ //_logger.LogInformation("鍒涘缓浠诲姟PalletOutboundTask 杩斿洖: " + result);
+ //if (result)
+ //{
+ // return WebResponseContent.Instance.OK();
+ //}
+ //else
+ //{
+ // return WebResponseContent.Instance.Error("涓嬪彂鏈哄櫒浜轰换鍔″け璐ワ紒");
+ //}
}
catch (Exception ex)
{
@@ -776,46 +779,47 @@
_outboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
}
_unitOfWorkManage.CommitTran();
+ return WebResponseContent.Instance.OK();
//PushTasksToWCS(tasks);
- TaskModel esstask = new TaskModel()
- {
- taskType = "carry",
- taskGroupCode = "",
- groupPriority = 0,
- tasks = new List<TasksType>()
- };
+ //TaskModel esstask = new TaskModel()
+ //{
+ // taskType = "carry",
+ // taskGroupCode = "",
+ // groupPriority = 0,
+ // tasks = new List<TasksType>()
+ //};
- foreach (var task in tasks)
- {
- esstask.
- tasks.Add(new TasksType
- {
- taskCode = task.TaskNum.ToString(),
- taskPriority = 0,
- taskDescribe = new TaskDescribeType
- {
- containerCode = task.PalletCode,
- containerType = "CT_KUBOT_STANDARD",
- fromLocationCode = task.SourceAddress ?? "",
- toStationCode = "",
- toLocationCode = task.TargetAddress,
- deadline = 0,
- storageTag = ""
- }
- }
- );
- }
- var result = await _eSSApiService.CreateTaskAsync(esstask);
+ //foreach (var task in tasks)
+ //{
+ // esstask.
+ // tasks.Add(new TasksType
+ // {
+ // taskCode = task.TaskNum.ToString(),
+ // taskPriority = 0,
+ // taskDescribe = new TaskDescribeType
+ // {
+ // containerCode = task.PalletCode,
+ // containerType = "CT_KUBOT_STANDARD",
+ // fromLocationCode = task.SourceAddress ?? "",
+ // toStationCode = "",
+ // toLocationCode = task.TargetAddress,
+ // deadline = 0,
+ // storageTag = ""
+ // }
+ // }
+ // );
+ //}
+ //var result = await _eSSApiService.CreateTaskAsync(esstask);
- _logger.LogInformation("鍒涘缓浠诲姟PalletOutboundTask 杩斿洖: " + result);
- if (result)
- {
- return WebResponseContent.Instance.OK();
- }
- else
- {
- return WebResponseContent.Instance.Error("涓嬪彂鏈哄櫒浜轰换鍔″け璐ワ紒");
- }
+ //_logger.LogInformation("鍒涘缓浠诲姟PalletOutboundTask 杩斿洖: " + result);
+ //if (result)
+ //{
+ // return WebResponseContent.Instance.OK();
+ //}
+ //else
+ //{
+ // return WebResponseContent.Instance.Error("涓嬪彂鏈哄櫒浜轰换鍔″け璐ワ紒");
+ //}
}
catch (Exception ex)
@@ -1173,46 +1177,47 @@
BaseDal.AddData(tasks);
_locationInfoService.UpdateData(locationInfos);
_unitOfWorkManage.CommitTran();
- TaskModel esstask = new TaskModel()
- {
- taskType = "carry",
- taskGroupCode = "",
- groupPriority = 0,
- tasks = new List<TasksType>()
- };
-
- foreach (var task in tasks)
- {
- esstask.
- tasks.Add(new TasksType
- {
- taskCode = task.TaskNum.ToString(),
- taskPriority = 0,
- taskDescribe = new TaskDescribeType
- {
- containerCode = task.PalletCode,
- containerType = "CT_KUBOT_STANDARD",
- fromLocationCode = task.SourceAddress ?? "",
- toStationCode = "",
- toLocationCode = task.TargetAddress,
- deadline = 0,
- storageTag = ""
- }
- }
- );
- }
- var result = await _eSSApiService.CreateTaskAsync(esstask);
-
- _logger.LogInformation("鍒涘缓浠诲姟PalletOutboundTask 杩斿洖: " + result);
- if (result)
- {
- return WebResponseContent.Instance.OK();
- }
- else
- {
- return WebResponseContent.Instance.Error("涓嬪彂鏈哄櫒浜轰换鍔″け璐ワ紒");
- }
content.OK();
+ //TaskModel esstask = new TaskModel()
+ //{
+ // taskType = "carry",
+ // taskGroupCode = "",
+ // groupPriority = 0,
+ // tasks = new List<TasksType>()
+ //};
+
+ //foreach (var task in tasks)
+ //{
+ // esstask.
+ // tasks.Add(new TasksType
+ // {
+ // taskCode = task.TaskNum.ToString(),
+ // taskPriority = 0,
+ // taskDescribe = new TaskDescribeType
+ // {
+ // containerCode = task.PalletCode,
+ // containerType = "CT_KUBOT_STANDARD",
+ // fromLocationCode = task.SourceAddress ?? "",
+ // toStationCode = "",
+ // toLocationCode = task.TargetAddress,
+ // deadline = 0,
+ // storageTag = ""
+ // }
+ // }
+ // );
+ //}
+ //var result = await _eSSApiService.CreateTaskAsync(esstask);
+
+ //_logger.LogInformation("鍒涘缓浠诲姟PalletOutboundTask 杩斿洖: " + result);
+ //if (result)
+ //{
+ // return WebResponseContent.Instance.OK();
+ //}
+ //else
+ //{
+ // return WebResponseContent.Instance.Error("涓嬪彂鏈哄櫒浜轰换鍔″け璐ワ紒");
+ //}
+ //content.OK();
}
catch (Exception ex)
{
--
Gitblit v1.9.3