2024-05-14 16:30:56 +08:00
|
|
|
|
using WcsMain.DataBase.TableEntity;
|
2024-06-12 07:37:08 +08:00
|
|
|
|
using WcsMain.Enum.Stacker;
|
2024-05-30 15:34:20 +08:00
|
|
|
|
using WcsMain.EquipOperation.Entity.Stacker;
|
2024-05-14 16:30:56 +08:00
|
|
|
|
|
|
|
|
|
|
namespace WcsMain.ExtendMethod;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// wcs 任务表的扩展方法
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public static class AppWcsTaskExtendMethod
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否是第一个任务
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="wcsTask"></param>
|
|
|
|
|
|
/// <remarks>
|
|
|
|
|
|
/// 序号是 1 表示第一个任务
|
|
|
|
|
|
/// </remarks>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public static bool IsFirstTask(this AppWcsTask wcsTask)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (wcsTask == default) return false;
|
|
|
|
|
|
return wcsTask.TaskSort == 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否是最后一个任务
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="wcsTask"></param>
|
|
|
|
|
|
/// <remarks>
|
|
|
|
|
|
/// 最后一个任务下一任务号是空值
|
|
|
|
|
|
/// </remarks>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public static bool IsLastTask(this AppWcsTask wcsTask)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (wcsTask == default) return false;
|
|
|
|
|
|
return wcsTask.NextPlcId == default;
|
|
|
|
|
|
}
|
2024-05-23 07:27:57 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 生成一个入库任务
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="wcsTask"></param>
|
|
|
|
|
|
/// <param name="stackerId"></param>
|
|
|
|
|
|
/// <param name="forkId"></param>
|
|
|
|
|
|
/// <param name="destinationDetail"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public static StackerPlcTask ToStackerInTask(this AppWcsTask wcsTask, int stackerId, int forkId, AppLocation destinationDetail)
|
|
|
|
|
|
{
|
|
|
|
|
|
StackerPlcTask stackerTask = new()
|
|
|
|
|
|
{
|
|
|
|
|
|
StackerId = stackerId,
|
|
|
|
|
|
PlcId = wcsTask.PlcId,
|
|
|
|
|
|
TaskType = (int)WcsTaskTypeEnum.inTask,
|
|
|
|
|
|
GetStand = 0,
|
|
|
|
|
|
InTunnelId = Convert.ToInt16(stackerId),
|
|
|
|
|
|
OutTunnelId = Convert.ToInt16(stackerId),
|
|
|
|
|
|
SetStand = 0,
|
|
|
|
|
|
GetQueue = 2,
|
|
|
|
|
|
GetLine = Convert.ToInt16(forkId),
|
|
|
|
|
|
GetLayer = 1,
|
|
|
|
|
|
GetDeep = 1,
|
|
|
|
|
|
SetQueue = Convert.ToInt16(destinationDetail.Queue),
|
|
|
|
|
|
SetLine = Convert.ToInt16(destinationDetail.Line),
|
|
|
|
|
|
SetLayer = Convert.ToInt16(destinationDetail.Layer),
|
|
|
|
|
|
SetDeep = Convert.ToInt16(destinationDetail.Depth),
|
|
|
|
|
|
Size = Convert.ToInt16(wcsTask.VehicleSize),
|
|
|
|
|
|
Weight = Convert.ToInt16(wcsTask.Weight),
|
|
|
|
|
|
Code = wcsTask.PlcVehicleNo ?? 0,
|
|
|
|
|
|
};
|
|
|
|
|
|
return stackerTask;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 生成一个入库任务
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="wcsTask"></param>
|
|
|
|
|
|
/// <param name="stackerId"></param>
|
|
|
|
|
|
/// <param name="forkId"></param>
|
|
|
|
|
|
/// <param name="originDetail"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public static StackerPlcTask ToStackerOutTask(this AppWcsTask wcsTask, int stackerId, int forkId, AppLocation originDetail)
|
|
|
|
|
|
{
|
|
|
|
|
|
StackerPlcTask stackerTask = new()
|
|
|
|
|
|
{
|
|
|
|
|
|
StackerId = stackerId,
|
|
|
|
|
|
PlcId = wcsTask.PlcId,
|
|
|
|
|
|
TaskType = (int)WcsTaskTypeEnum.outTask,
|
|
|
|
|
|
GetStand = 0,
|
|
|
|
|
|
InTunnelId = Convert.ToInt16(stackerId),
|
|
|
|
|
|
OutTunnelId = Convert.ToInt16(stackerId),
|
|
|
|
|
|
SetStand = 0,
|
|
|
|
|
|
GetQueue = Convert.ToInt16(originDetail.Queue),
|
|
|
|
|
|
GetLine = Convert.ToInt16(originDetail.Queue),
|
|
|
|
|
|
GetLayer = Convert.ToInt16(originDetail.Queue),
|
|
|
|
|
|
GetDeep = Convert.ToInt16(originDetail.Queue),
|
|
|
|
|
|
SetQueue = 2,
|
|
|
|
|
|
SetLine = Convert.ToInt16(forkId),
|
|
|
|
|
|
SetLayer = 2,
|
|
|
|
|
|
SetDeep = 1,
|
|
|
|
|
|
Size = Convert.ToInt16(wcsTask.VehicleSize),
|
|
|
|
|
|
Weight = Convert.ToInt16(wcsTask.Weight),
|
|
|
|
|
|
Code = wcsTask.PlcVehicleNo ?? 0,
|
|
|
|
|
|
};
|
|
|
|
|
|
return stackerTask;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 生成一个移库任务
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="wcsTask"></param>
|
|
|
|
|
|
/// <param name="stackerId"></param>
|
|
|
|
|
|
/// <param name="originDetail"></param>
|
|
|
|
|
|
/// <param name="destinationDetail"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public static StackerPlcTask ToStackerMoveTask(this AppWcsTask wcsTask, int stackerId, AppLocation originDetail, AppLocation destinationDetail)
|
|
|
|
|
|
{
|
|
|
|
|
|
StackerPlcTask stackerTask = new()
|
|
|
|
|
|
{
|
|
|
|
|
|
StackerId = stackerId,
|
|
|
|
|
|
PlcId = wcsTask.PlcId,
|
|
|
|
|
|
TaskType = (int)WcsTaskTypeEnum.moveTask,
|
|
|
|
|
|
GetStand = 0,
|
|
|
|
|
|
InTunnelId = Convert.ToInt16(stackerId),
|
|
|
|
|
|
OutTunnelId = Convert.ToInt16(stackerId),
|
|
|
|
|
|
SetStand = 0,
|
|
|
|
|
|
GetQueue = Convert.ToInt16(originDetail.Queue),
|
|
|
|
|
|
GetLine = Convert.ToInt16(originDetail.Queue),
|
|
|
|
|
|
GetLayer = Convert.ToInt16(originDetail.Queue),
|
|
|
|
|
|
GetDeep = Convert.ToInt16(originDetail.Queue),
|
|
|
|
|
|
SetQueue = Convert.ToInt16(destinationDetail.Queue),
|
|
|
|
|
|
SetLine = Convert.ToInt16(destinationDetail.Line),
|
|
|
|
|
|
SetLayer = Convert.ToInt16(destinationDetail.Layer),
|
|
|
|
|
|
SetDeep = Convert.ToInt16(destinationDetail.Depth),
|
|
|
|
|
|
Size = Convert.ToInt16(wcsTask.VehicleSize),
|
|
|
|
|
|
Weight = Convert.ToInt16(wcsTask.Weight),
|
|
|
|
|
|
Code = wcsTask.PlcVehicleNo ?? 0,
|
|
|
|
|
|
};
|
|
|
|
|
|
return stackerTask;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-05-14 16:30:56 +08:00
|
|
|
|
}
|