| | |
| | | using 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_Core.Const; |
| | | using WIDESEA_DTO.WMS; |
| | | using WIDESEA_IServices; |
| | | using WIDESEA_Repository; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEA_Model; |
| | | |
| | | namespace WIDESEA_StorageTaskServices |
| | | { |
| | |
| | | private readonly ILocationInfoRepository _locationRepository; |
| | | |
| | | private Timer _timer; |
| | | |
| | | public MyBackgroundService(ILogger<MyBackgroundService> logger, ILocationInfoRepository locationRepository, IStockInfoRepository stockInfoRepository, IDt_AreaInfoRepository areaInfoRepository, IDt_TaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, ISys_ConfigService configService) |
| | | { |
| | | _logger = logger; |
| | |
| | | _stationManagerRepository = stationManagerRepository; |
| | | _configService = configService; |
| | | } |
| | | |
| | | public Task StartAsync(CancellationToken cancellationToken) |
| | | { |
| | | _timer = new Timer(DoWork, null, 0, 10000); |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | private void DoWork(object state) |
| | | { |
| | | try |
| | | { |
| | | |
| | | var area = _areaInfoRepository.QueryFirst(x => x.AreaCode == "GWSC1"); |
| | | |
| | | if (area == null) { return; } |
| | | var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Includes(x => x.LocationInfo) // 预加载LocationInfo |
| | | .Includes(x => x.StockInfoDetails) // 预加载StockInfoDetails |
| | |
| | | if (stockInfo.Count <= 0) return; |
| | | foreach (var item in stockInfo) |
| | | { |
| | | |
| | | var hasTask = _taskRepository.QueryFirst(x => x.PalletCode == item.PalletCode); |
| | | if (hasTask != null) |
| | | { |
| | |
| | | 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; |
| | |
| | | _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> |
| | | /// 创建任务实例 |
| | |
| | | }; |
| | | } |
| | | } |
| | | } |
| | | } |