using Confluent.Kafka; using Newtonsoft.Json; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using OfficeOpenXml.FormulaParsing.Excel.Operators; using WIDESEA_Comm.LogInfo; using WIDESEA_Comm.MES_Info; using WIDESEA_Comm.MES_Info.Request; using WIDESEA_Common; using WIDESEA_Core.EFDbContext; using WIDESEA_Core.FreeDB; using WIDESEA_Entity.DomainModels; using WIDESEA_Entity.ToAGV; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; 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) { object obj = new object(); //上传MES数据 string ActionName = ""; //调用MES方法名 string name = ""; MES_Response requestMes = new MES_Response(); try { List list = new List(); //车轮信息 if (task == null) { throw new Exception("无任务数据"); } VOLContext context = new VOLContext(); IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context); Idt_info_to_mesRepository mesRepository = new dt_info_to_mesRepository(context); if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()) { if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString()) { foreach (var item in task.bindSN.Split(",")) { var work = workinfoRepository.Find(x => x.SN == item && x.processCode == task.agv_worktype.ToString()).FirstOrDefault(); detail detail = new detail(); detail.sn = item; detail.jobID = work.jobID; detail.processCode = work.processCode; list.Add(detail); } } else { foreach (var item in task.bindSN.Split(",")) { detail detail = new detail(); detail.sn = item; detail.jobID = task.jobID; detail.processCode = task.agv_worktype.ToString(); list.Add(detail); } } agvInWarehousePara outWarehousePara = new agvInWarehousePara() { WorkOrder = task.jobID, zoneID = task.agv_fromaddress, details = list, layerNo = 1, stackID = "1", warehouseName = "Agv库", Operator = "AGV自动", }; obj = outWarehousePara; ActionName = "agvOutWarehouse";//AGV->MES车轮出库 name = "AGV同步MES车轮出库"; } else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString()) { foreach (var item in task.bindSN.Split(",")) { var work = workinfoRepository.Find(x => x.SN == item && x.processCode == task.agv_worktype.ToString()).FirstOrDefault(); detail detail = new detail(); detail.sn = item; detail.jobID = work.jobID; detail.processCode = work.processCode; list.Add(detail); } agvInWarehousePara inWarehousePara = new agvInWarehousePara() { WorkOrder = task.jobID, zoneID = task.agv_toaddress, details = list, layerNo = 1, stackID = "1", warehouseName = "Agv库", Operator = "AGV自动", }; obj = inWarehousePara; ActionName = "agvInWarehouse";//AGV->MES车轮入库 name = "AGV同步MES车轮入库"; } else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString()) //移库区分 库内移库 { List list1 = new List(); //车轮信息 foreach (var item in task.bindSN.Split(",")) { detail1 detail = new detail1(); detail.sn = item; list1.Add(detail); } agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara() { fromZoneID = task.agv_fromaddress, toZoneID = task.agv_toaddress, details = list1, fromLayerNo = "1", fromStackID = "1", fromWarehouseName = "Agv库", toLayerNo = "1", toStackID = "1", toWarehouseName = "Agv库", Operator = "AGV自动", }; obj = moveWarehousePara; ActionName = "agvMoveWarehouse";//AGV->MES车轮移库 name = "AGV同步MES车轮AB库移库"; } var postJson = JsonConvert.SerializeObject(obj); if (!string.IsNullOrEmpty(ActionName)) { dt_info_to_mes info_To_Mes = new dt_info_to_mes() { Info = postJson, ActionName = ActionName, Createtime = DateTime.Now, Remark = name, State = false }; mesRepository.Add(info_To_Mes, true); } } catch (Exception ex) { } } } }