From 4bb44a9c6b32cf299f3103f66d720992ec4a89a2 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 17 二月 2025 21:07:49 +0800 Subject: [PATCH] 增加精度分析 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 687 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 474 insertions(+), 213 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 895ddb0..e6c4d62 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,21 +1,11 @@ -锘縰sing Castle.Core.Logging; -using DevExpress.CodeParser; -using DevExpress.Diagram.Core.Native; +锘縰sing DevExpress.Diagram.Core.Native; using DevExpress.Mvvm.Native; -using DevExpress.Office.Utils; -using DevExpress.Utils.MVVM; -using DevExpress.Xpo.Helpers; -using DevExpress.XtraMap; -using HStation.WinFrmUI.PhartRelation; +using DevExpress.Pdf.Native; using Mapster; -using NPOI.OpenXmlFormats.Dml; -using NPOI.SS.Formula.Functions; -using System.Diagnostics; using Yw.EPAnet; using Yw.Hydro; using Yw.Model; using Yw.Vmo; -using Yw.WinFrmUI.Q3d; namespace HStation.WinFrmUI { @@ -30,25 +20,54 @@ RegistBulkSetEvents(); } - /// <summary> - /// 鏂板宸ュ喌浜嬩欢 - /// </summary> - public event Action<HydroWorkingVmo> AppendWorkingEvent; + + #region 妯″瀷浜嬩欢 + + /// <summary> + /// 鑾峰彇妯″瀷浜嬩欢 + /// </summary> + public event Func<XhsSchemeVmo, Task<Yw.Model.HydroModelInfo>> GetModelEvent; /// <summary> /// 鍒锋柊妯″瀷浜嬩欢 /// </summary> public event Func<Task<Yw.Model.HydroModelInfo>> RefreshModelEvent; + #endregion + + #region 鏂规浜嬩欢 + /// <summary> /// 鏇存柊鏂规浜嬩欢 /// </summary> public event Action<XhsSchemeVmo> UpdateSchemeEvent; - /// <summary> /// 绉婚櫎鏂规浜嬩欢 /// </summary> public event Action<XhsSchemeVmo> RemoveSchemeEvent; + + #endregion + + #region 宸ュ喌浜嬩欢 + + /// <summary> + /// 鏂板宸ュ喌浜嬩欢 + /// </summary> + public event Action<HydroWorkingVmo> AppendWorkingEvent; + /// <summary> + /// 鏇存柊宸ュ喌浜嬩欢 + /// </summary> + public event Action<HydroWorkingVmo> UpdateWorkingEvent; + /// <summary> + /// 绉婚櫎宸ュ喌浜嬩欢 + /// </summary> + public event Action<HydroWorkingVmo> RemoveWorkingEvent; + /// <summary> + /// 閲嶈浇宸ュ喌浜嬩欢 + /// </summary> + public event Action<Dictionary<HydroWorkingVmo, bool>> ReloadWorkingEvent; + + #endregion private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰 private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//椤圭洰绔� @@ -389,11 +408,12 @@ } if (_propertyCtrl == null) { + var changeHelper = GetChangeHelper(); var propStatusHelper = await GetPropStatusHelper(); _propertyCtrl = new SimulationPropertyCtrl(); _propertyCtrl.Dock = DockStyle.Fill; _propertyCtrl.AllowEdit = true; - _propertyCtrl.InitialData(propStatusHelper); + _propertyCtrl.InitialData(changeHelper, propStatusHelper); _propertyCtrl.CalcuResult = () => GetCalcuResult(); _propertyCtrl.HydroViewEvent += (visual) => { @@ -459,14 +479,6 @@ //鍒ゆ柇褰撳墠鏄惁鏈夊垎绾у睍绀猴紝鑻ユ湁鍒欐洿鏂板垎绾э紝鏈�濂芥槸鏇存柊鍗曚釜鍒嗙骇 var gradingHelper = await GetGradingHelper(); gradingHelper.Set(visual); - }; - _propertyCtrl.ParterChangedEvent += (parter, changeType) => - { - if (parter == null) - { - return; - } - AppendChangeParter(parter, changeType); }; } return _propertyCtrl; @@ -692,7 +704,7 @@ return helper.GetSourceList(); } - #endregion 鍙鍒楄〃 + #endregion #region 瑙嗗浘鍒楄〃 @@ -729,7 +741,7 @@ return helper.GetVisual(code); } - #endregion 瑙嗗浘鍒楄〃 + #endregion #region 鏄庣粏鎺т欢 @@ -750,10 +762,6 @@ _visualListCtrl.HydroChangedInfoEvent += (visualList) => { SelectVisual(_visual, eSimulationVisualSource.List); - }; - _visualListCtrl.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; } return _visualListCtrl; @@ -779,7 +787,7 @@ } //鏄剧ず鏋勪欢鏄庣粏鎺т欢 - private void ShowVisualListCtrl() + private async void ShowVisualListCtrl() { if (_hydroInfo == null) { @@ -795,8 +803,10 @@ this.docPnlBottom.Height = 350; } var visualVmListHelper = GetVisualVmListHelper(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var allVisualVmList = visualVmListHelper.GetVisualList(); - visualListCtrl.SetBindingData(allVisualVmList); + visualListCtrl.SetBindingData(allVisualVmList, changeHelper, propStatusHelper); var calcuResult = GetCalcuResult(); if (calcuResult != null && calcuResult.Succeed) { @@ -833,7 +843,7 @@ ShowVisualListCtrl(); } - #endregion 鏄庣粏鎺т欢 + #endregion #region 鏋勪欢鏄剧ず @@ -948,38 +958,65 @@ { if (_isSaving) { - TipFormHelper.ShowWarn("姝e湪淇濆瓨锛岃绋嶅悗閲嶈瘯锛�"); + this.FindForm().ShowAlertInfo("淇濆瓨", "姝e湪淇濆瓨锛岃绋嶅悗閲嶈瘯锛�"); return; } } _isSaving = true; - var addParterList = GetAddParterList(); - var updateParterList = GetUpdateParterList(); - var removeParters = GetRemoveParters(); + var changeHelper = GetChangeHelper(); - this.FindForm().ShowAlertInfo("姘村姏淇℃伅淇濆瓨", "姝e湪鏇存柊姘村姏淇℃伅锛�"); + var addParterList = changeHelper.GetAddParterList(); + var updateParterList = changeHelper.GetUpdateParterList(); + var removeParters = changeHelper.GetRemoveParters(); + + if (addParterList == null || addParterList.Count < 1) + { + if (updateParterList == null || updateParterList.Count < 1) + { + if (removeParters == null || removeParters.Count < 1) + { + TipFormHelper.ShowWarn("鏈娴嬪埌淇敼锛屾棤闇�淇濆瓨锛�"); + _isSaving = false; + return; + } + } + } + + WaitFormHelper.ShowWaitForm("姝e湪淇濆瓨锛岃绋嶅悗..."); + + var bol = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance .Update(_hydroInfo, addParterList, updateParterList, removeParters); + + if (!bol) { - this.FindForm().ShowAlertInfo("姘村姏淇℃伅淇濆瓨", "姘村姏淇℃伅鏇存柊澶辫触锛�"); + WaitFormHelper.HideWaitForm(); + TipFormHelper.ShowError("姘村姏淇℃伅鏇存柊澶辫触锛�"); + _isSaving = false; return; } - this.FindForm().ShowAlertInfo("姘村姏淇℃伅淇濆瓨", "姘村姏淇℃伅鏇存柊鎴愬姛锛�"); + changeHelper.Reset(); - this.FindForm().ShowAlertInfo("姘村姏淇℃伅淇濆瓨", "姝e湪淇濆瓨灞炴�х姸鎬侊紒"); - var propStatusDbList = await GetPropStatusDbList(); - bol = await BLLFactory<Yw.BLL.HydroParterPropStatusInfo>.Instance.Save(_hydroInfo.ID, propStatusDbList); - if (bol) + var propStatusHelper = await GetPropStatusHelper(); + var updatePropStatusList = propStatusHelper.GetUpdatePropStatusDbList(); + if (updatePropStatusList != null && updatePropStatusList.Count > 0) { - this.FindForm().ShowAlertInfo("姘村姏淇℃伅淇濆瓨", "灞炴�х姸鎬佷繚瀛樻垚鍔燂紒"); + bol = await BLLFactory<Yw.BLL.HydroParterPropStatusInfo>.Instance.Update(_hydroInfo.ID, updatePropStatusList); + if (!bol) + { + WaitFormHelper.HideWaitForm(); + TipFormHelper.ShowWarn("灞炴�х姸鎬佹洿鏂板け璐ワ紒"); + _isSaving = false; + return; + } } - else - { - this.FindForm().ShowAlertInfo("姘村姏淇℃伅淇濆瓨", "灞炴�х姸鎬佷繚瀛樺け璐ワ紒"); - } + propStatusHelper.Reset(); + + WaitFormHelper.HideWaitForm(); + TipFormHelper.ShowSucceed("淇濆瓨鎴愬姛锛�"); _isSaving = false; //Stopwatch sw = new Stopwatch(); @@ -998,11 +1035,13 @@ private void RegistBulkSetEvents() { //姘村簱 - this.barBtnSetReservoirList.ItemClick += delegate + this.barBtnSetReservoirList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroReservoirListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1011,19 +1050,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //姘存睜 - this.barBtnSetTankList.ItemClick += delegate + this.barBtnSetTankList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroTankListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1032,19 +1069,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //姘寸 - this.barBtnSetWaterboxList.ItemClick += delegate + this.barBtnSetWaterboxList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroWaterboxListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1053,19 +1088,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //杩炴帴鑺傜偣 - this.barBtnSetJunctionList.ItemClick += delegate + this.barBtnSetJunctionList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroJunctionListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1074,19 +1107,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //闂峰ご - this.barBtnSetBluntheadList.ItemClick += delegate + this.barBtnSetBluntheadList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroBluntheadListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1095,19 +1126,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //寮ご - this.barBtnSetElbowsList.ItemClick += delegate + this.barBtnSetElbowsList.ItemClick += async delegate { var allVisualVmList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroElbowListDlg(); - dlg.SetBindingData(allVisualVmList); + dlg.SetBindingData(allVisualVmList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1116,19 +1145,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //涓夐�� - this.barBtnSetThreelinkList.ItemClick += delegate + this.barBtnSetThreelinkList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroThreelinkListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1137,19 +1164,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //鍥涢�� - this.barBtnSetFourlinkList.ItemClick += delegate + this.barBtnSetFourlinkList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroFourlinkListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1158,19 +1183,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //姘磋〃 - this.barBtnSetMeterList.ItemClick += delegate + this.barBtnSetMeterList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroMeterListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1179,19 +1202,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //娴侀噺璁� - this.barBtnSetFlowmeterList.ItemClick += delegate + this.barBtnSetFlowmeterList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroFlowmeterListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1200,19 +1221,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //鍘嬪姏琛� - this.barBtnSetPressmeterList.ItemClick += delegate + this.barBtnSetPressmeterList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroPressmeterListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1221,19 +1240,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //鍠峰槾 - this.barBtnSetNozzleList.ItemClick += delegate + this.barBtnSetNozzleList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroNozzleListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1242,19 +1259,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //鍐峰嵈濉� - this.barBtnSetCoolingList.ItemClick += delegate + this.barBtnSetCoolingList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroCoolingListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1263,19 +1278,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //绠¢亾 - this.barBtnSetPipeList.ItemClick += delegate + this.barBtnSetPipeList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroPipeListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1284,19 +1297,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //杩囨浮浠� - this.barBtnSetTranslationList.ItemClick += delegate + this.barBtnSetTranslationList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroTranslationListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1305,19 +1316,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //姘存车 - this.barBtnSetPumpList.ItemClick += delegate + this.barBtnSetPumpList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroPumpListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1326,19 +1335,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //闃�闂� - this.barBtnSetValveList.ItemClick += delegate + this.barBtnSetValveList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroValveListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1347,19 +1354,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //鎹㈢儹鍣� - this.barBtnSetExchangerList.ItemClick += delegate + this.barBtnSetExchangerList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroExchangerListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1368,19 +1373,17 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; //鍘嬬缉鏈� - this.barBtnSetCompressorList.ItemClick += delegate + this.barBtnSetCompressorList.ItemClick += async delegate { var allVisualViewModelList = GetVisualViewModelList(); + var changeHelper = GetChangeHelper(); + var propStatusHelper = await GetPropStatusHelper(); var dlg = new SetHydroCompressorListDlg(); - dlg.SetBindingData(allVisualViewModelList); + dlg.SetBindingData(allVisualViewModelList, changeHelper, propStatusHelper); dlg.HydroClickInfoEvent += (visual) => { SelectVisual(visual, eSimulationVisualSource.Set); @@ -1389,10 +1392,6 @@ { SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set); UpdateVisualListCtrl(); - }; - dlg.ParterChangedEvent += (parter, changeType) => - { - AppendChangeParter(parter, changeType); }; dlg.ShowDialog(); }; @@ -1838,7 +1837,7 @@ gradingHelper.Set(); } - #endregion 棰滆壊鍒嗙骇 + #endregion #region 浜哄伐鍒锋柊 @@ -1863,39 +1862,6 @@ ResetVisualList(); TipFormHelper.ShowSucceed("鍒锋柊鎴愬姛锛�"); } - } - - #endregion 浜哄伐鍒锋柊 - - #region 姘存祦鍔ㄧ敾 - - //姘存祦鍔ㄧ敾杈呭姪绫� - private SimulationFlowEffectHelper _flowEffectHelper = null; - - //鑾峰彇姘存祦鍔ㄧ敾杈呭姪绫� - private async Task<SimulationFlowEffectHelper> GetFlowEffectHelper() - { - if (_hydroInfo == null) - { - return default; - } - if (_flowEffectHelper == null) - { - var visualListHelper = GetVisualListHelper(); - var bimfaceCtrl = await GetBimfaceCtrl(); - _flowEffectHelper = new SimulationFlowEffectHelper(visualListHelper, bimfaceCtrl); - var calcuResult = GetCalcuResult(); - _flowEffectHelper.InitialData(calcuResult); - } - return _flowEffectHelper; - } - - //姘存祦鍔ㄧ敾鏄惁鍙 - private async void barCkFlowEffect_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - var flowEffectHelper = await GetFlowEffectHelper(); - //flowEffectHelper.Visible = this.barCkFlowEffect.Checked; - //flowEffectHelper.Set(); } #endregion @@ -1937,7 +1903,7 @@ return await helper.GetAnalyseList(); } - #endregion 鐩戞祴鐐� + #endregion #region 鐩戞祴鍊� @@ -2535,6 +2501,78 @@ #endregion 姘存车鍒楄〃 + #region 鍘嬪姏鍒囨崲 + + //璁$畻鍘嬪姏鏄惁涓虹粷瀵瑰帇鍔� + private bool _calcuPressModeIsHead = false; + + //璁$畻缁撴灉鍘嬪姏鍒囨崲 + private void barToggleSwitchPress_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + _calcuPressModeIsHead = !this.barToggleSwitchPress.Checked; + this.barToggleSwitchPress.Caption = _calcuPressModeIsHead ? "缁濆鍘嬪姏" : "鑷敱鍘嬪姏"; + var workingHelper = GetWorkingHelper(); + workingHelper.ResetResult(_calcuPressModeIsHead); + UpdateVisualListCtrl(); + UpdatePropertyCtrl(); + } + + + #endregion + + #region 璇勪环瑙勫垯 + + //璇勪环瑙勫垯杈呭姪绫� + private SimulationEvaluationHelper _evaluationHelper = null; + + //鑾峰彇璇勪环瑙勫垯杈呭姪绫� + private SimulationEvaluationHelper GetEvaluationHelper() + { + if (_evaluationHelper == null) + { + _evaluationHelper = new SimulationEvaluationHelper(_hydroInfo.ID); + } + return _evaluationHelper; + } + + //鑾峰彇璇勪环瑙勫垯鍒楄〃 + private async Task<List<Yw.Vmo.HydroEvaluationVmo>> GetEvaluationList() + { + var helper = GetEvaluationHelper(); + return await helper.GetEvaluationList(); + } + + //璁剧疆璇勪环瑙勫垯鍒楄〃 + private void SetEvaluationList(List<Yw.Vmo.HydroEvaluationVmo> allEvaluationList) + { + var helper = GetEvaluationHelper(); + helper.SetEvaluationList(allEvaluationList); + } + + //鏄剧ず璇勪环绐椾綋 + private void ShowEvaluationDlg() + { + if (_hydroInfo == null) + { + return; + } + var dlg = new SetHydroEvaluationModelDlg(); + dlg.SetBindingData(_hydroInfo.ID); + dlg.ReloadDataEvent += (rhs) => + { + SetEvaluationList(rhs); + }; + dlg.ShowDialog(); + } + + //璇勪环瑙勫垯 + private void barBtnEvaluation_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + ShowEvaluationDlg(); + } + + #endregion + #region 姘村姏璁$畻 //璁$畻 @@ -2586,7 +2624,7 @@ WaitFormHelper.ShowWaitForm(this, "姝e湪璁$畻鍒嗘瀽涓紝璇风◢鍊�..."); await Task.Delay(3000); - var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); + var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, _calcuPressModeIsHead); WaitFormHelper.HideWaitForm(); workingHelper.InitialData(hydroInfo, working, checkResult, calcuResult); if (calcuResult.Succeed) @@ -2647,12 +2685,158 @@ Calcu(); } - #endregion 姘村姏璁$畻 + #endregion #region 瀵煎嚭鎶ュ憡 + //鍒涘缓鎵撳嵃淇℃伅 + private async Task<SimulationPrintViewModel> CreatePrintInfo() + { + if (_project == null) + { + return default; + } + if (_hydroInfo == null) + { + return default; + } + + #region 宸ュ喌鍒楄〃 + + var allWorkingList = GetCheckedWorkingList(); + if (allWorkingList == null || allWorkingList.Count < 1) + { + var working = GetWorking(); + if (working == null) + { + TipFormHelper.ShowWarn("璇疯绠楁垨閫夋嫨宸ュ喌鍚庨噸璇曪紒"); + return default; + } + allWorkingList = new List<HydroWorkingVmo>() { working }; + } + + #endregion + + #region 閫夋嫨鑺傜偣 + + var selectedNode = GetSelectNode(); + if (selectedNode == null) + { + return default; + } + + #endregion + + var vm = new SimulationPrintViewModel(); + + #region 椤圭洰 + + vm.Project = new SimulationPrintProjectViewModel(_project); + if (_hydroInfo == null) + { + return vm; + } + + #endregion + + #region 姘存车鍒楄〃 + + vm.PumpList = _hydroInfo.Pumps?.Select(x => + { + var pump = new SimulationPrintPumpViewModel(x); + return pump; + }).ToList(); + + #endregion + + #region 闄勫姞淇℃伅 + + var allMonitorList = await GetMonitorList(); + var allEvaluationList = await GetEvaluationList(); + + #endregion + + #region 鍩虹妯″瀷 + + var baseHydroInfo = _hydroInfo; + if (_scheme != null) + { + baseHydroInfo = await GetModelEvent?.Invoke(null); + } + var baseHydroInfoRhs = baseHydroInfo.Adapt<Yw.Model.HydroModelInfo>(); + + #endregion + + #region 閬嶅巻宸ュ喌 + + vm.WorkingList = new List<SimulationPrintWorkingViewModel>(); + foreach (var working in allWorkingList) + { + baseHydroInfoRhs.UpdateWorkingInfo(working.WorkingInfo); + var calcuResult = baseHydroInfoRhs.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, _calcuPressModeIsHead, allEvaluationList); + + var printWorking = new SimulationPrintWorkingViewModel(working); + vm.WorkingList.Add(printWorking); + + //绮惧害璇勪及 + printWorking.Accuracy = SimulationPrintAccuracyHelper.Create(baseHydroInfoRhs, allMonitorList, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //姘存车鍒嗘瀽 + printWorking.PumpAnaly = SimulationPrintPumpAnalyHelper.Create(baseHydroInfoRhs, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //鐩戞祴鍒嗘瀽 + printWorking.MonitorAnaly = SimulationPrintMonitorAnalyHelper.Create(baseHydroInfoRhs, allMonitorList, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //鑳借�楀垎鏋� + printWorking.EnergyAnaly = SimulationPrintEnergyAnalyHelper.Create(baseHydroInfoRhs, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //鎹熷け缁熻 + printWorking.LossStatistics = SimulationPrintLossStatisticsHelper.Create(baseHydroInfoRhs, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //鎹熷け鏇茬嚎 + printWorking.LossCurve = SimulationPrintLossCurveHelper.Create(baseHydroInfoRhs, working, selectedNode, calcuResult, _calcuPressModeIsHead, allEvaluationList); + } + + #endregion + + #region 鏂规澶勭悊 + + if (_scheme != null) + { + var hydroInfo = _hydroInfo; + var hydroInfoRhs = hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); + vm.Scheme = new SimulationPrintSchemeViewModel(_scheme); + foreach (var working in allWorkingList) + { + hydroInfoRhs.UpdateWorkingInfo(working.WorkingInfo); + var calcuResult = hydroInfoRhs.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, _calcuPressModeIsHead, allEvaluationList); + + var printWorking = new SimulationPrintWorkingViewModel(working); + vm.Scheme.WorkingList.Add(printWorking); + + //绮惧害璇勪及 + printWorking.Accuracy = SimulationPrintAccuracyHelper.Create(hydroInfoRhs, allMonitorList, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //姘存车鍒嗘瀽 + printWorking.PumpAnaly = SimulationPrintPumpAnalyHelper.Create(hydroInfoRhs, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //鐩戞祴鍒嗘瀽 + printWorking.MonitorAnaly = SimulationPrintMonitorAnalyHelper.Create(hydroInfoRhs, allMonitorList, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //鑳借�楀垎鏋� + printWorking.EnergyAnaly = SimulationPrintEnergyAnalyHelper.Create(hydroInfoRhs, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //鎹熷け缁熻 + printWorking.LossStatistics = SimulationPrintLossStatisticsHelper.Create(hydroInfoRhs, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); + //鎹熷け鏇茬嚎 + printWorking.LossCurve = SimulationPrintLossCurveHelper.Create(hydroInfoRhs, working, selectedNode, calcuResult, _calcuPressModeIsHead, allEvaluationList); + } + } + + #endregion + + + return vm; + } + + //瀵煎嚭word private async void barBtnExportWord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { + var printInfo = await CreatePrintInfo(); + var printDlg = new SimulationCommonReportDlg(); + printDlg.SetBindingData(printInfo); + printDlg.ShowDialog(); if (_visual == null) { SelectInputSource(); @@ -2689,7 +2873,7 @@ dlg.ShowDialog(); } - #endregion 瀵煎嚭鎶ュ憡 + #endregion #region 褰撳墠宸ュ喌 @@ -2754,7 +2938,7 @@ AddWorking(); } - #endregion 褰撳墠宸ュ喌 + #endregion #region 閫夋嫨宸ュ喌 @@ -2766,11 +2950,17 @@ { if (_workingCheckedListHelper == null) { - var visualListHelper = GetVisualListHelper(); - _workingCheckedListHelper = new SimulationWorkingCheckedListHelper(visualListHelper); + _workingCheckedListHelper = new SimulationWorkingCheckedListHelper(); _workingCheckedListHelper.InitialData(_allWorkingCheckedListDict); } return _workingCheckedListHelper; + } + + //鑾峰彇宸ュ喌瀛楀吀 + private Dictionary<HydroWorkingVmo, bool> GetWorkingDict() + { + var helper = GetWorkingCheckedListHelper(); + return helper.GetWorkingDict(); } //鑾峰彇宸ュ喌鍒楄〃 @@ -2808,7 +2998,44 @@ helper.Remove(working); } - #endregion 閫夋嫨宸ュ喌 + /// <summary> + /// 閲嶈浇宸ュ喌閫夋嫨鍒楄〃 + /// </summary> + public void ReloadWorkingCheckedList(Dictionary<HydroWorkingVmo, bool> dict) + { + var helper = GetWorkingCheckedListHelper(); + helper.InitialData(dict); + } + + //绠$悊宸ュ喌 + private void barBtnMgrWorking_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var dict = GetWorkingDict(); + var dlg = new HydroWorkingMgrDlg(); + dlg.ReloadDataEvent += (dict) => + { + this.ReloadWorkingEvent?.Invoke(dict); + }; + dlg.UpdateDataEvent += (rhs) => + { + this.UpdateWorkingEvent?.Invoke(rhs); + }; + dlg.ApplyDataEvent += async (rhs) => + { + _hydroInfo.UpdateWorkingInfo(rhs.WorkingInfo); + var monitorValueHelper = GetMonitorValueHelper(); + var allMonitorValueList = await monitorValueHelper.GetAll(); + allMonitorValueList.UpdateMonitorValue(rhs.MonitorInfo); + }; + dlg.DeleteDataEvent += (rhs) => + { + this.RemoveWorkingEvent?.Invoke(rhs); + }; + dlg.SetBindingData(dict); + dlg.ShowDialog(); + } + + #endregion #region 鐩戞祴鍒嗘瀽 @@ -2893,7 +3120,7 @@ ShowMonitorAnalyListCtrl(); } - #endregion 鐩戞祴鍒嗘瀽 + #endregion #region 宸ュ喌鍒嗘瀽 @@ -2916,6 +3143,27 @@ } } } + } + + //鑾峰彇閫夋嫨鑺傜偣 + private HydroNodeInfo GetSelectNode() + { + if (_visual == null) + { + SelectInputSource(); + if (_visual == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); + return null; + } + } + HydroVisualInfo visual = _visual; + if (_visual is HydroLinkInfo linkInfo) + { + var visualListHelper = GetVisualListHelper(); + visual = visualListHelper.GetVisual(linkInfo.StartCode); + } + return visual as HydroNodeInfo; } //绮惧害璇勪及 @@ -3073,19 +3321,27 @@ #region 鎹熷け鏇茬嚎 //鍗曞伐鍐垫崯澶辨洸绾挎帶浠� - private HydroSingleWorkingLossCurveCtrl _singleWorkingLossCurveCtrl = null; + private HydroSingleWorkingLossCurveInteropCtrl _singleWorkingLossCurveCtrl = null; //鑾峰彇鍗曞伐鍐垫崯澶辨洸绾挎帶浠� - private HydroSingleWorkingLossCurveCtrl GetSingleWorkingLossCurveCtrl() + private HydroSingleWorkingLossCurveInteropCtrl GetSingleWorkingLossCurveCtrl() { if (_singleWorkingLossCurveCtrl == null) { - _singleWorkingLossCurveCtrl = new HydroSingleWorkingLossCurveCtrl(); + _singleWorkingLossCurveCtrl = new HydroSingleWorkingLossCurveInteropCtrl(); _singleWorkingLossCurveCtrl.Dock = DockStyle.Fill; _singleWorkingLossCurveCtrl.HydroClickEvent += (code) => { var visual = GetVisual(code); SelectVisual(visual, eSimulationVisualSource.None); + }; + _singleWorkingLossCurveCtrl.HydroSpecialDisplayEvent += (list) => + { + _bimfaceCtrl?.SetLogicOutlineGlowEffect(list); + }; + _singleWorkingLossCurveCtrl.HydroCancelSpecialDisplayEvent += () => + { + _bimfaceCtrl?.RemoveLogicOutlineGlowEffect(); }; } return _singleWorkingLossCurveCtrl; @@ -3100,7 +3356,7 @@ { if (this.controlContainerBottom.Controls.Count > 0) { - if (this.controlContainerBottom.Controls[0] is HydroSingleWorkingLossCurveCtrl) + if (this.controlContainerBottom.Controls[0] is HydroSingleWorkingLossCurveInteropCtrl) { return true; } @@ -3168,7 +3424,7 @@ } } - #endregion 鎹熷け鏇茬嚎 + #endregion #region 鏂规绠$悊 @@ -3244,5 +3500,10 @@ } #endregion 鏂规绠$悊 + + + + + } } \ No newline at end of file -- Gitblit v1.9.3