private double SALongDurationByType(String tags, int alarmType, double alarmDuration) { double Result = 0.0f; String[] Tags = tags.Split(','); List <int?> Durations = new List <int?>(); int? Duration = 0; using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { foreach (String TagID in Tags) { if (!IsCalcShift) { Duration = (from p in DataAccess.GetOverLimitRecords(BeginTime, EndTime, TagID, alarmType) where p.Duration >= alarmDuration select p.Duration).Sum(); Durations.Add(Duration); } if (IsCalcShift) { Duration = (from p in DataAccess.GetShiftOverLimitRecords(BeginTime, EndTime, TagID, alarmType) where p.Duration >= alarmDuration select p.Duration).Sum(); Durations.Add(Duration); } } } Result = Convert.ToDouble(Durations.Sum()); //超限时长单位:秒 Result = Result / 60; //超限时长转换为分钟 return(Result); }
private double SALongCount(string tags, double alarmDuration) { //double Result = 0.0f; String[] Tags = tags.Split(','); List <int> Counts = new List <int>(); int Count; /*List<int?> Durations = new List<int?>(); * int? Duration = 0; * using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { * foreach (String TagID in Tags) { * Duration = (from p in DataAccess.GetOverLimitRecords(BeginTime, EndTime, TagID) * where p.Duration >= alarmDuration * select p.Duration).Sum(); * Durations.Add(Duration); * } * } * foreach (int? duration in Durations) { * if (duration.HasValue) Result += duration.Value / alarmDuration; * }*/ List <KPI_OverLimitRecordEntity> OverRecords; using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { foreach (String TagID in Tags) { if (!IsCalcShift) { OverRecords = DataAccess.GetOverLimitRecords(BeginTime, EndTime, TagID); Count = (from p in OverRecords where p.Duration >= alarmDuration select p.Duration).Count(); Counts.Add(Count); } if (IsCalcShift) { OverRecords = DataAccess.GetShiftOverLimitRecords(BeginTime, EndTime, TagID); Count = (from p in OverRecords where p.Duration >= alarmDuration select p.Duration).Count(); Counts.Add(Count); } } } return(Counts.Sum()); }
private object GetAlarmCount(String tags, double alarmDuration) { String[] Tags = tags.Split(','); List <int?> Durations = new List <int?>(); double Duration = 0.0f;//指标超限时长(单位:秒) using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { foreach (String TagID in Tags) { Durations.Add(DataAccess.GetOverLimitRecords(BeginTime, EndTime, TagID).Sum(p => p.Duration)); } } if (Durations.Count > 0) { Duration = Durations.Max().Value; } return(Math.Ceiling(Duration / alarmDuration)); }
private double SACountByType(string tags, int alarmType) { double Result = 0.0f; String[] Tags = tags.Split(','); List <int> Durations = new List <int>(); using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { foreach (String TagID in Tags) { if (!IsCalcShift) { Durations.Add(DataAccess.GetOverLimitRecords(BeginTime, EndTime, TagID, alarmType).Count()); } if (IsCalcShift) { Durations.Add(DataAccess.GetShiftOverLimitRecords(BeginTime, EndTime, TagID, alarmType).Count()); } } } Result = Durations.Sum(); return(Result); }
private double SADurationByType(String tags, int alarmType) { double Result = 0.0f; String[] Tags = tags.Split(','); List <int?> Durations = new List <int?>(); using (KPI_OverLimitRecordDal DataAccess = new KPI_OverLimitRecordDal()) { foreach (String TagID in Tags) { if (!IsCalcShift) { Durations.Add(DataAccess.GetOverLimitRecords(BeginTime, EndTime, TagID, alarmType).Sum(p => p.Duration)); } if (IsCalcShift) { Durations.Add(DataAccess.GetShiftOverLimitRecords(BeginTime, EndTime, TagID, alarmType).Sum(p => p.Duration)); } } } Result = Convert.ToDouble(Durations.Sum()); //超限时长单位:秒 Result = Math.Ceiling(Result / 60); //超限时长转换为分钟 return(Result); }