52 lines
2.1 KiB
C#
52 lines
2.1 KiB
C#
|
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
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 程序启动时从数据库同步队列数据
|
|||
|
/// </summary>
|
|||
|
public class SyncDataFromDbBackgroupService : BackgroundService
|
|||
|
{
|
|||
|
private readonly IRepository<Silk> silkRepository;
|
|||
|
private readonly ILogger<SyncDataFromDbBackgroupService> logger;
|
|||
|
|
|||
|
public SyncDataFromDbBackgroupService(
|
|||
|
IRepository<Silk> silkRepository
|
|||
|
,ILogger<SyncDataFromDbBackgroupService> 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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|