From 0cc49afcb0da13470d36a4412767d38588682f62 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期五, 29 十一月 2024 09:31:19 +0800 Subject: [PATCH] 新增水力属性视图控件 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs | 372 ++++++++++++++++++++++------------------------------ 1 files changed, 157 insertions(+), 215 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..6034bf7 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; } @@ -422,6 +391,23 @@ _visualListHelper.InitialData(_hydroInfo); } 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 @@ -776,36 +762,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 +886,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 +919,7 @@ { _monitorValueListCtrl = new HydroMonitorValueListCtrl(); _monitorValueListCtrl.Dock = DockStyle.Fill; + _monitorValueListCtrl.SetViewBoard(); _monitorValueListCtrl.HydroViewEvent += (code) => { var visualListHelper = GetVisualListHelper(); @@ -1045,8 +966,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 +1261,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 +1349,7 @@ #endregion - #region 骞惰仈璁$畻 + #region 骞惰仈妯℃嫙 //骞惰仈鍒嗘瀽 private void ParallelAnalysis() @@ -1598,26 +1466,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) { @@ -1707,61 +1622,88 @@ dlg.ShowDialog(); } - #endregion - - #region 宸ュ喌鑳芥晥 - + //鑳芥晥鍒嗘瀽 private void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); - } - - #endregion - - #region 鎹熷け鏇茬嚎 - - private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - if (_visual == null) + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) { - XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒"); + TipFormHelper.ShowWarn("宸ュ喌璁$畻澶辫触锛�"); return; } - if (!(_visual is Yw.Model.HydroNodeInfo)) - { - XtraMessageBox.Show("璇烽�夋嫨鑺傜偣鍚庨噸璇曪紒"); - 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 SimulationSingleWorkingEnergyDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult); dlg.ShowDialog(); } - #endregion - - #region 鎹熷け姣斾緥 - - private void barBtnWorkingLossScale_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 - - #region 缁煎悎鍒嗘瀽 - private void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //鎹熷け缁熻 + private void barBtnWorkingLossStatistics_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - XtraMessageBox.Show("姝e湪寮�鍙戜腑锛屾暚璇锋湡寰咃紒"); + var workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowError("宸ュ喌璁$畻澶辫触锛�"); + return; + } + var dlg = new HydroSingleWorkingLossStatisticsDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult); + dlg.ShowDialog(); } - #endregion + //缁煎悎鍒嗘瀽 + private async void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs 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 workingHelper = GetWorkingHelper(); + if (!workingHelper.Initialized) + { + TipFormHelper.ShowWarn("宸ュ喌璁$畻澶辫触锛�"); + return; + } + var dlg = new SimulationSingleWorkingAnalyDlg(); + dlg.SetBindingData(workingHelper.HydroInfo, allMonitorList, workingHelper.Working, workingHelper.CalcuResult, visual); + dlg.ShowDialog(); + } #endregion -- Gitblit v1.9.3