/// <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); }
/// <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> /// 预测 /// </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); }