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 | 98 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 81 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 1dfd5ce..d26e8f4 100644 --- a/Application/IStation.Application.Run/monitor_record/mobile/MonitorRecord_MobileController.cs +++ b/Application/IStation.Application.Run/monitor_record/mobile/MonitorRecord_MobileController.cs @@ -34,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; @@ -71,12 +72,14 @@ var formulaModel = Model.Monitor.ConstCalculationFormulaParas.ToModel(analyModel.FormulaParas); if (formulaModel == null) continue; + var signal = monitor.SignalList.First(); var record = new Model.MonitorBasicRecord(); - record.CorpID = monitor.CorpID; + 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 signal = monitor.SignalList.First(); var vm = new MonitorBasicRecordMobileDto(record, signal); list.Add(vm); } @@ -84,16 +87,16 @@ var lastRecords = new Service.MonitorRecord().GetLastRecord(corpId, monitorPointIds); if (lastRecords == null || lastRecords.Count < 1) - return list; + 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(); + }).ToList(); - list.AddRange(vm_list); + list.AddRange(vm_list); return list; } @@ -110,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> @@ -133,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