using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Syc.Basic.Web.WMS.Entitys; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; namespace Syc.Basic.Web.WMS { /// /// 程序启动时从数据库同步队列数据 /// public class SyncDataFromDbBackgroupService : BackgroundService { private readonly IRepository silkRepository; private readonly ILogger logger; public SyncDataFromDbBackgroupService( IRepository silkRepository ,ILogger logger) { this.silkRepository = silkRepository; this.logger = logger; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { var status = new int[] { 0,1 }; var data = await silkRepository.GetListAsync(x => status.Contains(x.Status) && x.IsDelete == 0); logger.LogInformation($"已从 Silk 表检索到{data.Count}条待处理数据"); /* 加载已扫码未称重的 */ var list1 = data.Where(e => e.Status == 0).OrderBy(e => e.Createtime).ToList(); logger.LogInformation($"已扫码未称重 {list1.Count} 条,分别是:{string.Join(",", list1)},已加载进队列"); foreach ( var item in list1) if(!QueueManage.YarnBalanceQueue.Any(e => e.Code == item.Code)) QueueManage.YarnBalanceQueue.Enqueue(item); /* 加载已称重未装箱的 */ var list2 = data.Where(e => e.Status == 1).OrderBy(e => e.Createtime).ToList(); logger.LogInformation($"已称重待装箱 {list2.Count} 条,分别是:{string.Join(",",list2)},已加载进队列"); foreach (var item in list2) if(!QueueManage.BoxQueue.Contains(item.Code)) QueueManage.BoxQueue.Add(item.Code); } } }