From 3c918c55e51c67bbd48e1780967b547ee71845c1 Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期一, 23 十二月 2024 11:34:19 +0800
Subject: [PATCH] 单泵匹配界面修改

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/02-pump/01-pumpsinglematching/SimulationPumpSingleMatchingDlg.cs |  119 ++++++++++++++++++++++-------------------------------------
 1 files changed, 44 insertions(+), 75 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/02-pump/01-pumpsinglematching/SimulationPumpSingleMatchingDlg.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/02-pump/01-pumpsinglematching/SimulationPumpSingleMatchingDlg.cs
index 4ecc11f..d7e7c7c 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/02-pump/01-pumpsinglematching/SimulationPumpSingleMatchingDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/02-pump/01-pumpsinglematching/SimulationPumpSingleMatchingDlg.cs
@@ -20,12 +20,14 @@
             public string OtherName { get; set; }
             public int Importance { get; set; }
             public int SortCode { get; set; }
-            public PhartDiagramExGraphListVmo Diagram { get; set; }
+
+            public long DiagramID { get; set; }
         }
 
         private HydroPumpMatchingViewModel _pump_matching_vm = null;
         private List<PumpSingleMatchingViewModel> _pump_mian_vm_list = null;
         private List<PhartViewModel> _phart_vm_list = null;
+        private Vmo.AssetsPumpMainVmo _pumpVmo;
 
         private readonly Lazy<BLL.AssetsPumpMain> _pump_main_bll = new();
         private readonly Lazy<BLL.PhartDiagramRelation> _phart_ex_bll = new();
@@ -57,9 +59,9 @@
             }
 
             this.gridControlPumpMain.DataSource = _pump_mian_vm_list;
-            this.gridControlPumpMain.RefreshDataSource();
             this.gridViewPumpMain.BestFitColumns();
             this.gridViewPumpMain.FocusedRowHandle = sel_index;
+            // this.gridControlPumpMain.RefreshDataSource();
         }
 
         private void barBtnOK_ItemClick(object sender, ItemClickEventArgs e)
@@ -77,27 +79,12 @@
                 return;
             }
 
-            var diagram = phart.Diagram;
-            if (!OutPtList
-                (diagram,
-                out List<Yw.Geometry.Point2d> qh_pt_list,
-                out List<Yw.Geometry.Point2d> qe_pt_list,
-                out List<Yw.Geometry.Point2d> qp_pt_list
-                ))
-            {
-                return;
-            } 
             _pump_matching_vm.MatchingDbId = pump_mian.ID.ToString();
             _pump_matching_vm.MatchingModelType = pump_mian.Name.ToString();
             _pump_matching_vm.MatchingRatedH = pump_mian.RatedHead;
             _pump_matching_vm.MatchingRatedN = pump_mian.RatedSpeed;
             _pump_matching_vm.MatchingRatedP = pump_mian.RatedPower;
             _pump_matching_vm.MatchingRatedQ = pump_mian.RatedFlow;
-
-            _pump_matching_vm.MatchingCurveDbId = phart.ID.ToString();
-            _pump_matching_vm.MatchingCurveQH = qh_pt_list.Select(x => new HydroCurvePointViewModel(x.X, x.Y)).ToList();
-            _pump_matching_vm.MatchingCurveQE = qe_pt_list?.Select(x => new HydroCurvePointViewModel(x.X, x.Y)).ToList();
-            _pump_matching_vm.MatchingCurveQP = qp_pt_list?.Select(x => new HydroCurvePointViewModel(x.X, x.Y)).ToList();
 
             this.ReloadDataEvent?.Invoke(_pump_matching_vm);
             this.Close();
@@ -109,7 +96,9 @@
             var pump_main = this.gridViewPumpMain.GetCurrentViewModel(_pump_mian_vm_list);
             if (pump_main != null)
             {
-                var phart_list = await _phart_ex_bll.Value.GetExByObjectTypeAndObjectID(HStation.Assets.DataType.PumpMain, pump_main.ID);
+                var vmo = await new BLL.AssetsPumpMain().GetByID(pump_main.ID);
+                _pumpVmo = vmo;
+                var phart_list = await _phart_ex_bll.Value.GetByObjectTypeAndObjectID(HStation.Assets.DataType.PumpMain, pump_main.ID);
                 if (phart_list != null && phart_list.Any())
                 {
                     foreach (var item in phart_list)
@@ -119,77 +108,57 @@
                         vm.OtherName = item.OtherName;
                         vm.Importance = item.Importance;
                         vm.SortCode = item.SortCode;
-                        vm.Diagram = item.Diagram;
+                        //   vm.Diagram = item.Diagram;
+                        vm.DiagramID = item.DiagramID;
                         _phart_vm_list.Add(vm);
                     }
                 }
             }
-
-            this.gridViewCurve.FocusInvalidRow();
-            this.gridControlCurve.DataSource = _phart_vm_list;
-            this.gridControlCurve.RefreshDataSource();
+            this.phartViewModelBindingSource.DataSource = _phart_vm_list;
+            //this.gridControlCurve.DataSource = _phart_vm_list;
+            //this.gridViewCurve.RefreshData();
+            this.phartViewModelBindingSource.ResetBindings(false);
+            //this.gridViewCurve.FocusInvalidRow();
+            gridViewCurve_FocusedRowChanged(null, null);
         }
 
-        private void gridViewCurve_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
+        private async void gridViewCurve_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
         {
             var phart = this.gridViewCurve.GetCurrentViewModel(_phart_vm_list);
             if (phart == null)
             {
-                this.xtrPerform2dChart1.InitialChartData();
+                //TipFormHelper.ShowWarn("鏃犳洸绾�");
+                //this.pumpChartViewCtrl1.SetBindingData(null, 0);
+                this.pumpChartViewCtrl1.ClearBindingData();
                 return;
             }
-
-            var diagram = phart.Diagram;
-            if (!OutPtList
-                (diagram,
-                out List<Yw.Geometry.Point2d> qh_pt_list,
-                out List<Yw.Geometry.Point2d> qe_pt_list,
-                out List<Yw.Geometry.Point2d> qp_pt_list
-                ))
+            var list = Task.Run(async () => await new BLL.PhartDiagramRelation().GetExByObjectTypeAndObjectID(HStation.Assets.DataType.PumpMain, _pumpVmo.ID)).Result;
+            if (list != null && list.Count > 0)
             {
-                this.xtrPerform2dChart1.InitialChartData();
-                return;
+                var def = list.OrderByDescending(x => x.Importance).First();
+                _pump_matching_vm.MatchingCurveDbId = def.ID.ToString();
+                var diagram = def.Diagram.GetDefaultVmo();
+                var qh = diagram.QH.GetFeatPointList();
+                var qp = diagram.QP.GetFeatPointList();
+                var qe = diagram.QE.GetFeatPointList();
+                _pump_matching_vm.MatchingCurveQH = new List<HydroCurvePointViewModel>();
+                _pump_matching_vm.MatchingCurveQP = new List<HydroCurvePointViewModel>();
+                _pump_matching_vm.MatchingCurveQE = new List<HydroCurvePointViewModel>();
+                foreach (var item in qh)
+                {
+                    _pump_matching_vm.MatchingCurveQH.Add(new HydroCurvePointViewModel(item.X, item.Y));
+                }
+                foreach (var item in qp)
+                {
+                    _pump_matching_vm.MatchingCurveQP.Add(new HydroCurvePointViewModel(item.X, item.Y));
+                }
+                foreach (var item in qe)
+                {
+                    _pump_matching_vm.MatchingCurveQE.Add(new HydroCurvePointViewModel(item.X, item.Y));
+                }
             }
-
-            var cubic_spline_qh = new Yw.Geometry.CubicSpline2d(qh_pt_list);
-            var cubic_spline_qe = new Yw.Geometry.CubicSpline2d(qe_pt_list);
-            var cubic_spline_qp = new Yw.Geometry.CubicSpline2d(qp_pt_list);
-            var disp_paras = diagram.DispParas;
-            var is_calc_disp_paras = string.IsNullOrWhiteSpace(disp_paras);
-            this.xtrPerform2dChart1.SetBindingData(cubic_spline_qh, cubic_spline_qe, cubic_spline_qp, disp_paras, is_calc_disp_paras);
-        }
-
-        private bool OutPtList(
-            PhartDiagramExGraphListVmo diagram,
-            out List<Yw.Geometry.Point2d> qh_pt_list,
-            out List<Yw.Geometry.Point2d> qe_pt_list,
-            out List<Yw.Geometry.Point2d> qp_pt_list
-            )
-        {
-            qh_pt_list = null;
-            qe_pt_list = null;
-            qp_pt_list = null;
-
-            var graph_qh = diagram.GraphList.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQH);
-            var graph_qe = diagram.GraphList.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQE);
-            var graph_qp = diagram.GraphList.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQP);
-            if (graph_qh == null)
-            {
-                this.xtrPerform2dChart1.InitialChartData();
-                return false;
-            }
-
-            qh_pt_list = PhartPerformCurveHelper.GetFeatPointList(graph_qh.GraphType, graph_qh.GeometryInfo, 100, null);
-            if (graph_qe != null)
-            {
-                qe_pt_list = PhartPerformCurveHelper.GetFeatPointList(graph_qe.GraphType, graph_qe.GeometryInfo, 100, null);
-            }
-            if (graph_qp != null)
-            {
-                qp_pt_list = PhartPerformCurveHelper.GetFeatPointList(graph_qp.GraphType, graph_qp.GeometryInfo, 100, null);
-            }
-
-            return true;
+            var vmo = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.GetByID(phart.DiagramID);
+            this.pumpChartViewCtrl1.SetBindingData(vmo, _pumpVmo.RatedSpeed);
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3