示例#1
0
        public JsonResult GeneralGridHistory(GeneralHistoryModel model, PageInfo pageInfo)
        {
            string items = "[";


            string[] columns = model.Fields.Split(',');
            if (!string.IsNullOrWhiteSpace(model.DeviceID))
            {
                string sdate = model.StartDate;
                string edate = model.EndDate;
                InfluxDBHistoryResult realResult = mWebInfluxDbManager.DbQuery_History(model.ServerID, model.CommunicateID, model.DeviceID, Convert.ToDateTime(sdate), Convert.ToDateTime(edate), pageInfo.limit, pageInfo.page, " DESC ");
                foreach (var s in realResult.Seres)
                {
                    List <int> indexs = new List <int>();
                    for (int i = 0; i < s.Values.Count; i++)
                    {
                        string jsonrow = "";
                        int    index   = s.Columns.IndexOf("time");
                        object time    = s.Values[i][index];
                        jsonrow += "{";
                        jsonrow += "\"DateStampTime\":\"" + (time != null ? time.ToString() : "") + "\"";

                        foreach (string str in columns)
                        {
                            try
                            {
                                index = -1;
                                index = s.Columns.IndexOf("field_" + str.Trim().ToLower().ToString() + "_value");
                                if (index >= 0)
                                {
                                    object v = s.Values[i][index];

                                    jsonrow += ",\"" + str + "\":\"" + (v != null ? v.ToString() : "") + "\"";
                                }
                            }
                            catch
                            {
                                continue;
                            }
                        }
                        jsonrow += "},";

                        items += jsonrow;
                    }
                }
                items += "]";
                var result = Pager.Paging2(items, realResult.RecordCount);
                //读取以下的实时数据,从influxDB中读取
                return(Json(result, "application/text", JsonRequestBehavior.AllowGet));
            }
            else
            {
                var result = Pager.Paging2("", 0);
                return(Json(result, "application/text", JsonRequestBehavior.AllowGet));
            }
        }
示例#2
0
        private JsonResult ApiQueryHistoryData(ApiSerieConfig serieConfig, string serverid, string communicateid, string deviceid, int charttype = 1, string sdate = "", string edate = "", int pagesize = 1000)
        {
            //获取对应的曲线配置信息

            List <ApiSerieConfigModel> Items = serieConfig.Series;



            ///初始化曲线对象
            EChartOption chartOption = new EChartOption();

            chartOption.xAxis              = new Axis[1];
            chartOption.xAxis[0]           = new Axis();
            chartOption.xAxis[0].gridIndex = 1;
            chartOption.xAxis[0].type      = "time";
            chartOption.xAxis[0].name      = "时间";
            List <Axis> yaxis = new List <Axis>();
            int         index = 0;

            string[] legend = new string[Items.Count()];

            foreach (var item in Items)
            {
                yaxis.Add(new Axis()
                {
                    gridIndex = index, name = item.SerieTitle, type = "value"
                });
                legend[index] = item.SerieTitle;
                index++;
            }
            chartOption.legend.data = legend;
            chartOption.yAxis       = yaxis.ToArray();
            //初始化对象结束
            if (sdate == null || sdate == "")
            {
                sdate = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm:ss");
            }
            if (edate == null || edate == "")
            {
                edate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            }
            chartOption.series = new Series[Items.Count()];

            InfluxDBHistoryResult realResult = mWebInfluxDbManager.DbQuery_History(serverid, communicateid, deviceid, Convert.ToDateTime(sdate), Convert.ToDateTime(edate), 10000, 1, " ASC ");

            if (realResult != null)
            {
                var datas = realResult.Seres;
                if (datas != null && datas.Count() > 0)
                {
                    var onedata = datas.First();
                    int sindex  = 0;
                    foreach (var item in Items)
                    {
                        chartOption.series[sindex] = new Series();

                        chartOption.series[sindex].name            = item.SerieTitle;
                        chartOption.series[sindex].lineStyle.color = item.SerieColor;
                        chartOption.series[sindex].lineStyle.width = int.Parse(item.SerieWidth);
                        chartOption.series[sindex].itemStyle       = null;
                        chartOption.series[sindex].data            = new double[onedata.Values.Count];
                        chartOption.series[sindex].type            = item.SerieType;
                        chartOption.series[sindex].showSymbol      = item.ShowSymbol == "1" ? true : false;
                        chartOption.series[sindex].symbol          = item.SymbolType;
                        chartOption.series[sindex].symbolSize      = int.Parse(item.SymbolSize);
                        sindex++;
                    }
                    string[] axisData = new string[onedata.Values.Count];
                    //获取的数据按照时间先后
                    int dataindex = onedata.Values.Count() - 1;

                    foreach (var value in onedata.Values)
                    {
                        //获取采集时间
                        object objx = onedata.Values[dataindex][onedata.Columns.IndexOf("time")];
                        axisData[dataindex] = objx != null?objx.ToString() : "";

                        //////////////////////////
                        sindex = 0;
                        foreach (var item in Items)
                        {
                            try
                            {
                                int recordindex = onedata.Columns.IndexOf("field_" + item.SerieName.Trim().ToLower() + "_value");
                                if (recordindex >= 0)
                                {
                                    object objy = onedata.Values[dataindex][recordindex];
                                    chartOption.series[sindex].data[dataindex] = Convert.ToDouble(objy);
                                    chartOption.series[sindex].id = item.SerieName;
                                }
                            }
                            catch
                            {
                            }

                            sindex++;
                        }
                        dataindex--;
                    }
                    chartOption.xAxis[0].data = axisData;//设置x轴数据,time格式的数据必须在Axis轴上进行设置
                }
            }

            //读取以下的实时数据,从influxDB中读取
            return(Json(chartOption, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        private JsonResult QueryHistorySummaryData(string groupid, string serverid, string communicateid, string deviceid, string period, string method, string fields = "", string series = "", int charttype = 1, string sdate = "", string edate = "", string serieclassify = "", int pagesize = 1000)
        {
            ///传递的曲线指标信息
            string serieindex = "'" + series.Trim().Replace(",", "','") + "'";

            string[] myfields = fields.Split(',');
            //获取对应的曲线配置信息
            IEnumerable <SerieConfigModel> allItems = SerieServer.GetByWhere(" where SerieName in(" + serieindex + ") and SerieClassify='" + serieclassify + "'");
            List <SerieConfigModel>        Items    = new List <SerieConfigModel>();

            foreach (var item in allItems)
            {
                if (myfields.Contains(item.SerieName))
                {
                    Items.Add(item);
                }
            }
            DeviceGroupModel pWell = DeviceGroupService.GetById(int.Parse(groupid));
            ///初始化曲线对象
            EChartOption chartOption = new EChartOption();

            chartOption.xAxis              = new Axis[1];
            chartOption.xAxis[0]           = new Axis();
            chartOption.xAxis[0].gridIndex = 1;
            chartOption.xAxis[0].type      = "time";
            chartOption.xAxis[0].name      = "时间";
            List <Axis> yaxis = new List <Axis>();
            int         index = 0;

            string[] legend = new string[Items.Count()];

            foreach (var item in Items)
            {
                yaxis.Add(new Axis()
                {
                    gridIndex = index, name = item.SerieTitle, type = "value"
                });
                legend[index] = item.SerieTitle;
                index++;
            }
            chartOption.legend.data = legend;
            chartOption.yAxis       = yaxis.ToArray();
            //初始化对象结束
            if (sdate == null || sdate == "")
            {
                sdate = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm:ss");
            }
            if (edate == null || edate == "")
            {
                edate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            }
            chartOption.series = new Series[Items.Count()];
            string returnFields = "  time";

            #region
            {
                foreach (var item in Items)
                {
                    returnFields += "," + method + "(field_" + item.SerieName.Trim().ToLower().ToString() + "_value) as field_" + item.SerieName.Trim().ToLower().ToString() + "_value";
                }
            }
            #endregion
            InfluxDBHistoryResult realResult = mWebInfluxDbManager.DbQuery_HistoryStatics(serverid, communicateid, deviceid, Convert.ToDateTime(sdate), Convert.ToDateTime(edate), pagesize, 1, " DESC ", period, returnFields);
            if (realResult != null)
            {
                var datas = realResult.Seres;
                if (datas != null && datas.Count() > 0)
                {
                    var onedata = datas.First();
                    int sindex  = 0;
                    foreach (var item in Items)
                    {
                        chartOption.series[sindex] = new Series();

                        chartOption.series[sindex].name            = item.SerieTitle;
                        chartOption.series[sindex].lineStyle.color = item.SerieColor;
                        chartOption.series[sindex].lineStyle.width = int.Parse(item.SerieWidth);
                        chartOption.series[sindex].itemStyle       = null;
                        chartOption.series[sindex].data            = new double[onedata.Values.Count];
                        chartOption.series[sindex].type            = item.SerieType;
                        chartOption.series[sindex].showSymbol      = item.ShowSymbol == "1" ? true : false;
                        chartOption.series[sindex].symbol          = item.SymbolType;
                        chartOption.series[sindex].symbolSize      = int.Parse(item.SymbolSize);
                        sindex++;
                    }
                    string[] axisData = new string[onedata.Values.Count];
                    //获取的数据按照时间先后
                    int dataindex = onedata.Values.Count() - 1;

                    foreach (var value in onedata.Values)
                    {
                        //获取采集时间
                        object objx = onedata.Values[dataindex][onedata.Columns.IndexOf("time")];
                        axisData[dataindex] = objx != null?objx.ToString() : "";

                        //////////////////////////
                        sindex = 0;
                        foreach (var item in Items)
                        {
                            try
                            {
                                string record      = item.SerieName.ToString().ToLower();
                                int    recordindex = onedata.Columns.IndexOf("field_" + record + "_value");
                                if (recordindex >= 0)
                                {
                                    object objy = onedata.Values[dataindex][recordindex];
                                    chartOption.series[sindex].data[dataindex] = Convert.ToDouble(objy);
                                    chartOption.series[sindex].id = item.SerieName;
                                }
                            }
                            catch
                            {
                            }

                            sindex++;
                        }
                        dataindex--;
                    }
                    chartOption.xAxis[0].data = axisData;//设置x轴数据,time格式的数据必须在Axis轴上进行设置
                }
            }

            //读取以下的实时数据,从influxDB中读取
            return(Json(chartOption, JsonRequestBehavior.AllowGet));
        }
示例#4
0
        /// <summary>
        /// 读取通用实时报警
        /// </summary>
        /// <returns></returns>
        public JsonResult GeneralRealAlarm(ScadaGreneralAlarmModel model, PageInfo pageInfo)
        {
            if (string.IsNullOrWhiteSpace(model.GroupIDString))
            {
                model.GroupIDString = "";
            }
            if (string.IsNullOrWhiteSpace(model.DeviceIDString))
            {
                model.DeviceIDString = "";
            }
            var objs = (List <DeviceGroupModel>)Session["AllDeviceList"];
            List <ScadaGreneralAlarmModel> alarms     = new List <ScadaGreneralAlarmModel>();
            InfluxDBHistoryResult          realResult = null;

            if (model.DeviceIDString == null || model.DeviceIDString == "")
            {
                List <string> dids   = new List <string>();
                string[]      groups = model.GroupIDString.Split(',');
                foreach (var item in objs)
                {
                    if (model.GroupId == 0 || model.GroupId == 1)
                    {
                        dids.Add(item.IO_DEVICE_ID.ToString());
                    }
                    else
                    {
                        if (groups.Contains(item.GroupId.ToString()))
                        {
                            dids.Add(item.IO_DEVICE_ID.ToString());
                        }
                    }
                }
                realResult = mWebInfluxDbManager.DbQuery_Alarms(dids.ToList(), "6h", model.IO_ALARM_TYPE, model.IO_ALARM_LEVEL, pageInfo.limit, pageInfo.page);
            }
            else
            {
                List <string> dids = model.DeviceIDString.Split(',').ToList();

                realResult = mWebInfluxDbManager.DbQuery_Alarms(dids.ToList(), "6h", model.IO_ALARM_TYPE, model.IO_ALARM_LEVEL, pageInfo.limit, pageInfo.page);
            }

            if (realResult != null && realResult.Seres.Count() > 0)
            {
                var s = realResult.Seres.First();
                for (int i = 0; i < s.Values.Count; i++)
                {
                    ScadaGreneralAlarmModel mymodel = new ScadaGreneralAlarmModel();

                    int index = s.Columns.IndexOf("time");

                    object time = s.Values[i][index];
                    mymodel.time = time != null?time.ToString() : "";



                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_date");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DATE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposalidea");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALIDEA = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposaluser");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALUSER = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_level");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_LEVEL = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_type");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_TYPE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_value");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_VALUE = v != null?v.ToString() : "";
                    }



                    index = -1;
                    index = s.Columns.IndexOf("field_io_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_NAME = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("tag_did");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_DEVICE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_cid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_COMMUNICATE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_sid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_SERVER_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_ioid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ID = v != null?v.ToString() : "";
                    }
                    index = -1;
                    index = s.Columns.IndexOf("tag_device_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.DEVICE_NAME = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_label");
                    if (index >= 0)
                    {
                        var search = objs.Find(x => x.IO_DEVICE_ID == mymodel.IO_DEVICE_ID);
                        if (search != null)
                        {
                            string[]      titles    = search.IOPARATITLES.Split(',');
                            List <string> ioids     = search.IOPARAS.Split(',').ToList();
                            int           nameindex = ioids.FindIndex(x => x == mymodel.IO_ID);
                            if (nameindex >= 0)
                            {
                                mymodel.IO_LABEL = titles[nameindex];
                            }
                        }
                    }

                    alarms.Add(mymodel);
                }
            }

            var result = Pager.Paging(alarms, realResult.RecordCount);

            //读取以下10行的实时数据,从influxDB中读取
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
示例#5
0
        /// <summary>
        /// 读取通用历史报警
        /// </summary>
        /// <returns></returns>
        public JsonResult GeneralQueryHistoryAlarm(GeneralHistoryAlarmFormModel model, PageInfo pageInfo)
        {
            if (string.IsNullOrWhiteSpace(model.DeviceID))
            {
                model.DeviceID = "";
            }
            if (string.IsNullOrWhiteSpace(model.ServerID))
            {
                model.ServerID = "";
            }
            if (string.IsNullOrWhiteSpace(model.CommunicateID))
            {
                model.ServerID = "";
            }
            if (string.IsNullOrWhiteSpace(model.Fields))
            {
                model.Fields = "";
            }

            var deviceModel = DeviceGroupService.GetModel(model.GroupID, model.ServerID, model.CommunicateID, model.DeviceID);

            List <ScadaGreneralAlarmModel> alarms     = new List <ScadaGreneralAlarmModel>();
            InfluxDBHistoryResult          realResult = null;


            realResult = mWebInfluxDbManager.DbQuery_Alarms(model.ServerID, model.CommunicateID, model.DeviceID, Convert.ToDateTime(model.StartDate), Convert.ToDateTime(model.EndDate), model.IO_ALARM_TYPE, model.IO_ALARM_LEVEL, pageInfo.limit, pageInfo.page);


            if (realResult != null && realResult.Seres.Count() > 0)
            {
                var s = realResult.Seres.First();
                for (int i = 0; i < s.Values.Count; i++)
                {
                    ScadaGreneralAlarmModel mymodel = new ScadaGreneralAlarmModel();

                    int index = s.Columns.IndexOf("time");

                    object time = s.Values[i][index];
                    mymodel.time = time != null?time.ToString() : "";



                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_date");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DATE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposalidea");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALIDEA = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposaluser");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALUSER = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_level");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_LEVEL = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_type");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_TYPE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_value");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_VALUE = v != null?v.ToString() : "";
                    }



                    index = -1;
                    index = s.Columns.IndexOf("field_io_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_NAME = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("tag_did");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_DEVICE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_cid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_COMMUNICATE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_sid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_SERVER_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_ioid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ID = v != null?v.ToString() : "";
                    }
                    index = -1;
                    index = s.Columns.IndexOf("tag_device_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.DEVICE_NAME = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_label");
                    if (index >= 0)
                    {
                        if (deviceModel != null)
                        {
                            string[]      titles    = deviceModel.IOPARATITLES.Split(',');
                            List <string> ioids     = deviceModel.IOPARAS.Split(',').ToList();
                            int           nameindex = ioids.FindIndex(x => x == mymodel.IO_ID);
                            if (nameindex >= 0)
                            {
                                mymodel.IO_LABEL = titles[nameindex];
                            }
                        }
                    }

                    alarms.Add(mymodel);
                }
            }

            var result = Pager.Paging(alarms, realResult.RecordCount);

            //读取以下10行的实时数据,从influxDB中读取
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
示例#6
0
        /// <summary>
        /// 读取单井实时报警
        /// </summary>
        /// <returns></returns>
        public JsonResult WellRealAlarm(WellScadaAlarmModel model, PageInfo pageInfo)
        {
            List <WellScadaAlarmModel> alarms     = new List <WellScadaAlarmModel>();
            InfluxDBHistoryResult      realResult = null;

            if (model.OrganizeId == 0 || model.OrganizeId == 1)
            {
                if (model.WellID == null || model.WellID == "" || model.WellID == "0")
                {
                    //if(string.IsNullOrEmpty(model.AllDeviceIDList))
                    //{
                    //    var Wells = WellService.GetAll(null, null).ToList();
                    //    List<string> strs = new List<string>();
                    //    foreach (var item in Wells)
                    //    {
                    //        strs.Add(item.IO_DeviceID);
                    //    }
                    //    model.AllDeviceIDList = string.Join(",", strs.ToArray());

                    //}
                    string[] dids = model.AllDeviceIDList.Split(new char[1] {
                        ','
                    }, StringSplitOptions.RemoveEmptyEntries);
                    realResult = mWebInfluxDbManager.DbQuery_Alarms(dids.ToList(), "6h", model.IO_ALARM_TYPE, model.IO_ALARM_LEVEL, pageInfo.limit, pageInfo.page);
                }
                else
                {
                    string[] dids = model.WellID.Split(new char[1] {
                        ','
                    }, StringSplitOptions.RemoveEmptyEntries);
                    realResult = mWebInfluxDbManager.DbQuery_Alarms(dids.ToList(), "6h", model.IO_ALARM_TYPE, model.IO_ALARM_LEVEL, pageInfo.limit, pageInfo.page);
                }
            }
            else
            {
                if (model.WellID == null || model.WellID == "")
                {
                    string[] dids = model.WellID.Split(new char[1] {
                        ','
                    }, StringSplitOptions.RemoveEmptyEntries);
                    realResult = mWebInfluxDbManager.DbQuery_Alarms(dids.ToList(), "6h", model.IO_ALARM_TYPE, model.IO_ALARM_LEVEL, pageInfo.limit, pageInfo.page);
                }
            }

            if (realResult != null && realResult.Seres.Count() > 0)
            {
                var s = realResult.Seres.First();
                for (int i = 0; i < s.Values.Count; i++)
                {
                    WellScadaAlarmModel mymodel = new WellScadaAlarmModel();

                    int index = s.Columns.IndexOf("time");

                    object time = s.Values[i][index];
                    mymodel.time = time != null?time.ToString() : "";



                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_date");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DATE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposalidea");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALIDEA = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposaluser");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALUSER = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_level");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_LEVEL = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_type");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_TYPE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_value");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_VALUE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_label");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_LABEL = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("field_io_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_NAME = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("tag_did");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_DEVICE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_cid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_COMMUNICATE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_sid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_SERVER_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_ioid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ID = v != null?v.ToString() : "";
                    }
                    index = -1;
                    index = s.Columns.IndexOf("tag_device_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.DEVICE_NAME = v != null?v.ToString() : "";
                    }
                    alarms.Add(mymodel);
                }
            }

            var result = Pager.Paging(alarms, realResult.RecordCount);

            //读取以下10行的实时数据,从influxDB中读取
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
示例#7
0
        public JsonResult QueryWellHistoryAlarm(WellScadaAlarmModel model, PageInfo pageInfo)
        {
            List <WellScadaAlarmModel> alarms     = new List <WellScadaAlarmModel>();
            InfluxDBHistoryResult      realResult = null;

            if (string.IsNullOrEmpty(model.WellID))
            {
                realResult = null;
            }
            else
            {
                WellModel well = WellService.GetById(int.Parse(model.WellID));
                if (well != null)
                {
                    realResult = mWebInfluxDbManager.DbQuery_Alarms(well.IO_ServerID, well.IO_CommunicateID, well.IO_DeviceID, Convert.ToDateTime(model.StartDate), Convert.ToDateTime(model.EndDate), model.IO_ALARM_TYPE, model.IO_ALARM_LEVEL, pageInfo.limit, pageInfo.page);
                }
            }
            if (realResult != null && realResult.Seres.Count() > 0)
            {
                var s = realResult.Seres.First();
                for (int i = 0; i < s.Values.Count; i++)
                {
                    WellScadaAlarmModel mymodel = new WellScadaAlarmModel();

                    int index = s.Columns.IndexOf("time");

                    object time = s.Values[i][index];
                    mymodel.time = time != null?time.ToString() : "";



                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_date");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DATE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposalidea");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALIDEA = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposaluser");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALUSER = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_level");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_LEVEL = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_type");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_TYPE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_value");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_VALUE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_label");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_LABEL = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("field_io_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_NAME = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("tag_did");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_DEVICE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_cid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_COMMUNICATE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_sid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_SERVER_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_ioid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ID = v != null?v.ToString() : "";
                    }
                    index = -1;
                    index = s.Columns.IndexOf("tag_device_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.DEVICE_NAME = v != null?v.ToString() : "";
                    }
                    alarms.Add(mymodel);
                }
            }

            var result = Pager.Paging(alarms, realResult.RecordCount);

            //读取以下10行的实时数据,从influxDB中读取
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
示例#8
0
        /// <summary>
        /// 读取通用实时报警
        /// </summary>
        /// <returns></returns>
        public JsonResult ScadaTableRealAlarm(JsonExcel excelModels)
        {
            var result = Pager.Paging(null, 0);

            if (excelModels == null)
            {
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            if (excelModels.devices == null || excelModels.devices.Count <= 0)
            {
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            var objs = excelModels.devices;
            List <ScadaGreneralAlarmModel> alarms     = new List <ScadaGreneralAlarmModel>();
            InfluxDBHistoryResult          realResult = null;

            List <string> dids       = new List <string>();
            List <string> tableioids = new List <string>();

            foreach (var item in excelModels.devices)
            {
                if (!dids.Contains(item.IO_DEVICE_ID.ToString()))
                {
                    dids.Add(item.IO_DEVICE_ID.ToString());
                }
                if (!tableioids.Contains(item.CurrentIO))
                {
                    tableioids.Add(item.CurrentIO);
                }
            }
            realResult = mWebInfluxDbManager.DbQuery_Alarms(dids.ToList(), "6h", "", "", 2000, 1);



            if (realResult != null && realResult.Seres.Count() > 0)
            {
                var s = realResult.Seres.First();
                for (int i = 0; i < s.Values.Count; i++)
                {
                    ScadaGreneralAlarmModel mymodel = new ScadaGreneralAlarmModel();

                    int index = s.Columns.IndexOf("time");

                    object time = s.Values[i][index];
                    mymodel.time = time != null?time.ToString() : "";



                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_date");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DATE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposalidea");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALIDEA = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposaluser");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALUSER = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_level");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_LEVEL = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_type");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_TYPE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_value");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_VALUE = v != null?v.ToString() : "";
                    }



                    index = -1;
                    index = s.Columns.IndexOf("field_io_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_NAME = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("tag_did");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_DEVICE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_cid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_COMMUNICATE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_sid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_SERVER_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_ioid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ID = v != null?v.ToString() : "";
                    }
                    index = -1;
                    index = s.Columns.IndexOf("tag_device_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.DEVICE_NAME = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_label");
                    if (index >= 0)
                    {
                        var search = objs.Find(x => x.IO_DEVICE_ID == mymodel.IO_DEVICE_ID);
                        if (search != null)
                        {
                            string[]      titles    = search.IOPARATITLES.Split(',');
                            List <string> ioids     = search.IOPARAS.Split(',').ToList();
                            int           nameindex = ioids.FindIndex(x => x == mymodel.IO_ID);
                            if (nameindex >= 0)
                            {
                                mymodel.IO_LABEL = titles[nameindex];
                            }
                        }
                    }
                    if (tableioids.Contains(mymodel.IO_ID))
                    {
                        alarms.Add(mymodel);
                    }
                }
            }

            result = Pager.Paging(alarms, realResult.RecordCount);
            //读取以下10行的实时数据,从influxDB中读取
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
示例#9
0
        /// <summary>
        /// 读取自定义表历史报警
        /// </summary>
        /// <returns></returns>
        public JsonResult ScadaTableHistoryAlarm(ScadaTableAlarmSearchForm model, PageInfo pageInfo)
        {
            var result = Pager.Paging(null, 0);

            if (model.AlarmIOPath.Trim() == "")
            {
                return(Json(result, "application/text", JsonRequestBehavior.AllowGet));
            }
            string[] paras = model.AlarmIOPath.Split('/');
            if (paras.Length < 4)
            {
                return(Json(result, "application/text", JsonRequestBehavior.AllowGet));
            }
            model.ServerID      = paras[1];
            model.CommunicateID = paras[2];
            model.DeviceID      = paras[3];
            model.GroupId       = int.Parse(paras[0]);
            IEnumerable <DeviceGroupModel> groupdevices = DeviceGroupService.GetByWhere(" where GroupId=" + model.GroupId + " and  IO_SERVER_ID='" + model.ServerID + "' and IO_COMM_ID='" + model.CommunicateID + "' and IO_DEVICE_ID='" + model.DeviceID + "'");
            DeviceGroupModel deviceModel = null;

            if (groupdevices.Count() > 0)
            {
                deviceModel = groupdevices.First();
            }
            string[]      columns = deviceModel.IOPARANAMES.Split(',');
            string[]      titles  = deviceModel.IOPARATITLES.Split(',');
            List <string> ioids   = deviceModel.IOPARAS.Split(',').ToList();
            List <ScadaGreneralAlarmModel> alarms     = new List <ScadaGreneralAlarmModel>();
            InfluxDBHistoryResult          realResult = null;


            realResult = mWebInfluxDbManager.DbQuery_Alarms(model.ServerID, model.CommunicateID, model.DeviceID, Convert.ToDateTime(model.AlarmStartDate), Convert.ToDateTime(model.AlarmEndDate), "", "", pageInfo.limit, pageInfo.page);


            if (realResult != null && realResult.Seres.Count() > 0)
            {
                var s = realResult.Seres.First();
                for (int i = 0; i < s.Values.Count; i++)
                {
                    ScadaGreneralAlarmModel mymodel = new ScadaGreneralAlarmModel();

                    int index = s.Columns.IndexOf("time");

                    object time = s.Values[i][index];
                    mymodel.time = time != null?time.ToString() : "";



                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_date");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DATE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposalidea");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALIDEA = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposaluser");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALUSER = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_level");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_LEVEL = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_type");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_TYPE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_value");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_VALUE = v != null?v.ToString() : "";
                    }



                    index = -1;
                    index = s.Columns.IndexOf("field_io_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_NAME = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("tag_did");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_DEVICE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_cid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_COMMUNICATE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_sid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_SERVER_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_ioid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ID = v != null?v.ToString() : "";
                    }
                    index = -1;
                    index = s.Columns.IndexOf("tag_device_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.DEVICE_NAME = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_label");
                    if (index >= 0)
                    {
                        if (deviceModel != null)
                        {
                            int nameindex = ioids.FindIndex(x => x == mymodel.IO_ID);
                            if (nameindex >= 0)
                            {
                                mymodel.IO_LABEL = titles[nameindex];
                            }
                        }
                    }

                    alarms.Add(mymodel);
                }
            }

            result = Pager.Paging(alarms, realResult.RecordCount);
            //读取以下10行的实时数据,从influxDB中读取
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
示例#10
0
        public JsonResult ScadaTableHistory(ScadaTableSearchForm model, PageInfo pageInfo)
        {
            if (model.IOPath.Trim() == "")
            {
                var result = Pager.Paging2(null, 0);
                return(Json(result, "application/text", JsonRequestBehavior.AllowGet));
            }
            string[] paras = model.IOPath.Split('/');
            if (paras.Length < 4)
            {
                var result = Pager.Paging2(null, 0);
                return(Json(result, "application/text", JsonRequestBehavior.AllowGet));
            }
            model.ServerID      = paras[1];
            model.CommunicateID = paras[2];
            model.DeviceID      = paras[3];
            model.GroupId       = int.Parse(paras[0]);
            IEnumerable <DeviceGroupModel> groupdevices = DeviceGroupService.GetByWhere(" where GroupId=" + model.GroupId + " and  IO_SERVER_ID='" + model.ServerID + "' and IO_COMM_ID='" + model.CommunicateID + "' and IO_DEVICE_ID='" + model.DeviceID + "'");
            DeviceGroupModel pItem = null;

            if (groupdevices.Count() > 0)
            {
                pItem = groupdevices.First();
            }

            string items = "[";

            string[] columns = pItem.IOPARANAMES.Split(',');
            string[] titles  = pItem.IOPARATITLES.Split(',');
            if (!string.IsNullOrWhiteSpace(model.DeviceID))
            {
                string sdate = model.StartDate;
                string edate = model.EndDate;
                InfluxDBHistoryResult realResult = mWebInfluxDbManager.DbQuery_History(model.ServerID, model.CommunicateID, model.DeviceID, Convert.ToDateTime(sdate), Convert.ToDateTime(edate), pageInfo.limit, pageInfo.page, " DESC ");
                foreach (var s in realResult.Seres)
                {
                    List <int> indexs = new List <int>();
                    for (int i = 0; i < s.Values.Count; i++)
                    {
                        string jsonrow = "";
                        int    index   = s.Columns.IndexOf("time");
                        object time    = s.Values[i][index];
                        jsonrow += "{";
                        jsonrow += "\"DateStampTime\":\"" + (time != null ? time.ToString() : "") + "\"";

                        foreach (string str in columns)
                        {
                            try
                            {
                                index = -1;
                                index = s.Columns.IndexOf("field_" + str.Trim().ToLower().ToString() + "_value");
                                if (index >= 0)
                                {
                                    object v = s.Values[i][index];

                                    jsonrow += ",\"" + str + "\":\"" + (v != null ? v.ToString() : "") + "\"";
                                }
                            }
                            catch
                            {
                                continue;
                            }
                        }
                        jsonrow += "},";

                        items += jsonrow;
                    }
                }
                items += "]";
                var result = Pager.Paging2(items, realResult.RecordCount);
                //读取以下的实时数据,从influxDB中读取
                return(Json(result, "application/text", JsonRequestBehavior.AllowGet));
            }
            else
            {
                var result = Pager.Paging2("", 0);
                return(Json(result, "application/text", JsonRequestBehavior.AllowGet));
            }
        }
示例#11
0
        public JsonResult QueryDefaultSeriesData(string groupid, string serverid, string communicateid, string deviceid, string paraid)
        {
            string sdate = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm:ss");
            string edate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            IEnumerable <DeviceGroupModel> groupdevices = DeviceGroupService.GetByWhere(" where GroupId=" + groupid + " and  IO_SERVER_ID='" + serverid + "' and IO_COMM_ID='" + communicateid + "' and IO_DEVICE_ID='" + deviceid + "'");
            DeviceGroupModel pWell = null;

            if (groupdevices.Count() > 0)
            {
                pWell = groupdevices.First();
            }

            if (pWell == null)
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }

            List <string> ioids     = pWell.IOPARAS.Split(',').ToList();
            List <string> names     = pWell.IOPARANAMES.Split(',').ToList();
            List <string> titles    = pWell.IOPARATITLES.Split(',').ToList();
            int           index     = ioids.FindIndex(X => X == paraid.Trim());
            string        seriename = "";

            if (index >= 0)
            {
                seriename = names[index];
            }
            IEnumerable <SerieConfigModel> allItems = SerieServer.GetByWhere(" where SerieName='" + seriename + "' and SerieClassify='" + pWell.SerieType + "'");
            SerieConfigModel serieConfig            = new SerieConfigModel();

            if (allItems.Count() > 0)
            {
                serieConfig = allItems.First();
            }
            else
            {
                serieConfig.SerieTitle = titles[index];
                serieConfig.SerieName  = seriename;
                serieConfig.SerieType  = "line";
            }
            ///初始化曲线对象
            EChartOption chartOption = new EChartOption();

            chartOption.xAxis              = new Axis[1];
            chartOption.xAxis[0]           = new Axis();
            chartOption.xAxis[0].gridIndex = 1;
            chartOption.xAxis[0].type      = "time";
            chartOption.xAxis[0].name      = "时间";
            chartOption.name = serieConfig.SerieTitle;
            List <Axis> yaxis = new List <Axis>();

            string legend = serieConfig.SerieTitle;

            yaxis.Add(new Axis()
            {
                gridIndex = 0, name = serieConfig.SerieTitle, type = "value"
            });
            chartOption.legend.data = new string[1] {
                legend
            };
            chartOption.yAxis = yaxis.ToArray();
            //初始化对象结束
            if (sdate == null || sdate == "")
            {
                sdate = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm:ss");
            }
            if (edate == null || edate == "")
            {
                edate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            }
            chartOption.series = new Series[1];

            InfluxDBHistoryResult realResult = mWebInfluxDbManager.DbQuery_History(serverid, communicateid, deviceid, Convert.ToDateTime(sdate), Convert.ToDateTime(edate), 10000, 1, " ASC ");

            if (realResult != null)
            {
                var datas = realResult.Seres;
                if (datas != null && datas.Count() > 0)
                {
                    var onedata = datas.First();

                    if (onedata != null)
                    {
                        chartOption.series[0]                 = new Series();
                        chartOption.series[0].name            = serieConfig.SerieTitle;
                        chartOption.series[0].lineStyle.color = serieConfig.SerieColor;
                        chartOption.series[0].lineStyle.width = int.Parse(serieConfig.SerieWidth);
                        chartOption.series[0].itemStyle       = null;
                        chartOption.series[0].data            = new double[onedata.Values.Count];
                        chartOption.series[0].type            = serieConfig.SerieType;
                        chartOption.series[0].showSymbol      = serieConfig.ShowSymbol == "1" ? true : false;
                        chartOption.series[0].symbol          = serieConfig.SymbolType;
                        chartOption.series[0].symbolSize      = int.Parse(serieConfig.SymbolSize);


                        string[] axisData = new string[onedata.Values.Count];
                        //获取的数据按照时间先后
                        int dataindex = onedata.Values.Count() - 1;

                        foreach (var value in onedata.Values)
                        {
                            //获取采集时间
                            object objx = onedata.Values[dataindex][onedata.Columns.IndexOf("time")];
                            axisData[dataindex] = objx != null?objx.ToString() : "";

                            //////////////////////////
                            try
                            {
                                int recordindex = onedata.Columns.IndexOf("field_" + serieConfig.SerieName.Trim().ToLower() + "_value");
                                if (recordindex >= 0)
                                {
                                    object objy = onedata.Values[dataindex][recordindex];
                                    chartOption.series[0].data[dataindex] = Convert.ToDouble(objy);
                                    chartOption.series[0].id = serieConfig.SerieName;
                                }
                            }
                            catch
                            {
                            }
                            dataindex--;
                        }
                        chartOption.xAxis[0].data = axisData;//设置x轴数据,time格式的数据必须在Axis轴上进行设置
                    }
                }
            }

            //读取以下的实时数据,从influxDB中读取
            return(Json(chartOption, JsonRequestBehavior.AllowGet));
        }
示例#12
0
        public JsonResult GetReadAlarm(JsIOAlarm alarm)
        {
            List <JsIOPara> alarms    = alarm.List;
            int             pagesize  = alarm.PageSize;
            int             pageindex = alarm.PageIndex;


            List <ScadaGreneralAlarmModel> results = new List <ScadaGreneralAlarmModel>();

            ///删除重复项

            for (int i = alarms.Count - 1; i >= 0; i--)
            {
                if (string.IsNullOrWhiteSpace(alarms.ElementAt(i).ServerID) || string.IsNullOrWhiteSpace(alarms.ElementAt(i).DeviceID) || string.IsNullOrWhiteSpace(alarms.ElementAt(i).ParaID) || string.IsNullOrWhiteSpace(alarms.ElementAt(i).CommunicateID))
                {
                    alarms.Remove(alarms.ElementAt(i));
                }
            }

            //读取所有的实时数据,并加载 mWebInfluxDbManager

            List <string> DeviceIds = new List <string>();

            foreach (JsIOPara res in alarms)
            {
                if (!DeviceIds.Contains(res.DeviceID))
                {
                    DeviceIds.Add(res.DeviceID);
                }
            }
            //6小时内的实时报警
            InfluxDBHistoryResult realResult = mWebInfluxDbManager.DbQuery_Alarms(DeviceIds, "1h", "", "", pagesize, pageindex);

            if (realResult != null && realResult.Seres.Count() > 0)
            {
                var s = realResult.Seres.First();
                for (int i = 0; i < s.Values.Count; i++)
                {
                    ScadaGreneralAlarmModel mymodel = new ScadaGreneralAlarmModel();

                    int index = s.Columns.IndexOf("time");

                    object time = s.Values[i][index];
                    mymodel.time = time != null?time.ToString() : "";



                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_date");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DATE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposalidea");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALIDEA = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_disposaluser");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_DISPOSALUSER = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_level");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_LEVEL = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_type");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_TYPE = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_alarm_value");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ALARM_VALUE = v != null?v.ToString() : "";
                    }



                    index = -1;
                    index = s.Columns.IndexOf("field_io_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_NAME = v != null?v.ToString() : "";
                    }


                    index = -1;
                    index = s.Columns.IndexOf("tag_did");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_DEVICE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_cid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_COMMUNICATE_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_sid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_SERVER_ID = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("tag_ioid");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_ID = v != null?v.ToString() : "";
                    }
                    index = -1;
                    index = s.Columns.IndexOf("tag_device_name");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.DEVICE_NAME = v != null?v.ToString() : "";
                    }

                    index = -1;
                    index = s.Columns.IndexOf("field_io_label");
                    if (index >= 0)
                    {
                        object v = s.Values[i][index];
                        mymodel.IO_LABEL = v != null?v.ToString() : "";
                    }
                    results.Add(mymodel);
                }
            }
            var result = Pager.Paging(results, realResult.RecordCount);

            //读取以下10行的实时数据,从influxDB中读取
            return(Json(result, JsonRequestBehavior.AllowGet));
        }