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); } } } }