/// <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>
 /// <typeparam name="T">数据表类型集合</typeparam>
 /// <param name="args">参数</param>
 /// <returns>影响行数</returns>
 public CustomResult Update(UpdateHdayExViewModel args)
 {
     using (DataSubmittedEntities db = new DataSubmittedEntities())
     {
         using (TransactionScope transaction = new TransactionScope())
         {
             CustomResult    pReturnValue = new CustomResult();
             int             count        = (args.EndTime.Value - args.StartTime.Value).Days + 1;
             HDayExViewModel model        = null;
             if (args.DataInfo.Count > 0)
             {
                 if (args.DataInfo[0].Num == 15)
                 {
                     model = args.DataInfo[0];
                 }
             }
             try
             {
                 for (int i = 0; i < count; i++)
                 {
                     DateTime pDateTime = args.StartTime.Value.AddDays(i);
                     var      listHDa   = db.RP_HDayAADT.Where(a => a.CalcuTime == pDateTime).ToList();
                     foreach (RP_HDayAADT hd in listHDa)
                     {
                         Type         myType = model.GetType();
                         PropertyInfo pinfo  = myType.GetProperty("Tra" + (i + 1));
                         hd.Out     = (double)pinfo.GetValue(model);
                         hd.UpdDate = DateTime.Now;
                         hd.State   = "1";
                         if (SessionManage.GetLoginUser() != null)
                         {
                             hd.UpdBy = SessionManage.GetLoginUser().UserName;
                         }
                     }
                 }
                 db.SaveChanges();
                 transaction.Complete();
                 pReturnValue.ResultKey   = (byte)EResult.Succeed;
                 pReturnValue.ResultValue = TipInfo.UpdateSuccess;
                 return(pReturnValue);
             }
             catch (Exception ex)
             {
                 Common.SystemLog.GetInstance().Log.Info(TipInfo.UpdateDataRepeat, ex);
                 pReturnValue.ResultKey   = (byte)EResult.Fail;
                 pReturnValue.ResultValue = TipInfo.UpdateDataRepeat;
                 return(pReturnValue);
             }
         }
     }
 }
        /// <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);
        }