public JsonResult DeviceGroupList(int groupId) { var myList = DeviceGroupService.GetByWhere(" where GroupId=" + groupId); var unioaList = DeviceGroupService.GetListAll(); foreach (var item in unioaList) { item.GroupId = groupId; var source = myList.Where(x => x.IO_SERVER_ID == item.IO_SERVER_ID && x.IO_COMM_ID == item.IO_COMM_ID && x.IO_DEVICE_ID == item.IO_DEVICE_ID); if (source.Count() > 0) { var sorItem = source.First(); item.LAY_CHECKED = true; item.ALIASNAME = sorItem.ALIASNAME; item.IOPARAS = sorItem.IOPARAS; item.IOPARATITLES = sorItem.IOPARATITLES; item.IOPARANAMES = sorItem.IOPARANAMES; item.SerieType = sorItem.SerieType; item.UpdateCycle = sorItem.UpdateCycle; } else { item.ALIASNAME = item.IODeviceName; item.LAY_CHECKED = false; item.IOPARAS = ""; item.IOPARATITLES = ""; item.IOPARANAMES = ""; item.SerieType = ""; } } var result = new { code = 0, count = unioaList.Count(), data = unioaList }; return(Json(result, JsonRequestBehavior.AllowGet)); }
public JsonResult GetDevicePara(string ServerID, string CommunicateID, string DeviceID, string GroupID) { var myList = DeviceGroupService.GetByWhere(" where GroupId=" + GroupID); var selectItems = myList.Where(x => x.IO_SERVER_ID == ServerID && x.IO_COMM_ID == CommunicateID && x.IO_DEVICE_ID == DeviceID); var myItem = selectItems.First(); if (myItem != null) { List <string> ids = myItem.IOPARAS.ToString().Split(',').ToList(); List <string> titles = myItem.IOPARATITLES.ToString().Split(',').ToList(); var paras = ParaService.GetByWhere(" where IO_SERVER_ID='" + ServerID + "' and IO_COMM_ID='" + CommunicateID + "' and IO_DEVICE_ID='" + DeviceID + "'"); foreach (var item in paras) { int index = ids.FindIndex(x => x == item.IO_ID); if (index >= 0) { if (index < titles.Count) { item.IO_ALIASNAME = titles[index]; } item.LAY_CHECKED = true; } else { item.IO_ALIASNAME = item.IO_LABEL; item.LAY_CHECKED = false; } } var result = new { code = 0, count = paras.Count(), data = paras }; return(Json(result, JsonRequestBehavior.AllowGet)); } else { return(Json(null, JsonRequestBehavior.AllowGet)); } }
public JsonResult GetGroupDevice(int Id) { var myList = DeviceGroupService.GetByWhere(" where GroupId=" + Id); List <IOTreeSelect> treeSelectList = new List <IOTreeSelect>(); foreach (var item in myList) { IOTreeSelect tree = new IOTreeSelect { id = item.IO_DEVICE_ID.ToString(), name = item.ALIASNAME, CommunicateID = item.IO_COMM_ID, DeviceID = item.IO_DEVICE_ID, ServerID = item.IO_SERVER_ID, UpdateCycle = item.UpdateCycle, value = item.IO_DEVICE_ID, open = false }; treeSelectList.Add(tree); } return(Json(treeSelectList, JsonRequestBehavior.AllowGet)); }
/// <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)); }
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)); } }
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)); }