将依赖事件总线的发布订阅模式,改为直接调用的形式
This commit is contained in:
@@ -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<IWareHouseService>();
|
||||
return wareHouseSvc.GenTaskExecute();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断最终目标库位是否可以放置当前载具
|
||||
/// </summary>
|
||||
@@ -368,7 +386,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[NonAction]
|
||||
protected Task<Result> ToApiResult(HttpStatusCode statusCode, object data)
|
||||
protected Task<Result> ToApiResult(HttpStatusCode statusCode, object data)
|
||||
{
|
||||
Result result = new()
|
||||
{
|
||||
|
||||
@@ -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
|
||||
/// </summary>
|
||||
//private static SqlSugarScope? _sqlSugarClient;
|
||||
private readonly IWareHouseService _wareHouseService;
|
||||
private readonly IWmskittingOutService _wmskittingOutService;
|
||||
/// <summary>
|
||||
/// 构造函数.
|
||||
/// </summary>
|
||||
public TaskStatusChangeSubscriber(IWareHouseService wareHouseService)
|
||||
public TaskStatusChangeSubscriber(IWareHouseService wareHouseService, IWmskittingOutService wmskittingOutService)
|
||||
{
|
||||
_wareHouseService = wareHouseService;
|
||||
_wmskittingOutService = wmskittingOutService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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<IWareHouseService>();
|
||||
//}
|
||||
return controller;
|
||||
|
||||
}
|
||||
|
||||
public void Release(ControllerContext context, object controller)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -47,17 +47,7 @@ namespace Tnb.WarehouseMgr
|
||||
private IEventPublisher _eventPublisher = default!;
|
||||
private ElevatorControlConfiguration _elevatorControlConfiguration = App.Configuration.Build<ElevatorControlConfiguration>();
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private static Dictionary<string, Func<CancellationToken?, Task>> _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<TimedAttribute>() != null)
|
||||
// .ToDictionary(x => x.Name, x =>
|
||||
// (Func<CancellationToken?, Task>)Delegate.CreateDelegate(typeof(Func<CancellationToken?, Task>), App.GetService(x.DeclaringType), x));
|
||||
//});
|
||||
}
|
||||
//private static Dictionary<string, Func<CancellationToken?, Task>> _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<ITaskMessageNotify>().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<IEventPublisher>();
|
||||
var whSvc = App.GetRequiredService<IWareHouseService>();
|
||||
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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace Tnb.WarehouseMgr
|
||||
_wareHouseService = wareHouseService;
|
||||
_userManager = userManager;
|
||||
_billRullService = billRullService;
|
||||
EventPublisher = eventPublisher;
|
||||
|
||||
OverideFuncs.CreateAsync = Create;
|
||||
}
|
||||
/// <summary>
|
||||
@@ -204,7 +204,7 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
finally
|
||||
{
|
||||
await Publish(nameof(IWareHouseService.GenTaskExecute));
|
||||
await InvokeGenPretaskExcute();
|
||||
}
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace Tnb.WarehouseMgr
|
||||
_wareHouseService = wareHouseService;
|
||||
_userManager = userManager;
|
||||
_billRullService = billRullService;
|
||||
EventPublisher = eventPublisher;
|
||||
|
||||
OverideFuncs.CreateAsync = WmsEmptyIn;
|
||||
}
|
||||
private async Task<dynamic> WmsEmptyIn(VisualDevModelDataCrInput input)
|
||||
@@ -189,7 +189,7 @@ namespace Tnb.WarehouseMgr
|
||||
finally
|
||||
{
|
||||
//向队列写入消息
|
||||
await Publish(nameof(IWareHouseService.GenTaskExecute));
|
||||
await InvokeGenPretaskExcute();
|
||||
}
|
||||
return Task.FromResult(true);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace Tnb.WarehouseMgr
|
||||
_billRullService = billRullService;
|
||||
_wareHouseService = wareHouseService;
|
||||
_prdInstockService = prdInstockService;
|
||||
EventPublisher = eventPublisher;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据入库申请单ID获取申请单明细信息
|
||||
@@ -482,7 +482,7 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
finally
|
||||
{
|
||||
await Publish(nameof(IWareHouseService.GenTaskExecute));
|
||||
await InvokeGenPretaskExcute();
|
||||
}
|
||||
return isSuccessFul;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace Tnb.WarehouseMgr
|
||||
_billRullService = billRullService;
|
||||
_wareHouseService = wareHouseService;
|
||||
_userManager = userManager;
|
||||
EventPublisher = eventPublisher;
|
||||
|
||||
OverideFuncs.CreateAsync = Create;
|
||||
}
|
||||
/// <summary>
|
||||
@@ -193,7 +193,7 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
finally
|
||||
{
|
||||
await Publish(nameof(IWareHouseService.GenTaskExecute));
|
||||
await InvokeGenPretaskExcute();
|
||||
}
|
||||
return await Task.FromResult(true);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace Tnb.WarehouseMgr
|
||||
_billRullService = billRullService;
|
||||
_wareHouseService = wareHouseService;
|
||||
_prdInstockService = prdInstockService;
|
||||
EventPublisher = eventPublisher;
|
||||
|
||||
OverideFuncs.CreateAsync = ScanInStock;
|
||||
}
|
||||
public async Task<dynamic> ScanInStock(VisualDevModelDataCrInput input)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace Tnb.WarehouseMgr
|
||||
_warehouseService = warehouseService;
|
||||
_billRullService = billRullService;
|
||||
_wmsKittingInStkService = wmsKittingInStkService;
|
||||
EventPublisher = publisher;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 机器人完成任务后回调接口
|
||||
@@ -92,6 +92,11 @@ namespace Tnb.WarehouseMgr
|
||||
var kittingout = await _db.Queryable<WmsKittingoutH>().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<string, object>();
|
||||
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<string> { 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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -72,13 +72,13 @@ namespace Tnb.WarehouseMgr
|
||||
_billRullService = billRullService;
|
||||
_carryService = carryService;
|
||||
_cacheManager = cacheManager;
|
||||
EventPublisher = eventPublisher;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 齐套出库(新增状态)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[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
|
||||
/// 齐套出库,(待配送状态)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<TimedTaskBackgroundService>();
|
||||
services.AddHostedService<TimedTaskBackgroundService>();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider, IOptions<SenparcSetting> senparcSetting, IOptions<SenparcWeixinSetting> 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<bool>("IsStartTimeJob");
|
||||
if (isStartTimeJob)
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Import Project="$(SolutionDir)\common.props" />
|
||||
<Import Project="$(SolutionDir)\common.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<SatelliteResourceLanguages>none</SatelliteResourceLanguages>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<SatelliteResourceLanguages>none</SatelliteResourceLanguages>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="logs\**" />
|
||||
<Content Remove="logs\**" />
|
||||
<EmbeddedResource Remove="logs\**" />
|
||||
<None Remove="logs\**" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Remove="logs\**" />
|
||||
<Content Remove="logs\**" />
|
||||
<EmbeddedResource Remove="logs\**" />
|
||||
<None Remove="logs\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\AppService.cshtml" />
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\EntityDto.cshtml" />
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\EntityDtoAcmen.cshtml" />
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\EntityInfo.cshtml" />
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\EntityInfoAcmen.cshtml" />
|
||||
</ItemGroup>
|
||||
|
||||
<!--<ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\AppService.cshtml" />
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\EntityDto.cshtml" />
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\EntityDtoAcmen.cshtml" />
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\EntityInfo.cshtml" />
|
||||
<None Include="wwwroot\Template\VengineSqlSugar\EntityInfoAcmen.cshtml" />
|
||||
</ItemGroup>
|
||||
|
||||
<!--<ItemGroup>
|
||||
<None Remove="lib\regworkerid_lib_v1.3.1\yitidgengo.dll" />
|
||||
<None Remove="lib\regworkerid_lib_v1.3.1\yitidgengo.so" />
|
||||
<None Remove="sensitive-words.txt" />
|
||||
@@ -35,38 +35,38 @@
|
||||
<EmbeddedResource Include="sensitive-words.txt" />
|
||||
</ItemGroup>-->
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="IGeekFan.AspNetCore.Knife4jUI" Version="0.0.13" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="7.0.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="IGeekFan.AspNetCore.Knife4jUI" Version="0.0.13" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="7.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\app\Tnb.Apps\Tnb.Apps.csproj" />
|
||||
<ProjectReference Include="..\..\BasicData\Tnb.BasicData\Tnb.BasicData.csproj" />
|
||||
<ProjectReference Include="..\..\EquipMgr\Tnb.EquipMgr\Tnb.EquipMgr.csproj" />
|
||||
<ProjectReference Include="..\..\message\Tnb.Message\Tnb.Message.csproj" />
|
||||
<ProjectReference Include="..\..\PerMgr\Tnb.PerMgr\Tnb.PerMgr.csproj" />
|
||||
<ProjectReference Include="..\..\ProductionMgr\Tnb.ProductionMgr\Tnb.ProductionMgr.csproj" />
|
||||
<ProjectReference Include="..\..\QcMgr\Tnb.QcMgr\Tnb.QcMgr.csproj" />
|
||||
<ProjectReference Include="..\..\system\Tnb.OAuth\Tnb.OAuth.csproj" />
|
||||
<ProjectReference Include="..\..\system\Tnb.Systems\Tnb.Systems.csproj" />
|
||||
<ProjectReference Include="..\..\taskschedule\Tnb.TaskScheduler\Tnb.TaskScheduler.csproj" />
|
||||
<ProjectReference Include="..\..\visualdev\Tnb.Vengine\Tnb.Vengine.csproj" />
|
||||
<ProjectReference Include="..\..\visualdev\Tnb.VisualDev\Tnb.VisualDev.csproj" />
|
||||
<ProjectReference Include="..\..\WarehouseMgr\Tnb.WarehouseMgr\Tnb.WarehouseMgr.csproj" />
|
||||
<ProjectReference Include="..\..\workflow\Tnb.WorkFlow\Tnb.WorkFlow.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\app\Tnb.Apps\Tnb.Apps.csproj" />
|
||||
<ProjectReference Include="..\..\BasicData\Tnb.BasicData\Tnb.BasicData.csproj" />
|
||||
<ProjectReference Include="..\..\EquipMgr\Tnb.EquipMgr\Tnb.EquipMgr.csproj" />
|
||||
<ProjectReference Include="..\..\message\Tnb.Message\Tnb.Message.csproj" />
|
||||
<ProjectReference Include="..\..\PerMgr\Tnb.PerMgr\Tnb.PerMgr.csproj" />
|
||||
<ProjectReference Include="..\..\ProductionMgr\Tnb.ProductionMgr\Tnb.ProductionMgr.csproj" />
|
||||
<ProjectReference Include="..\..\QcMgr\Tnb.QcMgr\Tnb.QcMgr.csproj" />
|
||||
<ProjectReference Include="..\..\system\Tnb.OAuth\Tnb.OAuth.csproj" />
|
||||
<ProjectReference Include="..\..\system\Tnb.Systems\Tnb.Systems.csproj" />
|
||||
<ProjectReference Include="..\..\taskschedule\Tnb.TaskScheduler\Tnb.TaskScheduler.csproj" />
|
||||
<ProjectReference Include="..\..\visualdev\Tnb.Vengine\Tnb.Vengine.csproj" />
|
||||
<ProjectReference Include="..\..\visualdev\Tnb.VisualDev\Tnb.VisualDev.csproj" />
|
||||
<ProjectReference Include="..\..\WarehouseMgr\Tnb.WarehouseMgr\Tnb.WarehouseMgr.csproj" />
|
||||
<ProjectReference Include="..\..\workflow\Tnb.WorkFlow\Tnb.WorkFlow.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Update="wwwroot\Template\*.vm">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Update="wwwroot\Template\*.vm">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="_install.bat">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Update="_install.bat">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -25,6 +25,21 @@ namespace Tnb.Common.Extension
|
||||
return tcs.Task;
|
||||
}
|
||||
|
||||
public static async Task<T> Retry<T>(Func<Task<T>> 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<Exception,Task> exceptionHandler)
|
||||
{
|
||||
try
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Tnb.TaskScheduler.Listener
|
||||
/// <summary>
|
||||
/// 生成质检任务
|
||||
/// </summary>
|
||||
public class QcTaskTimeWorker : ISpareTimeWorker
|
||||
public class QcTaskTimeWorker //u: ISpareTimeWorker
|
||||
{
|
||||
private ISqlSugarRepository<QcCheckPlanH> repository => App.GetService<ISqlSugarRepository<QcCheckPlanH>>();
|
||||
private ITimeTaskService timeTaskService => App.GetService<ITimeTaskService>();
|
||||
|
||||
Reference in New Issue
Block a user