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