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