修改 路径算法, 当出现多个载具同时出库,可能需要进入电梯时,需要均匀分配电梯
This commit is contained in:
@@ -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++;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user