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_CheckService/ReCheckOrderService.cs | 36 ++++++++++++++++++++++++------------
1 files changed, 24 insertions(+), 12 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_CheckService/ReCheckOrderService.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_CheckService/ReCheckOrderService.cs"
index b38807a..538c006 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_CheckService/ReCheckOrderService.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_CheckService/ReCheckOrderService.cs"
@@ -14,6 +14,7 @@
using WIDESEA_Core.CodeConfigEnum;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
+using WIDESEA_IBasicService;
using WIDESEA_ICheckService;
using WIDESEA_IOutboundService;
using WIDESEA_Model.Models;
@@ -27,15 +28,16 @@
private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly WebSocketServer _webSocketServer;
private readonly ILogger<ReCheckOrderService> _logger;
-
+ private readonly IMaterielInfoService _materielInfoService;
public readonly IOutboundService _outboundService;
public IRepository<Dt_ReCheckOrder> Repository => BaseDal;
- public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer, ILogger<ReCheckOrderService> logger, IOutboundService outboundService) : base(BaseDal)
+ public ReCheckOrderService(IRepository<Dt_ReCheckOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage, WebSocketServer webSocketServer, ILogger<ReCheckOrderService> logger, IOutboundService outboundService, IMaterielInfoService materielInfoService) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
_webSocketServer = webSocketServer;
_logger = logger;
_outboundService = outboundService;
+ _materielInfoService = materielInfoService;
}
public async Task<WebResponseContent> ReceiveReCheckOrder(Dt_ReCheckOrder models, int operateType)
@@ -45,7 +47,7 @@
return operateType switch
{
1 =>await AddReCheckOrder(models),
- 2 => UpdateReCheckOrder(models),
+ 2 =>await UpdateReCheckOrder(models),
3 => DeleteReCheckOrder(models),
_ => WebResponseContent.Instance.OK(),
@@ -65,11 +67,14 @@
if (BaseDal.QueryFirst(x => x.OrderNo == model.OrderNo) != null)
{
- return WebResponseContent.Instance.Error($"鍗曞彿閲嶅");
+ return WebResponseContent.Instance.Error($"{model.OrderNo}鍗曞彿閲嶅");
}
+
+ var materielInfo = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().First(x => model.MaterielCode.Equals(x.MaterielCode));
model.Creater = "MES";
model.CreateDate = DateTime.Now;
+ model.MaterielName = materielInfo?.MaterielName ?? "";
BaseDal.AddData(model);
var outboundOrders = ConvertToOutboundOrders(model);
@@ -92,6 +97,11 @@
{
return WebResponseContent.Instance.Error($"鏈壘鍒板崟淇℃伅");
}
+ var isupdate = false;
+ if (recheckOrder.SignSeq == model.SignSeq)
+ {
+ isupdate = true;
+ }
recheckOrder.OrderNo = model.OrderNo;
recheckOrder.MaterielCode = model.MaterielCode;
recheckOrder.BatchNo = model.BatchNo;
@@ -104,17 +114,19 @@
recheckOrder.FactoryArea = model.FactoryArea;
recheckOrder.Modifier = "MES";
recheckOrder.ModifyDate = DateTime.Now;
-
+ var materielInfo = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().First(x => model.MaterielCode.Equals(x.MaterielCode));
+ recheckOrder.MaterielName= materielInfo?.MaterielName??"";
BaseDal.UpdateData(recheckOrder);
- _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.OrderNo == model.OrderNo).ExecuteCommand();
- _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>()
- .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.OrderNo == model.OrderNo).Any()).ExecuteCommand();
+ if (isupdate)
+ {
+ _outboundService.OutboundOrderService.Db.Deleteable<Dt_OutboundOrder>().Where(x => x.OrderNo == model.OrderNo).ExecuteCommand();
+ _outboundService.OutboundOrderDetailService.Db.Deleteable<Dt_OutboundOrderDetail>()
+ .Where(p => SqlFunc.Subqueryable<Dt_OutboundOrder>().Where(s => s.Id == p.OrderId && s.OrderNo == model.OrderNo).Any()).ExecuteCommand();
- var outboundOrders = ConvertToOutboundOrders(model);
-
- await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1);
-
+ var outboundOrders = ConvertToOutboundOrders(model);
+ await _outboundService.OutboundOrderService.ReceiveOutboundOrder(outboundOrders, 1);
+ }
return WebResponseContent.Instance.OK();
}
catch (Exception ex)
--
Gitblit v1.9.3