private void GetStatictisCompison(CleannessStatisticsViewModel model) { var areaList = new List <SelectListItem> { new SelectListItem() { Text = "全部", Value = "" } }; var streetList = new List <SelectListItem> { new SelectListItem() { Text = "全部", Value = "" } }; var addressList = new List <SelectListItem> { new SelectListItem() { Text = "全部", Value = "" } }; areaList.AddRange(ProcessInvoke <UserDictionaryProcess>() .GetDistrictSelectList() .Select(obj => new SelectListItem() { Text = obj.Value, Value = obj.Key.ToString() }) .ToList()); if (model.AreaGuid != Guid.Empty) { streetList.AddRange(ProcessInvoke <UserDictionaryProcess>() .GetChildDistrict(model.AreaGuid) .Select(obj => new SelectListItem() { Text = obj.Value, Value = obj.Key.ToString() }) .ToList()); if (model.StreetGuid != Guid.Empty) { addressList.AddRange(ProcessInvoke <UserDictionaryProcess>() .GetChildDistrict(model.StreetGuid) .Select(obj => new SelectListItem() { Text = obj.Value, Value = obj.Key.ToString() }) .ToList()); } } model.AreaListItems = areaList; model.StreetListItems = streetList; model.AddressListItems = addressList; }
public ActionResult CleanlinessStatistics(CleannessStatisticsViewModel model) { ProcessInvoke <MonitorDataProcess>().GetCleanessStaticses(model); GetStatictisCompison(model); return(View(model)); }
public void GetCleanessStaticses(CleannessStatisticsViewModel model) { var hotels = Repo <HotelRestaurantRepository>().GetAllModels() .AddEqual(obj => obj.DistrictId == model.AreaGuid, model.AreaGuid) .AddEqual(item => item.StreetId == model.StreetGuid, model.StreetGuid) .AddEqual(hotel => hotel.AddressId == model.AddressGuid, model.AddressGuid); var endDate = new DateTime(model.DueDateTime.Year, model.DueDateTime.Month, DateTime.DaysInMonth(model.DueDateTime.Year, model.DueDateTime.Month)); var areas = Invoke <UserDictionaryProcess>() .GetDictionaries(UserDictionaryType.Area, 0); var startDate = ReportStartDate(endDate, model.ReportType); var repo = Repo <MonitorDataRepository>().GetAllModels().Where(obj => obj.UpdateTime > startDate && obj.UpdateTime < endDate); var devices = Repo <RestaurantDeviceRepository>().GetAllModels(); foreach (var area in areas) { var areaHotels = hotels.Where(obj => obj.DistrictId == area.Id).Select(item => item.Identity).ToList(); var faild = (from data in repo where areaHotels.Contains(data.ProjectIdentity) && data.CommandDataId == CommandDataId.CleanerCurrent && data.DoubleValue < (from device in devices where device.Project.Identity == data.ProjectIdentity select device.LampblackDeviceModel).FirstOrDefault().Fail select data).Count(); var worse = (from data in repo where areaHotels.Contains(data.ProjectIdentity) && data.CommandDataId == CommandDataId.CleanerCurrent && data.DoubleValue > (from device in devices where device.Project.Identity == data.ProjectIdentity select device.LampblackDeviceModel).FirstOrDefault().Fail && data.DoubleValue < (from device in devices where device.Project.Identity == data.ProjectIdentity select device.LampblackDeviceModel).FirstOrDefault().Worse select data).Count(); var qualified = (from data in repo where areaHotels.Contains(data.ProjectIdentity) && data.CommandDataId == CommandDataId.CleanerCurrent && data.DoubleValue > (from device in devices where device.Project.Identity == data.ProjectIdentity select device.LampblackDeviceModel).FirstOrDefault().Worse && data.DoubleValue < (from device in devices where device.Project.Identity == data.ProjectIdentity select device.LampblackDeviceModel).FirstOrDefault().Qualified select data).Count(); var good = (from data in repo where areaHotels.Contains(data.ProjectIdentity) && data.CommandDataId == CommandDataId.CleanerCurrent && data.DoubleValue > (from device in devices where device.Project.Identity == data.ProjectIdentity select device.LampblackDeviceModel).FirstOrDefault().Qualified select data).Count(); var fan = (from data in repo where areaHotels.Contains(data.ProjectIdentity) && data.CommandDataId == CommandDataId.FanSwitch && data.BooleanValue == true select data).Count(); var record = new CleanessStatics { FaildRunningTimeTicks = faild * 2 * TimeSpan.TicksPerMinute, WorseRunningTimeTicks = worse * 2 * TimeSpan.TicksPerMinute, QualifiedRunningTimeTicks = qualified * 2 * TimeSpan.TicksPerMinute, GoodRunningTimeTicks = good * 2 * TimeSpan.TicksPerMinute, FanRunningTimeTicks = fan * 2 * TimeSpan.TicksPerMinute, AreaGuid = area.Id, AreaName = area.ItemValue }; model.CleanessStatics.Add(record); } }