Пример #1
0
        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;
        }
Пример #2
0
 public ActionResult CleanlinessStatistics(CleannessStatisticsViewModel model)
 {
     ProcessInvoke <MonitorDataProcess>().GetCleanessStaticses(model);
     GetStatictisCompison(model);
     return(View(model));
 }
Пример #3
0
        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);
            }
        }