Files
tnb.server/WarehouseMgr/Tnb.WarehouseMgr/EventSubscribers/TaskStatusChangeSubscriber.cs

66 lines
2.2 KiB
C#

using JNPF.DependencyInjection;
using JNPF.EventBus;
using Tnb.Common.Core.EventBus.Constants;
using Tnb.Common.Core.EventBus.Sources;
using Tnb.WarehouseMgr.Interfaces;
namespace Tnb.WarehouseMgr.EventSubscribers;
/// <summary>
/// 任务事件订阅.
/// </summary>
public class TaskStatusChangeSubscriber : IEventSubscriber, ISingleton
{
/// <summary>
/// 初始化客户端.
/// </summary>
//private static SqlSugarScope? _sqlSugarClient;
private readonly IWareHouseService _wareHouseService;
private readonly IWmskittingOutService _wmskittingOutService;
/// <summary>
/// 构造函数.
/// </summary>
public TaskStatusChangeSubscriber(IWareHouseService wareHouseService, IWmskittingOutService wmskittingOutService)
{
_wareHouseService = wareHouseService;
_wmskittingOutService = wmskittingOutService;
}
/// <summary>
/// 创建任务日记.
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
[EventSubscribe(EventSubscribeEventConsts.TASKSTATUSCHANGE_EVENTID)]
public async Task Excute(EventHandlerExecutingContext context)
{
/*var claims = JWTEncryption.ReadJwtToken(UserManager.AsscessToken)?.Claims;
ClaimsIdentity toKen = new ClaimsIdentity();
foreach (Claim item in claims)
{
toKen.AddClaim(item);
}
var principal = new ClaimsPrincipal(toKen);
FieldInfo fieldInfo = _userManager.GetType().GetField("_user", BindingFlags.NonPublic | BindingFlags.Instance);
if (fieldInfo != null)
{
fieldInfo.SetValue(_userManager, principal);
}*/
TaskStatusChangeSource tscSource = (TaskStatusChangeSource)context.Source;
switch (tscSource.Payload)
{
case nameof(_wareHouseService.GenTaskExecute):
await _wareHouseService.GenTaskExecute();
break;
case nameof(_wmskittingOutService.KittingOutByAdd):
await _wmskittingOutService.KittingOutByAdd();
break;
case nameof(_wmskittingOutService.KittingOutByIsToBeShipped):
await _wmskittingOutService.KittingOutByIsToBeShipped();
break;
}
}
}