From 97a43bf839f59cdda1641d61706e6e71a0c5e172 Mon Sep 17 00:00:00 2001
From: cloudflight <cloudflight@126.com>
Date: 星期二, 24 十二月 2024 23:54:17 +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/03-analy/SimulationMultiWorkingPumpAnalyCtrl.cs |  165 ++++++++----------------------------------------------
 1 files changed, 25 insertions(+), 140 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.cs
index a489040..ef8668b 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.cs
@@ -29,12 +29,9 @@
             this.hydroWorkingCheckedListHorizCtrl1.CheckedChangedEvent += HydroWorkingCheckedListHorizCtrl1_CheckedChangedEvent;
         }
 
-
-
         private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅
-        private Yw.Model.HydroPumpInfo _pumpInfo = null;//姘存车淇℃伅
-        private List<HydroWorkingVmo> _workingList = null;//宸ュ喌鍒楄〃
-        private Dictionary<HydroWorkingVmo, Dictionary<string, HydroCalcuVisualResult>> _allWorkingCalcuResultDict = null;//鎵�鏈夊伐鍐佃绠楃粨鏋滃瓧鍏�
+        private Yw.Model.HydroPumpInfo _pumpInfo = null;//姘存车淇″績
+        private List<HydroWorkingVmo> _allWorkingList = null;//鎵�鏈夊伐鍐靛垪琛�
 
         /// <summary>
         /// 缁戝畾鏁版嵁
@@ -46,153 +43,41 @@
                 return;
             }
             _hydroInfo = hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
-            _workingList = allWorkingList;
+            _allWorkingList = allWorkingList;
             this.hydroWorkingCheckedListHorizCtrl1.SetBindingData(allWorkingList);
-            this.hydroPumpListViewCtrl1.SetBindingData(_hydroInfo);
+            this.hydroPumpListViewCtrl1.SetBindingData(_hydroInfo, allWorkingList);
         }
 
         //姘存车閫夋嫨鏀瑰彉
-        private void HydroPumpListViewCtrl1_SelectedChangedEvent(Yw.Model.HydroPumpInfo obj)
-        {
-            _pumpInfo = obj;
-            var vm = CreateViewModel();
-            if (vm != null)
-            {
-                this.pumpVariableSpeedViewChart1.SetBindingData(vm);
-            }
-        }
-
-        //宸ュ喌閫夋嫨鏀瑰彉浜嬩欢
-        private void HydroWorkingCheckedListHorizCtrl1_CheckedChangedEvent(List<HydroWorkingVmo> obj)
-        {
-            _workingList = obj;
-            var vm = CreateViewModel();
-            if (vm != null)
-            {
-                this.pumpVariableSpeedViewChart1.SetBindingData(vm);
-            }
-        }
-
-        //鍒涘缓
-        private PumpVariableSpeedViewViewModel CreateViewModel()
+        private void HydroPumpListViewCtrl1_SelectedChangedEvent(Yw.Model.HydroPumpInfo pumpInfo)
         {
             if (_hydroInfo == null)
             {
-                return default;
+                return;
+            }
+            if (pumpInfo == null)
+            {
+                return;
+            }
+            _pumpInfo = pumpInfo;
+            this.simulationPumpAnalyChartCtrl1.SetBindingData(_hydroInfo, _pumpInfo, _allWorkingList);
+        }
+
+        //宸ュ喌閫夋嫨鏀瑰彉浜嬩欢
+        private void HydroWorkingCheckedListHorizCtrl1_CheckedChangedEvent(List<HydroWorkingVmo> allWorkingList)
+        {
+            if (_hydroInfo == null)
+            {
+                return;
             }
             if (_pumpInfo == null)
             {
-                return default;
+                return;
             }
-            var vm = new PumpVariableSpeedViewViewModel();
-            vm.Id = _pumpInfo.Code;
-            vm.Name = _pumpInfo.Name;
-            vm.CurveName = $"棰濆畾鏇茬嚎({_pumpInfo.RatedHz}hz)";
-            vm.RatedQ = _pumpInfo.RatedQ.HasValue ? _pumpInfo.RatedQ.Value : 0;
-            vm.RatedH = _pumpInfo.RatedH.HasValue ? _pumpInfo.RatedH.Value : 0;
-            vm.RatedP = _pumpInfo.RatedP;
-            vm.RatedN = _pumpInfo.RatedN.HasValue ? _pumpInfo.RatedN.Value : 0;
-            vm.RatedHz = _pumpInfo.RatedHz;
-
-            var curveqh = _hydroInfo.Curves?.Find(x => x.Code == _pumpInfo.CurveQH);
-            if (curveqh != null)
-            {
-                var qh_pts = curveqh.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
-                if (qh_pts != null && qh_pts.Count > 3)
-                {
-                    vm.CurveQH = new CubicSpline2d(qh_pts);
-                }
-            }
-
-            var curveqp = _hydroInfo.Curves?.Find(x => x.Code == _pumpInfo.CurveQP);
-            if (curveqp != null)
-            {
-                var qp_pts = curveqp.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
-                if (qp_pts != null && qp_pts.Count > 3)
-                {
-                    vm.CurveQP = new CubicSpline2d(qp_pts);
-                }
-            }
-
-            var curveqe = _hydroInfo.Curves?.Find(x => x.Code == _pumpInfo.CurveQE);
-            if (curveqe != null)
-            {
-                var qepts = curveqe.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
-                if (qepts != null && qepts.Count > 3)
-                {
-                    vm.CurveQE = new CubicSpline2d(qepts);
-                }
-            }
-
-            if (_workingList != null && _workingList.Count > 0)
-            {
-                vm.Items = new List<PumpVariableSpeedViewItemViewModel>();
-                foreach (var working in _workingList)
-                {
-                    var workingInfo = JsonHelper.Json2Object<HydroWorkingInfoViewModel>(working.WorkingInfo);
-                    if (workingInfo != null && workingInfo.Pumps != null && workingInfo.Pumps.Count > 0)
-                    {
-                        var workingPumpInfo = workingInfo.Pumps.Find(x => x.Code == _pumpInfo.Code);
-                        if (workingPumpInfo != null)
-                        {
-                            var vmItem = new PumpVariableSpeedViewItemViewModel();
-                            vm.Items.Add(vmItem);
-                            vmItem.Id = working.ID.ToString();
-                            vmItem.Name = working.Name;
-                            vmItem.Hz = workingPumpInfo.CurrentHz;
-                            if (_pumpInfo.RatedN.HasValue)
-                            {
-                                var speedRatio = workingPumpInfo.CurrentHz / _pumpInfo.RatedHz;
-                                vmItem.N = Math.Round(_pumpInfo.RatedN.Value * speedRatio, 1);
-                            }
-                            vmItem.CurveName = $"{working.Name}({vmItem.Hz}hz)";
-                            if (_allWorkingCalcuResultDict == null)
-                            {
-                                _allWorkingCalcuResultDict = new Dictionary<HydroWorkingVmo, Dictionary<string, HydroCalcuVisualResult>>();
-                            }
-                            if (!_allWorkingCalcuResultDict.ContainsKey(working))
-                            {
-                                _hydroInfo.UpdateWorkingInfo(workingInfo);
-                                var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss);
-                                _allWorkingCalcuResultDict.Add(working, calcuResult?.GetVisualDict());
-                            }
-                            var calcuResultVisualDict = _allWorkingCalcuResultDict[working];
-                            var calcuPumpResult = calcuResultVisualDict?.GetValue(_pumpInfo.Code) as HydroCalcuPumpResult;
-                            if (calcuPumpResult != null)
-                            {
-                                vmItem.Q = calcuPumpResult.CalcuQ ?? 0;
-                                vmItem.H = calcuPumpResult.CalcuH ?? 0;
-                                vmItem.P = calcuPumpResult.CalcuP;
-                                vmItem.E = calcuPumpResult.CalcuE;
-                            }
-
-                            if (vm.CurveQH != null)
-                            {
-                                var qh_pts = vm.CurveQH.GetPointList(20);
-                                var qh_run_pts = qh_pts.GetQHPointListByN(vm.RatedHz, vmItem.Hz);
-                                vmItem.CurveQH = new CubicSpline2d(qh_run_pts);
-                            }
-
-                            if (vm.CurveQP != null)
-                            {
-                                var qp_pts = vm.CurveQP.GetPointList(20);
-                                var qp_run_pts = qp_pts.GetQPPointListByN(vm.RatedHz, vmItem.Hz);
-                                vmItem.CurveQP = new CubicSpline2d(qp_run_pts);
-                            }
-
-                            if (vm.CurveQE != null)
-                            {
-                                var qe_pts = vm.CurveQE.GetPointList(20);
-                                var qe_run_pts = qe_pts.GetQEPointListByN(vm.RatedHz, vmItem.Hz);
-                                vmItem.CurveQE = new CubicSpline2d(qe_run_pts);
-                            }
-                        }
-                    }
-                }
-            }
-
-            return vm;
+            _allWorkingList = allWorkingList;
+            this.simulationPumpAnalyChartCtrl1.SetBindingData(_hydroInfo, _pumpInfo, _allWorkingList);
         }
 
+
     }
 }

--
Gitblit v1.9.3