| | |
| | | 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 |
| | |
| | | /// </summary> |
| | | /// <param name="task"></param> |
| | | /// <exception cref="Exception"></exception> |
| | | public static MES_Response UploadMESInfo(dt_agvtask task) |
| | | public static void UploadMESInfo(dt_agvtask task) |
| | | { |
| | | object obj = new object(); //ä¸ä¼ MESæ°æ® |
| | | string mesData = "";//è¿åæ°æ® |
| | | string ActionName = ""; //è°ç¨MESæ¹æ³å |
| | | string name = ""; |
| | | MES_Response requestMes = new MES_Response(); |
| | |
| | | { |
| | | throw new Exception("æ 任塿°æ®"); |
| | | } |
| | | |
| | | if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString()) |
| | | 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()) |
| | | { |
| | | foreach (var item in task.bindSN.Split(",")) |
| | | if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString()) |
| | | { |
| | | detail detail = new detail(); |
| | | detail.sn = item; |
| | | list.Add(detail); |
| | | 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, |
| | | JobID = task.jobID, |
| | | processCode = task.agv_worktype.ToString(), |
| | | layerNo = 1, |
| | | stackID = "1", |
| | | warehouseName = "Agvåº", |
| | | zoneID = task.agv_fromaddress, |
| | | Operator = "AGVèªå¨", |
| | | }; |
| | | obj = outWarehousePara; |
| | | ActionName = "agvOutWarehouse";//AGV->MES车轮åºåº |
| | | name = "AGV忥MES车轮åºåº"; |
| | | } |
| | | else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() /*|| task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString()*/) |
| | | 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, |
| | | JobID = task.jobID, |
| | | processCode = task.agv_worktype.ToString(), |
| | | layerNo = 1, |
| | | stackID = "1", |
| | | warehouseName = "Agvåº", |
| | | zoneID = task.agv_toaddress, |
| | | Operator = "AGVèªå¨", |
| | | }; |
| | | obj = inWarehousePara; |
| | | ActionName = "agvInWarehouse";//AGV->MES车轮å
¥åº |
| | | name = "AGV忥MES车轮å
¥åº"; |
| | | } |
| | | //else if (task.agv_tasktype == "Transfer") //ç§»åºåºå åºå
ç§»åº |
| | | else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString()) //ç§»åºåºå åºå
ç§»åº |
| | | { |
| | | List<detail1> list1 = new List<detail1>(); //è½¦è½®ä¿¡æ¯ |
| | | foreach (var item in task.bindSN.Split(",")) |
| | | { |
| | | detail1 detail = new detail1(); |
| | | detail.sn = item; |
| | | list1.Add(detail); |
| | | } |
| | | agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara() |
| | | { |
| | | details = list, |
| | | fromZoneID = task.agv_fromaddress, |
| | | toZoneID = task.agv_toaddress, |
| | | details = list1, |
| | | fromLayerNo = "1", |
| | | fromStackID = "1", |
| | | fromWarehouseName = "Agvåº", |
| | | fromZoneID = task.agv_fromaddress, |
| | | toLayerNo = "1", |
| | | toStackID = "1", |
| | | toWarehouseName = "Agvåº", |
| | | toZoneID = task.agv_toaddress, |
| | | Operator = "AGVèªå¨", |
| | | }; |
| | | obj = moveWarehousePara; |
| | | ActionName = "agvMoveWarehouse";//AGV->MESè½¦è½®ç§»åº |
| | | name = "AGV忥MES车轮ABåºç§»åº"; |
| | | } |
| | | 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.ToString(), |
| | | }; |
| | | obj = agvTransferListPara; |
| | | ActionName = "agvTransferList"; |
| | | name = "AGV忥MES车轮移åºABåº->BCåº"; |
| | | } |
| | | |
| | | var postJson = JsonConvert.SerializeObject(obj); |
| | | mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + ActionName); |
| | | if (mesData.Contains("è¿æ¥å°è¯å¤±è´¥")) |
| | | throw new Exception(mesData); |
| | | requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData); |
| | | |
| | | if (requestMes.code == "200" && requestMes.Type == "success") |
| | | if (!string.IsNullOrEmpty(ActionName)) |
| | | { |
| | | //æ¥å¿è®°å½ä¸ä¼ æ°æ®æå |
| | | WriteWMSLog.LogAdd(task.agv_tasknum, "æå", "MES", "WMS", JsonConvert.SerializeObject(obj), mesData, name, ActionName, requestMes.message); |
| | | 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); |
| | | } |
| | | else |
| | | throw new Exception(requestMes.message); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | requestMes.message = ex.Message; |
| | | WriteWMSLog.LogAdd(task.agv_tasknum, "失败", "MES", "WMS", JsonConvert.SerializeObject(obj), mesData, name, ActionName, ex.Message); |
| | | |
| | | } |
| | | return requestMes; |
| | | //finally |
| | | //{ |
| | | // WriteWMSLog.LogAdd(task.agv_tasknum, "失败", "MES", "WMS", JsonConvert.SerializeObject(obj), mesData, name, ActionName, requestMes.message); |
| | | //} |
| | | } |
| | | } |
| | | } |