From a5872f7ed264a634c809b026d4d181f99a78db1d Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 10 十二月 2024 16:48:54 +0800 Subject: [PATCH] ResetMonitorValue bug修复 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 263 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 215 insertions(+), 48 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 0666f6f..a868760 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 @@ -4,6 +4,7 @@ using DevExpress.XtraMap; using HStation.WinFrmUI.PhartRelation; using Mapster; +using NPOI.OpenXmlFormats.Dml; using NPOI.SS.Formula.Functions; using System.Diagnostics; using Yw.EPAnet; @@ -29,9 +30,28 @@ /// 鏂板宸ュ喌浜嬩欢 /// </summary> public event Action<HydroWorkingVmo> AppendWorkingEvent; + /// <summary> + /// 淇濆瓨妯″瀷浜嬩欢 + /// </summary> + public event Func<Yw.Model.HydroModelInfo, Task<Yw.Model.HydroModelInfo>> SaveModelEvent; + /// <summary> + /// 鍒锋柊妯″瀷浜嬩欢 + /// </summary> + public event Func<Task<Yw.Model.HydroModelInfo>> RefreshModelEvent; + /// <summary> + /// 鏇存柊鏂规浜嬩欢 + /// </summary> + public event Action<XhsSchemeVmo> UpdateSchemeEvent; + /// <summary> + /// 绉婚櫎鏂规浜嬩欢 + /// </summary> + public event Action<XhsSchemeVmo> RemoveSchemeEvent; + + private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰 private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//椤圭洰绔� + private HStation.Vmo.XhsSchemeVmo _scheme = null;//鏂规 private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 private Dictionary<HydroWorkingVmo, bool> _allWorkingCheckedListDict = null;//鎵�鏈夊伐鍐甸�夋嫨鍒楄〃瀛楀吀 @@ -42,14 +62,27 @@ ( XhsProjectVmo project, XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme, Yw.Model.HydroModelInfo hydroInfo, Dictionary<HydroWorkingVmo, bool> allWorkingCheckedListDict ) { _project = project; _projectSite = projectSite; + _scheme = scheme; _hydroInfo = hydroInfo; _allWorkingCheckedListDict = allWorkingCheckedListDict; + ResetMonitorValue(); + if (_scheme == null) + { + this.ribPageGroupForScheme.Visible = false; + this.PageTitle.Caption = $"姘村姏妯℃嫙"; + } + else + { + this.ribPageGroupForScheme.Visible = true; + this.PageTitle.Caption = $"姘村姏鏂规\r\n{_scheme.Name}"; + } } /// <summary> @@ -160,6 +193,7 @@ { _propertyCtrl = new SimulationPropertyCtrl(); _propertyCtrl.Dock = DockStyle.Fill; + _propertyCtrl.AllowEdit = true; _propertyCtrl.HydroViewEvent += (visual) => { SelectVisual(visual, eVisualSource.Property); @@ -278,6 +312,7 @@ var visualVmListHelper = GetVisualVmListHelper(); var vm = visualVmListHelper.GetVisual(visual); _propertyCtrl.SelectedObject = vm; + _propertyCtrl.UpdateRows(); } //鏇存柊灞炴�ф帶浠� @@ -394,6 +429,13 @@ } } + //閫夋嫨鏋勪欢 + private void SelectVisual(string code, eVisualSource source) + { + var visual = GetVisual(code); + SelectVisual(visual, source); + } + #endregion #region 鏋勪欢鏄庣粏 @@ -412,6 +454,35 @@ _visualListHelper.InitialData(_hydroInfo); } return _visualListHelper; + } + + //閲嶇疆鍙鍒楄〃 + private void ResetVisualList() + { + var helper = GetVisualListHelper(); + helper.InitialData(_hydroInfo); + } + + //鑾峰彇鍙鏋勪欢 + private Yw.Model.HydroVisualInfo GetVisual(string code) + { + var helper = GetVisualListHelper(); + var visual = helper.GetVisual(code); + return visual; + } + + //鑾峰彇鍙鍒楄〃 + private List<Yw.Model.HydroVisualInfo> GetVisualList() + { + var helper = GetVisualListHelper(); + return helper.GetVisualList(); + } + + //鑾峰彇姘存簮鍒楄〃 + private List<Yw.Model.HydroSourceInfo> GetSourceList() + { + var helper = GetVisualListHelper(); + return helper.GetSourceList(); } #endregion @@ -630,24 +701,27 @@ { return; } - Stopwatch sw = new Stopwatch(); - sw.Start(); - - - var id = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.Save(_hydroInfo); - - //鑰楁椂宸ㄥぇ鐨勪唬鐮� - - sw.Stop(); - TimeSpan ts2 = sw.Elapsed; - Console.WriteLine("Stopwatch鎬诲叡鑺辫垂{0}ms.", ts2.TotalMilliseconds); - if (id < 1) + if (this.SaveModelEvent == null) + { + return; + } + var hydroInfo = await this.SaveModelEvent.Invoke(_hydroInfo); + if (hydroInfo == null) { TipFormHelper.ShowError("淇濆瓨澶辫触锛�"); return; } - _hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(id); + _hydroInfo = hydroInfo; + TipFormHelper.ShowSucceed("淇濆瓨鎴愬姛锛�"); + + + //Stopwatch sw = new Stopwatch(); + //sw.Start(); + //鑰楁椂宸ㄥぇ鐨勪唬鐮� + //sw.Stop(); + //TimeSpan ts2 = sw.Elapsed; + //Console.WriteLine("Stopwatch鎬诲叡鑺辫垂{0}ms.", ts2.TotalMilliseconds); } #endregion @@ -1388,31 +1462,24 @@ //鍒锋柊 private async void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { + if (this.RefreshModelEvent == null) + { + return; + } if (XtraMessageBox.Show("鍒锋柊鍚庡皢涓㈠け褰撳墠姘村姏淇℃伅鏇存敼锛屾槸鍚︾户缁埛鏂帮紵", "璇㈤棶", MessageBoxButtons.YesNo) == DialogResult.Yes) { - if (_project == null) - { - return; - } - if (_projectSite == null) - { - return; - } - var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance - .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation); - Stopwatch sw = new Stopwatch(); - sw.Start(); - _hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID); - sw.Stop(); - TimeSpan ts2 = sw.Elapsed; - Console.WriteLine("Stopwatch鎬诲叡鑺辫垂{0}ms.", ts2.TotalMilliseconds); - _visual = null; - await _bimfaceCtrl?.ZoomAndSelectComponents(null); - //ShowSelectedProperty(); - TipFormHelper.ShowSucceed("鏁版嵁宸插埛鏂�"); - var visualListHelper = GetVisualListHelper(); - visualListHelper.InitialData(_hydroInfo); + var hydroInfo = await this.RefreshModelEvent.Invoke(); + if (hydroInfo == null) + { + TipFormHelper.ShowError("鍒锋柊澶辫触锛�"); + return; + } + _hydroInfo = hydroInfo; + SelectVisual(visual: null, eVisualSource.None); + + ResetVisualList(); + TipFormHelper.ShowSucceed("鍒锋柊鎴愬姛锛�"); } } @@ -1473,6 +1540,13 @@ return _monitorHelper; } + //鑾峰彇鐩戞祴鐐瑰垪琛� + private async Task<List<HydroMonitorVmo>> GetMonitorList() + { + var helper = GetMonitorHelper(); + return await helper.Get(); + } + //璁剧疆鐩戞祴鐐瑰垪琛� private async void SetMonitorList(HydroVisualInfo visual) { @@ -1526,6 +1600,19 @@ _monitorValueHelper = new SimulationMonitorValueHelper(visualListHelper, monitorHelper); } return _monitorValueHelper; + } + + //閲嶇疆 + private void ResetMonitorValue() + { + var allWorkingList = GetWorkingList(); + var working = allWorkingList?.LastOrDefault(x => !string.IsNullOrEmpty(x.MonitorInfo)); + if (working != null) + { + var helper = GetMonitorValueHelper(); + helper.Reset(working.MonitorInfo); + } + } #endregion @@ -2105,10 +2192,10 @@ return; } - //WaitFormHelper.ShowWaitForm(this, "姝e湪璁$畻鍒嗘瀽涓紝璇风◢鍊�..."); - //await Task.Delay(3000); + WaitFormHelper.ShowWaitForm(this, "姝e湪璁$畻鍒嗘瀽涓紝璇风◢鍊�..."); + await Task.Delay(3000); var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - //WaitFormHelper.HideWaitForm(); + WaitFormHelper.HideWaitForm(); workingHelper.InitialData(hydroInfo, working, checkResult, calcuResult); if (calcuResult.Succeed) { @@ -2117,6 +2204,7 @@ ShowCalcuWarningCtrl(calcuResult); } this.barBtnAddWorking.Enabled = true; + this.barBtnExportWord.Enabled = true; TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); } else @@ -2144,6 +2232,13 @@ #endregion + #region 棰滆壊鍒嗙骇 + + var gradingHelper = await GetGradingHelper(); + gradingHelper.Set(); + + #endregion + #region 璁$畻鏍囩 var calcuResultLabelHelper = await GetCalcuResultLabelHelper(); @@ -2161,6 +2256,21 @@ private void barBtnCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { Calcu(); + } + + #endregion + + #region 瀵煎嚭鎶ュ憡 + + private void barBtnExportWord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var fileName = FileDialogHelper.SaveWordDoc("瀵煎嚭Word鎶ュ憡"); + if (string.IsNullOrEmpty(fileName)) + { + return; + } + SimulationWordReport word = new SimulationWordReport(); + //word.Create(fileName); } #endregion @@ -2247,6 +2357,20 @@ return _workingCheckedListHelper; } + //鑾峰彇宸ュ喌鍒楄〃 + private List<HydroWorkingVmo> GetWorkingList() + { + var helper = GetWorkingCheckedListHelper(); + return helper.GetWorkingList(); + } + + //鏇存柊宸ュ喌閫夋嫨鍒楄〃 + public void UpdateWorkingCheckedList(HydroWorkingVmo working) + { + var helper = GetWorkingCheckedListHelper(); + helper.Update(working); + } + //鏇存柊宸ュ喌閫夋嫨鍒楄〃 public void UpdateWorkingCheckedList(HydroWorkingVmo working, bool hasChecked) { @@ -2254,17 +2378,38 @@ helper.Update(working, hasChecked); } - //閫氳繃WorkingID绉婚櫎宸ュ喌閫夋嫨鍒楄〃 - public void RemoveWorkingCheckedListByWorkingID(long workingId) + //绉婚櫎宸ュ喌閫夋嫨鍒楄〃 + public void RemoveWorkingCheckedList(HydroWorkingVmo working) { var helper = GetWorkingCheckedListHelper(); - helper.Remove(workingId); + helper.Remove(working); } #endregion #region 宸ュ喌鍒嗘瀽 + + //閫夋嫨杩涘彛姘存簮 + private void SelectInputSource() + { + var sources = GetSourceList(); + if (sources != null) + { + if (sources.Count == 1) + { + SelectVisual(sources[0], eVisualSource.None); + } + else + { + var source = sources.FirstOrDefault(x => x.Flags.Contains(HStation.Xhs.Flags.杩涘彛)); + if (source != null) + { + SelectVisual(source, eVisualSource.None); + } + } + } + } //绮惧害璇勪及 private async void barBtnWorkingEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) @@ -2320,8 +2465,9 @@ } //鑳芥晥鍒嗘瀽 - private void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private async void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { + var allMonitorList = await GetMonitorList(); var workingCheckedListHelper = GetWorkingCheckedListHelper(); var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList(); if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1) @@ -2333,13 +2479,14 @@ return; } var dlg = new SimulationSingleWorkingEnergyDlg(); - dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult); + dlg.SetBindingData(workingHelper.Working, workingHelper.HydroInfo, allMonitorList, workingHelper.CalcuResult); dlg.ShowDialog(); } else { + var dlg = new SimulationMultiWorkingEnergyDlg(); - dlg.SetBindingData(_hydroInfo, allCheckedWorkingList); + dlg.SetBindingData(_hydroInfo, allMonitorList, allCheckedWorkingList); dlg.ShowDialog(); } } @@ -2349,8 +2496,12 @@ { if (_visual == null) { - TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); - return; + SelectInputSource(); + if (_visual == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); + return; + } } HydroVisualInfo visual = _visual; if (_visual is HydroLinkInfo linkInfo) @@ -2370,12 +2521,20 @@ return; } var dlg = new HydroSingleWorkingLossCurveDlg(); + dlg.HydroClickEvent += (code) => + { + SelectVisual(code, eVisualSource.None); + }; dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual); dlg.ShowDialog(); } else { var dlg = new HydroMultiWorkingLossCurveDlg(); + dlg.HydroClickEvent += (code) => + { + SelectVisual(code, eVisualSource.None); + }; dlg.SetBindingData(_hydroInfo, allCheckedWorkingList, visual); dlg.ShowDialog(); } @@ -2411,8 +2570,15 @@ { if (_visual == null) { - TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); - return; + if (_visual == null) + { + SelectInputSource(); + if (_visual == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); + return; + } + } } HydroVisualInfo visual = _visual; if (_visual is HydroLinkInfo linkInfo) @@ -2454,5 +2620,6 @@ + } } \ No newline at end of file -- Gitblit v1.9.3