From dc6e8634e86c7f09adc412e2176fbf8c591b32c2 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期六, 27 一月 2024 12:12:01 +0800
Subject: [PATCH] 业务代码

---
 IStation.Application.SZJT/99-logic/04-station-list/StationList_LogicController.cs |   51 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/IStation.Application.SZJT/99-logic/04-station-list/StationList_LogicController.cs b/IStation.Application.SZJT/99-logic/04-station-list/StationList_LogicController.cs
index 2103346..9dac7ff 100644
--- a/IStation.Application.SZJT/99-logic/04-station-list/StationList_LogicController.cs
+++ b/IStation.Application.SZJT/99-logic/04-station-list/StationList_LogicController.cs
@@ -15,22 +15,37 @@
         [HttpGet]
         public List<StationListMonitorKpiInfoDto> GetMonitorKpiList(int Count = 4)
         {
-            var allStationList = new Service.LogicSite().GetAll();
+            #region 鏈嶅姟鍑嗗
+
+            var service_logic_site = new Lazy<Service.LogicSite>(() => new Service.LogicSite());
+            var service_equipment_group = new Lazy<Yw.Service.EquipmentGroup>(() => new Yw.Service.EquipmentGroup());
+            var service_equipment = new Lazy<Yw.Service.Equipment>(() => new Yw.Service.Equipment());
+            var service_monitor_group = new Lazy<Yw.Service.MonitorPointGroup>(() => new Yw.Service.MonitorPointGroup());
+            var service_monitor = new Lazy<Yw.Service.MonitorPoint>(() => new Yw.Service.MonitorPoint());
+            var service_signal = new Lazy<Yw.Service.Signal>(() => new Yw.Service.Signal());
+            var service_monitor_record = new Lazy<Yw.Service.MonitorRealRecord>(() => new Yw.Service.MonitorRealRecord());
+            var service_run_record = new Lazy<Yw.Service.RunRealRecord>(() => new Yw.Service.RunRealRecord());
+
+            #endregion
+
+            #region 鑾峰彇鎵�鏈夋车绔�
+
+            var allStationList = service_logic_site.Value.GetAll();
             if (allStationList == null || allStationList.Count < 1)
             {
                 return default;
             }
-            var serviceMonitor = new Yw.Service.MonitorPoint();
-            var serviceMonitorRecord = new Yw.Service.MonitorRealRecord();
-            var serviceEquipment = new Yw.Service.Equipment();
-            var serviceRunRecord = new Yw.Service.RunRealRecord();
+
+            #endregion
+
             var vmList = new List<StationListMonitorKpiInfoDto>();
             foreach (var station in allStationList)
             {
                 var vm = new StationListMonitorKpiInfoDto(station);
                 vmList.Add(vm);
-                var allMonitorList = serviceMonitor.GetExSignalWithSignalTypeByBelongTypeAndBelongID(IStation.DataType.LogicSite, station.ID);
-                allMonitorList = allMonitorList?.Where(x => x.CronType == Yw.Monitor.eCronType.Real).ToList();
+
+                var allMonitorList = service_monitor.Value.GetExSignalWithSignalTypeByBelongTypeAndBelongID(IStation.DataType.LogicSite, station.ID, Yw.Monitor.eCronType.Real);
+                allMonitorList = allMonitorList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
                 if (allMonitorList != null && allMonitorList.Count > 0)
                 {
                     allMonitorList = allMonitorList.Where(x => x.Flags.Contains(Flags.KPI)).OrderByDescending(X => X.Importance).ToList();
@@ -39,20 +54,28 @@
                         allMonitorList = allMonitorList.Take(Count).ToList();
                         foreach (var monitor in allMonitorList)
                         {
-                            var monitorRecord = serviceMonitorRecord.GetLastRecord(monitor.SignalList.First().ID);
+                            var monitorRecord = service_monitor_record.Value.GetLastRecord(monitor.SignalList.First().ID);
                             vm.LastRecordList.Add(new StationListMonitorKpiLastRecordDto(monitor, monitorRecord));
                         }
                     }
                 }
 
-                var allEquipmentList = serviceEquipment.GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, station.ID);
-                allEquipmentList = allEquipmentList?.Where(x => x.ParentIds.Count < 1).ToList();
-                if (allEquipmentList != null && allEquipmentList.Count > 0)
+                var equipmentGroupList = service_equipment_group.Value.GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, station.ID);
+                if (equipmentGroupList != null && equipmentGroupList.Count > 0)
                 {
-                    foreach (var equipment in allEquipmentList)
+                    var equipmentGroup = equipmentGroupList.Find(x => x.Flags.Contains(IStation.Flags.鏈虹粍));
+                    if (equipmentGroup != null)
                     {
-                        var runRecord = serviceRunRecord.GetLastRecord(Yw.Assets.DataType.Equipment, equipment.ID);
-                        vm.LastStatusList.Add(new StationListMonitorKpiLastStatusDto(equipment, runRecord));
+                        var equipmentList = service_equipment.Value.GetByGroupID(equipmentGroup.ID);
+                        equipmentList = equipmentList?.Where(x => x.ParentIds.Count < 1).ToList();
+                        if (equipmentList != null && equipmentList.Count > 0)
+                        {
+                            foreach (var equipment in equipmentList)
+                            {
+                                var runRecord = service_run_record.Value.GetLastRecord(Yw.Assets.DataType.Equipment, equipment.ID);
+                                vm.LastStatusList.Add(new StationListMonitorKpiLastStatusDto(equipment, runRecord));
+                            }
+                        }
                     }
                 }
             }

--
Gitblit v1.9.3