/// <summary>
        /// 将各个月度数据付给map
        /// </summary>
        /// <param name="monthDataMap"></param>
        /// <param name="inverterYearData"></param>
        private void putMonthMap(Hashtable monthDataMap, DeviceYearMonthData yearData ,float rate)
        {
            string yyyy = yearData.year.ToString();
            for (int i = 1; i <= 12; i++)
            {
                string key = yyyy + TableUtil.convertIntToMnthStr(i);
                System.Object obj = monthDataMap[key];

                object tmpvalue = yearData.GetType().GetProperty("m_" + i).GetValue(yearData, null);
                float value = tmpvalue == null ? 0 : StringUtil.stringtoFloat(tmpvalue.ToString());
                if (obj != null || tmpvalue != null)
                    monthDataMap[key] = (obj == null ? 0 : StringUtil.stringtoFloat(obj.ToString())) + value*rate;
            }
        }
        /// <summary>
        /// 放入缓存
        /// </summary>
        /// <param name="deviceYearMonthData"></param>
        public void Cache(DeviceYearMonthData deviceYearMonthData)
        {
            string cacheKey = CacheKeyUtil.buildDeviceEnergyYearCountKey(deviceYearMonthData.deviceID, deviceYearMonthData.year);

            if (!persistentListKey.Contains(cacheKey)) persistentListKey.Add(cacheKey);
            //一年3天后过期
            MemcachedClientSatat.getInstance().Set(cacheKey, deviceYearMonthData, DateTime.Now.AddYears(1).AddDays(3));
        }
        /// <summary>
        /// 取得年月发电量数据,经过缓存
        /// </summary>
        /// <param name="deviceID"></param>
        /// <param name="year"></param>
        /// <returns></returns>
        public DeviceYearMonthData GetDeviceYearMonthData(int deviceID, int year)
        {
            string cacheKey = CacheKeyUtil.buildDeviceEnergyYearCountKey(deviceID, year);
            object obj = MemcachedClientSatat.getInstance().Get(cacheKey);

            DeviceYearMonthData deviceYearMonthData;
            if (obj == null)
            {//从数据库中取得
                deviceYearMonthData = _DeviceYearDataDao.GetDeviceYearMonthData(deviceID, year);
                if (deviceYearMonthData == null)//构造一个新实例
                    deviceYearMonthData = new DeviceYearMonthData() {  year = year, deviceID = deviceID};
                deviceYearMonthData.localAcceptTime = DateTime.Now;
                MemcachedClientSatat.getInstance().Set(cacheKey, deviceYearMonthData);
            }
            else
                deviceYearMonthData = (DeviceYearMonthData)obj;

            return deviceYearMonthData;
        }