Esempio n. 1
0
        /// <summary>
        /// Add data to cache.
        /// </summary>
        private List <Report114Entity> AddDataToCache()
        {
            var userData  = UserData;
            var cacheKey1 = WebUtility.GetCacheKeyName(userData, "kpi-report-114");
            var cacheKey2 = WebUtility.GetCacheKeyName(userData, "kpi-report-114-02");

            HttpRuntime.Cache.Remove(cacheKey1);
            HttpRuntime.Cache.Remove(cacheKey2);

            var lscs = new List <LscUserInfo>();

            if (LscsComboBox.SelectedIndex > 0)
            {
                var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value);
                if (ids.Length == 2)
                {
                    var lscId   = Int32.Parse(ids[0]);
                    var groupId = Int32.Parse(ids[1]);
                    var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == lscId); });
                    if (lscUser != null)
                    {
                        lscs.Add(lscUser);
                    }
                }
            }
            else
            {
                lscs.AddRange(userData.LscUsers);
            }
            if (lscs.Count == 0)
            {
                return(null);
            }

            var staTypes = new Dictionary <Int32, String>();

            foreach (var dt in StaTypeMultiCombo.SelectedItems)
            {
                staTypes[Int32.Parse(dt.Value)] = dt.Text;
            }
            if (staTypes.Count == 0)
            {
                return(null);
            }

            var devTypes = new Dictionary <Int32, String>();

            foreach (var dt in DevTypeMultiCombo.SelectedItems)
            {
                devTypes[Int32.Parse(dt.Value)] = dt.Text;
            }
            if (devTypes.Count == 0)
            {
                return(null);
            }

            var fromTime = DateTime.Parse(BeginDate.Text);
            var toTime   = DateTime.Parse(EndDate.Text);

            var otherEntity = new BOther();
            var source1     = new List <Report114Entity>();
            var source2     = new Dictionary <String, List <DeviceInfo> >();

            foreach (var lsc in lscs)
            {
                var devices1   = otherEntity.GetDevices(lsc.LscID).FindAll(d => staTypes.ContainsKey(d.StaTypeID) && devTypes.ContainsKey(d.DevTypeID));
                var dscRecords = otherEntity.GetHisDsc(lsc.LscID, fromTime, toTime).FindAll(d => d.ModuleNum > 0 && d.RatedCurrent > 0 && d.LoadCurrent >= 0 && d.LoadCurrent / (d.ModuleNum * d.RatedCurrent) < 0.65);
                var temp       = from dr in dscRecords
                                 group dr by dr.DevID into g
                                 select g.Key;

                var devices2 = (from dev in devices1
                                join tp in temp on dev.DevID equals tp
                                select dev).ToList();

                source1.Add(new Report114Entity {
                    LscID     = lsc.LscID,
                    LscName   = lsc.LscName,
                    ThisCount = devices2.Count,
                    LastCount = devices1.Count
                });

                source2[String.Format("{0}-ThisCount", lsc.LscID)] = devices2;
                source2[String.Format("{0}-LastCount", lsc.LscID)] = devices1;
            }

            if (source1.Count > 0)
            {
                source1.Add(new Report114Entity {
                    LscID     = -100,
                    LscName   = "汇总",
                    ThisCount = (Int32)source1.Sum(r => r.ThisCount),
                    LastCount = (Int32)source1.Sum(r => r.LastCount)
                });
            }

            int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]);

            HttpRuntime.Cache.Insert(cacheKey1, source1, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null);
            HttpRuntime.Cache.Insert(cacheKey2, source2, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null);
            return(source1);
        }
Esempio n. 2
0
        /// <summary>
        /// Add data to cache.
        /// </summary>
        private List <Report008Entity> AddDataToCache()
        {
            var userData = UserData;
            var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-008");

            HttpRuntime.Cache.Remove(cacheKey);

            var lscs = new List <LscUserInfo>();

            if (LscsComboBox.SelectedIndex > 0)
            {
                var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value);
                if (ids.Length == 2)
                {
                    var lscId   = Int32.Parse(ids[0]);
                    var groupId = Int32.Parse(ids[1]);
                    var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == lscId); });
                    if (lscUser != null)
                    {
                        lscs.Add(lscUser);
                    }
                }
            }
            else
            {
                lscs.AddRange(userData.LscUsers);
            }
            if (lscs.Count == 0)
            {
                return(null);
            }

            var devTypes = new Dictionary <Int32, String>();

            foreach (var dt in DevTypeMultiCombo.SelectedItems)
            {
                devTypes[Int32.Parse(dt.Value)] = dt.Text;
            }
            if (devTypes.Count == 0)
            {
                return(null);
            }

            var fromTime = DateTime.Parse(BeginFromDate.Text);
            var toTime   = DateTime.Parse(BeginToDate.Text);

            var otherEntity = new BOther();
            var result      = new List <Report008Entity>();

            foreach (var lsc in lscs)
            {
                var devs = otherEntity.GetDevices(lsc.LscID).FindAll(d => devTypes.ContainsKey(d.DevTypeID));
                var dscs = otherEntity.GetHisDsc(lsc.LscID, fromTime, toTime).FindAll(d => d.ModuleNum != 0 && d.RatedCurrent != 0 && (d.LoadCurrent / (d.ModuleNum * d.RatedCurrent)) < 0.65);
                var hgdv = (from dev in devs
                            join ds in dscs on dev.DevID equals ds.DevID
                            select dev).ToList();

                result.Add(new Report008Entity {
                    LscID     = lsc.LscID,
                    LscName   = lsc.LscName,
                    ThisCount = hgdv.Count,
                    LastCount = devs.Count
                });
            }

            if (result.Count > 0)
            {
                result.Add(new Report008Entity {
                    LscID     = -100,
                    LscName   = "汇总(平均值)",
                    ThisCount = (Int32)result.Average(r => r.ThisCount),
                    LastCount = (Int32)result.Average(r => r.LastCount)
                });
            }

            int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]);

            HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null);
            return(result);
        }