public BasicResponse <List <RealDataDataInfo> > GetRealData(GetRealDataRequest realMessageRequest) { var responsestr = HttpClientHelper.Post(Webapi + "/v1/realmessage/getrealdata?token=" + Token, JSONHelper.ToJSONString(realMessageRequest), 10); return(JSONHelper.ParseJSONString <BasicResponse <List <RealDataDataInfo> > >(responsestr)); }
/// <summary> /// 获取所有实时数据 /// </summary> /// <returns></returns> //public static DataTable GetRealData() //{ // DataTable dt = null; // try // { // if (StaticClass.ServerConet) // { // var response = realMessageService.GetRealData(); // if (response.Data != null) // { // dt = response.Data; // } // } // } // catch // { // OprFuction.SetServerConct(); // } // return dt; //} /// <summary> /// 修改为增量获取 20170719 /// </summary> /// <returns></returns> public static DataTable GetRealData() { DataTable dt = new DataTable(); dt.TableName = "point"; DataRow row; StateToClient state = new StateToClient(); dt.Columns.Add("point", typeof(string)); dt.Columns.Add("bj", typeof(string)); dt.Columns.Add("ssz", typeof(string)); dt.Columns.Add("zt", typeof(string)); dt.Columns.Add("sbzt", typeof(string)); dt.Columns.Add("voltage", typeof(string)); dt.Columns.Add("dldj", typeof(string)); dt.Columns.Add("time", typeof(string)); dt.Columns.Add("NCtrlSate", typeof(string)); dt.Columns.Add("GradingAlarmLevel", typeof(string)); dt.Columns.Add("StationDyType", typeof(string)); try { if (StaticClass.ServerConet) { GetRealDataRequest request = new GetRealDataRequest(); //request.LastRefreshRealDataTime = lastRefreshRealDataTime; var getAllPointResponse = realMessageService.GetRealData(request); if (getAllPointResponse.Data != null && getAllPointResponse.Data.Count > 0) { foreach (var item in getAllPointResponse.Data) { //if (item.DttStateTime > lastRefreshRealDataTime) //{ // lastRefreshRealDataTime = item.DttStateTime;//更新最后实时值最后获取时间 //} #region 加载设备实时信息 row = dt.NewRow(); row["point"] = item.Point; row["ssz"] = item.Ssz; if (item.DevClass != null) { if (item.DevClass.Contains("甲烷")) { if (item.Ssz == "0") { item.Ssz = "0.00"; row["ssz"] = item.Ssz; } } } row["zt"] = item.DataState; row["NCtrlSate"] = item.NCtrlSate; //获取控制量馈电状态 20170725 if ((item.Bz4 & 0x0002) == 2) //休眠 { row["sbzt"] = state.EqpState33; row["zt"] = state.EqpState33; row["ssz"] = "休眠"; } else if ((item.Bz4 & 0x0004) == 4)//检修 { row["sbzt"] = state.EqpState34; } else if ((item.Bz4 & 0x0008) == 8)//标校 { row["sbzt"] = state.EqpState23; } else { row["sbzt"] = item.State; } row["bj"] = item.Alarm; row["time"] = item.Zts; row["voltage"] = Math.Round(item.Voltage, 1);//电压/电量 20180622 row["GradingAlarmLevel"] = item.GradingAlarmLevel; row["StationDyType"] = item.StationDyType; if (item.DevProperty == "分站") { if (item.Voltage > 0) { row["dldj"] = item.Voltage.ToString("f1") + " %"; } else { row["dldj"] = "0"; } } else { //if (item.Voltage == 1) //{ // row["dldj"] = "<9.0 V"; //} //else if (item.Voltage == 2) //{ // row["dldj"] = "9.0~16.5 V"; //} //else if (item.Voltage == 3) //{ // row["dldj"] = "16.5~24.0 V"; //} //else if (item.Voltage == 4) //{ // row["dldj"] = ">24.0 V"; //} //else //{ row["dldj"] = item.Voltage.ToString("f1"); //} } dt.Rows.Add(row); #endregion } } } } catch (Exception ex) { OprFuction.SetServerConct(); LogHelper.Error("获取所有实时数据", ex); } return(dt); }
public BasicResponse <List <RealDataDataInfo> > GetRealData(GetRealDataRequest realMessageRequest) { return(realMessageService.GetRealData(realMessageRequest)); }
private void GetCalibrationDue() { try { List <EnumcodeInfo> enumcodeInfos = new List <EnumcodeInfo>(); EnumcodeInfo enumcodeInfo; EnumcodeGetByEnumTypeIDRequest enumcoderequest = new EnumcodeGetByEnumTypeIDRequest(); enumcoderequest.EnumTypeId = "3"; var result = enumcodeService.GetEnumcodeByEnumTypeID(enumcoderequest); if (result.IsSuccess & result.Data != null) { enumcodeInfos = result.Data; } //获取设备类型及测点定义基础数据 if (deviceDefineList.Count == 0 || bIsDevChange()) { deviceDefineList = deviceDefineService.GetAllDeviceDefineCache().Data; pointDefineList = pointDefineService.GetAllPointDefineCache().Data; } GetRealDataRequest request = new GetRealDataRequest(); realDataList = realMessageService.GetRealData(request).Data; //标效及传感器到期提醒 //查询近90天内的标效记录(统计前一天,及之前90天的记录) DateTime startTime = DateTime.Parse(DateTime.Now.AddDays(-91).ToShortDateString()); DateTime endTime = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59"); DataTable calibrationRecord = ClientAlarmServer.GetCalibrationRecord(startTime, endTime); //按设备类型循环获取未标校、到期的传感器数量 int NoCalibrationCount = 0; int DueCount = 0; foreach (Jc_DevInfo dev in deviceDefineList) { //2018.5.9 by AI enumcodeInfo = enumcodeInfos.FirstOrDefault(a => a.LngEnumValue == dev.Bz4); if (enumcodeInfo == null) { //LogHelper.Error("【GetCalibrationDue】枚举中未找到设备:" + dev.Bz4); continue; } int tempCalibrationTime = 0; int.TryParse(dev.Pl4.ToString(), out tempCalibrationTime);//标校周期 List <Jc_DefInfo> pointList = pointDefineList.FindAll(a => a.Devid == dev.Devid); if (tempCalibrationTime > 0) { #region 标效周期报警 //计算当前设备类型下面的传感器是否到标效期 foreach (Jc_DefInfo def in pointList) { DataRow[] dr = calibrationRecord.Select("point='" + def.Point + "' and stime<='" + endTime + "'", "stime desc"); if (dr.Length > 0) { TimeSpan ts = endTime - DateTime.Parse(dr[0]["stime"].ToString()); if ((int)ts.TotalDays >= tempCalibrationTime)//如果上一次标校记录时间超过了设置的标校时间周期,则记入未标校数量 { NoCalibrationCount++; SensorCalibrationInfo tempSensorCalibrationInfo = new SensorCalibrationInfo(); tempSensorCalibrationInfo.Point = def.Point; tempSensorCalibrationInfo.Position = def.Wz; tempSensorCalibrationInfo.DevName = def.DevName; tempSensorCalibrationInfo.SetCalibrationTime = tempCalibrationTime.ToString(); tempSensorCalibrationInfo.LastCalibrationTime = dr[0]["stime"].ToString(); tempSensorCalibrationInfo.CalibrationDays = ((int)(ts.TotalDays)).ToString(); tempSensorCalibrationInfo.id = dr[0]["id"].ToString(); tempSensorCalibrationInfo.pointid = def.PointID; if (ClientAlarmServer.sensorCalibrationInfoList.Find(a => a.Point == tempSensorCalibrationInfo.Point) == null) { ClientAlarmServer.sensorCalibrationInfoList.Add(tempSensorCalibrationInfo); } } else { int index = ClientAlarmServer.sensorCalibrationInfoList.FindIndex(a => a.Point == def.Point); if (index >= 0) { ClientAlarmServer.sensorCalibrationInfoList.RemoveAt(index); } } } else//未找到标校记录,则直接记入未标校 { NoCalibrationCount++; SensorCalibrationInfo tempSensorCalibrationInfo = new SensorCalibrationInfo(); tempSensorCalibrationInfo.Point = def.Point; tempSensorCalibrationInfo.Position = def.Wz; tempSensorCalibrationInfo.DevName = def.DevName; tempSensorCalibrationInfo.SetCalibrationTime = tempCalibrationTime.ToString(); tempSensorCalibrationInfo.LastCalibrationTime = "未记录"; tempSensorCalibrationInfo.CalibrationDays = "-"; tempSensorCalibrationInfo.pointid = def.PointID; //tempSensorCalibrationInfo.id = dr[0]["id"].ToString(); if (ClientAlarmServer.sensorCalibrationInfoList.Find(a => a.Point == tempSensorCalibrationInfo.Point) == null) { ClientAlarmServer.sensorCalibrationInfoList.Add(tempSensorCalibrationInfo); } } } #endregion } } //清除已删除的测点 foreach (SensorCalibrationInfo tempSensorCalibrationInfo in ClientAlarmServer.sensorCalibrationInfoList) { if (pointDefineList.FindAll(a => a.Point == tempSensorCalibrationInfo.Point).Count == 0)//如果测点定义缓存中不存在测点,则清除未标校集合中的记录 { ClientAlarmServer.sensorCalibrationInfoList.Remove(tempSensorCalibrationInfo); } } } catch (Exception ex) { LogHelper.Error(ex); } }