using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
using iWareSql.DbOrm;
using iWareSql.Orm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareSql.DataAccess
{
public class DeviceWarningHandler
{
///
/// 新建报警信息
///
///
///
///
///
public static void SaveWarning(EDevice device, LogType _LogType, string warningCode, string warningDbAddress, string warningContent)
{
Task.Run(() =>
{
try
{
EDeviceType deviceType = BusinessHelper.GetEDeviceTypeByEDevice(device);
string deviceCode = ((int)device).ToString();
string deviceName = device.ToString();
//Device_Warning request = new Device_Warning();
ware_device_wareing request = new ware_device_wareing();
request.Id = Convert.ToInt64(DateTime.Now.ToString("yyMMddhhmmssfff"));
request.DeviceCode = deviceCode;
request.DeviceName = deviceName;
request.DeviceType = (int)deviceType;
request.DeviceTypeName = deviceType.ToString();
request.WarningDbAddress = warningDbAddress;
request.WarningCode = warningCode;
request.WarningContent = warningContent;
request.WarningTime = DateTime.Now;
//状态(0:新建 1:已处理)
request.Status = 0;
request.StatusName = "新建";
request.CreatedTime = DateTime.Now;
request.CreatedUserName = SysGloble.WCSSystem;
request.OperationRemark = "添加";
request.IsDeleted = false;
//using (DbModel edm = new DbModel())
//{
// var data = edm.Device_Warning.Where(x => x.DeviceCode == deviceCode && x.Status == 0 && x.WarningCode == warningCode).FirstOrDefault();
// if (data == null)
// {
// edm.Device_Warning.Add(request);
// edm.SaveChanges();
// }
//}
using (DbOrm.DbOrm dbOrm = new DbOrm.DbOrm())
{
var data = dbOrm.ware_device_wareing.Where(x => x.DeviceCode == deviceCode && x.Status == 0 && x.WarningCode == warningCode).FirstOrDefault();
if (data == null)
{
dbOrm.ware_device_wareing.Add(request);
dbOrm.SaveChanges();
}
}
}
catch (Exception ex)
{
Log4NetHelper.WriteErrorLog(_LogType, "保存报警出现异常:" + ex.Message, ex);
}
});
}
///
/// 自动关闭报警信息
///
/// 设备区域
///
///
public static void AutoCloseWarning(EDevice device, LogType _LogType, List warningAddressList)
{
Task.Run(() =>
{
try
{
string deviceCode = ((int)device).ToString();
//using (DbModel edm = new DbModel())
//{
// var dataList = edm.Device_Warning.Where(x => x.DeviceCode == deviceCode && x.Status == 0).ToList();
// if (dataList != null && dataList.Count > 0)
// {
// var msg = "";
// var nowDate = DateTime.Now;
// foreach (var detail in dataList)
// {
// if (!warningAddressList.Contains(detail.WarningCode))
// {
// nowDate = DateTime.Now;
// detail.ModifyTime = nowDate;
// detail.ModifyBy = SysGloble.WCSSystem;
// detail.Status = 1; //状态(0:新建 1:已处理)
// detail.StatusName = "已处理";
// detail.CloseContent = SysGloble.WCSSystem + "关闭";
// detail.FinishTime = nowDate;
// detail.OperationRemark = "关闭报警";
// DateTimeHelper.GetTimeDiffer(detail.CreateTime, nowDate, ref msg);
// detail.DurationTime = msg;
// }
// }
// edm.SaveChanges();
// }
//}
using (DbOrm.DbOrm edm = new DbOrm.DbOrm())
{
var dataList = edm.ware_device_wareing.Where(x => x.DeviceCode == deviceCode && x.Status == 0).ToList();
if (dataList != null && dataList.Count > 0)
{
var msg = "";
var nowDate = DateTime.Now;
foreach (var detail in dataList)
{
if (!warningAddressList.Contains(detail.WarningCode))
{
nowDate = DateTime.Now;
detail.UpdatedTime = nowDate;
detail.UpdatedUserName = SysGloble.WCSSystem;
detail.Status = 1; //状态(0:新建 1:已处理)
detail.StatusName = "已处理";
detail.CloseContent = SysGloble.WCSSystem + "关闭";
detail.FinishTime = nowDate;
detail.OperationRemark = "关闭报警";
DateTimeHelper.GetTimeDiffer(detail.WarningTime, nowDate, ref msg);
detail.DurationTime = msg;
}
}
edm.SaveChanges();
}
}
}
catch (Exception ex)
{
Log4NetHelper.WriteErrorLog(_LogType, "自动关闭报警出现异常:" + ex.Message, ex);
}
});
}
}
}