From ca1ccd0dd9f2d6936368f07d14a2b29b309fd151 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期三, 04 十二月 2024 15:59:25 +0800 Subject: [PATCH] 增加单独匹配界面 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs | 473 ++++++++++++++++++++++++++-------------------------------- 1 files changed, 210 insertions(+), 263 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs index 4c6e647..6e70e31 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs @@ -94,17 +94,18 @@ _bimfaceCtrl = new XhsProjectSimulationBimfaceCtrl(); _bimfaceCtrl.Dock = DockStyle.Fill; await _bimfaceCtrl.InitialData(_project, _projectSite); - _bimfaceCtrl.LoadCompletedEvent += () => + _bimfaceCtrl.LoadCompletedEvent += async () => {//view鍔犺浇瀹屾垚浜嬩欢 if (_hydroInfo == null) { return; } + await InitialWorking(); this.barCkDecorator.Checked = false; this.barCkMonitor.Checked = true; this.barCkGrading.Checked = true; this.barCkCalcu.Checked = true; - CalcuWorking(); + }; _bimfaceCtrl.HydroMouseLeftClickEvent += (code) => {//榧犳爣宸﹂敭鐐瑰嚮浜嬩欢 @@ -166,10 +167,10 @@ #region 灞炴�ф帶浠� //灞炴�ф帶浠� - private XhsProjectSimulationPropertyCtrl _propertyCtrl = null; + private HydroVisualPropertyViewCtrl _propertyCtrl = null; //鑾峰彇灞炴�ф帶浠� - private XhsProjectSimulationPropertyCtrl GetPropertyCtrl() + private HydroVisualPropertyViewCtrl GetPropertyCtrl() { if (_hydroInfo == null) { @@ -177,11 +178,11 @@ } if (_propertyCtrl == null) { - _propertyCtrl = new XhsProjectSimulationPropertyCtrl(); + _propertyCtrl = new HydroVisualPropertyViewCtrl(); _propertyCtrl.Dock = DockStyle.Fill; - _propertyCtrl.HydroViewEvent += (visual) => + _propertyCtrl.HydroViewEvent += (visualViewModel) => { - SelectVisual(visual, eVisualSource.Property); + SelectVisual(GetVisual(visualViewModel), eVisualSource.Property); }; _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) => { //寮鸿皟杩炴帴鑺傜偣 @@ -220,38 +221,6 @@ await Task.Delay(5000); await _bimfaceCtrl?.ClearBlinkComponents(); }; - _propertyCtrl.PropertyValueChangedEvent += async (visual) => - { - if (visual == null) - { - return; - } - UpdateVisualListCtrl(); - var gradingHelper = await GetGradingHelper(); - gradingHelper.Set(); - }; - _propertyCtrl.MarkPropertyValueChangedEvent += async (visual) => - { - //鏍囨敞灞炴�у彂鐢熸敼鍙� - //鍒ゆ柇褰撳墠鏄惁鏈夋爣娉ㄥ睍绀猴紝鑻ユ湁鍒欐洿鏂版爣娉紝鏈�濂芥槸鏇存柊鍗曚釜鏍囨敞 - var markHelper = await GetMarkHelper(); - markHelper.Set(visual); - }; - _propertyCtrl.GradingPropertyValueChangedEvent += async (visual) => - { - //鍒嗙骇灞炴�у彂鐢熸敼鍙� - //鍒ゆ柇褰撳墠鏄惁鏈夊垎绾у睍绀猴紝鑻ユ湁鍒欐洿鏂板垎绾э紝鏈�濂芥槸鏇存柊鍗曚釜鍒嗙骇 - var gradingHelper = await GetGradingHelper(); - gradingHelper.Set(visual); - }; - _propertyCtrl.FlowEffectPropertyValueChangedEvent += async (visual) => - { - //娴佸悜灞炴�у彂鐢熸敼鍙� - //鍒ゆ柇娴佸悜鏄惁鍔犺浇锛屽鏋滃姞杞藉垯鏇存柊娴佸悜锛屾渶濂芥槸鏇存柊鍗曚釜娴佸悜 - var flowEffectHelper = await GetFlowEffectHelper(); - flowEffectHelper.Set(visual); - }; - } return _propertyCtrl; } @@ -424,6 +393,23 @@ return _visualListHelper; } + //鑾峰彇鍙鏋勪欢 + private Yw.Model.HydroVisualInfo GetVisual(string code) + { + if (string.IsNullOrEmpty(code)) + { + return default; + } + var visualListHelper = GetVisualListHelper(); + return visualListHelper.GetVisual(code); + } + + //鑾峰彇鍙鏋勪欢 + private Yw.Model.HydroVisualInfo GetVisual(HydroVisualViewModel visualViewModel) + { + return GetVisual(visualViewModel?.Code); + } + #endregion #region 瑙嗗浘鍒楄〃 @@ -447,6 +433,23 @@ return _visualVmListHelper; } + //鑾峰彇鍙瑙嗗浘 + private HydroVisualViewModel GetVisualViewModel(string code) + { + if (string.IsNullOrEmpty(code)) + { + return default; + } + var visualVmListHelper = GetVisualVmListHelper(); + return visualVmListHelper.GetVisual(code); + } + + //鑾峰彇鍙瑙嗗浘 + private HydroVisualViewModel GetVisualViewModel(Yw.Model.HydroVisualInfo visual) + { + return GetVisualViewModel(visual?.Code); + } + #endregion #region 鏄庣粏鎺т欢 @@ -464,10 +467,6 @@ _visualListCtrl.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eVisualSource.List); - }; - _visualListCtrl.HydroChangedInfoEvent += (visualList) => - { - SelectVisual(_visual, eVisualSource.List); }; } return _visualListCtrl; @@ -511,15 +510,7 @@ var visualVmListHelper = GetVisualVmListHelper(); var allVisualVmList = visualVmListHelper.GetVisualList(); visualListCtrl.SetBindingData(allVisualVmList); - var calcuResult = GetCalcuResult(); - if (calcuResult != null && calcuResult.Succeed) - { - visualListCtrl.SetCalcuView(); - } - else - { - visualListCtrl.SetNormalView(); - } + visualListCtrl.SetResultView(); } //鏇存柊鏋勪欢鏄庣粏鎺т欢 @@ -776,36 +767,6 @@ return _gradingHelper; } - //璁剧疆棰滆壊鍒嗙骇鍒楄〃 - private async void SetGradingList() - { - if (_hydroInfo == null) - { - return; - } - var gradingHelper = await GetGradingHelper(); - var allGradingList = await gradingHelper.GetGradingList(); - var dlg = new SetHydroGradingTreeDlg(); - dlg.SetBindingData(_hydroInfo, allGradingList); - dlg.ReloadDataEvent += (list) => - { - gradingHelper.SetGradingList(list); - gradingHelper.Set(); - }; - dlg.ApplyDataEvent += (catalog, propName) => - { - gradingHelper.UpdateApply(catalog, propName); - gradingHelper.Set(); - }; - dlg.ShowDialog(); - } - - //閰嶇疆棰滆壊鍒嗙骇 - private void barBtnSetGradingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - SetGradingList(); - } - //搴旂敤棰滆壊鍒嗙骇鍒楄〃 private async void ApplyGradingList() { @@ -930,42 +891,6 @@ return _monitorHelper; } - //璁剧疆鐩戞祴鐐瑰垪琛� - private async void SetMonitorList(HydroVisualInfo visual) - { - if (_hydroInfo == null) - { - return; - } - var monitorHelper = GetMonitorHelper(); - var allMonitorList = await monitorHelper.Get(); - var dlg = new SetHydroMonitorListDlg(); - dlg.SetBindingData(_hydroInfo, visual, allMonitorList); - dlg.ReloadDataEvent += async (list) => - { - var bol = await BLLFactory<Yw.BLL.HydroMonitor>.Instance.Save(_hydroInfo.ID, visual.Code, list); - if (!bol) - { - TipFormHelper.ShowError("璁剧疆澶辫触锛�"); - return; - } - 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(); - } - - //璁剧疆鐩戞祴鐐� - private void barBtnSetMonitor_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - SetMonitorList(_visual); - } - #endregion #region 鐩戞祴鍊� @@ -999,6 +924,7 @@ { _monitorValueListCtrl = new HydroMonitorValueListCtrl(); _monitorValueListCtrl.Dock = DockStyle.Fill; + _monitorValueListCtrl.SetViewBoard(); _monitorValueListCtrl.HydroViewEvent += (code) => { var visualListHelper = GetVisualListHelper(); @@ -1045,8 +971,8 @@ monitorValueListCtrl.SetBindingData(allMonitorValueList); } - //璁剧疆鐩戞祴鍊� - private void barBtnSetMonitorValue_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //鏄剧ず鐩戞祴鍊� + private void barBtnShowMonitorValue_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowMonitorValueListCtrl(); } @@ -1340,59 +1266,6 @@ #endregion - #region 宸ュ喌璁$畻 - - //璁$畻宸ュ喌 - private async void CalcuWorking() - { - if (_hydroInfo == null) - { - return; - } - if (_working == null) - { - return; - } - _hydroInfo.UpdateWorkingInfo(_working.WorkingInfo); - - var workingHelper = GetWorkingHelper(); - //鏍¢獙 - var checkResult = _hydroInfo.Check(); - if (!checkResult.Succeed) - { - workingHelper.InitialData(_hydroInfo, _working, checkResult, null); - ShowCheckCtrl(checkResult); - TipFormHelper.ShowError("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); - return; - } - //璁$畻 - var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - workingHelper.InitialData(_hydroInfo, _working, checkResult, calcuResult); - if (calcuResult.Succeed) - { - if (calcuResult.WainingList != null && calcuResult.WainingList.Count > 0) - { - ShowCalcuWarningCtrl(calcuResult); - } - TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); - } - else - { - ShowCalcuFailedCtrl(calcuResult); - TipFormHelper.ShowError("璁$畻澶辫触锛�"); - } - - #region 璁$畻鏍囩 - - var calcuResultLabelHelper = await GetCalcuResultLabelHelper(); - calcuResultLabelHelper.Set(); - - #endregion - } - - - #endregion - #region 绠$綉淇 //淇绠$綉 @@ -1481,7 +1354,7 @@ #endregion - #region 骞惰仈璁$畻 + #region 骞惰仈妯℃嫙 //骞惰仈鍒嗘瀽 private void ParallelAnalysis() @@ -1532,26 +1405,26 @@ } - 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(); } //骞惰仈鍒嗘瀽 @@ -1598,26 +1471,73 @@ return workingHelper.CalcuResult; } - #endregion - - #region 宸ュ喌鍒嗘瀽 - - #region 宸ュ喌璇勪及 - - - - //绮惧害璇勪及 - private void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //鍒濆鍖栧伐鍐� + private async Task InitialWorking() { + if (_hydroInfo == null) + { + return; + } + if (_working == null) + { + return; + } + _hydroInfo.UpdateWorkingInfo(_working.WorkingInfo); + var monitorValueHelper = GetMonitorValueHelper(); + var allMonitorValueList = await monitorValueHelper.Get(); + allMonitorValueList.UpdateMonitorValue(_working.MonitorInfo); + + var workingHelper = GetWorkingHelper(); + //鏍¢獙 + var checkResult = _hydroInfo.Check(); + if (!checkResult.Succeed) + { + workingHelper.InitialData(_hydroInfo, _working, checkResult, null); + ShowCheckCtrl(checkResult); + TipFormHelper.ShowError("鏍¢獙澶辫触锛�"); + return; + } + //璁$畻 + var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); + workingHelper.InitialData(_hydroInfo, _working, checkResult, calcuResult); + if (calcuResult.Succeed) + { + if (calcuResult.WainingList != null && calcuResult.WainingList.Count > 0) + { + ShowCalcuWarningCtrl(calcuResult); + } + } + else + { + ShowCalcuFailedCtrl(calcuResult); + TipFormHelper.ShowError("璁$畻澶辫触锛�"); + } } #endregion - #region 宸ュ喌骞惰仈 + #region 宸ュ喌鍒嗘瀽 - //骞惰仈鍒嗘瀽 - private void barBtnAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //绮惧害璇勪及 + private async void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var monitorHelper = GetMonitorHelper(); + var allMonitorList = await monitorHelper.Get(); + + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("宸ュ喌璁$畻澶辫触锛�"); + return; + } + var dlg = new HydroSingleWorkingEvaluationDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, allMonitorList, workingHelper.Working, workingHelper.CalcuResult); + dlg.ShowDialog(); + } + + //姘存车鍒嗘瀽 + private void barBtnPumpAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (_hydroInfo == null) { @@ -1688,80 +1608,107 @@ } - var dlg = new PumpParallelAnalyDlg(); - dlg.SetBindingData(vmList); - dlg.ReloadDataEvent += (list) => + //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(); + } + + //鑳芥晥鍒嗘瀽 + private void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) { - 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; - }; + TipFormHelper.ShowWarn("宸ュ喌璁$畻澶辫触锛�"); + return; + } + var dlg = new SimulationSingleWorkingEnergyDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult); dlg.ShowDialog(); } - #endregion - - #region 宸ュ喌鑳芥晥 - - private void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //鎹熷け鏇茬嚎 + private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowError("宸ュ喌璁$畻澶辫触锛�"); + return; + } + if (_visual == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢锛�"); + return; + } + HydroVisualInfo visual = _visual; + if (_visual is HydroLinkInfo linkInfo) + { + var visualListHelper = GetVisualListHelper(); + visual = visualListHelper.GetVisual(linkInfo.StartCode); + } + + var dlg = new HydroSingleWorkingLossCurveDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual); + dlg.ShowDialog(); } - #endregion + //鎹熷け缁熻 + private void barBtnWorkingLossStatistics_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowError("宸ュ喌璁$畻澶辫触锛�"); + return; + } + var dlg = new HydroSingleWorkingLossStatisticsDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult); + dlg.ShowDialog(); + } - #region 鎹熷け鏇茬嚎 - - private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //缁煎悎鍒嗘瀽 + private async void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (_visual == null) { - XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒"); + TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); return; } - if (!(_visual is Yw.Model.HydroNodeInfo)) + HydroVisualInfo visual = _visual; + if (_visual is HydroLinkInfo linkInfo) { - XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒"); + var visualListHelper = GetVisualListHelper(); + visual = visualListHelper.GetVisual(linkInfo.StartCode); + } + + var monitorHelper = GetMonitorHelper(); + var allMonitorList = await monitorHelper.Get(); + + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("宸ュ喌璁$畻澶辫触锛�"); return; } - var network = _hydroInfo.ToNetwork(); - var calcuResult = network.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - var allNodeList = network.GetAllNodes(); - var node = allNodeList.Find(x => x.Id == _visual.Code); - var allPathList = network.AnalyzeDownstreamPath(node, calcuResult); - var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult); - var allLossList = allEpaLossList?.Select(x => new HydroNodeLossViewModel(x)).ToList(); - var dlg = new HydroSingleLossCurveDlg(); - dlg.SetBindingData(allLossList); + var dlg = new SimulationSingleWorkingAnalyDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, allMonitorList, workingHelper.Working, workingHelper.CalcuResult, visual); dlg.ShowDialog(); } - - #endregion - - #region 鎹熷け姣斾緥 - - private void barBtnWorkingLossScale_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); - } - - #endregion - - #region 缁煎悎鍒嗘瀽 - private void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); - } - - #endregion #endregion -- Gitblit v1.9.3