using iWareCommon.Common.Globle; using iWareCommon.Utils; using iWareModel; using iWareSql.WmsDBModel; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using WZ.Useful.Commons.Collections; namespace iWareCC { public class DeviceWarningHandler { /// /// 获取配置报警信息列表 /// /// public static DeviceWarningOutput GetConfigWarningList() { DeviceWarningOutput output = new DeviceWarningOutput(); System.Collections.Generic.List retList = new System.Collections.Generic.List(); System.Collections.Generic.List dbList = new System.Collections.Generic.List(); try { using (WmsDBModel edm = new WmsDBModel()) { dbList = edm.wms_config_device_warning.ToList(); } foreach (var item in dbList) { retList.Add(new StationService.WmsConfigDeviceWarning() { WarningCode = item.WarningCode }); } } catch (Exception ex) { } output.wmsConfigDeviceWarnings = retList; output.wms_config_device_warning_list = dbList; return output; } /// /// 新建报警信息 /// /// /// /// /// public static void SaveWarning(EDevice device, LogType _LogType, string warningCode, int deviceAreaCode, string warningContent, int deviceWarningType) { Task.Run(() => { try { wms_record_device_warning request = new wms_record_device_warning() { Id = Yitter.IdGenerator.YitIdHelper.NextId(), DeviceWarningStatus = 0, WarningCode = warningCode, WarningContent = warningContent, WarningTime = DateTime.Now, CreateUserName = SysGloble.WCSSystem, DeviceAreaCode = deviceAreaCode, DeviceWarningType = deviceWarningType, DurationTime = "", CreateTime = DateTime.Now, }; using (WmsDBModel edm = new WmsDBModel()) { var data = edm.wms_record_device_warning.Where(x => x.DeviceWarningStatus == 0 && x.WarningCode == warningCode).FirstOrDefault(); if (data == null) { edm.wms_record_device_warning.Add(request); edm.SaveChanges(); } } } catch (Exception ex) { Log4NetHelper.WriteErrorLog(_LogType, "保存报警出现异常:" + ex.Message, ex); } }); } /// /// 自动关闭报警信息 /// /// 设备区域 /// /// public static void AutoCloseWarning(EDevice device, LogType _LogType, System.Collections.Generic.List warningCodeList) { Task.Run(() => { try { using (WmsDBModel edm = new WmsDBModel()) { var dataList = edm.wms_record_device_warning.Where(x => x.DeviceWarningStatus == 0).ToList(); if (dataList != null && dataList.Count > 0) { var msg = ""; var nowDate = DateTime.Now; foreach (var detail in dataList) { if (!warningCodeList.Contains(detail.WarningCode)) { nowDate = DateTime.Now; detail.DeviceWarningStatus = 1; //状态(0:新建 1:已处理) detail.FinishTime = nowDate; DateTimeHelper.GetTimeDiffer(detail.CreateTime, nowDate, ref msg); detail.DurationTime = msg; } } edm.SaveChanges(); } } } catch (Exception ex) { Log4NetHelper.WriteErrorLog(_LogType, "自动关闭报警出现异常:" + ex.Message, ex); } }); } } public class DeviceWarningOutput { public System.Collections.Generic.List wmsConfigDeviceWarnings { get; set; } public System.Collections.Generic.List wms_config_device_warning_list { get; set; } } }