using System;
using SqlSugar;
namespace HH.WCS.Mobox3.RiDong.models;
///
/// 任务模型
///
[SugarTable("TN_Task")]
public class Task : BaseModel
{
///
/// 任务状态(0:等待、1:已推送、2:执行中、3:完成、4:错误、5:取消)
///
public int N_B_STATE { get; set; } = 0;
///
/// 任务状态(中文)(0:等待、1:已推送、2:执行中、3:完成、4:错误、5:取消)
///
public string S_B_STATE { get; set; } = "等待";
///
/// 作业编码
///
public string S_OP_CODE { get; set; }
///
/// 任务号
///
public string S_CODE { get; set; }
///
/// 任务类型(数值)(1:常规入库、2:常规出库、3:盘点入库、4:盘点出库、5:指引出库,6:紧急出库,7:空托出库)
///
public int N_TYPE { get; set; }
///
/// 任务类型(字符串)(1:常规入库、2:常规出库、3:盘点入库、4:盘点出库、5:指引出库,6:紧急出库,7:空托出库)
///
public string S_TYPE { get; set; }
///
/// 起点货位
///
public string S_START_LOC { get; set; }
///
/// 终点货位
///
public string S_END_LOC { get; set; }
///
/// 设备类型(1:输送线,2:agv,3:提升机)
///
public int N_SCHEDULE_TYPE { get; set; }
///
/// 设备类型(1:输送线,2:agv,3:提升机)
///
public string S_SCHEDULE_TYPE { get; set; }
///
/// 任务开始时间
///
public DateTime? T_START_TIME { get; set; }
///
/// 任务结束时间
///
public DateTime? T_END_TIME { get; set; }
///
/// 作业优先级
///
public int N_PRIORITY { get; set; }
///
/// 容器编码
///
public string S_CNTR_CODE { get; set; }
///
/// 任务名称
///
public string S_OP_NAME { get; set; }
///
/// 起点仓库
///
public string S_START_WH { get; set; } = "RDCK";
///
/// 起点库区
///
public string S_START_AREA { get; set; } = "RDKQ";
///
/// 终点仓库
///
public string S_END_WH { get; set; } = "RDCK";
///
/// 终点库区
///
public string S_END_AREA { get; set; } = "RDKQ";
///
/// 配盘单号
///
public string S_DC_NO { get; set; }
///
/// 巷道
///
public int N_ROADWAY{ get; set; }
internal static string GetStateStr(int state)
{
//0等待 1已推送 2执行 3完成 4错误
var status = "";
switch (state)
{
case 0:
status = "等待";
break;
case 1:
status = "已推送";
break;
case 2:
status = "执行";
break;
case 3:
status = "完成";
break;
case 4:
status = "错误";
break;
case 5:
status = "取消";
break;
case 6:
status = "紧急出库";
break;
}
return status;
}
internal static string GetStateType(int state)
{
//(1:常规入库、2:常规出库、3:盘点入库、4:盘点出库、5:特殊任务)
var status = "";
switch (state)
{
case 1:
status = "常规入库";
break;
case 2:
status = "常规出库";
break;
case 3:
status = "盘点入库";
break;
case 4:
status = "盘点出库";
break;
case 5:
status = "指引出库";
break;
case 6:
status = "紧急出库";
break;
case 7:
status = "空托出库";
break;
}
return status;
}
///
/// 根据任务类型获取设备状态
///
/// 任务类型
/// 第几条任务
///
public static int GetScheduleTypetoInt(int v, int num)
{
int result = 0;
// 入库
if (v == 1 || v == 3)
{
// 第一条任务是输送线
if (num == 1)
{
// 返回输送线的标志
result = 1;
}
// 第二条任务是agv
if(num == 2)
{
// 返回agv的标志
result = 2;
}
}
// 出库
else if (v == 2 || v == 4 || v == 5 || v == 7)
{
// 第一条任务是agv
if (num == 1)
{
// 返回agv的标志
result = 2;
}
// 第二条任务是输送线
if(num == 2)
{
// 返回输送线的标志
result = 1;
}
}
return result;
}
///
/// 根据任务类型获取设备状态
///
/// 任务类型
/// 第几条任务
///
public static string GetScheduleTypetoStr(int v, int num)
{
string result = "";
// 入库
if (v == 1 || v == 3)
{
// 第一条任务是输送线
if (num == 1)
{
// 返回输送线的标志
result = "输送线";
}
// 第二条任务是agv
if(num == 2)
{
// 返回agv的标志
result = "agv";
}
}
// 出库
else if (v == 2 || v == 4 || v == 5 || v == 7)
{
// 第一条任务是agv
if (num == 1)
{
// 返回agv的标志
result = "agv";
}
// 第二条任务是输送线
if(num == 2)
{
// 返回输送线的标志
result = "输送线";
}
}
return result;
}
}