public ActionResult GetChartLineItem(DataTable dtSrouce, List <string> titleList, List <string> fiedValueList, Dictionary <string, string> dicItemCode) { List <KeyValuePair <string, string> > y = new List <KeyValuePair <string, string> >(); // List<string> y = new List<string>(); StringBuilder x = new StringBuilder(); StringBuilder title = new StringBuilder(); StringBuilder y1 = new StringBuilder(); // Dictionary<string, string> dicItemCode = new Dictionary<string, string>(); if (dtSrouce.Rows.Count > 0) { //foreach (var titleItem in titleList) // dicItemCode.Add(titleItem.ITEMCODE, titleItem.ITEMTEXT); foreach (DataRow dr in dtSrouce.Rows) { x.Append("'" + dr["PK_NAME"].ToString() + "',"); } foreach (var item in fiedValueList) { y1 = new StringBuilder(); foreach (DataRow drow in dtSrouce.Rows) { y1.Append("'" + drow[item].ToString() + "',"); } if (y1.Length > 0) { y1 = y1.Remove(y1.Length - 1, 1); } //y.Add(y1.ToString()); y.Add(new KeyValuePair <string, string>(dicItemCode[item], y1.ToString())); title.Append("'" + dicItemCode[item] + "',"); } if (x.Length > 0) { x = x.Remove(x.Length - 1, 1); } if (title.Length > 0) { title = title.Remove(title.Length - 1, 1); } } return(Json(EChartsHelper.GetBaseChart(x.ToString(), y, "", "", title.ToString(), "", "bar"))); }
public ActionResult getChartInfo(RequestData data) { DataTable dtData = NewMethod(data); //var dtData = MonitorData.GetMonitorData("", DateTime.Parse(Request.QueryString["startTime"]), DateTime.Parse(Request.QueryString["endTime"]), "C", Request.QueryString["Companyid"], Request.QueryString["selectData"], "GasItem,WaterItem"); StringBuilder x = new StringBuilder(); List <KeyValuePair <string, string> > y = new List <KeyValuePair <string, string> >(); StringBuilder y1 = new StringBuilder(); StringBuilder y2 = new StringBuilder(); StringBuilder y3 = new StringBuilder(); StringBuilder y4 = new StringBuilder(); StringBuilder y5 = new StringBuilder(); StringBuilder y6 = new StringBuilder(); StringBuilder y7 = new StringBuilder(); foreach (DataRow row in dtData.Rows) { x.Append("'" + row["AREA_NAME"].ToString() + "',"); y1.Append("'" + row["a25005_PFL_Value"].ToString() + "',"); y2.Append("'" + row["a24088_PFL_Value"].ToString() + "',"); y3.Append("'" + row["a25002_PFL_Value"].ToString() + "',"); y4.Append("'" + row["flowvocs_Value"].ToString() + "',"); y5.Append("'" + row["a01001_Value"].ToString() + "',"); y6.Append("'" + row["a01002_Value"].ToString() + "',"); y7.Append("'" + row["a25003_PFL_Value"].ToString() + "',"); } if (x.Length > 0) { x = x.Remove(x.Length - 1, 1); } if (y1.Length > 0) { y1 = y1.Remove(y1.Length - 1, 1); } if (y2.Length > 0) { y2 = y2.Remove(y2.Length - 1, 1); } if (y3.Length > 0) { y3 = y3.Remove(y3.Length - 1, 1); } if (y4.Length > 0) { y4 = y4.Remove(y4.Length - 1, 1); } if (y5.Length > 0) { y5 = y5.Remove(y5.Length - 1, 1); } if (y6.Length > 0) { y6 = y6.Remove(y6.Length - 1, 1); } if (y7.Length > 0) { y7 = y7.Remove(y7.Length - 1, 1); } y.Add(new KeyValuePair <string, string>("二甲苯", y1.ToString())); y.Add(new KeyValuePair <string, string>("非甲烷总烃", y2.ToString())); y.Add(new KeyValuePair <string, string>("苯", y3.ToString())); y.Add(new KeyValuePair <string, string>("流量", y4.ToString())); y.Add(new KeyValuePair <string, string>("温度", y5.ToString())); y.Add(new KeyValuePair <string, string>("湿度", y6.ToString())); y.Add(new KeyValuePair <string, string>("甲苯", y7.ToString())); return(Json(EChartsHelper.GetBaseChart(x.ToString(), y, "", "厘米", "'二甲苯','非甲烷总烃','苯','流量','温度','湿度','甲苯'", " ", "bar", false, false))); }
/// <summary> /// 构建图表数据 /// </summary> /// <param name="sourceTable"></param> /// <param name="itemInfoList"></param> /// <param name="dataFrom"></param> /// <returns></returns> private string EChartData(DataTable sourceTable, List <ItemInfo> itemInfoList, string dataFrom) { StringBuilder x = new StringBuilder(); //X轴 List <KeyValuePair <string, string> > y = new List <KeyValuePair <string, string> >(); //y轴 List <KeyValuePair <string, string> > yLine = new List <KeyValuePair <string, string> >(); //Y轴水平线 StringBuilder legend = new StringBuilder(); //图例 Dictionary <string, StringBuilder> dictY = new Dictionary <string, StringBuilder>(); Dictionary <string, StringBuilder> dictLineY = new Dictionary <string, StringBuilder>(); itemInfoList.ForEach(item => { legend.Append(string.Format(",'{0}{1}'", item.TITLE, item.CHILD_TITLE)); dictY.Add(string.Format("{0}{1}", item.TITLE, item.CHILD_TITLE), new StringBuilder()); dictLineY.Add(string.Format("{0}{1}", item.TITLE, item.CHILD_TITLE), new StringBuilder()); }); string startTime = ""; string endTime = ""; string dateFormat = "hour" == dataFrom ? "dd-HH" : "MM-dd"; if (sourceTable.Rows.Count > 0) { if ("hour" == dataFrom) { startTime = DateTime.Parse(StringHelper.DynamicToString(sourceTable.Rows[0]["DATA_TIME"])).ToString(dateFormat); endTime = DateTime.Parse(StringHelper.DynamicToString(sourceTable.Rows[sourceTable.Rows.Count - 1]["DATA_TIME"])).ToString(dateFormat); } else if ("day" == dataFrom) { startTime = DateTime.Parse(StringHelper.DynamicToString(sourceTable.Rows[0]["DATA_TIME"])).ToString(dateFormat); endTime = DateTime.Parse(StringHelper.DynamicToString(sourceTable.Rows[sourceTable.Rows.Count - 1]["DATA_TIME"])).ToString(dateFormat); } } for (int i = 0; i < sourceTable.Rows.Count; i++) { DataRow row = sourceTable.Rows[i]; x.Append(",'" + DateTime.Parse(StringHelper.DynamicToString(row["DATA_TIME"])).ToString(dateFormat) + "'"); itemInfoList.ForEach(item => { string key = string.Format("{0}{1}", item.TITLE, item.CHILD_TITLE); object value = row[string.Format("{0}_{1}_Value", item.CODE, item.CHILD_CODE)]; dictY[key].Append(string.Format(",'{0}'", StringHelper.DynamicToString(value))); if (i == 0)//均值只用一个值 { object valueAvg = row[string.Format("{0}_{1}_Value_Avg", item.CODE, item.CHILD_CODE)]; dictLineY[key].Append(string.Format("'{0}'", StringHelper.DynamicToString(valueAvg))); } }); } //移除前面的逗号 dictY.Keys.ToList().ForEach(key => { if (dictY[key].Length > 0) { string value = dictY[key].Remove(0, 1).ToString(); y.Add(new KeyValuePair <string, string>(key, value)); } }); dictLineY.Keys.ToList().ForEach(key => { if (dictLineY[key].Length > 0) { string value = dictLineY[key].ToString(); yLine.Add(new KeyValuePair <string, string>(key, value)); } }); if (x.Length > 0) { x = x.Remove(0, 1); } if (legend.Length > 0) { legend = legend.Remove(0, 1); } return(EChartsHelper.GetBaseChart_zhu(x.ToString(), y, "", "", legend.ToString(), " ", "line", yLine, startTime, endTime, false, false)); }
/// <summary> /// 获取单个排口在某个时间范围内的历史数据 /// </summary> /// <param name="PKID">排口ID</param> /// <param name="DataType">数据类型,1-分钟、2-小时、3-日</param> /// <param name="sTime">开始时间</param> /// <param name="eTime">结束时间</param> /// <returns></returns> public ActionResult GetPKDatas(string PKID, string DataType, string sTime, string eTime) { DataRow pkRow = SqlModel.Select(T_BASE_COMPANY_PK.TYPE) .From(DB.T_BASE_COMPANY_PK) .Where(T_BASE_COMPANY_PK.ID == PKID) .ExecToDataRow(); if (pkRow[0] == null || string.IsNullOrEmpty(pkRow[0].ToString())) { return(new EmptyResult()); } string pkType = pkRow[0].ToString(); string itemTypeCode = "GasItem"; if (pkType == "1") {//废气 itemTypeCode = "GasItem"; } else if (pkType == "2") {//废水 itemTypeCode = "WaterItem"; } else if (pkType == "3") {//VOCs itemTypeCode = "VOCsItem"; } DataTable dtItem = SqlModel.Select(string.Format(@"SELECT BASDIC.CODE AS ITEMCODE,BASDIC.TITLE AS ITEMTEXT,(CASE WHEN BASDIC.REMARK is not null THEN BASDIC.REMARK ELSE D1.REMARK END) AS UNIT,D1.CODE AS SUBITEMCODE,D1.TITLE AS SUBITEMTEXT FROM T_BASE_COMPANY_PK_TX LEFT JOIN BASDIC ON instr(T_BASE_COMPANY_PK_TX.CLCS, BASDIC.CODE) > 0 LEFT JOIN BASDIC D1 ON D1.TYPECODE = BASDIC.CODE WHERE (T_BASE_COMPANY_PK_TX.PKID = '{0}') AND (BASDIC.TYPECODE = '{1}')", PKID, itemTypeCode)) .Native().ExecToDataTable(); if (dtItem.Rows.Count == 0) { return(new EmptyResult()); } Dictionary <string, string> dictItem = new Dictionary <string, string>(); foreach (DataRow row in dtItem.Rows) { string key = row["ITEMCODE"] + (row["SUBITEMCODE"] == null ? "" : row["SUBITEMCODE"].ToString()); if (dictItem.ContainsKey(key)) { continue; } dictItem.Add(key, row["ITEMTEXT"] + (row["SUBITEMTEXT"] == null ? "" : row["SUBITEMTEXT"].ToString())); } DateTime timeS = DateTime.Parse(sTime); DateTime timeE = DateTime.Parse(eTime); string timeFormat = "HH:00"; DataTable dtData = new DataTable(); if (DataType == "1") {//分钟数据 timeFormat = "HH:mm"; dtData = SqlModel.Select((T_MID_MINUTE.ITEMCODE ^ T_MID_MINUTE.SUBITEMCODE).As("ITEMCODE"), T_MID_MINUTE.RECTIME, T_MID_MINUTE.VALUE) .From(DB.T_BASE_COMPANY_PK) .LeftJoin(DB.T_BASE_COMPANY_PK_TX).On(T_BASE_COMPANY_PK.ID == T_BASE_COMPANY_PK_TX.PKID) .LeftJoin(DB.T_MID_MINUTE).On(T_BASE_COMPANY_PK_TX.MN == T_MID_MINUTE.DEVICECODE) .Where(T_BASE_COMPANY_PK.ID == PKID & T_MID_MINUTE.RECTIME.BetweenAnd(timeS, timeE)) .ExecToDataTable(); } else if (DataType == "2") {//小时数据 timeFormat = "HH:00"; dtData = SqlModel.Select((T_MID_HOUR.ITEMCODE ^ T_MID_HOUR.SUBITEMCODE).As("ITEMCODE"), T_MID_HOUR.RECTIME, T_MID_HOUR.VALUE) .From(DB.T_BASE_COMPANY_PK) .LeftJoin(DB.T_BASE_COMPANY_PK_TX).On(T_BASE_COMPANY_PK.ID == T_BASE_COMPANY_PK_TX.PKID) .LeftJoin(DB.T_MID_HOUR).On(T_BASE_COMPANY_PK_TX.MN == T_MID_HOUR.DEVICECODE) .Where(T_BASE_COMPANY_PK.ID == PKID & T_MID_HOUR.RECTIME.BetweenAnd(timeS, timeE)) .ExecToDataTable(); } else if (DataType == "3") {//日数据 timeFormat = "MM-dd"; dtData = SqlModel.Select((T_MID_DAY.ITEMCODE ^ T_MID_DAY.SUBITEMCODE).As("ITEMCODE"), T_MID_DAY.RECTIME, T_MID_DAY.VALUE) .From(DB.T_BASE_COMPANY_PK) .LeftJoin(DB.T_BASE_COMPANY_PK_TX).On(T_BASE_COMPANY_PK.ID == T_BASE_COMPANY_PK_TX.PKID) .LeftJoin(DB.T_MID_DAY).On(T_BASE_COMPANY_PK_TX.MN == T_MID_DAY.DEVICECODE) .Where(T_BASE_COMPANY_PK.ID == PKID & T_MID_DAY.RECTIME.BetweenAnd(timeS, timeE)) .ExecToDataTable(); } List <KeyValuePair <string, string> > y = new List <KeyValuePair <string, string> >(); StringBuilder legend = new StringBuilder(); Dictionary <string, StringBuilder> dictY = new Dictionary <string, StringBuilder>(); foreach (var item in dictItem) { dictY.Add(item.Value, new StringBuilder()); legend.Append("'" + item.Value + "',"); } StringBuilder y1 = new StringBuilder(); StringBuilder x = new StringBuilder(); var timeList = (from p in dtData.AsEnumerable() select p.Field <DateTime>("RECTIME")).Distinct().Reverse().OrderBy(p => p); foreach (DateTime time in timeList) { x.Append("'" + time.ToString(timeFormat) + "',"); foreach (var item in dictItem) { DataRow[] rows = dtData.Select("ITEMCODE='" + item.Key + "' and RECTIME='" + time.ToString("yyyy-MM-dd HH:mm:ss") + "'"); if (rows.Length == 0) { dictY[item.Value].Append("'',"); } else { dictY[item.Value].Append("'" + rows[0]["VALUE"].ToString() + "',"); } } } for (int i = 0; i < dictY.Count; i++) { string key = dictY.ElementAt(i).Key; string value = dictY.ElementAt(i).Value.ToString(); if (value.Length > 0) { y.Add(new KeyValuePair <string, string>(key, value.Remove(value.Length - 1, 1))); } } if (x.Length > 0) { x = x.Remove(x.Length - 1, 1); } if (legend.Length > 0) { legend = legend.Remove(legend.Length - 1, 1); } return(Json(EChartsHelper.GetBaseChart(x.ToString(), y, "", "", legend.ToString(), "", "line", false, false))); }
public ActionResult getChartInfo(RequestData data) { var list = AnalysisData2.GetAreaMonitorData(Request.QueryString["Companyid"], DateTime.Parse(Request.QueryString["startTime"]), DateTime.Parse(Request.QueryString["endTime"]), Request.QueryString["selectData"], "GasItem,WaterItem"); //var dtData = MonitorData.GetMonitorData("", DateTime.Parse(Request.QueryString["startTime"]), DateTime.Parse(Request.QueryString["endTime"]), "C", Request.QueryString["Companyid"], Request.QueryString["selectData"], "GasItem,WaterItem"); StringBuilder x = new StringBuilder(); List <KeyValuePair <string, string> > y = new List <KeyValuePair <string, string> >(); StringBuilder y1 = new StringBuilder(); StringBuilder y2 = new StringBuilder(); StringBuilder y3 = new StringBuilder(); StringBuilder y4 = new StringBuilder(); StringBuilder y5 = new StringBuilder(); StringBuilder y6 = new StringBuilder(); StringBuilder y7 = new StringBuilder(); StringBuilder y8 = new StringBuilder(); StringBuilder y9 = new StringBuilder(); StringBuilder y10 = new StringBuilder(); foreach (var row in list) { x.Append("'" + row["AREA_NAME"].ToString() + "',"); y1.Append("'" + row["a34013_PFL_Value"].ToString() + "',"); y2.Append("'" + row["a21026_PFL_Value"].ToString() + "',"); y3.Append("'" + row["a21002_PFL_Value"].ToString() + "',"); y4.Append("'" + row["flowgas_Value"].ToString() + "',"); y5.Append("'" + row["a19001_Value"].ToString() + "',"); y6.Append("'" + row["a01012_Value"].ToString() + "',"); y7.Append("'" + row["a01013_Value"].ToString() + "',"); y8.Append("'" + row["w01018_PFL_Value"].ToString() + "',"); y9.Append("'" + row["w21003_PFL_Value"].ToString() + "',"); y10.Append("'" + row["flowwater_Value"].ToString() + "',"); } if (x.Length > 0) { x = x.Remove(x.Length - 1, 1); } if (y1.Length > 0) { y1 = y1.Remove(y1.Length - 1, 1); } if (y2.Length > 0) { y2 = y2.Remove(y2.Length - 1, 1); } if (y3.Length > 0) { y3 = y3.Remove(y3.Length - 1, 1); } if (y4.Length > 0) { y4 = y4.Remove(y4.Length - 1, 1); } if (y5.Length > 0) { y5 = y5.Remove(y5.Length - 1, 1); } if (y6.Length > 0) { y6 = y6.Remove(y6.Length - 1, 1); } if (y7.Length > 0) { y7 = y7.Remove(y7.Length - 1, 1); } if (y8.Length > 0) { y8 = y8.Remove(y8.Length - 1, 1); } if (y9.Length > 0) { y9 = y9.Remove(y9.Length - 1, 1); } if (y10.Length > 0) { y10 = y10.Remove(y10.Length - 1, 1); } y.Add(new KeyValuePair <string, string>("烟尘", y1.ToString())); y.Add(new KeyValuePair <string, string>("二氧化硫", y2.ToString())); y.Add(new KeyValuePair <string, string>("氮氧化物", y3.ToString())); y.Add(new KeyValuePair <string, string>("废气流量", y4.ToString())); y.Add(new KeyValuePair <string, string>("含氧量", y5.ToString())); y.Add(new KeyValuePair <string, string>("烟气温度", y6.ToString())); y.Add(new KeyValuePair <string, string>("烟气压力", y7.ToString())); y.Add(new KeyValuePair <string, string>("化学需氧量", y8.ToString())); y.Add(new KeyValuePair <string, string>("氨氮", y9.ToString())); y.Add(new KeyValuePair <string, string>("废水流量", y10.ToString())); return(Json(EChartsHelper.GetBaseChart(x.ToString(), y, "", "厘米", "'烟尘','二氧化硫','氮氧化物','废气流量','含氧量','烟气温度','烟气压力','化学需氧量','氨氮','废水流量'", " ", "bar", false, false))); }
public ActionResult GetChartLineItem(DataTable dtSrouce, List <dynamic> titleList, List <dynamic> subTitleList) { // FieldModel onWhere = T_MID_HOUR.RECTIME == DateTime.Parse(time); // string[] itemArray = item.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries); // string ItemCode = ""; // string SubItemCode = ""; //// string title = ""; // if (itemArray.Length > 0) // { // ItemCode = itemArray[0]; // dynamic itemText = SqlModel.Select(BASDIC.TITLE) // .From(DB.BASDIC) // .Where(BASDIC.CODE == ItemCode) // .ExecToDynamic(); // title += itemText["TITLE"]; // } // if (itemArray.Length > 1) // { // SubItemCode = itemArray[1]; // dynamic subItemText = SqlModel.Select(BASDIC.TITLE) // .From(DB.BASDIC) // .Where(BASDIC.CODE == SubItemCode) // .ExecToDynamic(); // title += " " + subItemText["TITLE"]; // } //if (!string.IsNullOrEmpty(ItemCode)) onWhere &= T_MID_HOUR.ITEMCODE == ItemCode; //if (!string.IsNullOrEmpty(SubItemCode)) onWhere &= T_MID_HOUR.SUBITEMCODE == SubItemCode; //DataTable dtData = SqlModel.Select(T_BASE_COMPANY_PK.NAME, T_MID_HOUR.VALUE) // .From(DB.T_BASE_COMPANY_PK) // .LeftJoin(DB.T_BASE_COMPANY_PK_TX).On(T_BASE_COMPANY_PK.ID == T_BASE_COMPANY_PK_TX.PKID) // .LeftJoin(DB.T_MID_HOUR).On(T_BASE_COMPANY_PK_TX.MN == T_MID_HOUR.DEVICECODE & onWhere) // .Where(T_BASE_COMPANY_PK.ID.In("'" + string.Join("','", PkId.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) + "'")) // .ExecToDataTable(); List <KeyValuePair <string, string> > y = new List <KeyValuePair <string, string> >(); StringBuilder x = new StringBuilder(); StringBuilder title = new StringBuilder(); StringBuilder y1 = new StringBuilder(); Dictionary <string, string> dicItemCode = new Dictionary <string, string>(); if (dtSrouce.Rows.Count > 0) { foreach (var titleItem in titleList) { dicItemCode.Add(titleItem.ITEMCODE, titleItem.ITEMTEXT); } foreach (DataRow dr in dtSrouce.Rows) { x.Append("'" + dr["RECTIME"].ToString() + "',"); } foreach (var item in subTitleList) { y1 = new StringBuilder(); foreach (DataRow drow in dtSrouce.Rows) { y1.Append("'" + drow[item.ITEMCODE + "_" + item.SUBITEMCODE].ToString() + "',"); } if (y1.Length > 0) { y1 = y1.Remove(y1.Length - 1, 1); } y.Add(new KeyValuePair <string, string>(dicItemCode[item.ITEMCODE] + "_" + item.SUBITEMTEXT, y1.ToString())); title.Append("'" + dicItemCode[item.ITEMCODE] + "_" + item.SUBITEMTEXT + "',"); } if (x.Length > 0) { x = x.Remove(x.Length - 1, 1); } if (title.Length > 0) { title = title.Remove(title.Length - 1, 1); } //foreach (DataRow row in dtData.Rows) //{ // x.Append("'" + row["NAME"].ToString() + "',"); // y1.Append("'" + row["VALUE"].ToString() + "',"); //} // if (y1.Length > 0) y1 = y1.Remove(y1.Length - 1, 1); // y.Add(new KeyValuePair<string, string>(title, y1.ToString())); } return(Json(EChartsHelper.GetLinesChart(x.ToString(), y, "", "", title.ToString(), ""))); }