From f00f5455999503a97b981d161a7564da23b6793f Mon Sep 17 00:00:00 2001 From: tangxu <76880903@qq.com> Date: 星期二, 21 三月 2023 13:30:03 +0800 Subject: [PATCH] 成行 增加 速度修正,昨天遗忘了 --- Application/IStation.Application.Run/monitor_record/mobile/MonitorRecord_MobileController.cs | 132 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 115 insertions(+), 17 deletions(-) diff --git a/Application/IStation.Application.Run/monitor_record/mobile/MonitorRecord_MobileController.cs b/Application/IStation.Application.Run/monitor_record/mobile/MonitorRecord_MobileController.cs index 8002a91..d26e8f4 100644 --- a/Application/IStation.Application.Run/monitor_record/mobile/MonitorRecord_MobileController.cs +++ b/Application/IStation.Application.Run/monitor_record/mobile/MonitorRecord_MobileController.cs @@ -9,6 +9,8 @@ using Mapster; using IStation.Calculation; using IStation.Model; +using System.Threading; +using Furion.DataValidation; namespace IStation.Application { @@ -32,7 +34,8 @@ if (list == null || list.Count < 1) return default; var monitor = new Service.MonitorPoint().GetExSignalWithSignalTypeByID(corpId, monitorPointId); - var vm_list = list.Select(x => { + var vm_list = list.Select(x => + { var signal = monitor.SignalList.Find(t => t.ID == x.SignalID); var vm = new MonitorBasicRecordSignalContentMobileDto(x, signal); return vm; @@ -50,18 +53,52 @@ { var corpId = input.CorpID; var monitorPointIds = LongListHelper.ToList(input.MonitorPointIds); - var list = new Service.MonitorRecord().GetLastRecord(corpId, monitorPointIds); - if (list == null || list.Count < 1) - return default; var monitorList = new Service.MonitorPoint().GetExSignalWithSignalTypeByIds(corpId, monitorPointIds); - var vm_list = list.Select(x => { + if (monitorList == null || monitorList.Count < 1) + return default; + + var list = new List<MonitorBasicRecordMobileDto>(); + + var virtualMonitorPoints = monitorList.Where(x => x.SourceType == Model.Monitor.eSourceType.Virtual); + if (virtualMonitorPoints != null && virtualMonitorPoints.Count() > 0) + { + foreach (var monitor in virtualMonitorPoints) + { + if (string.IsNullOrEmpty(monitor.SourceParas)) + continue; + var analyModel = Model.Monitor.AnalyseParameters.ToModel(monitor.SourceParas); + if (analyModel.FormulaType != Model.Monitor.FormulaType.Calculation_Const) + continue; + var formulaModel = Model.Monitor.ConstCalculationFormulaParas.ToModel(analyModel.FormulaParas); + if (formulaModel == null) + continue; + var signal = monitor.SignalList.First(); + var record = new Model.MonitorBasicRecord(); + record.MonitorPointID = monitor.ID; + record.SignalID = signal.ID; + record.CorpID = input.CorpID; + record.DataTime = DateTime.Now; + record.DataValue = formulaModel.Value; + record.DataStatus = new List<string>(); + var vm = new MonitorBasicRecordMobileDto(record, signal); + list.Add(vm); + } + } + + var lastRecords = new Service.MonitorRecord().GetLastRecord(corpId, monitorPointIds); + if (lastRecords == null || lastRecords.Count < 1) + return list; + var vm_list = lastRecords.Select(x => + { var monitor = monitorList.Find(t => t.ID == x.MonitorPointID); var signal = monitor.SignalList.Find(t => t.ID == x.SignalID); var vm = new MonitorBasicRecordMobileDto(x, signal); return vm; }).ToList(); - return vm_list; + list.AddRange(vm_list); + + return list; } /// <summary> @@ -76,18 +113,48 @@ var monitorList = new Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId); if (monitorList == null || monitorList.Count < 1) return default; + var list = new List<MonitorBasicRecordMobileDto>(); + + var virtualMonitorPoints = monitorList.Where(x => x.SourceType == Model.Monitor.eSourceType.Virtual); + if (virtualMonitorPoints != null && virtualMonitorPoints.Count() > 0) + { + foreach (var monitor in virtualMonitorPoints) + { + if (string.IsNullOrEmpty(monitor.SourceParas)) + continue; + var analyModel = Model.Monitor.AnalyseParameters.ToModel(monitor.SourceParas); + if (analyModel.FormulaType != Model.Monitor.FormulaType.Calculation_Const) + continue; + var formulaModel = Model.Monitor.ConstCalculationFormulaParas.ToModel(analyModel.FormulaParas); + if (formulaModel == null) + continue; + var signal = monitor.SignalList.First(); + var record = new Model.MonitorBasicRecord(); + record.MonitorPointID = monitor.ID; + record.SignalID = signal.ID; + record.CorpID = input.CorpID; + record.DataTime = DateTime.Now; + record.DataValue = formulaModel.Value; + record.DataStatus = new List<string>(); + var vm = new MonitorBasicRecordMobileDto(record, signal); + list.Add(vm); + } + } + var monitorPointIds = monitorList.Select(x => x.ID).Distinct().ToList(); - var list = new Service.MonitorRecord().GetLastRecord(corpId, monitorPointIds); - if (list == null || list.Count < 1) - return default; - var vm_list = list.Select(x => { + var lastRecords = new Service.MonitorRecord().GetLastRecord(corpId, monitorPointIds); + if (lastRecords == null || lastRecords.Count < 1) + return list; + var vm_list = lastRecords.Select(x => + { var monitor = monitorList.Find(t => t.ID == x.MonitorPointID); var signal = monitor.SignalList.Find(t => t.ID == x.SignalID); var vm = new MonitorBasicRecordMobileDto(x, signal); return vm; }).ToList(); - return vm_list; + list.AddRange(vm_list); + return list; } /// <summary> @@ -99,21 +166,52 @@ { var corpId = input.CorpID; var stationId = input.StationID; - var monitorList = new Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId,eMonitorType.General); + var monitorList = new Service.MonitorPoint().GetExSignalWithSignalTypeByBelongTypeAndBelongID(corpId, ObjectType.Station, stationId, eMonitorType.General); if (monitorList == null || monitorList.Count < 1) return default; + var list = new List<MonitorBasicRecordMobileDto>(); + + var virtualMonitorPoints = monitorList.Where(x => x.SourceType == Model.Monitor.eSourceType.Virtual); + if (virtualMonitorPoints != null && virtualMonitorPoints.Count() > 0) + { + foreach (var monitor in virtualMonitorPoints) + { + if (string.IsNullOrEmpty(monitor.SourceParas)) + continue; + var analyModel = Model.Monitor.AnalyseParameters.ToModel(monitor.SourceParas); + if (analyModel.FormulaType != Model.Monitor.FormulaType.Calculation_Const) + continue; + var formulaModel = Model.Monitor.ConstCalculationFormulaParas.ToModel(analyModel.FormulaParas); + if (formulaModel == null) + continue; + var signal = monitor.SignalList.First(); + var record = new Model.MonitorBasicRecord(); + record.MonitorPointID = monitor.ID; + record.SignalID = signal.ID; + record.CorpID = input.CorpID; + record.DataTime = DateTime.Now; + record.DataValue = formulaModel.Value; + record.DataStatus = new List<string>(); + var vm = new MonitorBasicRecordMobileDto(record, signal); + list.Add(vm); + } + } + var monitorPointIds = monitorList.Select(x => x.ID).Distinct().ToList(); - var list = new Service.MonitorRecord().GetLastRecord(corpId, monitorPointIds); - if (list == null || list.Count < 1) - return default; - var vm_list = list.Select(x => { + var lastRecords = new Service.MonitorRecord().GetLastRecord(corpId, monitorPointIds); + if (lastRecords == null || lastRecords.Count < 1) + return list; + + var vm_list = lastRecords.Select(x => + { var monitor = monitorList.Find(t => t.ID == x.MonitorPointID); var signal = monitor.SignalList.Find(t => t.ID == x.SignalID); var vm = new MonitorBasicRecordMobileDto(x, signal); return vm; }).ToList(); - return vm_list; + list.AddRange(vm_list); + return list; } } -- Gitblit v1.9.3