修改 路径算法, 当出现多个载具同时出库,可能需要进入电梯时,需要均匀分配电梯

This commit is contained in:
2023-11-13 15:18:28 +08:00
parent 3c4147c963
commit 1ac220b170
4 changed files with 99 additions and 2 deletions

View File

@@ -265,8 +265,11 @@ namespace Tnb.WarehouseMgr
List<WmsPretaskH> preTasks = new();
List<string> locIds = new();
//当出现多个载具同时出库,可能需要进入电梯时
int ele = 3;
foreach (WmsCarryH carry in carrys)
{
bool isMatch = await IsCarryAndLocationMatchByCarryStd(carry, loc);
if (!isMatch)
{
@@ -286,7 +289,7 @@ namespace Tnb.WarehouseMgr
if (sPoint != null && ePoint != null)
{
List<WmsPointH> points = await _wareHouseService.PathAlgorithms(sPoint.id, ePoint.id);
List<WmsPointH> points = await _wareHouseService.PathAlgorithmsEle(sPoint.id, ePoint.id, ele);
locIds.AddRange(points.Select(x => x.location_id).ToList()!);
//根据获取的路径点生成预任务,生成顺序必须预路径算法返回的起终点的顺序一致(预任务顺序)
if (points?.Count > 0)
@@ -334,6 +337,12 @@ namespace Tnb.WarehouseMgr
curPreTasks[^1].is_sign = 0; // 修改最后一个元素的是否签收值
}
preTasks.AddRange(curPreTasks);
//判断当前任务中 是否有电梯任务。有的话ele+1
var eleP = curPreTasks.Find(x => x.area_code.Contains("ELE"));
if (eleP != null)
{
ele++;
}
}
}