public IEnumerable <HistoryData> Post() { _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"])); var type = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"])); var dataType = int.Parse(HttpContext.Current.Request["type"]); var typeStats = _dbContext.Stats.Where(obj => obj.ProType == type); var statId = HttpContext.Current.Request["stat"].Split(',').Select(int.Parse); var stats = typeStats.Where(obj => statId.Contains(obj.Id)).ToArray(); switch (dataType) { case 0: return(GetMinuteData(stats)); case 1: return(GetHourData(stats)); case 2: return(GetDayData(stats)); case 3: return(GetMinuteFullData(stats)); } return(null); }
public IEnumerable <DistrictDetail> Post() { _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"])); var type = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"])); var district = int.Parse(HttpContext.Current.Request["district"]); var country = _dbContext.Country.First(obj => obj.Id == district); var stats = _dbContext.Stats.Where(obj => obj.ProType == type && obj.Country == country.Id); var details = new List <DistrictDetail>(); foreach (var stat in stats) { var min = _dbContext.EsMin.Where(obj => obj.StatId == stat.Id) .OrderByDescending(item => item.UpdateTime) .FirstOrDefault(); if (min == null) { continue; } var detail = new DistrictDetail { districtName = country.Country.Trim(), id = stat.Id, name = stat.StatName.Trim(), tsp = Math.Round(min.TP / 1000.0, 2), rate = Global.GetRate(min.TP / 1000.0) }; details.Add(detail); } return(details); }
public IEnumerable <DistrictAvg> Post() { _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"])); var type = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"])); var districtGroups = _dbContext.Stats.Where(item => item.ProType == type).GroupBy(obj => obj.Country); var avgs = new List <DistrictAvg>(); foreach (var districtGroup in districtGroups) { var dis = new DistrictAvg(); var country = _dbContext.Country.First(obj => obj.Id == districtGroup.Key); dis.name = country.Country.Trim(); dis.count = districtGroup.Count(); dis.district = districtGroup.Key; var total = districtGroup .Select(statse => _dbContext.EsMin .Where(item => item.StatId == statse.Id) .OrderByDescending(obj => obj.UpdateTime) .FirstOrDefault()) .Where(obj => obj != null) .Select(min => min.TP).Sum(); dis.tspAvg = Math.Round(total / dis.count / 1000.0, 2); avgs.Add(dis); } return(avgs); }
public Spread Post() { _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"])); var spread = new Spread(); var proOne = _dbContext.Stats.Where(obj => obj.ProType == "商业地产"); var mins = proOne.Select(stat => _dbContext.EsMin .Where(item => item.StatId == stat.Id) .OrderByDescending(obj => obj.UpdateTime) .FirstOrDefault()) .Where(obj => obj != null); spread.city = _dbContext.Province.First().Province.Trim(); var road = new Pie { projectType = 0, good = 1, normal = 0, bad = 0 }; spread.pieCharts.Add(road); var construction = new Pie { projectType = 1, good = mins.Count(obj => obj.TP < 400), normal = mins.Count(obj => obj.TP > 400 && obj.TP < 1000), bad = mins.Count(obj => obj.TP > 1000) }; spread.pieCharts.Add(construction); var wharf = new Pie { projectType = 2, good = 1, normal = 0, bad = 0 }; spread.pieCharts.Add(wharf); var mixingplant = new Pie { projectType = 3, good = 1, normal = 0, bad = 0 }; spread.pieCharts.Add(mixingplant); return(spread); }
/// <summary> /// 获取工地地图信息 /// </summary> /// <returns></returns> public IEnumerable <MapStat> Post() { _dbContext = new EsMonitor(Global.GetConnString(HttpContext.Current.Request["city"])); var type = Global.GetProjectType(int.Parse(HttpContext.Current.Request["projectType"])); var mapstats = new List <MapStat>(); var stats = _dbContext.Stats.Where(obj => obj.ProType == type); if (!string.IsNullOrWhiteSpace(HttpContext.Current.Request["district"])) { var district = int.Parse(HttpContext.Current.Request["district"]); stats = stats.Where(obj => obj.Country == district); } if (!string.IsNullOrWhiteSpace(HttpContext.Current.Request["stat"])) { var stat = int.Parse(HttpContext.Current.Request["stat"]); stats = stats.Where(obj => obj.Country == stat); } foreach (var stat in stats) { var min = _dbContext.EsMin.OrderByDescending(obj => obj.UpdateTime) .FirstOrDefault(item => item.StatId == stat.Id); var cordinate = Global.ConvertToGdCordinate((double)stat.Longitude, (double)stat.Latitude); var mapStat = new MapStat { id = stat.Id, name = stat.StatName.Trim(), latitude = cordinate.Latitude, longitude = cordinate.Longitude }; if (min != null) { if (min.UpdateTime != null) { mapStat.time = min.UpdateTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); } mapStat.tsp = Math.Round(min.TP / 1000.0, 2); mapStat.rate = Global.GetRate(min.TP / 1000.0); mapStat.windSpeed = min.WindSpeed; mapStat.windDirection = min.WindDirection; mapStat.temperature = min.Temperature; mapStat.humidity = min.Humidity; } mapstats.Add(mapStat); } return(mapstats); }