73 lines
2.8 KiB
C#
73 lines
2.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using JNPF;
|
|
using JNPF.Common.Core.Manager;
|
|
using JNPF.Common.Dtos.Message;
|
|
using JNPF.Common.Extension;
|
|
using JNPF.FriendlyException;
|
|
using JNPF.Logging;
|
|
using JNPF.Message.Interfaces.Message;
|
|
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
|
using Microsoft.Extensions.Hosting;
|
|
using Tnb.Common.Extension;
|
|
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
|
|
using Tnb.WarehouseMgr.Interfaces;
|
|
|
|
namespace Tnb.WarehouseMgr
|
|
{
|
|
/// <summary>
|
|
/// 定时任务
|
|
/// added by ly on 20230802
|
|
/// </summary>
|
|
public class TimedTaskBackgroundService : BackgroundService
|
|
{
|
|
private ISendMessageService? _sendService;
|
|
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
|
{
|
|
await Task.Run(async () =>
|
|
{
|
|
_sendService = App.GetRequiredService<ISendMessageService>();
|
|
var userManager = App.GetRequiredService<IUserManager>();
|
|
List<string> toUserIds = new List<string>() { "25398501929509" };
|
|
//生成任务执行
|
|
CancellationTokenSource genTaskCTS = new();
|
|
CancellationTokenSource kittingOutAddCts = new();
|
|
CancellationTokenSource kittingOutShippedCts = new();
|
|
CancellationTokenSource setSortingCts = new();
|
|
|
|
var wareHouseService = App.GetRequiredService<IWareHouseService>();
|
|
TimedTask(cts => wareHouseService.GenTaskExecute(cts), genTaskCTS, toUserIds);
|
|
//齐套出库
|
|
|
|
var kittingOutService = App.GetRequiredService<IWmskittingOutService>();
|
|
TimedTask(cts => kittingOutService.KittingOutByAdd(cts), kittingOutAddCts, toUserIds);
|
|
TimedTask(cts => kittingOutService.KittingOutByIsToBeShipped(cts), kittingOutShippedCts, toUserIds);
|
|
//齐套分拣
|
|
var setSortingService = App.GetRequiredService<IWmsSetSortingService>();
|
|
TimedTask(cts => setSortingService.PackSortingByAdd(cts), setSortingCts, toUserIds);
|
|
});
|
|
}
|
|
private Task TimedTask(Func<CancellationTokenSource, Task> action, CancellationTokenSource cts, List<string>? toUserIds = default)
|
|
{
|
|
var token = cts.Token;
|
|
return Task.Run(async () =>
|
|
{
|
|
while (!token.IsCancellationRequested)
|
|
{
|
|
await action(cts).Catch(ex =>
|
|
{
|
|
//MessageSendModel messageSendModel = new();
|
|
//_sendService?.SendMessage();
|
|
//messageService.SentMessage(toUserIds!, ex.Message, ex.ToString());
|
|
});
|
|
await Task.Delay(1000);
|
|
}
|
|
}, token);
|
|
}
|
|
|
|
}
|
|
}
|