From 31a8e93cf1cc708b68456b88aa5b0031a41eb47a Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期二, 10 十二月 2024 16:36:45 +0800
Subject: [PATCH] 能耗分析

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs |  118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 109 insertions(+), 9 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs
index 5762390..cceae08 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs
@@ -25,25 +25,46 @@
 
         private HydroWorkingVmo _working = null;
         private Yw.Model.HydroModelInfo _hydroInfo = null;
+        private List<HydroMonitorVmo> _allMonitorList = null;
         private Dictionary<string, HydroCalcuVisualResult> _allCalcuResultVisualDict = null;
 
+        /// <summary>
+        /// 缁戝畾鏁版嵁
+        /// </summary>
         public void SetBindingData
-            (HydroWorkingVmo working, Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult)
+            (
+                HydroWorkingVmo working,
+                Yw.Model.HydroModelInfo hydroInfo,
+                List<HydroMonitorVmo> allMonitorList,
+                HydroCalcuResult calcuResult
+            )
         {
             var allCalcuResultVisualDict = calcuResult.GetVisualDict();
-            SetBindingData(working, hydroInfo, allCalcuResultVisualDict);
+            SetBindingData(working, hydroInfo, allMonitorList, allCalcuResultVisualDict);
         }
 
+        /// <summary>
+        /// 缁戝畾鏁版嵁
+        /// </summary>
         public void SetBindingData
-            (HydroWorkingVmo working, Yw.Model.HydroModelInfo hydroInfo, Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict)
+            (
+                HydroWorkingVmo working,
+                Yw.Model.HydroModelInfo hydroInfo,
+                List<HydroMonitorVmo> allMonitorList,
+                Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict
+            )
         {
             _working = working;
             _hydroInfo = hydroInfo;
+            _allMonitorList = allMonitorList;
             _allCalcuResultVisualDict = allCalcuResultVisualDict;
             var vm = CreateViewModel();
             SetBindingData(vm);
         }
 
+        /// <summary>
+        /// 缁戝畾鏁版嵁
+        /// </summary>
         public void SetBindingData(PumpWorkingViewViewModel vm)
         {
             this.pumpWorkingViewChart1.SetBindingData(vm);
@@ -54,8 +75,6 @@
             }
             this.barCkE.Checked = this.pumpWorkingViewChart1.QEVisible;
         }
-
-
 
         //鍒涘缓
         private PumpWorkingViewViewModel CreateViewModel()
@@ -78,7 +97,89 @@
             vm.CurveName = $"瑁呯疆绾�";
             vm.Color = Color.Black;
 
-            vm.StartH = 2;
+            var startSourceMonitor = _allMonitorList?
+                .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
+                { HStation.Xhs.Flags.姘存簮,HStation.Xhs.Flags.濮嬬,HStation.Xhs.Flags.榛樿});
+            if (startSourceMonitor == null)
+            {
+                startSourceMonitor = _allMonitorList?
+                .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
+                { HStation.Xhs.Flags.姘存簮,HStation.Xhs.Flags.濮嬬});
+            }
+            if (startSourceMonitor != null)
+            {
+                var startSourceCalcuResult = _allCalcuResultVisualDict?.GetValue(startSourceMonitor.Relation);
+                if (startSourceCalcuResult != null)
+                {
+                    var startHead = startSourceCalcuResult.GetCalcuValue(startSourceMonitor.PropName);
+                    if (startHead.HasValue)
+                    {
+                        var endSourceMonitor = _allMonitorList?
+                                    .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
+                                    { HStation.Xhs.Flags.姘存簮,HStation.Xhs.Flags.鏈,HStation.Xhs.Flags.榛樿});
+                        if (endSourceMonitor == null)
+                        {
+                            endSourceMonitor = _allMonitorList?
+                                        .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
+                                        { HStation.Xhs.Flags.姘存簮,HStation.Xhs.Flags.鏈});
+                        }
+                        if (endSourceMonitor != null)
+                        {
+                            var endSouceCalcuResult = _allCalcuResultVisualDict?.GetValue(endSourceMonitor.Relation);
+                            if (endSouceCalcuResult != null)
+                            {
+                                var endHead = endSouceCalcuResult.GetCalcuValue(endSourceMonitor.PropName);
+                                if (endHead.HasValue)
+                                {
+                                    vm.StartH = Math.Round(endHead.Value - startHead.Value, 2);
+                                }
+                            }
+                        }
+                    }
+
+                }
+            }
+
+            var outPipeFlowMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuFlow, new List<string>()
+                            { HStation.Xhs.Flags.鎬荤,HStation.Xhs.Flags.鍑哄彛,HStation.Xhs.Flags.榛樿});
+            if (outPipeFlowMonitor == null)
+            {
+                outPipeFlowMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuFlow, new List<string>()
+                        { HStation.Xhs.Flags.鎬荤,HStation.Xhs.Flags.鍑哄彛});
+            }
+            if (outPipeFlowMonitor != null)
+            {
+                var outPipeFlowCalcuResult = _allCalcuResultVisualDict?.GetValue(outPipeFlowMonitor.Relation);
+                if (outPipeFlowCalcuResult != null)
+                {
+                    var outPipeFlow = outPipeFlowCalcuResult.GetCalcuValue(outPipeFlowMonitor.PropName);
+                    if (outPipeFlow.HasValue)
+                    {
+                        vm.PipeQ = Math.Round(outPipeFlow.Value, 1);
+                    }
+                }
+            }
+
+            var outPipeHeadMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
+                            { HStation.Xhs.Flags.鎬荤,HStation.Xhs.Flags.鍑哄彛,HStation.Xhs.Flags.榛樿});
+            if (outPipeHeadMonitor == null)
+            {
+                outPipeHeadMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
+                            { HStation.Xhs.Flags.鎬荤,HStation.Xhs.Flags.鍑哄彛});
+            }
+
+            if (outPipeHeadMonitor != null)
+            {
+                var outPipeHeadCalcuResult = _allCalcuResultVisualDict?.GetValue(outPipeHeadMonitor.Relation);
+                if (outPipeHeadCalcuResult != null)
+                {
+                    var outPipeHead = outPipeHeadCalcuResult.GetCalcuValue(outPipeHeadMonitor.PropName);
+                    if (outPipeHead.HasValue)
+                    {
+                        vm.PipeH = Math.Round(outPipeHead.Value, 2);
+                    }
+                }
+            }
 
             if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
             {
@@ -140,9 +241,6 @@
                         }
 
                     }
-
-                    vm.PipeQ = vm.Items.Sum(t => t.Q);
-                    vm.PipeH = vm.Items.Max(t => t.H);
                 }
             }
 
@@ -176,5 +274,7 @@
         {
             this.pumpWorkingViewChart1.SetChartAxis();
         }
+
+
     }
 }

--
Gitblit v1.9.3