using DataCapture_MA.log4Net; using DataCapture_MA.Mes; using DataCapture_MA.Mes.Dto; using DataCapture_MA.Model; using Microsoft.EntityFrameworkCore.Query; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataCapture_MA { public class MesApiHelper { /// /// 推送报警 /// /// /// public static MesResult PushEquipmentWarning(MessageAnalysis messageAnalysis) { var mesParam = new List(); try { if(messageAnalysis.Warnings.Count<=0 && messageAnalysis.WarnningNum>0) { mesParam.Add(new MesWarnInput { EquipSerial = messageAnalysis.RobotSerialNo, AlarmCode = "E-999", AlarmDesc = "未提供报警内容" }); } else { foreach(var warning in messageAnalysis.Warnings) { mesParam.Add(new MesWarnInput { EquipSerial = messageAnalysis.RobotSerialNo, AlarmCode = warning.WarningCode, AlarmDesc = warning.WarningContent }); } } Log4NetHelper.WriteInfoLog(LogType.PushMes, "推送设备报警信息:" + JsonConvert.SerializeObject(mesParam)); var result = MesApiRequest.PushEquipmentWarning(mesParam); return result; } catch(Exception ex) { return new MesResult { statusCode = 500, message = ex.Message, }; } } /// /// 推送设备状态 /// /// /// public static MesResult PushEquipmentStatus(MessageAnalysis messageAnalysis) { var equipmentStatus = new List(); try { var equipment = new MesEquipmentStatus() { CurrentStatus = messageAnalysis.RobotMode, EquipSerial = messageAnalysis.RobotSerialNo }; equipmentStatus.Add(equipment); Log4NetHelper.WriteInfoLog(LogType.PushMes, "推送设备状态信息:" + JsonConvert.SerializeObject(equipmentStatus)); var result = MesApiRequest.PushEquipmentStatus(equipmentStatus); return result; } catch (Exception ex) { return new MesResult { statusCode = 500, message = ex.Message, }; } } /// /// 推送其他信息 /// /// /// public static MesResult PushEquipmentInfo(MessageAnalysis messageAnalysis) { var equipmentInfo = new List(); try { var newEquipmentInfo = AutoMapper.Mapper.Map(messageAnalysis); var info = new MesEquipmentInfo() { EquipSerial = messageAnalysis.RobotSerialNo, ParameterValue = JsonConvert.SerializeObject(newEquipmentInfo) }; Log4NetHelper.WriteInfoLog(LogType.PushMes, "推送设备信息:" + JsonConvert.SerializeObject(info)); var result = MesApiRequest.PushEquipmentInfo(info); return result; } catch (Exception ex) { return new MesResult { statusCode = 500, message = ex.Message, }; } } } }