diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 6b943716..e6113182 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -59,6 +59,7 @@ namespace Tnb.WarehouseMgr private IEventPublisher _eventPublisher; + protected IEventPublisher EventPublisher { set { _eventPublisher = value; } @@ -107,6 +108,23 @@ namespace Tnb.WarehouseMgr return Task.FromResult(curUser); } + + protected Task SetUserEntity(IUserManager userManager, ClaimsPrincipal principal) + => Task.Run(() => + { + FieldInfo fieldInfo = userManager.GetType().GetField("_user", BindingFlags.NonPublic | BindingFlags.Instance); + if (fieldInfo != null) + { + fieldInfo.SetValue(userManager, principal); + } + }); + + protected Task InvokeGenPretaskExcute() + { + var wareHouseSvc =App.GetRequiredService(); + return wareHouseSvc.GenTaskExecute(); + } + /// /// 判断最终目标库位是否可以放置当前载具 /// @@ -368,7 +386,7 @@ namespace Tnb.WarehouseMgr /// /// [NonAction] - protected Task ToApiResult(HttpStatusCode statusCode, object data) + protected Task ToApiResult(HttpStatusCode statusCode, object data) { Result result = new() { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/EventSubscribers/TaskStatusChangeSubscriber.cs b/WarehouseMgr/Tnb.WarehouseMgr/EventSubscribers/TaskStatusChangeSubscriber.cs index bffd6179..dda92314 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/EventSubscribers/TaskStatusChangeSubscriber.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/EventSubscribers/TaskStatusChangeSubscriber.cs @@ -1,7 +1,12 @@ -using JNPF.Common.Configuration; +using System.Reflection; +using System.Security.Claims; +using JNPF.Common.Configuration; +using JNPF.Common.Core.Manager; +using JNPF.DataEncryption; using JNPF.DependencyInjection; using JNPF.EventBus; using JNPF.TaskScheduler.Entitys; +using NetTaste; using SqlSugar; using Tnb.Common.Core.EventBus.Constants; using Tnb.Common.Core.EventBus.Sources; @@ -19,12 +24,14 @@ public class TaskStatusChangeSubscriber : IEventSubscriber, ISingleton /// //private static SqlSugarScope? _sqlSugarClient; private readonly IWareHouseService _wareHouseService; + private readonly IWmskittingOutService _wmskittingOutService; /// /// 构造函数. /// - public TaskStatusChangeSubscriber(IWareHouseService wareHouseService) + public TaskStatusChangeSubscriber(IWareHouseService wareHouseService, IWmskittingOutService wmskittingOutService) { _wareHouseService = wareHouseService; + _wmskittingOutService = wmskittingOutService; } /// @@ -35,13 +42,33 @@ public class TaskStatusChangeSubscriber : IEventSubscriber, ISingleton [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); + }*/ + + var 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; } } -} \ No newline at end of file +} \ No newline at end of file diff --git a/WarehouseMgr/Tnb.WarehouseMgr/Extensions/WareHouseBasedControllerActivator.cs b/WarehouseMgr/Tnb.WarehouseMgr/Extensions/WareHouseBasedControllerActivator.cs new file mode 100644 index 00000000..cc4150ae --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr/Extensions/WareHouseBasedControllerActivator.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Controllers; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.Extensions.DependencyInjection; +using Tnb.WarehouseMgr.Interfaces; + +namespace Tnb.WarehouseMgr +{ + public class WareHouseBasedControllerActivator : IControllerActivator + { + public object Create(ControllerContext context) + { + if(context == null) { throw new ArgumentNullException("context"); } + var controllerType = context.ActionDescriptor.ControllerTypeInfo.AsType(); + //获取Controller实例 + var controller =context.HttpContext.RequestServices.GetRequiredService(controllerType); + //判断是否继承了自定义Controller基类 + //if(controller is BaseWareHouseService basedWhSvc) + //{ + // basedWhSvc.WareHouseSrv = context.HttpContext.RequestServices.GetRequiredService(); + //} + return controller; + + } + + public void Release(ControllerContext context, object controller) + { + } + + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs index 98cbd5d4..043e0757 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs @@ -47,17 +47,7 @@ namespace Tnb.WarehouseMgr private IEventPublisher _eventPublisher = default!; private ElevatorControlConfiguration _elevatorControlConfiguration = App.Configuration.Build(); private readonly IServiceProvider _serviceProvider; - private static Dictionary> _timedFuncMap = new(StringComparer.OrdinalIgnoreCase); - static TimedTaskBackgroundService() - { - //Task.Run(() => - //{ - // _timedFuncMap = App.EffectiveTypes.AsParallel().Where(t => !t.Namespace.IsNullOrWhiteSpace() && t.Namespace.Equals("Tnb.WarehouseMgr", StringComparison.OrdinalIgnoreCase)).SelectMany(t => t.GetMethods()) - // .Where(m => m.GetCustomAttribute() != null) - // .ToDictionary(x => x.Name, x => - // (Func)Delegate.CreateDelegate(typeof(Func), App.GetService(x.DeclaringType), x)); - //}); - } + //private static Dictionary> _timedFuncMap = new(StringComparer.OrdinalIgnoreCase); public TimedTaskBackgroundService(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; @@ -66,30 +56,11 @@ namespace Tnb.WarehouseMgr protected override Task ExecuteAsync(CancellationToken stoppingToken) { IsStarted = true; - //var queueTask = Task.Run(async () => - // { - - // var channelReader = _serviceProvider.GetRequiredService().Reader; - - // CancellationTokenSource? cts = new(); - - // while (channelReader != null && await channelReader.WaitToReadAsync()) - // { - // while (channelReader.TryRead(out var message)) - // { - // if (_timedFuncMap.ContainsKey(message.TaskName)) - // { - // await _timedFuncMap[message.TaskName].Invoke(stoppingToken); - // } - // } - // } - // }, stoppingToken); var timedTask = Task.Run(() => { _eventPublisher = App.GetRequiredService(); - var whSvc = App.GetRequiredService(); - TimedTask(token => whSvc.GenTaskExecute(), stoppingToken, 1); + //电梯Agv心跳检测 TimedTask(async token => { @@ -130,6 +101,7 @@ namespace Tnb.WarehouseMgr { await action(ct).Catch(async ex => { + if (ex is TimedTaskException timedTaskEx and not null) { await _eventPublisher.PublishAsync(new LogEventSource("Log:CreateExLog", timedTaskEx.options!, new SysLogEntity diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs index bace2234..646b7fd3 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs @@ -63,7 +63,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = CarryMoveIn; } @@ -178,7 +178,7 @@ namespace Tnb.WarehouseMgr finally { //向队列写入消息 - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveOutStockService.cs index 9527fe3f..0f8bcfd3 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveOutStockService.cs @@ -56,7 +56,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = CarryMoveOut; } @@ -164,7 +164,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs index 70834328..0e61c30a 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCheckTaskService.cs @@ -54,7 +54,7 @@ namespace Tnb.WarehouseMgr _runService = runService; _billRullService = billRullService; _userManager = userManager; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = Create; } @@ -224,7 +224,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(row); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsDeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsDeliveryService.cs index f20a36dd..9005c12f 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsDeliveryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsDeliveryService.cs @@ -67,7 +67,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = Create; } /// @@ -204,7 +204,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return await Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs index 46abdf54..4e55f138 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs @@ -64,7 +64,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = WmsEmptyIn; } private async Task WmsEmptyIn(VisualDevModelDataCrInput input) @@ -189,7 +189,7 @@ namespace Tnb.WarehouseMgr finally { //向队列写入消息 - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs index dc1a1efa..56b4530b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs @@ -62,7 +62,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = WmsEmptyOut; } @@ -220,7 +220,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs index b48358f3..81307269 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs @@ -65,7 +65,7 @@ namespace Tnb.WarehouseMgr _billRullService = billRullService; _wareHouseService = wareHouseService; _prdInstockService = prdInstockService; - EventPublisher = eventPublisher; + } /// /// 根据入库申请单ID获取申请单明细信息 @@ -482,7 +482,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return isSuccessFul; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsKittingInStkService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsKittingInStkService.cs index e82bb9a5..1b6ac354 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsKittingInStkService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsKittingInStkService.cs @@ -59,7 +59,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = KittingInStk; } @@ -220,7 +220,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } @@ -248,11 +248,8 @@ namespace Tnb.WarehouseMgr kittingOut.carry_id = kittingIn.carry_id; kittingOut.carry_code = kittingIn.carry_code; await _db.Updateable(kittingOut).UpdateColumns(it => new { it.status, it.carry_id, it.carry_code }).ExecuteCommandAsync(); - //if (kittingOut.status == WmsWareHouseConst.BILLSTATUS_TOBESHIPPED_ID) - //{ - // await Publish(nameof(IWmskittingOutService.KittingOutByIsToBeShipped)); - //} + await Publish(nameof(IWmskittingOutService.KittingOutByIsToBeShipped)); } } if (row < 1) throw Oops.Oh(ErrorCode.COM1001); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutBaleService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutBaleService.cs index e7dd0c38..e901673c 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutBaleService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutBaleService.cs @@ -59,7 +59,7 @@ namespace Tnb.WarehouseMgr _userManager = userManager; _billRullService = billRullService; _wmsCarryService = wmsCarryService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = CarryOutBale; } @@ -166,7 +166,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs index fd4ae50a..a9fe16b1 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs @@ -79,7 +79,7 @@ namespace Tnb.WarehouseMgr _billRullService = billRullService; _wmsCarryMoveInStockService = wmsCarryMoveInStockService; _wareCarryService = wareCarryService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = OutStockApplyFor; } @@ -374,7 +374,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } @@ -767,7 +767,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return isSuccessful; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveInStockService.cs index e9f4ce5c..199b9a7f 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveInStockService.cs @@ -60,7 +60,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = PDACarryMoveIn; } @@ -163,7 +163,7 @@ namespace Tnb.WarehouseMgr //} //finally //{ - // await Publish(nameof(IWareHouseService.GenTaskExecute)); + // await InvokeGenPretaskExcute(); //} //return Task.FromResult(true); #endregion @@ -276,7 +276,7 @@ namespace Tnb.WarehouseMgr finally { //向队列写入消息 - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs index af06151c..111d5263 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs @@ -57,7 +57,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = PDACarryMoveOut; } @@ -161,7 +161,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs index 1bcc6ecb..412c9266 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs @@ -62,7 +62,7 @@ namespace Tnb.WarehouseMgr _billRullService = billRullService; _wareHouseService = wareHouseService; _userManager = userManager; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = Create; } /// @@ -193,7 +193,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return await Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyInstockService.cs index 3ca9a1b7..9926e68e 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyInstockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyInstockService.cs @@ -57,7 +57,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = PDAWmsEmptyIn; } @@ -170,7 +170,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs index 986a9a2b..aedad1a5 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs @@ -59,7 +59,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = PDAWmsEmptyOut; } @@ -212,7 +212,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs index a5ade6b2..f502e6c5 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs @@ -65,7 +65,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = ScanCodeInStock; } @@ -282,7 +282,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInbaleService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInbaleService.cs index cf387778..939e05d9 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInbaleService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInbaleService.cs @@ -60,7 +60,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = Inbale; } @@ -174,7 +174,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAOutBaleServiceService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAOutBaleServiceService.cs index e7ea4455..afa30529 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAOutBaleServiceService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAOutBaleServiceService.cs @@ -58,7 +58,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher= eventPublisher; + OverideFuncs.CreateAsync = PDAOutBale; } @@ -162,7 +162,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs index 58cf230a..7be5ce4b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAScanInStockService.cs @@ -56,7 +56,7 @@ namespace Tnb.WarehouseMgr _billRullService = billRullService; _wareHouseService = wareHouseService; _prdInstockService = prdInstockService; - EventPublisher = eventPublisher; + OverideFuncs.CreateAsync = ScanInStock; } public async Task ScanInStock(VisualDevModelDataCrInput input) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs index aedb9b8e..4b145362 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs @@ -61,7 +61,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = publisher; + OverideFuncs.CreateAsync = CarryTransfer; } @@ -157,7 +157,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs index 78aa47ba..ef7ce566 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsRobotCallbackService.cs @@ -55,7 +55,7 @@ namespace Tnb.WarehouseMgr _warehouseService = warehouseService; _billRullService = billRullService; _wmsKittingInStkService = wmsKittingInStkService; - EventPublisher = publisher; + } /// /// 机器人完成任务后回调接口 @@ -92,6 +92,11 @@ namespace Tnb.WarehouseMgr var kittingout = await _db.Queryable().FirstAsync(it => it.collocation_scheme_id == carry.collocation_scheme_id && it.status == WmsWareHouseConst.BILLSTATUS_CALLED_ID); if (kittingout != null) { + + await Publish(nameof(IWmskittingOutService.KittingOutByAdd)); + await Publish(nameof(IWmskittingOutService.KittingOutByIsToBeShipped)); + + visualDevModelCrInput.data = new Dictionary(); visualDevModelCrInput.data[nameof(InStockStrategyQuery.warehouse_id)] = kittingout.warehouse_id; visualDevModelCrInput.data[nameof(WmsKittingInstock.carry_id)] = input.carry_id; @@ -147,7 +152,8 @@ namespace Tnb.WarehouseMgr genPreTaskAfterUpInput.CarryIds = preTasks.Select(x => x.carry_id).ToList(); genPreTaskAfterUpInput.LocationIds = new List { carry.location_id! }; await _warehouseService.GenInStockTaskHandleAfter(genPreTaskAfterUpInput, it => new WmsCarryH { is_lock = 1 }, it => new BasLocation { is_lock = 1 }); - await Publish(nameof(IWareHouseService.GenTaskExecute)); + + await InvokeGenPretaskExcute(); } } else diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs index 7efd0ad9..4429c4d5 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs @@ -70,7 +70,7 @@ namespace Tnb.WarehouseMgr _cacheManager = cacheManager; _runService = runService; _visualDevService = visualDevService; - EventPublisher = publisher; + //OverideFuncs.CreateAsync = Create; } @@ -99,10 +99,11 @@ namespace Tnb.WarehouseMgr [HttpPost, Timed(Name = nameof(PackSortingByAdd))] public async Task PackSortingByAdd(CancellationToken? ct = default) { - //if (UserManager.AsscessToken.IsNullOrWhiteSpace()) return; - //var curUser = await GetUserIdentity(); - - //Console.WriteLine($"ThreadID:{Thread.CurrentThread.ManagedThreadId}\t Thread pool: {Thread.CurrentThread.IsThreadPoolThread}"); + if (_userManager.User.IsNull()) + { + var curUser = await GetUserIdentity(); + await SetUserEntity(_userManager, curUser); + } var curDb = _db.CopyNew(); @@ -284,7 +285,7 @@ namespace Tnb.WarehouseMgr } finally { - //await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute(); } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs index d1325fe0..41d978f1 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs @@ -61,7 +61,7 @@ namespace Tnb.WarehouseMgr _wareHouseService = wareHouseService; _userManager = userManager; _billRullService = billRullService; - EventPublisher = publisher; + OverideFuncs.CreateAsync = CarryTransfer; } @@ -161,7 +161,7 @@ namespace Tnb.WarehouseMgr } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + await InvokeGenPretaskExcute();; } return Task.FromResult(true); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index 4fa58910..b7b26e4b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -72,13 +72,13 @@ namespace Tnb.WarehouseMgr _billRullService = billRullService; _carryService = carryService; _cacheManager = cacheManager; - EventPublisher = eventPublisher; + } /// /// 齐套出库(新增状态) /// /// - [HttpPost, Timed(Name = nameof(KittingOutByAdd))] + [HttpPost] public async Task KittingOutByAdd(CancellationToken? ct = default) { //if (ct?.IsCancellationRequested ?? false) @@ -121,7 +121,7 @@ namespace Tnb.WarehouseMgr ko.carry_id = firstCarry?.id; ko.carry_code = firstCarry?.carry_code; await _db.Updateable(ko).UpdateColumns(it => new { it.status, it.carry_id, it.carry_code }).ExecuteCommandAsync(); - //await KittingOutByIsToBeShipped(); + _ = KittingOutByIsToBeShipped(); if (firstCarry != null) { firstCarry.source_id = ko.source_id; @@ -188,7 +188,7 @@ namespace Tnb.WarehouseMgr /// 齐套出库,(待配送状态) /// /// - [HttpPost, Timed(Name = nameof(KittingOutByIsToBeShipped))] + [HttpPost] public async Task KittingOutByIsToBeShipped(CancellationToken? ct = default) { //if (UserManager.AsscessToken.IsNullOrWhiteSpace()) return; @@ -296,7 +296,7 @@ namespace Tnb.WarehouseMgr } finally { - //await Publish(nameof(IWareHouseService.GenTaskExecute)); + //await InvokeGenPretaskExcute(); } } diff --git a/apihost/Tnb.API.Entry/Startup.cs b/apihost/Tnb.API.Entry/Startup.cs index db7c99c9..07ba27d3 100644 --- a/apihost/Tnb.API.Entry/Startup.cs +++ b/apihost/Tnb.API.Entry/Startup.cs @@ -1,4 +1,5 @@ -using IGeekFan.AspNetCore.Knife4jUI; +using System.Reflection; +using IGeekFan.AspNetCore.Knife4jUI; using JNPF.API.Entry.Handlers; using JNPF.Common.Cache; using JNPF.Common.Core; @@ -62,15 +63,14 @@ public class Startup : AppStartup .AddSenparcWeixinServices(App.Configuration); // Senparc.Weixin 注册(如果使用Senparc.Weixin SDK则添加) services.AddOverideVisualDev(); - //注册任务消息通知 added by ly on 20230814 - //services.AddTaskMessageNotify(); - SnowflakeIdHelper.InitYitIdWorker(); //定时任务 - //services.AddHostedService(); + services.AddHostedService(); } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider, IOptions senparcSetting, IOptions senparcWeixinSetting) { // 添加状态码拦截中间件 @@ -115,7 +115,7 @@ public class Startup : AppStartup endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); - //SnowflakeIdHelper.InitYitIdWorker(); + SnowflakeIdHelper.InitYitIdWorker(); bool isStartTimeJob = App.GetConfig("IsStartTimeJob"); if (isStartTimeJob) diff --git a/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj b/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj index d32c2319..e2a9a094 100644 --- a/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj +++ b/apihost/Tnb.API.Entry/Tnb.API.Entry.csproj @@ -1,29 +1,29 @@  - + - - net6.0 - enable - enable - none - + + net6.0 + enable + enable + none + - - - - - - + + + + + + - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - PreserveNewest - - + + + PreserveNewest + + - - - PreserveNewest - - + + + PreserveNewest + + \ No newline at end of file diff --git a/common/Tnb.Common/Extension/TaskExtensions.cs b/common/Tnb.Common/Extension/TaskExtensions.cs index 910ad30e..96f5a278 100644 --- a/common/Tnb.Common/Extension/TaskExtensions.cs +++ b/common/Tnb.Common/Extension/TaskExtensions.cs @@ -25,6 +25,21 @@ namespace Tnb.Common.Extension return tcs.Task; } + public static async Task Retry(Func> task, int retries, + TimeSpan delay, CancellationToken cts = default) => + await task().ContinueWith(async innerTask => + { + cts.ThrowIfCancellationRequested(); + if (innerTask.Status != TaskStatus.Faulted) + return innerTask.Result; + if (retries == 0) + throw innerTask.Exception ?? throw new Exception(); + await Task.Delay(delay, cts); + return await Retry(task, retries - 1, delay, cts); + }).Unwrap(); + + + public static async Task Catch(this Task task, Func exceptionHandler) { try diff --git a/taskschedule/Tnb.TaskScheduler/Listener/QcTaskTimeWorker.cs b/taskschedule/Tnb.TaskScheduler/Listener/QcTaskTimeWorker.cs index 2a997c42..be66dff6 100644 --- a/taskschedule/Tnb.TaskScheduler/Listener/QcTaskTimeWorker.cs +++ b/taskschedule/Tnb.TaskScheduler/Listener/QcTaskTimeWorker.cs @@ -24,7 +24,7 @@ namespace Tnb.TaskScheduler.Listener /// /// 生成质检任务 /// - public class QcTaskTimeWorker : ISpareTimeWorker + public class QcTaskTimeWorker //u: ISpareTimeWorker { private ISqlSugarRepository repository => App.GetService>(); private ITimeTaskService timeTaskService => App.GetService();