/// <summary>
 /// 添加合计
 /// </summary>
 /// <param name="pHdayExInfo"></param>
 /// <returns></returns>
 private HDayExViewModel GetSum(HDayExViewModel pHdayExInfo)
 {
     //合计
     HDayExViewModel pHdayExSumInfo = new HDayExViewModel();
     pHdayExSumInfo.Num = 17;
     pHdayExSumInfo.Sum = pHdayExInfo.Sum;
     pHdayExSumInfo.LastSum = pHdayExInfo.LastSum;
     pHdayExSumInfo.Growth = pHdayExInfo.Growth;
     pHdayExSumInfo.RoadName = "总计";
     pHdayExSumInfo.Tra1 = pHdayExInfo.Tra1;
     pHdayExSumInfo.Tra2 = pHdayExInfo.Tra2;
     pHdayExSumInfo.Tra3 = pHdayExInfo.Tra3;
     pHdayExSumInfo.Tra4 = pHdayExInfo.Tra4;
     pHdayExSumInfo.Tra5 = pHdayExInfo.Tra5;
     pHdayExSumInfo.Tra6 = pHdayExInfo.Tra6;
     pHdayExSumInfo.Tra7 = pHdayExInfo.Tra7;
     pHdayExSumInfo.Tra8 = pHdayExInfo.Tra8;
     pHdayExSumInfo.Tra9 = pHdayExInfo.Tra9;
     pHdayExSumInfo.Tra10 = pHdayExInfo.Tra10;
     pHdayExSumInfo.Tra11 = pHdayExInfo.Tra11;
     pHdayExSumInfo.Tra12 = pHdayExInfo.Tra12;
     pHdayExSumInfo.Tra13 = pHdayExInfo.Tra13;
     pHdayExSumInfo.Tra14 = pHdayExInfo.Tra14;
     pHdayExSumInfo.Tra15 = pHdayExInfo.Tra15;
     return pHdayExSumInfo;
 }
        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public IReportViewModel GetListByPra(QueryParameters para)
        {
            QueryHDayExViewModel pReturnData = new QueryHDayExViewModel();
            List<HDayExViewModel> pTList = new List<HDayExViewModel>();
            int pDataCount = 0;
            if (para.EndTime.Value >= para.StartTime.Value)
            {
                pDataCount = (para.EndTime.Value - para.StartTime.Value).Days + 1;
            }
            //添加标头
            pReturnData.TitleList = new List<string>();
            pReturnData.TitleList.Add("序号");
            pReturnData.TitleList.Add("高速名称");
            //日期天数
            pReturnData.CountDay = pDataCount;
            for (int i = 0; i < 15; i++)
            {
                //日期
                pReturnData.TitleList.Add(para.StartTime.Value.AddDays(i).ToString("M月d日"));
            }
            pReturnData.TitleList.Add("合计");
            pReturnData.TitleList.Add("去年同期总流量");
            pReturnData.TitleList.Add("同比增幅");
            try
            {
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    HDayExViewModel pHdayExInfo = new HDayExViewModel();
                    pHdayExInfo.RoadName = SystemConst.RoadName;

                    for (int n = 0; n < pDataCount; n++)
                    {
                        DateTime? pDt = para.StartTime.Value.AddDays(n);
                        //如果所选日期数据不存在,则进行添加
                        if (db.RP_HDayAADT.Where(s => DbFunctions.TruncateTime(s.CalcuTime) == pDt).ToList().Count <= 0)
                        {
                            if (pDt <= DateTime.Now)
                            {
                                InsertNull(pDt.Value);
                            }
                        }
                        List<RP_HDayAADT> pHourAADTList = db.RP_HDayAADT.Where(s => DbFunctions.TruncateTime(s.CalcuTime) == pDt).ToList();

                        if (pHourAADTList.Count == 1)
                        {
                            //通过反射取字段名
                            Type myType = pHdayExInfo.GetType();
                            PropertyInfo pinfo = myType.GetProperty("Tra" + (n + 1));
                            //给字段赋值
                            double pTemp = pHourAADTList.SingleOrDefault().Out.Value;
                            pinfo.SetValue(pHdayExInfo, pTemp);
                        }
                    }
                    pHdayExInfo.Num = 15;
                    pHdayExInfo.Sum = db.RP_HDayAADT.Where(s => DbFunctions.TruncateTime(s.CalcuTime) >= para.StartTime.Value && DbFunctions.TruncateTime(s.CalcuTime) <= para.EndTime.Value).Sum(s => s.Out);
                    pHdayExInfo.LastSum = db.RP_HDayAADT.Where(s => DbFunctions.TruncateTime(s.CalcuTime) >= para.LastYearStart.Value && DbFunctions.TruncateTime(s.CalcuTime) <= para.LastYearEnd.Value).Sum(s => s.Out);
                    if (pHdayExInfo.Sum.HasValue && pHdayExInfo.LastSum.HasValue && pHdayExInfo.LastSum != 0 && pHdayExInfo.LastSum != 0.0)
                        pHdayExInfo.Growth = Math.Round((pHdayExInfo.Sum.Value - pHdayExInfo.LastSum.Value) / pHdayExInfo.LastSum.Value, 2);
                    pTList.Add(pHdayExInfo);
                    //添加合计
                    pTList.Add(GetSum(pHdayExInfo));
                    pReturnData.ReportData = pTList.OrderBy(s => s.Num).ToList();
                    //报表数据
                    //判断当前统计站类型,数据是否完整
                    if (GetNoDataList(para).Count() > 0)
                        pReturnData.IsFull = 0;//不完整
                    else
                        pReturnData.IsFull = 1;//完整 
                }
            }
            catch (Exception ex)
            {
                SystemLog.GetInstance().Info(ex.Message);
            }
            return pReturnData;
        }