using System;
using System.Collections.Generic;
using WIDESEA_Common;
using WIDESEA_Common.Tools;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Entity.DomainModels.Equipment;
namespace WIDESEA_WCS.JobsPart.Public
{
public partial class WCSCommon
{
///
/// 生成任务
///
/// 站点信息
/// 设备上料或下料
public static void CreateTask(StationInfo station, bool isInEq, string type = "")
{
var have_task = freeDB.Select()
.Where(t => t.agv_toaddress == station.stationCode || t.agv_fromaddress == station.stationCode) .Any();
if (!have_task)
{
dt_agvtask agvtask = new dt_agvtask();
agvtask.agv_id = Guid.NewGuid();
if (isInEq)
{
agvtask.agv_fromaddress = WCSCommon.GetAddress(station.stationCode, !isInEq, type);
agvtask.agv_toaddress = station.stationCode;
}
else
{
agvtask.agv_fromaddress = station.stationCode;
agvtask.agv_toaddress = WCSCommon.GetAddress(station.stationCode, !isInEq);
}
agvtask.agv_tasknum = "KH-" + IdenxManager.GetTaskNo();
agvtask.agv_code = station.agvCenterName;
agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
agvtask.agv_tasktype = AGVTaskTypeEnum.TaskType_Outbound.ToString();
agvtask.agv_worktype = 1;//工作类型
agvtask.agv_materielid = type;
agvtask.agv_qty = 1;
agvtask.agv_createtime = DateTime.Now;
agvtask.agv_grade = 0;//任务优先级
agvtask.agv_userid = "WCS";
freeDB.Add(agvtask);
CreateTiShenJiTask(agvtask);
}
}
///
/// 创建提升机任务
///
///
public static void CreateTiShenJiTask(dt_agvtask task)
{
//提升机路由
Dictionary router = new Dictionary()
{
//一楼到二楼
{"GDXZJ1R2" ,"GDXZJC2"},
{"GDXZJ1R1" ,"GDXZJC1"},
{"GDXFJ1R2" ,"GDXFJC2"},
{"GDXFJ1R1" ,"GDXFJC1"},
//二楼到三楼
{"GDXZJC2" ,"GDXZJ3C2"},
{"GDXZJC1" ,"GDXZJ3C1"},
{"GDXFJC2" ,"GDXFJ3C2"},
{"GDXFJC1" ,"GDXFJ3C1"},
};
if (router.ContainsKey(task.agv_toaddress))
{
dt_agvtask agvtask = new dt_agvtask();
agvtask.agv_id = Guid.NewGuid();
agvtask.agv_tasknum = task.agv_tasknum + "_T";
agvtask.agv_fromaddress = task.agv_toaddress;
agvtask.agv_toaddress = router[task.agv_toaddress];
agvtask.agv_code = "";
agvtask.agv_taskstate = AGVTaskStateEnum.Create.ToString();
agvtask.agv_tasktype = "提升机";
agvtask.agv_worktype = 1;//工作类型
agvtask.agv_materielid = "";
agvtask.agv_qty = 1;
agvtask.agv_createtime = DateTime.Now;
agvtask.agv_grade = 0;//任务优先级
agvtask.agv_userid = "WCS";
freeDB.Add(agvtask);
}
}
}
}