From 5043208b24f45b3e3c630a596b9e83373096a78a Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期五, 18 十月 2024 12:47:49 +0800
Subject: [PATCH] 优化计算前提,计算逻辑还需要继续优化

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs |   70 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 1 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 d1d3024..b1130a6 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
@@ -739,6 +739,75 @@
                 _calcuPrefixCtrl = new SetHydroCalcuPrefixCtrl();
                 _calcuPrefixCtrl.Dock = DockStyle.Fill;
                 _calcuPrefixCtrl.InitialData(() => _hydroInfo);
+                _calcuPrefixCtrl.HydroViewEvent += async (parter) =>
+                {
+                    if (parter == null)
+                    {
+                        return;
+                    }
+                    await _bimfaceCtrl.ZoomAndSelectComponents(new List<string>() { parter.Code });
+                };
+                _calcuPrefixCtrl.HydroCalcuEvent += async (hydroInfo) =>
+                {
+                    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 _calcuPrefixCtrl;
         }
@@ -757,7 +826,6 @@
             this.docPnlRight.Text = "鍓嶆彁鏉′欢";
             this.docPnlRight.Width = SetHydroCalcuPrefixCtrl.ControlMinWidth;
             this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
-
         }
 
         #endregion

--
Gitblit v1.9.3