From ab65b0ac21e7fabfd8548538142d9a1b66a2ad3d Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期五, 20 十二月 2024 13:14:49 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs |  129 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 120 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..5004c5e 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,92 @@
             vm.CurveName = $"瑁呯疆绾�";
             vm.Color = Color.Black;
 
-            vm.StartH = 2;
+
+            double startHeadValue = 0;
+            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)
+                    {
+                        startHeadValue = startHead.Value;
+                    }
+                }
+            }
+
+            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 - startHeadValue, 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 - startHeadValue, 2);
+                    }
+                }
+            }
 
             if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
             {
@@ -140,9 +244,6 @@
                         }
 
                     }
-
-                    vm.PipeQ = vm.Items.Sum(t => t.Q);
-                    vm.PipeH = vm.Items.Max(t => t.H);
                 }
             }
 
@@ -176,5 +277,15 @@
         {
             this.pumpWorkingViewChart1.SetChartAxis();
         }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="fileName"></param>
+        public void ExportToImage(string fileName)
+        {
+            this.pumpWorkingViewChart1.ExportToImage(fileName);
+        }
+
     }
 }

--
Gitblit v1.9.3