/// <summary> /// 新增煤矿上传监控数据 /// </summary> /// <param name="mess"></param> public void AddNewData(System.Messaging.Message mess) { titles = mess.Label; datas = mess.Body.ToString(); string[] titleList = titles.Split(','); string[] rtmRows = datas.Split('\r'); string[] columns; try { foreach (string row in rtmRows) { if (!string.IsNullOrEmpty(row)) { columns = row.Split(','); if (columns.Length > 10) { MRtm rtm = new MRtm { CoalCode = titleList[0], CoalName = titleList[1], MonitorLRV = columns[6], MonitorURV = columns[7], AlarmURV = columns[8], AlarmLRV = columns[9], TurnOffValue = columns[10], TurnOnValue = columns[11], DevCode = columns[1], DevName = columns[2], DevAddress = columns[4], DevType = columns[3], DevUnit = columns[5], DevValue = decimal.Parse(columns[12]), DevState = columns[13], RealTime = columns[14], ChageStateTime = DateTime.Parse(columns[16]), MinValue = decimal.Parse(columns[12]), MinValueTime = columns[14], MaxValue = decimal.Parse(columns[12]), MaxValueTime = columns[14] }; rtmList.Add(rtm); } } } } catch (IndexOutOfRangeException) { } catch (NullReferenceException) { } catch (Exception) { } }
private string GetFinishSql(MRtm mrtm,CacheModel cm) { string sqlString = string.Empty; if (int.Parse(cm.State) > 4)//故障 sqlString = "UPDATE [TN_FaultRecode] SET [EndTime] = '" + mrtm.RealTime + "',[Duration] = '" + GetDuration(mrtm.RealTime, cm.Atime) + "' WHERE [CoalCode]='" + mrtm.CoalCode + "' AND [DevCode] = '" + mrtm.DevCode + "' AND [StartTime] = '" + cm.Atime + "';"; else if(int.Parse(cm.State) > 0)//报警 [AlarmETime] ,[Duration] ,[SwitchCount] ,[SwitchDetails] ,[DevMaxValue] ,[DevMaxTime] sqlString = "UPDATE [TN_AlarmRecode] SET [AlarmETime] = '" + mrtm.RealTime + "',[Duration] = '" + GetDuration(mrtm.RealTime, cm.Atime) + "',[SwitchCount]='0',[SwitchDetails]='',[DevMaxValue]='" + cm.MaxValue + "',[DevMaxTime]='" + cm.MaxValueTime + "' WHERE [CoalCode]='" + mrtm.CoalCode + "' AND [DevCode] = '" + mrtm.DevCode + "' AND [AlarmSTime] = '" + cm.Atime + "';"; return sqlString; }
private void MinuteDataAnaly(MRtm mrtm) { MRtm rtm = MinuteList.Find(m => m.CoalCode == mrtm.CoalCode && m.DevCode == mrtm.DevCode); if (rtm == null) MinuteList.Add(mrtm); else { if (mrtm.DevValue > rtm.MaxValue) { rtm.MaxValue = mrtm.DevValue; rtm.MaxValueTime = mrtm.RealTime; } else if (mrtm.DevValue < rtm.MinValue) { rtm.MinValue = mrtm.DevValue; rtm.MinValueTime = mrtm.RealTime; } rtm.DevAvgValue = (rtm.DevValue + mrtm.DevValue) / 2; rtm.DevAvgTime = DateTime.Parse(mrtm.RealTime); } }
/// <summary> /// 获得首次变态、变值的SQL语句 /// </summary> /// <param name="mrtm"></param> private string GetSaveSql(MRtm mrtm) { string sqlString = string.Empty; int state = int.Parse(mrtm.DevState); if (state > 4)//故障 sqlString = SQL_INSERT_FAULT + "'" + mrtm.CoalCode + "'," + "'" + mrtm.DevCode + "'," + "'" + mrtm.DevName + "'," + "'" + mrtm.DevType + "'," + "'" + mrtm.DevAddress + "'," + "'" + mrtm.DevUnit + "'," + "'" + mrtm.MonitorLRV + "'," + "'" + mrtm.MonitorURV + "'," + "'" + mrtm.AlarmLRV + "'," + "'" + mrtm.AlarmURV + "'," + "'" + mrtm.TurnOffValue + "'," + "'" + mrtm.TurnOnValue + "','" +mrtm.DevState+ "','" +mrtm.LinkSenId+"','"+ mrtm.ChageStateTime + "'," + "'" + mrtm.RealTime + "'," + "'0');"; else if(state >0) //报警 sqlString = SQL_INSERT_ALARMRECODE + "'" + mrtm.CoalCode + "'," + "'" + mrtm.DevCode + "'," + "'" + mrtm.DevName + "'," + "'" + mrtm.DevType + "'," + "'" + mrtm.DevAddress + "'," + "'" + mrtm.DevUnit + "'," + "'" + mrtm.MonitorLRV + "'," + "'" + mrtm.MonitorURV + "'," + "'" + mrtm.AlarmLRV + "'," + "'" + mrtm.AlarmURV + "'," + "'" + mrtm.TurnOffValue + "'," + "'" + mrtm.TurnOnValue + "'," + "'" + mrtm.ChageStateTime + "'," + "'" + mrtm.RealTime + "','0','','','"+mrtm.MaxValue+"','"+mrtm.MaxValueTime+"','"+mrtm.DevState+"');"; return sqlString; }
private void SwitchAnaly(MRtm sRtm, ref StringBuilder strBuilder) { #region 开关量变动分析 //开关量在缓存中找他上一次的状态 string sqlString = string.Empty; SwitchModel sm = smList.Find(s => s.CoalCode == sRtm.CoalCode && s.DevCode == sRtm.DevCode); if (sm == null) smList.Add(new SwitchModel { CoalCode = sRtm.CoalCode, DevCode = sRtm.DevCode, DevValue = sRtm.DevValue.ToString(), StratTime = sRtm.ChageStateTime }); else { if (sm.DevValue != sRtm.DevValue.ToString()) { sm.DevValue = sRtm.DevValue.ToString(); sqlString = SQL_INSERT_TURNANALY + "'" + sRtm.CoalCode + "'," + "'" + sRtm.DevCode + "'," + "'" + sRtm.DevName + "'," + "'" + sRtm.DevType + "'," + "'" + sRtm.DevAddress + "'," + "'" + sRtm.DevUnit + "'," + "'" + sm.DevValue + "'," + "'" + sm.StratTime.ToString() + "'," + "'" + sRtm.RealTime + "'," + "'" + GetDuration(sRtm.RealTime, sm.StratTime) + "');"; strBuilder.Append(sqlString); } } #endregion }