using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using WIDESEA_Common;
|
using WIDESEA_Common.TaskEnum;
|
using WIDESEA_Common.Tools;
|
using WIDESEA_Core.Utilities;
|
using WIDESEA_Entity.CustomModels.RGVModel;
|
using WIDESEA_Entity.DomainModels;
|
using WIDESEA_Services;
|
using WIDESEA_Services.IRepositories;
|
using WIDESEA_Services.Services.APIInvoke.RGV;
|
|
namespace WIDESEA_WCS
|
{
|
public partial class RgvDispatchJob
|
{
|
|
public static void SendRGVTaskAction(Dt_TaskRGVinfo rgvTask, Dt_TaskWCSinfo wcsInfo, IDt_TaskRGVinfoRepository taskRGVinfoRepository, IDt_TaskWCSinfoRepository taskWCSinfoRepository)
|
{
|
|
RgvSendTaskModel taskInfo = new RgvSendTaskModel();
|
int typeV = -1;
|
if (rgvTask.rgvtask_taskType == RGVTaskType.RgvTaskType_Inbound.ToString())
|
typeV = 1;
|
else if (rgvTask.rgvtask_taskType == RGVTaskType.RgvTaskType_Outbound.ToString())
|
typeV = 2;
|
else if (rgvTask.rgvtask_taskType == RGVTaskType.RgvTaskType_Move.ToString())
|
typeV = 3;
|
|
//组装RGV任务
|
List<RgvSendTaskModel> taskList = new List<RgvSendTaskModel>();
|
RgvSendTaskModel taskModel = new RgvSendTaskModel();
|
taskModel.taskId = rgvTask.rgvtask_taskId;
|
taskModel.taskType = typeV;
|
taskModel.containerNo = rgvTask.rgvtask_barCode;
|
string sourceNode = "";
|
|
if (rgvTask.rgvtask_startNode.Contains("-"))
|
sourceNode = rgvTask.rgvtask_startNode.Replace("-", "");
|
else//转换站台与货位
|
sourceNode = ConvertStationToLocationId.Convert_Station_To_LocationId(rgvTask.rgvtask_startNode);
|
taskModel.source = sourceNode;
|
|
string endNode = "";
|
if (rgvTask.rgvtask_endNode.Contains("-"))
|
endNode = rgvTask.rgvtask_endNode.Replace("-", "");
|
else//转换站台与货位
|
endNode = ConvertStationToLocationId.Convert_Station_To_LocationId(rgvTask.rgvtask_endNode);
|
taskModel.target = endNode;
|
taskModel.priority = int.Parse(rgvTask.rgvtask_priorityCode);
|
taskList.Add(taskModel);
|
|
//发送任务给RGV
|
WebResponseContent content = RGVAPIInvokeSendTask.SendTaskToRGV(taskList);
|
if (content.Status)
|
{
|
RgvReturnModel model = (RgvReturnModel)content.Data;
|
if (model.code == 0)
|
{
|
taskRGVinfoRepository.DbContextBeginTransaction(() =>
|
{
|
rgvTask.rgvtask_dispatchertime = DateTime.Now;
|
rgvTask.rgvtask_taskStatus = RGVTaskState.RgvTaskState_Had_Sended.ToString();
|
if (null != wcsInfo)
|
{
|
wcsInfo.wcstask_state = TaskState.TaskState_RGV_Received.ToString();
|
wcsInfo.wcstask_dispatcherTime = DateTime.Now;
|
taskWCSinfoRepository.Update(wcsInfo, true);
|
}
|
//在此处事务更新
|
taskRGVinfoRepository.Update(rgvTask, true);
|
//Wms更新
|
WMSApi.PostTaskStateToWMS(rgvTask.rgvtask_barCode, TaskState.TaskState_RGV_Received.ToString());
|
return content.OK();
|
});
|
|
}
|
}
|
|
}
|
}
|
}
|