/// <summary> /// 补数据 /// </summary> /// <param name="para"></param> private void RepairData(QueryParameters para) { using (DataSubmittedEntities db = new DataSubmittedEntities()) { using (TransactionScope transaction = new TransactionScope()) { int day = (para.EndTime.Value - para.StartTime.Value).Days + 1; for (int i = 0; i < day; i++) { DateTime dtime = para.StartTime.Value.AddDays(i); //时间小于当前时间 if (DateTime.Now > dtime) { bool flag = StrWhere(db, para).Select(a => a.CalculTime).ToList().Contains(dtime); if (!flag)//补数据 { RP_AADTSta hday = new RP_AADTSta(); hday.CalculTime = dtime; if (SessionManage.GetLoginUser() != null) { hday.CrtBy = SessionManage.GetLoginUser().UserName; } hday.CrtDate = DateTime.Now; hday.Id = Guid.NewGuid(); hday.LineEnSum = 0; hday.LineExSum = 0; db.RP_AADTSta.Add(hday); } else//将数据中有空值的改成0 { var hday = db.RP_AADTSta.Where(a => a.CalculTime == dtime).ToList()[0]; if (hday.LineEnSum == null) { hday.LineEnSum = 0; } if (hday.LineExSum == null) { hday.LineExSum = 0; } } } } try { db.SaveChanges(); transaction.Complete(); } catch (Exception ex) { SystemLog.GetInstance().Error(TipInfo.AddFaile, ex); } } } }
/// <summary> /// 补充数据 /// </summary> /// <param name="dt">统计日期</param> private void InsertNull(DateTime dt) { using (DataSubmittedEntities db = new DataSubmittedEntities()) { RP_AADTSta info = new RP_AADTSta(); info.Id = Guid.NewGuid(); info.CrtDate = DateTime.Now; info.State = "0"; info.CalculTime = dt; info.LineSum = 0; info.SumGrow = -1; info.LineExSum = 0; info.LineEnSum = 0; info.ExEnPer = 0; info.FeeSum = 0; info.SmaCarFeeNum = 0; info.ExSmaCarFee = 0; info.EnSmaCarFee = 0; info.SmaCarFee = 0; info.SmaCarCompGrow = 0; info.ChagSumNum = 0; info.ExChagNum = 0; info.EnChagNum = 0; info.ChagAmount = 0; info.GreNum = 0; info.GreFee = 0; info.StaExSum = 0; info.StaEnSum = 0; using (TransactionScope transac = new TransactionScope()) { db.RP_AADTSta.Add(info); db.SaveChanges(); transac.Complete(); } } }
/// <summary> /// 预测 /// </summary> /// <param name="para"></param> /// <returns></returns> public CustomResult ForecastData(QueryParameters para) { CustomResult pReturnValue = new CustomResult(); //浮动范围 double pFloating = 1 + para.FloatingRange * 0.01; List <RP_AADTSta> pForeList = new List <RP_AADTSta>(); //预测数据集合 List <IReportViewModel> pInList = new List <IReportViewModel>(); try { 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_AADTSta> pRefInfoList = db.RP_AADTSta.Where(s => s.CalculTime == para.StartTime).ToList(); //如果参考日期数据为0 则返回失败 if (pRefInfoList.Count == 0) { pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.ForecastFaileFaileRefNoData; return(pReturnValue); } //预测数据 HDayTraInfoViewModel pInfo = new HDayTraInfoViewModel(); //预测数据集合 List <IReportViewModel> plist = new List <IReportViewModel>(); //参考数据 RP_AADTSta pRefInfo = pRefInfoList.First(); //出京总交通量(路线) pInfo.LineExSum = Math.Round(pRefInfo.LineExSum.Value * pFloating); //进京总交通量(路线) pInfo.LineEnSum = Math.Round(pRefInfo.LineEnSum.Value * pFloating); //总交通量(路线) pInfo.LineSum = pInfo.LineExSum + pInfo.LineEnSum; //免、收费总金额 pInfo.FeeSum = Math.Round(pRefInfo.FeeSum.Value * (decimal)pFloating, 2); //出京小型客车免费通行交通量 pInfo.ExSmaCarFee = Math.Round(pRefInfo.ExSmaCarFee.Value * pFloating); //进京小型客车免费通行交通量 pInfo.EnSmaCarFee = Math.Round(pRefInfo.EnSmaCarFee.Value * pFloating); //小型客车免费通行交通量(合计) pInfo.SmaCarFeeNum = pRefInfo.ExSmaCarFee.Value + pRefInfo.EnSmaCarFee.Value; //小型客车免费金额 pInfo.SmaCarFee = Math.Round(pRefInfo.SmaCarFee.Value * (decimal)pFloating, 2); //收费车辆(合计) pInfo.ChagSumNum = Math.Round(pRefInfo.ChagSumNum.Value * pFloating); //出京收费车辆 pInfo.ExChagNum = Math.Round(pRefInfo.ExChagNum.Value * pFloating); //进京收费车辆 pInfo.EnChagNum = Math.Round(pRefInfo.EnChagNum.Value * pFloating); //收费额度 pInfo.ChagAmount = Math.Round(pRefInfo.ChagAmount.Value * (decimal)pFloating, 2); //绿色通道车辆数 pInfo.GreNum = Math.Round(pRefInfo.GreNum.Value * pFloating); //绿色通道免收费金额 pInfo.GreFee = Math.Round(pRefInfo.GreFee.Value * (decimal)pFloating, 2); //出京总交通量(站) pInfo.StaExSum = Math.Round(pRefInfo.StaExSum.Value * pFloating); //进京总交通量(站) pInfo.StaEnSum = Math.Round(pRefInfo.StaEnSum.Value * pFloating); 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> /// 校正 /// </summary> /// <param name="para"></param> /// <returns></returns> public CustomResult CalibrationData(QueryParameters para) { CustomResult pReturnValue = new CustomResult(); double pFloating = 1 + para.FloatingRange * 0.01; List <RP_AADTSta> pNaturalTraList = new List <RP_AADTSta>(); try { 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_AADTSta> pRefNaturalList = db.RP_AADTSta.Where(s => s.CalculTime == para.LastYearStart).ToList(); //如果参考日期数据为0 则返回失败 if (pRefNaturalList.Count == 0) { pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.CalibrationFaileRefNoData; return(pReturnValue); } //需要校正的数据 var pCheckNaturalList = db.RP_AADTSta.Where(s => s.CalculTime == para.StartTime).ToList(); //如果需要校正的数据为空则返回失败 if (pCheckNaturalList.Count == 0) { pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.CalibrationFaileNoData; return(pReturnValue); } using (TransactionScope tran = new TransactionScope()) { //校正数据 RP_AADTSta pCheckInfo = pCheckNaturalList.First(); //参考数据 RP_AADTSta pRefInfo = pRefNaturalList.First(); //出京总交通量(路线) if (pRefInfo.LineExSum.HasValue) { pCheckInfo.LineExSum = Math.Round(pRefInfo.LineExSum.Value * pFloating); } //进京总交通量(路线) if (pRefInfo.LineEnSum.HasValue) { pCheckInfo.LineEnSum = Math.Round(pRefInfo.LineEnSum.Value * pFloating); } //总交通量(路线) pCheckInfo.LineSum = pCheckInfo.LineExSum + pCheckInfo.LineEnSum; //总交通量同比增幅 pCheckInfo.SumGrow = double.Parse(string.Format("{0:0.00}", (pCheckInfo.LineSum - pRefInfo.LineSum) / pRefInfo.LineSum)); //出进京比 pCheckInfo.ExEnPer = double.Parse(string.Format("{0:0.00}", pCheckInfo.LineExSum / pCheckInfo.LineEnSum)); //免、收费总金额 if (pRefInfo.FeeSum.HasValue) { pCheckInfo.FeeSum = Math.Round(pRefInfo.FeeSum.Value * (decimal)pFloating, 2); } //出京小型客车免费通行交通量 if (pRefInfo.FeeSum.HasValue) { pCheckInfo.ExSmaCarFee = Math.Round(pRefInfo.ExSmaCarFee.Value * pFloating); } //进京小型客车免费通行交通量 if (pRefInfo.FeeSum.HasValue) { pCheckInfo.EnSmaCarFee = Math.Round(pRefInfo.EnSmaCarFee.Value * pFloating); } //小型客车免费通行交通量(合计) if (pRefInfo.ExSmaCarFee.HasValue) { pCheckInfo.SmaCarFeeNum = pRefInfo.ExSmaCarFee.Value + pRefInfo.EnSmaCarFee.Value; } //小型客车交通量同比增幅 pCheckInfo.SmaCarCompGrow = double.Parse(string.Format("{0:0.00}", (pCheckInfo.SmaCarFeeNum - pRefInfo.SmaCarFeeNum) / pRefInfo.SmaCarFeeNum)); //小型客车免费金额 if (pRefInfo.SmaCarFee.HasValue) { pCheckInfo.SmaCarFee = Math.Round(pRefInfo.SmaCarFee.Value * (decimal)pFloating, 2); } //收费车辆(合计) if (pRefInfo.ChagSumNum.HasValue) { pCheckInfo.ChagSumNum = Math.Round(pRefInfo.ChagSumNum.Value * pFloating); } //出京收费车辆 if (pRefInfo.ExChagNum.HasValue) { pCheckInfo.ExChagNum = Math.Round(pRefInfo.ExChagNum.Value * pFloating); } //进京收费车辆 if (pRefInfo.EnChagNum.HasValue) { pCheckInfo.EnChagNum = Math.Round(pRefInfo.EnChagNum.Value * pFloating); } //收费额度 if (pRefInfo.ChagAmount.HasValue) { pCheckInfo.ChagAmount = Math.Round(pRefInfo.ChagAmount.Value * (decimal)pFloating, 2); } //绿色通道车辆数 if (pRefInfo.GreNum.HasValue) { pCheckInfo.GreNum = Math.Round(pRefInfo.GreNum.Value * pFloating); } //绿色通道免收费金额 if (pRefInfo.GreFee.HasValue) { pCheckInfo.GreFee = Math.Round(pRefInfo.GreFee.Value * (decimal)pFloating, 2); } //出京总交通量(站) if (pRefInfo.StaExSum.HasValue) { pCheckInfo.StaExSum = Math.Round(pRefInfo.StaExSum.Value * pFloating); } //进京总交通量(站) if (pRefInfo.StaEnSum.HasValue) { pCheckInfo.StaEnSum = Math.Round(pRefInfo.StaEnSum.Value * pFloating); } if (SessionManage.GetLoginUser() != null) { pCheckInfo.UpdBy = SessionManage.GetLoginUser().UserName; } pCheckInfo.UpdDate = DateTime.Now; pCheckInfo.State = "1"; db.SaveChanges(); tran.Complete(); pReturnValue.ResultKey = (byte)EResult.Succeed; pReturnValue.ResultValue = TipInfo.CalibrationSuccess; } } else { pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.CalibrationFaileDate; } } return(pReturnValue); } catch (Exception e) { pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.CalibrationFaile + e.Message.ToString(); SystemLog.GetInstance().Error(TipInfo.CalibrationFaile, e); return(pReturnValue); } }
/// <summary> /// 更改Excel工作簿内容 /// </summary> /// <param name="readworkbook"></param> /// <param name="para"></param> /// <returns></returns> public IWorkbook GenerateSheet(IWorkbook readworkbook, QueryParameters para) { //获取工作簿 ISheet sheet = readworkbook.GetSheetAt(0); //设置日期 SetReportDate(sheet, 1, 9, para.StartTime.Value, para.ReportType); using (DataSubmittedEntities db = new DataSubmittedEntities()) { //获取导出日期数据 List <RP_AADTSta> pAADTList = db.RP_AADTSta.Where(s => s.CalculTime == para.StartTime).ToList(); RP_AADTSta pInfo = null; if (pAADTList.Count > 0) { pInfo = pAADTList.First(); } if (pInfo != null) { for (int i = 0; i < 2; i++)//报表8包括两条,其中一条为合计数据 { if (pInfo.LineSum.HasValue) { SetValue(sheet, i + 5, 2, pInfo.LineSum.ToString()); } if (pInfo.LineExSum.HasValue) { SetValue(sheet, i + 5, 3, pInfo.LineExSum.ToString()); } if (pInfo.LineEnSum.HasValue) { SetValue(sheet, i + 5, 4, pInfo.LineEnSum.ToString()); } if (pInfo.FeeSum.HasValue) { SetValue(sheet, i + 5, 5, pInfo.FeeSum.ToString()); } if (pInfo.SmaCarFeeNum.HasValue) { SetValue(sheet, i + 5, 6, pInfo.SmaCarFeeNum.ToString()); } if (pInfo.ExSmaCarFee.HasValue) { SetValue(sheet, i + 5, 7, pInfo.ExSmaCarFee.ToString()); } if (pInfo.EnSmaCarFee.HasValue) { SetValue(sheet, i + 5, 8, pInfo.EnSmaCarFee.ToString()); } if (pInfo.SmaCarFee.HasValue) { SetValue(sheet, i + 5, 9, pInfo.SmaCarFee.ToString()); } if (pInfo.ChagSumNum.HasValue) { SetValue(sheet, i + 5, 10, pInfo.ChagSumNum.ToString()); } if (pInfo.ExChagNum.HasValue) { SetValue(sheet, i + 5, 11, pInfo.ExChagNum.ToString()); } if (pInfo.EnChagNum.HasValue) { SetValue(sheet, i + 5, 12, pInfo.EnChagNum.ToString()); } if (pInfo.ChagAmount.HasValue) { SetValue(sheet, i + 5, 13, pInfo.ChagAmount.ToString()); } if (pInfo.GreNum.HasValue) { SetValue(sheet, i + 5, 14, pInfo.GreNum.ToString()); } if (pInfo.GreFee.HasValue) { SetValue(sheet, i + 5, 15, pInfo.GreFee.ToString()); } //SetValue(sheet, i + 5, 16, pInfo.TollStaName.ToString());//收费站名称 if ((pInfo.StaExSum + pInfo.StaEnSum).HasValue) { SetValue(sheet, i + 5, 17, (pInfo.StaExSum + pInfo.StaEnSum).ToString()); } if (pInfo.StaExSum.HasValue) { SetValue(sheet, i + 5, 18, pInfo.StaExSum.ToString()); } if (pInfo.StaEnSum.HasValue) { SetValue(sheet, i + 5, 19, pInfo.StaEnSum.ToString()); } if (i == 0)//合计 { if (pInfo.WorkPeoNum.HasValue) { SetValue(sheet, i + 5, 20, pInfo.WorkPeoNum.ToString()); } SetValue(sheet, i + 5, 21, pInfo.InfoNum); SetValue(sheet, i + 5, 22, pInfo.SitState); } } } } return(readworkbook); }
/// <summary> /// 补数据 /// </summary> /// <param name="para"></param> private void RepairData(QueryParameters para) { using (DataSubmittedEntities db = new DataSubmittedEntities()) { using (TransactionScope transaction = new TransactionScope()) { DateTime dtime = para.StartTime.Value; //时间小于当前时间 if (DateTime.Now > dtime) { bool flag = StrWhere(db, para).Select(a => a.CalculTime).ToList().Contains(dtime); if (!flag)//补数据 { RP_AADTSta model = new RP_AADTSta(); model.CalculTime = dtime; if (SessionManage.GetLoginUser() != null) { model.CrtBy = SessionManage.GetLoginUser().UserName; } model.CrtDate = DateTime.Now; model.Id = Guid.NewGuid(); model.ChagSumNum = 0.00; model.ExEnPer = 0.00; model.LineEnSum = 0.00; model.LineExSum = 0.00; model.LineSum = 0.00; model.SmaCarCompGrow = 0.00; model.SmaCarFee = (decimal)0.00; model.SmaCarFeeNum = 0.00; model.SumGrow = 0.00; model.State = "0"; db.RP_AADTSta.Add(model); } else//将数据中有空值的改成0 { var model = db.RP_AADTSta.Where(a => a.CalculTime == dtime).ToList()[0]; if (model.ChagSumNum == null) { model.ChagSumNum = 0.00; } if (model.ExEnPer == null) { model.ExEnPer = 0.00; } if (model.LineEnSum == null) { model.LineEnSum = 0.00; } if (model.LineExSum == null) { model.LineExSum = 0.00; } if (model.LineSum == null) { model.LineSum = 0.00; } if (model.SmaCarCompGrow == null) { model.SmaCarCompGrow = 0.00; } if (model.SmaCarFee == null) { model.SmaCarFee = (decimal)0.00; } if (model.SmaCarFeeNum == null) { model.SmaCarFeeNum = 0.00; } if (model.SumGrow == null) { model.SumGrow = 0.00; } } } try { db.SaveChanges(); transaction.Complete(); } catch (Exception ex) { SystemLog.GetInstance().Error(TipInfo.AddFaile, ex); } } } }
/// <summary> /// 8.9.10数据源更新方法 /// </summary> /// <param name="dt"></param> /// <param name="HourPer"></param> public void Update(DateTime dt, int HourPer) { try { string startTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); SystemLog.GetInstance().Log.Info(string.Format("{0}:开始获取8,9,10报表数据", startTime)); using (DataSubmittedEntities db = new DataSubmittedEntities()) { DateTime plasttime = new DateTime(); List <OT_HDayConfig> pdayconfigs = db.OT_HDayConfig.Where(s => s.Id == 9).ToList(); OT_HDayConfig pdayconfig = new OT_HDayConfig(); if (pdayconfigs.Count > 0) { pdayconfig = pdayconfigs.First(); if (pdayconfig.HDayStart.HasValue && pdayconfig.HDayEnd.HasValue) { int ptemp = 0; //判断当天是否在假期配置时间范围内 DateTime ptempdt = DateTime.Parse(dt.ToShortDateString()); if (ptempdt >= pdayconfig.HDayStart.Value && ptempdt <= pdayconfig.HDayEnd) { //间隔的天数 ptemp = (ptempdt - pdayconfig.HDayStart.Value).Days; } if (pdayconfig.CompStart.HasValue) { plasttime = pdayconfig.CompStart.Value.AddDays(ptemp); } } } List <RP_AADTSta> pOlds = db.RP_AADTSta.Where(s => s.CalculTime == plasttime).ToList(); //判断去年同期是否存在 RP_AADTSta oldinfo = new RP_AADTSta(); if (pOlds.Count > 0) { oldinfo = pOlds.First(); } DateTime pdt = DateTime.Parse(dt.ToShortDateString()); //北京段包含出入口收费站 List <int> BJStation = StationConfiguration.GetBJStaion(); //北京段只包含出口收费站 List <int> outBJStation = StationConfiguration.GetOutBJStaion(); //获取北京段数据//p.VehType == 0 表示合计数据, IEnumerable <DS_DataSource> pBJCollection = db.DS_DataSource.Where(p => DbFunctions.TruncateTime(p.CalcuTime) == DbFunctions.TruncateTime(dt) && p.VehType == 0 && BJStation.Contains(p.StaID.Value)); //判断数据是否已存在 RP_AADTSta pAADTStaInfo = null; List <RP_AADTSta> pList = db.RP_AADTSta.Where(p => p.CalculTime == pdt).ToList(); if (pList.Count > 0)//已存在,则更新 { pAADTStaInfo = pList.FirstOrDefault(); pAADTStaInfo.UpdDate = DateTime.Now; pAADTStaInfo.State = "1"; } else//不存在,添加 { pAADTStaInfo = new RP_AADTSta(); pAADTStaInfo.Id = Guid.NewGuid(); pAADTStaInfo.CrtDate = DateTime.Now; pAADTStaInfo.State = "0"; } //涉及到金额的单位全部转为万元,保留两位小数 //出京路线总交通量,不包括绿通 pAADTStaInfo.LineExSum = pBJCollection.Where(s => outBJStation.Contains(s.StaID.Value) && s.CalcuType != 3).Sum(s => s.InNum); //入京路线总交通量,不包括绿通 pAADTStaInfo.LineEnSum = pBJCollection.Where(s => BJStation.Contains(s.StaID.Value) && s.CalcuType != 3).Sum(s => s.OutNum); pAADTStaInfo.LineSum = pAADTStaInfo.LineEnSum + pAADTStaInfo.LineExSum; //总交通量同比增幅 if (oldinfo.LineSum.HasValue) { pAADTStaInfo.SumGrow = double.Parse(string.Format("{0:0.00}", (pAADTStaInfo.LineSum - oldinfo.LineSum) / oldinfo.LineSum)); } //出进京比 pAADTStaInfo.ExEnPer = double.Parse(string.Format("{0:0.00}", (pAADTStaInfo.LineExSum / pAADTStaInfo.LineEnSum))); //收费/免征总金额 pAADTStaInfo.FeeSum = Math.Round(pBJCollection.Sum(s => s.RecMoney.Value) / 10000, 2); //出京小型客车免费通行交通量 pAADTStaInfo.ExSmaCarFee = pBJCollection.Where(s => s.CalcuType == 0 && outBJStation.Contains(s.StaID.Value)).Sum(s => s.InNum); //进京小型客车免费通行交通量 pAADTStaInfo.EnSmaCarFee = pBJCollection.Where(s => s.CalcuType == 0).Sum(s => s.OutNum); //小型客车免费通行交通量(合计) pAADTStaInfo.SmaCarFeeNum = pAADTStaInfo.ExSmaCarFee + pAADTStaInfo.EnSmaCarFee; //小型客车交通量同比增幅 if (oldinfo.SmaCarFeeNum.HasValue) { pAADTStaInfo.SmaCarCompGrow = double.Parse(string.Format("{0:0.00}", (pAADTStaInfo.SmaCarFeeNum - oldinfo.SmaCarFeeNum) / oldinfo.SmaCarFeeNum)); }//小型客车免费金额 pAADTStaInfo.SmaCarFee = Math.Round(pBJCollection.Where(s => s.CalcuType.Value == 0).Sum(s => s.RecMoney.Value) / 10000, 2); //出京收费车辆 pAADTStaInfo.ExChagNum = pBJCollection.Where(s => outBJStation.Contains(s.StaID.Value) && (s.CalcuType == 1 || s.CalcuType == 2)).Sum(s => s.InNum); //进京收费车辆 pAADTStaInfo.EnChagNum = pBJCollection.Where(s => s.CalcuType == 1 || s.CalcuType == 2).Sum(s => s.OutNum); //收费车辆合计 pAADTStaInfo.ChagSumNum = pAADTStaInfo.ExChagNum + pAADTStaInfo.EnChagNum; //收费额度 pAADTStaInfo.ChagAmount = Math.Round(pBJCollection.Where(s => s.CalcuType == 1 || s.CalcuType == 2).Sum(s => s.RecMoney.Value) / 10000, 2); //绿色通道车辆数 pAADTStaInfo.GreNum = pBJCollection.Where(s => s.CalcuType == 3).Sum(s => s.OutNum); //绿色通道免收费金额 pAADTStaInfo.GreFee = Math.Round(pBJCollection.Where(s => s.CalcuType == 3).Sum(s => s.RecMoney.Value) / 10000, 2); //出京总交通量(站) pAADTStaInfo.StaExSum = pBJCollection.Where(s => s.StaID == (int)StationConfiguration.StationID.DYF).Sum(s => s.InNum); //进京总交通量(站) pAADTStaInfo.StaEnSum = pBJCollection.Where(s => s.StaID == (int)StationConfiguration.StationID.DYF).Sum(s => s.OutNum); pAADTStaInfo.CalculTime = pdt; using (TransactionScope trans = new TransactionScope()) { if (pList.Count <= 0) { db.RP_AADTSta.Add(pAADTStaInfo); } db.SaveChanges(); trans.Complete(); } } string endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); SystemLog.GetInstance().Log.Info(string.Format("{0}:结束获取8,9,10报表数据", endTime)); SystemLog.GetInstance().Log.Info(string.Format("统计8,9,10报表数据耗时{0}秒", (DateTime.Parse(endTime) - DateTime.Parse(startTime)).TotalSeconds)); //显示执行该方法的线程ID //SystemLog.GetInstance().Log.Info(string.Format("调用8,9,10Update的线程ID为:{0}", Thread.CurrentThread.ManagedThreadId)); Thread.Sleep(1000); } catch (Exception ex) { throw ex; } }