From 457b75b642a1fdaa7158e5b047cabc5d7ae16333 Mon Sep 17 00:00:00 2001 From: xxyy <cathay_xy@163.com> Date: 星期一, 10 三月 2025 10:10:13 +0800 Subject: [PATCH] 修复和优化 Dt_TaskService.cs 中的任务请求逻辑 --- Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs | 45 +++++++++++++++++++++++---------------------- 1 files changed, 23 insertions(+), 22 deletions(-) diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs index 0942e0a..271e0af 100644 --- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs +++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs @@ -1,17 +1,11 @@ 锘縰sing Masuit.Tools; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using WIDESEA_Cache; using WIDESEA_Core.Const; using WIDESEA_DTO.WMS; using WIDESEA_IServices; -using WIDESEA_Repository; using WIDESEAWCS_BasicInfoRepository; -using WIDESEA_Model; namespace WIDESEA_StorageTaskServices { @@ -24,9 +18,11 @@ private readonly IDt_StationManagerRepository _stationManagerRepository; private readonly ISys_ConfigService _configService; private readonly ILocationInfoRepository _locationRepository; + private readonly ISimpleCacheService _simpleCacheService; private Timer _timer; - public MyBackgroundService(ILogger<MyBackgroundService> logger, ILocationInfoRepository locationRepository, IStockInfoRepository stockInfoRepository, IDt_AreaInfoRepository areaInfoRepository, IDt_TaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, ISys_ConfigService configService) + + public MyBackgroundService(ILogger<MyBackgroundService> logger, ILocationInfoRepository locationRepository, IStockInfoRepository stockInfoRepository, IDt_AreaInfoRepository areaInfoRepository, IDt_TaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, ISys_ConfigService configService, ISimpleCacheService simpleCacheService) { _logger = logger; _locationRepository = locationRepository; @@ -35,31 +31,34 @@ _taskRepository = taskRepository; _stationManagerRepository = stationManagerRepository; _configService = configService; + _simpleCacheService = simpleCacheService; } + public Task StartAsync(CancellationToken cancellationToken) { - _timer = new Timer(DoWork, null, 0, 10000); + _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(5)); return Task.CompletedTask; } + private void DoWork(object state) { try { - var area = _areaInfoRepository.QueryFirst(x => x.AreaCode == "GWSC1"); - var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>() - .Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo - .Includes(x => x.StockInfoDetails) // 棰勫姞杞絊tockInfoDetails - .Where(x => x.AreaCode == area.AreaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 杩囨护鏉′欢 - .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 杩囨护鏉′欢 + if (area == null) { return; } + + IDictionary<string, DtStockInfo>? stockInfos = _simpleCacheService.HashGetAll<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo); + List<DtStockInfo> stockInfoList = stockInfos.Values.ToList(); + + var stockInfo = stockInfoList.Where(x => x.AreaCode == area.AreaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 杩囨护鏉′欢 + .Where(x => x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 杩囨护鏉′欢 .OrderBy(x => x.OutboundTime) // 鎺掑簭 .ToList(); // 鑾峰彇绗竴涓厓绱� if (stockInfo.Count <= 0) return; foreach (var item in stockInfo) { - var hasTask = _taskRepository.QueryFirst(x => x.PalletCode == item.PalletCode); if (hasTask != null) { @@ -77,7 +76,6 @@ task.NextAddress = "002-000-002"; // 鍒涘缓浠诲姟DTO WMSTaskDTO taskDTO = CreateTaskDTO(task); - var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue; @@ -98,25 +96,25 @@ _locationRepository.UpdateData(item.LocationInfo); } } - } catch (Exception ex) { - ConsoleHelper.WriteErrorLine(ex.Message); + ConsoleHelper.WriteErrorLine($"楂樻俯鍑哄簱閿欒锛岄敊璇俊鎭細" + ex.Message); } - ConsoleHelper.WriteSuccessLine(DateTime.Now.ToString()); + ConsoleHelper.WriteSuccessLine($"楂樻俯鍑哄簱璋冪敤锛�" + DateTime.Now.ToString()); } + public Task StopAsync(CancellationToken cancellationToken) { _logger.LogInformation("MyBackgroundService is stopping."); _timer?.Change(Timeout.Infinite, 0); return Task.CompletedTask; } + public void Dispose() { _timer?.Dispose(); } - /// <summary> /// 鍒涘缓浠诲姟瀹炰緥 @@ -141,6 +139,8 @@ Creater = "System", // 淇鎷煎啓閿欒 CreateDate = DateTime.Now, TaskId = 0, + ProductionLine = stockInfo.ProductionLine, + ProcessCode = stockInfo.ProcessCode, }; } @@ -160,7 +160,8 @@ TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, + ProductionLine = task.ProductionLine, }; } } -} +} \ No newline at end of file -- Gitblit v1.9.3