namespace IStation.Application { /// /// MonitorOrg /// [Route("Monitor/Org/Logic")] [ApiDescriptionSettings("Monitor", Name = "监测目录(Logic)", Order = 10000)] public class MonitorOrg_LogicController : IDynamicApiController { /// /// 获取全逻辑树列表 /// [Route("GetFullLogicalTreeList@V1.0")] [HttpGet] public List GetFullLogicalTreeList() { var keyContent = $"Monitor_Org_Logic_GetFullLogicalTreeList"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { var allSiteList = new Service.LogicSite().GetAll(); if (allSiteList == null || allSiteList.Count < 1) { return default; } var serviceGroup = new Yw.Service.MonitorPointGroup(); var serviceMonitor = new Yw.Service.MonitorPoint(); var vmList = new List(); foreach (var siteInfo in allSiteList) { var vmSite = new MonitorFullLogicalTreeDto(siteInfo); vmList.Add(vmSite); var allGroupList = serviceGroup.GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, siteInfo.ID); if (allGroupList != null && allGroupList.Count > 0) { var vmGroupList = new List(); foreach (var group in allGroupList) { var monitorList = serviceMonitor.GetExSignalWithSignalTypeByGroupID(group.ID); var vmGroup = new MonitorFullLogicalTreeDto(group, monitorList); vmGroupList.Add(vmGroup); var vmGroupParent = vmGroupList.Find(x => x.Id == vmGroup.ParentId); if (vmGroupParent == null) { vmSite.Children.Add(vmGroup); } else { vmGroupParent.Children.Add(vmGroup); } } } } return vmList; }, Yw.Service.ConfigHelper.CacheLevel5); return vm_list; } } }