Seyounth.Auto.Hs/apps/Syc.Basic.Web.WMS.HttpApi.Host/SyncDataFromDbBackgroupService.cs
syc_zhaoqianyan 66fc5b3b19 1.扫码枪实现
2.体重秤实现
3.打印机实现
2025-07-01 14:20:07 +08:00

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);
}
}
}