using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using WIDESEA_Comm.MES_Info;
using WIDESEA_Comm.MES_Info.Request;
using WIDESEA_Common;
using WIDESEA_Core.FreeDB;
using WIDESEA_Entity.DomainModels;
using WIDESEA_Entity.ToAGV;
using static WIDESEA_Comm.MES_Info.BasicSN;
namespace WIDESEA_WMS.Common.AGVTask
{
public class HandleTask_Mes
{
static FreeDB FreeDB = new FreeDB();
///
/// 向MES反馈出入库信息
///
///
///
public static void UploadMESInfo(dt_agvtask task)
{
try
{
object obj = new object(); //上传MES数据
string ActionName = ""; //调用MES方法名
List list = new List(); //车轮信息
if (task == null)
{
throw new Exception("无任务数据");
}
foreach (var item in task.bindSN.Split(","))
{
detail detail = new detail();
detail.sn = item;
list.Add(detail);
}
if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString())
{
//agvOutWarehousePara outWarehousePara = new agvOutWarehousePara()
//{
// JobID = task.jobID,
// processCode=task.agv_worktype.ToString(),
// details = list
//};
agvInWarehousePara outWarehousePara = new agvInWarehousePara()
{
details = list,
JobID = task.jobID,
processCode = task.agv_worktype.ToString(),
layerNo = 1,
stackID = "1",
warehouseName = "Agv库",
zoneID = task.agv_fromaddress,
};
obj = outWarehousePara;
ActionName = "agvOutWarehouse";//AGV->MES车轮出库
}
else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString())
{
agvInWarehousePara inWarehousePara = new agvInWarehousePara()
{
details = list,
JobID = task.jobID,
processCode = task.agv_worktype.ToString(),
layerNo = 1,
stackID = "1",
warehouseName = "Agv库",
zoneID = task.agv_toaddress,
};
obj = inWarehousePara;
ActionName = "agvInWarehouse";//AGV->MES车轮入库
}
//else if (task.agv_tasktype == "Transfer") //移库区分 库内移库
else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString()) //移库区分 库内移库
{
agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara()
{
details = list,
fromLayerNo = "1",
fromStackID = "1",
fromWarehouseName = "Agv库",
fromZoneID = task.agv_fromaddress,
toLayerNo = "1",
toStackID = "1",
toWarehouseName = "Agv库",
toZoneID = task.agv_toaddress,
};
obj = moveWarehousePara;
ActionName = "agvMoveWarehouse";//AGV->MES车轮移库
}
else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())// 外协移库
{
var mes_head = FreeDB.Select().Where(x => x.jobID == task.jobID).First();
agvTransferListPara agvTransferListPara = new agvTransferListPara()
{
details = list,
transferListID = task.agv_tasknum,
materialCode = mes_head.materialCode,
drawingNoVer = mes_head.drawingNoVer,
fromWarehouse = "AGV库",
toWarehouse = "毛轮库",
Operator = task.agv_userid,
updateTime = task.agv_createtime.ToString(),
};
obj = agvTransferListPara;
ActionName = "agvTransferList";
}
var postJson = JsonConvert.SerializeObject(obj);
string mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + ActionName);
var requestMes = JsonConvert.DeserializeObject(mesData);
if (requestMes.code == "200" && requestMes.Type == "success")
{
//日志记录上传数据成功
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}