using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_Tasks.ShuttleCarJob;
using WIDESEAWCS_Tasks.StackerCraneJob;
namespace WIDESEAWCS_Tasks
{
public partial class CommonStackerCraneJob
{
///
/// 心跳
///
///
public void Heartbeat(SpeStackerCrane commonStackerCrane)
{
var HeartBeat = commonStackerCrane.GetValue(StackerCraneDBName.HeartBeat);
commonStackerCrane.SetValue(StackerCraneDBName.WCSHeartBeat, !HeartBeat);
}
///
/// 堆垛机与穿梭车信息交互
///
///
public void ShuttleCarSignal(SpeStackerCrane commonStackerCrane)
{
//任务查询目的地找到车
if (commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtGetAGV)
|| commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtGetGoods)
|| commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutGoods)
|| commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutAGV))
{
Dt_Task? task = GetTaskInfo(commonStackerCrane);
if (task != null)
{
Dt_ShuttleCar? shuttleCar1 = GetShuttleCarInfo(commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutGoods) ? task.TargetAddress : task.SourceAddress);
if (shuttleCar1 != null)
{
ShuttleCar shuttleCar = Storage.Devices.FirstOrDefault(x => x.DeviceName == shuttleCar1.ShuttleCarName) as ShuttleCar;
if (shuttleCar != null)
{
shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetAGV, commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtGetAGV), shuttleCar.DeviceCode);
shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetGoods, commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtGetGoods), shuttleCar.DeviceCode);
shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtPutGoods, commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutGoods), shuttleCar.DeviceCode);
commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetAGV, shuttleCar.GetValue(ShuttleCarDBName.AGVAlwASRSGetAGV, shuttleCar.DeviceCode));
commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetGoods, shuttleCar.GetValue(ShuttleCarDBName.AGVAlwASRSGetGoods, shuttleCar.DeviceCode));
commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPuttGoods, shuttleCar.GetValue(ShuttleCarDBName.AGVAlwASRSPuttGoods, shuttleCar.DeviceCode));
commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPutAGV, commonStackerCrane.GetValue(StackerCraneDBName.ASRSRqtPutAGV));
shuttleCar.SetValue(ShuttleCarDBName.ASRSGetAGVDone, commonStackerCrane.GetValue(StackerCraneDBName.ASRSGetAGVDone), shuttleCar.DeviceCode);
shuttleCar.SetValue(ShuttleCarDBName.ASRSGetGoodsDone, commonStackerCrane.GetValue(StackerCraneDBName.ASRSGetGoodsDone), shuttleCar.DeviceCode);
shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGoodsDone, commonStackerCrane.GetValue(StackerCraneDBName.ASRSPutAGoodsDone), shuttleCar.DeviceCode);
shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGVDone, commonStackerCrane.GetValue(StackerCraneDBName.ASRSPutAGVDone), shuttleCar.DeviceCode);
}
}
}
}
}
///
/// 获取任务信息
///
///
///
///
public Dt_Task GetTaskInfo(SpeStackerCrane commonStackerCrane)
{
return _taskService.GetTaskInfo(commonStackerCrane.CurrentTaskNum);
}
///
/// 获取穿梭车信息
///
///
///
public Dt_ShuttleCar GetShuttleCarInfo(string Address)
{
return _shuttleCarService.QueryShuttleCar(Address);
}
}
}