using iWareCommon.Common.Globle; using iWareCommon.Utils; using iWareModel; using iWareSql.DBModel; 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(); request.Id = Guid.NewGuid().ToString(); 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.CreateTime = request.ModifyTime = DateTime.Now; request.CreateBy = request.ModifyBy = SysGloble.WCSSystem; request.OperationRemark = "添加"; 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(); } } } 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(); } } } catch (Exception ex) { Log4NetHelper.WriteErrorLog(_LogType, "自动关闭报警出现异常:" + ex.Message, ex); } }); } } }