public string GetFilterStations(string filter) { try { var userData = UserData; var otherEntity = new BOther(); var stations = otherEntity.GetStationMarkers(filter, 1, 180, 1, 90, 100); if (stations != null && stations.Count > 0) { var gns = new List <GroupTreeInfo>(); foreach (var lu in userData.LscUsers) { gns.AddRange(lu.Group.GroupNodes.FindAll(g => g.NodeType == EnmNodeType.Sta)); } var gs = from sta in stations join gn in gns on new { sta.LscID, sta.StaID } equals new { gn.LscID, StaID = gn.NodeID } select sta; var markers = new List <string>(); foreach (var s in gs) { markers.Add(String.Format("{{lscId:{0},staId:{1},mapType:{2},lng:{3},lat:{4}}}", s.LscID, s.StaID, (int)s.LocationWay, s.Longitude, s.Latitude)); } return(String.Format("[{0}]", String.Join(",", markers.ToArray()))); } } catch { } return(String.Empty); }
public string GetStationDetail(int lscId, int staId) { try { var otherEntity = new BOther(); var station = otherEntity.GetStation(lscId, staId); if (station != null) { int AL1Cnt = 0, AL2Cnt = 0, AL3Cnt = 0, AL4Cnt = 0; var userData = UserData; var alarms = WebUtility.AlarmSAlmFilter(WebUtility.GetUserAlarms(userData)); if (alarms != null && alarms.Count > 0) { AL1Cnt = alarms.Count(alarm => { return(alarm.StaName.Equals(station.StaName) && alarm.AlarmLevel == EnmAlarmLevel.Critical); }); AL2Cnt = alarms.Count(alarm => { return(alarm.StaName.Equals(station.StaName) && alarm.AlarmLevel == EnmAlarmLevel.Major); }); AL3Cnt = alarms.Count(alarm => { return(alarm.StaName.Equals(station.StaName) && alarm.AlarmLevel == EnmAlarmLevel.Minor); }); AL4Cnt = alarms.Count(alarm => { return(alarm.StaName.Equals(station.StaName) && alarm.AlarmLevel == EnmAlarmLevel.Hint); }); } return(String.Format("{{lscId:{0},lscName:\"{1}\",staId:{2},staName:\"{3}\",staTypeName:\"{4}\",staFeatureName:\"{5}\",address:\"{6}\",AL1:{7},AL2:{8},AL3:{9},AL4:{10}}}", station.LscID, station.LscName, station.StaID, station.StaName, station.StaTypeName, station.StaFeatureName, station.MapDesc, AL1Cnt, AL2Cnt, AL3Cnt, AL4Cnt)); } } catch { } return(String.Empty); }
public void UpdateMarker(int olscId, int ostaId, int lscId, int staId, int mapType, double lng, double lat, string address) { try { var lscEntity = new BLsc(); var lsc = lscEntity.GetLsc(lscId); if (lsc == null) { WebUtility.ShowNotify(EnmErrType.Warning, "无法获取客户端信息,数据更新失败!"); return; } var otherEntity = new BOther(); var enmMapType = Enum.IsDefined(typeof(EnmMapType), mapType) ? (EnmMapType)mapType : EnmMapType.GPS; var connectionString = WebUtility.CreateLscConnectionString(lsc); otherEntity.UpdateMarker(olscId, ostaId, lscId, staId, enmMapType, lng, lat, address); otherEntity.UpdateLocalMarker(connectionString, ostaId, staId, enmMapType, lng, lat, address); } catch (Exception err) { WebUtility.WriteLog(EnmSysLogLevel.Error, EnmSysLogType.Exception, err.ToString(), Page.User.Identity.Name); WebUtility.ShowMessage(EnmErrType.Error, err.Message); } }
public string GetViewStations(double minLng, double maxLng, double minLat, double maxLat) { try { var userData = UserData; var otherEntity = new BOther(); var stations = otherEntity.GetStationMarkers(WebUtility.DefaultString, minLng, maxLng, minLat, maxLat, 150); if (stations != null && stations.Count > 0) { var gns = new List <GroupTreeInfo>(); foreach (var lu in userData.LscUsers) { gns.AddRange(lu.Group.GroupNodes.FindAll(g => g.NodeType == EnmNodeType.Sta)); } var gs = from sta in stations join gn in gns on new { sta.LscID, sta.StaID } equals new { gn.LscID, StaID = gn.NodeID } select new { LscID = sta.LscID, LscName = sta.LscName, GroupID = gn.GroupID, StaID = sta.StaID, StaName = sta.StaName, MapType = (int)sta.LocationWay, Lng = sta.Longitude, Lat = sta.Latitude, Address = sta.MapDesc }; var markers = new List <string>(); foreach (var s in gs) { markers.Add(String.Format("{{lscId:{0},lscName:\"{1}\",groupId:{2},staId:{3},staName:\"{4}\",mapType:{5},lng:{6},lat:{7},address:\"{8}\"}}", s.LscID, s.LscName, s.GroupID, s.StaID, s.StaName, s.MapType, s.Lng, s.Lat, s.Address)); } return(String.Format("[{0}]", String.Join(",", markers.ToArray()))); } } catch { } return(String.Empty); }
/// <summary> /// Add data to cache. /// </summary> private List <OilEngineEntity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-oil-engine-report"); HttpRuntime.Cache.Remove(cacheKey); var lscs = new List <LscUserInfo>(); if (LscsComboBox.SelectedIndex > 0) { var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length != 2) { return(null); } 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) { return(null); } lscs.Add(lscUser); } else { lscs.AddRange(userData.LscUsers); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var stexts = new List <String>(); var sauxSets = new List <String>(); var sfilterText = WebUtility.StringSplit(SNodeText.Text.Trim()); foreach (var ft in sfilterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (SFilterList.SelectedItem.Value.Equals("1")) { sauxSets.Add(ft.Trim()); } else { stexts.Add(ft.Trim()); } } var ytexts = new List <String>(); var yauxSets = new List <String>(); var yfilterText = WebUtility.StringSplit(YNodeText.Text.Trim()); foreach (var ft in yfilterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (YFilterList.SelectedItem.Value.Equals("1")) { yauxSets.Add(ft.Trim()); } else { ytexts.Add(ft.Trim()); } } 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 otherEntity = new BOther(); var nodeEntity = new BNode(); var result = new List <OilEngineEntity>(); foreach (var lsc in lscs) { var stations = otherEntity.GetStations(lsc.LscID, lsc.Group.GroupID); var snodes = new List <NodeInfo>(); var ynodes = new List <NodeInfo>(); if (stexts.Count > 0 || sauxSets.Count > 0) { snodes.AddRange(nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Dic, stexts.ToArray(), sauxSets.ToArray(), devTypes.Keys.ToArray())); } if (ytexts.Count > 0 || yauxSets.Count > 0) { ynodes.AddRange(nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Dic, ytexts.ToArray(), yauxSets.ToArray(), devTypes.Keys.ToArray())); } if (Area2ComboBox.SelectedIndex > 0) { var area2Id = Int32.Parse(Area2ComboBox.SelectedItem.Value); stations = stations.FindAll(s => s.Area2ID == area2Id); snodes = snodes.FindAll(n => n.Area2ID == area2Id); ynodes = ynodes.FindAll(n => n.Area2ID == area2Id); } if (Area3ComboBox.SelectedIndex > 0) { var area3Id = Int32.Parse(Area3ComboBox.SelectedItem.Value); stations = stations.FindAll(s => s.Area3ID == area3Id); snodes = snodes.FindAll(n => n.Area3ID == area3Id); ynodes = ynodes.FindAll(n => n.Area3ID == area3Id); } var spairs = new List <OilEnginePair>(); var sdiv = nodeEntity.GetHisDIV(lsc.LscID, snodes.Select(n => n.NodeID).ToArray(), fromTime, toTime); foreach (var node in snodes) { var curNodes = sdiv.FindAll(d => d.NodeID == node.NodeID).OrderBy(d => d.UpdateTime).ToList(); var interval = 0d; var startTime = DateTime.MinValue; foreach (var cn in curNodes) { if (cn.Value == GJ && startTime == DateTime.MinValue) { startTime = cn.UpdateTime; } else if (cn.Value == ZC && startTime != DateTime.MinValue) { interval += cn.UpdateTime.Subtract(startTime).TotalMinutes; startTime = DateTime.MinValue; } } if (startTime != DateTime.MinValue) { interval += toTime.Subtract(startTime).TotalMinutes; startTime = DateTime.MinValue; } spairs.Add(new OilEnginePair { Node = node, Divs = curNodes, Interval = interval }); } var ypairs = new List <OilEnginePair>(); var ydiv = nodeEntity.GetHisDIV(lsc.LscID, ynodes.Select(n => n.NodeID).ToArray(), fromTime, toTime); foreach (var node in ynodes) { var curNodes = ydiv.FindAll(d => d.NodeID == node.NodeID).OrderBy(d => d.UpdateTime).ToList(); var interval = 0d; var startTime = DateTime.MinValue; foreach (var cn in curNodes) { if (cn.Value == GJ && startTime == DateTime.MinValue) { startTime = cn.UpdateTime; } else if (cn.Value == ZC && startTime != DateTime.MinValue) { interval += cn.UpdateTime.Subtract(startTime).TotalMinutes; startTime = DateTime.MinValue; } } if (startTime != DateTime.MinValue) { interval += toTime.Subtract(startTime).TotalMinutes; startTime = DateTime.MinValue; } ypairs.Add(new OilEnginePair { Node = node, Divs = curNodes, Interval = interval }); } var sresult = from s in spairs group s by new { s.Node.LscID, s.Node.StaID } into g select new { LscID = g.Key.LscID, StaID = g.Key.StaID, Nodes = g }; var yresult = from y in ypairs group y by new { y.Node.LscID, y.Node.StaID } into g select new { LscID = g.Key.LscID, StaID = g.Key.StaID, Nodes = g }; result.AddRange(from sta in stations join sr in sresult on new { sta.LscID, sta.StaID } equals new { sr.LscID, sr.StaID } into lt1 from ss in lt1.DefaultIfEmpty() join yr in yresult on new { sta.LscID, sta.StaID } equals new { yr.LscID, yr.StaID } into lt2 from ys in lt2.DefaultIfEmpty() select new OilEngineEntity { Station = sta, SNodes = ss != null ? ss.Nodes.ToList() : new List <OilEnginePair>(), YNodes = ys != null ? ys.Nodes.ToList() : new List <OilEnginePair>() }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add data to cache. /// </summary> private List <Report002Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-002"); 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 fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var auxSets = new List <String>(); var texts = new List <String>(); var filterText = WebUtility.StringSplit(NodeText.Text.Trim()); foreach (var ft in filterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (FilterList.SelectedItem.Value.Equals("1")) { auxSets.Add(ft.Trim()); } else { texts.Add(ft.Trim()); } } if (texts.Count == 0 && auxSets.Count == 0) { return(null); } var pauxSets = new List <String>(); var ptexts = new List <String>(); var pfilterText = WebUtility.StringSplit(PNodeText.Text.Trim()); foreach (var ft in pfilterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (PFilterList.SelectedItem.Value.Equals("1")) { pauxSets.Add(ft.Trim()); } else { ptexts.Add(ft.Trim()); } } if (ptexts.Count == 0 && pauxSets.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 almNames = new List <String>(); var almIds = new Dictionary <String, String>(); var almText = WebUtility.StringSplit(AlarmNameText.Text.Trim()); foreach (var at in almText) { if (String.IsNullOrEmpty(at.Trim())) { continue; } if (AlmNameList.SelectedItem.Value.Equals("1")) { almIds[at.Trim()] = null; } else { almNames.Add(at.Trim()); } } var palmNames = new List <String>(); var palmIds = new Dictionary <String, String>(); var palmText = WebUtility.StringSplit(PAlarmNameText.Text.Trim()); foreach (var at in palmText) { if (String.IsNullOrEmpty(at.Trim())) { continue; } if (PAlmNameList.SelectedItem.Value.Equals("1")) { palmIds[at.Trim()] = null; } else { palmNames.Add(at.Trim()); } } var otherEntity = new BOther(); var nodeEntity = new BNode(); var devices = new List <DeviceInfo>(); var nodes = new List <NodeInfo>(); var pnodes = new List <NodeInfo>(); foreach (var lsc in lscs) { devices.AddRange(otherEntity.GetDevices(lsc.LscID, lsc.Group.GroupID)); nodes.AddRange(nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Img, texts.ToArray(), auxSets.ToArray(), null)); if (ptexts.Count > 0 || pauxSets.Count > 0) { pnodes.AddRange(nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Img, ptexts.ToArray(), pauxSets.ToArray(), null)); } } devices = devices.FindAll(d => devTypes.ContainsKey(d.AlmDevTypeID)); var devGroup = from dev in devices group dev by new { dev.LscID } into g select new { LscID = g.Key.LscID, Devices = g.ToList() }; var lcWdv = from lsc in lscs join dg in devGroup on new { lsc.LscID } equals new { dg.LscID } into lt from gs in lt.DefaultIfEmpty() select new { LscID = lsc.LscID, LscName = lsc.LscName, Devices = gs == null ? new List <DeviceInfo>() : gs.Devices }; var alarmEntity = new BAlarm(); var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => lscs.Any(l => l.LscID == alarm.LscID) && alarm.StartTime >= fromTime && alarm.StartTime <= toTime); foreach (var lsc in lscs) { alarms.AddRange(alarmEntity.GetHisAlarms(lsc.LscID, lsc.LscName, userData.StandardProtocol, lsc.Group.GroupNodes, fromTime, toTime)); } var ndWam = from alarm in alarms join node in nodes on new { alarm.LscID, alarm.NodeID, alarm.NodeType } equals new { node.LscID, node.NodeID, node.NodeType } where (almNames.Count == 0 || almNames.Any(name => alarm.AlarmName.Contains(name))) && (almIds.Count == 0 || almIds.ContainsKey(alarm.AlarmID.ToString())) && string.IsNullOrEmpty(alarm.ProjName) select new { Node = node, Alarm = alarm }; var pdWam = from alarm in alarms join node in pnodes on new { alarm.LscID, alarm.NodeID, alarm.NodeType } equals new { node.LscID, node.NodeID, node.NodeType } where (palmNames.Count == 0 || palmNames.Any(name => alarm.AlarmName.Contains(name))) && (palmIds.Count == 0 || palmIds.ContainsKey(alarm.AlarmID.ToString())) && string.IsNullOrEmpty(alarm.ProjName) select new { Node = node, Alarm = alarm }; var almGroup = from alarm in ndWam group alarm by new { alarm.Node.LscID } into g select new { LscID = g.Key.LscID, Alarms = g.Select(a => a.Alarm) }; var plmGroup = from alarm in pdWam group alarm by new { alarm.Node.LscID } into g select new { LscID = g.Key.LscID, Alarms = g.Select(a => a.Alarm) }; var result = (from ld in lcWdv join ag in almGroup on new { ld.LscID } equals new { ag.LscID } into lt1 from la in lt1.DefaultIfEmpty() join pg in plmGroup on new { ld.LscID } equals new { pg.LscID } into lt2 from lp in lt2.DefaultIfEmpty() orderby ld.LscID select new Report002Entity { LscID = ld.LscID, LscName = ld.LscName, BeginTime = fromTime, EndTime = toTime, Devices = ld.Devices, Alarms = la == null ? new List <AlarmInfo>() : la.Alarms.ToList(), PAlarms = lp == null ? new List <AlarmInfo>() : lp.Alarms.ToList() }).ToList(); if (result.Count > 0) { result.Add(new Report002Entity { LscID = -100, LscName = "汇总(平均值)", BeginTime = fromTime, EndTime = toTime, Devices = new List <DeviceInfo>(), Alarms = new List <AlarmInfo>(), PAlarms = new List <AlarmInfo>() }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add data to cache. /// </summary> private List <Report010Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-010"); HttpRuntime.Cache.Remove(cacheKey); var lscIds = new List <int>(); 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]); lscIds.Add(lscId); } } else { lscIds.AddRange(userData.LscUsers.Select(l => l.LscID)); } if (lscIds.Count == 0) { return(null); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); 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 lscEntity = new BLsc(); var otherEntity = new BOther(); var result = new List <Report010Entity>(); foreach (var id in lscIds) { var lsc = lscEntity.GetLsc(id); if (lsc == null) { continue; } var bats = otherEntity.GetBatStaticCount(lsc.LscID, fromTime, toTime, null, null, 1d / 24d, Int32.MaxValue); var devices = otherEntity.GetDevices(lsc.LscID).FindAll(d => devTypes.ContainsKey(d.AlmDevTypeID)); var batDev = from dev in devices join bat in bats on new { dev.DevID } equals new { DevID = bat.Value } select dev; var parm = Report010Entity.GetLscParam(lsc.LscID, WebUtility.CreateLscConnectionString(lsc)); result.Add(new Report010Entity { LscID = lsc.LscID, LscName = lsc.LscName, ThisCount = batDev == null ? 0 : (fRadio.Checked ? batDev.GroupBy(d => d.StaID).Count() : batDev.GroupBy(d => d.Area3ID).Count()), LastCount = parm != null ? parm.StaTNumber : 0 }); } if (result.Count > 0) { result.Add(new Report010Entity { 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); }
/// <summary> /// Add data to cache. /// </summary> private List <Report122Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-122"); HttpRuntime.Cache.Remove(cacheKey); var lscUsers = 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) { lscUsers.Add(lscUser); } } } else { lscUsers.AddRange(userData.LscUsers); } if (lscUsers.Count == 0) { return(null); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var dates = new List <string>(); var temp = fromTime; while (temp <= toTime) { dates.Add(WebUtility.GetDateString2(temp)); temp = temp.AddDays(1); } var staTypes = new HashSet <int>(); foreach (var dt in StaTypeMultiCombo.SelectedItems) { staTypes.Add(int.Parse(dt.Value)); } if (staTypes.Count == 0) { return(null); } var alarmId = int.Parse(AlarmNameComboBox.SelectedItem.Value); var otherEntity = new BOther(); var alarmEntity = new BAlarm(); var source = new List <Report122Entity>(); foreach (var lu in lscUsers) { var stations = otherEntity.GetStations(lu.LscID, lu.Group.GroupID).FindAll(s => staTypes.Contains(s.StaTypeID)); var alarms = alarmEntity.GetHisAlarms(lu.LscID, lu.LscName, userData.StandardProtocol, lu.Group.GroupNodes, fromTime, toTime).FindAll(a => a.AlarmID == alarmId); var perdays = alarms.GroupBy(a => WebUtility.GetDateString2(a.StartTime)).Select(g => new { Date = g.Key, StationKeys = new HashSet <string>(g.Select(a => a.StaName)) }); foreach (var date in dates) { var day = perdays.FirstOrDefault(p => p.Date.Equals(date)); source.Add(new Report122Entity { LscID = lu.LscID, LscName = lu.LscName, Date = date, Gstations = day == null ? new List <StationInfo>() : stations.FindAll(s => day.StationKeys.Contains(s.StaName)), Stations = stations }); } } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, source, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(source); }
/// <summary> /// Add data to cache. /// </summary> private List <Report120Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-120"); HttpRuntime.Cache.Remove(cacheKey); var lscUsers = 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) { lscUsers.Add(lscUser); } } } else { lscUsers.AddRange(userData.LscUsers); } if (lscUsers.Count == 0) { return(null); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var staTypes = new HashSet <int>(); foreach (var dt in StaTypeMultiCombo.SelectedItems) { staTypes.Add(int.Parse(dt.Value)); } if (staTypes.Count == 0) { return(null); } var devTypes = new HashSet <int>(); foreach (var dt in DevTypeMultiCombo.SelectedItems) { devTypes.Add(int.Parse(dt.Value)); } if (devTypes.Count == 0) { return(null); } var alarmId = int.Parse(AlarmNameComboBox.SelectedItem.Value); var otherEntity = new BOther(); var alarmEntity = new BAlarm(); var source = new List <Report120Entity>(); foreach (var lu in lscUsers) { var devices = otherEntity.GetDevices(lu.LscID, lu.Group.GroupID).FindAll(d => staTypes.Contains(d.StaTypeID) && devTypes.Contains(d.DevTypeID)); var devkeys = new HashSet <string>(devices.Select(d => string.Format("{0}┊{1}", d.StaName, d.DevName))); var alarms = alarmEntity.GetHisAlarms(lu.LscID, lu.LscName, userData.StandardProtocol, lu.Group.GroupNodes, fromTime, toTime).FindAll(a => a.AlarmID == alarmId && devkeys.Contains(string.Format("{0}┊{1}", a.StaName, a.DevName))); var perNodeAlarms = alarms.GroupBy(a => new { a.StaName, a.DevName, a.NodeName }).Select(g => { var first = g.First(); return(new Report120Node { LscID = first.LscID, LscName = first.LscName, Area1Name = first.Area1Name, Area2Name = first.Area2Name, Area3Name = first.Area3Name, Area4Name = first.Area4Name, StaName = g.Key.StaName, DevName = g.Key.DevName, NodeName = g.Key.NodeName, First = g.Min(c => c.StartTime), Last = g.Max(c => c.StartTime) }); }); source.Add(new Report120Entity { LscID = lu.LscID, LscName = lu.LscName, Nodes = perNodeAlarms.ToList(), Devices = devices }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, source, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(source); }
/// <summary> /// Add data to cache. /// </summary> private List <Report117Entity> AddDataToCache() { var userData = UserData; var cacheKey1 = WebUtility.GetCacheKeyName(userData, "kpi-report-117"); var cacheKey2 = WebUtility.GetCacheKeyName(userData, "kpi-report-117-02"); HttpRuntime.Cache.Remove(cacheKey1); HttpRuntime.Cache.Remove(cacheKey2); var lscIds = new List <int>(); 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]); lscIds.Add(lscId); } } else { lscIds.AddRange(userData.LscUsers.Select(l => l.LscID)); } if (lscIds.Count == 0) { return(null); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); 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 otherEntity = new BOther(); var lscEntity = new BLsc(); var source1 = new List <Report117Entity>(); var source2 = new Dictionary <String, List <StationInfo> >(); foreach (var id in lscIds) { var lsc = lscEntity.GetLsc(id); if (lsc == null) { continue; } var stations = new Dictionary <Int32, String>(); var bats = otherEntity.GetBatStaticCount(lsc.LscID, fromTime, toTime, null, null, 1d / 24d, Int32.MaxValue); if (bats != null && bats.Count > 0) { var devices = otherEntity.GetDevices(lsc.LscID).FindAll(d => staTypes.ContainsKey(d.StaTypeID) && devTypes.ContainsKey(d.DevTypeID)); var temp = from dev in devices join bat in bats on new { dev.LscID, dev.DevID } equals new { LscID = bat.ID, DevID = bat.Value } select dev; foreach (var t in temp) { stations[t.StaID] = t.StaName; } } var stations1 = otherEntity.GetStations(lsc.LscID).FindAll(s => stations.ContainsKey(s.StaID)); var stations2 = Report117Entity.GetStations(lsc.LscID, lsc.LscName, WebUtility.CreateLscConnectionString(lsc)); var record = new Report117Entity { LscID = lsc.LscID, LscName = lsc.LscName, ThisCount = stations1.Count, LastCount = stations2.Count }; source1.Add(record); source2[String.Format("{0}-ThisCount", lsc.LscID)] = stations1; source2[String.Format("{0}-LastCount", lsc.LscID)] = stations2; } if (source1.Count > 0) { source1.Add(new Report117Entity { 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); }
/// <summary> /// Add Data To Cache /// </summary> private DataTable AddDataToCache() { var userData = UserData; var cacheKey1 = WebUtility.GetCacheKeyName(userData, "dev-alarm-source1"); var cacheKey2 = WebUtility.GetCacheKeyName(userData, "dev-alarm-source2"); var cacheKey3 = WebUtility.GetCacheKeyName(userData, "dev-alarm-source3"); HttpRuntime.Cache.Remove(cacheKey1); HttpRuntime.Cache.Remove(cacheKey2); HttpRuntime.Cache.Remove(cacheKey3); if (String.IsNullOrEmpty(CountItemField.RawValue.ToString())) { return(null); } var values = WebUtility.StringSplit(CountItemField.RawValue.ToString()); var beginTime = Convert.ToDateTime(BeginFromDate.Text); var endTime = Convert.ToDateTime(BeginToDate.Text); var minInterval = MinNumberField.Number; var maxInterval = MaxNumberField.Number; if (maxInterval == 0) { maxInterval = int.MaxValue; } var levels = new Dictionary <Int32, String>(); var devtyps = new Dictionary <Int32, String>(); var almIds = new Dictionary <Int32, String>(); var prdors = new List <String>(); if (AlarmLevelMultiCombo.SelectedItems.Count == 0) { return(null); } for (int i = 0; i < AlarmLevelMultiCombo.SelectedItems.Count; i++) { var key = Int32.Parse(AlarmLevelMultiCombo.SelectedItems[i].Value); var value = AlarmLevelMultiCombo.SelectedItems[i].Text; levels[key] = value; } if (DevTypeMultiCombo.SelectedItems.Count > 0) { for (int i = 0; i < DevTypeMultiCombo.SelectedItems.Count; i++) { var key = Int32.Parse(DevTypeMultiCombo.SelectedItems[i].Value); var value = DevTypeMultiCombo.SelectedItems[i].Text; devtyps[key] = value; } } var text1 = AlarmNameDropDownField.Text.Trim(); if (text1 != "") { var names = WebUtility.StringSplit(text1); for (int i = 0; i < names.Length; i++) { almIds[Int32.Parse(names[i])] = null; } } var text2 = ProductorText.Text.Trim(); if (text2 != "") { prdors.AddRange(WebUtility.StringSplit(text2)); } var colcnt = MainGridPanel.ColumnModel.Columns.Count; var countType = CountTypeComboBox.SelectedItem.Value; var condition = new List <GroupTreeInfo>(); var source1 = CreateCustomizeTable(colcnt); var source2 = new Dictionary <String, List <AlarmInfo> >(); var source3 = new Dictionary <String, List <DeviceInfo> >(); var total1 = new List <AlarmInfo>(); var total2 = new List <DeviceInfo>(); if (countType.Equals("0")) { #region Lsc foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.LSC) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var alarms = new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime).FindAll(a => { var interval = a.EndTime.Subtract(a.StartTime).TotalMinutes; return(interval >= minInterval && interval <= maxInterval); }); if (levels.Count > 0) { alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel)); } if (almIds.Count > 0) { alarms = alarms.FindAll(a => almIds.ContainsKey(a.AlarmID)); } var devices = new BOther().GetDevices(lscUser.LscID, lscUser.Group.GroupID); if (devtyps.Count > 0) { devices = devices.FindAll(d => devtyps.ContainsKey(d.DevTypeID)); } if (prdors.Count > 0) { devices = devices.FindAll(d => WebUtility.Contain(d.ProdName, prdors.ToArray())); } var temp1 = from alm in alarms join dev in devices on WebUtility.GetDevID(alm.NodeID) equals dev.DevID select new { Device = dev, Alarm = alm }; var temp2 = (from t in temp1 group t by new { t.Device.DevTypeID, t.Device.ProdID, t.Alarm.AlarmID } into g select new { DevTypeID = g.Key.DevTypeID, DevTypeName = g.First().Device.DevTypeName, ProdID = g.Key.ProdID, ProdName = g.First().Device.ProdName, AlarmID = g.Key.AlarmID, AlarmName = g.First().Alarm.AlarmName, Alarms = g.Select(a => a.Alarm).ToList(), Devices = g.Select(a => a.Device).Distinct().ToList() }).ToList(); for (var i = 0; i < temp2.Count; i++) { var dr = source1.NewRow(); dr[1] = lscUser.LscName; dr[2] = temp2[i].DevTypeName; dr[3] = temp2[i].ProdName; dr[4] = temp2[i].AlarmName; dr[5] = temp2[i].Alarms.Count; dr[6] = temp2[i].Devices.Count; dr[7] = WebUtility.GetDateTimeFromSec(temp2[i].Alarms.Sum(a => a.EndTime.Subtract(a.StartTime).TotalSeconds)); source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[5].ColumnName)] = temp2[i].Alarms; source3[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[6].ColumnName)] = temp2[i].Devices; source1.Rows.Add(dr); total1.AddRange(temp2[i].Alarms); total2.AddRange(temp2[i].Devices); } } if (total1.Count > 0) { var dr = source1.NewRow(); dr[1] = "总计"; dr[2] = "--"; dr[3] = "--"; dr[4] = "--"; dr[5] = total1.Count; dr[6] = total2.Count; dr[7] = WebUtility.GetDateTimeFromSec(total1.Sum(a => a.EndTime.Subtract(a.StartTime).TotalSeconds)); source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[5].ColumnName)] = total1; source3[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[6].ColumnName)] = total2; source1.Rows.Add(dr); } #endregion } else if (countType.Equals("1")) { #region Area=2 foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.Area && remark.Equals("2")) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var alarms = new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime).FindAll(a => { var interval = a.EndTime.Subtract(a.StartTime).TotalMinutes; return(interval >= minInterval && interval <= maxInterval); }); if (levels.Count > 0) { alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel)); } if (almIds.Count > 0) { alarms = alarms.FindAll(a => almIds.ContainsKey(a.AlarmID)); } var devices = new BOther().GetDevices(lscUser.LscID, lscUser.Group.GroupID); if (devtyps.Count > 0) { devices = devices.FindAll(d => devtyps.ContainsKey(d.DevTypeID)); } if (prdors.Count > 0) { devices = devices.FindAll(d => WebUtility.Contain(d.ProdName, prdors.ToArray())); } var temp1 = from alm in alarms join dev in devices on WebUtility.GetDevID(alm.NodeID) equals dev.DevID select new { Device = dev, Alarm = alm }; var areas = from a in new BOther().GetAreas(lscUser.LscID, lscUser.Group.GroupID, 2) join c in condition on new { a.LscID, a.Area2ID } equals new { c.LscID, Area2ID = c.NodeID } select a; foreach (var area in areas) { var temp2 = temp1.Where(a => a.Device.Area2ID == area.Area2ID); if (temp2.Any()) { var temp3 = (from t in temp2 group t by new { t.Device.DevTypeID, t.Device.ProdID, t.Alarm.AlarmID } into g select new { DevTypeID = g.Key.DevTypeID, DevTypeName = g.First().Device.DevTypeName, ProdID = g.Key.ProdID, ProdName = g.First().Device.ProdName, AlarmID = g.Key.AlarmID, AlarmName = g.First().Alarm.AlarmName, Alarms = g.Select(a => a.Alarm).ToList(), Devices = g.Select(a => a.Device).Distinct().ToList() }).ToList(); for (var i = 0; i < temp3.Count; i++) { var dr = source1.NewRow(); dr[1] = area.LscName; dr[2] = area.Area2Name; dr[3] = temp3[i].DevTypeName; dr[4] = temp3[i].ProdName; dr[5] = temp3[i].AlarmName; dr[6] = temp3[i].Alarms.Count; dr[7] = temp3[i].Devices.Count; dr[8] = WebUtility.GetDateTimeFromSec(temp3[i].Alarms.Sum(a => a.EndTime.Subtract(a.StartTime).TotalSeconds)); source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[6].ColumnName)] = temp3[i].Alarms; source3[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[7].ColumnName)] = temp3[i].Devices; source1.Rows.Add(dr); total1.AddRange(temp3[i].Alarms); total2.AddRange(temp3[i].Devices); } } } } if (total1.Count > 0) { var dr = source1.NewRow(); dr[1] = "总计"; dr[2] = "--"; dr[3] = "--"; dr[4] = "--"; dr[5] = "--"; dr[6] = total1.Count; dr[7] = total2.Count; dr[8] = WebUtility.GetDateTimeFromSec(total1.Sum(a => a.EndTime.Subtract(a.StartTime).TotalSeconds)); source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[6].ColumnName)] = total1; source3[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[7].ColumnName)] = total2; source1.Rows.Add(dr); } #endregion } else if (countType.Equals("2")) { #region Area=3 foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.Area && remark.Equals("3")) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var alarms = new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime).FindAll(a => { var interval = a.EndTime.Subtract(a.StartTime).TotalMinutes; return(interval >= minInterval && interval <= maxInterval); }); if (levels.Count > 0) { alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel)); } if (almIds.Count > 0) { alarms = alarms.FindAll(a => almIds.ContainsKey(a.AlarmID)); } var devices = new BOther().GetDevices(lscUser.LscID, lscUser.Group.GroupID); if (devtyps.Count > 0) { devices = devices.FindAll(d => devtyps.ContainsKey(d.DevTypeID)); } if (prdors.Count > 0) { devices = devices.FindAll(d => WebUtility.Contain(d.ProdName, prdors.ToArray())); } var temp1 = from alm in alarms join dev in devices on WebUtility.GetDevID(alm.NodeID) equals dev.DevID select new { Device = dev, Alarm = alm }; var areas = from a in new BOther().GetAreas(lscUser.LscID, lscUser.Group.GroupID, 3) join c in condition on new { a.LscID, a.Area3ID } equals new { c.LscID, Area3ID = c.NodeID } select a; foreach (var area in areas) { var temp2 = temp1.Where(a => a.Device.Area3ID == area.Area3ID); if (temp2.Any()) { var temp3 = (from t in temp2 group t by new { t.Device.DevTypeID, t.Device.ProdID, t.Alarm.AlarmID } into g select new { DevTypeID = g.Key.DevTypeID, DevTypeName = g.First().Device.DevTypeName, ProdID = g.Key.ProdID, ProdName = g.First().Device.ProdName, AlarmID = g.Key.AlarmID, AlarmName = g.First().Alarm.AlarmName, Alarms = g.Select(a => a.Alarm).ToList(), Devices = g.Select(a => a.Device).Distinct().ToList() }).ToList(); for (var i = 0; i < temp3.Count; i++) { var dr = source1.NewRow(); dr[1] = area.LscName; dr[2] = area.Area2Name; dr[3] = area.Area3Name; dr[4] = temp3[i].DevTypeName; dr[5] = temp3[i].ProdName; dr[6] = temp3[i].AlarmName; dr[7] = temp3[i].Alarms.Count; dr[8] = temp3[i].Devices.Count; dr[9] = WebUtility.GetDateTimeFromSec(temp3[i].Alarms.Sum(a => a.EndTime.Subtract(a.StartTime).TotalSeconds)); source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[7].ColumnName)] = temp3[i].Alarms; source3[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[8].ColumnName)] = temp3[i].Devices; source1.Rows.Add(dr); total1.AddRange(temp3[i].Alarms); total2.AddRange(temp3[i].Devices); } } } } if (total1.Count > 0) { var dr = source1.NewRow(); dr[1] = "总计"; dr[2] = "--"; dr[3] = "--"; dr[4] = "--"; dr[5] = "--"; dr[6] = "--"; dr[7] = total1.Count; dr[8] = total2.Count; dr[9] = WebUtility.GetDateTimeFromSec(total1.Sum(a => a.EndTime.Subtract(a.StartTime).TotalSeconds)); source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[7].ColumnName)] = total1; source3[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[8].ColumnName)] = total2; source1.Rows.Add(dr); } #endregion } else if (countType.Equals("3")) { #region Station foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.Area && remark.Equals("3")) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var alarms = new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime).FindAll(a => { var interval = a.EndTime.Subtract(a.StartTime).TotalMinutes; return(interval >= minInterval && interval <= maxInterval); }); if (levels.Count > 0) { alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel)); } if (almIds.Count > 0) { alarms = alarms.FindAll(a => almIds.ContainsKey(a.AlarmID)); } var devices = new BOther().GetDevices(lscUser.LscID, lscUser.Group.GroupID); if (devtyps.Count > 0) { devices = devices.FindAll(d => devtyps.ContainsKey(d.DevTypeID)); } if (prdors.Count > 0) { devices = devices.FindAll(d => WebUtility.Contain(d.ProdName, prdors.ToArray())); } var temp1 = from alm in alarms join dev in devices on WebUtility.GetDevID(alm.NodeID) equals dev.DevID select new { Device = dev, Alarm = alm }; var stations = from c in condition join s in new BOther().GetStations(lscUser.LscID, lscUser.Group.GroupID) on new { c.LscID, Area3ID = c.NodeID } equals new { s.LscID, s.Area3ID } select s; foreach (var sta in stations) { var temp2 = temp1.Where(a => a.Device.StaID == sta.StaID); if (temp2.Any()) { var temp3 = (from t in temp2 group t by new { t.Device.DevTypeID, t.Device.ProdID, t.Alarm.AlarmID } into g select new { DevTypeID = g.Key.DevTypeID, DevTypeName = g.First().Device.DevTypeName, ProdID = g.Key.ProdID, ProdName = g.First().Device.ProdName, AlarmID = g.Key.AlarmID, AlarmName = g.First().Alarm.AlarmName, Alarms = g.Select(a => a.Alarm).ToList(), Devices = g.Select(a => a.Device).Distinct().ToList() }).ToList(); for (var i = 0; i < temp3.Count; i++) { var dr = source1.NewRow(); dr[1] = sta.LscName; dr[2] = sta.Area2Name; dr[3] = sta.Area3Name; dr[4] = sta.StaName; dr[5] = temp3[i].DevTypeName; dr[6] = temp3[i].ProdName; dr[7] = temp3[i].AlarmName; dr[8] = temp3[i].Alarms.Count; dr[9] = temp3[i].Devices.Count; dr[10] = WebUtility.GetDateTimeFromSec(temp3[i].Alarms.Sum(a => a.EndTime.Subtract(a.StartTime).TotalSeconds)); source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[8].ColumnName)] = temp3[i].Alarms; source3[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[9].ColumnName)] = temp3[i].Devices; source1.Rows.Add(dr); total1.AddRange(temp3[i].Alarms); total2.AddRange(temp3[i].Devices); } } } } if (total1.Count > 0) { var dr = source1.NewRow(); dr[1] = "总计"; dr[2] = "--"; dr[3] = "--"; dr[4] = "--"; dr[5] = "--"; dr[6] = "--"; dr[7] = "--"; dr[8] = total1.Count; dr[9] = total2.Count; dr[10] = WebUtility.GetDateTimeFromSec(total1.Sum(a => a.EndTime.Subtract(a.StartTime).TotalSeconds)); source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[8].ColumnName)] = total1; source3[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[9].ColumnName)] = total2; source1.Rows.Add(dr); } #endregion } var 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); HttpRuntime.Cache.Insert(cacheKey3, source3, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(source1); }
/// <summary> /// Add data to cache. /// </summary> private List <Report013Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-013"); 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 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 fromTime = DateTime.Parse(BeginDate.Text); var toTime = DateTime.Parse(EndDate.Text); var texts = new List <String>(); var auxSets = new List <String>(); var filterText = WebUtility.StringSplit(NodeText.Text.Trim()); foreach (var ft in filterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (FilterTypeList.SelectedItem.Value.Equals("1")) { auxSets.Add(ft.Trim()); } else { texts.Add(ft.Trim()); } } var nodeEntity = new BNode(); var otherEntity = new BOther(); var source1 = new List <Report013Entity>(); foreach (var lsc in lscs) { var bats = otherEntity.GetBatStatic(lsc.LscID, lsc.LscName, null, null, fromTime, null, null, toTime, 0, Int32.MaxValue); var fdev = from bat in bats group bat by bat.DevID into g select new { DevID = g.Key, Interval = g.Max(t => t.LastTime) * 24 * 60 }; var rdev = from fv in fdev where fv.Interval >= 15 select fv.DevID; if (rdev.Any()) { var nodes = nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Aic, texts.ToArray(), auxSets.ToArray(), null); var values = nodeEntity.GetMaxHisAIV(lsc.LscID, fromTime, toTime); var ndWavl = from node in nodes join val in values on node.NodeID equals val.NodeID into tp from nv in tp.DefaultIfEmpty() select new { Node = node, Value = nv != null ? nv.Value : 0 }; var ndWre = from na in ndWavl join id in rdev on na.Node.DevID equals id select na; var staWall = from nr in ndWre group nr by nr.Node.StaID into g select new { StaID = g.Key, Value = g.Min(v => v.Value) }; var staWhg = from sw in staWall where sw.Value >= 47 select sw; source1.Add(new Report013Entity { LscID = lsc.LscID, LscName = lsc.LscName, CorrectCount = staWhg.Count(), AllCount = staWall.Count() }); } else { source1.Add(new Report013Entity { LscID = lsc.LscID, LscName = lsc.LscName, CorrectCount = 0, AllCount = 0 }); } } if (source1.Count > 0) { source1.Add(new Report013Entity { LscID = -100, LscName = "汇总(平均值)", CorrectCount = (Int32)source1.Average(r => r.CorrectCount), AllCount = (Int32)source1.Average(r => r.AllCount) }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, source1, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(source1); }
/// <summary> /// Add Data To Cache /// </summary> private List <ProjectReportPageEntity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "project-report-entities"); HttpRuntime.Cache.Remove(cacheKey); if (LscsComboBox.SelectedItem.Value == null || LscsComboBox.SelectedItem.Value == String.Empty) { return(null); } var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length != 2) { return(null); } var lsc = new BLsc().GetLsc(Int32.Parse(ids[0])); if (lsc == null) { WebUtility.ShowMessage(EnmErrType.Warning, "无法获取Lsc信息"); return(null); } var beginTime = DateTime.Parse(BeginDate.Text); var endTime = DateTime.Parse(EndDate.Text); var area2Id = WebUtility.DefaultInt32; var area3Id = WebUtility.DefaultInt32; if (Area2ComboBox.SelectedIndex > 0) { area2Id = Int32.Parse(Area2ComboBox.SelectedItem.Value); } if (Area3ComboBox.SelectedIndex > 0) { area3Id = Int32.Parse(Area3ComboBox.SelectedItem.Value); } var appointmentEntity = new BAppointment(); var connectionString = WebUtility.CreateLscConnectionString(lsc); var appointments1 = appointmentEntity.GetAppointments(lsc.LscID, lsc.LscName, connectionString, beginTime, endTime, 0, null); var appointments2 = appointmentEntity.GetHisAppointments(lsc.LscID, lsc.LscName, beginTime, endTime, 0, null); appointments1.AddRange(appointments2); var lscappointments = appointments1.FindAll(a => a.LscIncluded == lsc.LscID); var nonappointments = appointments1.FindAll(a => a.LscIncluded != lsc.LscID); var staSet = new List <IDValuePair <int, AppointmentInfo> >(); foreach (var apt in nonappointments) { if (apt.StaIncluded != null && apt.StaIncluded.Trim() != String.Empty) { var array = apt.StaIncluded.Split(';'); foreach (var id in array) { if (id.Trim() != String.Empty) { staSet.Add(new IDValuePair <int, AppointmentInfo>(Int32.Parse(id), apt)); } } } } var devSet = new List <IDValuePair <int, AppointmentInfo> >(); foreach (var apt in nonappointments) { if (apt.DevIncluded != null && apt.DevIncluded.Trim() != String.Empty) { var array = apt.DevIncluded.Split(';'); foreach (var id in array) { if (id.Trim() != String.Empty) { devSet.Add(new IDValuePair <int, AppointmentInfo>(Int32.Parse(id), apt)); } } } } var otherEntity = new BOther(); var stations = otherEntity.GetStations(lsc.LscID); var master1 = from ss in staSet join sta in stations on ss.ID equals sta.StaID select new IDValuePair <int, AppointmentInfo> { ID = sta.Area3ID, Value = ss.Value }; var devices = otherEntity.GetDevices(lsc.LscID); var master2 = from ds in devSet join dev in devices on ds.ID equals dev.DevID select new IDValuePair <int, AppointmentInfo> { ID = dev.Area3ID, Value = ds.Value }; var master = new Dictionary <String, IDValuePair <int, AppointmentInfo> >(); foreach (var mt in master1) { master[String.Format("{0}-{1}", mt.ID, mt.Value.Id)] = mt; } foreach (var mt in master2) { master[String.Format("{0}-{1}", mt.ID, mt.Value.Id)] = mt; } var areas = otherEntity.GetAreas(lsc.LscID); if (area2Id != WebUtility.DefaultInt32) { areas = areas.FindAll(a => a.Area2ID == area2Id); } if (area3Id != WebUtility.DefaultInt32) { areas = areas.FindAll(a => a.Area3ID == area3Id); } foreach (var area in areas) { foreach (var apt in lscappointments) { master[String.Format("{0}-{1}", area.Area3ID, apt.Id)] = new IDValuePair <int, AppointmentInfo>(area.Area3ID, apt); } } var a1 = from mt in master.Values group mt by new { AreaId = mt.ID, mt.Value.ProjectId } into g select new { g.Key.AreaId, g.Key.ProjectId, Time = g.Sum(a => a.Value.EndTime.Subtract(a.Value.StartTime).TotalSeconds) }; var projects = appointmentEntity.GetProjectItem(lsc.LscID, lsc.LscName, connectionString); var a2 = from a in a1 join p in projects on a.ProjectId equals p.ProjectId select new { AreaId = a.AreaId, Time = a.Time, Project = p, IsExProject = a.Time > p.EndTime.Subtract(p.BeginTime).TotalSeconds }; var a3 = from a in a2 group a by new { a.AreaId } into g select new { g.Key.AreaId, Time = g.Sum(p => p.Time), Projects = g.Select(p => p.Project).ToList(), ExProjects = g.Where(p => p.IsExProject).Select(p => p.Project).ToList() }; var a4 = from area in areas join a in a3 on area.Area3ID equals a.AreaId into l from aa in l.DefaultIfEmpty() select new ProjectReportPageEntity { Area = area, Time = aa != null ? aa.Time : 0, Projects = aa != null ? aa.Projects : new List <ProjectInfo>(), ExProjects = aa != null ? aa.ExProjects : new List <ProjectInfo>() }; var result = a4.ToList(); var cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add Data To Cache /// </summary> private DataTable AddDataToCache() { if (Session["alarm-standardization-standard-file"] == null) { return(null); } if (Session["alarm-standardization-resource-file"] == null) { return(null); } var standardFile = Session["alarm-standardization-standard-file"] as StandardFile; var resourceFile = Session["alarm-standardization-resource-file"] as List <ResourceFile>; var userData = UserData; var cacheKey1 = WebUtility.GetCacheKeyName(userData, "alarm-standardization-source1"); var cacheKey2 = WebUtility.GetCacheKeyName(userData, "alarm-standardization-source2"); HttpRuntime.Cache.Remove(cacheKey1); HttpRuntime.Cache.Remove(cacheKey2); if (String.IsNullOrEmpty(CountItemField.RawValue.ToString())) { return(null); } var values = WebUtility.StringSplit(CountItemField.RawValue.ToString()); var beginTime = Convert.ToDateTime(BeginFromDate.Text); var endTime = Convert.ToDateTime(BeginToDate.Text); var levels = new Dictionary <Int32, String>(); var len = AlarmLevelMultiCombo.SelectedItems.Count; if (len == 0) { return(null); } for (int i = 0; i < len; i++) { var key = Int32.Parse(AlarmLevelMultiCombo.SelectedItems[i].Value); var value = AlarmLevelMultiCombo.SelectedItems[i].Text; levels[key] = value; } var standardRecords = from an in standardFile.AlarmNames join slt in standardFile.SubAlarmLogTypes on an.ParentId equals slt.Id join lt in standardFile.AlarmLogTypes on slt.ParentId equals lt.Id join dt in standardFile.AlarmDeviceTypes on lt.ParentId equals dt.Id select new { AlarmID = an.Id, AlarmName = an.Name, NMAlarmID = an.Comment, AlarmSubLogTypeID = slt.Id, AlarmSubLogType = slt.Name, AlarmLogTypeID = lt.Id, AlarmLogType = lt.Name, AlarmDeviceTypeID = dt.Id, AlarmDeviceType = dt.Name }; var colcnt = MainGridPanel.ColumnModel.Columns.Count; var countType = CountTypeComboBox.SelectedItem.Value; var condition = new List <GroupTreeInfo>(); var source1 = CreateCustomizeTable(colcnt); var source2 = new Dictionary <String, List <AlarmInfo> >(); if (countType.Equals("0")) { #region Lsc foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.LSC) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var dr1 = source1.NewRow(); dr1[1] = lscUser.LscName; var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lscUser.LscID && alarm.StartTime >= beginTime && alarm.StartTime <= endTime); alarms.AddRange(new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime)); alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel)); var devices = new BOther().GetDevices(lscUser.LscID, lscUser.Group.GroupID); var temp1 = from a in alarms join d in devices on WebUtility.GetDevID(a.NodeID) equals d.DevID select new { Alarm = a, Device = d }; var temp3 = from t1 in temp1 join sr in standardRecords on new { t1.Alarm.AlarmName, t1.Alarm.AlarmLogType, t1.Alarm.AlarmDeviceType, t1.Alarm.NMAlarmID } equals new { sr.AlarmName, sr.AlarmLogType, sr.AlarmDeviceType, sr.NMAlarmID } select t1; var temp4 = from t1 in temp1 join rf in resourceFile on new { t1.Device.DevName, t1.Device.DevTypeName, t1.Device.ProdName, t1.Device.StaName } equals new { rf.DevName, rf.DevTypeName, rf.ProdName, rf.StaName } select t1; dr1[2] = alarms.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[2].ColumnName)] = alarms; dr1[3] = String.Format("{0:P2}", alarms.Count > 0 ? (double)temp3.Count() / (double)alarms.Count : 1); dr1[4] = String.Format("{0:P2}", alarms.Count > 0 ? (double)temp4.Count() / (double)alarms.Count : 1); source1.Rows.Add(dr1); } #endregion } else if (countType.Equals("1")) { #region Area=2 foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.Area && remark.Equals("2")) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lscUser.LscID && alarm.StartTime >= beginTime && alarm.StartTime <= endTime); alarms.AddRange(new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime)); alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel)); var devices = new BOther().GetDevices(lscUser.LscID, lscUser.Group.GroupID); var alarmsWithDevices = from a in alarms join d in devices on WebUtility.GetDevID(a.NodeID) equals d.DevID select new { Alarm = a, Device = d }; var alarmsWithDevices1 = from ad in alarmsWithDevices join sr in standardRecords on new { ad.Alarm.AlarmName, ad.Alarm.AlarmLogType, ad.Alarm.AlarmDeviceType, ad.Alarm.NMAlarmID } equals new { sr.AlarmName, sr.AlarmLogType, sr.AlarmDeviceType, sr.NMAlarmID } select ad; var alarmsWithDevices2 = from ad in alarmsWithDevices join rf in resourceFile on new { ad.Device.DevName, ad.Device.DevTypeName, ad.Device.ProdName, ad.Device.StaName } equals new { rf.DevName, rf.DevTypeName, rf.ProdName, rf.StaName } select ad; var areas = from a in new BOther().GetAreas(lscUser.LscID, lscUser.Group.GroupID, 2) join c in condition on new { a.LscID, a.Area2ID } equals new { c.LscID, Area2ID = c.NodeID } select a; foreach (var area in areas) { var dr1 = source1.NewRow(); dr1[1] = area.LscName; dr1[2] = area.Area2Name; var temp1 = alarmsWithDevices.Where(a => a.Device.Area2ID == area.Area2ID); var temp2 = alarmsWithDevices1.Where(a => a.Device.Area2ID == area.Area2ID); var temp3 = alarmsWithDevices2.Where(a => a.Device.Area2ID == area.Area2ID); var result = temp1.Select(a => a.Alarm).ToList(); dr1[3] = result.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[3].ColumnName)] = result; dr1[4] = String.Format("{0:P2}", result.Count > 0 ? (double)temp2.Count() / (double)result.Count : 1); dr1[5] = String.Format("{0:P2}", result.Count > 0 ? (double)temp3.Count() / (double)result.Count : 1); source1.Rows.Add(dr1); } } #endregion } else if (countType.Equals("2")) { #region Area=3 foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.Area && remark.Equals("3")) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lscUser.LscID && alarm.StartTime >= beginTime && alarm.StartTime <= endTime); alarms.AddRange(new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime)); alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel)); var devices = new BOther().GetDevices(lscUser.LscID, lscUser.Group.GroupID); var alarmsWithDevices = from a in alarms join d in devices on WebUtility.GetDevID(a.NodeID) equals d.DevID select new { Alarm = a, Device = d }; var alarmsWithDevices1 = from ad in alarmsWithDevices join sr in standardRecords on new { ad.Alarm.AlarmName, ad.Alarm.AlarmLogType, ad.Alarm.AlarmDeviceType, ad.Alarm.NMAlarmID } equals new { sr.AlarmName, sr.AlarmLogType, sr.AlarmDeviceType, sr.NMAlarmID } select ad; var alarmsWithDevices2 = from ad in alarmsWithDevices join rf in resourceFile on new { ad.Device.DevName, ad.Device.DevTypeName, ad.Device.ProdName, ad.Device.StaName } equals new { rf.DevName, rf.DevTypeName, rf.ProdName, rf.StaName } select ad; var areas = from a in new BOther().GetAreas(lscUser.LscID, lscUser.Group.GroupID, 3) join c in condition on new { a.LscID, a.Area3ID } equals new { c.LscID, Area3ID = c.NodeID } select a; foreach (var area in areas) { var dr1 = source1.NewRow(); dr1[1] = area.LscName; dr1[2] = area.Area2Name; dr1[3] = area.Area3Name; var temp1 = alarmsWithDevices.Where(a => a.Device.Area3ID == area.Area3ID); var temp2 = alarmsWithDevices1.Where(a => a.Device.Area3ID == area.Area3ID); var temp3 = alarmsWithDevices2.Where(a => a.Device.Area3ID == area.Area3ID); var result = temp1.Select(a => a.Alarm).ToList(); dr1[4] = result.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[4].ColumnName)] = result; dr1[5] = String.Format("{0:P2}", result.Count > 0 ? (double)temp2.Count() / (double)result.Count : 1); dr1[6] = String.Format("{0:P2}", result.Count > 0 ? (double)temp3.Count() / (double)result.Count : 1); source1.Rows.Add(dr1); } } #endregion } else if (countType.Equals("3")) { #region Station foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.Area && remark.Equals("3")) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lscUser.LscID && alarm.StartTime >= beginTime && alarm.StartTime <= endTime); alarms.AddRange(new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime)); alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel)); var devices = new BOther().GetDevices(lscUser.LscID, lscUser.Group.GroupID); var alarmsWithDevices = from a in alarms join d in devices on WebUtility.GetDevID(a.NodeID) equals d.DevID select new { Alarm = a, Device = d }; var alarmsWithDevices1 = from ad in alarmsWithDevices join sr in standardRecords on new { ad.Alarm.AlarmName, ad.Alarm.AlarmLogType, ad.Alarm.AlarmDeviceType, ad.Alarm.NMAlarmID } equals new { sr.AlarmName, sr.AlarmLogType, sr.AlarmDeviceType, sr.NMAlarmID } select ad; var alarmsWithDevices2 = from ad in alarmsWithDevices join rf in resourceFile on new { ad.Device.DevName, ad.Device.DevTypeName, ad.Device.ProdName, ad.Device.StaName } equals new { rf.DevName, rf.DevTypeName, rf.ProdName, rf.StaName } select ad; var stations = from c in condition join s in new BOther().GetStations(lscUser.LscID, lscUser.Group.GroupID) on new { c.LscID, Area3ID = c.NodeID } equals new { s.LscID, s.Area3ID } select s; foreach (var sta in stations) { var dr1 = source1.NewRow(); dr1[1] = sta.LscName; dr1[2] = sta.Area2Name; dr1[3] = sta.Area3Name; dr1[4] = sta.StaName; var temp1 = alarmsWithDevices.Where(a => a.Device.StaID == sta.StaID); var temp2 = alarmsWithDevices1.Where(a => a.Device.StaID == sta.StaID); var temp3 = alarmsWithDevices2.Where(a => a.Device.StaID == sta.StaID); var result = temp1.Select(a => a.Alarm).ToList(); dr1[5] = result.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[5].ColumnName)] = result; dr1[6] = String.Format("{0:P2}", result.Count > 0 ? (double)temp2.Count() / (double)result.Count : 1); dr1[7] = String.Format("{0:P2}", result.Count > 0 ? (double)temp3.Count() / (double)result.Count : 1); source1.Rows.Add(dr1); } } #endregion } var 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); }
/// <summary> /// Add data to cache. /// </summary> private List <Report108Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-108"); HttpRuntime.Cache.Remove(cacheKey); var lscs = new List <LscUserInfo>(); if (LscsComboBox.SelectedIndex > 0) { var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length != 2) { return(null); } 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) { return(null); } lscs.Add(lscUser); } else { lscs.AddRange(userData.LscUsers); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var alarmNames = new Dictionary <Int32, String>(); foreach (var item in AlarmNameMultiCombo.SelectedItems) { alarmNames[Convert.ToInt32(item.Value)] = item.Text; } if (alarmNames.Count == 0) { return(null); } var split = ";"; var alarmIds = String.Join(split, alarmNames.Select(n => n.Key.ToString()).ToArray()); var otherEntity = new BOther(); var alarmEntity = new BAlarm(); var result = new List <Report108Entity>(); foreach (var lsc in lscs) { var stations = otherEntity.GetStations(lsc.LscID, lsc.Group.GroupID).FindAll(s => s.BuildingID != WebUtility.DefaultInt32); if (Area2ComboBox.SelectedIndex > 0) { var area2Id = Int32.Parse(Area2ComboBox.SelectedItem.Value); stations = stations.FindAll(s => s.Area2ID == area2Id); } if (Area3ComboBox.SelectedIndex > 0) { var area3Id = Int32.Parse(Area3ComboBox.SelectedItem.Value); stations = stations.FindAll(s => s.Area3ID == area3Id); } if (stations.Count == 0) { continue; } var fsuCnt = otherEntity.GetStationFSUCnt(lsc.LscID, lsc.Group.GroupID, alarmIds, split); var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lsc.LscID && alarm.StartTime >= fromTime && alarm.StartTime <= toTime && alarmNames.ContainsKey(alarm.AlarmID)); alarms.AddRange(alarmEntity.GetHisAlarms(lsc.LscID, lsc.LscName, userData.StandardProtocol, lsc.Group.GroupNodes, fromTime, toTime).FindAll(alarm => { return(alarmNames.ContainsKey(alarm.AlarmID)); })); var staWam = from alarm in alarms group alarm by new { alarm.LscID, alarm.StaName } into g select new { LscID = g.Key.LscID, StaName = g.Key.StaName, Alarms = g }; var staWfa = from sn in stations join fc in fsuCnt on new { sn.LscID, sn.StaID } equals new { fc.LscID, fc.StaID } into lt1 from fs in lt1.DefaultIfEmpty() join sw in staWam on new { sn.LscID, sn.StaName } equals new { sw.LscID, sw.StaName } into lt2 from ws in lt2.DefaultIfEmpty() select new { Station = sn, FSUCnt = fs != null ? fs.AICnt + fs.AOCnt + fs.DICnt + fs.DOCnt : 0, Alarms = ws != null?ws.Alarms.ToList() : new List <AlarmInfo>() }; result.AddRange(from sf in staWfa group sf by new { sf.Station.LscID, sf.Station.Area3ID, sf.Station.BuildingID } into g orderby g.Key.LscID, g.Key.Area3ID, g.Key.BuildingID select new Report108Entity { Station = g.First().Station, BeginTime = fromTime, EndTime = toTime, FSUCnt = g.Sum(f => f.FSUCnt), Alarms = g.SelectMany(a => a.Alarms).ToList() }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add data to cache. /// </summary> private List <Report101Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-101"); HttpRuntime.Cache.Remove(cacheKey); var lscs = new List <LscUserInfo>(); if (LscsComboBox.SelectedIndex > 0) { var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length != 2) { return(null); } 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) { return(null); } lscs.Add(lscUser); } else { lscs.AddRange(userData.LscUsers); } var texts = new List <String>(); var auxSets = new List <String>(); var filterText = WebUtility.StringSplit(NodeText.Text.Trim()); foreach (var ft in filterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (FilterTypeList.SelectedItem.Value.Equals("1")) { auxSets.Add(ft.Trim()); } else { texts.Add(ft.Trim()); } } var ctexts = new List <String>(); var cauxSets = new List <String>(); var cfilterText = WebUtility.StringSplit(CNodeText.Text.Trim()); foreach (var ft in cfilterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (CFilterTypeList.SelectedItem.Value.Equals("1")) { cauxSets.Add(ft.Trim()); } else { ctexts.Add(ft.Trim()); } } 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); } if (texts.Count == 0 && auxSets.Count == 0 && devTypes.Count > 5) { WebUtility.ShowMessage(EnmErrType.Warning, "数据量过多,请更换查询条件后重试!"); return(null); } var otherEntity = new BOther(); var nodeEntity = new BNode(); var stations = new List <StationInfo>(); var devices = new List <DeviceInfo>(); var nodes = new List <NodeInfo>(); var cnodes = new List <NodeInfo>(); foreach (var lsc in lscs) { stations.AddRange(otherEntity.GetStations(lsc.LscID, lsc.Group.GroupID).FindAll(s => s.BuildingID != WebUtility.DefaultInt32)); devices.AddRange(otherEntity.GetDevices(lsc.LscID, lsc.Group.GroupID)); nodes.AddRange(nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Aic, texts.ToArray(), auxSets.ToArray(), devTypes.Keys.ToArray())); if (ctexts.Count > 0 || cauxSets.Count > 0) { cnodes.AddRange(nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Aic, ctexts.ToArray(), cauxSets.ToArray(), devTypes.Keys.ToArray())); } } if (Area2ComboBox.SelectedIndex > 0) { var area2Id = Int32.Parse(Area2ComboBox.SelectedItem.Value); stations = stations.FindAll(s => s.Area2ID == area2Id); } if (Area3ComboBox.SelectedIndex > 0) { var area3Id = Int32.Parse(Area3ComboBox.SelectedItem.Value); stations = stations.FindAll(s => s.Area3ID == area3Id); } if (stations.Count == 0) { return(null); } devices = devices.FindAll(d => devTypes.ContainsKey(d.DevTypeID)); var devGroup = from dev in devices group dev by new { dev.LscID, dev.StaID } into g select new { LscID = g.Key.LscID, StaID = g.Key.StaID, Devices = g.ToList() }; var ndGroup = from node in nodes group node by new { node.LscID, node.StaID } into g select new { LscID = g.Key.LscID, StaID = g.Key.StaID, Nodes = g.ToList() }; var cndGroup = from node in cnodes group node by new { node.LscID, node.StaID } into g select new { LscID = g.Key.LscID, StaID = g.Key.StaID, Nodes = g.ToList() }; var staWdn = from sta in stations join dg in devGroup on new { sta.LscID, sta.StaID } equals new { dg.LscID, dg.StaID } into ltd from ds in ltd.DefaultIfEmpty() join ng in ndGroup on new { sta.LscID, sta.StaID } equals new { ng.LscID, ng.StaID } into ltn from ns in ltn.DefaultIfEmpty() join cg in cndGroup on new { sta.LscID, sta.StaID } equals new { cg.LscID, cg.StaID } into ltc from cs in ltc.DefaultIfEmpty() select new { Station = sta, Devices = ds == null ? new List <DeviceInfo>() : ds.Devices, Nodes = ns == null ? new List <NodeInfo>() : ns.Nodes, CNodes = cs == null ? new List <NodeInfo>() : cs.Nodes }; var result = (from sta in staWdn group sta by new { sta.Station.LscID, sta.Station.Area3ID, sta.Station.BuildingID } into g orderby g.Key.LscID, g.Key.Area3ID, g.Key.BuildingID select new Report101Entity { Station = g.First().Station, FH = g.Sum(t => t.Nodes.Sum(n => n.Value)), CDFH = g.Sum(t => t.CNodes.Sum(n => n.Value)), DesignCapacity = CapacityMenuItem.Checked ? Convert.ToSingle(CapacitySpinnerField.Number) : g.Sum(t => t.Devices.Sum(d => d.DevDesignCapacity == WebUtility.DefaultFloat ? 0 : d.DevDesignCapacity)), Devices = g.SelectMany(d => d.Devices).ToList(), Nodes = g.SelectMany(n => n.Nodes).ToList(), CNodes = g.SelectMany(n => n.CNodes).ToList() }).ToList(); int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add data to cache. /// </summary> private List <Report005Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-005"); 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 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 fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var alarmNames = new Dictionary <Int32, String>(); foreach (var item in AlarmNameMultiCombo.SelectedItems) { alarmNames[Convert.ToInt32(item.Value)] = item.Text; } if (alarmNames.Count == 0) { return(null); } var split = ";"; var alarmIds = String.Join(split, alarmNames.Select(n => n.Key.ToString()).ToArray()); var alarmEntity = new BAlarm(); var otherEntity = new BOther(); var result = new List <Report005Entity>(); foreach (var lsc in lscs) { var fsuCnt = otherEntity.GetStationFSUCnt(lsc.LscID, lsc.Group.GroupID, alarmIds, split).FindAll(fc => staTypes.ContainsKey(fc.StaTypeID)); var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lsc.LscID && alarm.StartTime >= fromTime && alarm.StartTime <= toTime && alarmNames.ContainsKey(alarm.AlarmID) && string.IsNullOrEmpty(alarm.ProjName)); alarms.AddRange(alarmEntity.GetHisAlarms(lsc.LscID, lsc.LscName, userData.StandardProtocol, lsc.Group.GroupNodes, fromTime, toTime).FindAll(alarm => { return(alarmNames.ContainsKey(alarm.AlarmID) && string.IsNullOrEmpty(alarm.ProjName)); })); var temp = from alarm in alarms join fct in fsuCnt on alarm.StaName equals fct.StaName select alarm; result.Add(new Report005Entity() { LscID = lsc.LscID, LscName = lsc.LscName, BeginTime = fromTime, EndTime = toTime, FSUCnt = fsuCnt.Sum(fc => fc.AICnt + fc.AOCnt + fc.DICnt + fc.DOCnt), Alarms = temp.ToList() }); } if (result.Count > 0) { result.Add(new Report005Entity { LscID = -100, LscName = "汇总(平均值)", BeginTime = fromTime, EndTime = toTime, FSUCnt = 0, Alarms = new List <AlarmInfo>() }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add Events To Cache /// </summary> /// <returns>Operating Events</returns> private List <AcEventInfo> AddEventsToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "netking-events"); HttpRuntime.Cache.Remove(cacheKey); var lscIds = new List <int>(); 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]); lscIds.Add(lscId); } } else { lscIds.AddRange(userData.LscUsers.Select(l => l.LscID)); } if (lscIds.Count == 0) { return(null); } var types = new Dictionary <Int32, String>(); foreach (var dt in EventTypeMultiCombo.SelectedItems) { types[Int32.Parse(dt.Value)] = dt.Text; } var ctype = Convert.ToInt32(CountTypeComboBox.SelectedItem.Value); var fromTime = DateTime.Parse(FromDate.Text); var toTime = DateTime.Parse(ToDate.Text); var lscEntity = new BLsc(); var otherEntity = new BOther(); var result = new List <AcEventInfo>(); foreach (var id in lscIds) { var lsc = lscEntity.GetLsc(id); if (lsc == null) { continue; } List <AcEventInfo> temp = null; switch (ctype) { case 0: temp = otherEntity.GetPubAlertEvent(lsc.LscID, lsc.LscName, WebUtility.CreateLscConnectionString(lsc), fromTime, toTime); break; case 1: temp = otherEntity.GetPubGeneralEvent(lsc.LscID, lsc.LscName, WebUtility.CreateLscConnectionString(lsc), fromTime, toTime); break; case 2: temp = otherEntity.GetPubInvalidCardEvent(lsc.LscID, lsc.LscName, WebUtility.CreateLscConnectionString(lsc), fromTime, toTime); break; case 3: temp = otherEntity.GetPubValidCardEvent(lsc.LscID, lsc.LscName, WebUtility.CreateLscConnectionString(lsc), fromTime, toTime); break; default: break; } if (temp != null) { if (types.Count > 0) { temp = temp.FindAll(t => types.ContainsKey(t.MessageID)); } result.AddRange(temp); } } var cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add Data To Cache /// </summary> private List <IDValuePair <BatStaticInfo, List <BatStaticInfo> > > AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "bat-count-report"); HttpRuntime.Cache.Remove(cacheKey); var lscUsers = 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) { lscUsers.Add(lscUser); } } } else { lscUsers.AddRange(userData.LscUsers); } if (lscUsers.Count == 0) { return(null); } int? area2Id = null; int? area3Id = null; int? staId = null; int? devId = null; int? devIndex = null; DateTime?beginFromTime = null; DateTime?beginToTime = null; DateTime?endFromTime = null; DateTime?endToTime = null; double minInterval = 0; double maxInterval = Int32.MaxValue; if (Area2ComboBox.SelectedIndex > 0) { area2Id = Int32.Parse(Area2ComboBox.SelectedItem.Value); } if (Area3ComboBox.SelectedIndex > 0) { area3Id = Int32.Parse(Area3ComboBox.SelectedItem.Value); } if (StaComboBox.SelectedIndex > 0) { staId = Int32.Parse(StaComboBox.SelectedItem.Value); } if (DevComboBox.SelectedIndex > 0) { devId = Int32.Parse(DevComboBox.SelectedItem.Value); } if (!DevIndexNumberField.IsEmpty) { devIndex = (Int32)DevIndexNumberField.Number; } if (!String.IsNullOrEmpty(BeginFromDate.Text.Trim())) { beginFromTime = DateTime.Parse(BeginFromDate.Text); } if (!String.IsNullOrEmpty(BeginToDate.Text.Trim())) { beginToTime = DateTime.Parse(BeginToDate.Text); } if (!String.IsNullOrEmpty(EndFromDate.Text.Trim())) { endFromTime = DateTime.Parse(EndFromDate.Text); } if (!String.IsNullOrEmpty(EndToDate.Text.Trim())) { endToTime = DateTime.Parse(EndToDate.Text); } if (FromMinNumberField.Number > 0) { minInterval = FromMinNumberField.Number / (24 * 60); } if (ToMinNumberField.Number > 0) { maxInterval = ToMinNumberField.Number / (24 * 60); } var otherEntity = new BOther(); var records = new List <BatStaticInfo>(); foreach (var lu in lscUsers) { var temp = otherEntity.GetBatStatic(lu.LscID, lu.LscName, devId, devIndex, beginFromTime, beginToTime, endFromTime, endToTime, minInterval, maxInterval); if (temp != null && temp.Count > 0) { var devices = otherEntity.GetDevices(lu.LscID, lu.Group.GroupID); devices = devices.FindAll(d => { return((area2Id == null || d.Area2ID == area2Id) && (area3Id == null || d.Area3ID == area3Id) && (staId == null || d.StaID == staId) && (devId == null || d.DevID == devId)); }); records.AddRange( from tp in temp join dev in devices on new { tp.LscID, tp.DevID } equals new { dev.LscID, dev.DevID } select new BatStaticInfo { LscID = dev.LscID, LscName = dev.LscName, Area1ID = dev.Area1ID, Area1Name = dev.Area1Name, Area2ID = dev.Area2ID, Area2Name = dev.Area2Name, Area3ID = dev.Area3ID, Area3Name = dev.Area3Name, StaID = dev.StaID, StaName = dev.StaName, DevID = dev.DevID, DevName = dev.DevName, DevIndex = tp.DevIndex, StartTime = tp.StartTime, EndTime = tp.EndTime, LastTime = tp.LastTime } ); } } var result = (from rec in records group rec by new { rec.LscID, rec.DevID, rec.DevIndex } into tg select new IDValuePair <BatStaticInfo, List <BatStaticInfo> > { ID = tg.FirstOrDefault(), Value = tg.ToList() }).ToList(); int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add data to cache. /// </summary> private List <Report110Entity> AddDataToCache() { var userData = UserData; var cacheKey1 = WebUtility.GetCacheKeyName(userData, "kpi-report-110"); var cacheKey2 = WebUtility.GetCacheKeyName(userData, "kpi-report-110-02"); HttpRuntime.Cache.Remove(cacheKey1); HttpRuntime.Cache.Remove(cacheKey2); var lscIds = new List <int>(); 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]); lscIds.Add(lscId); } } else { lscIds.AddRange(userData.LscUsers.Select(l => l.LscID)); } if (lscIds.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 fromTime = DateTime.Parse(BeginDate.Text); var toTime = DateTime.Parse(EndDate.Text); var texts = new List <String>(); var auxSets = new List <String>(); var filterText = WebUtility.StringSplit(NodeText.Text.Trim()); foreach (var ft in filterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (FilterTypeList.SelectedItem.Value.Equals("1")) { auxSets.Add(ft.Trim()); } else { texts.Add(ft.Trim()); } } var lscEntity = new BLsc(); var nodeEntity = new BNode(); var source1 = new List <Report110Entity>(); var source2 = new Dictionary <String, List <StationInfo> >(); foreach (var id in lscIds) { var lsc = lscEntity.GetLsc(id); if (lsc == null) { continue; } //var instance = new Dictionary<string, NodeInfo>(); //var nodes = nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Aic, texts.ToArray(), auxSets.ToArray(), null); //foreach (var node in nodes) { // instance[String.Format("{0}-{1}", node.LscID, node.StaID)] = node; //} var stations = new BOther().GetStations(lsc.LscID).FindAll(s => staTypes.ContainsKey(s.StaTypeID)); var values = nodeEntity.GetMaxHisAIV(lsc.LscID, fromTime, toTime); //var temp = from n in instance.Values // join s in stations on new { n.LscID, n.StaID } equals new { s.LscID,s.StaID} // join v in values on new { n.LscID, n.NodeID } equals new { v.LscID, v.NodeID } // select new { // Station = s, // Node = n, // Value = v.Value // }; var temp = from s in stations join v in values on new { s.LscID, s.StaID } equals new { v.LscID, StaID = v.NodeID } select new { Station = s, Value = v.Value }; var correct = temp.Where(n => n.Value >= 1); source2[String.Format("{0}-CorrectCount", source1.Count)] = correct.Any() ? correct.Select(n => n.Station).ToList() : new List <StationInfo>(); source2[String.Format("{0}-AllCount", source1.Count)] = temp.Any() ? temp.Select(n => n.Station).ToList() : new List <StationInfo>(); source1.Add(new Report110Entity { LscID = lsc.LscID, LscName = lsc.LscName, CorrectCount = correct.Count(), AllCount = temp.Count() }); } 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); }
/// <summary> /// Add data to cache. /// </summary> private List <Report104Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-104"); HttpRuntime.Cache.Remove(cacheKey); var lscs = new List <LscUserInfo>(); if (LscsComboBox.SelectedIndex > 0) { var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length != 2) { return(null); } 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) { return(null); } lscs.Add(lscUser); } else { lscs.AddRange(userData.LscUsers); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var texts = new List <String>(); var auxSets = new List <String>(); var filterText = WebUtility.StringSplit(NodeText.Text.Trim()); foreach (var ft in filterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (FilterTypeList.SelectedItem.Value.Equals("1")) { auxSets.Add(ft.Trim()); } else { texts.Add(ft.Trim()); } } 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 almNames = new List <String>(); var almIds = new Dictionary <String, String>(); var almText = WebUtility.StringSplit(AlarmNameText.Text.Trim()); foreach (var at in almText) { if (String.IsNullOrEmpty(at.Trim())) { continue; } if (AlmNameList.SelectedItem.Value.Equals("1")) { almIds[at.Trim()] = null; } else { almNames.Add(at.Trim()); } } var otherEntity = new BOther(); var nodeEntity = new BNode(); var stations = new List <StationInfo>(); var devices = new List <DeviceInfo>(); var nodes = new List <NodeInfo>(); foreach (var lsc in lscs) { stations.AddRange(otherEntity.GetStations(lsc.LscID, lsc.Group.GroupID).FindAll(s => s.BuildingID != WebUtility.DefaultInt32)); devices.AddRange(otherEntity.GetDevices(lsc.LscID, lsc.Group.GroupID)); nodes.AddRange(nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Aic, texts.ToArray(), auxSets.ToArray(), devTypes.Keys.ToArray())); } if (Area2ComboBox.SelectedIndex > 0) { var area2Id = Int32.Parse(Area2ComboBox.SelectedItem.Value); stations = stations.FindAll(s => s.Area2ID == area2Id); } if (Area3ComboBox.SelectedIndex > 0) { var area3Id = Int32.Parse(Area3ComboBox.SelectedItem.Value); stations = stations.FindAll(s => s.Area3ID == area3Id); } if (stations.Count == 0) { return(null); } devices = devices.FindAll(d => devTypes.ContainsKey(d.DevTypeID)); var devGroup = from dev in devices group dev by new { dev.LscID, dev.StaID } into g select new { LscID = g.Key.LscID, StaID = g.Key.StaID, Devices = g.ToList() }; var staWdv = from sta in stations join dg in devGroup on new { sta.LscID, sta.StaID } equals new { dg.LscID, dg.StaID } into lt from ds in lt.DefaultIfEmpty() select new { Station = sta, Devices = ds == null ? new List <DeviceInfo>() : ds.Devices }; var alarmEntity = new BAlarm(); var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => lscs.Any(l => l.LscID == alarm.LscID) && alarm.StartTime >= fromTime && alarm.StartTime <= toTime); foreach (var lsc in lscs) { alarms.AddRange(alarmEntity.GetHisAlarms(lsc.LscID, lsc.LscName, userData.StandardProtocol, lsc.Group.GroupNodes, fromTime, toTime)); } var ndWam = from alarm in alarms join node in nodes on new { alarm.LscID, alarm.NodeID, alarm.NodeType } equals new { node.LscID, node.NodeID, node.NodeType } where (almNames.Count == 0 || almNames.Any(name => alarm.AlarmName.Contains(name))) && (almIds.Count == 0 || almIds.ContainsKey(alarm.AlarmID.ToString())) select new { Node = node, Alarm = alarm }; var almGroup = from alarm in ndWam group alarm by new { alarm.Node.LscID, alarm.Node.StaID } into g select new { LscID = g.Key.LscID, StaID = g.Key.StaID, Alarms = g.Select(a => a.Alarm) }; var staWam = from sd in staWdv join ga in almGroup on new { sd.Station.LscID, sd.Station.StaID } equals new { ga.LscID, ga.StaID } into lt from gs in lt.DefaultIfEmpty() select new { Station = sd.Station, Devices = sd.Devices, Alarms = gs == null ? new List <AlarmInfo>() : gs.Alarms }; var result = (from sa in staWam group sa by new { sa.Station.LscID, sa.Station.Area3ID, sa.Station.BuildingID } into g orderby g.Key.LscID, g.Key.Area3ID, g.Key.BuildingID select new Report104Entity { Station = g.First().Station, BeginTime = fromTime, EndTime = toTime, Devices = g.SelectMany(s => s.Devices).ToList(), Alarms = g.SelectMany(a => a.Alarms).ToList() }).ToList(); int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add data to cache. /// </summary> private List <Report116Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-116"); HttpRuntime.Cache.Remove(cacheKey); var lscs = new List <LscUserInfo>(); if (LscsComboBox.SelectedIndex > 0) { var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length != 2) { return(null); } 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) { return(null); } lscs.Add(lscUser); } else { lscs.AddRange(userData.LscUsers); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var texts = new List <String>(); var auxSets = new List <String>(); var filterText = WebUtility.StringSplit(NodeText.Text.Trim()); foreach (var ft in filterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (FilterTypeList.SelectedItem.Value.Equals("1")) { auxSets.Add(ft.Trim()); } else { texts.Add(ft.Trim()); } } 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 almNames = new List <String>(); var almIds = new Dictionary <String, String>(); var almText = WebUtility.StringSplit(AlarmNameText.Text.Trim()); foreach (var at in almText) { if (String.IsNullOrEmpty(at.Trim())) { continue; } if (AlmNameList.SelectedItem.Value.Equals("1")) { almIds[at.Trim()] = null; } else { almNames.Add(at.Trim()); } } var otherEntity = new BOther(); var nodeEntity = new BNode(); var alarmEntity = new BAlarm(); var result = new List <Report116Entity>(); foreach (var lsc in lscs) { var devices = otherEntity.GetDevices(lsc.LscID).FindAll(d => staTypes.ContainsKey(d.StaTypeID) && devTypes.ContainsKey(d.DevTypeID)); var nodes = nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Dic, texts.ToArray(), auxSets.ToArray(), devTypes.Keys.ToArray()); if (nodes.Count == 0) { result.Add(new Report116Entity { LscID = lsc.LscID, LscName = lsc.LscName, BeginTime = fromTime, EndTime = toTime, Alarms = new List <AlarmInfo>(), DevCnt = devices.Count }); } else { var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lsc.LscID && alarm.StartTime >= fromTime && alarm.StartTime <= toTime); alarms.AddRange(alarmEntity.GetHisAlarms(lsc.LscID, lsc.LscName, userData.StandardProtocol, lsc.Group.GroupNodes, fromTime, toTime)); var ta = alarms.FindAll(alarm => { return((almNames.Count == 0 || almNames.Any(name => alarm.AlarmName.Contains(name))) && (almIds.Count == 0 || almIds.ContainsKey(alarm.AlarmID.ToString()))); }); var temp = from alarm in ta join node in nodes on new { alarm.LscID, alarm.NodeID } equals new { node.LscID, node.NodeID } select alarm; result.Add(new Report116Entity { LscID = lsc.LscID, LscName = lsc.LscName, BeginTime = fromTime, EndTime = toTime, Alarms = temp.ToList(), DevCnt = devices.Count }); } } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add data to cache. /// </summary> private List <Report006Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-006"); HttpRuntime.Cache.Remove(cacheKey); var lscIds = new List <int>(); 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]); lscIds.Add(lscId); } } else { lscIds.AddRange(userData.LscUsers.Select(l => l.LscID)); } if (lscIds.Count == 0) { return(null); } var lscEntity = new BLsc(); var otherEntity = new BOther(); var result = new List <Report006Entity>(); foreach (var id in lscIds) { var lsc = lscEntity.GetLsc(id); if (lsc == null) { continue; } var cnt = 0; if (fRadio.Checked) { var stations = otherEntity.GetStations(lsc.LscID); cnt = stations.Count; } else { var areas = otherEntity.GetAreas(lsc.LscID); cnt = areas.Count; } var parm = Report006Entity.GetLscParam(lsc.LscID, WebUtility.CreateLscConnectionString(lsc)); result.Add(new Report006Entity { LscID = lsc.LscID, LscName = lsc.LscName, ThisCount = cnt, LastCount = parm != null && parm.StaTNumber != WebUtility.DefaultInt32 ? parm.StaTNumber : 0 }); } if (result.Count > 0) { result.Add(new Report006Entity { 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); }
/// <summary> /// Add data to cache. /// </summary> private List <Report113Entity> AddDataToCache() { var userData = UserData; var cacheKey1 = WebUtility.GetCacheKeyName(userData, "kpi-report-113"); var cacheKey2 = WebUtility.GetCacheKeyName(userData, "kpi-report-113-02"); HttpRuntime.Cache.Remove(cacheKey1); HttpRuntime.Cache.Remove(cacheKey2); var lscIds = new List <int>(); 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]); lscIds.Add(lscId); } } else { lscIds.AddRange(userData.LscUsers.Select(l => l.LscID)); } if (lscIds.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 otherEntity = new BOther(); var lscEntity = new BLsc(); var source1 = new List <Report113Entity>(); var source2 = new Dictionary <String, List <DeviceInfo> >(); var virtualData = WebConfigurationManager.AppSettings["Kpi-HeNan-Virtual-Enable"] != null && WebConfigurationManager.AppSettings["Kpi-HeNan-Virtual-Enable"].Equals("1"); var lscParms = new List <LscParamInfo>(); if (virtualData) { lscParms.AddRange(otherEntity.GetLscParam()); } foreach (var id in lscIds) { var lsc = lscEntity.GetLsc(id); if (lsc == null) { continue; } var devices1 = otherEntity.GetDevices(lsc.LscID).FindAll(d => staTypes.ContainsKey(d.StaTypeID) && devTypes.ContainsKey(d.DevTypeID)); var devices2 = Report113Entity.GetDevices(lsc.LscID, lsc.LscName, WebUtility.CreateLscConnectionString(lsc)); var record = new Report113Entity { LscID = lsc.LscID, LscName = lsc.LscName, ThisCount = devices1.Count, LastCount = devices2.Count }; if (virtualData) { var parm = lscParms.Find(l => l.LscID == lsc.LscID); if (parm != null && parm.ElecDevTNumber != WebUtility.DefaultInt32) { record.ThisCount = parm.ElecDevTNumber; } } source1.Add(record); source2[String.Format("{0}-ThisCount", lsc.LscID)] = devices1; source2[String.Format("{0}-LastCount", lsc.LscID)] = devices2; } if (source1.Count > 0) { source1.Add(new Report113Entity { 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); }
/// <summary> /// Add data to cache. /// </summary> private List <Report004Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-004"); 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 fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var roads = Convert.ToInt32(EPRoadSpinnerField.Number); var auxSets = new List <String>(); var texts = new List <String>(); var filterText = WebUtility.StringSplit(NodeText.Text.Trim()); foreach (var ft in filterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (FilterList.SelectedItem.Value.Equals("1")) { auxSets.Add(ft.Trim()); } else { texts.Add(ft.Trim()); } } if (texts.Count == 0 && auxSets.Count == 0) { return(null); } var almNames = new List <String>(); var almIds = new Dictionary <String, String>(); var almText = WebUtility.StringSplit(AlarmNameText.Text.Trim()); foreach (var at in almText) { if (String.IsNullOrEmpty(at.Trim())) { continue; } if (AlmNameList.SelectedItem.Value.Equals("1")) { almIds[at.Trim()] = null; } else { almNames.Add(at.Trim()); } } var nodeEntity = new BNode(); var nodes = new List <NodeInfo>(); var otherEntity = new BOther(); var stations = new List <StationInfo>(); foreach (var lsc in lscs) { nodes.AddRange(nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Img, texts.ToArray(), auxSets.ToArray(), null)); stations.AddRange(otherEntity.GetStations(lsc.LscID, lsc.Group.GroupID)); } var alarmEntity = new BAlarm(); var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => lscs.Any(l => l.LscID == alarm.LscID) && alarm.StartTime >= fromTime && alarm.StartTime <= toTime); foreach (var lsc in lscs) { alarms.AddRange(alarmEntity.GetHisAlarms(lsc.LscID, lsc.LscName, userData.StandardProtocol, lsc.Group.GroupNodes, fromTime, toTime)); } var ndWam = from alarm in alarms join node in nodes on new { alarm.LscID, alarm.NodeID, alarm.NodeType } equals new { node.LscID, node.NodeID, node.NodeType } where (almNames.Count == 0 || almNames.Any(name => alarm.AlarmName.Contains(name))) && (almIds.Count == 0 || almIds.ContainsKey(alarm.AlarmID.ToString())) && string.IsNullOrEmpty(alarm.ProjName) select new { Node = node, Alarm = alarm }; var almGroup = from alarm in ndWam group alarm by new { alarm.Node.LscID, alarm.Node.StaID } into g select new { LscID = g.Key.LscID, StaID = g.Key.StaID, Alarms = g.Select(a => a.Alarm) }; var result = (from sta in stations join ag in almGroup on new { sta.LscID, sta.StaID } equals new { ag.LscID, ag.StaID } into lt from la in lt.DefaultIfEmpty() orderby sta.LscID, sta.StaID select new Report004Entity { LscID = sta.LscID, LscName = sta.LscName, Area2ID = sta.Area2ID, Area2Name = sta.Area2Name, Area3ID = sta.Area3ID, Area3Name = sta.Area3Name, StaID = sta.StaID, StaName = sta.StaName, BeginTime = fromTime, EndTime = toTime, Roads = roads, Alarms = la == null ? new List <AlarmInfo>() : la.Alarms.ToList() }).ToList(); if (result.Count > 0) { result.Add(new Report004Entity { LscID = -100, LscName = "汇总(平均值)", Area2ID = WebUtility.DefaultInt32, Area2Name = WebUtility.DefaultString, Area3ID = WebUtility.DefaultInt32, Area3Name = WebUtility.DefaultString, StaID = WebUtility.DefaultInt32, StaName = WebUtility.DefaultString, BeginTime = fromTime, EndTime = toTime, Roads = roads, Alarms = new List <AlarmInfo>() }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }
/// <summary> /// Add data to cache. /// </summary> private List <Report007Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-007"); HttpRuntime.Cache.Remove(cacheKey); var lscIds = new List <int>(); 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]); lscIds.Add(lscId); } } else { lscIds.AddRange(userData.LscUsers.Select(l => l.LscID)); } if (lscIds.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 lscEntity = new BLsc(); var otherEntity = new BOther(); var result = new List <Report007Entity>(); foreach (var id in lscIds) { var lsc = lscEntity.GetLsc(id); if (lsc == null) { continue; } var devices = otherEntity.GetDevices(lsc.LscID).FindAll(d => devTypes.ContainsKey(d.AlmDevTypeID)); var parm = Report007Entity.GetLscParam(lsc.LscID, WebUtility.CreateLscConnectionString(lsc)); result.Add(new Report007Entity { LscID = lsc.LscID, LscName = lsc.LscName, ThisCount = devices.Count, LastCount = parm != null && parm.ElecDevTNumber != WebUtility.DefaultInt32 ? parm.ElecDevTNumber : 0 }); } if (result.Count > 0) { result.Add(new Report007Entity { 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); }
/// <summary> /// Add data to cache. /// </summary> private List <Report115Entity> AddDataToCache() { var userData = UserData; var cacheKey1 = WebUtility.GetCacheKeyName(userData, "kpi-report-115"); var cacheKey2 = WebUtility.GetCacheKeyName(userData, "kpi-report-115-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 fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var auxSets = new List <String>(); var texts = new List <String>(); var filterText = WebUtility.StringSplit(NodeText.Text.Trim()); foreach (var ft in filterText) { if (String.IsNullOrEmpty(ft.Trim())) { continue; } if (FilterList.SelectedItem.Value.Equals("1")) { auxSets.Add(ft.Trim()); } else { texts.Add(ft.Trim()); } } if (texts.Count == 0 && auxSets.Count == 0) { return(null); } var almNames = new List <String>(); var almIds = new Dictionary <String, String>(); var almText = WebUtility.StringSplit(AlarmNameText.Text.Trim()); foreach (var at in almText) { if (String.IsNullOrEmpty(at.Trim())) { continue; } if (AlmNameList.SelectedItem.Value.Equals("1")) { almIds[at.Trim()] = null; } else { almNames.Add(at.Trim()); } } var nodeEntity = new BNode(); var otherEntity = new BOther(); var alarmEntity = new BAlarm(); var source1 = new List <Report115Entity>(); var source2 = new Dictionary <String, List <StationInfo> >(); var activeAlarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => lscs.Any(l => l.LscID == alarm.LscID) && alarm.StartTime >= fromTime && alarm.StartTime <= toTime); foreach (var lsc in lscs) { var alarms = activeAlarms.FindAll(a => a.LscID == lsc.LscID); alarms.AddRange(alarmEntity.GetHisAlarms(lsc.LscID, lsc.LscName, userData.StandardProtocol, lsc.Group.GroupNodes, fromTime, toTime)); if (almNames.Count > 0) { alarms = alarms.FindAll(a => almNames.Any(n => a.AlarmName.Contains(n))); } if (almIds.Count > 0) { alarms = alarms.FindAll(a => almIds.ContainsKey(a.AlarmID.ToString())); } var stations = otherEntity.GetStations(lsc.LscID).FindAll(s => staTypes.ContainsKey(s.StaTypeID)); var nodes = nodeEntity.GetNodes(lsc.LscID, EnmNodeType.Aic, texts.ToArray(), auxSets.ToArray(), null); var gn = from n in nodes group n by n.StaID into g select new { StaID = g.Key, Nodes = g.ToList() }; var ns = from s in stations join n in gn on s.StaID equals n.StaID select new { Station = s, Nodes = n.Nodes }; var ndWam = from alarm in alarms join node in nodes on new { alarm.NodeID, alarm.NodeType } equals new { node.NodeID, node.NodeType } select new { Node = node, Alarm = alarm }; var gndWam = from na in ndWam group na by na.Node.StaID into g select new { StaID = g.Key, Alarms = g.Select(a => a.Alarm) }; var sndWam = from s in ns join gw in gndWam on s.Station.StaID equals gw.StaID select new { Station = s.Station, Nodes = s.Nodes, Alarms = gw.Alarms }; source1.Add(new Report115Entity { LscID = lsc.LscID, LscName = lsc.LscName, ThisCount = sndWam.Count(), LastCount = ns.Count() }); source2[String.Format("{0}-ThisCount", lsc.LscID)] = sndWam.Select(s => s.Station).ToList(); source2[String.Format("{0}-LastCount", lsc.LscID)] = ns.Select(s => s.Station).ToList(); } if (source1.Count > 0) { source1.Add(new Report115Entity { 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); }
/// <summary> /// Add Data To Cache /// </summary> private List <PicInfo> AddDataToCache() { try { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "his-pictures"); HttpRuntime.Cache.Remove(cacheKey); if (LscsComboBox.SelectedItem == null) { return(null); } var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length != 2) { return(null); } 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) { return(null); } var reportEntity = new BReport(); var otherEntity = new BOther(); var fromTime = DateTime.Parse(FromDate.Text); var toTime = DateTime.Parse(ToDate.Text); string[] picModels = null; if (PicTypeMultiCombo.SelectedItems.Count > 0) { picModels = new string[PicTypeMultiCombo.SelectedItems.Count]; for (int i = 0; i < picModels.Length; i++) { picModels[i] = PicTypeMultiCombo.SelectedItems[i].Text; } } var pics = reportEntity.GetHisPictures(lscUser.LscID, fromTime, toTime, picModels); if (pics.Count > 0) { var rtus = otherEntity.GetRtus(lscUser.LscID, lscUser.Group.GroupID); pics = (from pic in pics join rtu in rtus on pic.RtuID equals rtu.RtuID where (Area2ComboBox.SelectedIndex == 0 || rtu.Area2Name.Equals(Area2ComboBox.SelectedItem.Text)) && (Area3ComboBox.SelectedIndex == 0 || rtu.Area3Name.Equals(Area3ComboBox.SelectedItem.Text)) && (StaComboBox.SelectedIndex == 0 || rtu.StaName.Equals(StaComboBox.SelectedItem.Text)) && (DevComboBox.SelectedIndex == 0 || rtu.DevName.Equals(DevComboBox.SelectedItem.Text)) orderby pic.PicTime descending select new PicInfo { LscID = rtu.LscID, LscName = rtu.LscName, RtuID = pic.RtuID, PicID = pic.PicID, PicName = String.Format("{0}-{1}-{2}", rtu.StaName, rtu.StaMID, WebUtility.GetDateString(pic.PicTime)), PicModel = pic.PicModel, PicBytes = pic.PicBytes, PicTime = pic.PicTime }).ToList(); } var cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, pics, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(pics); } catch { throw; } }
/// <summary> /// Add Data To Cache /// </summary> private DataTable AddDataToCache() { try { var userData = UserData; var cacheKey1 = WebUtility.GetCacheKeyName(userData, "station-count-source1"); var cacheKey2 = WebUtility.GetCacheKeyName(userData, "station-count-source2"); HttpRuntime.Cache.Remove(cacheKey1); HttpRuntime.Cache.Remove(cacheKey2); var types = StaTypeMultiCombo.SelectedItems; if (types.Count == 0) { return(null); } if (String.IsNullOrEmpty(StaCountField.RawValue.ToString())) { return(null); } var values = WebUtility.StringSplit(StaCountField.RawValue.ToString()); var colcnt = StaCntGridPanel.ColumnModel.Columns.Count; var countType = CountTypeComboBox.SelectedItem.Value; var condition = new List <GroupTreeInfo>(); var otherEntity = new BOther(); var source1 = CreateCustomizeTable(colcnt); var source2 = new Dictionary <String, List <StationInfo> >(); if (countType.Equals("0")) { #region Lsc foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.LSC) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var stations = otherEntity.GetStations(lscUser.LscID, lscUser.Group.GroupID); if (MIDEnabledMenuItem.Checked) { stations = stations.FindAll(s => s.MID != null && s.MID.Trim() != ""); } var dr1 = source1.NewRow(); dr1[1] = lscUser.LscName; var total = new List <StationInfo>(); for (int j = 0; j < types.Count; j++) { var stypeId = Int32.Parse(types[j].Value); var filters = stations.FindAll(s => { return(s.StaTypeID == stypeId); }); dr1[2 + j] = filters.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[2 + j].ColumnName)] = filters; total.AddRange(filters); } //total column dr1[source1.Columns.Count - 1] = total.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[source1.Columns.Count - 1].ColumnName)] = total; source1.Rows.Add(dr1); } #endregion } else if (countType.Equals("1")) { #region Area=2 foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.Area && remark.Equals("2")) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var stations = otherEntity.GetStations(lscUser.LscID, lscUser.Group.GroupID); if (MIDEnabledMenuItem.Checked) { stations = stations.FindAll(s => s.MID != null && s.MID.Trim() != ""); } var areaSta = from d in stations group d by new { d.Area2ID } into g select new { Area2ID = g.Key.Area2ID, Stations = g }; var areas = otherEntity.GetAreas(lscUser.LscID, lscUser.Group.GroupID, 2); var nodes = from a in areas join c in condition on new { a.LscID, a.Area2ID } equals new { c.LscID, Area2ID = c.NodeID } select a; foreach (var node in nodes) { var dr1 = source1.NewRow(); dr1[1] = node.LscName; dr1[2] = node.Area2Name; var typeArea = areaSta.FirstOrDefault(t => t.Area2ID == node.Area2ID); var total = new List <StationInfo>(); for (int j = 0; j < types.Count; j++) { var stypeId = Int32.Parse(types[j].Value); var filters = typeArea != null?typeArea.Stations.Where(s => s.StaTypeID == stypeId).ToList() : new List <StationInfo>(); dr1[3 + j] = filters.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[3 + j].ColumnName)] = filters; total.AddRange(filters); } //total column dr1[source1.Columns.Count - 1] = total.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[source1.Columns.Count - 1].ColumnName)] = total; source1.Rows.Add(dr1); } } #endregion } else if (countType.Equals("2")) { #region Area=3 foreach (var v in values) { var ids = WebUtility.ItemSplit(v); if (ids.Length != 5) { continue; } var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var nodeId = Int32.Parse(ids[2]); var nodeType = Int32.Parse(ids[3]); var remark = ids[4]; var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null; if (enmNodeType == EnmNodeType.Area && remark.Equals("3")) { condition.Add(new GroupTreeInfo() { LscID = lscId, GroupID = groupId, NodeID = nodeId, NodeType = enmNodeType, Remark = remark }); } } var ls = from c in condition group c by new { c.LscID } into g select new { g.Key.LscID }; foreach (var l in ls) { var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); }); if (lscUser == null) { continue; } var stations = otherEntity.GetStations(lscUser.LscID, lscUser.Group.GroupID); if (MIDEnabledMenuItem.Checked) { stations = stations.FindAll(s => s.MID != null && s.MID.Trim() != ""); } var areaSta = from d in stations group d by new { d.Area3ID } into g select new { Area3ID = g.Key.Area3ID, Stations = g }; var areas = otherEntity.GetAreas(lscUser.LscID, lscUser.Group.GroupID, 3); var nodes = from a in areas join c in condition on new { a.LscID, a.Area3ID } equals new { c.LscID, Area3ID = c.NodeID } select a; foreach (var node in nodes) { var dr1 = source1.NewRow(); dr1[1] = node.LscName; dr1[2] = node.Area2Name; dr1[3] = node.Area3Name; var typeArea = areaSta.FirstOrDefault(t => t.Area3ID == node.Area3ID); var total = new List <StationInfo>(); for (int j = 0; j < types.Count; j++) { var stypeId = Int32.Parse(types[j].Value); var filters = typeArea != null?typeArea.Stations.Where(s => s.StaTypeID == stypeId).ToList() : new List <StationInfo>(); dr1[4 + j] = filters.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[4 + j].ColumnName)] = filters; total.AddRange(filters); } //total column dr1[source1.Columns.Count - 1] = total.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[source1.Columns.Count - 1].ColumnName)] = total; source1.Rows.Add(dr1); } } #endregion } var totalStartIndex = colcnt - types.Count - 1; if (source1.Rows.Count > 0) { var totalRow1 = source1.NewRow(); totalRow1[1] = "总计"; for (int i = totalStartIndex; i < source1.Columns.Count; i++) { var total = new List <StationInfo>(); for (int j = 0; j < source1.Rows.Count; j++) { var key = String.Format("{0}-{1}", j, source1.Columns[i].ColumnName); if (source2.ContainsKey(key)) { total.AddRange(source2[key]); } } totalRow1[i] = total.Count; source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[i].ColumnName)] = total; } source1.Rows.Add(totalRow1); } var 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); } catch { throw; } }
/// <summary> /// Add data to cache. /// </summary> private List <Report011Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-011"); 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 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 fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var alarmNames = new Dictionary <Int32, String>(); foreach (var item in AlarmNameMultiCombo.SelectedItems) { alarmNames[Convert.ToInt32(item.Value)] = item.Text; } var otherEntity = new BOther(); var nodeEntity = new BNode(); var lscEntity = new BLsc(); var alarmEntity = new BAlarm(); var result = new List <Report011Entity>(); foreach (var l in lscs) { var lsc = lscEntity.GetLsc(l.LscID); if (lsc == null) { continue; } var stations = otherEntity.GetStations(lsc.LscID, l.Group.GroupID).FindAll(sta => staTypes.ContainsKey(sta.StaTypeID)); var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lsc.LscID && alarm.StartTime >= fromTime && alarm.StartTime <= toTime && alarmNames.ContainsKey(alarm.AlarmID) && string.IsNullOrEmpty(alarm.ProjName)); alarms.AddRange(alarmEntity.GetHisAlarms(lsc.LscID, lsc.LscName, userData.StandardProtocol, l.Group.GroupNodes, fromTime, toTime).FindAll(alarm => { return(alarmNames.ContainsKey(alarm.AlarmID) && string.IsNullOrEmpty(alarm.ProjName)); })); var nalm = from alarm in alarms join sta in stations on alarm.StaName equals sta.StaName select alarm; var parm = Report011Entity.GetLscParam(lsc.LscID, WebUtility.CreateLscConnectionString(lsc)); var record = new Report011Entity { LscID = lsc.LscID, LscName = lsc.LscName, BeginTime = fromTime, EndTime = toTime, Alarms = nalm.Any() ? nalm.ToList() : new List <AlarmInfo>(), StaCnt = parm != null ? parm.StaMNumber : 0, }; result.Add(record); } if (result.Count > 0) { result.Add(new Report011Entity { LscID = -100, LscName = "汇总(平均值)", BeginTime = fromTime, EndTime = toTime, Alarms = new List <AlarmInfo>(), StaCnt = (Int32)result.Average(r => r.StaCnt) }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }