using AutoMapper;
|
using LogLibrary.Log;
|
using Newtonsoft.Json;
|
using WIDESEAWCS_Common.TaskEnum;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_DTO.AGV;
|
using WIDESEAWCS_DTO.TaskInfo;
|
using WIDESEAWCS_IBasicInfoRepository;
|
using WIDESEAWCS_ITaskInfoRepository;
|
using WIDESEAWCS_ITaskInfoService;
|
using WIDESEAWCS_Model.Models;
|
using WIDESEAWCS_QuartzJob;
|
using WIDESEAWCS_Tasks.ConveyorLineJob;
|
|
namespace WIDESEAWCS_Tasks.AGV
|
{
|
public class AGVSignal:IAGVSignal
|
{
|
private readonly ITaskRepository _taskRepository;
|
private readonly ITask_HtyRepository _taskhtyRepository;
|
private readonly ITaskService _taskService;
|
private readonly IDt_StationManagerRepository _stationManagerRepository;
|
private readonly IMapper _mapper;
|
|
public AGVSignal(ITaskRepository taskRepository, ITaskService taskService,IDt_StationManagerRepository stationManagerRepository,ITask_HtyRepository taskhtyRepository, IMapper mapper)
|
{
|
_taskRepository = taskRepository;
|
_taskService = taskService;
|
_stationManagerRepository = stationManagerRepository;
|
_taskhtyRepository = taskhtyRepository;
|
_mapper = mapper;
|
}
|
#region AGV与设备信号交互
|
|
/// <summary>
|
/// AGV--设备交互
|
/// </summary>
|
/// <returns></returns>
|
public WebResponseContent SignalInteraction(AGVReceiveDTO receiveDTO)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
LogFactory.WriteInfo($"AGV状态上报", $"参数【{JsonConvert.SerializeObject(receiveDTO)}】{Environment.NewLine}{Environment.NewLine}");
|
var task = _taskRepository.QueryFirst(t => t.TaskNum == Convert.ToInt32(receiveDTO.orderId));
|
if (task == null)
|
{
|
return content.Error("未找到任务");
|
}
|
|
CommonConveyorLine? commonConveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1001") as CommonConveyorLine;
|
CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator;
|
switch (receiveDTO.status)
|
{
|
//case 20:
|
// content = RequestPickUp(task, commonConveyorLine, elevator);
|
// break;
|
//case 21:
|
// content = PickUpFinish(task, commonConveyorLine, elevator);
|
// break;
|
//case 22:
|
// content = RequestPut(task, commonConveyorLine, elevator);
|
// break;
|
//case 8:
|
// content = PutFinish(task, commonConveyorLine, elevator);
|
// break;
|
default:
|
content.Error("未知状态");
|
break;
|
}
|
LogFactory.WriteInfo($"AGV状态上报", $"返回参数【{JsonConvert.SerializeObject(content)}】{Environment.NewLine}{Environment.NewLine}");
|
return content;
|
}
|
catch (Exception ex)
|
{
|
return content.Error(ex.Message);
|
}
|
}
|
|
///// <summary>
|
///// 放货完成
|
///// </summary>
|
///// <param name="task"></param>
|
///// <returns></returns>
|
//public WebResponseContent PutFinish(Dt_Task task, CommonConveyorLine commonConveyorLine, CommonElevator elevator)
|
//{
|
// WebResponseContent content = new WebResponseContent();
|
// try
|
// {
|
|
// if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
|
// {
|
// if (task.Floor == "1F")
|
// {
|
// elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
|
// }
|
// else
|
// {
|
// elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
|
// }
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// content.OK();
|
// }
|
// else if (task.TaskState == (int)TaskAcrossFloorStatusEnum.EndAddressExecuting)
|
// {
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// content.OK();
|
// }
|
// else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
|
// {
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// }
|
|
// if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.RelocationGroup)
|
// {
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// }
|
// if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
|
// {
|
// if (task.TaskState == (int)TaskOutStatusEnum.AGV_OutExecuting)
|
// {
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// }
|
// }
|
// else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
|
// {
|
// commonConveyorLine.SetValue(ConveyorLineDBName.PutFinish, 1, "LK001");
|
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// content.OK();
|
// }
|
// }
|
// catch (Exception ex)
|
// {
|
// content.Error(ex.Message);
|
// }
|
// return content;
|
//}
|
|
///// <summary>
|
///// 取货完成
|
///// </summary>
|
///// <param name="task"></param>
|
///// <returns></returns>
|
//public WebResponseContent PickUpFinish(Dt_Task task, CommonConveyorLine commonConveyorLine, CommonElevator elevator)
|
//{
|
// WebResponseContent content = new WebResponseContent();
|
// try
|
// {
|
// if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
|
// {
|
// if (task.Floor == "1F")
|
// {
|
// elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
|
// }
|
// else
|
// {
|
// elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
|
// }
|
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// content.OK();
|
// }
|
// if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
|
// {
|
// commonConveyorLine.SetValue(ConveyorLineDBName.PickUpFinish, 1, "LK001");
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// content.OK();
|
// }
|
// }
|
// catch (Exception ex)
|
// {
|
// content.Error(ex.Message);
|
// }
|
// return content;
|
//}
|
|
///// <summary>
|
///// 请求取货
|
///// </summary>
|
///// <param name="task"></param>
|
///// <returns></returns>
|
//public WebResponseContent RequestPickUp(Dt_Task task, CommonConveyorLine commonConveyorLine, CommonElevator elevator)
|
//{
|
// WebResponseContent content = new WebResponseContent();
|
// try
|
// {
|
|
// if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
|
// {
|
// if (task.Floor == "1F")
|
// {
|
// if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPickUp) == 1)
|
// {
|
// _taskService.ContinueAgvTask(task.AGVTaskNum);
|
// content.OK();
|
// }
|
// else
|
// {
|
// task.AGVSign = "RequestPickUp";
|
// _taskRepository.UpdateData(task);
|
// content.Error("设备不允许取货");
|
// }
|
// }
|
// else
|
// {
|
// if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPickUp) == 1)
|
// {
|
// _taskService.ContinueAgvTask(task.AGVTaskNum);
|
// content.OK();
|
// }
|
// else
|
// {
|
// task.AGVSign = "RequestPickUp";
|
// _taskRepository.UpdateData(task);
|
// content.Error("设备不允许取货");
|
// }
|
// }
|
// }
|
// if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.OutbondGroup)
|
// {
|
// if (commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "LK001") == 1)
|
// {
|
// _taskService.ContinueAgvTask(task.AGVTaskNum);
|
// _taskService.UpdateTaskStatusToNext(task.TaskNum);
|
// content.OK();
|
// }
|
// else
|
// {
|
// task.AGVSign = "RequestPickUp";
|
// _taskRepository.UpdateData(task);
|
// content.Error("设备不允许取货");
|
// }
|
// }
|
// }
|
// catch (Exception ex)
|
// {
|
// task.AGVSign = "RequestPickUp";
|
// _taskRepository.UpdateData(task);
|
// content.Error(ex.Message);
|
// }
|
// return content;
|
//}
|
|
///// <summary>
|
///// 请求放货
|
///// </summary>
|
///// <param name="task"></param>
|
///// <returns></returns>
|
//public WebResponseContent RequestPut(Dt_Task task, CommonConveyorLine commonConveyorLine, CommonElevator elevator)
|
//{
|
// WebResponseContent content = new WebResponseContent();
|
// try
|
// {
|
|
// if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
|
// {
|
// if (task.Floor == "1F")
|
// {
|
// if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPut) == 1)
|
// {
|
// _taskService.ContinueAgvTask(task.AGVTaskNum);
|
// content.OK();
|
// }
|
// else
|
// {
|
// task.AGVSign = "RequestPut";
|
// _taskRepository.UpdateData(task);
|
// content.Error("设备不允许放货");
|
// }
|
// }
|
// else
|
// {
|
// if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPut) == 1)
|
// {
|
// _taskService.ContinueAgvTask(task.AGVTaskNum);
|
// content.OK();
|
// }
|
// else
|
// {
|
// task.AGVSign = "RequestPut";
|
// _taskRepository.UpdateData(task);
|
// content.Error("设备不允许放货");
|
// }
|
// }
|
// }
|
// if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.InboundGroup)
|
// {
|
// if (commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "LK001") == 1)
|
// {
|
// _taskService.ContinueAgvTask(task.AGVTaskNum);
|
// content.OK();
|
// }
|
// else
|
// {
|
// task.AGVSign = "RequestPut";
|
// _taskRepository.UpdateData(task);
|
// content.Error("设备不允许取货");
|
// }
|
|
// }
|
|
// }
|
// catch (Exception ex)
|
// {
|
// task.AGVSign = "RequestPut";
|
// _taskRepository.UpdateData(task);
|
// content.Error(ex.Message);
|
// }
|
// return content;
|
//}
|
|
#endregion
|
|
}
|
}
|