示例#1
0
        public List<StopCarReportVM> GetStopCarReport(StopCarReportParam param)
        {
            try
            {
                Dictionary<Guid, VCountStopCar> dicStop = new StopCarReportService().Count(param.VehicleCodes,
                    param.BeginTime, param.EndTime, param.Second, param.TenantCode);
                if (dicStop == null)
                {
                    dicStop = new Dictionary<Guid, VCountStopCar>();
                }

                List<StopCarReportVM> ltVM = new List<StopCarReportVM>();
                param.Vehicles = param.Vehicles.OrderBy(s => s.LicenceNumber).ToList();
                foreach (var item in param.Vehicles)
                {
                    StopCarReportVM vm = new StopCarReportVM();
                    vm.Index = ltVM.Count + 1;
                    vm.VehicleCode = item.VehicleCode;
                    vm.LicenceNumber = item.LicenceNumber;
                    if (dicStop.ContainsKey(item.VehicleCode))
                    {
                        VCountStopCar v = dicStop[item.VehicleCode];
                        vm.CountTime = v.CountTime;
                        vm.Count = v.Count;
                    }
                    ltVM.Add(vm);
                }
                return ltVM;
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return null;
            }
        }
示例#2
0
        /// <summary>
        /// 报表汇总
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public List<ReportSummaryVM> CountReport(ReportSummaryParam param)
        {
            try
            {
                ReportMileageWCFPara mileageParam = new ReportMileageWCFPara()
                {
                    BeginTime = param.BeginTime,
                    EndTime = param.EndTime,
                    tenantCode = param.TenantCode,
                    VehicleCode = param.Vehicles.Select(s => s.VehicleCode).ToArray(),
                    LicenceNumber = param.Vehicles.Select(s => s.LicenceNumber).ToArray()
                };
                //List<ReportMileageViewModel> listMileage = this.GetMileage(mileageParam);执行使用8.22s
                //查询车辆里程的代码优化
                List<ReportMileageViewModel> listMileage = this.GetNewMileage(mileageParam);//执行使用5.74s
                IAlertReportBase reportBase = new AlertReportBase();
                var ltVehicleCode = param.Vehicles.Select(s => s.VehicleCode).ToList();
                Dictionary<Guid, VCountStopCar> dicStop = new StopCarReportService().Count(ltVehicleCode, param.BeginTime,
                    param.EndTime, StopCar_Time, param.TenantCode);


                Dictionary<Guid, int> dicRob = reportBase.Count<ERobAlertReport>(ltVehicleCode, param.BeginTime, param.EndTime);
                Dictionary<Guid, int> dicPowerdown = reportBase.Count<EPowerDownAlertReport>(ltVehicleCode, param.BeginTime, param.EndTime);

                Dictionary<Guid, int> dicOverSpeed = CountOverSpeed(param);
                var dicParam = new Dictionary<string, object>();
                dicParam.Add("IsInArea", true);    //入区域条件
                dicParam.Add("IsDelayStay", false);   //非延迟出区域
                Dictionary<Guid, int> dicArea = reportBase.Count<EAreaAlertReport>(ltVehicleCode, param.BeginTime, param.EndTime, dicParam);

                return CrateReportSummaryVM(param.Vehicles, listMileage, dicStop, dicPowerdown, dicRob, dicOverSpeed, dicArea);

            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                return null;
            }
        }