预任务执行,Agv及电梯任务根据配置执行

This commit is contained in:
yang.lee
2023-11-09 10:03:30 +08:00
parent 68efc42e31
commit e9259ce8ad
5 changed files with 45 additions and 29 deletions

View File

@@ -382,38 +382,42 @@ namespace Tnb.WarehouseMgr
await db.Ado.CommitTranAsync();
//呼梯操作
//获取目标库位为电梯库位的任务
List<(string endlocation_code, string device_id, string id, string? start_floor)> endLocCodes = disTasks
.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)
if(_eleCtlCfg.Environment == ElevatorConsts.EnvironmentName)
{
await CallingLanding(endLocCodes);
}
//执行电梯任务
List<WmsDistaskH>? elevatorTasks = disTasks.Where(it => it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase)).ToList();
if (elevatorTasks?.Count > 0)
{
Logger.Information($"当前电梯任务数:{elevatorTasks?.Count ?? 0}");
Logger.Information("准备执行电梯任务");
Logger.Information("执行电梯任务");
foreach (WmsDistaskH? elevatorTask in elevatorTasks)
//呼梯操作
//获取目标库位为电梯库位的任务
List<(string endlocation_code, string device_id, string id, string? start_floor)> endLocCodes = disTasks
.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)
{
await ExecuteTargetFloorTask(elevatorTask);
}
await CallingLanding(endLocCodes);
}
//执行电梯任务
List<WmsDistaskH>? elevatorTasks = disTasks.Where(it => it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase)).ToList();
if (elevatorTasks?.Count > 0)
{
Logger.Information($"当前电梯任务数:{elevatorTasks?.Count ?? 0}");
Logger.Information("准备执行电梯任务");
Logger.Information("执行电梯任务");
foreach (WmsDistaskH? elevatorTask in elevatorTasks)
{
await ExecuteTargetFloorTask(elevatorTask);
}
}
////调用AGV创建任务链接口
List<WmsDistaskH> agvTasks = disTasks.Where(it => !it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase)).ToList();
if (agvTasks?.Count > 0)
{
await AgvDispatch(agvTasks, agvCts.Token);
}
}
////调用AGV创建任务链接口
List<WmsDistaskH> agvTasks = disTasks.Where(it => !it.area_code.Contains("ELE", StringComparison.OrdinalIgnoreCase)).ToList();
if (agvTasks?.Count > 0)
{
await AgvDispatch(agvTasks, agvCts.Token);
}
#
}
}
catch (Exception ex) when (ex is HttpRequestException hReqEx)