You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
5.4 KiB

using System;
using System.Linq;
2 years ago
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Threading;
using Volo.Abp.Uow;
using Win_in.Sfs.Wms.DataExchange.Domain.Shared;
2 years ago
using Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent;
public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
{
private readonly string Incoming = "MES Incoming";
private readonly IOptions<MesOptions> _options;
public MesIncomingBackgroundWorker(
AbpAsyncTimer timer,
IOptions<MesOptions> options,
IServiceScopeFactory serviceScopeFactory
) : base(timer, serviceScopeFactory)
{
_options = options;
Timer.Period = options.Value.IncomingOptions.PeriodSeconds * 1000; //default 10 minutes
}
[UnitOfWork]
protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
{
Logger.LogInformation($"Starting: Handling {Incoming}");
if (!_options.Value.IncomingOptions.Active)
{
Logger.LogInformation($"{Incoming} is not active!");
return;
}
int min = DateTime.Now.Hour*60+ DateTime.Now.Minute;//第二天00:05:00与当天23:55:00不执行避免tyrpnumber重复
if ( (24*60-5)<= min || min <= 5)
{
Logger.LogInformation($"{Incoming} 时间小于第二天00:05:00大于当天23:55:00");
return;
}
2 years ago
Logger.LogInformation($"Read MesOut");//缴库
var mesOutReader = workerContext.ServiceProvider.GetRequiredService<MesOutReader>();
var mesOutConverter = workerContext.ServiceProvider.GetRequiredService<MesOutConverter>();
var TransferNoteConverter = workerContext.ServiceProvider.GetRequiredService<QtyrfeConverter>();
//读取mes缴库
2 years ago
var mesOutsFromExternalList = await mesOutReader.ReadAsync().ConfigureAwait(false);
var mesOutsFromExternalList_ProductReceipt = mesOutsFromExternalList.Where(r => r.DataType == EnumIncomingDataType.ProductReceipt.ToString()).ToList();
var mesOutsFromExternalList_TransferNote = mesOutsFromExternalList.Where(r => r.DataType == EnumIncomingDataType.TransferNote.ToString()).ToList();
//转换缴库数据(如果有质量补得数据直接生产移库数据移到客户库位)
await mesOutConverter.ConvertAsync(mesOutsFromExternalList_ProductReceipt).ConfigureAwait(false);
if (mesOutsFromExternalList_TransferNote.Count > 0)
{
await TransferNoteConverter.ConvertAsync(mesOutsFromExternalList_TransferNote).ConfigureAwait(false);
}
2 years ago
//上海和安徽无此接口
2 years ago
//Logger.LogInformation($"Read PullTask");//拉动任务
//var pullTaskReader = workerContext.ServiceProvider.GetRequiredService<PullTaskReader>();
//var pullTaskConverter = workerContext.ServiceProvider.GetRequiredService<PullTaskConverter>();
////读取并保存PullTask
//var pullTaskFromExternalList = await pullTaskReader.ReadAsync().ConfigureAwait(false);
////转换PullTask
//await pullTaskConverter.ConvertAsync(pullTaskFromExternalList).ConfigureAwait(false);
//Logger.LogInformation($"Read Scrap");
2 years ago
//var scrapReader = workerContext.ServiceProvider.GetRequiredService<ScrapReader>();
//var scrapConverter = workerContext.ServiceProvider.GetRequiredService<ScrapConverter>();
////读取并保存Scrap
//var scrapsFromExternalList = await scrapReader.ReadAsync().ConfigureAwait(false);
////转换Scrap
//await scrapConverter.ConvertAsync(scrapsFromExternalList).ConfigureAwait(false);
2 years ago
//上海和安徽无此接口
2 years ago
//Logger.LogInformation($"Read Issue");
//var pckHandleService = workerContext.ServiceProvider.GetRequiredService<IssueReader>();
//var pckConverter = workerContext.ServiceProvider.GetRequiredService<IssueConverter>();
////读取并保持Pck
//var pcksFromExternalList = await pckHandleService.ReadAsync().ConfigureAwait(false);
////转换Pck
//await pckConverter.ConvertAsync(pcksFromExternalList).ConfigureAwait(false);
2 years ago
//Logger.LogInformation($"Read BackFlush");//耗用单
//var BackFlushReader = workerContext.ServiceProvider.GetRequiredService<BackFluReader>();
//var BackFlushConverter = workerContext.ServiceProvider.GetRequiredService<BackFluConverter>();
////读取并保存BackFlush
//var backFlushsFromExternalList = await BackFlushReader.ReadAsync().ConfigureAwait(false);
////转换BackFlush
//await BackFlushConverter.ConvertAsync(backFlushsFromExternalList).ConfigureAwait(false);
Logger.LogInformation($"Read TransferNote");//储位调拨
var TransferNoteReader = workerContext.ServiceProvider.GetRequiredService<QtyrfeReader>();
// var TransferNoteConverter = workerContext.ServiceProvider.GetRequiredService<QtyrfeConverter>();
2 years ago
//读取并保存BackFlush
var transferNoteFromExternalList = await TransferNoteReader.ReadAsync().ConfigureAwait(false);
2 years ago
//转换BackFlush
await TransferNoteConverter.ConvertAsync(transferNoteFromExternalList).ConfigureAwait(false);
2 years ago
Logger.LogInformation($"Completed: Handling {Incoming}");
}
}