Exemplo n.º 1
0
 private Dictionary<Guid, int> CountOverSpeed(ReportSummaryParam param)
 {
     var listVm = GetOverSpeedReportViewModel(new OverSpeedReportWCFPara()
     {
         BeginTime = param.BeginTime,
         EndTime = param.EndTime,
         LicenceNumberList = param.Vehicles.Select(s => s.LicenceNumber).ToArray(),
         VehicleCodeList = param.VehicleCodes.ToArray()
     });
     Dictionary<Guid, int> dic = new Dictionary<Guid, int>();
     if (!listVm.IsNullOrEmpty())
     {
         dic = listVm.ToDictionary(s => s.VehicleCode, s => s.OverSpeedCount);
     }
     return dic;
 }
Exemplo n.º 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;
            }
        }