/// <summary> /// 交接时关闭上一班报警 /// </summary> /// <param name="faultConfiguration"></param> private void StopLastShiftAlarm(OverLimitConfigEntity faultConfiguration) { KPI_UnitEntity Entity = KPI_UnitDal.GetEntity(faultConfiguration.UnitID); if (Entity == null) return; String strWorkID = Entity.WorkID; String strStartTime = ""; String strEndTime = ""; String Shift = ""; String Period = ""; String strCurrentMinute = DateTime.Now.ToString("yyyy-MM-dd HH:mm:00"); KPI_WorkDal.GetShiftAndPeriod(strWorkID, strCurrentMinute, ref Shift, ref Period, ref strStartTime, ref strEndTime); DateTime ShiftStartTime = Convert.ToDateTime(strStartTime); DateTime CurrentTime = DateTime.Now; TimeSpan Span = CurrentTime - ShiftStartTime; double TotalMinutes = Span.TotalMinutes; if (TotalMinutes <= 10) { try { using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { KPI_OverLimitRecordEntity entity = new KPI_OverLimitRecordEntity(); for (int i = 1; i < 4; i++) { entity.TagID = faultConfiguration.TagName; entity.AlarmStartTime = ShiftStartTime; entity.AlarmType = i; DataAccess.UpdateOverLimitRecord(entity); } } } catch (Exception ex) { LogUtil.LogMessage(string.Format("安全指标超限报警计算错误,错误信息是:{0},调用栈信息是:{1}", ex.Message, ex.StackTrace)); } } }
/// <summary> /// 解除报警,更新KPI_OverLimitRecord表中数据 /// </summary> /// <param name="faultConfiguration">报警配置信息</param> /// <param name="alarmType">报警类型 1=超高限,2=超高高限,3=超更高;</param> /// <param name="alarmTime">解除报警时间</param> protected void UpdateExistOverLimitRecordToDB(OverLimitConfigEntity faultConfiguration, int alarmType, DateTime alarmTime) { try { KPI_OverLimitRecordEntity entity = new KPI_OverLimitRecordEntity(); entity.TagID = faultConfiguration.TagName; entity.AlarmEndTime = alarmTime; entity.AlarmType = alarmType; using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { DataAccess.UpdateOverLimitRecord(entity); } } catch (Exception ex) { m_Logger.InfoFormat("UpdateExistOverLimitRecordToDB安全指标超限报警计算错误,错误信息是:{0},调用栈信息是:{1}", ex.Message, ex.StackTrace); m_Logger.Error(ex.Message, ex); } }
/// <summary> /// 解除报警,更新KPI_OverLimitRecord表中数据 /// </summary> /// <param name="faultConfiguration">报警配置信息</param> /// <param name="alarmType">报警类型 1=超高限,2=超高高限,3=超更高;</param> /// <param name="alarmTime">解除报警时间</param> private void StopAlarm(OverLimitConfigEntity faultConfiguration, int alarmType, DateTime alarmTime) { try { KPI_OverLimitRecordEntity entity = new KPI_OverLimitRecordEntity(); entity.TagID = faultConfiguration.TagName; entity.AlarmStartTime = alarmTime; entity.AlarmType = alarmType; using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { DataAccess.UpdateOverLimitRecord(entity); } } catch (Exception ex) { LogUtil.LogMessage(string.Format("安全指标超限报警计算错误,错误信息是:{0},调用栈信息是:{1}", ex.Message, ex.StackTrace)); } }