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