/// <summary>
        /// 查询条件组合查询语句
        /// </summary>
        /// <param name="db"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        private IQueryable <RP_AADTSta> StrWhere(DataSubmittedEntities db, Common.QueryParameters para)
        {
            var strWhere = db.RP_AADTSta.Where(a => true);

            if (para.StartTime != DateTime.Parse("0001/1/1 0:00:00") && para.StartTime != null)
            {
                DateTime dtStart = (DateTime)para.StartTime,
                         dtEnd   = ((DateTime)para.StartTime).AddDays(1);
                strWhere = strWhere.Where(a => a.CalculTime >= dtStart & a.CalculTime < dtEnd);
            }
            //获取配置中的默认日期的开始日期
            else
            {
                var config = db.OT_HDayConfig.Where(a => a.Id == 9).Select(a => new
                {
                    HDayEnd   = (DateTime)a.HDayEnd,
                    HDayStart = (DateTime)a.HDayStart
                }).ToList();
                if (config != null & config.Count > 0)
                {
                    DateTime dtStart = config[0].HDayStart,
                             dtEnd   = ((DateTime)config[0].HDayStart).AddDays(1);

                    strWhere = strWhere.Where(a => a.CalculTime >= dtStart & a.CalculTime < dtEnd);
                }
            }
            return(strWhere);
        }
        /// <summary>
        /// 查询假期进出京交通量(北京段)
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.ViewModels.IReportViewModel GetListByPra(Common.QueryParameters para)
        {
            List <HdayExEnViewModel> list = GetData(para);

            modelHdayExEn.HdayExEn = list;
            return(modelHdayExEn);
        }
Exemple #3
0
        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public string ExportReport(Common.QueryParameters para)
        {
            string path       = string.Empty;
            string reportpath = string.Empty;

            if (listExport == null || listExport.Count == 0)
            {
                GetData(para);
            }
            if (para.ReportType == 11)
            {
                if (para.StartTime != null && para.EndTime != null)
                {
                    int count = (para.EndTime.Value - para.StartTime.Value).Days + 1;
                    if ((para.EndTime.Value - para.StartTime.Value).Days + 1 > 15)
                    {
                        count = 15;
                    }
                    path       = string.Format(@"{0}Reporttemplate\DynamicReport\{1}\编号11--假期重点收费站流量表(出口加入口).xlsx", AppDomain.CurrentDomain.BaseDirectory, count);
                    reportpath = ExportHelper.GetInstance().ExportExcel(path, para, this);
                }
                reportpath = ExportHelper.GetInstance().ExportExcel(path, para, this);
            }
            return(reportpath);
        }
Exemple #4
0
        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public string ExportReport(Common.QueryParameters para)
        {
            string path       = string.Empty;
            string reportpath = string.Empty;

            if (para.ReportType == 6)
            {
                path       = string.Format(@"{0}Reporttemplate\编号06--重点城市出入境车辆数日报表(泗村店).xlsx", AppDomain.CurrentDomain.BaseDirectory);
                reportpath = ExportHelper.GetInstance().ExportExcel(path, para, this);
            }
            return(reportpath);
        }
        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public string ExportReport(Common.QueryParameters para)
        {
            string path       = string.Empty;
            string reportpath = string.Empty;

            if (para.ReportType == 5)
            {
                path       = AppDomain.CurrentDomain.BaseDirectory + @"Reporttemplate\编号05--重点城市出入境车辆数日报表(北京段).xlsx";
                reportpath = ExportHelper.GetInstance().ExportExcel(path, para, this);
            }
            return(reportpath);
        }
        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.ViewModels.IReportViewModel GetListByPra(Common.QueryParameters para)
        {
            qModel.ReportData = GetData(para);

            //判断当前统计站类型,数据是否完整
            if (GetNoDataList(para) != null && GetNoDataList(para).Count() > 0)
            {
                qModel.IsFull = 0;//不完整
            }
            else
            {
                qModel.IsFull = 1;//完整
            }
            return(qModel);
        }
Exemple #7
0
        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.ViewModels.IReportViewModel GetListByPra(Common.QueryParameters para)
        {
            List <HDayStaExEnViewModel> list = GetData(para);

            qModel.ReportData = list;
            if (para.EndTime != null && para.StartTime != null)
            {
                qModel.DateTotal = (para.EndTime.Value - para.StartTime.Value).Days + 1;
            }
            //判断当前统计站类型,数据是否完整
            if (GetNoDataList(para) != null && GetNoDataList(para).Count() > 0)
            {
                qModel.IsFull = 0;//不完整
            }
            else
            {
                qModel.IsFull = 1;//完整
            }
            return(qModel);
        }
Exemple #8
0
        /// <summary>
        /// 查询条件组合查询语句
        /// </summary>
        /// <param name="db"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        private IQueryable <RP_HDayAADT> StrWhere(DataSubmittedEntities db, Common.QueryParameters para)
        {
            var strWhere = db.RP_HDayAADT.Where(a => true);

            //某时间段之间的所有数据
            if (para.EndTime != DateTime.Parse("0001/1/1 0:00:00") && para.StartTime != DateTime.Parse("0001/1/1 0:00:00") && para.EndTime != null && para.StartTime != null && para.StartTime <= para.EndTime)
            {
                DateTime dt = ((DateTime)para.EndTime).AddDays(1);
                strWhere = strWhere.Where(a => a.CalcuTime >= para.StartTime & a.CalcuTime < dt);
            }
            //大于某时间的所有数据
            else if (para.StartTime != null && para.StartTime != DateTime.Parse("0001/1/1 0:00:00"))
            {
                strWhere = strWhere.Where(a => a.CalcuTime >= para.StartTime);
            }
            //小于某时间的所有数据
            else if (para.EndTime != null && para.EndTime != DateTime.Parse("0001/1/1 0:00:00"))
            {
                DateTime dt = ((DateTime)para.EndTime).AddDays(1);
                strWhere = strWhere.Where(a => a.CalcuTime < dt);
            }
            //获取配置中的默认时间
            else
            {
                var config = db.OT_HDayConfig.Where(a => a.Id == 11).Select(a => new
                {
                    HDayEnd   = (DateTime)a.HDayEnd,
                    HDayStart = (DateTime)a.HDayStart
                }).ToList();
                if (config != null & config.Count > 0)
                {
                    DateTime dtEnd   = ((DateTime)config[0].HDayEnd).AddDays(1),
                             dtStart = config[0].HDayStart;
                    strWhere = strWhere.Where(a => a.CalcuTime >= dtStart & a.CalcuTime <= dtEnd);
                }
            }
            return(strWhere);
        }
Exemple #9
0
        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.ViewModels.IReportViewModel GetListByPra(Common.QueryParameters para)
        {
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                RepairData(para);//补数据

                var list = db.RP_EnEx.Where(a => a.CalcuTime == para.StartTime & a.StaType == para.StationType).ToList();
                QueryEnExViewModel model = new QueryEnExViewModel();
                if (list != null && list.Count > 0)
                {
                    EnExViewModel cdMole = new EnExViewModel();
                    cdMole.CalcuTime = list[0].CalcuTime.ToString();
                    cdMole.EnGre     = 0;//list[0].EnGre==null?0:list[0].EnGre;
                    cdMole.EnOthCar  = list[0].EnOthCar;
                    cdMole.EnSmaCar  = list[0].EnSmaCar;
                    cdMole.EnTruk    = list[0].EnTruk;
                    cdMole.StaType   = list[0].StaType;
                    cdMole.Name      = "日车辆数(辆)";

                    cdMole.PEnGre    = 0;
                    cdMole.PEnOthCar = 0;
                    cdMole.PEnSmaCar = 0;
                    cdMole.PEnTruk   = 0;
                    cdMole.PExGre    = 0;
                    cdMole.PExOthCar = 0;
                    cdMole.PExSmaCar = 0;
                    cdMole.PExTruk   = 0;

                    model.ReportData = new List <EnExViewModel>();
                    model.ReportData.Add(cdMole);

                    EnExViewModel cdMole1 = new EnExViewModel();
                    cdMole1.Name = "去年同期";
                    model.ReportData.Add(cdMole1);
                }
                else
                {
                    EnExViewModel cdMole = new EnExViewModel();
                    model.ReportData = new List <EnExViewModel>();
                    cdMole.Name      = "日车辆数(辆)";
                    cdMole.PEnGre    = 0;
                    cdMole.PEnOthCar = 0;
                    cdMole.PEnSmaCar = 0;
                    cdMole.PEnTruk   = 0;
                    cdMole.PExGre    = 0;
                    cdMole.PExOthCar = 0;
                    cdMole.PExSmaCar = 0;
                    cdMole.PExTruk   = 0;
                    model.ReportData.Add(cdMole);

                    EnExViewModel cdMole1 = new EnExViewModel();
                    cdMole1.Name = "去年同期";
                    model.ReportData.Add(cdMole1);
                }
                //判断当前统计站类型,数据是否完整
                if (GetNoDataList(para) != null && GetNoDataList(para).Count() > 0)
                {
                    model.IsFull = 0;//不完整
                }
                else
                {
                    model.IsFull = 1;//完整
                }
                return(model);
            }
        }
Exemple #10
0
        /// <summary>
        /// 获取和构造报表11的数据
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        private List <HDayStaExEnViewModel> GetData(Common.QueryParameters para)
        {
            //补数据
            RepairData(para);

            List <HDayStaExEnViewModel> list = new List <HDayStaExEnViewModel>();

            #region 构建数据结构

            //构建列名行
            HDayStaExEnViewModel modelTitle = new HDayStaExEnViewModel();
            modelTitle.Belong = "所属高速";
            modelTitle.Total  = "合计";
            modelTitle.Num    = "序号";
            modelTitle.Name   = "收费站名称";
            modelTitle.Date1  = para.StartTime.Value.AddDays(0).ToString("M月d日");
            modelTitle.Date2  = para.StartTime.Value.AddDays(1).ToString("M月d日");
            modelTitle.Date3  = para.StartTime.Value.AddDays(2).ToString("M月d日");
            modelTitle.Date4  = para.StartTime.Value.AddDays(3).ToString("M月d日");
            modelTitle.Date5  = para.StartTime.Value.AddDays(4).ToString("M月d日");
            modelTitle.Date6  = para.StartTime.Value.AddDays(5).ToString("M月d日");
            modelTitle.Date7  = para.StartTime.Value.AddDays(6).ToString("M月d日");
            modelTitle.Date8  = para.StartTime.Value.AddDays(7).ToString("M月d日");
            modelTitle.Date9  = para.StartTime.Value.AddDays(8).ToString("M月d日");
            modelTitle.Date10 = para.StartTime.Value.AddDays(9).ToString("M月d日");
            modelTitle.Date11 = para.StartTime.Value.AddDays(10).ToString("M月d日");
            modelTitle.Date12 = para.StartTime.Value.AddDays(11).ToString("M月d日");
            modelTitle.Date13 = para.StartTime.Value.AddDays(12).ToString("M月d日");
            modelTitle.Date14 = para.StartTime.Value.AddDays(13).ToString("M月d日");
            modelTitle.Date15 = para.StartTime.Value.AddDays(14).ToString("M月d日");
            qModel.TitleList  = new List <HDayStaExEnViewModel>();
            qModel.TitleList.Add(modelTitle);

            //构建杨村站流量行
            HDayStaExEnViewModel modelYC = new HDayStaExEnViewModel();
            modelYC.Belong = "京津塘高速";
            modelYC.Num    = "43";
            modelYC.Name   = "杨村站";
            list.Add(modelYC);

            //构建宜兴埠东站流量行
            HDayStaExEnViewModel modelYXBD = new HDayStaExEnViewModel();
            modelYXBD.Belong = "京津塘高速";
            modelYXBD.Num    = "44";
            modelYXBD.Name   = "宜兴埠东站";
            list.Add(modelYXBD);

            //构建宜兴埠西站流量行
            HDayStaExEnViewModel modelYXBX = new HDayStaExEnViewModel();
            modelYXBX.Belong = "京津塘高速";
            modelYXBX.Num    = "45";
            modelYXBX.Name   = "宜兴埠西站";
            list.Add(modelYXBX);

            //构建金钟路站流量行
            HDayStaExEnViewModel modelJZL = new HDayStaExEnViewModel();
            modelJZL.Belong = "京津塘高速";
            modelJZL.Num    = "46";
            modelJZL.Name   = "金钟路站";
            list.Add(modelJZL);

            //构建机场站流量行
            HDayStaExEnViewModel modelJC = new HDayStaExEnViewModel();
            modelJC.Belong = "京津塘高速";
            modelJC.Num    = "47";
            modelJC.Name   = "机场站";
            list.Add(modelJC);


            //构建空港经济区站流量行
            HDayStaExEnViewModel modelKG = new HDayStaExEnViewModel();
            modelKG.Belong = "京津塘高速";
            modelKG.Num    = "48";
            modelKG.Name   = "空港经济区站";
            list.Add(modelKG);

            //构建塘沽西站流量行
            HDayStaExEnViewModel modelTGX = new HDayStaExEnViewModel();
            modelTGX.Belong = "京津塘高速";
            modelTGX.Num    = "49";
            modelTGX.Name   = "塘沽西站";
            list.Add(modelTGX);

            //构建机场站流量行
            HDayStaExEnViewModel modelTGXF = new HDayStaExEnViewModel();
            modelTGXF.Belong = "京津塘高速";
            modelTGXF.Num    = "50";
            modelTGXF.Name   = "塘沽西分站";
            list.Add(modelTGXF);


            //构建塘沽北站流量行
            HDayStaExEnViewModel modelTGB = new HDayStaExEnViewModel();
            modelTGB.Belong = "京津塘高速";
            modelTGB.Num    = "51";
            modelTGB.Name   = "塘沽北站";
            list.Add(modelTGB);

            #endregion

            if (para.StartTime != null)
            {
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    //查询数据
                    var lst = StrWhere(db, para).OrderBy(a => a.CalcuTime).ToList();
                    // list.AddRange(lst);

                    //按条件查询后有数据
                    if (list != null && list.Count > 0)
                    {
                        //计算查询日期之间的差值
                        int countMax = (para.EndTime.Value - para.StartTime.Value).Days + 1;

                        for (int j = 0; j < lst.Count; j++)
                        {
                            #region 将数据库中存放的数据赋值到表中

                            for (int i = 1; i < 16; i++)
                            {
                                Type         myType = qModel.TitleList[0].GetType();
                                PropertyInfo pinfo  = myType.GetProperty("Date" + i);

                                if (lst[j].CalcuTime.Value.ToString("M月d日").ToString() == pinfo.GetValue(qModel.TitleList[0]).ToString())
                                {
                                    Type         type1  = list[0].GetType();
                                    PropertyInfo pinfo1 = type1.GetProperty("Date" + i);
                                    pinfo1.SetValue(list[0], lst[j].YC.ToString());

                                    Type         type2  = list[1].GetType();
                                    PropertyInfo pinfo2 = type2.GetProperty("Date" + i);
                                    pinfo2.SetValue(list[1], lst[j].YXBD.ToString());

                                    Type         type3  = list[2].GetType();
                                    PropertyInfo pinfo3 = type3.GetProperty("Date" + i);
                                    pinfo3.SetValue(list[2], lst[j].YXBX.ToString());

                                    Type         type4  = list[3].GetType();
                                    PropertyInfo pinfo4 = type4.GetProperty("Date" + i);
                                    pinfo4.SetValue(list[3], lst[j].JZL.ToString());

                                    Type         type5  = list[4].GetType();
                                    PropertyInfo pinfo5 = type5.GetProperty("Date" + i);
                                    pinfo5.SetValue(list[4], lst[j].JC.ToString());

                                    Type         type6  = list[5].GetType();
                                    PropertyInfo pinfo6 = type6.GetProperty("Date" + i);
                                    pinfo6.SetValue(list[5], lst[j].KG.ToString());

                                    Type         type7  = list[6].GetType();
                                    PropertyInfo pinfo7 = type7.GetProperty("Date" + i);
                                    pinfo7.SetValue(list[6], lst[j].TGX.ToString());

                                    Type         type8  = list[7].GetType();
                                    PropertyInfo pinfo8 = type8.GetProperty("Date" + i);
                                    pinfo8.SetValue(list[7], lst[j].TGXF.ToString());

                                    Type         type9  = list[8].GetType();
                                    PropertyInfo pinfo9 = type9.GetProperty("Date" + i);
                                    pinfo9.SetValue(list[8], lst[j].TGB.ToString());

                                    break;
                                }
                            }
                            #endregion
                        }
                    }

                    #region 计算合计行

                    foreach (HDayStaExEnViewModel model in list)
                    {
                        double total = -1;
                        if (!string.IsNullOrEmpty(model.Date1))
                        {
                            total = double.Parse(model.Date1);
                        }
                        if (!string.IsNullOrEmpty(model.Date2))
                        {
                            total = total + double.Parse(model.Date2);
                        }
                        if (!string.IsNullOrEmpty(model.Date3))
                        {
                            total = total + double.Parse(model.Date3);
                        }
                        if (!string.IsNullOrEmpty(model.Date4))
                        {
                            total = total + double.Parse(model.Date4);
                        }
                        if (!string.IsNullOrEmpty(model.Date5))
                        {
                            total = total + double.Parse(model.Date5);
                        }
                        if (!string.IsNullOrEmpty(model.Date6))
                        {
                            total = total + double.Parse(model.Date6);
                        }
                        if (!string.IsNullOrEmpty(model.Date7))
                        {
                            total = total + double.Parse(model.Date7);
                        }
                        if (!string.IsNullOrEmpty(model.Date8))
                        {
                            total = total + double.Parse(model.Date8);
                        }
                        if (!string.IsNullOrEmpty(model.Date9))
                        {
                            total = total + double.Parse(model.Date9);
                        }
                        if (!string.IsNullOrEmpty(model.Date10))
                        {
                            total = total + double.Parse(model.Date10);
                        }
                        if (!string.IsNullOrEmpty(model.Date11))
                        {
                            total = total + double.Parse(model.Date11);
                        }
                        if (!string.IsNullOrEmpty(model.Date12))
                        {
                            total = total + double.Parse(model.Date12);
                        }
                        if (!string.IsNullOrEmpty(model.Date13))
                        {
                            total = total + double.Parse(model.Date13);
                        }
                        if (!string.IsNullOrEmpty(model.Date14))
                        {
                            total = total + double.Parse(model.Date14);
                        }
                        if (!string.IsNullOrEmpty(model.Date15))
                        {
                            total = total + double.Parse(model.Date15);
                        }
                        if (total > -1)
                        {
                            model.Total = total.ToString();
                        }
                    }

                    #endregion

                    //存储到缓存中
                    listExport.Clear();
                    listExport.AddRange(list);
                }
            }
            return(list);
        }
        /// <summary>
        ///  更改Excel工作簿内容
        /// </summary>
        /// <param name="readworkbook"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public NPOI.SS.UserModel.IWorkbook GenerateSheet(NPOI.SS.UserModel.IWorkbook readworkbook, Common.QueryParameters para)
        {
            //获取工作簿
            if (readworkbook != null)
            {
                ISheet sheet = readworkbook.GetSheetAt(0);

                string title = string.Empty;
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    var holidayName = db.OT_Dic.Where(a => a.Id == para.HolidayId).Select(a => a.Name).ToList();
                    if (holidayName != null && holidayName.Count > 0)
                    {
                        title = string.Format("{0}年{1}假期进出京交通流量表(北京段)", ((DateTime)para.EndTime).Year, holidayName[0].ToString());
                    }
                    SetValue(sheet, 0, 0, title);
                }
                if (listExport != null)
                {
                    for (int i = 0; i < listExport.Count; i++)
                    {
                        SetValue(sheet, i + 3, 0, listExport[i].DataDate);
                        SetValue(sheet, i + 3, 1, listExport[i].LineEnSum == null ? "" : listExport[i].LineEnSum.ToString());
                        SetValue(sheet, i + 3, 2, listExport[i].LineExSum == null ? "" : listExport[i].LineExSum.ToString());
                        SetValue(sheet, i + 3, 3, listExport[i].Total);
                    }
                }
            }
            return(readworkbook);
        }
        /// <summary>
        /// 获取和构造报表10的数据
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        private List <HdayExEnViewModel> GetData(Common.QueryParameters para)
        {
            RepairData(para);//补数据
            List <HdayExEnViewModel> list = new List <HdayExEnViewModel>();

            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                //构造数据最小日期与查询最小日期之间的数据
                if (StrWhere(db, para) != null && StrWhere(db, para).Count() > 0)
                {
                    DateTime dt       = StrWhere(db, para).Min(a => a.CalculTime);
                    int      countMin = (dt - (DateTime)para.StartTime.Value).Days;

                    for (int i = 0; i < countMin; i++)
                    {
                        HdayExEnViewModel model1 = new HdayExEnViewModel();
                        model1.LineEnSum = null;
                        model1.LineExSum = null;
                        model1.Total     = 0;
                        model1.DataDate  = para.StartTime.Value.AddDays(i).ToString("M月d日");
                        list.Add(model1);
                    }
                }

                //查询数据
                var lst = StrWhere(db, para).OrderBy(a => a.CalculTime).Select(a => new HdayExEnViewModel
                {
                    DataDate  = ((DateTime)a.CalculTime).Month + "月" + ((DateTime)a.CalculTime).Day + "日",
                    LineEnSum = (double)a.LineEnSum,
                    LineExSum = (double)a.LineExSum,
                    Total     = (double)a.LineEnSum + (double)a.LineExSum
                }).ToList();
                list.AddRange(lst);

                //按条件查询后有数据
                if (list != null && list.Count > 0)
                {
                    //计算数据最大日期与查询最大日期之间的差值
                    int countMax = ((DateTime)para.EndTime - StrWhere(db, para).Max(a => a.CalculTime)).Days;
                    //构造已有数据的最大日期到最大查询日期之间的数据
                    for (int i = 1; i <= countMax; i++)
                    {
                        HdayExEnViewModel model1 = new HdayExEnViewModel();
                        model1.LineEnSum = null;
                        model1.LineExSum = null;
                        model1.Total     = 0;
                        model1.DataDate  = StrWhere(db, para).Max(a => a.CalculTime).AddDays(i).ToString("M月d日");
                        list.Add(model1);
                    }
                }
                else//查询后无数据则按照查询时间构造数据
                {
                    for (int i = 0; i < ((DateTime)para.EndTime - (DateTime)para.StartTime).Days + 1; i++)
                    {
                        HdayExEnViewModel model2 = new HdayExEnViewModel();
                        model2.LineEnSum = null;
                        model2.LineExSum = null;
                        model2.Total     = 0;
                        model2.DataDate  = ((DateTime)para.StartTime).AddDays(i).ToString("M月d日");
                        list.Add(model2);
                    }
                }

                //添加合计行
                HdayExEnViewModel modelTotal = new HdayExEnViewModel();
                modelTotal.LineEnSum = list.Sum(a => a.LineEnSum);
                modelTotal.LineExSum = list.Sum(a => a.LineExSum);
                modelTotal.Total     = list.Sum(a => a.Total);
                modelTotal.DataDate  = "合计";
                list.Add(modelTotal);

                //存储到缓存中
                listExport.Clear();
                listExport.AddRange(list);
            }
            return(list);
        }
Exemple #13
0
        /// <summary>
        /// 校正
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.CustomResult CalibrationData(Common.QueryParameters para)
        {
            CustomResult pReturnValue = new CustomResult();
            double       pFloating    = 1 + para.FloatingRange * 0.01;

            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                //判断报表浮动百分比配置是否正确
                OT_HDayConfig pds = HolidayConfig.GetInstance().GetById(para.ReportType);
                if (pds == null)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.CalibrationFaileNoConfig;
                    return(pReturnValue);
                }
                if (Math.Abs(para.FloatingRange) > (double)pds.CheckFloat.Value)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.ErrorInfo + "范围应在负" + pds.CheckFloat.Value + "%-正" + pds.CheckFloat.Value + "%之间";
                    return(pReturnValue);
                }
                //判断时间范围是否相同
                if ((para.LastYearEnd - para.LastYearStart) == (para.EndTime - para.StartTime))
                {
                    //获取参考日期符合校正时间段的数据
                    List <RP_HDayAADT> pRefNaturalList = db.RP_HDayAADT.Where(a => a.CalcuTime >= para.LastYearStart & a.CalcuTime <= para.LastYearEnd).OrderBy(a => a.CalcuTime).ToList();
                    //如果参考日期数据为0 则返回失败
                    if (pRefNaturalList == null || pRefNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileRefNoData;
                        return(pReturnValue);
                    }
                    //需要校正的数据
                    var pCheckNaturalList = db.RP_HDayAADT.Where(a => a.CalcuTime >= para.StartTime & a.CalcuTime <= para.EndTime).OrderBy(a => a.CalcuTime).ToList();
                    //如果需要校正的数据为空则返回失败
                    if (pCheckNaturalList == null || pCheckNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileNoData;
                        return(pReturnValue);
                    }
                    using (TransactionScope tran = new TransactionScope())
                    {
                        for (int i = 0; i < pCheckNaturalList.Count; i++)
                        {
                            if (pRefNaturalList[i].JC != null)
                            {
                                pCheckNaturalList[i].JC = Math.Round(pRefNaturalList[i].JC.Value * pFloating);
                            }
                            if (pRefNaturalList[i].JZL != null)
                            {
                                pCheckNaturalList[i].JZL = Math.Round(pRefNaturalList[i].JZL.Value * pFloating);
                            }
                            if (pRefNaturalList[i].KG != null)
                            {
                                pCheckNaturalList[i].KG = Math.Round(pRefNaturalList[i].KG.Value * pFloating);
                            }
                            if (pRefNaturalList[i].TGB != null)
                            {
                                pCheckNaturalList[i].TGB = Math.Round(pRefNaturalList[i].TGB.Value * pFloating);
                            }
                            if (pRefNaturalList[i].TGX != null)
                            {
                                pCheckNaturalList[i].TGX = Math.Round(pRefNaturalList[i].TGX.Value * pFloating);
                            }
                            if (pRefNaturalList[i].TGXF != null)
                            {
                                pCheckNaturalList[i].TGXF = Math.Round(pRefNaturalList[i].TGXF.Value * pFloating);
                            }
                            if (pRefNaturalList[i].YC != null)
                            {
                                pCheckNaturalList[i].YC = Math.Round(pRefNaturalList[i].YC.Value * pFloating);
                            }
                            if (pRefNaturalList[i].YXBD != null)
                            {
                                pCheckNaturalList[i].YXBD = Math.Round(pRefNaturalList[i].YXBD.Value * pFloating);
                            }
                            if (pRefNaturalList[i].YXBX != null)
                            {
                                pCheckNaturalList[i].YXBX = Math.Round(pRefNaturalList[i].YXBX.Value * pFloating);
                            }
                            if (SessionManage.GetLoginUser() != null)
                            {
                                pCheckNaturalList[i].UpdBy = SessionManage.GetLoginUser().UserName;
                            }
                            pCheckNaturalList[i].UpdDate = DateTime.Now;
                            pCheckNaturalList[i].State   = "1";
                        }
                        try
                        {
                            db.SaveChanges();
                            tran.Complete();
                            pReturnValue.ResultKey   = (byte)EResult.Succeed;
                            pReturnValue.ResultValue = TipInfo.CalibrationSuccess;
                        }
                        catch (Exception e)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaile + e.Message.ToString();
                            SystemLog.GetInstance().Error(TipInfo.CalibrationFaile, e);
                            return(pReturnValue);
                        }
                    }
                }
                else
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.CalibrationRangeFaile;
                }
            }
            return(pReturnValue);
        }
        /// <summary>
        ///  更改Excel工作簿内容
        /// </summary>
        /// <param name="readworkbook"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public NPOI.SS.UserModel.IWorkbook GenerateSheet(NPOI.SS.UserModel.IWorkbook readworkbook, Common.QueryParameters para)
        {
            if (readworkbook != null)
            {
                ISheet sheet = readworkbook.GetSheetAt(0);

                string title = string.Empty;
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    var holidayName = db.OT_Dic.Where(a => a.Id == para.HolidayId).Select(a => a.Name).ToList();
                    if (holidayName != null && holidayName.Count > 0)
                    {
                        title = string.Format("{0}年“{1}”黄金周京津塘高速公路交通量及客运情况统计表", ((DateTime)para.EndTime).Year, holidayName[0].ToString());
                    }
                    SetValue(sheet, 0, 0, title);
                }

                if (listExport != null && listExport.Count > 0)
                {
                    for (int i = 0; i < listExport.Count; i++)
                    {
                        SetValue(sheet, i + 4, 0, listExport[i].CalcuTime);
                        SetValue(sheet, i + 4, 1, listExport[i].EnTra == null ? "" : listExport[i].EnTra.ToString());
                        SetValue(sheet, i + 4, 2, listExport[i].EnCar == null ? "" : listExport[i].EnCar.ToString());
                        SetValue(sheet, i + 4, 3, listExport[i].EnTrav == null ? "0.00" : listExport[i].EnTrav.Value.ToString("F2"));
                        SetValue(sheet, i + 4, 4, listExport[i].ExTra == null ? "" : listExport[i].ExTra.ToString());
                        SetValue(sheet, i + 4, 5, listExport[i].ExCar == null ? "" : listExport[i].ExCar.ToString());
                        SetValue(sheet, i + 4, 6, listExport[i].ExTrav == null ? "0.00" : listExport[i].ExTrav.Value.ToString("F2"));
                    }
                    SetValue(sheet, listExport.Count + 4, 0, string.Format("统计人:{0}", qModel.CrtBy));;
                }
            }
            return(readworkbook);
        }
Exemple #15
0
        /// <summary>
        /// 修改excel工作簿
        /// </summary>
        /// <param name="readworkbook"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public NPOI.SS.UserModel.IWorkbook GenerateSheet(NPOI.SS.UserModel.IWorkbook readworkbook, Common.QueryParameters para)
        {
            if (readworkbook != null)
            {
                ISheet sheet = readworkbook.GetSheetAt(0);

                string title = string.Empty;
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    var holidayName = db.OT_Dic.Where(a => a.Id == para.HolidayId).Select(a => a.Name).ToList();
                    if (holidayName != null && holidayName.Count > 0)
                    {
                        title = string.Format("天津市高速公路支队{0}年{1}假期重点收费站流量表(出口+入口)", ((DateTime)para.EndTime).Year, holidayName[0].ToString());
                    }
                    SetValue(sheet, 0, 0, title);
                }
                if (listExport != null)
                {
                    //计算查询天数
                    int count = (para.EndTime.Value - para.StartTime.Value).Days + 1;
                    if ((para.EndTime.Value - para.StartTime.Value).Days + 1 > 15)
                    {
                        count = 15;//最多可查询15天
                    }
                    for (int i = 0; i < listExport.Count; i++)
                    {
                        if (count > 0)
                        {
                            SetValue(sheet, i + 45, 3, listExport[i].Date1);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 3, para.StartTime.Value.AddDays(0).ToString("M月d日"));
                            }
                        }
                        if (count > 1)
                        {
                            SetValue(sheet, i + 45, 4, listExport[i].Date2);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 4, para.StartTime.Value.AddDays(1).ToString("M月d日"));
                            }
                        }
                        if (count > 2)
                        {
                            SetValue(sheet, i + 45, 5, listExport[i].Date3);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 5, para.StartTime.Value.AddDays(2).ToString("M月d日"));
                            }
                        }
                        if (count > 3)
                        {
                            SetValue(sheet, i + 45, 6, listExport[i].Date4);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 6, para.StartTime.Value.AddDays(3).ToString("M月d日"));
                            }
                        }
                        if (count > 4)
                        {
                            SetValue(sheet, i + 45, 7, listExport[i].Date5);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 7, para.StartTime.Value.AddDays(4).ToString("M月d日"));
                            }
                        }
                        if (count > 5)
                        {
                            SetValue(sheet, i + 45, 8, listExport[i].Date6);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 8, para.StartTime.Value.AddDays(5).ToString("M月d日"));
                            }
                        }
                        if (count > 6)
                        {
                            SetValue(sheet, i + 45, 9, listExport[i].Date7);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 9, para.StartTime.Value.AddDays(6).ToString("M月d日"));
                            }
                        }
                        if (count > 7)
                        {
                            SetValue(sheet, i + 45, 10, listExport[i].Date8);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 10, para.StartTime.Value.AddDays(7).ToString("M月d日"));
                            }
                        }
                        if (count > 8)
                        {
                            SetValue(sheet, i + 45, 11, listExport[i].Date9);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 11, para.StartTime.Value.AddDays(8).ToString("M月d日"));
                            }
                        }
                        if (count > 9)
                        {
                            SetValue(sheet, i + 45, 12, listExport[i].Date10);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 12, para.StartTime.Value.AddDays(9).ToString("M月d日"));
                            }
                        }
                        if (count > 10)
                        {
                            SetValue(sheet, i + 45, 13, listExport[i].Date11);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 13, para.StartTime.Value.AddDays(10).ToString("M月d日"));
                            }
                        }
                        if (count > 11)
                        {
                            SetValue(sheet, i + 45, 14, listExport[i].Date12);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 14, para.StartTime.Value.AddDays(11).ToString("M月d日"));
                            }
                        }
                        if (count > 12)
                        {
                            SetValue(sheet, i + 45, 15, listExport[i].Date13);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 15, para.StartTime.Value.AddDays(12).ToString("M月d日"));
                            }
                        }
                        if (count > 13)
                        {
                            SetValue(sheet, i + 45, 16, listExport[i].Date14);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 16, para.StartTime.Value.AddDays(13).ToString("M月d日"));
                            }
                        }
                        if (count > 14)
                        {
                            SetValue(sheet, i + 45, 17, listExport[i].Date15);
                            if (i == 0)
                            {
                                SetValue(sheet, 2, 17, para.StartTime.Value.AddDays(14).ToString("M月d日"));
                            }
                        }

                        SetValue(sheet, i + 45, 3 + count, listExport[i].Total);
                    }
                }
            }
            return(readworkbook);
        }
Exemple #16
0
        /// <summary>
        /// 预测导出--如果需要将入出口数据进行区分,则分别放在两个list的集合中,若不需区分,则将数据放入list1中,list2为空即可
        /// </summary>
        /// <param name="readworkbook"></param>
        /// <param name="para"></param>
        /// <param name="list1"></param>
        /// <param name="list2"></param>
        /// <returns></returns>
        public NPOI.SS.UserModel.IWorkbook GenerateSheet(NPOI.SS.UserModel.IWorkbook readworkbook, Common.QueryParameters para, List <Common.ViewModels.IReportViewModel> list1, List <Common.ViewModels.IReportViewModel> list2)
        {
            //获取工作簿
            if (readworkbook != null)
            {
                ISheet sheet = readworkbook.GetSheetAt(0);

                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    if (list1 != null && list1.Count > 0)
                    {
                        ForecastEnExViewModel pInfo = list1.First() as ForecastEnExViewModel;

                        //高速入境
                        SetValue(sheet, 5, 1, pInfo.EnSmaCar.ToString()); //小型客车
                        SetValue(sheet, 5, 2, pInfo.EnOthCar.ToString()); //其他客车
                        SetValue(sheet, 5, 3, pInfo.EnTruk.ToString());   //高速入境货车数
                        SetValue(sheet, 5, 4, 0);                         //pInfo.EnGre.ToString());//绿色通道数
                    }
                }
            }
            return(readworkbook);
        }
        /// <summary>
        ///  更改Excel工作簿内容-导出按钮导出使用
        /// </summary>
        /// <param name="readworkbook"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public NPOI.SS.UserModel.IWorkbook GenerateSheet(NPOI.SS.UserModel.IWorkbook readworkbook, Common.QueryParameters para)
        {
            //获取工作簿
            if (readworkbook != null)
            {
                ISheet sheet = readworkbook.GetSheetAt(0);
                //设置日期
                SetReportDate(sheet, 1, 6, para.StartTime.Value, para.ReportType);

                if (listExport == null || listExport.Count == 0)
                {
                    GetData(para);
                }

                //获取导出日期数据
                if (listExport != null)
                {
                    for (int i = 0; i < listExport.Count; i++)
                    {
                        SetValue(sheet, i + 3, 0, listExport[i].CalculTime);                                    //数据日期
                        SetValue(sheet, i + 3, 1, listExport[i].LineSum.ToString("F2"));                        //总交通量(万辆)
                        SetValue(sheet, i + 3, 2, (double.Parse(listExport[i].SumGrow)).ToString("F2"));        //同比增幅(%)
                        SetValue(sheet, i + 3, 3, listExport[i].LineEnSum.ToString("F2"));                      //进京交通量(万辆)
                        SetValue(sheet, i + 3, 4, listExport[i].LineExSum.ToString("F2"));                      //出京交通量(万辆)
                        SetValue(sheet, i + 3, 5, listExport[i].ExEnPer.ToString("F2"));                        //出进京比
                        SetValue(sheet, i + 3, 6, listExport[i].SmaCarFeeNum.ToString("F2"));                   //小型客车交通量(万辆)
                        SetValue(sheet, i + 3, 7, (double.Parse(listExport[i].SmaCarCompGrow)).ToString("F2")); //同比增幅(%)
                        SetValue(sheet, i + 3, 8, listExport[i].SmaCarFee.ToString("F2"));                      //小型客车免收通行费(万元)
                        SetValue(sheet, i + 3, 9, listExport[i].ChagSumNum.ToString("F2"));                     //收费车辆(万辆)
                    }
                }
            }
            return(readworkbook);
        }
Exemple #18
0
        /// <summary>
        /// 预测
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.CustomResult ForecastData(Common.QueryParameters para)
        {
            CustomResult pReturnValue = new CustomResult();
            //浮动范围
            double pFloating = 1 + para.FloatingRange * 0.01;
            // List<RP_EnEx> pForeList = new List<RP_EnEx>();
            //预测数据集合
            List <IReportViewModel> pInList = new List <IReportViewModel>();

            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                //判断报表浮动百分比配置是否存在
                OT_HDayConfig pds = HolidayConfig.GetInstance().GetById(para.ReportType);
                if (pds == null)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.ForecastFaileNoConfig;
                    return(pReturnValue);
                }
                //判断报表预测浮动百分比配置是否正确
                if (Math.Abs(para.FloatingRange) > (double)pds.ForeFloat.Value)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.ErrorInfo + "范围应在负" + pds.ForeFloat.Value + "%-正" + pds.ForeFloat.Value + "%之间";
                    return(pReturnValue);
                }
                //获取参考日期符合的数据
                List <RP_EnEx> pRefInfoList = db.RP_EnEx.Where(s => s.CalcuTime == para.StartTime && s.StaType == para.StationType).ToList();
                //如果参考日期数据为0 则返回失败
                if (pRefInfoList == null || pRefInfoList.Count == 0)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.ForecastFaileFaileRefNoData;
                    return(pReturnValue);
                }

                //预测数据
                ForecastEnExViewModel pInfo = new ForecastEnExViewModel();
                //预测数据集合
                List <IReportViewModel> plist = new List <IReportViewModel>();
                //参考数据
                RP_EnEx pRefInfo = pRefInfoList.First();

                if (pRefInfo.EnOthCar != null)
                {
                    pInfo.EnOthCar = Math.Round(pRefInfo.EnOthCar.Value * pFloating);
                }
                if (pInfo.EnSmaCar != null)
                {
                    pInfo.EnSmaCar = Math.Round(pRefInfo.EnSmaCar.Value * pFloating);
                }
                if (pInfo.EnTruk != null)
                {
                    pInfo.EnTruk = Math.Round(pRefInfo.EnTruk.Value * pFloating);
                }
                try
                {
                    plist.Add(pInfo);
                    string path = Export(para, plist);
                    pReturnValue.ResultKey   = (byte)EResult.Succeed;
                    pReturnValue.ResultValue = path;
                }
                catch (Exception e)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.ForecastFail + e.Message.ToString();
                    SystemLog.GetInstance().Error(TipInfo.ForecastFail, e);
                    return(pReturnValue);
                }
            }
            return(pReturnValue);
        }
        /// <summary>
        /// 预测导出--如果需要将入出口数据进行区分,则分别放在两个list的集合中,若不需区分,则将数据放入list1中,list2为空即可
        /// </summary>
        /// <param name="readworkbook"></param>
        /// <param name="para"></param>
        /// <param name="list1"></param>
        /// <param name="list2"></param>
        /// <returns></returns>
        public NPOI.SS.UserModel.IWorkbook GenerateSheet(NPOI.SS.UserModel.IWorkbook readworkbook, Common.QueryParameters para, List <Common.ViewModels.IReportViewModel> list1, List <Common.ViewModels.IReportViewModel> list2)
        {
            //获取工作簿
            if (readworkbook != null)
            {
                ISheet sheet = readworkbook.GetSheetAt(0);
                //设置日期
                SetReportDate(sheet, 0, 13, DateTime.Parse(DateTime.Now.ToShortDateString()), para.ReportType);
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    if (list1 != null && list1.Count > 0)
                    {
                        ForecastEnExViewModel pInfo = list1.First() as ForecastEnExViewModel;

                        //高速
                        SetValue(sheet, 5, 1, pInfo.EnSmaCar.ToString()); //小型客车
                        SetValue(sheet, 5, 2, pInfo.EnOthCar.ToString()); //其他客车
                        SetValue(sheet, 5, 3, pInfo.EnTruk.ToString());   //货车数
                        SetValue(sheet, 5, 4, pInfo.EnGre.ToString());    //绿色通道数

                        SetValue(sheet, 5, 5, pInfo.ExSmaCar.ToString()); //小型客车
                        SetValue(sheet, 5, 6, pInfo.ExOthCar.ToString()); //其他客车
                        SetValue(sheet, 5, 7, pInfo.ExTruk.ToString());   //货车数
                        SetValue(sheet, 5, 8, 0);                         //pInfo.EnGre.ToString());//绿色通道数

                        //普通
                        SetValue(sheet, 5, 9, 0);  //小型客车
                        SetValue(sheet, 5, 10, 0); //其他客车
                        SetValue(sheet, 5, 11, 0); //高速入境货车数
                        SetValue(sheet, 5, 12, 0); //绿色通道数

                        SetValue(sheet, 5, 13, 0); //小型客车
                        SetValue(sheet, 5, 14, 0); //其他客车
                        SetValue(sheet, 5, 15, 0); //高速入境货车数
                        SetValue(sheet, 5, 16, 0); //绿色通道数
                    }
                }
            }
            return(readworkbook);
        }
Exemple #20
0
        /// <summary>
        /// 校正
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.CustomResult CalibrationData(Common.QueryParameters para)
        {
            CustomResult pReturnValue = new CustomResult();
            double       pFloating    = 1 + para.FloatingRange * 0.01;

            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                //判断报表浮动百分比配置是否正确
                OT_HDayConfig pds = HolidayConfig.GetInstance().GetById(para.ReportType);
                if (pds == null)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.CalibrationFaileNoConfig;
                    return(pReturnValue);
                }
                if (Math.Abs(para.FloatingRange) > (double)pds.CheckFloat.Value)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.ErrorInfo + "范围应在负" + pds.CheckFloat.Value + "%-正" + pds.CheckFloat.Value + "%之间";
                    return(pReturnValue);
                }
                //判断校正数据日期是否合理
                if (para.LastYearStart < para.StartTime && para.StartTime < DateTime.Now.AddDays(1))
                {
                    //获取参考日期符合校正时间段的数据,因为只校正一天的数据,所以只查询开始数据的日期就可以
                    List <RP_EnEx> pRefNaturalList = db.RP_EnEx.Where(s => s.CalcuTime == para.LastYearStart && s.StaType == para.StationType).ToList();
                    //如果参考日期数据为0 则返回失败
                    if (pRefNaturalList == null || pRefNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileRefNoData;
                        return(pReturnValue);
                    }
                    //需要校正的数据
                    var pCheckNaturalList = db.RP_EnEx.Where(s => s.CalcuTime == para.StartTime && s.StaType == para.StationType).ToList();
                    //如果需要校正的数据为空则返回失败
                    if (pCheckNaturalList == null || pCheckNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileNoData;
                        return(pReturnValue);
                    }
                    using (TransactionScope tran = new TransactionScope())
                    {
                        //校正数据
                        RP_EnEx pCheckInfo = pCheckNaturalList.First();
                        //参考数据
                        RP_EnEx pRefInfo = pRefNaturalList.First();

                        if (pRefInfo.EnOthCar != null)
                        {
                            pCheckInfo.EnOthCar = Math.Round(pRefInfo.EnOthCar.Value * pFloating);
                        }
                        if (pCheckInfo.EnSmaCar != null)
                        {
                            pCheckInfo.EnSmaCar = Math.Round(pRefInfo.EnSmaCar.Value * pFloating);
                        }
                        if (pCheckInfo.EnTruk != null)
                        {
                            pCheckInfo.EnTruk = Math.Round(pRefInfo.EnTruk.Value * pFloating);
                        }

                        if (SessionManage.GetLoginUser() != null)
                        {
                            pCheckInfo.UpdBy = SessionManage.GetLoginUser().UserName;
                        }
                        pCheckInfo.UpdDate = DateTime.Now;
                        pCheckInfo.State   = "1";
                        try
                        {
                            db.SaveChanges();
                            tran.Complete();
                            pReturnValue.ResultKey   = (byte)EResult.Succeed;
                            pReturnValue.ResultValue = TipInfo.CalibrationSuccess;
                        }
                        catch (Exception e)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaile + e.Message.ToString();
                            SystemLog.GetInstance().Error(TipInfo.CalibrationFaile, e);
                            return(pReturnValue);
                        }
                    }
                }
                else
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.CalibrationFaileDate;
                }
            }
            return(pReturnValue);
        }
        /// <summary>
        /// 获取和构造报表7的数据
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        private List <AADTAndTransCalcuViewModel> GetData(Common.QueryParameters para)
        {
            //补数据
            RepairData(para);

            List <AADTAndTransCalcuViewModel> list = new List <AADTAndTransCalcuViewModel>();

            qModel.CrtBy = "无";//获取统计人
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                //构造数据最小日期与查询最小日期之间的数据
                if (StrWhere(db, para) != null && StrWhere(db, para).Count() > 0)
                {
                    DateTime dt       = StrWhere(db, para).Min(a => a.CalcuTime);
                    int      countMin = (dt - (DateTime)para.StartTime.Value).Days;

                    for (int i = 0; i < countMin; i++)
                    {
                        AADTAndTransCalcuViewModel model1 = new AADTAndTransCalcuViewModel();
                        model1.CalcuTime = para.StartTime.Value.AddDays(i).ToString("M月d日");
                        model1.EnTrav    = 0.00;
                        model1.ExTrav    = 0.00;
                        list.Add(model1);
                    }
                }

                //查询数据
                var lst = StrWhere(db, para).OrderBy(a => a.CalcuTime).Select(a => new AADTAndTransCalcuViewModel
                {
                    EnTrav          = a.EnTrav,
                    EnTra           = a.EnTra,
                    EnCar           = a.EnCar,
                    CalcuTimeUpdate = a.CalcuTime.ToString(),
                    ExCar           = a.ExCar,
                    ExTra           = a.ExTra,
                    ExTrav          = a.ExTrav,
                    CalcuTime       = ((DateTime)a.CalcuTime).Month + "月" + ((DateTime)a.CalcuTime).Day + "日",
                }).ToList();
                list.AddRange(lst);

                //按条件查询后有数据
                if (list != null && list.Count > 0)
                {
                    string name = StrWhere(db, para).First(a => true).CrtBy;
                    qModel.CrtBy = (string.IsNullOrEmpty(name) ? "无" : name);//获取统计人

                    //计算数据最大日期与查询最大日期之间的差值
                    int countMax = ((DateTime)para.EndTime - StrWhere(db, para).Max(a => a.CalcuTime)).Days;

                    //构造已有数据的最大日期到最大查询日期之间的数据
                    for (int i = 1; i <= countMax; i++)
                    {
                        AADTAndTransCalcuViewModel model1 = new AADTAndTransCalcuViewModel();
                        model1.CalcuTime = StrWhere(db, para).Max(a => a.CalcuTime).AddDays(i).ToString("M月d日");
                        list.Add(model1);
                    }
                }
                else//查询后无数据则按照查询时间构造数据
                {
                    for (int i = 0; i < ((DateTime)para.EndTime - (DateTime)para.StartTime).Days + 1; i++)
                    {
                        AADTAndTransCalcuViewModel model2 = new AADTAndTransCalcuViewModel();
                        model2.CalcuTime = para.StartTime.Value.AddDays(i).ToString("M月d日");
                        model2.EnTrav    = 0.00;
                        model2.ExTrav    = 0.00;
                        list.Add(model2);
                    }
                }

                //添加合计行
                AADTAndTransCalcuViewModel modelTotal = new AADTAndTransCalcuViewModel();
                modelTotal.EnCar     = list.Sum(a => a.EnCar);
                modelTotal.EnTra     = list.Sum(a => a.EnTra);
                modelTotal.EnTrav    = Math.Round((double)list.Sum(a => a.EnTrav), 2);
                modelTotal.ExCar     = list.Sum(a => a.ExCar);
                modelTotal.ExTra     = list.Sum(a => a.ExTra);
                modelTotal.ExTrav    = Math.Round((double)list.Sum(a => a.ExTrav), 2);
                modelTotal.CalcuTime = "合计";
                list.Add(modelTotal);

                //存储到缓存中
                listExport.Clear();
                listExport.AddRange(list);
            }
            return(list);
        }
Exemple #22
0
        /// <summary>
        /// 更改Excel工作簿内容
        /// </summary>
        /// <param name="readworkbook"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public NPOI.SS.UserModel.IWorkbook GenerateSheet(NPOI.SS.UserModel.IWorkbook readworkbook, Common.QueryParameters para)
        {
            //获取工作簿
            if (readworkbook != null)
            {
                ISheet sheet = readworkbook.GetSheetAt(0);

                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    //获取导出日期数据
                    List <RP_EnEx> pAADTList = db.RP_EnEx.Where(a => a.CalcuTime == para.StartTime && a.StaType == para.StationType).ToList();

                    if (pAADTList != null && pAADTList.Count > 0)
                    {
                        RP_EnEx pInfo = pAADTList.First();

                        //高速
                        SetValue(sheet, 5, 1, pInfo.EnSmaCar.ToString()); //小型客车
                        SetValue(sheet, 5, 2, pInfo.EnOthCar.ToString()); //其他客车
                        SetValue(sheet, 5, 3, pInfo.EnTruk.ToString());   //高速入境货车数
                        SetValue(sheet, 5, 4, 0);                         //pInfo.EnGre.ToString());//绿色通道数
                    }
                }
            }
            return(readworkbook);
        }