From c22cc4c60e9ff156fc25b39a5c024cc758df354b Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 30 十二月 2024 09:40:51 +0800 Subject: [PATCH] 水力模块联动修改 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs | 120 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 79 insertions(+), 41 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs index 5cd37ed..1d7ab45 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs @@ -1,4 +1,6 @@ -锘縰sing Yw.Vmo; +锘縰sing DevExpress.Xpo.Helpers; +using Yw.Hydro; +using Yw.Vmo; namespace HStation.WinFrmUI { @@ -10,84 +12,120 @@ /// <summary> /// /// </summary> - public SimulationMonitorValueHelper(SimulationVisualListHelper visualListHelper, SimulationMonitorHelper monitorHelper) + public SimulationMonitorValueHelper + ( + SimulationVisualListHelper visualListHelper, + SimulationMonitorHelper monitorHelper, + SimulationCalcuResultHelper calcuResultHelper + ) { _visualListHelper = visualListHelper; _monitorHelper = monitorHelper; + _calcuResultHelper = calcuResultHelper; + _calcuResultHelper.InitialEvent += async () => await Update(); } - private SimulationVisualListHelper _visualListHelper = null;//鍙鍒楄〃杈呭姪绫� - private SimulationMonitorHelper _monitorHelper = null;//鐩戞祴鐐硅緟鍔╃被 - private List<HydroMonitorValueViewModel> _allMonitorValueList = null;//鎵�鏈夌洃娴嬪�煎垪琛� + private readonly SimulationVisualListHelper _visualListHelper = null;//鍙鍒楄〃杈呭姪绫� + private readonly SimulationMonitorHelper _monitorHelper = null;//鐩戞祴鐐硅緟鍔╃被 + private readonly SimulationCalcuResultHelper _calcuResultHelper = null;//璁$畻缁撴灉杈呭姪绫� + private List<HydroMonitorValueViewModel> _allList = null;//鎵�鏈夌洃娴嬪�煎垪琛� /// <summary> - /// 鑾峰彇 + /// 鑾峰彇鎵�鏈� /// </summary> - public async Task<List<HydroMonitorValueViewModel>> Get() + public async Task<List<HydroMonitorValueViewModel>> GetAll() { - if (_allMonitorValueList == null) + if (_allList == null) { - _allMonitorValueList = new List<HydroMonitorValueViewModel>(); + _allList = new List<HydroMonitorValueViewModel>(); var allVisualDict = _visualListHelper.GetVisualDict(); if (allVisualDict != null && allVisualDict.Count > 0) { - var allMonitorList = await _monitorHelper.Get(); + var allMonitorList = await _monitorHelper.GetAll(); if (allMonitorList != null && allMonitorList.Count > 0) { foreach (var monitor in allMonitorList) { - if (allVisualDict.ContainsKey(monitor.Relation)) + if (allVisualDict.ContainsKey(monitor.Parter)) { - var visual = allVisualDict[monitor.Relation]; - var vm = new HydroMonitorValueViewModel(monitor, visual); - _allMonitorValueList.Add(vm); + var visual = allVisualDict[monitor.Parter]; + double? propValue = null; + var calcuVisualResult = _calcuResultHelper.GetVisual(monitor.Parter); + if (calcuVisualResult != null) + { + propValue = calcuVisualResult.GetCalcuValue(monitor.PropName); + } + var vm = new HydroMonitorValueViewModel(monitor, visual, propValue); + _allList.Add(vm); } } } } } - return _allMonitorValueList; + return _allList; + } + + /// <summary> + /// 鑾峰彇瀵规帴鍒楄〃 + /// </summary> + public async Task<List<HydroMonitorValueViewModel>> GetDockingList() + { + var all = await GetAll(); + return all.Where(x => x.Vmo.SourceType == eSourceType.Docking).ToList(); + } + + /// <summary> + /// 鑾峰彇鍒嗘瀽鍒楄〃 + /// </summary> + public async Task<List<HydroMonitorValueViewModel>> GetAnalyseList() + { + var all = await GetAll(); + return all.Where(x => x.Vmo.SourceType == eSourceType.Analyse).ToList(); } /// <summary> /// 鏇存柊 /// </summary> - public async void Update(string code, List<HydroMonitorVmo> monitorList) + public async Task Update() { - var visual = _visualListHelper.GetVisual(code); - if (visual == null) + var all = await GetAll(); + foreach (var item in all) { - return; + if (!item.PropValue.HasValue) + { + var calcuVisualResult = _calcuResultHelper.GetVisual(item.Vmo.Parter); + if (calcuVisualResult != null) + { + var propValue = calcuVisualResult.GetCalcuValue(item.Vmo.PropName); + if (propValue.HasValue) + { + item.UpdatePropValue(propValue.Value); + } + } + } } + } - var allMonitorValueList = await Get(); - var monitorValueList = allMonitorValueList.Where(x => x.Vmo.Relation == code).ToList(); - monitorValueList?.ForEach(x => + /// <summary> + /// 鏇存柊 + /// </summary> + public async Task Update(string code, eSourceType sourceType, List<HydroMonitorValueViewModel> valueList) + { + var all = await GetAll(); + all.RemoveAll(x => x.Vmo.Parter == code && x.Vmo.SourceType == sourceType); + if (valueList != null && valueList.Count > 0) { - var result = monitorList?.Exists(t => t.Relation == x.Vmo.Relation && t.PropName == x.Vmo.PropName); - if (!(result.HasValue && result.Value)) - { - allMonitorValueList.Remove(x); - } - }); - monitorList?.ForEach(x => - { - var result = monitorValueList?.Exists(t => t.Vmo.Relation == x.Relation && t.Vmo.PropName == x.PropName); - if (!(result.HasValue && result.Value)) - { - var vm = new HydroMonitorValueViewModel(x, visual); - allMonitorValueList.Add(vm); - } - }); + all.AddRange(valueList); + } } /// <summary> /// 閲嶇疆 /// </summary> - public async void Reset(List<HydroWorkingMonitorViewModel> allWorkingMonitorList) + public async Task Reset(List<HydroWorkingMonitorViewModel> allWorkingMonitorList) { - var allMonitorValueList = await Get(); - allMonitorValueList.UpdateMonitorValue(allWorkingMonitorList); + var all = await GetAll(); + all.UpdateMonitorValue(allWorkingMonitorList); } /// <summary> @@ -95,7 +133,7 @@ /// </summary> public async void Reset(string monitorInfo) { - var allMonitorValueList = await Get(); + var allMonitorValueList = await GetAll(); allMonitorValueList.UpdateMonitorValue(monitorInfo); } -- Gitblit v1.9.3