From d60d42b1ac40fa619dbe21b5692cbd07d772a0b1 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期三, 11 十二月 2024 21:58:41 +0800
Subject: [PATCH] 修复水泵批量修改设置

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs |  138 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 129 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 2783c7a..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);
@@ -52,9 +73,8 @@
                 var item = vm.Items.FirstOrDefault();
                 SetCurrent(item);
             }
+            this.barCkE.Checked = this.pumpWorkingViewChart1.QEVisible;
         }
-
-
 
         //鍒涘缓
         private PumpWorkingViewViewModel CreateViewModel()
@@ -77,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)
             {
@@ -139,9 +244,6 @@
                         }
 
                     }
-
-                    vm.PipeQ = vm.Items.Sum(t => t.Q);
-                    vm.PipeH = vm.Items.Max(t => t.H);
                 }
             }
 
@@ -153,6 +255,7 @@
         {
             if (item != null)
             {
+                this.barTxtPump.EditValue = item.Name;
                 this.barTxtQ.EditValue = $"{Math.Round(item.Q, 1)}m鲁/h";
                 this.barTxtH.EditValue = $"{Math.Round(item.H, 2)}m";
                 this.barTxtP.EditValue = $"{Math.Round(item.P ?? 0, 1)}kW";
@@ -165,7 +268,24 @@
             SetCurrent(obj);
         }
 
+        private void barCkE_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            this.pumpWorkingViewChart1.QEVisible = this.barCkE.Checked;
+        }
 
+        private void barBtnCoord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            this.pumpWorkingViewChart1.SetChartAxis();
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="fileName"></param>
+        public void ExportToImage(string fileName)
+        {
+            this.pumpWorkingViewChart1.ExportToImage(fileName);
+        }
 
     }
 }

--
Gitblit v1.9.3