예제 #1
0
        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));
        }
예제 #2
0
        /// <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));
 }
예제 #4
0
        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);
            }
        }