From 82dfff29bca77a1e11459fb7a69f729a09f4345c Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期五, 18 十月 2024 15:05:05 +0800
Subject: [PATCH] 计算优化,标注优化

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs |  350 +++++++++++++++++++++++----------------------------------
 1 files changed, 141 insertions(+), 209 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
index b1130a6..64fb679 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -1,4 +1,6 @@
 锘縢lobal using Yw.EPAnet;
+using DevExpress.Mvvm.Native;
+using DevExpress.Utils.DirectXPaint;
 using Yw.WinFrmUI.Bimface;
 using Yw.WinFrmUI.Hydro;
 
@@ -12,6 +14,7 @@
             this.PageTitle.Caption = "姘村姏妯℃嫙";
             this.PageTitle.HeaderSvgImage = this.svgImg32[0];
             this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+            this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
         }
 
         private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰
@@ -70,10 +73,6 @@
             this.tabPageQ3d.Controls.Clear();
             this.tabPageQ3d.Controls.Add(q3dCtrl);
             q3dCtrl.InitialData(() => _hydroInfo);
-            var propertyCtrl = GetPropertyCtrl();
-            this.controlContainerRight.Controls.Clear();
-            this.controlContainerRight.Controls.Add(propertyCtrl);
-            propertyCtrl.InitialData(() => _hydroInfo);
         }
 
         #region Bimface
@@ -208,6 +207,9 @@
 
         #region 灞炴�ч潰鏉�
 
+        //灞炴�ф帶浠�
+        private XhsProjectSimulationPropertyCtrl _propertyCtrl = null;
+
         //鑾峰彇灞炴�ф帶浠�
         private XhsProjectSimulationPropertyCtrl GetPropertyCtrl()
         {
@@ -215,13 +217,80 @@
             {
                 _propertyCtrl = new XhsProjectSimulationPropertyCtrl();
                 _propertyCtrl.Dock = DockStyle.Fill;
+                _propertyCtrl.InitialData(() => _hydroInfo);
             }
             return _propertyCtrl;
         }
 
-        private XhsProjectSimulationPropertyCtrl _propertyCtrl = null;//灞炴�ф帶浠�
+        //鏄剧ず灞炴�ч潰鏉�
+        private void ShowPropertyCtrl()
+        {
+            var propertyCtrl = GetPropertyCtrl();
+            this.controlContainerRight.Controls.Clear();
+            this.controlContainerRight.Controls.Add(propertyCtrl);
+            this.docPnlRight.Text = "灞炴��";
+            this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
+            this.docPnlRight.Width = 270;
+        }
 
-        #endregion 灞炴�ч潰鏉�
+        //灞炴�ч潰鏉挎寜閽�
+        private void barBtnProperty_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            ShowPropertyCtrl();
+        }
+
+        //鏄剧ず灞炴��
+        private void ShowProperty()
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            if (_parter == null)
+            {
+                _propertyCtrl?.SelectParter(null);
+                return;
+            }
+
+            _propertyCtrl?.SelectParter(_parter.Code);
+            if (_calcuResult != null)
+            {
+                if (_calcuResult.Succeed)
+                {
+                    var allCalcuParterList = _calcuResult.GetParterList();
+                    var calcuParter = allCalcuParterList.Find(x => x.Id == _parter.Code);
+                    if (calcuParter != null)
+                    {
+                        IHydroCalcuResult calcuProperty = null;
+                        if (calcuParter is Yw.EPAnet.CalcuNode calcuNode)
+                        {
+                            var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeResult();
+                            calcuNodeProperty.Code = _parter.Code;
+                            calcuNodeProperty.CalcuPress = calcuNode.Press;
+                            calcuNodeProperty.CalcuDemand = calcuNode.Demand;
+                            calcuNodeProperty.CalcuHead = calcuNode.Head;
+                            calcuProperty = calcuNodeProperty;
+                        }
+                        else if (calcuParter is Yw.EPAnet.CalcuLink calcuLink)
+                        {
+                            var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkResult();
+                            calcuLinkProperty.Code = _parter.Code;
+                            calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss;
+                            calcuLinkProperty.CalcuFlow = calcuLink.Flow;
+                            calcuLinkProperty.CalcuVelocity = calcuLink.Velocity;
+                            calcuProperty = calcuLinkProperty;
+                        }
+
+                        if (calcuProperty != null)
+                        {
+                            _propertyCtrl?.UpdateCalcuProperty(calcuProperty);
+                        }
+                    }
+                }
+            }
+        }
+
+        #endregion
 
         #region 鑷姩鍖归厤
 
@@ -372,14 +441,17 @@
 
         #region 姘村姏鏍¢獙
 
-        //鑾峰彇鏍¢獙缁撴灉鎺т欢
-        private XhsProjectSimulationHydroCheckResultCtrl GetCheckResultCtrl()
+        //鏍¢獙鎺т欢
+        private XhsProjectSimulationHydroCheckResultCtrl _checkCtrl = null;
+
+        //鑾峰彇鏍¢獙鎺т欢
+        private XhsProjectSimulationHydroCheckResultCtrl GetCheckCtrl()
         {
-            if (_checkResultCtrl == null)
+            if (_checkCtrl == null)
             {
-                _checkResultCtrl = new XhsProjectSimulationHydroCheckResultCtrl();
-                _checkResultCtrl.Dock = DockStyle.Fill;
-                _checkResultCtrl.HydroClickEvent += async (code) =>
+                _checkCtrl = new XhsProjectSimulationHydroCheckResultCtrl();
+                _checkCtrl.Dock = DockStyle.Fill;
+                _checkCtrl.HydroClickEvent += async (code) =>
                 {
                     if (_hydroInfo == null)
                     {
@@ -404,11 +476,24 @@
                     SetBimfaceLinkColor();
                 };
             }
-            return _checkResultCtrl;
+            return _checkCtrl;
         }
 
-        //鏍¢獙缁撴灉鎺т欢
-        private XhsProjectSimulationHydroCheckResultCtrl _checkResultCtrl = null;
+        //鏄剧ず鏍¢獙鎺т欢
+        private void ShowCheckCtrl()
+        {
+            if (_checkResult == null)
+            {
+                return;
+            }
+            var checkCtrl = GetCheckCtrl();
+            checkCtrl.SetBindingData(_checkResult);
+            this.controlContainerBottom.Controls.Clear();
+            this.controlContainerBottom.Controls.Add(checkCtrl);
+            this.docPnlBottom.Text = "鏍¢獙缁撴灉";
+            this.docPnlBottom.Height = 350;
+            this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
+        }
 
         //姘村姏楠岃瘉
         private void barBtnHydroCheck_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
@@ -418,13 +503,7 @@
                 return;
             }
             _checkResult = _hydroInfo.Check();
-            this.controlContainerBottom.Controls.Clear();
-            var checkResultCtrl = GetCheckResultCtrl();
-            checkResultCtrl.SetBindingData(_checkResult);
-            this.controlContainerBottom.Controls.Add(checkResultCtrl);
-            this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
-            this.docPnlBottom.Text = "鏍¢獙缁撴灉";
-            this.docPnlBottom.Height = 350;
+            ShowCheckCtrl();
         }
 
         #endregion 姘村姏鏍¢獙
@@ -518,62 +597,6 @@
 
         #endregion INP瀵煎嚭
 
-        #region 涓氬姟鏂规硶
-
-        //鏄剧ず灞炴��
-        private void ShowProperty()
-        {
-            if (_hydroInfo == null)
-            {
-                return;
-            }
-
-            if (_parter == null)
-            {
-                _propertyCtrl?.SelectParter(null);
-                return;
-            }
-
-            _propertyCtrl?.SelectParter(_parter.Code);
-            if (_calcuResult != null)
-            {
-                if (_calcuResult.Succeed)
-                {
-                    var allCalcuParterList = _calcuResult.GetParterList();
-                    var calcuParter = allCalcuParterList.Find(x => x.Id == _parter.Code);
-                    if (calcuParter != null)
-                    {
-                        IHydroCalcuResult calcuProperty = null;
-                        if (calcuParter is Yw.EPAnet.CalcuNode calcuNode)
-                        {
-                            var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeResult();
-                            calcuNodeProperty.Code = _parter.Code;
-                            calcuNodeProperty.CalcuPress = calcuNode.Press;
-                            calcuNodeProperty.CalcuDemand = calcuNode.Demand;
-                            calcuNodeProperty.CalcuHead = calcuNode.Head;
-                            calcuProperty = calcuNodeProperty;
-                        }
-                        else if (calcuParter is Yw.EPAnet.CalcuLink calcuLink)
-                        {
-                            var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkResult();
-                            calcuLinkProperty.Code = _parter.Code;
-                            calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss;
-                            calcuLinkProperty.CalcuFlow = calcuLink.Flow;
-                            calcuLinkProperty.CalcuVelocity = calcuLink.Velocity;
-                            calcuProperty = calcuLinkProperty;
-                        }
-
-                        if (calcuProperty != null)
-                        {
-                            _propertyCtrl?.UpdateCalcuProperty(calcuProperty);
-                        }
-                    }
-                }
-            }
-        }
-
-        #endregion 涓氬姟鏂规硶
-
         #region 閰嶇疆
 
         //鏄剧ずRadialMenu
@@ -653,163 +676,59 @@
 
         #region 姘村姏璁$畻
 
+        //璁$畻鎺т欢
+        private SetHydroCalcuPrefixCtrl _calcuCtrl = null;
+
         //鑾峰彇璁$畻鎺т欢
-        private XhsProjectSimulationCalcuCtrl GetCalcuCtrl()
+        private SetHydroCalcuPrefixCtrl GetCalcuCtrl()
         {
             if (_calcuCtrl == null)
             {
-                _calcuCtrl = new XhsProjectSimulationCalcuCtrl();
+                _calcuCtrl = new SetHydroCalcuPrefixCtrl();
                 _calcuCtrl.Dock = DockStyle.Fill;
-                _calcuCtrl.CancelEvent += () =>
-                    {
-                        this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
-                    };
-                _calcuCtrl.OkEvent += async () =>
-                    {
-                        if (_hydroInfo == null)
-                        {
-                            return;
-                        }
-                        _checkResult = _hydroInfo.Check();
-                        if (!_checkResult.Succeed)
-                        {
-                            this.controlContainerBottom.Controls.Clear();
-                            var checkResultCtrl = GetCheckResultCtrl();
-                            checkResultCtrl.SetBindingData(_checkResult);
-                            this.controlContainerBottom.Controls.Add(checkResultCtrl);
-                            TipFormHelper.ShowWarn("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯");
-                            return;
-                        }
-
-                        var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo);
-                        _calcuResult = netWork.Calcu();
-                        if (_calcuResult.Succeed)
-                        {
-                            this.controlContainerBottom.Controls.Clear();
-                            var parterListCtrl = GetParterListCtrl();
-                            var calcuResultList = new List<IHydroCalcuResult>();
-                            _calcuResult.NodeList?.ForEach(x =>
-                            {
-                                calcuResultList.Add(new HydroCalcuNodeResult()
-                                {
-                                    Code = x.Id,
-                                    CalcuPress = x.Press,
-                                    CalcuHead = x.Head,
-                                    CalcuDemand = x.Demand,
-                                });
-                            });
-                            _calcuResult.LinkList?.ForEach(x =>
-                            {
-                                calcuResultList.Add(new HydroCalcuLinkResult()
-                                {
-                                    Code = x.Id,
-                                    CalcuFlow = x.Flow,
-                                    CalcuVelocity = x.Velocity,
-                                    CalcuHeadLoss = x.Headloss
-                                });
-                            });
-                            parterListCtrl.SetBindingData(_hydroInfo, calcuResultList);
-                            parterListCtrl.SetCalcuView();
-                            this.controlContainerBottom.Controls.Add(parterListCtrl);
-                            this.docPnlBottom.Text = "璁$畻缁撴灉";
-                            ShowProperty();
-                            await _bimfaceCtrl?.ShowCalcuCustomLabels(_calcuResult);
-                            TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�");
-                        }
-                        else
-                        {
-                            _calcuCtrl.SetBindingData(_calcuResult.FailedList);
-                            this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
-                            this.docPnlBottom.Text = "璁$畻澶辫触鍘熷洜";
-                            this.docPnlBottom.Height = 350;
-                            TipFormHelper.ShowError("璁$畻澶辫触");
-                        }
-                    };
-            }
-            return _calcuCtrl;
-        }
-
-        private XhsProjectSimulationCalcuCtrl _calcuCtrl = null;//璁$畻鎺т欢
-        private SetHydroCalcuPrefixCtrl _calcuPrefixCtrl = null;
-
-        private SetHydroCalcuPrefixCtrl GetCalcuPrefixCtrl()
-        {
-            if (_calcuPrefixCtrl == null)
-            {
-                _calcuPrefixCtrl = new SetHydroCalcuPrefixCtrl();
-                _calcuPrefixCtrl.Dock = DockStyle.Fill;
-                _calcuPrefixCtrl.InitialData(() => _hydroInfo);
-                _calcuPrefixCtrl.HydroViewEvent += async (parter) =>
-                {
+                _calcuCtrl.InitialData(() => _hydroInfo);
+                _calcuCtrl.HydroViewEvent += async (parter) =>
+                {//姘村姏鏌ョ湅浜嬩欢
                     if (parter == null)
                     {
                         return;
                     }
-                    await _bimfaceCtrl.ZoomAndSelectComponents(new List<string>() { parter.Code });
+                    await _bimfaceCtrl?.ZoomAndSelectComponents(new List<string>() { parter.Code });
                 };
-                _calcuPrefixCtrl.HydroCalcuEvent += async (hydroInfo) =>
-                {
-                    if (hydroInfo == null)
+                _calcuCtrl.HydroCalcuEvent += async () =>
+                {//姘村姏璁$畻浜嬩欢
+                    if (_hydroInfo == null)
                     {
                         return;
                     }
-                    _checkResult = hydroInfo.Check();
+
+                    //鏍¢獙
+                    _checkResult = _hydroInfo.Check();
                     if (!_checkResult.Succeed)
                     {
-                        this.controlContainerBottom.Controls.Clear();
-                        var checkResultCtrl = GetCheckResultCtrl();
-                        checkResultCtrl.SetBindingData(_checkResult);
-                        this.controlContainerBottom.Controls.Add(checkResultCtrl);
+                        ShowCheckCtrl();
                         TipFormHelper.ShowWarn("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯");
                         return;
                     }
 
-                    var netWork = Yw.Hydro.ParseHelper.ToNetwork(hydroInfo);
+                    var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo);
                     _calcuResult = netWork.Calcu();
                     if (_calcuResult.Succeed)
                     {
-                        this.controlContainerBottom.Controls.Clear();
-                        var parterListCtrl = GetParterListCtrl();
-                        var calcuResultList = new List<IHydroCalcuResult>();
-                        _calcuResult.NodeList?.ForEach(x =>
-                        {
-                            calcuResultList.Add(new HydroCalcuNodeResult()
-                            {
-                                Code = x.Id,
-                                CalcuPress = x.Press,
-                                CalcuHead = x.Head,
-                                CalcuDemand = x.Demand,
-                            });
-                        });
-                        _calcuResult.LinkList?.ForEach(x =>
-                        {
-                            calcuResultList.Add(new HydroCalcuLinkResult()
-                            {
-                                Code = x.Id,
-                                CalcuFlow = x.Flow,
-                                CalcuVelocity = x.Velocity,
-                                CalcuHeadLoss = x.Headloss
-                            });
-                        });
-                        parterListCtrl.SetBindingData(_hydroInfo, calcuResultList);
-                        parterListCtrl.SetCalcuView();
-                        this.controlContainerBottom.Controls.Add(parterListCtrl);
-                        this.docPnlBottom.Text = "璁$畻缁撴灉";
-                        ShowProperty();
-                        await _bimfaceCtrl?.ShowCalcuCustomLabels(_calcuResult);
+                        this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
+                        await _bimfaceCtrl?.SetLogicCalcuCustomLabels(_calcuResult);
                         TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�");
                     }
                     else
                     {
-                        _calcuCtrl.SetBindingData(_calcuResult.FailedList);
-                        this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
-                        this.docPnlBottom.Text = "璁$畻澶辫触鍘熷洜";
-                        this.docPnlBottom.Height = 350;
+                        _calcuCtrl.SetFailedList(_calcuResult.FailedList);
+                        this.docPnlRight.Text = "澶辫触鍘熷洜";
+                        this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
                         TipFormHelper.ShowError("璁$畻澶辫触");
                     }
                 };
             }
-            return _calcuPrefixCtrl;
+            return _calcuCtrl;
         }
 
         //姘村姏璁$畻
@@ -819,7 +738,7 @@
             {
                 return;
             }
-            var calcuPrefixCtrl = GetCalcuPrefixCtrl();
+            var calcuPrefixCtrl = GetCalcuCtrl();
             calcuPrefixCtrl.SetBindingData();
             this.controlContainerRight.Controls.Clear();
             this.controlContainerRight.Controls.Add(calcuPrefixCtrl);
@@ -890,8 +809,8 @@
 
         private List<HydroMarkSetViewModel> _allMarkList = null;
 
-        //鏍囨敞
-        private void barBtnMark_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        //璁剧疆鏍囨敞
+        private void barBtnMarkSet_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
             if (_hydroInfo == null)
             {
@@ -956,6 +875,19 @@
             dlg.ShowDialog();
         }
 
-        #endregion 鏍囨敞
+        //鍙栨秷鏍囨敞
+        private async void barBtnMarkCancel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            if (_hydroInfo == null)
+            {
+                return;
+            }
+            await _bimfaceCtrl?.ClearLogicMarkLeadLabels();
+        }
+
+        #endregion
+
+
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3