diff --git a/WarehouseMgr/Tnb.WarehouseMgr/AgvHeartbeatMonitorService.cs b/WarehouseMgr/Tnb.WarehouseMgr/AgvHeartbeatMonitorService.cs deleted file mode 100644 index ae3d71ac..00000000 --- a/WarehouseMgr/Tnb.WarehouseMgr/AgvHeartbeatMonitorService.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using JNPF; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Tnb.Common.Extension; -using Tnb.Common.Utils; -using Tnb.WarehouseMgr.Entities.Configs; - -namespace Tnb.WarehouseMgr -{ - /// - /// Agv心跳检测服务 - /// - public class AgvHeartbeatMonitorService : BackgroundService - { - private readonly ElevatorControlConfiguration _elevatorControlConfiguration; - public bool IsStarted { get; set; } - - public AgvHeartbeatMonitorService() - { - _elevatorControlConfiguration = App.Configuration.Build(); - } - protected override async Task ExecuteAsync(CancellationToken stoppingToken) - { - IsStarted = true; - var parameter = new Dictionary(); - parameter["DevName"] = _elevatorControlConfiguration.DevName; - parameter["TagName"] = "AGVKeepalive"; - parameter["Value"] = "123"; - parameter["token"] = _elevatorControlConfiguration.token; - Task.Run(async () => - { - while (!stoppingToken.IsCancellationRequested) - { - try - { - var result = await HttpClientHelper.GetAsync(_elevatorControlConfiguration.WriteTagUrl, pars: parameter); - await Console.Out.WriteLineAsync($"心跳检测结果:{result}"); - await Task.Delay(TimeSpan.FromSeconds(5)); - } - catch (Exception ex) - { - - throw; - } - } - }); - - } - - public override Task StopAsync(CancellationToken cancellationToken) - { - IsStarted = false; - return Task.CompletedTask; - } - } - - public static class AgvHeartbeatMonitorServiceExtenstions - { - public static IServiceCollection AddAgvHeartbeatMonitor(this IServiceCollection services) - { - return services.AddSingleton(); - } - } - - -} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 73368235..1d025174 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -128,7 +128,29 @@ namespace Tnb.WarehouseMgr return Task.FromResult(isMatch); } - + /// + /// 根据当前目标楼层获取,电梯接口真正的楼层 + /// + /// + /// + [NonAction] + protected Task GetRealFloor(int floor) + { + var realFloor = 0; + if (floor == 4) + { + realFloor = 5; + } + else if (floor == 3) + { + realFloor = 4; + } + else if (floor == 2) + { + realFloor = 3; + } + return Task.FromResult(realFloor); + } /// /// 发布消息 diff --git a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs index f2ef4cd2..e70fd132 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs @@ -90,22 +90,24 @@ namespace Tnb.WarehouseMgr var elevator = await _db.Queryable().LeftJoin((a, b) => a.id == b.bill_id) .LeftJoin((a, b, c) => b.location_id == c.startlocation_id) .LeftJoin((a, b, c, d) => c.startlocation_id == d.location_id) - .Where((a, b, c, d) => d.point_code == input.sourceName && c.bill_code == input.taskCode) + .Where((a, b, c, d) => d.point_code == input.sourceName && input.taskCode.Contains(c.bill_code)) .FirstAsync(); - (int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await _elevatorControlService.GetElevatorStatus(elevator.elevator_code, CancellationToken.None); + //Log.Information($"elevator!=null?{elevator!=null}"); + + (int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await _elevatorControlService.GetElevatorStatus("Elevator1", CancellationToken.None); Log.Information($"电梯当前状态->系统状态:{sysStatus.ToEnum().ToString()},运行状态:{runStatus.ToEnum().ToString()},Agv状态:{agvStatus.ToEnum().ToString()},当前楼层:{floorNo}"); - if (floorNo == 3) { + //var endFloor = elevator.end_floor; + var floor = 5; if (doorStatus.ToEnum() != EnumDoorStatus.开门到位保持) { - await _elevatorControlService.SendOpenCloseCmd(elevator.elevator_code, 3); //发送电梯前门开门指令 + await _elevatorControlService.SendOpenCloseCmd("Elevator1", 3); //发送电梯前门开门指令 } - if (sysStatus.ToEnum() == EnumSysStatus.正常状态 && runStatus.ToEnum() == EnumRunStatus.停梯 - && doorStatus.ToEnum() == EnumDoorStatus.开门到位保持 && floorNo == 3) + if (sysStatus.ToEnum() == EnumSysStatus.正常状态 && runStatus.ToEnum() == EnumRunStatus.停梯) { - elevator.current_floor = floorNo; - await _db.Updateable(elevator).UpdateColumns(it => it.current_floor).ExecuteCommandAsync(); + //elevator.current_floor = floor; + //await _db.Updateable(elevator).UpdateColumns(it => it.current_floor).ExecuteCommandAsync(); return await ToApiResult(HttpStatusCode.OK, "成功"); } return await ToApiResult(HttpStatusCode.InternalServerError, "电梯还未开门,请重试!"); @@ -154,7 +156,6 @@ namespace Tnb.WarehouseMgr { await _elevatorControlService.SendOpenCloseCmd("Elevator1", 3); //发送电梯前门开门指令 } - Log.Information("fadsfadsfadsfadsfdsa"); if (sysStatus == (int)EnumSysStatus.正常状态 && runStatus == (int)EnumRunStatus.停梯 && doorStatus == (int)EnumDoorStatus.开门到位保持) { @@ -167,10 +168,10 @@ namespace Tnb.WarehouseMgr } catch (Exception ex) { - Log.Error("更新延迟队列异常",ex); + Log.Error("更新延迟队列异常", ex); throw; - } - + } + return await ToApiResult(HttpStatusCode.OK, "成功"); } return await ToApiResult(HttpStatusCode.InternalServerError, "电梯还未开门,请重试!"); @@ -262,13 +263,16 @@ namespace Tnb.WarehouseMgr disTaskIds = disTasks.Select(x => x.id).ToList() }; await _wareHouseService.TaskExecuteAfter(taskExecuteAfterUpInput); + Log.Information("Agv取货完成"); var elevatorQueueItem = await _db.Queryable().FirstAsync(it => disTasks.Select(x => x.id).Contains(it.distask_id) && it.task_status == "执行中"); if (elevatorQueueItem != null) { + Log.Information("开始进入关门流程"); + var disTask = disTasks.Find(x => x.id == elevatorQueueItem.distask_id); - if (disTask?.status == WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID) + //if (disTask?.status == WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID) { - var doorStatus = await _elevatorControlService.GetTagAsync(elevatorQueueItem.elevator_code, ElevatorConsts.DoorStatus); + var doorStatus = await _elevatorControlService.GetTagAsync("Elevator1", ElevatorConsts.DoorStatus); if (doorStatus.ToEnum() != EnumDoorStatus.关门到位保持) { await _elevatorControlService.SendOpenCloseCmd(elevatorQueueItem.elevator_code, 4); //向电梯发送前门关门指令 diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ElevatorControlService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ElevatorControlService.cs index 94f74050..06231ed2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/ElevatorControlService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/ElevatorControlService.cs @@ -169,16 +169,15 @@ namespace Tnb.WarehouseMgr dicCommand["token"] = _elevatorCtlCfg.token; dicCommand["TagName"] = "DoorExecute"; dicCommand["Value"] = value.ToString(); - var result = await HttpClientHelper.GetAsync(_elevatorCtlCfg.WriteTagUrl, pars: dicCommand); - if (result.IsNotEmptyOrNull()) + try { - JObject jo = JObject.Parse(result); - if (jo != null) - { - return jo.Value("Result").Equals("Ok", StringComparison.OrdinalIgnoreCase); - } + await HttpClientHelper.GetAsync(_elevatorCtlCfg.WriteTagUrl, pars: dicCommand); } - return false; + catch (Exception) + { + return false; + } + return true; } /// /// 设置Agv控制请求状态 diff --git a/WarehouseMgr/Tnb.WarehouseMgr/PDATransferSignService.cs b/WarehouseMgr/Tnb.WarehouseMgr/PDATransferSignService.cs index a5ae06c8..13a386a9 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/PDATransferSignService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/PDATransferSignService.cs @@ -217,15 +217,17 @@ namespace Tnb.WarehouseMgr catch (Exception ex) { await curDb.Ado.RollbackTranAsync(); - TimedTaskErrorInfo ei = new() + if(_userManager?.ToKen.IsNullOrEmpty() ?? false) { - RequestURL = App.HttpContext?.Request?.Path, - RequestMethod = App.HttpContext?.Request?.Method, - userIdentity = await GetUserIdentity(_userManager.ToKen), - }; - var timedTaskEx = ex.ToTimedTaskException(ei); - //cts?.Cancel(); - throw timedTaskEx; + TimedTaskErrorInfo ei = new() + { + RequestURL = App.HttpContext?.Request?.Path, + RequestMethod = App.HttpContext?.Request?.Method, + userIdentity = await GetUserIdentity(_userManager.ToKen), + }; + var timedTaskEx = ex.ToTimedTaskException(ei); + throw timedTaskEx; + } } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs index a1babb65..97d27d03 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/TimedTaskBackgroundService.cs @@ -45,6 +45,7 @@ namespace Tnb.WarehouseMgr { public bool IsStarted { get; set; } private IEventPublisher _eventPublisher = default!; + private ElevatorControlConfiguration _elevatorControlConfiguration = App.Configuration.Build(); private readonly IServiceProvider _serviceProvider; private static Dictionary> _timedFuncMap = new(StringComparer.OrdinalIgnoreCase); static TimedTaskBackgroundService() @@ -89,16 +90,16 @@ namespace Tnb.WarehouseMgr _eventPublisher = App.GetRequiredService(); var whSvc = App.GetRequiredService(); TimedTask(token => whSvc.GenTaskExecute(token), stoppingToken, 1); - //齐套出库 - //var kittingOutService = App.GetRequiredService(); - //TimedTask(token => kittingOutService.KittingOutByAdd(token), stoppingToken, 1); - //TimedTask(token => kittingOutService.KittingOutByIsToBeShipped(token), stoppingToken, 1); + ////齐套出库 + var kittingOutService = App.GetRequiredService(); + TimedTask(token => kittingOutService.KittingOutByAdd(token), stoppingToken, 1); + TimedTask(token => kittingOutService.KittingOutByIsToBeShipped(token), stoppingToken, 1); //齐套分拣 - //var setSortingService = App.GetRequiredService(); - //TimedTask(token => setSortingService.PackSortingByAdd(token), stoppingToken, 1); + var setSortingService = App.GetRequiredService(); + TimedTask(token => setSortingService.PackSortingByAdd(token), stoppingToken, 2); - var _elevatorControlConfiguration = App.Configuration.Build(); - TimedTask(async token => + + TimedTask(async token => { var parameter = new Dictionary(); parameter["DevName"] = _elevatorControlConfiguration.DevName; @@ -107,7 +108,7 @@ namespace Tnb.WarehouseMgr parameter["token"] = _elevatorControlConfiguration.token; var result = await HttpClientHelper.GetAsync(_elevatorControlConfiguration.WriteTagUrl, pars: parameter); await Console.Out.WriteLineAsync($"心跳检测结果:{result}"); - },stoppingToken,30,TimeSpanUnit.Seconds); + }, stoppingToken, 30, TimeSpanUnit.Seconds); //最低库存检查 var transferSignService = App.GetRequiredService(); TimedTask(token => transferSignService.IsMinStorage(token), stoppingToken, 30, TimeSpanUnit.Minutes); @@ -130,19 +131,19 @@ namespace Tnb.WarehouseMgr { if (ex is TimedTaskException timedTaskEx and not null) { - //await _eventPublisher.PublishAsync(new LogEventSource("Log:CreateExLog", timedTaskEx.options!, new SysLogEntity - //{ - // Id = SnowflakeIdHelper.NextId(), - // Category = 4, - // UserId = timedTaskEx.UserId, - // UserName = timedTaskEx.UserName, - // IPAddress = NetHelper.Ip, - // RequestURL = timedTaskEx.RequestURL, - // RequestMethod = timedTaskEx.RequestMethod, - // Json = timedTaskEx + "\n" + timedTaskEx.InnerException?.StackTrace + "\n" + timedTaskEx?.TargetSite?.GetParameters().ToString(), - // //PlatForm = string.Format("{0}-{1}", userAgent.OS.ToString(), userAgent.RawValue), - // CreatorTime = DateTime.Now - //})); + await _eventPublisher.PublishAsync(new LogEventSource("Log:CreateExLog", timedTaskEx.options!, new SysLogEntity + { + Id = SnowflakeIdHelper.NextId(), + Category = 4, + UserId = timedTaskEx.UserId, + UserName = timedTaskEx.UserName, + IPAddress = NetHelper.Ip, + RequestURL = timedTaskEx.RequestURL, + RequestMethod = timedTaskEx.RequestMethod, + Json = timedTaskEx + "\n" + timedTaskEx.InnerException?.StackTrace + "\n" + timedTaskEx?.TargetSite?.GetParameters().ToString(), + //PlatForm = string.Format("{0}-{1}", userAgent.OS.ToString(), userAgent.RawValue), + CreatorTime = DateTime.Now + })); } }); await TaskDelay(timeType, interval); @@ -182,7 +183,7 @@ namespace Tnb.WarehouseMgr public override Task StopAsync(CancellationToken cancellationToken) { - + IsStarted = false; return Task.CompletedTask; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 9f3238a4..49506b6c 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -343,7 +343,7 @@ namespace Tnb.WarehouseMgr //获取目标库位为电梯库位的任务 var endLocCodes = disTasks - .Where(it => it.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase) && + .Where(it => it.endlocation_code.StartsWith("DT", StringComparison.OrdinalIgnoreCase) && !it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase) ).Select(it => (it.endlocation_code, it.device_id, it.id, it.start_floor)).ToList(); if (endLocCodes?.Count > 0) @@ -454,28 +454,7 @@ namespace Tnb.WarehouseMgr throw; } } - /// - /// 根据当前目标楼层获取,电梯接口真正的楼层 - /// - /// - /// - private Task GetRealFloor(int floor) - { - var realFloor = 0; - if (floor == 4) - { - realFloor = 5; - } - else if (floor == 3) - { - realFloor = 4; - } - else if (floor == 2) - { - realFloor = 3; - } - return Task.FromResult(realFloor); - } + /// /// 执行到目标楼层电梯任务 /// @@ -488,6 +467,7 @@ namespace Tnb.WarehouseMgr try { var elevatorQueueItem = await _db.Queryable().FirstAsync(it => it.task_status == "执行中"); + Log.Information($"是否存在电梯任务项:{elevatorQueueItem != null}"); if (elevatorQueueItem != null) { //var disTask = disTasks.Find(x => x.id == elevatorQueueItem.distask_id); @@ -499,10 +479,12 @@ namespace Tnb.WarehouseMgr do { doorStatus = await _elevatorControlService.GetTagAsync(elevatorQueueItem.elevator_code, ElevatorConsts.DoorStatus); + await Task.Delay(2000); } while (doorStatus != 4); + Log.Information($"当前门状态:{doorStatus}"); var floor = await GetRealFloor(disTask.end_floor.ParseToInt()); Log.Information($"目标楼层:{floor}"); - Log.Information($"当前门状态:{doorStatus}"); + //发送到目标楼的指令 var reuslt = await _elevatorControlService.WriteTagAsync(elevatorQueueItem.elevator_code, ElevatorConsts.FloorExecute, floor); //电梯任务手动执行任务状态上报 @@ -511,17 +493,20 @@ namespace Tnb.WarehouseMgr do { tuple = await _elevatorControlService.GetElevatorStatus(elevatorQueueItem.elevator_code, CancellationToken.None); - } while (tuple.sysStatus != 3 && tuple.runStatus != 0 && tuple.floorNo != disTask.end_floor.ParseToInt()); + await Task.Delay(2000); + } while (tuple.sysStatus != 3 && tuple.runStatus != 0); - Log.Information($"sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},floorNo:{tuple.floorNo}"); + Log.Information($"sysStatus:{tuple.sysStatus},runStatus:{tuple.runStatus},floorNo:{tuple.floorNo},disTask.end_floor={disTask.end_floor}"); - if (tuple.sysStatus.ToEnum() == EnumSysStatus.正常状态 && tuple.runStatus.ToEnum() == EnumRunStatus.停梯 - && tuple.floorNo == disTask.end_floor.ParseToInt()) + if (tuple.sysStatus.ToEnum() == EnumSysStatus.正常状态 && tuple.runStatus.ToEnum() == EnumRunStatus.停梯) { - dynamic input = new ExpandoObject(); - input.disTaskIds = new List { disTask.id }; - await TaskExecuteAfter(input); - await TaskComplate(input); + Log.Information($"disTask.require_id={disTask.require_id}"); + + List disTaskIds = new() { disTask.id }; + TaskExecuteAfterUpInput teaUpInput = new() { disTaskIds = disTaskIds }; + await TaskExecuteAfter(teaUpInput); + TaskCompleUpInput tcUpInput = new() { disTaskIds = disTaskIds }; + await TaskComplate(tcUpInput); } } } @@ -712,28 +697,35 @@ namespace Tnb.WarehouseMgr locIts.Add(loc); } - + Log.Information("更新载具及库位开始....."); await _db.Updateable(carryIts).UpdateColumns(it => new { it.is_lock, it.location_id, it.location_code }).ExecuteCommandAsync(); //更新条码的库位和仓库信息 await _db.Updateable(carryCodeIts).UpdateColumns(it => new { it.warehouse_id, it.location_id, it.location_code }).Where(it => multiList.Select(x => x.carry_id).Contains(it.carry_id)).ExecuteCommandAsync(); //更新库位信息,使用状态为 使用,锁定状态为未锁定 await _db.Updateable(locIts).UpdateColumns(it => new { it.is_use, it.is_lock }).ExecuteCommandAsync(); + Log.Information("更新载具及库位结束....."); + Log.Information($"_userManager.LoginType={_userManager.LoginType}"); //更新业务主表的单据状态 foreach (var dt in disTasks) { var disTaskCodes = await _db.Queryable().Where(it => it.bill_id == dt.id).ToListAsync(); var upInput = new WareHouseUpInput { bizTypeId = dt.biz_type, requireId = dt.require_id!, distaskCodes = disTaskCodes, carryIds = disTasks.Select(x => x.carry_id).ToList() }; + upInput.loginType = !_userManager.LoginType.IsNullOrEmpty() ? "app" : "web"; + Log.Information($"upInput.loginType={upInput.loginType}"); if (dt.is_sign == 1 && dt.chain_type == "3") { + Log.Information("执行业务回更操作....."); await DoUpdate(upInput); } } } await _db.Ado.CommitTranAsync(); } - catch (Exception) + catch (Exception ex) { + Log.Error($"任务结束失败", ex); + Log.Error($"任务结束失败堆栈异常", ex.StackTrace); await _db.Ado.RollbackTranAsync(); throw; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs index 4010eacc..964e62b0 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSetSortingService.cs @@ -103,20 +103,22 @@ namespace Tnb.WarehouseMgr //Console.WriteLine($"ThreadID:{Thread.CurrentThread.ManagedThreadId}\t Thread pool: {Thread.CurrentThread.IsThreadPoolThread}"); var curDb = _db.CopyNew(); - string firstLocationId = "27010980724501", secondLocationId = "27010987857941"; - var endLocation = await curDb.Queryable().SingleAsync(it => it.id == secondLocationId); - var setSortings = await curDb.Queryable() - .Where(a => a.status == WmsWareHouseConst.BILLSTATUS_ADD_ID) - .Select() - .OrderBy(a => a.seq) - .ToListAsync(); - var items = await curDb.Queryable().Where(it => it.status == WmsWareHouseConst.BILLSTATUS_ON_ID).ToListAsync(); - var onFlag = items?.Count > 0; try { await curDb.Ado.BeginTranAsync(); + string firstLocationId = "27010980724501", secondLocationId = "27010987857941"; + var endLocation = await curDb.Queryable().FirstAsync(it => it.id == secondLocationId); + + var setSortings = await curDb.Queryable() + .Where(a => a.status == WmsWareHouseConst.BILLSTATUS_ADD_ID) + .Select() + .OrderBy(a => a.seq) + .ToListAsync(); + var items = await curDb.Queryable().Where(it => it.status == WmsWareHouseConst.BILLSTATUS_ON_ID).ToListAsync(); + var onFlag = items?.Count > 0; + if (setSortings?.Count > 0 && !onFlag) { var singleSorting = setSortings[0]; @@ -263,19 +265,24 @@ namespace Tnb.WarehouseMgr { JNPF.Logging.Log.Error("齐套分拣执行时出现错误", ex); await curDb.Ado.RollbackTranAsync(); - TimedTaskErrorInfo ei = new() + + if (_userManager?.ToKen.IsNullOrEmpty() ?? false) { - RequestURL = App.HttpContext?.Request?.Path, - RequestMethod = App.HttpContext?.Request?.Method, - userIdentity = await GetUserIdentity(_userManager.ToKen), - }; - var timedTaskEx = ex.ToTimedTaskException(ei); - //cts?.Cancel(); - throw timedTaskEx; + TimedTaskErrorInfo ei = new() + { + RequestURL = App.HttpContext?.Request?.Path, + RequestMethod = App.HttpContext?.Request?.Method, + userIdentity = await GetUserIdentity(_userManager.ToKen), + }; + var timedTaskEx = ex.ToTimedTaskException(ei); + //cts?.Cancel(); + throw timedTaskEx; + } + } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + //await Publish(nameof(IWareHouseService.GenTaskExecute)); } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs index dfcc3037..c5ce1a7a 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs @@ -80,12 +80,10 @@ namespace Tnb.WarehouseMgr [HttpPost, Timed(Name = nameof(KittingOutByAdd))] public async Task KittingOutByAdd(CancellationToken? ct = default) { - //if (UserManager.AsscessToken.IsNullOrWhiteSpace()) return; - //var curUser = await GetUserIdentity(); - if (ct?.IsCancellationRequested ?? false) - { - ct?.ThrowIfCancellationRequested(); - } + //if (ct?.IsCancellationRequested ?? false) + //{ + // ct?.ThrowIfCancellationRequested(); + //} var curDb = _db.CopyNew(); try { @@ -171,15 +169,18 @@ namespace Tnb.WarehouseMgr { Log.Error("齐套出库,新增时出现错误", ex); await curDb.Ado.RollbackTranAsync(); - TimedTaskErrorInfo ei = new() + if(_userManager?.ToKen.IsNullOrEmpty() ?? false) { - RequestURL = App.HttpContext?.Request?.Path, - RequestMethod = App.HttpContext?.Request?.Method, - userIdentity = await GetUserIdentity(_userManager.ToKen), - }; - var timedTaskEx = ex.ToTimedTaskException(ei); - //cts?.Cancel(); - throw timedTaskEx; + TimedTaskErrorInfo ei = new() + { + RequestURL = App.HttpContext?.Request?.Path, + RequestMethod = App.HttpContext?.Request?.Method, + userIdentity = await GetUserIdentity(_userManager.ToKen), + }; + var timedTaskEx = ex.ToTimedTaskException(ei); + //cts?.Cancel(); + throw timedTaskEx; + } } } /// @@ -278,19 +279,23 @@ namespace Tnb.WarehouseMgr { Log.Error("齐套出库,待配送时出现错误", ex); await curDb.Ado.RollbackTranAsync(); - TimedTaskErrorInfo ei = new() + if(_userManager?.ToKen.IsNullOrEmpty() ?? false) { - RequestURL = App.HttpContext?.Request?.Path, - RequestMethod = App.HttpContext?.Request?.Method, - userIdentity = await GetUserIdentity(_userManager.ToKen), - }; - var timedTaskEx = ex.ToTimedTaskException(ei); - //cts?.Cancel(); - throw timedTaskEx; + TimedTaskErrorInfo ei = new() + { + RequestURL = App.HttpContext?.Request?.Path, + RequestMethod = App.HttpContext?.Request?.Method, + userIdentity = await GetUserIdentity(_userManager.ToKen), + }; + var timedTaskEx = ex.ToTimedTaskException(ei); + //cts?.Cancel(); + throw timedTaskEx; + + } } finally { - await Publish(nameof(IWareHouseService.GenTaskExecute)); + //await Publish(nameof(IWareHouseService.GenTaskExecute)); } } diff --git a/apihost/Tnb.API.Entry/Startup.cs b/apihost/Tnb.API.Entry/Startup.cs index 1647effe..88292407 100644 --- a/apihost/Tnb.API.Entry/Startup.cs +++ b/apihost/Tnb.API.Entry/Startup.cs @@ -65,10 +65,9 @@ public class Startup : AppStartup //注册任务消息通知 added by ly on 20230814 services.AddTaskMessageNotify(); + SnowflakeIdHelper.InitYitIdWorker(); //定时任务 services.AddHostedService(); - //Agv心跳监听服务 - //services.AddHostedService(); } @@ -116,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)