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/TaskInfo/TaskController.cs | 101 +++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 95 insertions(+), 6 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/TaskInfo/TaskController.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/TaskInfo/TaskController.cs"
index 4140475..c52883d 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/TaskInfo/TaskController.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/TaskInfo/TaskController.cs"
@@ -1,7 +1,11 @@
-锘縰sing Microsoft.AspNetCore.Authorization;
+锘縰sing MailKit.Search;
+using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
+using System.Diagnostics;
+using System.Threading.Tasks;
using WIDESEA_Common.CommonEnum;
+using WIDESEA_Common.TaskEnum;
using WIDESEA_Core;
using WIDESEA_Core.Attributes;
using WIDESEA_Core.BaseController;
@@ -23,14 +27,99 @@
{
}
-
- [HttpPost, Route("Test"), AllowAnonymous, MethodParamsValidate]
- public async Task<WebResponseContent> PalletOutboundTask(string endStation, string palletCode = "")
+ [HttpPost, Route("AddTestTask"), AllowAnonymous, MethodParamsValidate]
+ public WebResponseContent AddTest(WMSTaskDTO wMSTaskDTO)
{
- var result=await Service.PalletOutboundTask(endStation, palletCode);
+ Dt_Task task = new Dt_Task
+ {
+ PalletCode = wMSTaskDTO.PalletCode,
+ PalletType = wMSTaskDTO.PalletType,
+ Roadway = "t",
+ TaskType = wMSTaskDTO.TaskType,
+ TaskStatus = wMSTaskDTO.TaskStatus,
+ SourceAddress = wMSTaskDTO.SourceAddress,
+ TargetAddress = wMSTaskDTO.TargetAddress,
+ CurrentAddress = "t",
+ NextAddress = "t",
+ WarehouseId = wMSTaskDTO.WarehouseId,
+ OrderNo = "testt",
+ Grade = wMSTaskDTO.Grade,
+ Dispatchertime = DateTime.Now,
- return result;
+ };
+
+ Service.AddData(task);
+
+
+
+ return WebResponseContent.Instance.OK();
}
+ [HttpPost, Route("PalletOutboundTask"), AllowAnonymous, MethodParamsValidate]
+ public async Task<WebResponseContent> PalletOutboundTask(int num, int locationType)
+ {
+ return await Service.PalletOutboundTask(num, locationType);
+ }
+
+
+ /// <summary>
+ /// 鐢熸垚鍑哄簱浠诲姟
+ /// </summary>
+ /// <param name="keys"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("GenerateOutboundTasks"), AllowAnonymous]
+ public async Task<WebResponseContent> GenerateOutboundTasks([FromBody] GenerateOutboundTasksDto data)
+ {
+ return await Service.GenerateOutboundTasksAsync(data.taskIds, data.outboundPlatform);
+ }
+
+ /// <summary>
+ /// 鐢熸垚鍑哄簱浠诲姟
+ /// </summary>
+ /// <param name="orderDetailId"></param>
+ /// <param name="stockSelectViews"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("GenerateOutboundTask"), AllowAnonymous]
+ public async Task<WebResponseContent> GenerateOutboundTask(int orderDetailId, string station, [FromBody] List<StockSelectViewDTO> stockSelectViews)
+ {
+ return await Service.GenerateOutboundTask(orderDetailId, stockSelectViews, station);
+ }
+
+ /// <summary>
+ /// 鐢熸垚鍑哄簱浠诲姟
+ /// </summary>
+ /// <param name="orderDetailId"></param>
+ /// <param name="stockSelectViews"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("GenerateAllocatOutboundTask"), AllowAnonymous]
+ public async Task<WebResponseContent> GenerateAllocatOutboundTask(int orderDetailId, string station, [FromBody] List<StockSelectViewDTO> stockSelectViews)
+ {
+ return await Service.GenerateAllocatOutboundTask(orderDetailId, stockSelectViews,station);
+ }
+
+ /// <summary>
+ /// 鍒嗘壒鐢熸垚鍑哄簱浠诲姟
+ /// </summary>
+ /// <param name="data"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("GenerateOutboundBatchTasks"), AllowAnonymous]
+ public async Task<WebResponseContent> GenerateOutboundBatchTasks([FromBody] GenerateOutboundBatchTasksDto data)
+ {
+ return await Service.GenerateOutboundBatchTasksAsync(data.orderDetailId,data.batchQuantity, data.outboundPlatform);
+ }
+
+ /// <summary>
+ /// 鐩樼偣搴撳瓨鍑哄簱
+ /// </summary>
+ /// <param name="stockViews"></param>
+ /// <param name="outStation"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("TakeOutbound"), AllowAnonymous]
+ public async Task<WebResponseContent> TakeOutbound([FromBody] List<StockViewDTO> stockViews, string outStation)
+ {
+ return await Service.TakeOutbound(stockViews, outStation);
+ }
+
+
}
}
--
Gitblit v1.9.3