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; /// /// 任务事件订阅. /// public class TaskStatusChangeSubscriber : IEventSubscriber, ISingleton { /// /// 初始化客户端. /// //private static SqlSugarScope? _sqlSugarClient; private readonly IWareHouseService _wareHouseService; private readonly IWmskittingOutService _wmskittingOutService; /// /// 构造函数. /// public TaskStatusChangeSubscriber(IWareHouseService wareHouseService, IWmskittingOutService wmskittingOutService) { _wareHouseService = wareHouseService; _wmskittingOutService = wmskittingOutService; } /// /// 创建任务日记. /// /// /// [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; } } }