/// <summary> /// 创建或修改15,16合计 /// </summary> /// <param name="para"></param> /// <param name="stationtype">收费站类型</param> public void CreateOrUpdateSum(QueryParameters para, int stationtype) { using (DataSubmittedEntities db = new DataSubmittedEntities()) { #region 合计 //查询日期当天除合计外的全部数据 IEnumerable <RP_NatSta> naturalall = db.RP_NatSta.Where(s => s.CalcuTime == para.StartTime && s.StaType == stationtype && s.HourPer != 24); IEnumerable <RP_NatSta> naturallistsum = db.RP_NatSta.Where(s => s.CalcuTime == para.StartTime && s.HourPer == 24 && s.StaType == stationtype); RP_NatSta natural = new RP_NatSta(); //如果有数据则进行合计 if (naturalall.Count() > 0) { if (naturallistsum.Count() > 0) { natural = naturallistsum.First(); } natural.Sum = naturalall.Sum(s => s.Sum); natural.ExNum = naturalall.Sum(s => s.ExNum); natural.EnNum = naturalall.Sum(s => s.EnNum); natural.State = "1"; natural.UpdDate = DateTime.Now; using (TransactionScope transaction = new TransactionScope()) { if (naturallistsum.Count() <= 0) { natural.RunStae = "正常"; natural.HourPer = 24;//24代表合计 natural.Id = Guid.NewGuid(); natural.StaType = stationtype; natural.CalcuTime = (DateTime)para.StartTime; natural.CrtDate = DateTime.Now; db.RP_NatSta.Add(natural); } db.SaveChanges(); //提交事务 transaction.Complete(); } #endregion } } #endregion #region 10 Static Methods #endregion #region 11 Private Methods #endregion #region 12 Protected Methods #endregion }
/// <summary> /// 创建或修改15,16合计 /// </summary> /// <param name="para"></param> /// <param name="stationtype">收费站类型</param> public void CreateOrUpdateSum(QueryParameters para, int stationtype) { using (DataSubmittedEntities db = new DataSubmittedEntities()) { #region 合计 //查询日期当天除合计外的全部数据 IEnumerable<RP_NatSta> naturalall = db.RP_NatSta.Where(s => s.CalcuTime == para.StartTime && s.StaType == stationtype && s.HourPer != 24); IEnumerable<RP_NatSta> naturallistsum = db.RP_NatSta.Where(s => s.CalcuTime == para.StartTime && s.HourPer == 24 && s.StaType == stationtype); RP_NatSta natural = new RP_NatSta(); //如果有数据则进行合计 if (naturalall.Count() > 0) { if (naturallistsum.Count() > 0) { natural = naturallistsum.First(); } natural.Sum = naturalall.Sum(s => s.Sum); natural.ExNum = naturalall.Sum(s => s.ExNum); natural.EnNum = naturalall.Sum(s => s.EnNum); natural.State = "1"; natural.UpdDate = DateTime.Now; using (TransactionScope transaction = new TransactionScope()) { if (naturallistsum.Count() <= 0) { natural.RunStae = "正常"; natural.HourPer = 24;//24代表合计 natural.Id = Guid.NewGuid(); natural.StaType = stationtype; natural.CalcuTime = (DateTime)para.StartTime; natural.CrtDate = DateTime.Now; db.RP_NatSta.Add(natural); } db.SaveChanges(); //提交事务 transaction.Complete(); } #endregion } } #endregion #region 10 Static Methods #endregion #region 11 Private Methods #endregion #region 12 Protected Methods #endregion }
/// <summary> ///更新每日报送数据15.16.17 /// </summary> public void Update(DateTime dt, int HourPer) { string startTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); SystemLog.GetInstance().Log.Info(string.Format("{0}:开始获取15,16,17报表数据", startTime)); using (DataSubmittedEntities db = new DataSubmittedEntities()) { DateTime pdt = DateTime.Parse(dt.ToShortDateString()); //北京段相同数据是否存在 List <RP_NatSta> pBJlist = db.RP_NatSta.Where(p => p.CalcuTime == pdt && p.HourPer == (byte?)HourPer && p.StaType == (int)StationConfiguration.StationType.BeiJingDuan).ToList(); bool BJHasTime = pBJlist.Count > 0; //大羊坊相同数据是否存在 List <RP_NatSta> pDYFlist = db.RP_NatSta.Where(p => p.CalcuTime == pdt && p.HourPer == (byte?)HourPer && p.StaType == (int)StationConfiguration.StationID.DYF).ToList(); bool DYFHasTime = pDYFlist.Count > 0; IList <RP_NatSta> pNaturalEntities = new List <RP_NatSta>(); List <int> BJStation = StationConfiguration.GetBJStaion(); List <int> outBJStation = StationConfiguration.GetOutBJStaion(); //p.VehType != 0 表示不包括合计数据, IEnumerable <DS_DataSource> pStagingCollection = db.DS_DataSource.Where(p => p.CalcuTime == dt && p.VehType != 0 && p.HourPer == HourPer && BJStation.Contains(p.StaID.Value)); RP_NatSta pNaturalTrafficBJ = null; //北京段 RP_NatSta pNaturalTraffic = null; //大羊坊 //北京段 //如果相同日期,相同时间段,相同统计站类型数据已存在则进行更新 if (!BJHasTime) { pNaturalTrafficBJ = new RP_NatSta();//北京段 pNaturalTrafficBJ.Id = Guid.NewGuid(); } else { pNaturalTrafficBJ = pBJlist[0]; } pNaturalTrafficBJ.EnNum = pStagingCollection.Sum(s => s.OutNum); pNaturalTrafficBJ.ExNum = pStagingCollection.Where(s => outBJStation.Contains(s.StaID.Value)).Sum(s => s.InNum); pNaturalTrafficBJ.Sum = pNaturalTrafficBJ.EnNum + pNaturalTrafficBJ.ExNum; pNaturalTrafficBJ.StaType = (int)StationConfiguration.StationType.BeiJingDuan; pNaturalTrafficBJ.CalcuTime = DateTime.Parse(dt.ToShortDateString()); pNaturalTrafficBJ.HourPer = (byte)HourPer; pNaturalTrafficBJ.CrtDate = DateTime.Now; pNaturalTrafficBJ.RunStae = SystemConst.RunningStatus; pNaturalTrafficBJ.State = "0"; //大羊坊 //如果相同日期,相同时间段,相同统计站类型数据已存在则进行更新 if (!DYFHasTime) { pNaturalTraffic = new RP_NatSta();//大羊坊 pNaturalTraffic.Id = Guid.NewGuid(); } else { pNaturalTraffic = pDYFlist[0]; } pNaturalTraffic.EnNum = pStagingCollection.Where(s => s.StaID == (int)StationConfiguration.StationID.DYF).Sum(s => s.OutNum); pNaturalTraffic.ExNum = pStagingCollection.Where(s => s.StaID == (int)StationConfiguration.StationID.DYF).Sum(s => s.InNum); pNaturalTraffic.Sum = pNaturalTraffic.EnNum + pNaturalTraffic.ExNum; pNaturalTraffic.StaType = (int)StationConfiguration.StationID.DYF; pNaturalTraffic.CrtDate = DateTime.Now; pNaturalTraffic.HourPer = (byte)HourPer; pNaturalTraffic.CalcuTime = DateTime.Parse(dt.ToShortDateString()); pNaturalTraffic.RunStae = SystemConst.RunningStatus; pNaturalTraffic.State = "0"; pNaturalEntities.Add(pNaturalTrafficBJ); pNaturalEntities.Add(pNaturalTraffic); using (TransactionScope transaction = new TransactionScope()) { //如果都不存在,则添加 if (!DYFHasTime && !BJHasTime) { db.RP_NatSta.AddRange(pNaturalEntities); } else if (!DYFHasTime && BJHasTime) { db.RP_NatSta.Add(pNaturalTraffic); } else if (DYFHasTime && !BJHasTime) { db.RP_NatSta.Add(pNaturalTrafficBJ); } db.SaveChanges(); //提交事务 transaction.Complete(); } string endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); SystemLog.GetInstance().Log.Info(string.Format("{0}:结束获取15.16.17报表数据", endTime)); SystemLog.GetInstance().Log.Info(string.Format("统计15,16,17报表数据耗时{0}秒", (DateTime.Parse(endTime) - DateTime.Parse(startTime)).TotalSeconds)); //显示执行该方法的线程ID //SystemLog.GetInstance().Log.Info(string.Format("调用15,16,17Update的线程ID为:{0}", Thread.CurrentThread.ManagedThreadId)); Thread.Sleep(1000); } }
/// <summary> ///更新每日报送数据15.16.17 /// </summary> public void Update(DateTime dt, int HourPer) { string startTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); SystemLog.GetInstance().Log.Info(string.Format("{0}:开始获取15,16,17报表数据", startTime)); using (DataSubmittedEntities db = new DataSubmittedEntities()) { DateTime pdt = DateTime.Parse(dt.ToShortDateString()); //北京段相同数据是否存在 List<RP_NatSta> pBJlist = db.RP_NatSta.Where(p => p.CalcuTime == pdt && p.HourPer == (byte?)HourPer && p.StaType == (int)StationConfiguration.StationType.BeiJingDuan).ToList(); bool BJHasTime = pBJlist.Count > 0; //大羊坊相同数据是否存在 List<RP_NatSta> pDYFlist = db.RP_NatSta.Where(p => p.CalcuTime == pdt && p.HourPer == (byte?)HourPer && p.StaType == (int)StationConfiguration.StationID.DYF).ToList(); bool DYFHasTime = pDYFlist.Count > 0; IList<RP_NatSta> pNaturalEntities = new List<RP_NatSta>(); List<int> BJStation = StationConfiguration.GetBJStaion(); List<int> outBJStation = StationConfiguration.GetOutBJStaion(); //p.VehType != 0 表示不包括合计数据, IEnumerable<DS_DataSource> pStagingCollection = db.DS_DataSource.Where(p => p.CalcuTime == dt && p.VehType != 0 && p.HourPer == HourPer && BJStation.Contains(p.StaID.Value)); RP_NatSta pNaturalTrafficBJ = null;//北京段 RP_NatSta pNaturalTraffic = null;//大羊坊 //北京段 //如果相同日期,相同时间段,相同统计站类型数据已存在则进行更新 if (!BJHasTime) { pNaturalTrafficBJ = new RP_NatSta();//北京段 pNaturalTrafficBJ.Id = Guid.NewGuid(); } else { pNaturalTrafficBJ = pBJlist[0]; } pNaturalTrafficBJ.EnNum = pStagingCollection.Sum(s => s.OutNum); pNaturalTrafficBJ.ExNum = pStagingCollection.Where(s => outBJStation.Contains(s.StaID.Value)).Sum(s => s.InNum); pNaturalTrafficBJ.Sum = pNaturalTrafficBJ.EnNum + pNaturalTrafficBJ.ExNum; pNaturalTrafficBJ.StaType = (int)StationConfiguration.StationType.BeiJingDuan; pNaturalTrafficBJ.CalcuTime = DateTime.Parse(dt.ToShortDateString()); pNaturalTrafficBJ.HourPer = (byte)HourPer; pNaturalTrafficBJ.CrtDate = DateTime.Now; pNaturalTrafficBJ.RunStae = SystemConst.RunningStatus; pNaturalTrafficBJ.State = "0"; //大羊坊 //如果相同日期,相同时间段,相同统计站类型数据已存在则进行更新 if (!DYFHasTime) { pNaturalTraffic = new RP_NatSta();//大羊坊 pNaturalTraffic.Id = Guid.NewGuid(); } else { pNaturalTraffic = pDYFlist[0]; } pNaturalTraffic.EnNum = pStagingCollection.Where(s => s.StaID == (int)StationConfiguration.StationID.DYF).Sum(s => s.OutNum); pNaturalTraffic.ExNum = pStagingCollection.Where(s => s.StaID == (int)StationConfiguration.StationID.DYF).Sum(s => s.InNum); pNaturalTraffic.Sum = pNaturalTraffic.EnNum + pNaturalTraffic.ExNum; pNaturalTraffic.StaType = (int)StationConfiguration.StationID.DYF; pNaturalTraffic.CrtDate = DateTime.Now; pNaturalTraffic.HourPer = (byte)HourPer; pNaturalTraffic.CalcuTime = DateTime.Parse(dt.ToShortDateString()); pNaturalTraffic.RunStae = SystemConst.RunningStatus; pNaturalTraffic.State = "0"; pNaturalEntities.Add(pNaturalTrafficBJ); pNaturalEntities.Add(pNaturalTraffic); using (TransactionScope transaction = new TransactionScope()) { //如果都不存在,则添加 if (!DYFHasTime && !BJHasTime) db.RP_NatSta.AddRange(pNaturalEntities); else if (!DYFHasTime && BJHasTime) db.RP_NatSta.Add(pNaturalTraffic); else if (DYFHasTime && !BJHasTime) db.RP_NatSta.Add(pNaturalTrafficBJ); db.SaveChanges(); //提交事务 transaction.Complete(); } string endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); SystemLog.GetInstance().Log.Info(string.Format("{0}:结束获取15.16.17报表数据", endTime)); SystemLog.GetInstance().Log.Info(string.Format("统计15,16,17报表数据耗时{0}秒", (DateTime.Parse(endTime) - DateTime.Parse(startTime)).TotalSeconds)); //显示执行该方法的线程ID //SystemLog.GetInstance().Log.Info(string.Format("调用15,16,17Update的线程ID为:{0}", Thread.CurrentThread.ManagedThreadId)); Thread.Sleep(1000); } }