From 05d57af48f51d2ac8292bc3faaa01ca753763790 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期一, 14 十月 2024 14:52:19 +0800 Subject: [PATCH] 增加泵型号查看界面 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 242 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 189 insertions(+), 53 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 ebb2761..6daccb3 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 @@ -15,19 +15,25 @@ InitializeComponent(); this.PageTitle.Caption = "姘村姏妯℃嫙"; this.PageTitle.HeaderSvgImage = this.svgImg32[0]; + + this.xhsProjectSimulationSearchCtrl1.ApplySearchEvent += XhsProjectSimulationSearchCtrl1_ApplySearchEvent; + this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; } + + private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰 private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//椤圭洰绔� private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 private Yw.Model.HydroParterInfo _parter = null; - private Yw.EPAnet.CheckResult _checkResult = null; + private Yw.WinFrmUI.HydroCheckResult _checkResult = null; private Yw.EPAnet.CalcuResult _calcuResult = null; /// <summary> @@ -72,39 +78,11 @@ this.PageTitle.Caption = $"{_project.Name}\r\n姘村姏妯℃嫙"; await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite, () => _hydroInfo); this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo); - this.xhsProjectSimulationL3dCtrl1.SetBindingData(_hydroInfo); - this.xhsProjectSimulationPropertyCtrl1.SetBindingData(() => _hydroInfo); + this.xhsProjectSimulationPropertyCtrl1.InitialData(() => _hydroInfo); + this.xhsProjectSimulationSearchCtrl1.InitialData(() => _hydroInfo); } - //姘村姏璁$畻 - private async void barBtnHydroCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - if (_hydroInfo == null) - { - return; - } - this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; - this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; - this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; - this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; - - var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); - _calcuResult = netWork.Calcu(); - if (_calcuResult.Succeed) - { - ShowProperty(); - TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); - } - else - { - this.xhsProjectSimulationHydroCalcuFailedCtrl1.SetBindingData(_calcuResult.FailedList); - this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlHydroCalcu.Height = 350; - } - await this.xhsProjectSimulationBimfaceCtrl1.ShowCalcuCustomLabels(_calcuResult); - } - - + #region INP瀵煎嚭 //瀵煎嚭姘村姏INP鏂囦欢 private void barBtnHydroExportInp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) @@ -124,7 +102,7 @@ TipFormHelper.ShowSucceed("瀵煎嚭鎴愬姛"); } - + #endregion #region Bimface @@ -162,12 +140,45 @@ { return; } - List<string> elementIds = null; + var elementIds = new List<string>(); if (_parter != null) { if (_parter is Yw.Model.HydroLinkInfo linker) { - elementIds = new List<string>() { linker.StartCode, linker.EndCode }; + var allParterList = _hydroInfo.GetAllParters(); + var allLinkerList = _hydroInfo.GetAllLinks(); + var startParter = allParterList?.Find(x => x.Code == linker.StartCode); + if (startParter != null) + { + if (startParter.GetType() == typeof(Yw.Model.HydroJunctionInfo)) + { + var startLinkList = allLinkerList?.Where(x => x.StartCode == startParter.Code || x.EndCode == startParter.Code).ToList(); + if (startLinkList != null) + { + elementIds.AddRange(startLinkList.Select(x => x.Code).Where(x => x != _parter.Code)); + } + } + else + { + elementIds.Add(linker.StartCode); + } + } + var endParter = allParterList?.Find(x => x.Code == linker.EndCode); + if (endParter != null) + { + if (endParter.GetType() == typeof(Yw.Model.HydroJunctionInfo)) + { + var endLinkList = allLinkerList?.Where(x => x.StartCode == endParter.Code || x.EndCode == endParter.Code).ToList(); + if (endLinkList != null) + { + elementIds.AddRange(endLinkList.Select(x => x.Code).Where(x => x != _parter.Code)); + } + } + else + { + elementIds.Add(linker.EndCode); + } + } } } await this.xhsProjectSimulationBimfaceCtrl1.SetLinkComponentsColor(elementIds); @@ -195,6 +206,7 @@ this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; var input = AssetsMatchingParasHelper.Create(_hydroInfo); this.xhsProjectSimulationMatchingListCtrl1.SetBindingData(input); @@ -239,6 +251,7 @@ this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.xhsProjectSimulationUnMatchingListCtrl1.SetBindingData(_hydroInfo); this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; @@ -311,29 +324,35 @@ this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; - var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); - _checkResult = netWork.Check(); - if (_checkResult.Succeed) - { - TipFormHelper.ShowSucceed("鏍¢獙閫氳繃锛�"); - return; - } - this.xhsProjectSimulationHydroCheckFailedCtrl1.SetBindingData(_checkResult.FailedList); + _checkResult = _hydroInfo.Check(); + this.xhsProjectSimulationHydroCheckResultCtrl1.SetBindingData(_checkResult); this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; this.docPnlHydroCheck.Height = 350; } //姘村姏鏍¢獙鐐瑰嚮 - private async void xhsProjectSimulationHydroCheckFailedCtrl1_HydroClickEvent(string code) + private async void xhsProjectSimulationHydroCheckResultCtrl1_HydroClickEvent(string code) { if (_hydroInfo == null) { return; } - var allParterList = _hydroInfo.GetAllParters(); - _parter = allParterList.Find(x => x.Code == code); - var elementIds = new List<string>() { _parter.Code }; + var elementIds = new List<string>(); + if (string.IsNullOrEmpty(code)) + { + _parter = null; + } + else + { + var allParterList = _hydroInfo.GetAllParters(); + _parter = allParterList.Find(x => x.Code == code); + if (_parter != null) + { + elementIds.Add(_parter.Code); + } + } await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); ShowProperty(); SetBimfaceLinkColor(); @@ -376,6 +395,7 @@ this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; this.hydroParterListCtrl1.SetBindingData(_hydroInfo); this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; @@ -417,11 +437,11 @@ var calcuParter = allCalcuParterList.Find(x => x.Id == _parter.Code); if (calcuParter != null) { - IHydroCalcuProperty calcuProperty = null; + IHydroCalcuResult calcuProperty = null; if (calcuParter is Yw.EPAnet.CalcuNode calcuNode) { - var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeProperty(); - calcuNodeProperty.ID = _parter.ID; + var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeResult(); + calcuNodeProperty.Code = _parter.Code; calcuNodeProperty.CalcuPress = calcuNode.Press; calcuNodeProperty.CalcuDemand = calcuNode.Demand; calcuNodeProperty.CalcuHead = calcuNode.Head; @@ -429,8 +449,8 @@ } else if (calcuParter is Yw.EPAnet.CalcuLink calcuLink) { - var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkProperty(); - calcuLinkProperty.ID = _parter.ID; + var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkResult(); + calcuLinkProperty.Code = _parter.Code; calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss; calcuLinkProperty.CalcuFlow = calcuLink.Flow; calcuLinkProperty.CalcuVelocity = calcuLink.Velocity; @@ -446,7 +466,7 @@ } } - #endregion 涓氬姟鏂规硶 + #endregion #region 閰嶇疆 @@ -458,7 +478,123 @@ #endregion + #region 鎬ц兘鏇茬嚎 + //鎬ц兘鏇茬嚎 + private void barBtnFeatCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_hydroInfo == null) + { + return; + } + if (_calcuResult == null) + { + return; + } + if (!_calcuResult.Succeed) + { + return; + } + var pumps = _hydroInfo.Pumps; + var vmList = pumps.Select(x => new HStation.WinFrmUI.PhartRelation.Perform2dMultiViewModel() + { + Id = x.Code, + Name = x.Code, + SpeedRatio = x.SpeedRatio ?? 1, + PointsQH = _hydroInfo.Curves?.Find(t => t.Code == x.CurveQH)?.CurveData?.Select(z => new PhartRelation.PerformPoint2dViewModel() { X = z.X, Y = z.Y }).ToList(), + PointsQP = _hydroInfo.Curves?.Find(t => t.Code == x.CurveQP)?.CurveData?.Select(z => new PhartRelation.PerformPoint2dViewModel() { X = z.X, Y = z.Y }).ToList(), + PointsQE = _hydroInfo.Curves?.Find(t => t.Code == x.CurveQE)?.CurveData?.Select(z => new PhartRelation.PerformPoint2dViewModel() { X = z.X, Y = z.Y }).ToList(), + }).ToList(); + var dlg = new HStation.WinFrmUI.PhartRelation.PumpPerform2dMultiViewDlg(); + dlg.SetBindingData(vmList, null, false, true); + dlg.ShowDialog(); + } + + #endregion + + #region 姘村姏璁$畻 + + //姘村姏璁$畻 + private async void barBtnHydroCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_hydroInfo == null) + { + return; + } + + var dlg = new XhsProjectSimulationCalcuPrefixDlg(); + dlg.ShowDialog(); + + this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + + var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); + _calcuResult = netWork.Calcu(); + if (_calcuResult.Succeed) + { + ShowProperty(); + TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); + } + else + { + this.xhsProjectSimulationHydroCalcuFailedCtrl1.SetBindingData(_calcuResult.FailedList); + this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; + this.docPnlHydroCalcu.Height = 350; + } + await this.xhsProjectSimulationBimfaceCtrl1.ShowCalcuCustomLabels(_calcuResult); + } + + #endregion + + #region 鏌ヨ + + //鏌ヨ + private void barBtnSearch_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_hydroInfo == null) + { + return; + } + this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + + this.docPnlSearch.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; + this.docPnlSearch.Height = 350; + } + + //搴旂敤鏌ヨ + private async void XhsProjectSimulationSearchCtrl1_ApplySearchEvent(List<Yw.Model.HydroParterInfo> obj) + { + if (_hydroInfo == null) + { + return; + } + var elementIds = new List<string>(); + if (obj != null && obj.Count > 0) + { + var first = obj.First(); + var allParterList = _hydroInfo.GetAllParters(); + _parter = allParterList.Find(x => x.Code == first.Code); + obj.ForEach(x => elementIds.Add(x.Code)); + } + else + { + _parter = null; + } + await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); + ShowProperty(); + SetBimfaceLinkColor(); + } + + #endregion } -- Gitblit v1.9.3