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.
51 lines
1.9 KiB
51 lines
1.9 KiB
using System;
|
|
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.Fawtyg.MesAgent.Incoming;
|
|
using Win_in.Sfs.Wms.Store.Application.Contracts;
|
|
|
|
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent;
|
|
|
|
public class InjectionMoldingTaskIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
|
|
{
|
|
private readonly string Incoming = "InjectionMoldingTask Incoming";
|
|
|
|
private readonly IOptions<InjectionMoldingTaskOptions> _options;
|
|
|
|
public InjectionMoldingTaskIncomingBackgroundWorker(
|
|
AbpAsyncTimer timer,
|
|
IOptions<InjectionMoldingTaskOptions> 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;
|
|
}
|
|
Logger.LogInformation($"注塑任务");//缴库
|
|
var reader = workerContext.ServiceProvider.GetService<InjectionMoldingRequestReader>();
|
|
await reader.ReadAsync().ConfigureAwait(false);
|
|
Logger.LogInformation($"Completed: Handling {Incoming}");
|
|
}
|
|
|
|
}
|
|
|