Exemplo n.º 1
0
        public override AggRawData GetAggRawData(DateTime nowTime)
        {
            if (base.DbHelper == null)
            {
                return(null);
            }

            //if (!rwLocker.TryEnterReadLock(TimeOut))
            //    return null;
            //BaseAggConfig configTmp = ObjectHelper.DeepCopy(this.Config);
            //rwLocker.ExitReadLock();

            DateTime lastWeek = TimeStrategy.GetAggDate(config.Type, config.TimeRange, nowTime);;

            DateTime firstDay  = DateTimeHelper.GetWeekFirstDayMon(lastWeek);
            DateTime lastDay   = DateTimeHelper.GetWeekLastDaySun(lastWeek);
            DateTime beginTime = firstDay.Date;
            DateTime endTime   = lastDay.Date.AddHours(23).AddMinutes(59).AddSeconds(59);

            AggRawData data      = new AggRawData(config.Key, config.ConfigId, this.GetTimeFlg(lastWeek));
            List <int> SensorIds = config.GetSensorIds();

            foreach (int sensorId in SensorIds)
            {
                RawData tempRawData = DbHelper.Accessor.GetWeekAggRawData(sensorId, config.FactorId, config.TimeRange, beginTime, endTime);
                if (tempRawData != null && tempRawData.Values.Count > 0)
                {
                    data.Datas.Add(tempRawData);
                }
            }

            data.LastAggDatas = base.GetLastAggData();
            return(data);
        }
Exemplo n.º 2
0
        public override AggRawData GetAggRawData(DateTime nowTime)
        {
            if (base.DbHelper == null)
            {
                return(null);
            }

            ///获取配置信息副本
            //if (!rwLocker.TryEnterReadLock(TimeOut))
            //    return null;
            //BaseAggConfig configTmp = ObjectHelper.DeepCopy(this.Config);
            //rwLocker.ExitReadLock();

            DateTime lastMonth = TimeStrategy.GetAggDate(config.Type, config.TimeRange, nowTime);
            int      year      = lastMonth.Year;
            int      month     = lastMonth.Month;
            int      beginDay;
            int      endDay;

            if (config.TimeRange.DateBegin == -1 || config.TimeRange.DateBegin > DateTime.DaysInMonth(year, month))
            {
                beginDay = DateTimeHelper.GetLastDayOfMonth(lastMonth);
            }
            else
            {
                beginDay = config.TimeRange.DateBegin;
            }


            if (config.TimeRange.DateEnd == -1 || config.TimeRange.DateEnd > DateTime.DaysInMonth(year, month))
            {
                endDay = DateTimeHelper.GetLastDayOfMonth(lastMonth);
            }
            else
            {
                endDay = config.TimeRange.DateEnd;
            }


            DateTime beginTime = new DateTime(year, month, beginDay, 0, 0, 0);
            DateTime endTime   = new DateTime(year, month, endDay, 23, 59, 59);

            AggRawData data      = new AggRawData(config.Key, config.ConfigId, GetTimeFlg(lastMonth));
            List <int> SensorIds = config.GetSensorIds();

            foreach (int sensorId in SensorIds)
            {
                RawData tempRawData = DbHelper.Accessor.GetMonthAggRawData(
                    sensorId,
                    config.FactorId,
                    config.TimeRange,
                    beginTime,
                    endTime);
                if (tempRawData != null && tempRawData.Values.Count > 0)
                {
                    data.Datas.Add(tempRawData);
                }
            }
            data.LastAggDatas = base.GetLastAggData();
            return(data);
        }