From 0fd4a678c2218c42d383e964a6b4aca975aa7b7a Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期一, 02 十二月 2024 14:32:51 +0800 Subject: [PATCH] 图表修改 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 3033 +++++++++++++++++++++-------------------------------------- 1 files changed, 1,089 insertions(+), 1,944 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 b05f471..cd581a0 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,27 +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.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.Diagnostics; -using System.Windows.Media; -using System.Windows.Media.Media3D; +using Yw.EPAnet; using Yw.Hydro; using Yw.Model; -using Yw.Pump; using Yw.Vmo; -using Yw.WinFrmUI.Bimface; -using Yw.WinFrmUI.Hydro; +using Yw.WinFrmUI.Q3d; namespace HStation.WinFrmUI { @@ -36,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> @@ -77,21 +58,10 @@ public override void InitialDataSource() { base.InitialDataSource(); - if (_project == null) - { - return; - } - this.PageTitle.Caption = $"{_project.Name}\r\n姘村姏妯℃嫙"; ShowBimfaceCtrl(); ShowQ3dCtrl(); ShowPropertyCtrl(); } - - private void InitialUI() - { - InitialCurrentWorking(); - } - #region BIM鎺т欢 @@ -101,27 +71,27 @@ //鑾峰彇 bimface 鎺т欢 private async Task<XhsProjectSimulationBimfaceCtrl> GetBimfaceCtrl() { + if (_hydroInfo == null) + { + return default; + } if (_bimfaceCtrl == null) { + var overlay = this.ShowOverlay(); _bimfaceCtrl = new XhsProjectSimulationBimfaceCtrl(); _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; @@ -135,11 +105,6 @@ this.tabPageBimface.Controls.Add(bimfaceCtrl); } - private void SelectBimfaceParter() - { - - } - #endregion #region Q3d鎺т欢 @@ -150,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,366 +144,6 @@ #endregion - #region 鏋勪欢鏄庣粏 - - #region 鍙鍒楄〃 - - //鎵�鏈夊彲瑙嗗瓧鍏� - private Dictionary<string, HydroVisualInfo> _allVisualDict = null; - - //鑾峰彇鍙瀛楀吀 - private Dictionary<string, HydroVisualInfo> GetVisualDict() - { - if (_hydroInfo == null) - { - return default; - } - if (_allVisualDict == null) - { - _allVisualDict = new Dictionary<string, HydroVisualInfo>(); - var allVisualList = _hydroInfo.GetAllVisuals(); - allVisualList?.ForEach(x => _allVisualDict.Add(x.Code, x)); - } - return _allVisualDict; - } - - //鑾峰彇鍙鍒楄〃 - private List<HydroVisualInfo> GetVisualList() - { - var allVisualDict = GetVisualDict(); - return allVisualDict?.Values.ToList(); - } - - //鑾峰彇鑺傜偣鍒楄〃 - private List<HydroNodeInfo> GetNodeList() - { - if (_hydroInfo == null) - { - return default; - } - return _hydroInfo.GetAllNodes(); - } - - //鑾峰彇绠℃鍒楄〃 - private List<HydroLinkInfo> GetLinkList() - { - if (_hydroInfo == null) - { - return default; - } - return _hydroInfo.GetAllLinks(); - } - - //鑾峰彇鍙鏋勪欢 - private HydroVisualInfo GetVisual(string code) - { - var allVisualDict = GetVisualDict(); - if (allVisualDict == null) - { - return default; - } - if (allVisualDict.ContainsKey(code)) - { - return allVisualDict[code]; - } - return default; - } - - //鑾峰彇鍙鏋勪欢鍒楄〃 - private List<HydroVisualInfo> GetVisualList(List<string> codes) - { - return codes?.Select(x => GetVisual(x)).Where(x => x != null).ToList(); - } - - #endregion - - #region 瑙嗗浘鍒楄〃 - - //鎵�鏈夊彲瑙佽鍥惧瓧鍏� - private Dictionary<string, HydroVisualViewModel> _allVisualViewModelDict = null; - - //鑾峰彇鍙瑙嗗浘瀛楀吀 - private Dictionary<string, HydroVisualViewModel> GetVisualViewModelDict() - { - if (_hydroInfo == null) - { - return default; - } - if (_allVisualViewModelDict == null) - { - _allVisualViewModelDict = new Dictionary<string, HydroVisualViewModel>(); - var allVisualDict = GetVisualDict(); - if (allVisualDict != null && allVisualDict.Count > 0) - { - foreach (var visualKeyValue in allVisualDict) - { - var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visualKeyValue.Value, _hydroInfo); - var calcuVisualResult = GetCalcuVisualResult(visualKeyValue.Key); - if (calcuVisualResult != null) - { - vm.UpdateCalcuProperty(calcuVisualResult); - } - _allVisualViewModelDict.Add(visualKeyValue.Key, vm); - } - } - } - return _allVisualViewModelDict; - } - - //鑾峰彇鍙瑙嗗浘鍒楄〃 - private List<HydroVisualViewModel> GetVisualViewModelList() - { - var allVisualViewModelDict = GetVisualViewModelDict(); - return allVisualViewModelDict?.Values.ToList(); - } - - //鏇存柊鍙瑙嗗浘灞炴�� - private void UpdateVisualViewModelProperty() - { - var allVisualViewModelList = GetVisualViewModelList(); - allVisualViewModelList?.ForEach(x => x.UpdateProperty()); - } - - //鏇存柊鍙瑙嗗浘灞炴�� - private void UpdateVisualViewModelProperty(string code) - { - var allVisualViewModelDict = GetVisualViewModelDict(); - if (allVisualViewModelDict != null && allVisualViewModelDict.Count > 0) - { - if (allVisualViewModelDict.ContainsKey(code)) - { - allVisualViewModelDict[code].UpdateProperty(); - } - } - } - - //鏇存柊鍙瑙嗗浘灞炴�� - private void UpdateVisualViewModelProperty(List<string> codes) - { - codes?.ForEach(x => UpdateVisualViewModelProperty(x)); - } - - //鏇存柊鍙瑙嗗浘灞炴�� - private void UpdateVisualViewModelProperty(List<HydroVisualInfo> visualList) - { - visualList?.ForEach(x => UpdateVisualViewModelProperty(x.Code)); - } - - //鏇存柊鍙瑙嗗浘璁$畻灞炴�� - private void UpdateVisualViewModelCalcuProperty() - { - var allVisualViewModelDict = GetVisualViewModelDict(); - if (allVisualViewModelDict != null && allVisualViewModelDict.Count > 0) - { - foreach (var visualViewModelKeyValue in allVisualViewModelDict) - { - var calcuVisualResult = GetCalcuVisualResult(visualViewModelKeyValue.Key); - if (calcuVisualResult != null) - { - visualViewModelKeyValue.Value.UpdateCalcuProperty(calcuVisualResult); - } - } - } - } - - //鑾峰彇鍙瑙嗗浘 - private HydroVisualViewModel GetVisualViewModel(string code) - { - if (string.IsNullOrEmpty(code)) - { - return default; - } - var allVisualViewModelList = GetVisualViewModelList(); - return allVisualViewModelList?.Find(x => x.Code == code); - } - - //鑾峰彇鍙瑙嗗浘 - private HydroVisualViewModel GetVisualViewModel(Yw.Model.HydroVisualInfo visual) - { - return GetVisualViewModel(visual?.Code); - } - - #endregion - - #endregion - - #region 鏋勪欢鎺т欢 - - //鏋勪欢鏄庣粏鎺т欢 - private Yw.WinFrmUI.HydroVisualListCtrl _visualListCtrl = null; - - //鑾峰彇鏋勪欢鏄庣粏鎺т欢 - private Yw.WinFrmUI.HydroVisualListCtrl GetVisualListCtrl() - { - if (_visualListCtrl == null) - { - _visualListCtrl = new HydroVisualListCtrl(); - _visualListCtrl.Dock = DockStyle.Fill; - _visualListCtrl.HydroClickInfoEvent += async (visual) => - { - //ShowPropertyCtrl(visual); - await _bimfaceCtrl?.ZoomAndSelectComponent(_visual?.Code); - }; - _visualListCtrl.HydroChangedInfoEvent += (visualList) => - { - UpdateMarkList(visualList); - //UpdateSelectedProperty(); - ApplyGradingResultList(); - }; - } - return _visualListCtrl; - } - - //鏋勪欢鏄庣粏鎺т欢鏄惁鍙 - private bool IsVisualListCtrlVisible - { - get - { - if (this.docPnlBottom.Visibility == DevExpress.XtraBars.Docking.DockVisibility.Visible) - { - if (this.controlContainerBottom.Controls.Count > 0) - { - if (this.controlContainerBottom.Controls[0] is HydroVisualListCtrl) - { - return true; - } - } - } - return false; - } - } - - //鏄剧ず鏋勪欢鏄庣粏鎺т欢 - private void ShowVisualListCtrl() - { - if (_hydroInfo == null) - { - return; - } - if (IsVisualListCtrlVisible) - { - return; - } - - var visualListCtrl = GetVisualListCtrl(); - var allVisualViewModelList = GetVisualViewModelList(); - visualListCtrl.SetBindingData(allVisualViewModelList); - var allCalcuResultList = GetCalcuVisualResultList(Yw.EPAnet.CalcuMode.MinorLoss, false); - if (allCalcuResultList == null || allCalcuResultList.Count < 1) - { - visualListCtrl.SetNormalView(); - } - else - { - visualListCtrl.SetCalcuView(); - } - this.controlContainerBottom.Controls.Clear(); - this.controlContainerBottom.Controls.Add(visualListCtrl); - this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "鏋勪欢鏄庣粏"; - this.docPnlBottom.Height = 350; - } - - //鏇存柊鏋勪欢鏄庣粏鎺т欢 - private void UpdateVisualListCtrl() - { - if (!IsVisualListCtrlVisible) - { - return; - } - _visualListCtrl?.UpdateBindingData(); - } - - //鏋勪欢鏄庣粏 - private void barBtnHydroVisualList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - ShowVisualListCtrl(); - } - - #endregion - - #region 閫夋嫨鏋勪欢 - - //鍙鏉ユ簮 - protected enum eVisualSource - { - None, - Bimface, - Q3d, - Check, - Property, - Calcu, - Monitor, - Warning, - } - - //閫夋嫨鏋勪欢 - 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 灞炴�ф帶浠� //灞炴�ф帶浠� @@ -547,33 +152,26 @@ //鑾峰彇灞炴�ф帶浠� 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); + SelectVisual(visual, eVisualSource.Property); }; _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) => { //寮鸿皟杩炴帴鑺傜偣 - if (_hydroInfo == null) - { - return; - } if (link == null) { return; } - if (string.IsNullOrEmpty(linkNodeCode)) - { - return; - } - var linkNode = GetVisual(linkNodeCode); + var visualListHelper = GetVisualListHelper(); + var linkNode = visualListHelper.GetVisual(linkNodeCode); if (linkNode == null) { return; @@ -581,7 +179,7 @@ var blinkCodes = new List<string>(); if (linkNode.GetType() == typeof(HydroJunctionInfo)) { - var allLinkList = GetLinkList(); + var allLinkList = visualListHelper.GetLinkList(); if (allLinkList == null || allLinkList.Count < 1) { return; @@ -603,29 +201,36 @@ await Task.Delay(5000); await _bimfaceCtrl?.ClearBlinkComponents(); }; - _propertyCtrl.PropertyValueChangedEvent += (visual) => + _propertyCtrl.PropertyValueChangedEvent += async (visual) => { if (visual == null) { return; } UpdateVisualListCtrl(); - //ApplyGradingResultList(visual); + var gradingHelper = await GetGradingHelper(); + gradingHelper.Set(); }; - _propertyCtrl.MarkPropertyValueChangedEvent += (visual) => + _propertyCtrl.MarkPropertyValueChangedEvent += async (visual) => { //鏍囨敞灞炴�у彂鐢熸敼鍙� //鍒ゆ柇褰撳墠鏄惁鏈夋爣娉ㄥ睍绀猴紝鑻ユ湁鍒欐洿鏂版爣娉紝鏈�濂芥槸鏇存柊鍗曚釜鏍囨敞 + var markHelper = await GetMarkHelper(); + markHelper.Set(visual); }; - _propertyCtrl.GradingPropertyValueChangedEvent += (parter) => + _propertyCtrl.GradingPropertyValueChangedEvent += async (visual) => { //鍒嗙骇灞炴�у彂鐢熸敼鍙� //鍒ゆ柇褰撳墠鏄惁鏈夊垎绾у睍绀猴紝鑻ユ湁鍒欐洿鏂板垎绾э紝鏈�濂芥槸鏇存柊鍗曚釜鍒嗙骇 + var gradingHelper = await GetGradingHelper(); + gradingHelper.Set(visual); }; - _propertyCtrl.FlowEffectPropertyValueChangedEvent += (visual) => + _propertyCtrl.FlowEffectPropertyValueChangedEvent += async (visual) => { //娴佸悜灞炴�у彂鐢熸敼鍙� //鍒ゆ柇娴佸悜鏄惁鍔犺浇锛屽鏋滃姞杞藉垯鏇存柊娴佸悜锛屾渶濂芥槸鏇存柊鍗曚釜娴佸悜 + var flowEffectHelper = await GetFlowEffectHelper(); + flowEffectHelper.Set(visual); }; } @@ -670,7 +275,8 @@ private void SetPropertyCtrl(HydroVisualInfo visual) { ShowPropertyCtrl(); - var vm = GetVisualViewModel(visual); + var visualVmListHelper = GetVisualVmListHelper(); + var vm = visualVmListHelper.GetVisual(visual); _propertyCtrl.SelectedObject = vm; } @@ -691,118 +297,305 @@ #endregion - #region 鑷姩鍖归厤 + #region 閫夋嫨鏋勪欢 - //鑾峰彇鍖归厤鍒楄〃鎺т欢 - private XhsProjectSimulationMatchingListCtrl GetMatchingListCtrl() + //鍙鏉ユ簮 + protected enum eVisualSource { - 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; + None, + Bimface, + Q3d, + Property, + List, + Set, + Search, + Monitor, + Check, + Calcu, + Warning, } - //鍖归厤鍒楄〃鎺т欢 - private XhsProjectSimulationMatchingListCtrl _matchingListCtrl = null; + //閫夋嫨鏋勪欢 + private Yw.Model.HydroVisualInfo _visual = null; - //鑷姩鍖归厤 - private void barBtnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //閫夋嫨鏋勪欢 + private void SelectVisual(HydroVisualInfo visual, eVisualSource source) { - if (_hydroInfo == null) + _visual = visual; + switch (source) { - return; + 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; } - this.controlContainerBottom.Controls.Clear(); - var matchingListCtrl = GetMatchingListCtrl(); - var input = AssetsMatchingParasHelper.Create(_hydroInfo, GetCalcuVisualResultList(Yw.EPAnet.CalcuMode.MinorLoss, false)); - 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 鏈尮鍒楄〃 + #region 鏋勪欢鏄庣粏 - //鑾峰彇鏈尮閰嶅垪琛ㄦ帶浠� - private XhsProjectSimulationUnMatchingListCtrl GetUnMatchingListCtrl() + #region 鍙鍒楄〃 + + //鍙鍒楄〃杈呭姪绫� + private SimulationVisualListHelper _visualListHelper = null; + + //鑾峰彇鍙鍒楄〃杈呭姪绫� + private SimulationVisualListHelper GetVisualListHelper() { - if (_unMatchingListCtrl == null) + if (_visualListHelper == 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(); - }; + _visualListHelper = new SimulationVisualListHelper(); + _visualListHelper.InitialData(_hydroInfo); } - return _unMatchingListCtrl; + return _visualListHelper; } - private XhsProjectSimulationUnMatchingListCtrl _unMatchingListCtrl = null;//鏈尮閰嶅垪琛� + #endregion - //鏈尮閰嶅垪琛� - private void barBtnUnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + #region 瑙嗗浘鍒楄〃 + + //鍙瑙嗗浘鍒楄〃杈呭姪绫� + private SimulationVisualVmListHelper _visualVmListHelper = null; + + //鑾峰彇鍙瑙嗗浘鍒楄〃杈呭姪绫� + private SimulationVisualVmListHelper GetVisualVmListHelper() + { + if (_hydroInfo == null) + { + return default; + } + if (_visualVmListHelper == null) + { + var visualListHelper = GetVisualListHelper(); + var calcuResultHelper = GetCalcuResultHelper(); + _visualVmListHelper = new SimulationVisualVmListHelper(visualListHelper, calcuResultHelper); + } + return _visualVmListHelper; + } + + #endregion + + #region 鏄庣粏鎺т欢 + + //鏋勪欢鏄庣粏鎺т欢 + private Yw.WinFrmUI.HydroVisualListCtrl _visualListCtrl = null; + + //鑾峰彇鏋勪欢鏄庣粏鎺т欢 + private Yw.WinFrmUI.HydroVisualListCtrl GetVisualListCtrl() + { + if (_visualListCtrl == null) + { + _visualListCtrl = new HydroVisualListCtrl(); + _visualListCtrl.Dock = DockStyle.Fill; + _visualListCtrl.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.List); + }; + _visualListCtrl.HydroChangedInfoEvent += (visualList) => + { + SelectVisual(_visual, eVisualSource.List); + }; + } + return _visualListCtrl; + } + + //鏋勪欢鏄庣粏鎺т欢鏄惁鍙 + private bool IsVisualListCtrlVisible + { + get + { + if (this.docPnlBottom.Visibility == DevExpress.XtraBars.Docking.DockVisibility.Visible) + { + if (this.controlContainerBottom.Controls.Count > 0) + { + if (this.controlContainerBottom.Controls[0] is HydroVisualListCtrl) + { + return true; + } + } + } + return false; + } + } + + //鏄剧ず鏋勪欢鏄庣粏鎺т欢 + private void ShowVisualListCtrl() { 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; + var visualListCtrl = GetVisualListCtrl(); + if (!IsVisualListCtrlVisible) + { + this.controlContainerBottom.Controls.Clear(); + this.controlContainerBottom.Controls.Add(visualListCtrl); + this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; + this.docPnlBottom.Text = "鏋勪欢鏄庣粏"; + this.docPnlBottom.Height = 350; + } + var visualVmListHelper = GetVisualVmListHelper(); + var allVisualVmList = visualVmListHelper.GetVisualList(); + visualListCtrl.SetBindingData(allVisualVmList); + var calcuResult = GetCalcuResult(); + if (calcuResult != null && calcuResult.Succeed) + { + visualListCtrl.SetCalcuView(); + } + else + { + visualListCtrl.SetNormalView(); + } } + + //鏇存柊鏋勪欢鏄庣粏鎺т欢 + private void UpdateVisualListCtrl() + { + if (!IsVisualListCtrlVisible) + { + return; + } + _visualListCtrl?.UpdateBindingData(); + var calcuResult = GetCalcuResult(); + if (calcuResult != null && calcuResult.Succeed) + { + _visualListCtrl.SetCalcuView(); + } + else + { + _visualListCtrl.SetNormalView(); + } + } + + //鏋勪欢鏄庣粏 + private void barBtnVisualList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + ShowVisualListCtrl(); + } + + #endregion + + #region 鏋勪欢鏄剧ず + + //鏋勪欢鍙杈呭姪绫� + private SimulationVisualVisibleHelper _visualVisibleHelper = null; + + //鑾峰彇鏋勪欢鍙杈呭姪绫� + private async Task<SimulationVisualVisibleHelper> GetVisualVisibleHelper() + { + if (_hydroInfo == null) + { + return default; + } + if (_visualVisibleHelper == null) + { + var visualListHelper = GetVisualListHelper(); + var bimfaceCtrl = await GetBimfaceCtrl(); + _visualVisibleHelper = new SimulationVisualVisibleHelper(visualListHelper, bimfaceCtrl); + _visualVisibleHelper.InitialData(_hydroInfo); + } + return _visualVisibleHelper; + } + + //璁剧疆鏋勪欢鍙鎬� + private async void SetVisualVisible() + { + if (_hydroInfo == null) + { + return; + } + var visualVisibleHelper = await GetVisualVisibleHelper(); + var allVisibleList = visualVisibleHelper.Items; + var dlg = new SetHydroVisualVisibleDlg(); + dlg.SetBindingData(allVisibleList); + dlg.ReloadDataEvent += (list) => + { + visualVisibleHelper.Items = list; + visualVisibleHelper.Set(); + }; + dlg.ShowDialog(); + } + + //璁剧疆鏋勪欢鏄剧ず + private void barBtnSetVisualVisible_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + SetVisualVisible(); + } + + #endregion #endregion @@ -828,93 +621,7 @@ SetDecoratorVisible(this.barCkDecorator.Checked); } - #endregion - - #region 鏋勪欢鏄剧ず - - //鎵�鏈夋樉绀哄垪琛� - private List<HydroVisualVisibleViewModel> _allVisibleList = null; - - //鑾峰彇鏄剧ず鍒楄〃 - private List<HydroVisualVisibleViewModel> GetVisibleList() - { - if (_hydroInfo == null) - { - return default; - } - if (_allVisibleList == null) - { - _allVisibleList = _hydroInfo.GetVisibleList(); - if (_allVisibleList == null) - { - _allVisibleList = new List<HydroVisualVisibleViewModel>(); - } - } - return _allVisibleList; - } - - //璁剧疆鏄剧ず鍒楄〃 - private async void SetVisibleList(List<HydroVisualVisibleViewModel> allVisibleList) - { - if (allVisibleList == null || allVisibleList.Count < 1) - { - return; - } - var dict = new Dictionary<string, HydroVisualVisibleViewModel>(); - allVisibleList.ForEach(x => dict.Add(x.Catalog, x)); - var allVisualList = GetVisualList(); - if (allVisualList != null && allVisualList.Count > 0) - { - var tcodes = new List<string>(); - var ocodes = new List<string>(); - allVisualList.ForEach(x => - { - if (dict.ContainsKey(x.Catalog)) - { - var visible = dict[x.Catalog]; - if (visible.Visible) - { - ocodes.Add(x.Code); - } - else - { - tcodes.Add(x.Code); - } - } - }); - await _bimfaceCtrl?.TranslucentComponents(tcodes); - await _bimfaceCtrl?.OpaqueComponents(ocodes); - } - } - - //璁剧疆鏄剧ず鍒楄〃 - private void SetVisibleList() - { - var allVisibleList = GetVisibleList(); - SetVisibleList(allVisibleList); - } - - //鏄剧ず鏋勪欢鏄剧ず绐椾綋 - private void ShowVisualVisibleDlg() - { - var allVisibleList = GetVisibleList(); - var dlg = new SetHydroVisualVisibleDlg(); - dlg.SetBindingData(allVisibleList); - dlg.ReloadDataEvent += (list) => - { - _allVisibleList = list; - SetVisibleList(); - }; - dlg.ShowDialog(); - } - - //璁剧疆鏋勪欢鏄剧ず - private void barBtnSetVisualVisible_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - ShowVisualVisibleDlg(); - } - - #endregion + #endregion #region 淇濆瓨淇℃伅 @@ -955,95 +662,116 @@ //姘村簱 this.barBtnSetReservoirList.ItemClick += delegate { - //var dlg = new HydroReservoirBulkSetListDlg(); - //dlg.ShowDialog(); + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroReservoirListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + dlg.ShowDialog(); }; //姘存睜 this.barBtnSetTankList.ItemClick += delegate { - //var dlg = new HydroTankBulkSetListDlg(); - //dlg.ShowDialog(); + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroTankListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + 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(); + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroWaterboxListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + dlg.ShowDialog(); }; //杩炴帴鑺傜偣 this.barBtnSetJunctionList.ItemClick += delegate { - //var dlg = new HydroJunctionBulkSetListDlg(); - //dlg.ShowDialog(); + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroJunctionListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + 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(); + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroBluntheadListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + 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(); + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroElbowListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + dlg.ShowDialog(); }; //涓夐�� this.barBtnSetThreelinkList.ItemClick += delegate @@ -1054,6 +782,14 @@ } var dlg = new SetHydroThreelinkListDlg(); dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; dlg.ShowDialog(); }; //鍥涢�� @@ -1065,6 +801,14 @@ } var dlg = new SetHydroFourlinkListDlg(); dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; dlg.ShowDialog(); }; //姘磋〃 @@ -1076,6 +820,14 @@ } var dlg = new SetHydroMeterListDlg(); dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; dlg.ShowDialog(); }; //娴侀噺璁� @@ -1087,6 +839,14 @@ } var dlg = new SetHydroFlowmeterListDlg(); dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; dlg.ShowDialog(); }; //鍘嬪姏琛� @@ -1098,6 +858,14 @@ } var dlg = new SetHydroPressmeterListDlg(); dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; dlg.ShowDialog(); }; //绠¢亾 @@ -1109,6 +877,33 @@ } var dlg = new SetHydroPipeListDlg(); dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + dlg.ShowDialog(); + }; + //杩囨浮浠� + this.barBtnSetTranslationList.ItemClick += delegate + { + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroTranslationListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; dlg.ShowDialog(); }; //姘存车 @@ -1120,6 +915,14 @@ } var dlg = new SetHydroPumpListDlg(); dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; dlg.ShowDialog(); }; //闃�闂� @@ -1131,6 +934,52 @@ } var dlg = new SetHydroValveListDlg(); dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + dlg.ShowDialog(); + }; + //鎹㈢儹鍣� + this.barBtnSetExchangerList.ItemClick += delegate + { + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroExchangerListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; + dlg.ShowDialog(); + }; + //鎹㈢儹鍣� + this.barBtnSetCompressorList.ItemClick += delegate + { + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroCompressorListDlg(); + dlg.SetBindingData(_hydroInfo); + dlg.HydroClickInfoEvent += (visual) => + { + SelectVisual(visual, eVisualSource.Set); + }; + dlg.HydroChangedInfoEvent += visuals => + { + SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set); + }; dlg.ShowDialog(); }; } @@ -1300,26 +1149,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) { @@ -1340,6 +1169,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 @@ -1354,29 +1204,19 @@ { if (_searchCtrl == null) { + var visualVmListHelper = GetVisualVmListHelper(); + var allVisualVmList = visualVmListHelper.GetVisualList(); _searchCtrl = new HydroVisualSearchListCtrl(); _searchCtrl.Dock = DockStyle.Fill; - var allVisualViewModelList = GetVisualViewModelList(); - _searchCtrl.InitialData(allVisualViewModelList); - _searchCtrl.HydroClickInfoEvent += async (visual) => + _searchCtrl.InitialData(allVisualVmList); + _searchCtrl.HydroClickInfoEvent += (visual) => { - //ShowPropertyCtrl(visual); - await _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); + SelectVisual(visual, eVisualSource.Check); }; - _searchCtrl.HydroSearchInfoEvent += async (list) => + _searchCtrl.HydroSearchInfoEvent += (list) => { - var elementIds = new List<string>(); - if (list != null && list.Count > 0) - { - _visual = list.First(); - list.ForEach(x => elementIds.Add(x.Code)); - } - else - { - _visual = null; - } - //ShowSelectedProperty(); - await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); + var visual = list?.FirstOrDefault(); + SelectVisual(visual, eVisualSource.Search); }; } return _searchCtrl; @@ -1447,118 +1287,36 @@ #region 妯″瀷鏍囨敞 - #region 鏍囨敞璁剧疆 + //鏍囨敞杈呭姪绫� + private SimulationMarkHelper _markHelper = null; - //鎵�鏈夋爣娉ㄨ缃垪琛� - private List<HydroMarkSetViewModel> _allMarkSetList = null; - - //鑾峰彇鏍囨敞璁剧疆鍒楄〃 - private List<HydroMarkSetViewModel> GetMarkSetList() + //鑾峰彇鏍囨敞杈呭姪绫� + private async Task<SimulationMarkHelper> GetMarkHelper() { - if (_hydroInfo == null) + if (_markHelper == null) { - return default; + var visualListHelper = GetVisualListHelper(); + var calcuResultHelper = GetCalcuResultHelper(); + var bimfaceCtrl = await GetBimfaceCtrl(); + _markHelper = new SimulationMarkHelper(visualListHelper, calcuResultHelper, bimfaceCtrl); } - if (_allMarkSetList == null) - { - _allMarkSetList = HydroMarkHelper.GetSetList(_hydroInfo); - } - return _allMarkSetList; + return _markHelper; } - #endregion - - #region 鏍囨敞缁撴灉 - - //鎵�鏈夋爣娉ㄧ粨鏋滃垪琛� - private List<HydroMarkResultViewModel> _allMarkResultList = null; - - //鑾峰彇鏍囨敞缁撴灉鍒楄〃 - //UseCache 鏄惁浣跨敤缂撳瓨 - private List<HydroMarkResultViewModel> GetMarkResultList(bool useCache = true) - { - if (_hydroInfo == null) - { - return default; - } - if (!useCache) - { - var allSetList = GetMarkSetList(); - _allMarkResultList = HydroMarkHelper.GetResultList(_hydroInfo, allSetList); - } - if (_allMarkResultList == null) - { - var allSetList = GetMarkSetList(); - _allMarkResultList = HydroMarkHelper.GetResultList(_hydroInfo, allSetList); - } - return _allMarkResultList; - } - - #endregion - - #region 鏍囨敞鏄剧ず - - //鏍囨敞鏄惁鏄剧ず - private bool _isMarkVisible = false; - - //鏇存柊鏍囨敞 - private async void UpdateMark(Yw.Model.HydroVisualInfo visual) - { - var allSetList = GetMarkSetList(); - var result = HydroMarkHelper.GetResult(visual, allSetList); - if (result == null) - { - return; - } - var allResultList = GetMarkResultList(true); - allResultList.Remove(x => x.Code == visual.Code); - allResultList.Add(result); - if (_isMarkVisible) - { - var leadLabel = new LogicMarkLeadLabel() { Id = result.Code, Text = result.Text, Distance = null }; - await _bimfaceCtrl?.UpdateLogicMarkLeadLabel(leadLabel); - } - } - - //鏇存柊鏍囨敞鍒楄〃 - private void UpdateMarkList(List<Yw.Model.HydroVisualInfo> visuals) - { - if (visuals == null || visuals.Count < 1) - { - visuals.ForEach(x => UpdateMark(x)); - } - } - - //搴旂敤鏍囨敞鍒楄〃 - //UseCache 鏄惁浣跨敤缂撳瓨 - private async void ApplyMarkList(bool useCache = true) - { - if (_isMarkVisible) - { - var allResultList = GetMarkResultList(useCache); - var leadLabels = allResultList?.Select(x => new LogicMarkLeadLabel(x.Code, x.Text, null)).ToList(); - await _bimfaceCtrl?.SetLogicMarkLeadLabels(leadLabels); - } - else - { - await _bimfaceCtrl?.ClearLogicMarkLeadLabels(); - } - } - - //鏄剧ず鏍囨敞璁剧疆绐椾綋 - private void ShowSetMarkDlg() + //鏄剧ず鏍囨敞鍒楄〃 + private async void ShowMarkList() { if (_hydroInfo == null) { return; } - var allMarkSetList = GetMarkSetList(); + var markHelper = await GetMarkHelper(); var dlg = new SetHydroMarkDlg(); - dlg.SetBindingData(allMarkSetList); + dlg.SetBindingData(markHelper.Sets); dlg.ReloadDataEvent += (list) => { - _allMarkSetList = list; - ApplyMarkList(false); + markHelper.Sets = list; + markHelper.Set(); }; dlg.ShowDialog(); } @@ -1566,251 +1324,98 @@ //璁剧疆鏍囨敞 private void barBtnSetMark_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - ShowSetMarkDlg(); + ShowMarkList(); } //鏄惁鏄剧ず - private void barCkMark_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private async void barCkMark_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - _isMarkVisible = this.barCkMark.Checked; - ApplyMarkList(true); + var markHelper = await GetMarkHelper(); + markHelper.Visible = this.barCkMark.Checked; + markHelper.Set(); } - - #endregion #endregion #region 棰滆壊鍒嗙骇 - #region 棰滆壊閰嶇疆 + //棰滆壊鍒嗙骇杈呭姪绫� + private SimulationGradingHelper _gradingHelper = null; - //鎵�鏈夐鑹插垎绾ч厤缃垪琛� - private List<HydroGradingVmo> _allGradingList = null; - - //鑾峰彇棰滆壊鍒嗙骇閰嶇疆鍒楄〃 - private async Task<List<HydroGradingVmo>> GetGradingList() + //鑾峰彇棰滆壊鍒嗙骇杈呭姪绫� + private async Task<SimulationGradingHelper> GetGradingHelper() { - if (_hydroInfo == null) + if (_gradingHelper == null) { - return default; + var visualListHelper = GetVisualListHelper(); + var calcuResultHelper = GetCalcuResultHelper(); + var bimfaceCtrl = await GetBimfaceCtrl(); + _gradingHelper = new SimulationGradingHelper(visualListHelper, calcuResultHelper, bimfaceCtrl); } - if (_allGradingList == null) - { - _allGradingList = await HydroGradingHelper.GetGradingList(_hydroInfo); - } - return _allGradingList; + return _gradingHelper; } - //鏄剧ず棰滆壊鍒嗙骇绐椾綋 - private async void ShowGradingDlg() + //璁剧疆棰滆壊鍒嗙骇鍒楄〃 + private async void SetGradingList() { if (_hydroInfo == null) { return; } - var allGradingList = await GetGradingList(); + var gradingHelper = await GetGradingHelper(); + var allGradingList = await gradingHelper.GetGradingList(); var dlg = new SetHydroGradingTreeDlg(); dlg.SetBindingData(_hydroInfo, allGradingList); dlg.ReloadDataEvent += (list) => { - _allGradingList = list; - ApplyGradingResultList(false); + gradingHelper.SetGradingList(list); + gradingHelper.Set(); }; dlg.ApplyDataEvent += (catalog, propName) => { - UpdateGradingApplyList(catalog, propName); - ApplyGradingResultList(false); + gradingHelper.UpdateApply(catalog, propName); + gradingHelper.Set(); }; dlg.ShowDialog(); } //閰嶇疆棰滆壊鍒嗙骇 - private void barBtnGradingSet_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private void barBtnSetGradingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - ShowGradingDlg(); + SetGradingList(); } - #endregion - - #region 搴旂敤鍒嗙骇 - - //棰滆壊鍒嗙骇搴旂敤鍒楄〃 - private List<HydroGradingApplyViewModel> _allGradingApplyList = null; - - //鑾峰彇棰滆壊鍒嗙骇搴旂敤鍒楄〃 - private List<HydroGradingApplyViewModel> GetGradingApplyList() - { - if (_hydroInfo == null) - { - return default; - } - if (_allGradingApplyList == null) - { - _allGradingApplyList = HydroGradingHelper.GetApplyList(_hydroInfo); - } - return _allGradingApplyList; - } - - //鏇存柊棰滆壊鍒嗙骇搴旂敤鍒楄〃 - private void UpdateGradingApplyList(string catalog, string propName) - { - var allGradingApplyList = GetGradingApplyList(); - if (allGradingApplyList == null || allGradingApplyList.Count < 1) - { - return; - } - var apply = allGradingApplyList.Find(x => x.Catalog == catalog); - if (apply == null) - { - return; - } - apply.PropName = propName; - } - - //鏄剧ず棰滆壊鍒嗙骇搴旂敤绐椾綋 - private void ShowGradingApplyDlg() + //搴旂敤棰滆壊鍒嗙骇鍒楄〃 + private async void ApplyGradingList() { if (_hydroInfo == null) { return; } - var allGradingApplyList = GetGradingApplyList(); - if (allGradingApplyList == null || allGradingApplyList.Count < 1) - { - return; - } + var gradingHelper = await GetGradingHelper(); var dlg = new ApplyHydroGradingDlg(); - dlg.SetBindingData(allGradingApplyList); - dlg.ReloadDataEvent += (obj) => + dlg.SetBindingData(gradingHelper.Applies); + dlg.ReloadDataEvent += (list) => { - _allGradingApplyList = obj; - ApplyGradingResultList(false); + gradingHelper.Applies = list; + gradingHelper.Set(); }; dlg.ShowDialog(); } //搴旂敤棰滆壊鍒嗙骇 - private void barBtnGradingApply_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private void barBtnApplyGradingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - ShowGradingApplyDlg(); - } - - #endregion - - #region 搴旂敤缁撴灉 - - //鎵�鏈夐鑹插垎绾х粨鏋滃垪琛� - private List<HydroGradingResultViewModel> _allGradingResultList = null; - - //鑾峰彇棰滆壊鍒嗙骇缁撴灉鍒楄〃 - //UseCache鏄惁浣跨敤缂撳瓨 - private async Task<List<HydroGradingResultViewModel>> GetGradingResultList(bool useCache = true) - { - if (_hydroInfo == null) - { - return default; - } - var allGradingList = await GetGradingList(); - var allGradingApplyList = GetGradingApplyList(); - var allCalcuResultList = GetCalcuVisualResultList(Yw.EPAnet.CalcuMode.MinorLoss, false); - if (!useCache) - { - _allGradingResultList = HydroGradingHelper.GetResultList(_hydroInfo, allGradingList, allGradingApplyList, allCalcuResultList); - } - if (_allGradingResultList == null) - { - _allGradingResultList = HydroGradingHelper.GetResultList(_hydroInfo, allGradingList, allGradingApplyList, allCalcuResultList); - } - return _allGradingResultList; - } - - #endregion - - #region 缁撴灉灞曠ず - - //棰滆壊鍒嗙骇鏄惁鏄剧ず - private bool _isGradingVisible = false; - - //搴旂敤棰滆壊鍒嗙骇缁撴灉鍒楄〃 - //UseCache鏄惁浣跨敤缂撳瓨 - private async void ApplyGradingResultList(bool useCache = true) - { - if (_hydroInfo == null) - { - return; - } - var allGradingResultList = await GetGradingResultList(useCache); - if (allGradingResultList == null || allGradingResultList.Count < 1) - { - return; - } - if (_isGradingVisible) - { - var groupList = allGradingResultList.GroupBy(x => x.Color).ToList(); - groupList.ForEach(async x => await _bimfaceCtrl?.OverrideComponentsColor(x.Select(t => t.Code).Distinct().ToList(), x.Key, 1)); - } - else - { - var codes = allGradingResultList.Select(x => x.Code).Distinct().ToList(); - await _bimfaceCtrl?.RestoreComponentsColor(codes); - } - } - - //搴旂敤棰滆壊鍒嗙骇缁撴灉鍒楄〃 - private async void ApplyGradingResultList(Yw.Model.HydroVisualInfo visual) - { - if (visual == null) - { - return; - } - var allGradingList = await GetGradingList(); - var allGradingApplyList = GetGradingApplyList(); - var allGradingResultList = await GetGradingResultList(true); - var allCalcuResultList = GetCalcuVisualResultList(Yw.EPAnet.CalcuMode.MinorLoss, false); - var oldResult = allGradingResultList?.Find(x => x.Code == visual.Code); - if (oldResult != null) - { - allGradingResultList.Remove(oldResult); - } - var newResult = HydroGradingHelper.GetResult(visual, allGradingList, allGradingApplyList, allCalcuResultList); - if (newResult != null) - { - allGradingResultList.Add(newResult); - } - if (_isGradingVisible) - { - if (newResult == null) - { - if (oldResult != null) - { - await _bimfaceCtrl?.RestoreComponentsColor(oldResult.Code); - } - } - else - { - await _bimfaceCtrl?.OverrideComponentsColor(newResult.Code, newResult.Color, 1); - } - } - } - - //搴旂敤棰滆壊鍒嗙骇缁撴灉鍒楄〃 - private void ApplyGradingResultList(List<Yw.Model.HydroVisualInfo> visualList) - { - if (visualList == null || visualList.Count < 1) - { - return; - } - visualList.ForEach(x => ApplyGradingResultList(x)); + ApplyGradingList(); } //棰滆壊鍒嗙骇灞曠ず - private void barCkGrading_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private async void barCkGrading_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - _isGradingVisible = this.barCkGrading.Checked; - ApplyGradingResultList(true); + var gradingHelper = await GetGradingHelper(); + gradingHelper.Visible = this.barCkGrading.Checked; + gradingHelper.Set(); } - - #endregion #endregion @@ -1841,6 +1446,9 @@ await _bimfaceCtrl?.ZoomAndSelectComponents(null); //ShowSelectedProperty(); TipFormHelper.ShowSucceed("鏁版嵁宸插埛鏂�"); + + var visualListHelper = GetVisualListHelper(); + visualListHelper.InitialData(_hydroInfo); } } @@ -1848,165 +1456,33 @@ #region 姘存祦鍔ㄧ敾 - //姘存祦鍔ㄧ敾鏄惁鍙 - private bool _isFlowEffectVisible = false; + //姘存祦鍔ㄧ敾杈呭姪绫� + private SimulationFlowEffectHelper _flowEffectHelper = null; - //鎵�鏈夋按娴佸姩鐢诲垪琛� - private List<LogicFlowEffect> _allFlowEffectList = null; - - //鑾峰彇娴佸悜鍒楄〃 - private List<LogicFlowEffect> GetFlowEffectList() + //鑾峰彇姘存祦鍔ㄧ敾杈呭姪绫� + private async Task<SimulationFlowEffectHelper> GetFlowEffectHelper() { if (_hydroInfo == null) { return default; } - if (_allFlowEffectList == null) + if (_flowEffectHelper == null) { - _allFlowEffectList = new List<LogicFlowEffect>(); - var allCalcuResultList = GetCalcuVisualResultList(Yw.EPAnet.CalcuMode.MinorLoss, false); - if (_hydroInfo.Pipes != null && _hydroInfo.Pipes.Count > 0) - { - foreach (var parter in _hydroInfo.Pipes) - { - var flowEffect = new LogicFlowEffect(); - _allFlowEffectList.Add(flowEffect); - flowEffect.Id = parter.Code; - flowEffect.Rotation = 90; - flowEffect.SpeedX = 0.1; - if (parter.FlowDirectionX == Yw.Hydro.FlowDirection.None) - { - flowEffect.SpeedX = 0; - } - else if (parter.FlowDirectionX == Yw.Hydro.FlowDirection.Positive) - { - flowEffect.SpeedX = 0.1; - } - else - { - flowEffect.SpeedX = -0.1; - } - - if (parter.FlowDirectionY == Yw.Hydro.FlowDirection.None) - { - flowEffect.SpeedY = 0; - } - else if (parter.FlowDirectionY == Yw.Hydro.FlowDirection.Positive) - { - flowEffect.SpeedY = 0.1; - } - else - { - flowEffect.SpeedY = -0.1; - } - - var calcuResult = allCalcuResultList?.Find(x => x.Code == parter.Code) as HydroCalcuLinkResult; - if (calcuResult != null) - { - if (calcuResult.CalcuVelocity < 0) - { - flowEffect.SpeedX = -flowEffect.SpeedX; - } - } - } - } + var visualListHelper = GetVisualListHelper(); + var bimfaceCtrl = await GetBimfaceCtrl(); + _flowEffectHelper = new SimulationFlowEffectHelper(visualListHelper, bimfaceCtrl); + var calcuResult = GetCalcuResult(); + _flowEffectHelper.InitialData(calcuResult); } - return _allFlowEffectList; - } - - //鍔犺浇姘存祦鍔ㄧ敾 - private async void LoadFlowEffect() - { - if (_hydroInfo == null) - { - return; - } - var allFlowEffectList = GetFlowEffectList(); - await _bimfaceCtrl?.LoadFlowEffect(allFlowEffectList); - } - - //鍗歌浇姘存祦鍔ㄧ敾 - private async void UnloadFlowEffect() - { - if (_hydroInfo == null) - { - return; - } - await _bimfaceCtrl?.UnloadFlowEffect(); - } - - //璁剧疆姘村姏鍔ㄧ敾 - private void SetFlowEffect() - { - if (_isFlowEffectVisible) - { - LoadFlowEffect(); - } - else - { - UnloadFlowEffect(); - } - } - - //鏇存柊姘存祦鍔ㄧ敾 - private async void UpdateFlowEffect(Yw.Model.HydroVisualInfo visual) - { - if (_hydroInfo == null) - { - return; - } - var allFlowEffectList = GetFlowEffectList(); - var flowEffect = _allFlowEffectList?.Find(x => x.Id == visual.Code); - if (flowEffect == null) - { - return; - } - if (visual.FlowDirectionX == Yw.Hydro.FlowDirection.None) - { - flowEffect.SpeedX = 0; - } - else if (visual.FlowDirectionX == Yw.Hydro.FlowDirection.Positive) - { - flowEffect.SpeedX = 0.1; - } - else - { - flowEffect.SpeedX = -0.1; - } - - if (visual.FlowDirectionY == Yw.Hydro.FlowDirection.None) - { - flowEffect.SpeedY = 0; - } - else if (visual.FlowDirectionY == Yw.Hydro.FlowDirection.Positive) - { - flowEffect.SpeedY = 0.1; - } - else - { - flowEffect.SpeedY = -0.1; - } - - var allCalcuResultList = GetCalcuVisualResultList(Yw.EPAnet.CalcuMode.MinorLoss, false); - var calcuResult = allCalcuResultList?.Find(x => x.Code == visual.Code) as HydroCalcuLinkResult; - if (calcuResult != null) - { - if (calcuResult.CalcuVelocity < 0) - { - flowEffect.SpeedX = -flowEffect.SpeedX; - } - } - if (_isFlowEffectVisible) - { - await _bimfaceCtrl?.UpdateFlowEffect(flowEffect); - } + return _flowEffectHelper; } //姘存祦鍔ㄧ敾鏄惁鍙 - private void barCkFlowEffect_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private async void barCkFlowEffect_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - _isFlowEffectVisible = this.barCkFlowEffect.Checked; - SetFlowEffect(); + var flowEffectHelper = await GetFlowEffectHelper(); + flowEffectHelper.Visible = this.barCkFlowEffect.Checked; + flowEffectHelper.Set(); } #endregion @@ -2015,57 +1491,33 @@ #region 鐩戞祴鐐� - //鎵�鏈夌洃娴嬪垪琛� - private List<HydroMonitorVmo> _allMonitorList = null; + //鐩戞祴鐐硅緟鍔╃被 + private SimulationMonitorHelper _monitorHelper = null; - //鑾峰彇鐩戞祴鍒楄〃 - private async Task<List<HydroMonitorVmo>> GetMonitorList() + //鑾峰彇鐩戞祴鐐硅緟鍔╃被 + private SimulationMonitorHelper GetMonitorHelper() { if (_hydroInfo == null) { return default; } - if (_allMonitorList == null) + if (_monitorHelper == null) { - _allMonitorList = await BLLFactory<Yw.BLL.HydroMonitor>.Instance.GetByModelID(_hydroInfo.ID); - if (_allMonitorList == null) - { - _allMonitorList = new List<HydroMonitorVmo>(); - } + var visualListHelper = GetVisualListHelper(); + _monitorHelper = new SimulationMonitorHelper(visualListHelper); } - return _allMonitorList; + return _monitorHelper; } - //鏇存柊鐩戞祴鍒楄〃 - private async Task<List<HydroMonitorVmo>> UpdateMonitorList(string code) - { - if (_hydroInfo == null) - { - return default; - } - var allMonitorList = await GetMonitorList(); - allMonitorList.RemoveAll(x => x.Relation == code); - var monitorList = await BLLFactory<Yw.BLL.HydroMonitor>.Instance.GetByRelation(_hydroInfo.ID, code); - if (monitorList != null && monitorList.Count > 0) - { - allMonitorList.AddRange(monitorList); - } - return monitorList; - } - - //璁剧疆鐩戞祴鐐圭獥浣� - private async void SetMonitorListDlg(HydroVisualInfo visual) + //璁剧疆鐩戞祴鐐瑰垪琛� + private async void SetMonitorList(HydroVisualInfo visual) { if (_hydroInfo == null) { return; } - if (visual == null) - { - return; - } - - var allMonitorList = await GetMonitorList(); + var monitorHelper = GetMonitorHelper(); + var allMonitorList = await monitorHelper.Get(); var dlg = new SetHydroMonitorListDlg(); dlg.SetBindingData(_hydroInfo, visual, allMonitorList); dlg.ReloadDataEvent += async (list) => @@ -2073,13 +1525,16 @@ var bol = await BLLFactory<Yw.BLL.HydroMonitor>.Instance.Save(_hydroInfo.ID, visual.Code, list); if (!bol) { - TipFormHelper.ShowError("璁剧疆澶辫触"); + TipFormHelper.ShowError("璁剧疆澶辫触锛�"); return; } - TipFormHelper.ShowSucceed("璁剧疆鎴愬姛"); - var monitorList = await UpdateMonitorList(visual.Code); - UpdateMonitorValueList(visual.Code, monitorList); - SetLogicMonitorList(); + TipFormHelper.ShowSucceed("璁剧疆鎴愬姛锛�"); + var monitorList = await monitorHelper.Update(visual.Code); + var monitorValueHelper = GetMonitorValueHelper(); + monitorValueHelper.Update(visual.Code, monitorList); + var monitorMarkerHelper = await GetMonitorMarkerHelper(); + monitorMarkerHelper.Update(visual.Code, monitorList); + monitorMarkerHelper.Set(); }; dlg.ShowDialog(); } @@ -2087,75 +1542,31 @@ //璁剧疆鐩戞祴鐐� private void barBtnSetMonitor_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - SetMonitorListDlg(_visual); + SetMonitorList(_visual); } #endregion #region 鐩戞祴鍊� - //鎵�鏈夌洃娴嬪�煎垪琛� - private List<HydroMonitorValueViewModel> _allMonitorValueList = null; + //鐩戞祴鍊艰緟鍔╃被 + private SimulationMonitorValueHelper _monitorValueHelper = null; - //鑾峰彇鐩戞祴鍊煎垪琛� - private async Task<List<HydroMonitorValueViewModel>> GetMonitorValueList() + //鑾峰彇鐩戞祴鍊艰緟鍔╃被 + private SimulationMonitorValueHelper GetMonitorValueHelper() { - if (_allMonitorValueList == null) + if (_monitorValueHelper == null) { - _allMonitorValueList = new List<HydroMonitorValueViewModel>(); - var allMonitorList = await GetMonitorList(); - if (allMonitorList != null && allMonitorList.Count > 0) - { - var allVisualDict = GetVisualDict(); - if (allVisualDict != null && allVisualDict.Count > 0) - { - foreach (var monitor in allMonitorList) - { - if (allVisualDict.ContainsKey(monitor.Relation)) - { - var visual = allVisualDict[monitor.Relation]; - var vm = new HydroMonitorValueViewModel(monitor, visual); - _allMonitorValueList.Add(vm); - } - } - } - } + var visualListHelper = GetVisualListHelper(); + var monitorHelper = GetMonitorHelper(); + _monitorValueHelper = new SimulationMonitorValueHelper(visualListHelper, monitorHelper); } - return _allMonitorValueList; - } - - //鏇存柊鐩戞祴鍊煎垪琛� - private async void UpdateMonitorValueList(string code, List<HydroMonitorVmo> monitorList) - { - var visual = GetVisual(code); - if (visual == null) - { - return; - } - var allMonitorValueList = await GetMonitorValueList(); - var monitorValueList = allMonitorValueList.Where(x => x.Vmo.Relation == code).ToList(); - monitorValueList?.ForEach(x => - { - var result = monitorList?.Exists(t => t.Relation == x.Vmo.Relation && t.PropName == x.Vmo.PropName); - if (!(result.HasValue && result.Value)) - { - allMonitorValueList.Remove(x); - } - }); - monitorList?.ForEach(x => - { - var result = monitorValueList?.Exists(t => t.Vmo.Relation == x.Relation && t.Vmo.PropName == x.PropName); - if (!(result.HasValue && result.Value)) - { - var vm = new HydroMonitorValueViewModel(x, visual); - allMonitorValueList.Add(vm); - } - }); + return _monitorValueHelper; } #endregion - #region 鐩戞祴鍊煎垪琛ㄦ帶浠� + #region 鐩戞祴鍊兼帶浠� //鐩戞祴鍊煎垪琛ㄦ帶浠� private HydroMonitorValueListCtrl _monitorValueListCtrl = null; @@ -2169,7 +1580,8 @@ _monitorValueListCtrl.Dock = DockStyle.Fill; _monitorValueListCtrl.HydroViewEvent += (code) => { - var visual = GetVisual(code); + var visualListHelper = GetVisualListHelper(); + var visual = visualListHelper.GetVisual(code); SelectVisual(visual, eVisualSource.Monitor); }; } @@ -2207,7 +1619,8 @@ this.docPnlBottom.Text = "鐩戞祴鍊�"; this.docPnlBottom.Height = 350; } - var allMonitorValueList = await GetMonitorValueList(); + var monitorValueHelper = GetMonitorValueHelper(); + var allMonitorValueList = await monitorValueHelper.Get(); monitorValueListCtrl.SetBindingData(allMonitorValueList); } @@ -2219,47 +1632,30 @@ #endregion - #region 鐩戞祴鍒楄〃鏄剧ず + #region 鐩戞祴鐐规爣璁� - //鐩戞祴鏄惁鏄剧ず - private bool _isMonitorVisible = false; + //鐩戞祴鏍囪杈呭姪绫� + private SimulationMonitorMarkerHelper _monitorMarkerHelper = null; - //鑾峰彇涓氬姟鐩戞祴鍒楄〃 - private async Task<List<LogicMonitor>> GetLogicMonitorList() + //鑾峰彇鐩戞祴鏍囪杈呭姪绫� + private async Task<SimulationMonitorMarkerHelper> GetMonitorMarkerHelper() { - var allMonitorList = await GetMonitorList(); - var allLogicMonitorList = allMonitorList.Select(x => + if (_monitorMarkerHelper == null) { - var logicMonitor = new LogicMonitor(); - logicMonitor.Id = x.Relation; - logicMonitor.PropName = x.PropName; - logicMonitor.Description = x.Description; - return logicMonitor; - }).ToList(); - return allLogicMonitorList; - } - - //璁剧疆涓氬姟鐩戞祴鍒楄〃 - private async void SetLogicMonitorList() - { - if (_isMonitorVisible) - { - var allLogicMonitorList = await GetLogicMonitorList(); - await _bimfaceCtrl?.SetLogicMonitors(allLogicMonitorList); + var monitorHelper = GetMonitorHelper(); + var bimfaceCtrl = await GetBimfaceCtrl(); + _monitorMarkerHelper = new SimulationMonitorMarkerHelper(monitorHelper, bimfaceCtrl); } - else - { - await _bimfaceCtrl?.ClearLogicMonitors(); - } + return _monitorMarkerHelper; } //鏄剧ず鐘舵�佹敼鍙� - private void barCkMonitor_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private async void barCkMonitor_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - _isMonitorVisible = this.barCkMonitor.Checked; - SetLogicMonitorList(); + var monitorMarkerHelper = await GetMonitorMarkerHelper(); + monitorMarkerHelper.Visible = this.barCkMonitor.Checked; + monitorMarkerHelper.Set(); } - #endregion @@ -2267,46 +1663,24 @@ #region 妯″瀷妫�鏌� - #region 妫�鏌ョ粨鏋� - - //妫�鏌ョ粨鏋� - private HydroCheckResult _checkResult = null; - - //鑾峰彇妫�鏌ョ粨鏋� - private HydroCheckResult GetCheckResult() - { - if (_hydroInfo == null) - { - return default; - } - if (_checkResult == null) - { - _checkResult = _hydroInfo.Check(); - } - return _checkResult; - } - - #endregion - - #region 妫�鏌ユ帶浠� - //妫�鏌ユ帶浠� private HydroCheckResultCtrl _checkCtrl = null; //鑾峰彇妫�鏌ユ帶浠� private HydroCheckResultCtrl GetCheckCtrl() { + if (_hydroInfo == null) + { + return default; + } if (_checkCtrl == null) { _checkCtrl = new HydroCheckResultCtrl(); _checkCtrl.Dock = DockStyle.Fill; _checkCtrl.HydroClickEvent += (code) => { - if (_hydroInfo == null) - { - return; - } - var visual = GetVisual(code); + var visualListHelper = GetVisualListHelper(); + var visual = visualListHelper.GetVisual(code); SelectVisual(visual, eVisualSource.Check); }; } @@ -2354,31 +1728,20 @@ //鏄剧ず妫�鏌ユ帶浠� private void ShowCheckCtrl() { - if (_checkResult == null) - { - return; - } - ShowCheckCtrl(_checkResult); - } - - //妫�鏌� - private void Check() - { - if (_hydroInfo == null) - { - return; - } - _checkResult = _hydroInfo.Check(); - ShowCheckCtrl(_checkResult); + var checkResult = GetCheckResult(); + ShowCheckCtrl(checkResult); } //妫�鏌� private void barBtnCheck_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - Check(); + if (_hydroInfo == null) + { + return; + } + var checkResult = _hydroInfo.Check(); + ShowCheckCtrl(checkResult); } - - #endregion #endregion @@ -2386,132 +1749,18 @@ #region 璁$畻缁撴灉 - //璁$畻缁撴灉 - private HydroCalcuResult _calcuResult = null; + //璁$畻缁撴灉杈呭姪绫� + private SimulationCalcuResultHelper _calcuResultHelper = null; - //鑾峰彇璁$畻缁撴灉 - private HydroCalcuResult GetCalcuResult(string calcuMode, bool needCalcuAgain = false) + //鑾峰彇璁$畻缁撴灉杈呭姪绫� + private SimulationCalcuResultHelper GetCalcuResultHelper() { - if (_hydroInfo == null) + if (_calcuResultHelper == null) { - return default; + var workingHelper = GetWorkingHelper(); + _calcuResultHelper = new SimulationCalcuResultHelper(workingHelper); } - if (needCalcuAgain) - { - _calcuResult = _hydroInfo.Calcu(calcuMode); - } - if (_calcuResult == null) - { - _calcuResult = _hydroInfo.Calcu(calcuMode); - } - return _calcuResult; - } - - //鑾峰彇鍙缁勪欢璁$畻缁撴灉鍒楄〃 - private List<HydroCalcuVisualResult> GetCalcuVisualResultList(string calcuMode, bool needCalcuAgain = false) - { - var calcuResult = GetCalcuResult(calcuMode, needCalcuAgain); - if (calcuResult == null) - { - return default; - } - if (!calcuResult.Succeed) - { - return default; - } - return calcuResult.GetVisualList(); - } - - //鑾峰彇鑺傜偣璁$畻缁撴灉鍒楄〃 - private List<HydroCalcuNodeResult> GetCalcuNodeResultList(string calcuMode, bool needCalcuAgain = false) - { - var calcuResult = GetCalcuResult(calcuMode, needCalcuAgain); - if (calcuResult == null) - { - return default; - } - if (!calcuResult.Succeed) - { - return default; - } - return calcuResult.NodeList; - } - - //鑾峰彇绠℃璁$畻缁撴灉鍒楄〃 - private List<HydroCalcuLinkResult> GetCalcuLinkResultList(string calcuMode, bool needCalcuAgain = false) - { - var calcuResult = GetCalcuResult(calcuMode, needCalcuAgain); - if (calcuResult == null) - { - return default; - } - if (!calcuResult.Succeed) - { - return default; - } - return calcuResult.LinkList; - } - - //鎵�鏈夊彲瑙佽绠楀瓧鍏� - private Dictionary<string, HydroCalcuVisualResult> _allCalcuVisualDict = null; - - //鑾峰彇鍙璁$畻瀛楀吀 - private Dictionary<string, HydroCalcuVisualResult> GetCalcuVisualDict(string calcuMode, bool needCalcuAgain = false) - { - if (_hydroInfo == null) - { - return default; - } - var allCalcuVisualResultList = GetCalcuVisualResultList(calcuMode, needCalcuAgain); - if (needCalcuAgain) - { - _allCalcuVisualDict = new Dictionary<string, HydroCalcuVisualResult>(); - allCalcuVisualResultList?.ForEach(x => _allCalcuVisualDict.Add(x.Code, x)); - } - if (_allCalcuVisualDict == null) - { - _allCalcuVisualDict = new Dictionary<string, HydroCalcuVisualResult>(); - allCalcuVisualResultList?.ForEach(x => _allCalcuVisualDict.Add(x.Code, x)); - } - return _allCalcuVisualDict; - } - - //鑾峰彇鍙璁$畻瀛楀吀 - private Dictionary<string, HydroCalcuVisualResult> GetCalcuVisualDict(HydroCalcuResult calcuResult) - { - if (calcuResult == null) - { - return default; - } - if (!calcuResult.Succeed) - { - return default; - } - var allCalcuVisualList = calcuResult.GetVisualList(); - var dict = new Dictionary<string, HydroCalcuVisualResult>(); - allCalcuVisualList?.ForEach(x => dict.Add(x.Code, x)); - return dict; - } - - //鑾峰彇鍙璁$畻缁撴灉 - private HydroCalcuVisualResult GetCalcuVisualResult(string code, string calcuMode = Yw.EPAnet.CalcuMode.MinorLoss, bool needCalcuAgain = false) - { - var allCalcuVisualDict = GetCalcuVisualDict(calcuMode, needCalcuAgain); - if (allCalcuVisualDict == null || allCalcuVisualDict.Count < 1) - { - return default; - } - if (allCalcuVisualDict.ContainsKey(code)) - { - return allCalcuVisualDict[code]; - } - return default; - } - - //鑾峰彇鍙璁$畻缁撴灉 - private HydroCalcuVisualResult GetCalcuVisualResult(Yw.Model.HydroVisualInfo visual, string calcuMode = Yw.EPAnet.CalcuMode.MinorLoss, bool needCalcuAgain = false) - { - return GetCalcuVisualResult(visual?.Code, calcuMode, needCalcuAgain); + return _calcuResultHelper; } #endregion @@ -2578,16 +1827,6 @@ calcuFailedCtrl.SetBindingData(calcuResult.FailedList); } - //鏄剧ず璁$畻澶辫触鎺т欢 - private void ShowCalcuFailedCtrl() - { - if (_calcuResult == null) - { - return; - } - ShowCalcuFailedCtrl(_calcuResult); - } - #endregion #region 璁$畻璀﹀憡 @@ -2604,7 +1843,8 @@ _calcuWarningCtrl.Dock = DockStyle.Fill; _calcuWarningCtrl.HydroClickEvent += (code) => { - var visual = GetVisual(code); + var visualListHelper = GetVisualListHelper(); + var visual = visualListHelper.GetVisual(code); SelectVisual(visual, eVisualSource.Warning); }; } @@ -2654,18 +1894,36 @@ this.docPnlBottom.Text = "璁$畻璀﹀憡"; this.docPnlBottom.Height = 350; } - var dict = GetVisualDict(); - calcuWaringCtrl.SetBindingData(calcuResult.WainingList, dict); + var visualListHelper = GetVisualListHelper(); + var allVisualDict = visualListHelper.GetVisualDict(); + calcuWaringCtrl.SetBindingData(calcuResult.WainingList, allVisualDict); } - //鏄剧ず璁$畻璀﹀憡鎺т欢 - private void ShowCalcuWarningCtrl() + #endregion + + #region 璁$畻鏍囩 + + //璁$畻鏍囩杈呭姪绫� + private SimulationCalcuResultLabelHelper _calcuResultLabelHelper = null; + + //鑾峰彇璁$畻鏍囩杈呭姪绫� + private async Task<SimulationCalcuResultLabelHelper> GetCalcuResultLabelHelper() { - if (_calcuResult == null) + if (_calcuResultLabelHelper == null) { - return; + var calcuResultHelper = GetCalcuResultHelper(); + var bimfaceCtrl = await GetBimfaceCtrl(); + _calcuResultLabelHelper = new SimulationCalcuResultLabelHelper(calcuResultHelper, bimfaceCtrl); } - ShowCalcuWarningCtrl(_calcuResult); + return _calcuResultLabelHelper; + } + + //璁剧疆璁$畻鏍囩鏄惁鏄剧ず + private async void barCkCalcu_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var calcuResultLabelHelper = await GetCalcuResultLabelHelper(); + calcuResultLabelHelper.Visible = this.barCkCalcu.Checked; + calcuResultLabelHelper.Set(); } #endregion @@ -2695,7 +1953,8 @@ TipFormHelper.ShowWarn("璇曠畻澶辫触锛屽仠姝㈢缃戜慨澶嶏紒"); return; } - var allLinkList = GetLinkList(); + var visualListHelper = GetVisualListHelper(); + var allLinkList = visualListHelper.GetLinkList(); if (allLinkList != null && allLinkList.Count < 1) { TipFormHelper.ShowError("妯″瀷涓湭鍖呭惈绠℃淇℃伅锛屽仠姝㈢缃戜慨澶嶏紒"); @@ -2721,9 +1980,10 @@ count++; } } - UpdateVisualViewModelProperty(); + var visualVmListHelper = GetVisualVmListHelper(); + visualVmListHelper.UpdateProperty(); UpdateVisualListCtrl(); - //UpdateSelectedProperty(); + UpdatePropertyCtrl(); TipFormHelper.ShowSucceed($"淇瀹屾垚锛屽叡淇绠℃({count})涓紒"); } @@ -2757,10 +2017,18 @@ #endregion - #region 骞惰仈鍒嗘瀽 + #region 姘存车鍒楄〃 - //骞惰仈鍒嗘瀽 - private void ParallelAnalysis() + //鎬ц兘鏇茬嚎 + private void barBtnPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + + } + + #region 骞惰仈妯℃嫙 + + //骞惰仈妯℃嫙 + private void PumpParallel() { if (_hydroInfo == null) { @@ -2808,480 +2076,260 @@ } - var dlg = new PumpParallelAnalyDlg(); - dlg.SetBindingData(vmList); - dlg.ReloadDataEvent += (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; - } - }); - var codes = list?.Select(x => x.Code).ToList(); - UpdateVisualViewModelProperty(codes); - //ShowSelectedProperty(); - UpdateVisualListCtrl(); - return true; - }; - dlg.ShowDialog(); + //var dlg = new PumpParallelAnalyDlg(); + //dlg.SetBindingData(vmList); + //dlg.ReloadDataEvent += (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; + // } + // }); + // var codes = list?.Select(x => x.Code).ToList(); + // //UpdateVisualViewModelProperty(codes); + // //ShowSelectedProperty(); + // UpdateVisualListCtrl(); + // return true; + //}; + //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 宸ュ喌璁$畻 + #endregion - //鎵�鏈夊伐鍐靛厓缁勫垪琛� - private List<Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>> _allWorkingTupleList = null; + #region 姘村姏璁$畻 - //鑾峰彇宸ュ喌鍏冪粍鍒楄〃 - private async Task<List<Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>>> GetWorkingTupleList() + //璁$畻 + private async void Calcu() { if (_hydroInfo == null) { - return default; + return; } - if (_allWorkingTupleList == null) - { - _allWorkingTupleList = new List<Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>>(); - var allWorkingList = await BLLFactory<Yw.BLL.HydroWorking>.Instance.GetByModelID(_hydroInfo.ID); - allWorkingList?.ForEach(x => - { - var checkResult = _hydroInfo.Check(); - HydroCalcuResult calcuResult = null; - if (checkResult != null && checkResult.Succeed) - { - calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - } - _allWorkingTupleList.Add(new Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>(x, checkResult, calcuResult)); - }); - } - return _allWorkingTupleList; - } - - //鑾峰彇宸ュ喌鍏冪粍 - private async Task<Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>> GetWorkingTuple(HydroWorkingVmo working) - { - if (working == null) - { - return default; - } - var allWorkingTupleList = await GetWorkingTupleList(); - var workingTuple = allWorkingTupleList?.Find(x => x.Item1.ID == working.ID); - return workingTuple; - } - - //鑾峰彇宸ュ喌妫�鏌ョ粨鏋� - private async Task<HydroCheckResult> GetWorkingCheckResult(HydroWorkingVmo working) - { - var tuple = await GetWorkingTuple(working); - return tuple?.Item2; - } - - //鑾峰彇宸ュ喌璁$畻缁撴灉 - private async Task<HydroCalcuResult> GetWorkingCalcuResult(HydroWorkingVmo working) - { - var tuple = await GetWorkingTuple(working); - return tuple?.Item3; - } - - //鑾峰彇宸ュ喌鍒楄〃 - private async Task<List<HydroWorkingVmo>> GetWorkingList() - { - var allWorkingTupleList = await GetWorkingTupleList(); - return allWorkingTupleList?.Select(x => x.Item1).OrderBy(x => x.SortCode).ToList(); - } - - //娣诲姞宸ュ喌鍏冪粍 - private async void AppendWorkingTuple(HydroWorkingVmo working, HydroCheckResult check, HydroCalcuResult calcu) - { - var allWorkingTupleList = await GetWorkingTupleList(); - allWorkingTupleList.Add(new Tuple<HydroWorkingVmo, HydroCheckResult, HydroCalcuResult>(working, check, calcu)); - } - - //绉婚櫎宸ュ喌鍏冪粍 - private async void RemoveWorkingTuple(HydroWorkingVmo working) - { - var allWorkingTupleList = await GetWorkingTupleList(); - if (allWorkingTupleList.Count > 0) - { - allWorkingTupleList.RemoveAll(x => x.Item1.ID == working.ID); - } - } - - //璁剧疆宸ュ喌绐椾綋 - private async void SetHydroWorkingDlg() - { - var allWorkingList = await GetWorkingList(); - var allMonitorValueList = await GetMonitorValueList(); + var workingCheckedListHelper = GetWorkingCheckedListHelper(); + var allWorkingList = workingCheckedListHelper.GetWorkingList(); + var monitorValueHelper = GetMonitorValueHelper(); + var allMonitorValueList = await monitorValueHelper.Get(); var dlg = new SetHydroWorkingDlg(); + dlg.SetBindingData(_hydroInfo, allWorkingList, allMonitorValueList); dlg.HydroViewEvent += (visual) => { SelectVisual(visual, eVisualSource.Calcu); }; - dlg.HydroCalcuEvent += async (working) => + dlg.HydroCalcuEvent += async (vm) => { - if (_hydroInfo == null) - { - return; - } - 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) + if (!checkResult.Succeed) { - AppendWorkingTuple(vmo, checkResult, null); - AppendCurrentWorking(vmo); - ShowCheckCtrl(); - TipFormHelper.ShowWarn("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); + ShowCheckCtrl(checkResult); + workingHelper.InitialData(hydroInfo, working, checkResult, null); + TipFormHelper.ShowError("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); return; } WaitFormHelper.ShowWaitForm(this, "姝e湪璁$畻鍒嗘瀽涓紝璇风◢鍊�..."); - - - //await Task.Delay(5000); + //await Task.Delay(3000); var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - - WaitFormHelper.HideWaitForm(); + workingHelper.InitialData(hydroInfo, working, checkResult, calcuResult); if (calcuResult.Succeed) { - AppendWorkingTuple(vmo, checkResult, calcuResult); - AppendCurrentWorking(vmo); - UpdateVisualViewModelProperty(); - UpdateVisualViewModelCalcuProperty(); - UpdateVisualListCtrl(); - SetCalcuLabels(); - //UpdateSelectedProperty(); - //await _bimfaceCtrl?.SetLogicCalcuCustomLabelsCalcuResult(_calcuResult); + 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(); + ShowCalcuFailedCtrl(calcuResult); TipFormHelper.ShowError("璁$畻澶辫触锛�"); } - ApplyGradingResultList(false); + + #region 瑙嗗浘鍒楄〃 + + var visualVmListHelper = GetVisualVmListHelper(); + visualVmListHelper.UpdateCalcuProperty(calcuResult); + + #endregion + + #region 鏋勪欢鏄庣粏 + UpdateVisualListCtrl(); - //ShowSelectedProperty(); + + #endregion + + #region 璁$畻鏍囩 + + var calcuResultLabelHelper = await GetCalcuResultLabelHelper(); + calcuResultLabelHelper.Set(); + + #endregion + }; - dlg.SetBindingData(_hydroInfo, allWorkingList, allMonitorValueList); + dlg.ShowDialog(); + } //姘村姏璁$畻 - private void barBtnHydroCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private void barBtnCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - SetHydroWorkingDlg(); - } - - #endregion - - #region 璁$畻鏍囩 - - //鎵�鏈夎绠楁爣绛� - private List<LogicCalcuCustomLabel> _allCalcuLabels = null; - - //鑾峰彇璁$畻鏍囩 - private List<LogicCalcuCustomLabel> GetCalcuLabels() - { - if (_hydroInfo == null) - { - return default; - } - var allCalcuResultList = GetCalcuVisualResultList(Yw.EPAnet.CalcuMode.MinorLoss, false); - if (allCalcuResultList == null || allCalcuResultList.Count < 1) - { - return default; - } - var list = new List<LogicCalcuCustomLabel>(); - - _hydroInfo.Pumps?.ForEach(x => - { - var hz = Math.Round(x.RatedHz * x.SpeedRatio); - var calcuPumpResult = GetCalcuVisualResult(x.Code) as HydroCalcuLinkResult; - if (calcuPumpResult != null) - { - var calcuPumpStartResult = GetCalcuVisualResult(x.StartCode) as HydroCalcuNodeResult; - var calcuPumpEndResult = GetCalcuVisualResult(x.EndCode) as HydroCalcuNodeResult; - var pumpCustomLabel = new LogicCalcuCustomLabel(); - pumpCustomLabel.Id = x.Code; - pumpCustomLabel.Distance = 20000; - pumpCustomLabel.Data = new List<LogicCalcuCustomLabelItem>() - { - new LogicCalcuCustomLabelItem(){ Name="鐘舵��",Value=HydroLinkStatusHelper.GetStatusName(x.LinkStatus),Unit=string.Empty}, - new LogicCalcuCustomLabelItem(){ Name="棰戠巼",Value=hz.ToString(),Unit=string.Empty}, - new LogicCalcuCustomLabelItem(){ Name="娴侀噺",Value=Math.Round(calcuPumpResult.CalcuFlow.Value,1).ToString(),Unit="m鲁/h"}, - new LogicCalcuCustomLabelItem(){ Name="杩涘彛鍘嬪姏",Value=Math.Round(calcuPumpStartResult.CalcuHead.Value,4).ToString(),Unit="m"}, - new LogicCalcuCustomLabelItem(){ Name="鍑哄彛鍘嬪姏",Value=Math.Round(calcuPumpEndResult.CalcuHead.Value,4).ToString(),Unit="m"}, - }; - list.Add(pumpCustomLabel); - } - }); - - _hydroInfo.GetAllEmitters()?.ForEach(x => - { - var calcuEmitter = GetCalcuVisualResult(x.Code) as HydroCalcuNodeResult; - var emitterCustomLabel = new LogicCalcuCustomLabel(); - emitterCustomLabel.Id = x.Code; - emitterCustomLabel.Distance = 30000; - emitterCustomLabel.Data = new List<LogicCalcuCustomLabelItem>() - { - new LogicCalcuCustomLabelItem(){ Name="娴侀噺",Value=Math.Round(calcuEmitter.CalcuDemand.Value,1).ToString(),Unit="m鲁/h"}, - new LogicCalcuCustomLabelItem(){ Name="鍘嬪姏",Value=Math.Round(calcuEmitter.CalcuDemand.Value,4).ToString(),Unit="m"} - }; - list.Add(emitterCustomLabel); - }); - return list; - } - - //璁$畻鏍囩鏄惁鏄剧ず - private bool _isCalcuLabelsVisible = false; - - //璁剧疆璁$畻鏍囩 - private void SetCalcuLabels() - { - if (_isCalcuLabelsVisible) - { - var allCalcuLabels = GetCalcuLabels(); - _bimfaceCtrl?.SetLogicCalcuCustomLabels(allCalcuLabels); - } - else - { - _bimfaceCtrl?.ClearLogicCalcuCustomLabels(); - } - } - - //璁剧疆璁$畻鏍囩鏄惁鏄剧ず - private void barCkCalcuLabels_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - _isCalcuLabelsVisible = this.barCkCalcuLabels.Checked; + Calcu(); } #endregion #region 褰撳墠宸ュ喌 - //褰撳墠宸ュ喌 - private Yw.Vmo.HydroWorkingVmo _working = null; + //宸ュ喌杈呭姪绫� + private SimulationWorkingHelper _workingHelper = null; - //鍒濆鍖栧綋鍓嶅伐鍐� - private async void InitialCurrentWorking() + //鑾峰彇宸ュ喌杈呭姪绫� + private SimulationWorkingHelper GetWorkingHelper() { - var allWorkingList = await GetWorkingList(); - this.repositoryItemImageComboBox1.Items.BeginUpdate(); - this.repositoryItemImageComboBox1.Items.Clear(); - if (allWorkingList != null && allWorkingList.Count > 0) + if (_workingHelper == null) { - allWorkingList.ForEach(x => this.repositoryItemImageComboBox1.Items.Add(x.Name, x, -1)); - this.barEditCurrentWorking.EditValue = allWorkingList.Last(); + _workingHelper = new SimulationWorkingHelper(); } - this.repositoryItemImageComboBox1.Items.EndUpdate(); + return _workingHelper; } - //澧炲姞褰撳墠宸ュ喌 - private void AppendCurrentWorking(HydroWorkingVmo working) + //鑾峰彇宸ュ喌 + private HydroWorkingVmo GetWorking() { - this.repositoryItemImageComboBox1.Items.BeginUpdate(); - this.repositoryItemImageComboBox1.Items.Add(working.Name, working, -1); - this.repositoryItemImageComboBox1.Items.EndUpdate(); - this.barEditCurrentWorking.EditValue = working; + var workingHelper = GetWorkingHelper(); + return workingHelper.Working; } - //璁剧疆褰撳墠宸ュ喌 - private async void SetCurrentWorking(HydroWorkingVmo working) + //鑾峰彇妫�鏌ョ粨鏋� + private HydroCheckResult GetCheckResult() { - this.barEditCurrentWorking.EditValue = working; - _working = working; - var allWorkingTupleList = await GetWorkingTupleList(); - var tuple = allWorkingTupleList?.Find(x => x.Item1.ID == working.ID); - if (tuple == null) - { - return; - } - _checkResult = tuple.Item2; - _calcuResult = tuple.Item3; + var workingHelper = GetWorkingHelper(); + return workingHelper.CheckResult; } - //褰撳墠宸ュ喌鍙戠敓鏀瑰彉 - private void barEditCurrentWorking_EditValueChanged(object sender, EventArgs e) + //鑾峰彇璁$畻缁撴灉 + private HydroCalcuResult GetCalcuResult() { - var working = this.barEditCurrentWorking.EditValue as HydroWorkingVmo; - SetCurrentWorking(working); + var workingHelper = GetWorkingHelper(); + return workingHelper.CalcuResult; } - #endregion - - #region 宸ュ喌鎺т欢 - - //宸ュ喌鎺т欢 - private HydroWorkingTreeCtrl _workingCtrl = null; - - //鑾峰彇宸ュ喌鎺т欢 - private async Task<HydroWorkingTreeCtrl> GetWorkingCtrl() + //鏂板宸ュ喌 + private void AddWorking() { - if (_workingCtrl == null) - { - var allWorkingList = await GetWorkingList(); - _workingCtrl = new HydroWorkingTreeCtrl(); - _workingCtrl.Dock = DockStyle.Fill; - _workingCtrl.SetBindingData(allWorkingList); - _workingCtrl.FocusedChangedEvent += (vmo) => - { - SetCurrentWorking(vmo); - }; - } - 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() - { - if (IsWorkingCtrlVisible) - { - return; - } - var workingCtrl = await GetWorkingCtrl(); - this.controlContainerRight.Controls.Clear(); - this.controlContainerRight.Controls.Add(workingCtrl); - this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlRight.Text = "宸ュ喌"; - this.docPnlRight.Width = 300; - } - - //闅愯棌宸ュ喌鎺т欢 - private void HideWorkingCtrl() - { - if (IsWorkingCtrlVisible) - { - this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; - } - } - - //鏇存柊宸ュ喌鎺т欢 - private async void UpdateWorkingCtrl() - { - var allWorkingList = await 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) + var workingHelper = GetWorkingHelper(); + if (workingHelper.Working == null) { TipFormHelper.ShowWarn("灏氭湭璁$畻锛岃璁$畻鍚庨噸璇曪紒"); return; } - var checkResult = await GetWorkingCheckResult(_working); - if (checkResult == null) + var dlg = new AddHydroWorkingDlg(); + dlg.SetBindingData(workingHelper.Working); + dlg.ReloadDataEvent += (rhs) => { - return; - } - if (!checkResult.Succeed) - { - ShowCheckCtrl(checkResult); - TipFormHelper.ShowWarn("妫�鏌ュけ璐ワ紝鍋滄璇勪及锛�"); - return; - } - var calcuResult = await GetWorkingCalcuResult(_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 allVisualDict = GetVisualDict(); - var allMonitorList = await GetMonitorList(); - var allWorkingMonitorList = JsonHelper.Json2Object<List<HydroWorkingMonitorViewModel>>(_working.MonitorInfo); - var allCalcuResultDict = GetCalcuVisualDict(calcuResult); - var dlg = new HydroWorkingEvaluationDlg(); - dlg.SetBindingData(allVisualDict, allMonitorList, allWorkingMonitorList, allCalcuResultDict); + this.barBtnAddWorking.Enabled = false; + workingHelper.ResetWorking(rhs); + this.AppendWorkingEvent?.Invoke(rhs); + }; dlg.ShowDialog(); } - //绮惧害璇勪及 - private void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //澧炲姞宸ュ喌 + private void barBtnAddWorking_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - Evaluate(); + AddWorking(); } #endregion - #region 宸ュ喌骞惰仈 + #region 閫夋嫨宸ュ喌 - //骞惰仈鍒嗘瀽 - private void barBtnAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //宸ュ喌閫夋嫨鍒楄〃杈呭姪绫� + 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, bool hasChecked) + { + var helper = GetWorkingCheckedListHelper(); + helper.Update(working, hasChecked); + } + + + #endregion + + #region 宸ュ喌鍒嗘瀽 + + //绮惧害璇勪及 + private async void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + 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 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 barBtnPumpAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (_hydroInfo == null) { @@ -3291,7 +2339,8 @@ { return; } - var allCalcuResultList = GetCalcuVisualResultList(Yw.EPAnet.CalcuMode.MinorLoss, false); + + var calcuResultHelper = GetCalcuResultHelper(); var vmList = new List<XhsSinglePumpViewModel>(); foreach (var pump in _hydroInfo.Pumps) { @@ -3326,88 +2375,184 @@ vm.CurveQE = qePtList; vm.CurveQP = qpPtList; - if (allCalcuResultList != null && allCalcuResultList.Count > 0) + var calcuResultVisualDict = calcuResultHelper.GetVisualDict(); + 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 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 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(); + //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 + + } } \ No newline at end of file -- Gitblit v1.9.3