namespace IStation.Application
|
{
|
/// <summary>
|
/// MonitorOrg
|
/// </summary>
|
[Route("Monitor/Org/Logic")]
|
[ApiDescriptionSettings("Monitor", Name = "监测目录(Logic)", Order = 10000)]
|
public class MonitorOrg_LogicController : IDynamicApiController
|
{
|
/// <summary>
|
/// 获取全逻辑树列表
|
/// </summary>
|
[Route("GetFullLogicalTreeList@V1.0")]
|
[HttpGet]
|
public List<MonitorFullLogicalTreeDto> 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<MonitorFullLogicalTreeDto>();
|
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<MonitorFullLogicalTreeDto>();
|
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;
|
}, CacheHelper.CacheLevel5);
|
return vm_list;
|
}
|
|
|
|
|
|
|
}
|
}
|