From 8d4f5bb9c83d42d1e83caccdb23665279f8e7094 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期五, 06 十二月 2024 00:38:00 +0800 Subject: [PATCH] 模拟调试修改 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 1954 ++++++++++++++++++++++++++++------------------------------ 1 files changed, 946 insertions(+), 1,008 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 bea98c7..412c93f 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,31 +1,16 @@ -锘縢lobal using Yw.EPAnet; -using DevExpress.CodeParser; -using DevExpress.Diagram.Core.Native; +锘縰sing DevExpress.Diagram.Core.Native; using DevExpress.Mvvm.Native; -using DevExpress.Office.Utils; -using DevExpress.PivotGrid.QueryMode.TuplesTree; -using DevExpress.Utils.Extensions; -using DevExpress.Xpo.Helpers; -using DevExpress.XtraBars.Ribbon; -using DevExpress.XtraPrinting.Native; -using DevExpress.XtraRichEdit.Layout; -using DevExpress.XtraSpreadsheet.Commands; +using DevExpress.Utils.MVVM; +using DevExpress.XtraMap; using HStation.WinFrmUI.PhartRelation; -using Microsoft.Web.WebView2.Core; -using NetTaste; +using Mapster; using NPOI.SS.Formula.Functions; -using System.Collections.Generic; using System.Diagnostics; -using System.Windows.Media; -using System.Windows.Media.Media3D; -using Yw.DAL.Basic; +using Yw.EPAnet; using Yw.Hydro; using Yw.Model; -using Yw.Pump; using Yw.Vmo; -using Yw.WinFrmUI.Bimface; -using Yw.WinFrmUI.Hydro; -using static DevExpress.Map.OpenGL.OpenGLCheckingHelper; +using Yw.WinFrmUI.Q3d; namespace HStation.WinFrmUI { @@ -40,39 +25,31 @@ RegistBulkSetEvents(); } + /// <summary> + /// 鏂板宸ュ喌浜嬩欢 + /// </summary> + public event Action<HydroWorkingVmo> AppendWorkingEvent; + private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰 private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//椤圭洰绔� private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 - - + private Dictionary<HydroWorkingVmo, bool> _allWorkingCheckedListDict = null;//鎵�鏈夊伐鍐甸�夋嫨鍒楄〃瀛楀吀 /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public async Task SetBindingData + public void SetBindingData ( - HStation.Vmo.XhsProjectVmo project, - HStation.Vmo.XhsProjectSiteVmo projectSite, - Yw.Model.HydroModelInfo hydroInfo + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + Yw.Model.HydroModelInfo hydroInfo, + Dictionary<HydroWorkingVmo, bool> allWorkingCheckedListDict ) { - if (project == null) - { - return; - } _project = project; _projectSite = projectSite; _hydroInfo = hydroInfo; - if (_projectSite == null) - { - _projectSite = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(_project.ID); - } - if (_hydroInfo == null) - { - var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance - .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation); - _hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID); - } + _allWorkingCheckedListDict = allWorkingCheckedListDict; } /// <summary> @@ -81,51 +58,40 @@ public override void InitialDataSource() { base.InitialDataSource(); - if (_project == null) - { - return; - } - this.PageTitle.Caption = $"{_project.Name}\r\n姘村姏妯℃嫙"; ShowBimfaceCtrl(); ShowQ3dCtrl(); ShowPropertyCtrl(); } - private void InitialUI() - { - InitialWorkingList(); - } - - #region BIM鎺т欢 //bimface鎺т欢 - private XhsProjectSimulationBimfaceCtrl _bimfaceCtrl = null; + private SimulationBimfaceCtrl _bimfaceCtrl = null; //鑾峰彇 bimface 鎺т欢 - private async Task<XhsProjectSimulationBimfaceCtrl> GetBimfaceCtrl() + private async Task<SimulationBimfaceCtrl> GetBimfaceCtrl() { + if (_hydroInfo == null) + { + return default; + } if (_bimfaceCtrl == null) { - _bimfaceCtrl = new XhsProjectSimulationBimfaceCtrl(); + var overlay = this.ShowOverlay(); + _bimfaceCtrl = new SimulationBimfaceCtrl(); _bimfaceCtrl.Dock = DockStyle.Fill; await _bimfaceCtrl.InitialData(_project, _projectSite); _bimfaceCtrl.LoadCompletedEvent += () => {//view鍔犺浇瀹屾垚浜嬩欢 - if (_hydroInfo == null) - { - return; - } - InitialUI(); + overlay.Close(); + this.barCkDecorator.Checked = false; + this.barCkGrading.Checked = true; }; - _bimfaceCtrl.HydroMouseLeftClickEvent += (obj) => + _bimfaceCtrl.HydroMouseLeftClickEvent += (code) => {//榧犳爣宸﹂敭鐐瑰嚮浜嬩欢 - if (_hydroInfo == null) - { - return; - } - //_selectedVisual = obj; - //ShowSelectedProperty(); + var visualListHelper = GetVisualListHelper(); + var visual = visualListHelper.GetVisual(code); + SelectVisual(visual, eVisualSource.Bimface); }; } return _bimfaceCtrl; @@ -139,11 +105,6 @@ this.tabPageBimface.Controls.Add(bimfaceCtrl); } - private void SelectBimfaceParter() - { - - } - #endregion #region Q3d鎺т欢 @@ -154,20 +115,20 @@ //鑾峰彇 Q3d 鎺т欢 private XhsProjectSimulationQ3dCtrl GetQ3dCtrl() { + if (_hydroInfo == null) + { + return default; + } if (_q3dCtrl == null) { _q3dCtrl = new XhsProjectSimulationQ3dCtrl(); _q3dCtrl.Dock = DockStyle.Fill; _q3dCtrl.InitialData(() => _hydroInfo); - _q3dCtrl.SelectedPartersChangedEvent += (obj) => + _q3dCtrl.SelectedPartersChangedEvent += (codes) => { - if (_hydroInfo == null) - { - return; - } - var allParterList = _hydroInfo.GetAllVisuals(); - _visual = allParterList?.Find(x => x.Code == obj?.FirstOrDefault()); - //ShowSelectedProperty(); + var visualListHelper = GetVisualListHelper(); + var visuals = visualListHelper.GetVisualList(codes); + SelectVisual(visuals?.LastOrDefault(), eVisualSource.Q3d); }; } return _q3dCtrl; @@ -179,6 +140,258 @@ var q3dCtrl = GetQ3dCtrl(); this.tabPageQ3d.Controls.Clear(); this.tabPageQ3d.Controls.Add(q3dCtrl); + } + + #endregion + + #region 灞炴�ф帶浠� + + //灞炴�ф帶浠� + private SimulationPropertyCtrl _propertyCtrl = null; + + //鑾峰彇灞炴�ф帶浠� + private SimulationPropertyCtrl GetPropertyCtrl() + { + if (_hydroInfo == null) + { + return default; + } + if (_propertyCtrl == null) + { + _propertyCtrl = new SimulationPropertyCtrl(); + _propertyCtrl.Dock = DockStyle.Fill; + _propertyCtrl.HydroViewEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Property); + }; + _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) => + { //寮鸿皟杩炴帴鑺傜偣 + if (link == null) + { + return; + } + var visualListHelper = GetVisualListHelper(); + var linkNode = visualListHelper.GetVisual(linkNodeCode); + if (linkNode == null) + { + return; + } + var blinkCodes = new List<string>(); + if (linkNode.GetType() == typeof(HydroJunctionInfo)) + { + var allLinkList = visualListHelper.GetLinkList(); + if (allLinkList == null || allLinkList.Count < 1) + { + return; + } + var linkList = allLinkList.Where(x => (x.StartCode == linkNodeCode || x.EndCode == linkNodeCode) && x.Code != linkNodeCode).ToList(); + if (linkList == null || linkList.Count < 1) + { + return; + } + blinkCodes.AddRange(linkList.Select(x => x.Code)); + } + else + { + blinkCodes.Add(linkNodeCode); + } + + await _bimfaceCtrl?.ClearBlinkComponents(); + await _bimfaceCtrl?.SetBlinkComponents(blinkCodes); + await Task.Delay(5000); + await _bimfaceCtrl?.ClearBlinkComponents(); + }; + _propertyCtrl.PropertyValueChangedEvent += async (visual) => + { + if (visual == null) + { + return; + } + UpdateVisualListCtrl(); + var gradingHelper = await GetGradingHelper(); + gradingHelper.Set(); + }; + _propertyCtrl.MarkPropertyValueChangedEvent += async (visual) => + { + //鏍囨敞灞炴�у彂鐢熸敼鍙� + //鍒ゆ柇褰撳墠鏄惁鏈夋爣娉ㄥ睍绀猴紝鑻ユ湁鍒欐洿鏂版爣娉紝鏈�濂芥槸鏇存柊鍗曚釜鏍囨敞 + var markHelper = await GetMarkHelper(); + markHelper.Set(visual); + }; + _propertyCtrl.GradingPropertyValueChangedEvent += async (visual) => + { + //鍒嗙骇灞炴�у彂鐢熸敼鍙� + //鍒ゆ柇褰撳墠鏄惁鏈夊垎绾у睍绀猴紝鑻ユ湁鍒欐洿鏂板垎绾э紝鏈�濂芥槸鏇存柊鍗曚釜鍒嗙骇 + var gradingHelper = await GetGradingHelper(); + gradingHelper.Set(visual); + }; + _propertyCtrl.FlowEffectPropertyValueChangedEvent += async (visual) => + { + //娴佸悜灞炴�у彂鐢熸敼鍙� + //鍒ゆ柇娴佸悜鏄惁鍔犺浇锛屽鏋滃姞杞藉垯鏇存柊娴佸悜锛屾渶濂芥槸鏇存柊鍗曚釜娴佸悜 + var flowEffectHelper = await GetFlowEffectHelper(); + flowEffectHelper.Set(visual); + }; + + } + return _propertyCtrl; + } + + //灞炴�ф帶浠舵槸鍚﹀彲瑙� + private bool IsPropertyCtrlVisible + { + get + { + if (this.docPnlRight.Visibility == DevExpress.XtraBars.Docking.DockVisibility.Visible) + { + if (this.controlContainerRight.Controls.Count > 0) + { + if (this.controlContainerRight.Controls[0] is SimulationPropertyCtrl) + { + return true; + } + } + } + return false; + } + } + + //鏄剧ず灞炴�ф帶浠� + private void ShowPropertyCtrl() + { + if (IsPropertyCtrlVisible) + { + return; + } + var propertyCtrl = GetPropertyCtrl(); + this.controlContainerRight.Controls.Clear(); + this.controlContainerRight.Controls.Add(propertyCtrl); + this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; + this.docPnlRight.Text = "灞炴��"; + this.docPnlRight.Width = 300; + } + + //璁剧疆灞炴�ф帶浠� + private void SetPropertyCtrl(HydroVisualInfo visual) + { + ShowPropertyCtrl(); + var visualVmListHelper = GetVisualVmListHelper(); + var vm = visualVmListHelper.GetVisual(visual); + _propertyCtrl.SelectedObject = vm; + } + + //鏇存柊灞炴�ф帶浠� + private void UpdatePropertyCtrl() + { + _propertyCtrl?.UpdateRows(); + } + + #endregion + + #region 閫夋嫨鏋勪欢 + + //鍙鏉ユ簮 + protected enum eVisualSource + { + None, + Bimface, + Q3d, + Property, + List, + Set, + Search, + Monitor, + Check, + Calcu, + Warning, + } + + //閫夋嫨鏋勪欢 + private Yw.Model.HydroVisualInfo _visual = null; + + //閫夋嫨鏋勪欢 + private void SelectVisual(HydroVisualInfo visual, eVisualSource source) + { + _visual = visual; + switch (source) + { + case eVisualSource.None: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Bimface: + { + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Q3d: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Property: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + } + break; + case eVisualSource.List: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Set: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Search: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Monitor: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Check: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Calcu: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + case eVisualSource.Warning: + { + _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + this.barBtnSetMonitor.Enabled = visual != null; + SetPropertyCtrl(visual); + } + break; + default: break; + } } #endregion @@ -209,7 +422,7 @@ private SimulationVisualVmListHelper _visualVmListHelper = null; //鑾峰彇鍙瑙嗗浘鍒楄〃杈呭姪绫� - private async Task<SimulationVisualVmListHelper> GetVisualVmListHelper() + private SimulationVisualVmListHelper GetVisualVmListHelper() { if (_hydroInfo == null) { @@ -218,12 +431,17 @@ if (_visualVmListHelper == null) { var visualListHelper = GetVisualListHelper(); - _visualVmListHelper = new SimulationVisualVmListHelper(visualListHelper); - var workingTupleHelper = GetWorkingTupleHelper(); - var calcuResult = await workingTupleHelper.GetCalcuResult(_working); - _visualVmListHelper.InitialData(_hydroInfo, calcuResult); + var calcuResultHelper = GetCalcuResultHelper(); + _visualVmListHelper = new SimulationVisualVmListHelper(visualListHelper, calcuResultHelper); } return _visualVmListHelper; + } + + //鑾峰彇鍙瑙嗗浘鍒楄〃 + private List<HydroVisualViewModel> GetVisualViewModelList() + { + var helper = GetVisualVmListHelper(); + return helper.GetVisualList(); } #endregion @@ -242,11 +460,11 @@ _visualListCtrl.Dock = DockStyle.Fill; _visualListCtrl.HydroClickInfoEvent += (visual) => { - + SelectVisual(visual, eVisualSource.List); }; _visualListCtrl.HydroChangedInfoEvent += (visualList) => { - + SelectVisual(_visual, eVisualSource.List); }; } return _visualListCtrl; @@ -272,7 +490,7 @@ } //鏄剧ず鏋勪欢鏄庣粏鎺т欢 - private async void ShowVisualListCtrl() + private void ShowVisualListCtrl() { if (_hydroInfo == null) { @@ -287,10 +505,10 @@ this.docPnlBottom.Text = "鏋勪欢鏄庣粏"; this.docPnlBottom.Height = 350; } - var visualVmListHelper = await GetVisualVmListHelper(); + var visualVmListHelper = GetVisualVmListHelper(); var allVisualVmList = visualVmListHelper.GetVisualList(); visualListCtrl.SetBindingData(allVisualVmList); - var calcuResult = await GetCalcuResult(); + var calcuResult = GetCalcuResult(); if (calcuResult != null && calcuResult.Succeed) { visualListCtrl.SetCalcuView(); @@ -309,6 +527,15 @@ return; } _visualListCtrl?.UpdateBindingData(); + var calcuResult = GetCalcuResult(); + if (calcuResult != null && calcuResult.Succeed) + { + _visualListCtrl.SetCalcuView(); + } + else + { + _visualListCtrl.SetNormalView(); + } } //鏋勪欢鏄庣粏 @@ -367,353 +594,6 @@ } #endregion - - #endregion - - #region 閫夋嫨鏋勪欢 - - //鍙鏉ユ簮 - protected enum eVisualSource - { - None, - Bimface, - Q3d, - Check, - Property, - Calcu, - Monitor, - Warning, - Search, - } - - //閫夋嫨鏋勪欢 - private Yw.Model.HydroVisualInfo _visual = null; - - //閫夋嫨鏋勪欢 - private void SelectVisual(HydroVisualInfo visual, eVisualSource source) - { - if (visual == null) - { - switch (source) - { - case eVisualSource.None: - { - _bimfaceCtrl?.ZoomAndSelectComponent(null); - this.barBtnSetMonitor.Enabled = false; - ClearPropertyCtrl(); - } - break; - case eVisualSource.Bimface: - { - this.barBtnSetMonitor.Enabled = false; - ClearPropertyCtrl(); - } - break; - case eVisualSource.Check: - { - _bimfaceCtrl?.ZoomAndSelectComponent(null); - this.barBtnSetMonitor.Enabled = false; - ClearPropertyCtrl(); - } - break; - case eVisualSource.Property: - { - _bimfaceCtrl?.ZoomAndSelectComponent(null); - this.barBtnSetMonitor.Enabled = false; - } - break; - case eVisualSource.Calcu: - { - _bimfaceCtrl?.ZoomAndSelectComponent(null); - this.barBtnSetMonitor.Enabled = false; - ClearPropertyCtrl(); - } - break; - default: break; - } - _visual = null; - return; - } - if (_visual == null) - { - - _visual = visual; - return; - } - if (_visual.Code == visual.Code) - { - UpdatePropertyCtrl(); - return; - } - _visual = visual; - _bimfaceCtrl?.ZoomAndSelectComponent(visual.Code); - this.barBtnSetMonitor.Enabled = true; - SetPropertyCtrl(visual); - } - - #endregion - - #region 灞炴�ф帶浠� - - //灞炴�ф帶浠� - private XhsProjectSimulationPropertyCtrl _propertyCtrl = null; - - //鑾峰彇灞炴�ф帶浠� - private XhsProjectSimulationPropertyCtrl GetPropertyCtrl() - { - if (_hydroInfo == null) - { - return default; - } - if (_propertyCtrl == null) - { - _propertyCtrl = new XhsProjectSimulationPropertyCtrl(); - _propertyCtrl.Dock = DockStyle.Fill; - _propertyCtrl.HydroViewEvent += (visual) => - { - if (visual == null) - { - return; - } - _bimfaceCtrl?.ZoomToComponent(visual.Code); - }; - _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) => - { //寮鸿皟杩炴帴鑺傜偣 - if (link == null) - { - return; - } - var visualListHelper = GetVisualListHelper(); - var linkNode = visualListHelper.GetVisual(linkNodeCode); - if (linkNode == null) - { - return; - } - var blinkCodes = new List<string>(); - if (linkNode.GetType() == typeof(HydroJunctionInfo)) - { - var allLinkList = visualListHelper.GetLinkList(); - if (allLinkList == null || allLinkList.Count < 1) - { - return; - } - var linkList = allLinkList.Where(x => (x.StartCode == linkNodeCode || x.EndCode == linkNodeCode) && x.Code != linkNodeCode).ToList(); - if (linkList == null || linkList.Count < 1) - { - return; - } - blinkCodes.AddRange(linkList.Select(x => x.Code)); - } - else - { - blinkCodes.Add(linkNodeCode); - } - - await _bimfaceCtrl?.ClearBlinkComponents(); - await _bimfaceCtrl?.SetBlinkComponents(blinkCodes); - await Task.Delay(5000); - await _bimfaceCtrl?.ClearBlinkComponents(); - }; - _propertyCtrl.PropertyValueChangedEvent += (visual) => - { - if (visual == null) - { - return; - } - UpdateVisualListCtrl(); - //ApplyGradingResultList(visual); - }; - _propertyCtrl.MarkPropertyValueChangedEvent += (visual) => - { - //鏍囨敞灞炴�у彂鐢熸敼鍙� - //鍒ゆ柇褰撳墠鏄惁鏈夋爣娉ㄥ睍绀猴紝鑻ユ湁鍒欐洿鏂版爣娉紝鏈�濂芥槸鏇存柊鍗曚釜鏍囨敞 - }; - _propertyCtrl.GradingPropertyValueChangedEvent += (parter) => - { - //鍒嗙骇灞炴�у彂鐢熸敼鍙� - //鍒ゆ柇褰撳墠鏄惁鏈夊垎绾у睍绀猴紝鑻ユ湁鍒欐洿鏂板垎绾э紝鏈�濂芥槸鏇存柊鍗曚釜鍒嗙骇 - }; - _propertyCtrl.FlowEffectPropertyValueChangedEvent += (visual) => - { - //娴佸悜灞炴�у彂鐢熸敼鍙� - //鍒ゆ柇娴佸悜鏄惁鍔犺浇锛屽鏋滃姞杞藉垯鏇存柊娴佸悜锛屾渶濂芥槸鏇存柊鍗曚釜娴佸悜 - }; - - } - return _propertyCtrl; - } - - //灞炴�ф帶浠舵槸鍚﹀彲瑙� - private bool IsPropertyCtrlVisible - { - get - { - if (this.docPnlRight.Visibility == DevExpress.XtraBars.Docking.DockVisibility.Visible) - { - if (this.controlContainerRight.Controls.Count > 0) - { - if (this.controlContainerRight.Controls[0] is XhsProjectSimulationPropertyCtrl) - { - return true; - } - } - } - return false; - } - } - - //鏄剧ず灞炴�ф帶浠� - private void ShowPropertyCtrl() - { - if (IsPropertyCtrlVisible) - { - return; - } - var propertyCtrl = GetPropertyCtrl(); - this.controlContainerRight.Controls.Clear(); - this.controlContainerRight.Controls.Add(propertyCtrl); - this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlRight.Text = "灞炴��"; - this.docPnlRight.Width = 300; - } - - //璁剧疆灞炴�ф帶浠� - private void SetPropertyCtrl(HydroVisualInfo visual) - { - ShowPropertyCtrl(); - // var vm = GetVisualViewModel(visual); - // _propertyCtrl.SelectedObject = vm; - } - - //鏇存柊灞炴�ф帶浠� - private void UpdatePropertyCtrl() - { - _propertyCtrl?.UpdateRows(); - } - - //娓呯悊灞炴�ф帶浠� - private void ClearPropertyCtrl() - { - if (_propertyCtrl != null) - { - _propertyCtrl.SelectedObject = null; - } - } - - #endregion - - #region 鑷姩鍖归厤 - - //鑾峰彇鍖归厤鍒楄〃鎺т欢 - private XhsProjectSimulationMatchingListCtrl GetMatchingListCtrl() - { - if (_matchingListCtrl == null) - { - _matchingListCtrl = new XhsProjectSimulationMatchingListCtrl(); - _matchingListCtrl.Dock = DockStyle.Fill; - _matchingListCtrl.HydroClickEvent += async (code) => - { - if (_hydroInfo == null) - { - return; - } - var allParterList = _hydroInfo.GetAllVisuals(); - _visual = allParterList?.Find(x => x.Code == code); - var elementIds = new List<string>(); - if (_visual != null) - { - elementIds.Add(_visual.Code); - } - await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); - //ShowSelectedProperty(); - }; - _matchingListCtrl.ApplyMatchingEvent += (output) => - { - if (_hydroInfo == null) - { - return false; - } - return AssetsMatchingParasHelper.Apply(_hydroInfo, output); - }; - } - return _matchingListCtrl; - } - - //鍖归厤鍒楄〃鎺т欢 - private XhsProjectSimulationMatchingListCtrl _matchingListCtrl = null; - - //鑷姩鍖归厤 - private void barBtnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - if (_hydroInfo == null) - { - return; - } - this.controlContainerBottom.Controls.Clear(); - var matchingListCtrl = GetMatchingListCtrl(); - var input = AssetsMatchingParasHelper.Create(_hydroInfo, null); - matchingListCtrl.SetBindingData(input); - this.controlContainerBottom.Controls.Add(matchingListCtrl); - this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "鍖归厤鍒楄〃"; - this.docPnlBottom.Height = 350; - } - - #endregion - - #region 鏈尮鍒楄〃 - - //鑾峰彇鏈尮閰嶅垪琛ㄦ帶浠� - private XhsProjectSimulationUnMatchingListCtrl GetUnMatchingListCtrl() - { - if (_unMatchingListCtrl == null) - { - _unMatchingListCtrl = new XhsProjectSimulationUnMatchingListCtrl(); - _unMatchingListCtrl.Dock = DockStyle.Fill; - _unMatchingListCtrl.HydroClickEvent += async (parter) =>//琛岀偣鍑� - { - if (parter == null) - { - return; - } - if (_hydroInfo == null) - { - return; - } - var allParterList = _hydroInfo.GetAllVisuals(); - _visual = allParterList?.Find(x => x.Code == parter.Code); - var elementIds = new List<string>() { parter.Code }; - await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); - //ShowSelectedProperty(); - }; - _unMatchingListCtrl.ViewModelEvent += async (parters) =>//鏌ョ湅妯″瀷 - { - var codes = parters?.Select(x => x.Code).Distinct().ToList(); - await _bimfaceCtrl?.ZoomAndSelectComponents(codes); - _visual = null; - //ShowSelectedProperty(); - }; - } - return _unMatchingListCtrl; - } - - private XhsProjectSimulationUnMatchingListCtrl _unMatchingListCtrl = null;//鏈尮閰嶅垪琛� - - //鏈尮閰嶅垪琛� - private void barBtnUnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - if (_hydroInfo == null) - { - return; - } - this.controlContainerBottom.Controls.Clear(); - var unMatchingListCtrl = GetUnMatchingListCtrl(); - unMatchingListCtrl.SetBindingData(_hydroInfo); - this.controlContainerBottom.Controls.Add(unMatchingListCtrl); - this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "鏈尮閰嶅垪琛�"; - this.docPnlBottom.Height = 350; - } #endregion @@ -780,182 +660,290 @@ //姘村簱 this.barBtnSetReservoirList.ItemClick += delegate { - //var dlg = new HydroReservoirBulkSetListDlg(); - //dlg.ShowDialog(); + var allVisualViewModelList = GetVisualViewModelList(); + var dlg = new SetHydroReservoirListDlg(); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); }; //姘存睜 this.barBtnSetTankList.ItemClick += delegate { - //var dlg = new HydroTankBulkSetListDlg(); - //dlg.ShowDialog(); + var allVisualViewModelList = GetVisualViewModelList(); + var dlg = new SetHydroTankListDlg(); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); }; //姘寸 this.barBtnSetWaterboxList.ItemClick += delegate { - //if (_hydroInfo == null) - //{ - // return; - //} - //var dlg = new SetHydroWaterboxListDlg(); - //dlg.SetBindingData(_hydroInfo); - //dlg.HydroClickEvent += async (obj) => - //{ - // if (obj == null) - // { - // return; - // } - // _selectedParter = obj; - // await _bimfaceCtrl?.ZoomAndSelectComponent(obj.Code); - // ShowProperty(); - //}; - //dlg.HydroChangedEvent += (obj) => - //{ - - //}; - //dlg.ShowDialog(); + var allVisualViewModelList = GetVisualViewModelList(); + var dlg = new SetHydroWaterboxListDlg(); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); }; //杩炴帴鑺傜偣 this.barBtnSetJunctionList.ItemClick += delegate { - //var dlg = new HydroJunctionBulkSetListDlg(); - //dlg.ShowDialog(); + var allVisualViewModelList = GetVisualViewModelList(); + var dlg = new SetHydroJunctionListDlg(); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); }; //闂峰ご this.barBtnSetBluntheadList.ItemClick += delegate { - //if (_hydroInfo == null) - //{ - // return; - //} - //var dlg = new SetHydroBluntheadListDlg(); - //dlg.SetBindingData(_hydroInfo); - //dlg.HydroClickEvent += async (obj) => - //{ - // if (obj == null) - // { - // return; - // } - // _selectedParter = obj; - // await _bimfaceCtrl?.ZoomAndSelectComponent(obj.Code); - // ShowProperty(); - //}; - //dlg.HydroChangedEvent += (obj) => - //{ - - //}; - //dlg.ShowDialog(); + var allVisualViewModelList = GetVisualViewModelList(); + var dlg = new SetHydroBluntheadListDlg(); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); }; //寮ご this.barBtnSetElbowsList.ItemClick += delegate { - //if (_hydroInfo == null) - //{ - // return; - //} - //var dlg = new SetHydroElbowListDlg(); - //dlg.SetBindingData(_hydroInfo); - //dlg.HydroClickEvent += async (obj) => - //{ - // if (obj == null) - // { - // return; - // } - // _selectedParter = obj; - // await _bimfaceCtrl?.ZoomAndSelectComponent(obj.Code); - // ShowProperty(); - //}; - //dlg.HydroChangedEvent += (obj) => - //{ - - //}; - //dlg.ShowDialog(); + var allVisualVmList = GetVisualViewModelList(); + var dlg = new SetHydroElbowListDlg(); + dlg.SetBindingData(allVisualVmList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); }; //涓夐�� this.barBtnSetThreelinkList.ItemClick += delegate { - if (_hydroInfo == null) - { - return; - } + var allVisualViewModelList = GetVisualViewModelList(); var dlg = new SetHydroThreelinkListDlg(); - dlg.SetBindingData(_hydroInfo); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; dlg.ShowDialog(); }; //鍥涢�� this.barBtnSetFourlinkList.ItemClick += delegate { - if (_hydroInfo == null) - { - return; - } + var allVisualViewModelList = GetVisualViewModelList(); var dlg = new SetHydroFourlinkListDlg(); - dlg.SetBindingData(_hydroInfo); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; dlg.ShowDialog(); }; //姘磋〃 this.barBtnSetMeterList.ItemClick += delegate { - if (_hydroInfo == null) - { - return; - } + var allVisualViewModelList = GetVisualViewModelList(); var dlg = new SetHydroMeterListDlg(); - dlg.SetBindingData(_hydroInfo); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; dlg.ShowDialog(); }; //娴侀噺璁� this.barBtnSetFlowmeterList.ItemClick += delegate { - if (_hydroInfo == null) - { - return; - } + var allVisualViewModelList = GetVisualViewModelList(); var dlg = new SetHydroFlowmeterListDlg(); - dlg.SetBindingData(_hydroInfo); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; dlg.ShowDialog(); }; //鍘嬪姏琛� this.barBtnSetPressmeterList.ItemClick += delegate { - if (_hydroInfo == null) - { - return; - } + var allVisualViewModelList = GetVisualViewModelList(); var dlg = new SetHydroPressmeterListDlg(); - dlg.SetBindingData(_hydroInfo); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; dlg.ShowDialog(); }; //绠¢亾 this.barBtnSetPipeList.ItemClick += delegate { - if (_hydroInfo == null) - { - return; - } + var allVisualViewModelList = GetVisualViewModelList(); var dlg = new SetHydroPipeListDlg(); - dlg.SetBindingData(_hydroInfo); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); + }; + //杩囨浮浠� + this.barBtnSetTranslationList.ItemClick += delegate + { + var allVisualViewModelList = GetVisualViewModelList(); + var dlg = new SetHydroTranslationListDlg(); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; dlg.ShowDialog(); }; //姘存车 this.barBtnSetPumpList.ItemClick += delegate { - if (_hydroInfo == null) - { - return; - } + var allVisualViewModelList = GetVisualViewModelList(); var dlg = new SetHydroPumpListDlg(); - dlg.SetBindingData(_hydroInfo); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; dlg.ShowDialog(); }; //闃�闂� this.barBtnSetValveList.ItemClick += delegate { - if (_hydroInfo == null) - { - return; - } + var allVisualViewModelList = GetVisualViewModelList(); var dlg = new SetHydroValveListDlg(); - dlg.SetBindingData(_hydroInfo); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); + }; + //鎹㈢儹鍣� + this.barBtnSetExchangerList.ItemClick += delegate + { + var allVisualViewModelList = GetVisualViewModelList(); + var dlg = new SetHydroExchangerListDlg(); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; + dlg.ShowDialog(); + }; + //鎹㈢儹鍣� + this.barBtnSetCompressorList.ItemClick += delegate + { + var allVisualViewModelList = GetVisualViewModelList(); + var dlg = new SetHydroCompressorListDlg(); + dlg.SetBindingData(allVisualViewModelList); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + UpdateVisualListCtrl(); + }; dlg.ShowDialog(); }; } @@ -1125,26 +1113,6 @@ this.barBtnSetTranslationList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; } - //鎹㈢儹鍣� - if (_hydroInfo.Exchangers == null || _hydroInfo.Exchangers.Count < 1) - { - this.barBtnSetExchangerList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; - } - else - { - this.barBtnSetExchangerList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; - } - - //绌哄帇鏈� - if (_hydroInfo.Compressors == null || _hydroInfo.Compressors.Count < 1) - { - this.barBtnSetCompressorList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; - } - else - { - this.barBtnSetCompressorList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; - } - //姘存车 if (_hydroInfo.Pumps == null || _hydroInfo.Pumps.Count < 1) { @@ -1165,6 +1133,27 @@ this.barBtnSetValveList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; } + //鎹㈢儹鍣� + if (_hydroInfo.Exchangers == null || _hydroInfo.Exchangers.Count < 1) + { + this.barBtnSetExchangerList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + } + else + { + this.barBtnSetExchangerList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; + } + + //绌哄帇鏈� + if (_hydroInfo.Compressors == null || _hydroInfo.Compressors.Count < 1) + { + this.barBtnSetCompressorList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; + } + else + { + this.barBtnSetCompressorList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; + } + + } #endregion @@ -1175,11 +1164,11 @@ private HydroVisualSearchListCtrl _searchCtrl = null; //鑾峰彇鏌ヨ缁勪欢 - private async Task<HydroVisualSearchListCtrl> GetSearchCtrl() + private HydroVisualSearchListCtrl GetSearchCtrl() { if (_searchCtrl == null) { - var visualVmListHelper = await GetVisualVmListHelper(); + var visualVmListHelper = GetVisualVmListHelper(); var allVisualVmList = visualVmListHelper.GetVisualList(); _searchCtrl = new HydroVisualSearchListCtrl(); _searchCtrl.Dock = DockStyle.Fill; @@ -1217,13 +1206,13 @@ } //鏄剧ず鏌ヨ鎺т欢 - private async void ShowSearchCtrl(string content) + private void ShowSearchCtrl(string content) { if (IsSearchCtrlVisible) { return; } - var searchCtrl = await GetSearchCtrl(); + var searchCtrl = GetSearchCtrl(); searchCtrl.SetBindingData(content); this.controlContainerBottom.Controls.Clear(); this.controlContainerBottom.Controls.Add(searchCtrl); @@ -1271,8 +1260,9 @@ if (_markHelper == null) { var visualListHelper = GetVisualListHelper(); + var calcuResultHelper = GetCalcuResultHelper(); var bimfaceCtrl = await GetBimfaceCtrl(); - _markHelper = new SimulationMarkHelper(visualListHelper, bimfaceCtrl); + _markHelper = new SimulationMarkHelper(visualListHelper, calcuResultHelper, bimfaceCtrl); } return _markHelper; } @@ -1322,7 +1312,7 @@ if (_gradingHelper == null) { var visualListHelper = GetVisualListHelper(); - var calcuResultHelper = await GetCalcuResultHelper(); + var calcuResultHelper = GetCalcuResultHelper(); var bimfaceCtrl = await GetBimfaceCtrl(); _gradingHelper = new SimulationGradingHelper(visualListHelper, calcuResultHelper, bimfaceCtrl); } @@ -1445,7 +1435,7 @@ var visualListHelper = GetVisualListHelper(); var bimfaceCtrl = await GetBimfaceCtrl(); _flowEffectHelper = new SimulationFlowEffectHelper(visualListHelper, bimfaceCtrl); - var calcuResult = await GetCalcuResult(); + var calcuResult = GetCalcuResult(); _flowEffectHelper.InitialData(calcuResult); } return _flowEffectHelper; @@ -1477,7 +1467,8 @@ } if (_monitorHelper == null) { - _monitorHelper = new SimulationMonitorHelper(_hydroInfo.ID); + var visualListHelper = GetVisualListHelper(); + _monitorHelper = new SimulationMonitorHelper(visualListHelper); } return _monitorHelper; } @@ -1699,9 +1690,9 @@ } //鏄剧ず妫�鏌ユ帶浠� - private async void ShowCheckCtrl() + private void ShowCheckCtrl() { - var checkResult = await GetCheckResult(); + var checkResult = GetCheckResult(); ShowCheckCtrl(checkResult); } @@ -1726,12 +1717,12 @@ private SimulationCalcuResultHelper _calcuResultHelper = null; //鑾峰彇璁$畻缁撴灉杈呭姪绫� - private async Task<SimulationCalcuResultHelper> GetCalcuResultHelper() + private SimulationCalcuResultHelper GetCalcuResultHelper() { if (_calcuResultHelper == null) { - _calcuResultHelper = new SimulationCalcuResultHelper(); - _calcuResultHelper.CalcuResult = await GetCalcuResult(); + var workingHelper = GetWorkingHelper(); + _calcuResultHelper = new SimulationCalcuResultHelper(workingHelper); } return _calcuResultHelper; } @@ -1884,10 +1875,9 @@ { if (_calcuResultLabelHelper == null) { - var visualListHelper = GetVisualListHelper(); - var calcuResultHelper = await GetCalcuResultHelper(); + var calcuResultHelper = GetCalcuResultHelper(); var bimfaceCtrl = await GetBimfaceCtrl(); - _calcuResultLabelHelper = new SimulationCalcuResultLabelHelper(visualListHelper, calcuResultHelper, bimfaceCtrl); + _calcuResultLabelHelper = new SimulationCalcuResultLabelHelper(calcuResultHelper, bimfaceCtrl); } return _calcuResultLabelHelper; } @@ -1907,7 +1897,7 @@ #region 绠$綉淇 //淇绠$綉 - private async void Repair() + private void Repair() { if (_hydroInfo == null) { @@ -1954,7 +1944,7 @@ count++; } } - var visualVmListHelper = await GetVisualVmListHelper(); + var visualVmListHelper = GetVisualVmListHelper(); visualVmListHelper.UpdateProperty(); UpdateVisualListCtrl(); UpdatePropertyCtrl(); @@ -1991,10 +1981,10 @@ #endregion - #region 骞惰仈璁$畻 + #region 姘存车鍒楄〃 - //骞惰仈鍒嗘瀽 - private void ParallelAnalysis() + //鎬ц兘鏇茬嚎 + private void PumpFeat() { if (_hydroInfo == null) { @@ -2006,97 +1996,81 @@ XtraMessageBox.Show("鏃犳按娉典俊鎭�"); return; } - var vmList = new List<XhsSinglePumpViewModel>(); - foreach (var pump in pumps) + var dlg = new SimulationPumpFeatDlg(); + dlg.SaveEvent += async (list) => { - if (!pump.RatedN.HasValue) - { - continue; - } - var qh = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQH)?.CurveData; - var qe = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQE)?.CurveData; - var qp = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQP)?.CurveData; - if (qh == null) - { - continue; - } + pumps.ForEach(x => x.UpdateWorkingInfo(list)); + var visualVmListHelper = GetVisualVmListHelper(); + visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList()); + SelectVisual(_visual, eVisualSource.None); + var gradingHelper = await GetGradingHelper(); + gradingHelper.Set(); + }; + dlg.SetBindingData(_hydroInfo); + dlg.ShowDialog(); + } - var qhPtList = qh.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList(); - var qePtList = qe?.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList(); - var qpPtList = qp?.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList(); + //鎬ц兘鏇茬嚎 + private void barBtnPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + PumpFeat(); + } - var vm = new XhsSinglePumpViewModel(); - vmList.Add(vm); - vm.ID = pump.ID; - vm.Name = pump.Name; - vm.Code = pump.Code; - vm.IsBp = true; - vm.RunStatus = pump.LinkStatus == Yw.Hydro.LinkStatus.Open; - vm.RatedHz = pump.RatedHz; - vm.CurrentHz = Math.Round(pump.RatedHz * pump.SpeedRatio, 1); - vm.RatedSpeed = pump.RatedN.Value; - vm.CurrentSpeed = Math.Round(pump.RatedN.Value * pump.SpeedRatio, 1); - vm.CurveQH = qhPtList; - vm.CurveQE = qePtList; - vm.CurveQP = qpPtList; - + //骞惰仈妯℃嫙 + private void PumpParallel() + { + if (_hydroInfo == null) + { + return; } - - var dlg = new PumpParallelAnalyDlg(); - dlg.SetBindingData(vmList); - dlg.ReloadDataEvent += (list) => + var pumps = _hydroInfo.Pumps; + if (pumps == null || pumps.Count < 1) + { + XtraMessageBox.Show("鏃犳按娉典俊鎭�"); + return; + } + var dlg = new SimulationPumpParallelDlg(); + dlg.SaveEvent += async (list) => { list?.ForEach(x => { var pump = pumps.Find(t => t.Code == x.Code); if (pump != null) { - pump.LinkStatus = x.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed; - pump.SpeedRatio = x.CurrentHz / pump.RatedHz; + pump.LinkStatus = x.LinkStatus; + pump.SpeedRatio = x.SpeedRatio; } }); - var codes = list?.Select(x => x.Code).ToList(); - //UpdateVisualViewModelProperty(codes); - //ShowSelectedProperty(); - UpdateVisualListCtrl(); - return true; + var visualVmListHelper = GetVisualVmListHelper(); + visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList()); + SelectVisual(_visual, eVisualSource.None); + var gradingHelper = await GetGradingHelper(); + gradingHelper.Set(); }; + dlg.SetBindingData(_hydroInfo); dlg.ShowDialog(); } - //骞惰仈鍒嗘瀽 - private void barBtnParallel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //骞惰仈妯℃嫙 + private void barBtnPumpParallel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - ParallelAnalysis(); + + PumpParallel(); } #endregion - #region 宸ュ喌璁$畻 + #region 姘村姏璁$畻 - //宸ュ喌鍏冪粍杈呭姪绫� - private SimulationWorkingTupleHelper _workingTupleHelper = null; - - //鑾峰彇宸ュ喌鍏冪粍杈呭姪绫� - private SimulationWorkingTupleHelper GetWorkingTupleHelper() - { - if (_workingTupleHelper == null) - { - var visualListHelper = GetVisualListHelper(); - _workingTupleHelper = new SimulationWorkingTupleHelper(visualListHelper); - } - return _workingTupleHelper; - } - - //璁剧疆宸ュ喌绐椾綋 - private async void CalcuWorking() + //璁$畻 + private async void Calcu() { if (_hydroInfo == null) { return; } - var workingTupleHelper = GetWorkingTupleHelper(); - var allWorkingList = await workingTupleHelper.GetWorkingList(); + var workingCheckedListHelper = GetWorkingCheckedListHelper(); + var allWorkingList = workingCheckedListHelper.GetWorkingList(); var monitorValueHelper = GetMonitorValueHelper(); var allMonitorValueList = await monitorValueHelper.Get(); var dlg = new SetHydroWorkingDlg(); @@ -2105,423 +2079,387 @@ { SelectVisual(visual, eVisualSource.Calcu); }; - dlg.HydroCalcuEvent += async (working) => + dlg.HydroCalcuEvent += async (vm) => { - var vmo = new HydroWorkingVmo(); - vmo.ModelID = _hydroInfo.ID; - vmo.Name = working.Name; - vmo.WorkingInfo = JsonHelper.Object2Json(working.WorkingInfo); - vmo.MonitorInfo = JsonHelper.Object2Json(working.MonitorInfo); - vmo.SortCode = allWorkingList.Count < 1 ? 1 : allWorkingList.Max(x => x.SortCode) + 1; - vmo.Description = working.Description; - vmo.ID = await BLLFactory<Yw.BLL.HydroWorking>.Instance.Insert(vmo); - if (vmo.ID < 1) - { - TipFormHelper.ShowError("鍒涘缓宸ュ喌澶辫触锛岃绠楀彇娑堬紒"); - return; - } - allWorkingList.Add(vmo); + _hydroInfo.UpdateWorkingInfo(vm.WorkingInfo); + allMonitorValueList.UpdateMonitorValue(vm.MonitorInfo); - _hydroInfo.UpdateWorkingInfo(working.WorkingInfo); + var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); + + var working = new HydroWorkingVmo(); + working.ModelID = vm.ModelID; + working.Name = vm.Name; + working.WorkingInfo = JsonHelper.Object2Json(vm.WorkingInfo); + working.MonitorInfo = JsonHelper.Object2Json(vm.MonitorInfo); + working.SortCode = vm.SortCode; + working.Description = vm.Description; + + var workingHelper = GetWorkingHelper(); //鏍¢獙 var checkResult = _hydroInfo.Check(); if (!checkResult.Succeed) { - workingTupleHelper.AppendTuple(vmo, checkResult, null); - AppendWorking(vmo); ShowCheckCtrl(checkResult); - TipFormHelper.ShowWarn("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); + workingHelper.InitialData(hydroInfo, working, checkResult, null); + TipFormHelper.ShowError("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); return; } - WaitFormHelper.ShowWaitForm(this, "姝e湪璁$畻鍒嗘瀽涓紝璇风◢鍊�..."); - - - //await Task.Delay(5000); + //WaitFormHelper.ShowWaitForm(this, "姝e湪璁$畻鍒嗘瀽涓紝璇风◢鍊�..."); + //await Task.Delay(3000); var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - - - WaitFormHelper.HideWaitForm(); + //WaitFormHelper.HideWaitForm(); + workingHelper.InitialData(hydroInfo, working, checkResult, calcuResult); if (calcuResult.Succeed) { - workingTupleHelper.AppendTuple(vmo, checkResult, calcuResult); - AppendWorking(vmo); - var visualVmListHelper = await GetVisualVmListHelper(); - visualVmListHelper.UpdateProperty(); - visualVmListHelper.UpdateCalcuProperty(calcuResult); - UpdateVisualListCtrl(); - UpdatePropertyCtrl(); - var calcuResultHelper = await GetCalcuResultHelper(); - calcuResultHelper.CalcuResult = calcuResult; - var calcuResultLabelHelper = await GetCalcuResultLabelHelper(); - calcuResultLabelHelper.Set(); + if (calcuResult.WainingList != null && calcuResult.WainingList.Count > 0) + { + ShowCalcuWarningCtrl(calcuResult); + } + this.barBtnAddWorking.Enabled = true; TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); - var codes = _hydroInfo.Pumps.Select(x => x.Code).ToList(); - await _bimfaceCtrl?.ZoomAndSelectComponents(codes); } else { ShowCalcuFailedCtrl(calcuResult); TipFormHelper.ShowError("璁$畻澶辫触锛�"); } - var gradingHelper = await GetGradingHelper(); - gradingHelper.InitialData(); - gradingHelper.Set(); + + #region 瑙嗗浘鍒楄〃 + + var visualVmListHelper = GetVisualVmListHelper(); + visualVmListHelper.UpdateCalcuProperty(calcuResult); + + #endregion + + #region 褰撳墠鏋勪欢 + + SelectVisual(_visual, eVisualSource.Calcu); + + #endregion + + #region 鏋勪欢鏄庣粏 + UpdateVisualListCtrl(); - UpdatePropertyCtrl(); + + #endregion + + #region 璁$畻鏍囩 + + var calcuResultLabelHelper = await GetCalcuResultLabelHelper(); + calcuResultLabelHelper.Set(); + + #endregion + }; dlg.ShowDialog(); + } - //宸ュ喌璁$畻 - private void barBtnWorkingCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //姘村姏璁$畻 + private void barBtnCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - CalcuWorking(); + Calcu(); } + + #endregion + + #region 褰撳墠宸ュ喌 + + //宸ュ喌杈呭姪绫� + private SimulationWorkingHelper _workingHelper = null; + + //鑾峰彇宸ュ喌杈呭姪绫� + private SimulationWorkingHelper GetWorkingHelper() + { + if (_workingHelper == null) + { + _workingHelper = new SimulationWorkingHelper(); + } + return _workingHelper; + } + + //鑾峰彇宸ュ喌 + private HydroWorkingVmo GetWorking() + { + var workingHelper = GetWorkingHelper(); + return workingHelper.Working; + } + + //鑾峰彇妫�鏌ョ粨鏋� + private HydroCheckResult GetCheckResult() + { + var workingHelper = GetWorkingHelper(); + return workingHelper.CheckResult; + } + + //鑾峰彇璁$畻缁撴灉 + private HydroCalcuResult GetCalcuResult() + { + var workingHelper = GetWorkingHelper(); + return workingHelper.CalcuResult; + } + + //鏂板宸ュ喌 + private void AddWorking() + { + var workingHelper = GetWorkingHelper(); + if (workingHelper.Working == null) + { + TipFormHelper.ShowWarn("灏氭湭璁$畻锛岃璁$畻鍚庨噸璇曪紒"); + return; + } + var dlg = new AddHydroWorkingDlg(); + dlg.SetBindingData(workingHelper.Working); + dlg.ReloadDataEvent += (rhs) => + { + this.barBtnAddWorking.Enabled = false; + workingHelper.ResetWorking(rhs); + UpdateWorkingCheckedList(rhs, false); + this.AppendWorkingEvent?.Invoke(rhs); + }; + dlg.ShowDialog(); + } + + //澧炲姞宸ュ喌 + private void barBtnAddWorking_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + AddWorking(); + } + + #endregion + + #region 閫夋嫨宸ュ喌 + + //宸ュ喌閫夋嫨鍒楄〃杈呭姪绫� + private SimulationWorkingCheckedListHelper _workingCheckedListHelper = null; + + //鑾峰彇宸ュ喌鍏冪粍杈呭姪绫� + private SimulationWorkingCheckedListHelper GetWorkingCheckedListHelper() + { + if (_workingCheckedListHelper == null) + { + var visualListHelper = GetVisualListHelper(); + _workingCheckedListHelper = new SimulationWorkingCheckedListHelper(visualListHelper); + _workingCheckedListHelper.InitialData(_allWorkingCheckedListDict); + } + return _workingCheckedListHelper; + } + + //鏇存柊宸ュ喌閫夋嫨鍒楄〃 + public void UpdateWorkingCheckedList(HydroWorkingVmo working) + { + var helper = GetWorkingCheckedListHelper(); + helper.Update(working); + } + + //鏇存柊宸ュ喌閫夋嫨鍒楄〃 + public void UpdateWorkingCheckedList(HydroWorkingVmo working, bool hasChecked) + { + var helper = GetWorkingCheckedListHelper(); + helper.Update(working, hasChecked); + } + + //绉婚櫎宸ュ喌閫夋嫨鍒楄〃 + public void RemoveWorkingCheckedList(HydroWorkingVmo working) + { + var helper = GetWorkingCheckedListHelper(); + helper.Remove(working); + } + #endregion #region 宸ュ喌鍒嗘瀽 - #region 褰撳墠宸ュ喌 - - //褰撳墠宸ュ喌 - private Yw.Vmo.HydroWorkingVmo _working = null; - - //鑾峰彇妫�鏌ョ粨鏋� - private async Task<HydroCheckResult> GetCheckResult() + //绮惧害璇勪及 + private async void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - var workingTupleHelper = GetWorkingTupleHelper(); - return await workingTupleHelper.GetCheckResult(_working); - } - - //鑾峰彇璁$畻缁撴灉 - private async Task<HydroCalcuResult> GetCalcuResult() - { - var workingTupleHelper = GetWorkingTupleHelper(); - return await workingTupleHelper.GetCalcuResult(_working); - } - - //鍒濆鍖栧伐鍐靛垪琛� - private async void InitialWorkingList() - { - var workingTupleList = GetWorkingTupleHelper(); - var allWorkingList = await workingTupleList.GetWorkingList(); - this.repositoryItemImageComboBox1.Items.BeginUpdate(); - this.repositoryItemImageComboBox1.Items.Clear(); - if (allWorkingList != null && allWorkingList.Count > 0) - { - allWorkingList.ForEach(x => this.repositoryItemImageComboBox1.Items.Add(x.Name, x, -1)); - this.barEditCurrentWorking.EditValue = allWorkingList.Last(); - } - this.repositoryItemImageComboBox1.Items.EndUpdate(); - } - - //澧炲姞褰撳墠宸ュ喌 - private void AppendWorking(HydroWorkingVmo working) - { - this.repositoryItemImageComboBox1.Items.BeginUpdate(); - this.repositoryItemImageComboBox1.Items.Add(working.Name, working, -1); - this.repositoryItemImageComboBox1.Items.EndUpdate(); - this.barEditCurrentWorking.EditValue = working; - } - - //璁剧疆褰撳墠宸ュ喌 - private async void SetCurrentWorking(HydroWorkingVmo working) - { - _working = working; - this.barEditCurrentWorking.EditValue = working; - var workingTupleHelper = GetWorkingTupleHelper(); - - } - - //褰撳墠宸ュ喌鍙戠敓鏀瑰彉 - private void barEditCurrentWorking_EditValueChanged(object sender, EventArgs e) - { - var working = this.barEditCurrentWorking.EditValue as HydroWorkingVmo; - SetCurrentWorking(working); - } - - #endregion - - #region 宸ュ喌鎺т欢 - - //宸ュ喌鎺т欢 - private HydroWorkingTreeCtrl _workingCtrl = null; - - //鑾峰彇宸ュ喌鎺т欢 - private async Task<HydroWorkingTreeCtrl> GetWorkingCtrl() - { - if (_workingCtrl == null) - { - _workingCtrl = new HydroWorkingTreeCtrl(); - _workingCtrl.Dock = DockStyle.Fill; - _workingCtrl.FocusedChangedEvent += (vmo) => - { - - }; - _workingCtrl.HydroClickEvent += (working) => - { - SetCurrentWorking(working); - }; - } - return _workingCtrl; - } - - //宸ュ喌鎺т欢鏄惁鍙 - private bool IsWorkingCtrlVisible - { - get - { - if (this.docPnlRight.Visibility == DevExpress.XtraBars.Docking.DockVisibility.Visible) - { - if (this.controlContainerRight.Controls.Count > 0) - { - if (this.controlContainerRight.Controls[0] is HydroWorkingTreeCtrl) - { - return true; - } - } - } - return false; - } - } - - //鏄剧ず宸ュ喌鎺т欢 - private async void ShowWorkingCtrl() - { - var workingCtrl = await GetWorkingCtrl(); - if (!IsWorkingCtrlVisible) - { - this.controlContainerRight.Controls.Clear(); - this.controlContainerRight.Controls.Add(workingCtrl); - this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlRight.Text = "宸ュ喌"; - this.docPnlRight.Width = 300; - } - var workingTupleHelper = GetWorkingTupleHelper(); - var allWorkingList = await workingTupleHelper.GetWorkingList(); - workingCtrl.SetBindingData(allWorkingList); - } - - //鏇存柊宸ュ喌鎺т欢 - private async void UpdateWorkingCtrl() - { - if (!IsWorkingCtrlVisible) - { - return; - } - var workingTupleHelper = GetWorkingTupleHelper(); - var allWorkingList = await workingTupleHelper.GetWorkingList(); - var workingCtrl = await GetWorkingCtrl(); - workingCtrl.SetBindingData(allWorkingList); - } - - //宸ュ喌鍒楄〃鐐瑰嚮 - private void barBtnWorkingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - ShowWorkingCtrl(); - } - - #endregion - - #region 宸ュ喌璇勪及 - - //璇勪及 - private async void Evaluate() - { - if (_hydroInfo == null) - { - return; - } - if (_working == null) - { - TipFormHelper.ShowWarn("灏氭湭璁$畻锛岃璁$畻鍚庨噸璇曪紒"); - return; - } - var workingTupleHelper = GetWorkingTupleHelper(); - var checkResult = await workingTupleHelper.GetCheckResult(_working); - if (checkResult == null) - { - return; - } - if (!checkResult.Succeed) - { - ShowCheckCtrl(checkResult); - TipFormHelper.ShowWarn("妫�鏌ュけ璐ワ紝鍋滄璇勪及锛�"); - return; - } - var calcuResult = await workingTupleHelper.GetCalcuResult(_working); - if (calcuResult == null) - { - return; - } - if (!calcuResult.Succeed) - { - ShowCalcuFailedCtrl(calcuResult); - TipFormHelper.ShowWarn("璁$畻澶辫触锛屽仠姝㈣瘎浼帮紒"); - return; - } - if (calcuResult.WainingList != null && calcuResult.WainingList.Count > 0) - { - ShowCalcuWarningCtrl(calcuResult); - TipFormHelper.ShowWarn("璇峰叧娉ㄨ鍛婁俊鎭紒"); - } - var visualListHelper = GetVisualListHelper(); - var allVisualDict = visualListHelper.GetVisualDict(); var monitorHelper = GetMonitorHelper(); var allMonitorList = await monitorHelper.Get(); - var allWorkingMonitorList = JsonHelper.Json2Object<List<HydroWorkingMonitorViewModel>>(_working.MonitorInfo); - var allCalcuResultDict = calcuResult.GetVisualDict(); - var dlg = new HydroWorkingEvaluationDlg(); - dlg.SetBindingData(allVisualDict, allMonitorList, allWorkingMonitorList, allCalcuResultDict); - dlg.ShowDialog(); + + var workingCheckedListHelper = GetWorkingCheckedListHelper(); + var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList(); + if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1) + { + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�"); + return; + } + var dlg = new HydroSingleWorkingEvaluationDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, allMonitorList, workingHelper.Working, workingHelper.CalcuResult); + dlg.ShowDialog(); + } + else + { + var dlg = new HydroMultiWorkingEvaluationDlg(); + dlg.SetBindingData(_hydroInfo, allMonitorList, allCheckedWorkingList); + dlg.ShowDialog(); + } } - //绮惧害璇勪及 - private void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //姘存车鍒嗘瀽 + private void barBtnPumpAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - Evaluate(); + var workingCheckedListHelper = GetWorkingCheckedListHelper(); + var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList(); + if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1) + { + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�"); + return; + } + var dlg = new SimulationSingleWorkingPumpAnalyDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult); + dlg.ShowDialog(); + } + else + { + var dlg = new SimulationMultiWorkingPumpAnalyDlg(); + dlg.SetBindingData(_hydroInfo, allCheckedWorkingList); + dlg.ShowDialog(); + } } - #endregion - - #region 宸ュ喌骞惰仈 - - //骞惰仈鍒嗘瀽 - private async void barBtnAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - if (_hydroInfo == null) - { - return; - } - if (_hydroInfo.Pumps == null || _hydroInfo.Pumps.Count < 1) - { - return; - } - - var calcuResultHelper = await GetCalcuResultHelper(); - var vmList = new List<XhsSinglePumpViewModel>(); - foreach (var pump in _hydroInfo.Pumps) - { - if (!pump.RatedN.HasValue) - { - continue; - } - var qh = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQH)?.CurveData; - var qe = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQE)?.CurveData; - var qp = _hydroInfo.Curves?.Find(t => t.Code == pump.CurveQP)?.CurveData; - if (qh == null) - { - continue; - } - - var qhPtList = qh.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList(); - var qePtList = qe?.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList(); - var qpPtList = qp?.Select(x => new XhsSplinePointViewModel(x.X, x.Y)).ToList(); - - var vm = new XhsSinglePumpViewModel(); - vmList.Add(vm); - vm.ID = pump.ID; - vm.Name = pump.Name; - vm.Code = pump.Code; - vm.IsBp = true; - vm.RunStatus = pump.LinkStatus == Yw.Hydro.LinkStatus.Open; - vm.RatedHz = pump.RatedHz; - vm.CurrentHz = Math.Round(pump.RatedHz * pump.SpeedRatio, 1); - vm.RatedSpeed = pump.RatedN.Value; - vm.CurrentSpeed = Math.Round(pump.RatedN.Value * pump.SpeedRatio); - vm.CurveQH = qhPtList; - vm.CurveQE = qePtList; - vm.CurveQP = qpPtList; - - var calcuResultVisualDict = calcuResultHelper.GetVisualResultDict(); - if (calcuResultVisualDict != null && calcuResultVisualDict.Count > 0) - { - //var calcuResult = allCalcuResultList.Find(x => x.Code == pump.Code) as HydroCalcuLinkResult; - //if (calcuResult != null) - //{ - // if (calcuResult.CalcuFlow.HasValue) - // { - // vm.CalcuQ = Math.Abs(calcuResult.CalcuFlow.Value); - // } - - // var calcuResultStart = allCalcuResultList.Find(x => x.Code == pump.StartCode) as HydroCalcuNodeResult; - // var calcuResultEnd = allCalcuResultList.Find(x => x.Code == pump.EndCode) as HydroCalcuNodeResult; - // if (calcuResultStart != null && calcuResultEnd != null) - // { - // if (calcuResultStart.CalcuHead.HasValue && calcuResultEnd.CalcuHead.HasValue) - // { - // vm.CalcuH = Math.Round(Math.Abs(calcuResultStart.CalcuHead.Value - calcuResultEnd.CalcuHead.Value), 4); - // } - // } - //} - } - - } - - var dlg = new PumpParallelAnalyDlg(); - dlg.SetBindingData(vmList); - dlg.ReloadDataEvent += (list) => - { - list?.ForEach(x => - { - var pump = _hydroInfo.Pumps?.Find(t => t.Code == x.Code); - if (pump != null) - { - pump.LinkStatus = x.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed; - pump.SpeedRatio = Math.Round(x.CurrentHz / pump.RatedHz, 1); - } - }); - //ShowSelectedProperty(); - return true; - }; - dlg.ShowDialog(); - } - - #endregion - - #region 宸ュ喌鑳芥晥 - + //鑳芥晥鍒嗘瀽 private void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); + var workingCheckedListHelper = GetWorkingCheckedListHelper(); + var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList(); + if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1) + { + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�"); + return; + } + var dlg = new SimulationSingleWorkingEnergyDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult); + dlg.ShowDialog(); + } + else + { + var dlg = new SimulationMultiWorkingEnergyDlg(); + dlg.SetBindingData(_hydroInfo, allCheckedWorkingList); + dlg.ShowDialog(); + } } - #endregion - - #region 鎹熷け鏇茬嚎 - + //鎹熷け鏇茬嚎 private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); + if (_visual == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); + return; + } + HydroVisualInfo visual = _visual; + if (_visual is HydroLinkInfo linkInfo) + { + var visualListHelper = GetVisualListHelper(); + visual = visualListHelper.GetVisual(linkInfo.StartCode); + } + + var workingCheckedListHelper = GetWorkingCheckedListHelper(); + var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList(); + if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1) + { + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�"); + return; + } + var dlg = new HydroSingleWorkingLossCurveDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual); + dlg.ShowDialog(); + } + else + { + var dlg = new HydroMultiWorkingLossCurveDlg(); + dlg.SetBindingData(_hydroInfo, allCheckedWorkingList, visual); + dlg.ShowDialog(); + } } - #endregion - - #region 鎹熷け姣斾緥 - - private void barBtnWorkingLossScale_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //鎹熷け缁熻 + private void barBtnWorkingLossStatistics_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); + var workingCheckedListHelper = GetWorkingCheckedListHelper(); + var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList(); + if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1) + { + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�"); + return; + } + var dlg = new HydroSingleWorkingLossStatisticsDlg(); + dlg.SetBindingData(workingHelper.HydroInfo); + dlg.ShowDialog(); + } + else + { + var dlg = new HydroMultiWorkingLossStatisticsDlg(); + dlg.SetBindingData(_hydroInfo, allCheckedWorkingList); + dlg.ShowDialog(); + } } - #endregion - - #region 缁煎悎鍒嗘瀽 - private void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //缁煎悎鍒嗘瀽 + private async void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); + if (_visual == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); + return; + } + HydroVisualInfo visual = _visual; + if (_visual is HydroLinkInfo linkInfo) + { + var visualListHelper = GetVisualListHelper(); + visual = visualListHelper.GetVisual(linkInfo.StartCode); + } + + var monitorHelper = GetMonitorHelper(); + var allMonitorList = await monitorHelper.Get(); + + var workingCheckedListHelper = GetWorkingCheckedListHelper(); + var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList(); + if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1) + { + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�"); + return; + } + var dlg = new SimulationSingleWorkingAnalyDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, allMonitorList, workingHelper.Working, workingHelper.CalcuResult, visual); + dlg.ShowDialog(); + } + else + { + var dlg = new SimulationMultiWorkingAnalyDlg(); + dlg.SetBindingData(_hydroInfo, allMonitorList, allCheckedWorkingList, visual); + dlg.ShowDialog(); + } } - #endregion - #endregion + + } } \ No newline at end of file -- Gitblit v1.9.3