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/DailySequenceService.cs | 52 ++++++++++++++++++++++++++++++++++------------------
1 files changed, 34 insertions(+), 18 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/DailySequenceService.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/DailySequenceService.cs"
index 6d287d8..73c8b3b 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/DailySequenceService.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/DailySequenceService.cs"
@@ -10,6 +10,7 @@
using System.Threading.Tasks;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Seed;
using WIDESEA_IBasicService;
using WIDESEA_Model.Models;
using WIDESEA_Model.Models.Basic;
@@ -193,28 +194,43 @@
private async Task UpdateSequenceInDatabase(DateTime date, string sequenceKey, int value)
{
- var sequence = await Repository.Db.Queryable<DT_DailySequence>()
- .Where(x => x.SequenceDate == date && x.SequenceKey == sequenceKey)
- .FirstAsync();
-
- if (sequence != null)
+ try
{
- sequence.CurrentValue = value;
-
- await Repository.Db.Updateable(sequence).ExecuteCommandAsync();
- }
- else
- {
- // 濡傛灉鏁版嵁搴撹褰曚笉瀛樺湪锛屽垯鍒涘缓
- sequence = new DT_DailySequence
+ using SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig
{
- SequenceDate = date,
- SequenceKey = sequenceKey,
- CurrentValue = value,
+ IsAutoCloseConnection = true,
+ DbType = DbType.SqlServer,
+ ConnectionString = DBContext.ConnectionString
+ });
+ var result = await sugarClient.Updateable<DT_DailySequence>()
+ .SetColumns(it => new DT_DailySequence()
+ {
+ CurrentValue = value,
+ })
+ .Where(it => it.SequenceDate == date && it.SequenceKey == sequenceKey)
+ .ExecuteCommandAsync();
- };
- await Repository.Db.Insertable(sequence).ExecuteCommandAsync();
+ if (result == 0)
+ {
+ // 濡傛灉娌℃湁鏇存柊鍒拌褰曪紝鍙兘鏄娆′娇鐢紝鎻掑叆鏂拌褰�
+ var newSequence = new DT_DailySequence
+ {
+ SequenceKey = sequenceKey,
+ SequenceDate = date,
+ CurrentValue = value,
+ Creater="admin",
+ CreateDate=DateTime.Now,
+ };
+ await sugarClient.Insertable(newSequence).ExecuteCommandAsync();
+ }
}
+ catch (Exception ex)
+ {
+ // 璁板綍鏃ュ織骞堕噸鏂版姏鍑哄紓甯�
+ Console.WriteLine($"鏇存柊搴忓垪澶辫触: {ex.Message}");
+ throw;
+ }
+
}
public async Task CleanOldSequencesAsync(int keepDays = 30)
--
Gitblit v1.9.3