public HttpResponseMessage GetAutoAvge(Query_WithDate_Info info) { string result = string.Empty; try { RuletblEQIW_R_HourData_Auto auto = new RuletblEQIW_R_HourData_Auto(); DataTable dt = null; //获得点位对应的因子 DataTable dt1 = new DataTable(); //string sql = "select * from tblRSNameCorItemName"; //dt1 = rule.getdt(sql); string sql1 = "select * from tblEQIW_R_Item_Auto"; DataTable tableitem = rule.getdt(sql1); //获得不同的数据源 if (info.type == "hour") { dt = auto.GetHourData(info.fldBeginDate, info.fldEndDate, info.fldSTCode, info.fldItemCode); dt.Columns.Remove("fldYear"); dt.Columns.Remove("fldMonth"); dt.Columns.Remove("fldDay"); dt.Columns.Remove("fldHour"); DataRow dr = dt.NewRow(); dr["fldSTName"] = "城市名称"; dr["fldSTCode"] = "城市代码"; dr["fldRName"] = "河流名称"; dr["fldRCode"] = "河流代码"; dr["fldRSName"] = "断面名称"; dr["fldRSCode"] = "断面代码"; dr["fldDate"] = "监测日期"; dr["fldTime"] = "监测时间"; for (int i = 8; i < dt.Columns.Count; i++) { DataRow[] dataRows = tableitem.Select("fldItemName='" + dt.Columns[i].ToString() + "'"); if (dataRows.Length > 0) { dr[dt.Columns[i].ToString()] = dataRows[0]["fldUnit"].ToString(); } } dt.Rows.InsertAt(dr, 0); } else { //获得均值 dt = auto.GetAutoAvg(info.type, info.fldBeginDate, info.fldEndDate, info.fldSTCode, info.fldItemCode); dt.Columns.Remove("fldYear"); dt.Columns.Remove("fldMonth"); dt.Columns.Remove("fldDay"); dt.Columns.Remove("fldCount"); DataRow dr = dt.NewRow(); dr["fldSTName"] = "城市名称"; dr["fldSTCode"] = "城市代码"; dr["fldRName"] = "河流名称"; dr["fldRCode"] = "河流代码"; dr["fldRSName"] = "断面名称"; dr["fldRSCode"] = "断面代码"; dr["fldDate"] = "监测日期"; for (int i = 7; i < dt.Columns.Count; i++) { DataRow[] dataRows = tableitem.Select("fldItemName='" + dt.Columns[i].ToString() + "'"); if (dataRows.Length > 0) { dr[dt.Columns[i].ToString()] = dataRows[0]["fldUnit"].ToString(); } } dt.Rows.InsertAt(dr, 0); } //替换空值和没有仪器的值 for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { ////先判断断面代码 //if (dt.Rows[i]["fldRSName"].ToString() == dt1.Rows[j]["fldRSCName"].ToString()) //{ // string coritem = dt1.Rows[j]["fldItemName"].ToString(); // //再判断因子 // for (int h = 8; h < dt.Columns.Count; h++) // { // //不包含这个因子 且数据为空时为无仪器的数据 // if (!coritem.Contains(dt.Columns[h].ColumnName.ToString()) && dt.Rows[i][h].ToString() == "") // { // dt.Rows[i][h] = "无仪器"; // } // //包含这个因子 但是没有数据用/表示 // if (coritem.Contains(dt.Columns[h].ColumnName.ToString()) && dt.Rows[i][h].ToString() == "") // { // dt.Rows[i][h] = "/"; // } // } //} if (dt.Rows[i][j].ToString() == "") { dt.Rows[i][j] = "-"; } } } result = rule.JsonStr("ok", "", dt); } catch (Exception e) { result = rule.JsonStr("error", e.Message, ""); } return(new HttpResponseMessage { Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json") }); }
public HttpResponseMessage Query_WithDate(Query_WithDate_Info info) { string result = string.Empty; try { Query_WithDate_Return returndata = new Query_WithDate_Return(); DateTime BeginDate = DateTime.Parse(info.fldBeginDate); DateTime EndDate = DateTime.Parse(info.fldEndDate); List <Model.Lap.tblFW_Dictionary> list_dic = new List <Model.Lap.tblFW_Dictionary>(); List <tblEQIW_R_Item> list_item = new List <tblEQIW_R_Item>(); List <tblEQIW_R_Auto_Remark> list_remark = new List <tblEQIW_R_Auto_Remark>(); using (Model.Lap.LAPContext db = new Model.Lap.LAPContext()) { list_dic = (from x in db.tblFW_Dictionary where x.fldTableName == "vwEQIW_R_Basedata_Auto" select x).ToList(); } using (EntityContext db = new EntityContext()) { list_remark = (from x in db.tblEQIW_R_Auto_Remark select x).ToList(); list_item = (from x in db.tblEQIW_R_Item select x).ToList(); } returndata.list_dic = list_dic; returndata.list_remark = list_remark; returndata.list_item = list_item; DataTable dt = new DataTable(); if (info.type == "hour") { List <tblEQIW_R_HourData_Auto> list = new List <tblEQIW_R_HourData_Auto>(); tblEQIW_R_HourData_Auto hour_auto = new tblEQIW_R_HourData_Auto(); Dictionary <object, object> dictionary = GetProperties(hour_auto); foreach (var item in dictionary) { dt.Columns.Add(item.Key.ToString(), typeof(string)); } foreach (var item in info.fldItemCode.Split(',')) { dt.Columns.Add(item + "_Value", typeof(string)); } dt.Columns.Add("备注", typeof(string)); DataTable dtTemp = rule.SqlQueryForDataTatable("EntityContext", "select * from tblEQIW_R_HourData_Auto"); DataTable dtItem = rule.SqlQueryForDataTatable("EntityContext", "select * from tblEQIW_R_Auto_Itemstarget"); using (EntityContext db = new EntityContext()) { if (info.fldSTCode == "-1") { list = (from x in db.tblEQIW_R_HourData_Auto select x).ToList(); } else { list = (from x in db.tblEQIW_R_HourData_Auto where info.fldSTCode.Contains(x.fldSTCode + "." + x.fldRCode + "." + x.fldRSCode) select x).ToList(); } } foreach (var item in list) { item.fldDate = DateTime.Parse(item.fldYear + "-" + item.fldMonth + "-" + item.fldDay + " " + item.fldHour + ":" + item.fldMinute + ":00"); } list = (from x in list where x.fldDate >= BeginDate && x.fldDate <= EndDate select x).ToList(); var query = (from x in list group x by new { x.fldSTCode, x.fldRCode, x.fldRSCode, x.fldYear, x.fldMonth, x.fldDay, x.fldHour } into g select new { g.Key, Data = g }).ToList(); foreach (var item in query) { DataRow dr = dt.NewRow(); var query2 = (from x in dtTemp.AsEnumerable() where x["fldSTCode"].ToString() == item.Key.fldSTCode && x["fldRCode"].ToString() == item.Key.fldRCode && x["fldRSCode"].ToString() == item.Key.fldRSCode && x["fldYear"].ToString() == item.Key.fldYear.ToString() && x["fldMonth"].ToString() == item.Key.fldMonth.ToString() && x["fldDay"].ToString() == item.Key.fldDay.ToString() && x["fldHour"].ToString() == item.Key.fldHour.ToString() select x).CopyToDataTable(); foreach (DataColumn item3 in query2.Columns) { dr[item3.ColumnName] = query2.Rows[0][item3.ColumnName].ToString(); } foreach (DataRow item3 in query2.Rows) { if (dr.Table.Columns.Contains(item3["fldItemCode"].ToString() + "_Value")) { if (item3["fldItemValue"].ToString() != "") { double value = double.Parse(item3["fldItemValue"].ToString()); if (value == 0) { dr[item3["fldItemCode"].ToString() + "_Value"] = item3["fldItemValue"].ToString() + "_XTJCCW"; } else { var query3 = (from x in dtItem.AsEnumerable() where x["fldItemCode"].ToString() == item3["fldItemCode"].ToString() && x["fldRSCode"].ToString() == item.Key.fldRCode select x).FirstOrDefault(); if (query3 != null) { if (value < double.Parse(query3["fldItemTarget"].ToString())) { dr[item3["fldItemCode"].ToString() + "_Value"] = item3["fldItemValue"].ToString() + "_XTJCCW"; } } } } } } var query4 = (from x in list_remark where x.fldSTCode == item.Key.fldSTCode && x.fldRCode == item.Key.fldRCode && x.fldRSCode == item.Key.fldRSCode && x.fldDate == DateTime.Parse(item.Key.fldYear + "-" + item.Key.fldMonth + "-" + item.Key.fldDay + " " + item.Key.fldHour + ":00:00") select x).ToList(); if (query4.Count > 0) { foreach (var item4 in query4) { if (dr.Table.Columns.Contains(item4.fldItemCode + "_Value")) { // _0 代表 是用户手工自己填的备注信息 dr[item4.fldItemCode + "_Value"] += "_YHQRCW"; dr["备注"] += item4.fldItemName + "[" + item4.fldItemCode + "]" + ":" + item4.fldRemark + ";"; } } } dt.Rows.Add(dr); } returndata.dt = dt; } if (info.type == "day") { List <tblEQIW_R_Basedata_Auto> list_data = new List <tblEQIW_R_Basedata_Auto>(); using (EntityContext db = new EntityContext()) { list_data = (from x in db.tblEQIW_R_Basedata_Auto where info.fldSTCode.Contains(x.fldSTCode + "." + x.fldRCode + "." + x.fldRSCode) select x).ToList(); } foreach (var item in list_data) { item.fldDate = DateTime.Parse(item.fldYear + "-" + item.fldMonth + "-" + item.fldDay + " " + item.fldHour + ":" + item.fldMinute + ":00"); } list_data = (from x in list_data where x.fldDate >= BeginDate && x.fldDate <= EndDate select x).ToList(); var query = (from x in list_data group x by new { x.fldSTCode, x.fldRCode, x.fldRSCode, x.fldYear, x.fldMonth, x.fldDay, x.fldHour, x.fldMinute, x.fldSAMPH, x.fldSAMPR } into g select new { g.Key, Data = g }).ToList(); returndata.obj_list_data = query; } if (info.type == "week" || info.type == "month" || info.type == "year") { List <tblEQIW_R_Basedata_Auto> list_data = new List <tblEQIW_R_Basedata_Auto>(); using (EntityContext db = new EntityContext()) { list_data = (from x in db.tblEQIW_R_Basedata_Auto where info.fldSTCode.Contains(x.fldSTCode + "." + x.fldRCode + "." + x.fldRSCode) select x).ToList(); } foreach (var item in list_data) { item.fldDate = DateTime.Parse(item.fldYear + "-" + item.fldMonth + "-" + item.fldDay + " " + item.fldHour + ":" + item.fldMinute + ":00"); } list_data = (from x in list_data where x.fldDate >= BeginDate && x.fldDate <= EndDate select x).ToList(); var query = from x in list_data group x by new { x.fldSTCode, x.fldSTName, x.fldRCode, x.fldRName, x.fldRSCode, x.fldRSName, x.fldItemCode, x.fldItemName } into g select new { g.Key, Data = g, AvgValue = g.Average(z => z.fldItemValue) }; returndata.obj_list_data = query; } result = rule.JsonStr("ok", "", returndata); } catch (Exception e) { result = rule.JsonStr("error", e.Message, ""); } return(new HttpResponseMessage { Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json") }); }