/// <summary> /// 报表18获取数据源方法 /// </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}:开始获取18报表数据", startTime)); using (DataSubmittedEntities db = new DataSubmittedEntities()) { //北京段包含出入口收费站 List <int> BJStation = StationConfiguration.GetBJStaion(); DateTime pdt = DateTime.Parse(dt.ToShortDateString()); //获取当日北京段数据源,不包括合计数据 List <DS_DataSource> pBJCollection = db.DS_DataSource.Where(s => DbFunctions.TruncateTime(s.CalcuTime) == pdt && s.VehType != 0 && BJStation.Contains(s.StaID.Value)).ToList(); //判断数据是否已存在 RP_HDayAADTSta pHDayStaInfo = null; //5种路线类型 for (int i = 1; i < 7; i++) { List <RP_HDayAADTSta> pList = db.RP_HDayAADTSta.Where(p => p.CalcuTime == pdt && p.LineType == i).ToList(); if (pList.Count > 0)//已存在,则更新 { pHDayStaInfo = pList.FirstOrDefault(); pHDayStaInfo.UpdDate = DateTime.Now; pHDayStaInfo.State = "1"; } else//不存在,添加 { pHDayStaInfo = new RP_HDayAADTSta(); pHDayStaInfo.Id = Guid.NewGuid(); pHDayStaInfo.CrtDate = DateTime.Now; pHDayStaInfo.State = "0"; } pHDayStaInfo.CalcuTime = pdt; switch (i) { //观测点1 case 1: { this.SetInfo(pBJCollection, pHDayStaInfo, StationConfiguration.GetEnObs1(), StationConfiguration.GetExObs1(), 50000, i); break; } //观测点2 case 2: { this.SetInfo(pBJCollection, pHDayStaInfo, StationConfiguration.GetEnObs2(), StationConfiguration.GetExObs2(), 50000, i); break; } //观测点3 case 3: { this.SetInfo(pBJCollection, pHDayStaInfo, StationConfiguration.GetEnObs3(), StationConfiguration.GetExObs3(), 50000, i); break; } //收费站马驹桥 case 4: { this.SetInfo(pBJCollection, pHDayStaInfo, new List <int> { (int)StationConfiguration.StationID.MJQ, (int)StationConfiguration.StationID.MJQD }, new List <int> { (int)StationConfiguration.StationID.MJQ }, 35000, i); break; } //收费站大羊坊 case 5: { this.SetInfo(pBJCollection, pHDayStaInfo, new List <int> { (int)StationConfiguration.StationID.DYF }, new List <int> { (int)StationConfiguration.StationID.DYF }, 60000, i); break; } case 6: //空数据 { pHDayStaInfo.LineType = i; break; } } if (pList.Count <= 0) { db.RP_HDayAADTSta.Add(pHDayStaInfo); } } using (TransactionScope tran = new TransactionScope()) { db.SaveChanges(); tran.Complete(); } } string endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); SystemLog.GetInstance().Log.Info(string.Format("{0}:结束获取18报表数据", endTime)); SystemLog.GetInstance().Log.Info(string.Format("统计18报表数据耗时{0}秒", (DateTime.Parse(endTime) - DateTime.Parse(startTime)).TotalSeconds)); //显示执行该方法的线程ID //SystemLog.GetInstance().Log.Info(string.Format("调用18Update的线程ID为:{0}", Thread.CurrentThread.ManagedThreadId)); Thread.Sleep(1000); } catch (Exception ex) { throw ex; } }