lixiaojun
2023-10-11 1d86ecdc56c4395c5abaffa45e53e957054b348b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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.AirpSite().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 AirpSite in allSiteList)
                {
                    var vmSite = new MonitorFullLogicalTreeDto(AirpSite);
                    vmList.Add(vmSite);
                    var allGroupList = serviceGroup.GetByBelongTypeAndBelongID(IStation.DataType.AirpSite, AirpSite.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;
        }
 
 
 
 
 
 
    }
}