From e45eab5980c08520aee01a72224ccdfd12600543 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期三, 15 五月 2024 15:09:07 +0800
Subject: [PATCH] 优化部分接口

---
 IStation.Application.SZJT/99-logic/11-big-screen/BigScreen_LogicController.cs |  109 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 69 insertions(+), 40 deletions(-)

diff --git a/IStation.Application.SZJT/99-logic/11-big-screen/BigScreen_LogicController.cs b/IStation.Application.SZJT/99-logic/11-big-screen/BigScreen_LogicController.cs
index 54a6b81..4e35e5d 100644
--- a/IStation.Application.SZJT/99-logic/11-big-screen/BigScreen_LogicController.cs
+++ b/IStation.Application.SZJT/99-logic/11-big-screen/BigScreen_LogicController.cs
@@ -1,4 +1,6 @@
-锘縩amespace IStation.Application
+锘縰sing Microsoft.VisualBasic;
+
+namespace IStation.Application
 {
     /// <summary>
     /// BigScreen
@@ -11,7 +13,7 @@
         #region 鎵�鏈�
 
         /// <summary>
-        /// 鑾峰彇鎵�鏈夋车绔檏pi淇℃伅
+        /// 鑾峰彇鎵�鏈夋车绔檏pi淇℃伅(寰呭畬鍠�)
         /// </summary>
         [Route("GetAllStationKpiInfo@V1.0")]
         [HttpGet]
@@ -370,19 +372,43 @@
 
             var dtEnd = DateTime.Now.Date;
             var dtStart = dtEnd.AddMonths(-1);
+            List<Yw.Model.MonitorDayRecord> allWsRecordList = null;//鎵�鏈変緵姘撮噺
+            List<Yw.Model.MonitorDayRecord> allPsRecordList = null;//鎵�鏈夌敤鐢甸噺
+            Yw.Model.Signal_SignalType signalWs = null;//鐢ㄦ按閲忎俊鍙�
+            Yw.Model.Signal_SignalType signalPs = null;//鐢ㄧ數閲忎俊鍙�
+            var service_day_record = new Lazy<Yw.Service.MonitorDayRecord>(() => new Yw.Service.MonitorDayRecord());
+            var allMonitorList = new Yw.Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(IStation.DataType.LogicSite, input.StationID, Yw.Monitor.eCronType.EachDay);
+            if (allMonitorList != null && allMonitorList.Count > 0)
+            {
+                var monitorWs = allMonitorList.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.绱Н娴侀噺));
+                if (monitorWs != null)
+                {
+                    signalWs = monitorWs.SignalList.Find(x => x.SignalType.Code == Yw.Monitor.SignalType.绱Н娴侀噺);
+                    allWsRecordList = service_day_record.Value.GetBySignalIDOfDayRange(signalWs.ID, dtStart, dtEnd);
+                }
+                var monitorPs = allMonitorList.Find(x => x.SignalList.Exists(t => t.SignalType.Code == Yw.Monitor.SignalType.鏈夊姛鐢靛害));
+                if (monitorPs != null)
+                {
+                    signalPs = monitorPs.SignalList.Find(x => x.SignalType.Code == Yw.Monitor.SignalType.鏈夊姛鐢靛害);
+                    allPsRecordList = service_day_record.Value.GetBySignalIDOfDayRange(signalPs.ID, dtStart, dtEnd);
+                }
+            }
+
             for (DateTime dt = dtStart; dt <= dtEnd; dt = dt.AddDays(1))
             {
+                var ws = allWsRecordList?.Find(x => x.DataDay.Date == dt.Date);
                 vm.Ws.Add(new BigScreenSingleStationQuotaItemDto()
                 {
                     Day = dt,
-                    Value = RandomHelper.Random(1000, 10000).ToString(),
-                    UnitName = "m鲁"
+                    Value = ws == null ? "0" : signalWs.GetDisplayValue(ws.DataValue),
+                    UnitName = signalWs?.GetDisplayUnitNames()
                 });
+                var ps = allPsRecordList.Find(x => x.DataDay.Date == dt.Date);
                 vm.Ps.Add(new BigScreenSingleStationQuotaItemDto()
                 {
                     Day = dt,
-                    Value = RandomHelper.Random(2000, 3000).ToString(),
-                    UnitName = "kW鈥"
+                    Value = ps == null ? "0" : signalPs.GetDisplayValue(ps.DataValue),
+                    UnitName = signalPs?.GetDisplayUnitNames()
                 });
             }
             return vm;
@@ -486,7 +512,7 @@
         }
 
         /// <summary>
-        /// 鑾峰彇鍗曟车绔欏伐鍗昁pi淇℃伅
+        /// 鑾峰彇鍗曟车绔欏伐鍗昁pi淇℃伅(寰呭畬鍠�)
         /// </summary>
         [Route("GetSingleStationRepairKpiInfo@V1.0")]
         [HttpGet]
@@ -578,42 +604,45 @@
         public List<BigScreenSingleStationAlarmItemDto> GetSingleStationAlarmInfo([FromQuery][Required] StationIDInput input)
         {
             var vmList = new List<BigScreenSingleStationAlarmItemDto>();
-            vmList.Add(new BigScreenSingleStationAlarmItemDto()
+            var allEquipmentList = new Yw.Service.Equipment().GetByBelongTypeAndBelongID(IStation.DataType.LogicSite, input.StationID);
+            if (allEquipmentList == null || allEquipmentList.Count < 1)
             {
-                ID = 1,
-                Name = "1#鏈虹粍",
-                Content = "鍑哄彛鍘嬪姏杩囦綆锛岃鍏虫敞鐘舵�佸彉鍖�"
-            });
-            vmList.Add(new BigScreenSingleStationAlarmItemDto()
+                return vmList;
+            }
+            var allEnginePumpList = allEquipmentList.Where(x => x.Flags.Contains(IStation.Flags.鏈虹粍)).ToList();
+            if (allEnginePumpList.Count < 1)
             {
-                ID = 2,
-                Name = "2#鏈虹粍",
-                Content = "鐬椂娴侀噺鏁版嵁寮傚父锛岃妫�淇�"
-            });
-            vmList.Add(new BigScreenSingleStationAlarmItemDto()
+                return vmList;
+            }
+            var service_monitor_maping = new Yw.Service.EquipmentMonitorMapping();
+            var service_monitor = new Lazy<Yw.Service.MonitorPoint>(() => new Yw.Service.MonitorPoint());
+            var servie_alarm_record = new Lazy<Yw.Service.MonitorValueAlarmRecord>(() => new Yw.Service.MonitorValueAlarmRecord());
+            foreach (var enginePump in allEnginePumpList)
             {
-                ID = 3,
-                Name = "2#鏈虹粍",
-                Content = "鐬椂娴侀噺鏁版嵁寮傚父锛岃妫�淇�"
-            });
-            vmList.Add(new BigScreenSingleStationAlarmItemDto()
-            {
-                ID = 4,
-                Name = "2#鏈虹粍",
-                Content = "鐬椂娴侀噺鏁版嵁寮傚父锛岃妫�淇�"
-            });
-            vmList.Add(new BigScreenSingleStationAlarmItemDto()
-            {
-                ID = 5,
-                Name = "2#鏈虹粍",
-                Content = "鐬椂娴侀噺鏁版嵁寮傚父锛岃妫�淇�"
-            });
-            vmList.Add(new BigScreenSingleStationAlarmItemDto()
-            {
-                ID = 6,
-                Name = "2#鏈虹粍",
-                Content = "鐬椂娴侀噺鏁版嵁寮傚父锛岃妫�淇�"
-            });
+                var allMonitorMappingList = service_monitor_maping.GetByEquipmentIDContainsChildren(enginePump.ID);
+                if (allMonitorMappingList != null && allMonitorMappingList.Count > 0)
+                {
+                    var allMonitorIds = allMonitorMappingList.Select(x => x.MonitorPointID).Distinct().ToList();
+                    var allMonitorList = service_monitor.Value.GetExSignalWithSignalTypeByIds(allMonitorIds);
+                    var allSignalList = allMonitorList.SelectMany(x => x.SignalList).ToList();
+                    var allSignalIds = allSignalList.Select(x => x.ID).Distinct().ToList();
+                    var allAlarmList = servie_alarm_record.Value.GetLastListBySignalIds(allSignalIds, 3);
+                    if (allAlarmList != null && allAlarmList.Count > 0)
+                    {
+                        foreach (var alarm in allAlarmList)
+                        {
+                            var vm = new BigScreenSingleStationAlarmItemDto()
+                            {
+                                ID = alarm.ID,
+                                Name = enginePump.Name,
+                                Content = alarm.AlarmName
+                            };
+                            vmList.Add(vm);
+                        }
+                    }
+                }
+            }
+
             return vmList;
         }
 

--
Gitblit v1.9.3