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();
|
/// <summary>
|
/// 向MES反馈出入库信息
|
/// </summary>
|
/// <param name="task"></param>
|
/// <exception cref="Exception"></exception>
|
public static void UploadMESInfo(dt_agvtask task)
|
{
|
try
|
{
|
object obj = new object(); //上传MES数据
|
string ActionName = ""; //调用MES方法名
|
List<detail> list = new List<detail>(); //车轮信息
|
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<dt_mes_head>().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
|
};
|
obj = agvTransferListPara;
|
ActionName = "agvTransferList";
|
}
|
|
var postJson = JsonConvert.SerializeObject(obj);
|
string mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + ActionName);
|
var requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData);
|
|
if (requestMes.code == "200" && requestMes.Type == "success")
|
{
|
//日志记录上传数据成功
|
}
|
|
}
|
catch (Exception ex)
|
{
|
throw new Exception(ex.Message);
|
}
|
}
|
}
|
}
|