namespace IStation.Application { /// /// AssetsOrg /// [Route("Assets/Org/Logic")] [ApiDescriptionSettings("Assets", Name = "设备目录(Logic)", Order = 9000)] public class AssetsOrg_LogicController : IDynamicApiController { /// /// 获取全逻辑树列表 /// [Route("GetFullLogicalTreeList@V1.0")] [HttpGet] public List GetFullLogicalTreeList() { var keyContent = $"Assets_Org_Logic_GetFullLogicalTreeList"; var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent); var vm_list = MemoryCacheHelper.GetSet(cacheKey, () => { var allSiteList = new Service.LogicSite().GetAll(); Service.LogicSite.PublishCache(cacheKey); if (allSiteList == null || allSiteList.Count < 1) { return default; } var serviceEquipment = new Yw.Service.Equipment(); Yw.Service.Equipment.PublishCache(cacheKey); var vmList = new List(); foreach (var site in allSiteList) { var vmSite = new EquipmentFullLogicalTreeDto(site); vmList.Add(vmSite); var equipmentList = serviceEquipment.GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, site.ID); equipmentList = equipmentList?.Where(x => x.ParentIds.Count < 1).ToList(); if (equipmentList != null && equipmentList.Count > 0) { foreach (var equipment in equipmentList) { var vmEquipment = new EquipmentFullLogicalTreeDto(equipment); vmEquipment.ParentId = vmSite.Id; vmSite.Children.Add(vmEquipment); } } } return vmList; }, Yw.Service.ConfigHelper.CacheLevel5); return vm_list; } } }