duheng
2024-12-11 2e8e85f65748ee5a5adf0dcda864aa4167cbf2ef
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -30,26 +30,24 @@
        /// 新增工况事件
        /// </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;//项目站
@@ -83,7 +81,7 @@
            else
            {
                this.ribPageGroupForScheme.Visible = true;
                this.PageTitle.Caption = $"水力方案\r\n{_scheme.Name}";
                this.PageTitle.Caption = $"模拟方案\r\n{_scheme.Name}";
            }
        }
@@ -126,7 +124,7 @@
                {//鼠标左键点击事件
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Bimface);
                    SelectVisual(visual, eSimulationVisualSource.Bimface);
                };
            }
            return _bimfaceCtrl;
@@ -140,7 +138,7 @@
            this.tabPageBimface.Controls.Add(bimfaceCtrl);
        }
        #endregion BIM控件
        #endregion
        #region Q3d控件
@@ -163,7 +161,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visuals = visualListHelper.GetVisualList(codes);
                    SelectVisual(visuals?.LastOrDefault(), eVisualSource.Q3d);
                    SelectVisual(visuals?.LastOrDefault(), eSimulationVisualSource.Q3d);
                };
            }
            return _q3dCtrl;
@@ -177,7 +175,7 @@
            this.tabPageQ3d.Controls.Add(q3dCtrl);
        }
        #endregion Q3d控件
        #endregion
        #region 属性控件
@@ -198,7 +196,7 @@
                _propertyCtrl.AllowEdit = true;
                _propertyCtrl.HydroViewEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Property);
                    SelectVisual(visual, eSimulationVisualSource.Property);
                };
                _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) =>
                { //强调连接节点
@@ -268,6 +266,7 @@
                    var flowEffectHelper = await GetFlowEffectHelper();
                    flowEffectHelper.Set(visual);
                };
            }
            return _propertyCtrl;
        }
@@ -322,133 +321,106 @@
            _propertyCtrl?.UpdateRows();
        }
        #endregion 属性控件
        #endregion
        #region 选择构件
        //可见来源
        protected enum eVisualSource
        {
            None,
            Bimface,
            Q3d,
            Property,
            List,
            Set,
            Search,
            Monitor,
            Check,
            Calcu,
            Warning,
        }
        //选择构件
        private Yw.Model.HydroVisualInfo _visual = null;
        //选择构件
        private void SelectVisual(HydroVisualInfo visual, eVisualSource source)
        private void SelectVisual(HydroVisualInfo visual, eSimulationVisualSource source)
        {
            _visual = visual;
            switch (source)
            {
                case eVisualSource.None:
                case eSimulationVisualSource.None:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Bimface:
                case eSimulationVisualSource.Bimface:
                    {
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Q3d:
                case eSimulationVisualSource.Q3d:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Property:
                case eSimulationVisualSource.Property:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                    }
                    break;
                case eVisualSource.List:
                case eSimulationVisualSource.List:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Set:
                case eSimulationVisualSource.Set:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Search:
                case eSimulationVisualSource.Search:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Monitor:
                case eSimulationVisualSource.Monitor:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Check:
                case eSimulationVisualSource.Check:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Calcu:
                case eSimulationVisualSource.Calcu:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Warning:
                case eSimulationVisualSource.Warning:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                default: break;
            }
        }
        //选择构件
        private void SelectVisual(string code, eVisualSource source)
        private void SelectVisual(string code, eSimulationVisualSource source)
        {
            var visual = GetVisual(code);
            SelectVisual(visual, source);
        }
        #endregion 选择构件
        #endregion
        #region 构件明细
@@ -497,7 +469,7 @@
            return helper.GetSourceList();
        }
        #endregion 可见列表
        #endregion
        #region 视图列表
@@ -527,7 +499,7 @@
            return helper.GetVisualList();
        }
        #endregion 视图列表
        #endregion
        #region 明细控件
@@ -543,11 +515,11 @@
                _visualListCtrl.Dock = DockStyle.Fill;
                _visualListCtrl.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.List);
                    SelectVisual(visual, eSimulationVisualSource.List);
                };
                _visualListCtrl.HydroChangedInfoEvent += (visualList) =>
                {
                    SelectVisual(_visual, eVisualSource.List);
                    SelectVisual(_visual, eSimulationVisualSource.List);
                };
            }
            return _visualListCtrl;
@@ -627,7 +599,7 @@
            ShowVisualListCtrl();
        }
        #endregion 明细控件
        #endregion
        #region 构件显示
@@ -676,9 +648,9 @@
            SetVisualVisible();
        }
        #endregion 构件显示
        #endregion
        #endregion 构件明细
        #endregion
        #region 一键显隐
@@ -702,9 +674,7 @@
            SetDecoratorVisible(this.barCkDecorator.Checked);
        }
        #endregion 一键显隐
        #endregion
        #region 保存信息
@@ -729,6 +699,7 @@
            TipFormHelper.ShowSucceed("保存成功!");
            //Stopwatch sw = new Stopwatch();
            //sw.Start();
            //耗时巨大的代码
@@ -737,7 +708,7 @@
            //Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);
        }
        #endregion 保存信息
        #endregion
        #region 批量配置
@@ -752,11 +723,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -769,11 +740,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -786,11 +757,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -803,11 +774,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -820,11 +791,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -837,11 +808,11 @@
                dlg.SetBindingData(allVisualVmList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -854,11 +825,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -871,11 +842,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -888,11 +859,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -905,11 +876,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -922,11 +893,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -939,11 +910,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -956,11 +927,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -973,11 +944,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -990,11 +961,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -1007,11 +978,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -1024,16 +995,17 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
            };
        }
        //显示RadialMenu
        private void barBtnSetList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
@@ -1238,9 +1210,11 @@
            {
                this.barBtnSetCompressorList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }
        }
        #endregion 批量配置
        #endregion
        #region 构件查询
@@ -1259,12 +1233,12 @@
                _searchCtrl.InitialData(allVisualVmList);
                _searchCtrl.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Check);
                    SelectVisual(visual, eSimulationVisualSource.Check);
                };
                _searchCtrl.HydroSearchInfoEvent += (list) =>
                {
                    var visual = list?.FirstOrDefault();
                    SelectVisual(visual, eVisualSource.Search);
                    SelectVisual(visual, eSimulationVisualSource.Search);
                };
            }
            return _searchCtrl;
@@ -1331,7 +1305,7 @@
            ShowSearchDlg();
        }
        #endregion 构件查询
        #endregion
        #region 模型标注
@@ -1383,7 +1357,7 @@
            markHelper.Set();
        }
        #endregion 模型标注
        #endregion
        #region 颜色分级
@@ -1465,7 +1439,7 @@
            gradingHelper.Set();
        }
        #endregion 颜色分级
        #endregion
        #region 人工刷新
@@ -1478,6 +1452,7 @@
            }
            if (XtraMessageBox.Show("刷新后将丢失当前水力信息更改,是否继续刷新?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                var hydroInfo = await this.RefreshModelEvent.Invoke();
                if (hydroInfo == null)
                {
@@ -1485,14 +1460,14 @@
                    return;
                }
                _hydroInfo = hydroInfo;
                SelectVisual(visual: null, eVisualSource.None);
                SelectVisual(visual: null, eSimulationVisualSource.None);
                ResetVisualList();
                TipFormHelper.ShowSucceed("刷新成功!");
            }
        }
        #endregion 人工刷新
        #endregion
        #region 水流动画
@@ -1525,7 +1500,7 @@
            flowEffectHelper.Set();
        }
        #endregion 水流动画
        #endregion
        #region 监测列表
@@ -1592,7 +1567,7 @@
            SetMonitorList(_visual);
        }
        #endregion 监测点
        #endregion
        #region 监测值
@@ -1621,9 +1596,10 @@
                var helper = GetMonitorValueHelper();
                helper.Reset(working.MonitorInfo);
            }
        }
        #endregion 监测值
        #endregion
        #region 监测值控件
@@ -1641,7 +1617,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Monitor);
                    SelectVisual(visual, eSimulationVisualSource.Monitor);
                };
            }
            return _monitorValueListCtrl;
@@ -1689,7 +1665,7 @@
            ShowMonitorValueListCtrl();
        }
        #endregion 监测值控件
        #endregion
        #region 监测点标记
@@ -1716,9 +1692,9 @@
            monitorMarkerHelper.Set();
        }
        #endregion 监测点标记
        #endregion
        #endregion 监测列表
        #endregion
        #region 模型检查
@@ -1740,7 +1716,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Check);
                    SelectVisual(visual, eSimulationVisualSource.Check);
                };
            }
            return _checkCtrl;
@@ -1802,7 +1778,7 @@
            ShowCheckCtrl(checkResult);
        }
        #endregion 模型检查
        #endregion
        #region 模型计算
@@ -1822,7 +1798,7 @@
            return _calcuResultHelper;
        }
        #endregion 计算结果
        #endregion
        #region 计算失败
@@ -1886,7 +1862,7 @@
            calcuFailedCtrl.SetBindingData(calcuResult.FailedList);
        }
        #endregion 计算失败
        #endregion
        #region 计算警告
@@ -1904,7 +1880,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Warning);
                    SelectVisual(visual, eSimulationVisualSource.Warning);
                };
            }
            return _calcuWarningCtrl;
@@ -1958,7 +1934,7 @@
            calcuWaringCtrl.SetBindingData(calcuResult.WainingList, allVisualDict);
        }
        #endregion 计算警告
        #endregion
        #region 计算标签
@@ -1985,9 +1961,9 @@
            calcuResultLabelHelper.Set();
        }
        #endregion 计算标签
        #endregion
        #endregion 模型计算
        #endregion
        #region 管网修复
@@ -2052,7 +2028,7 @@
            Repair();
        }
        #endregion 管网修复
        #endregion
        #region 导出INP
@@ -2074,7 +2050,7 @@
            TipFormHelper.ShowSucceed("导出成功");
        }
        #endregion 导出INP
        #endregion
        #region 水泵列表
@@ -2097,7 +2073,7 @@
                pumps.ForEach(x => x.UpdateWorkingInfo(list));
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList());
                SelectVisual(_visual, eVisualSource.None);
                SelectVisual(_visual, eSimulationVisualSource.None);
                var gradingHelper = await GetGradingHelper();
                gradingHelper.Set();
            };
@@ -2138,7 +2114,7 @@
                });
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList());
                SelectVisual(_visual, eVisualSource.None);
                SelectVisual(_visual, eSimulationVisualSource.None);
                var gradingHelper = await GetGradingHelper();
                gradingHelper.Set();
            };
@@ -2149,10 +2125,11 @@
        //并联模拟
        private void barBtnPumpParallel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            PumpParallel();
        }
        #endregion 水泵列表
        #endregion
        #region 水力计算
@@ -2171,7 +2148,7 @@
            dlg.SetBindingData(_hydroInfo, allWorkingList, allMonitorValueList);
            dlg.HydroViewEvent += (visual) =>
            {
                SelectVisual(visual, eVisualSource.Calcu);
                SelectVisual(visual, eSimulationVisualSource.Calcu);
            };
            dlg.HydroCalcuEvent += async (vm) =>
            {
@@ -2184,7 +2161,11 @@
                working.ModelID = vm.ModelID;
                working.Name = vm.Name;
                working.WorkingInfo = JsonHelper.Object2Json(vm.WorkingInfo);
                working.MonitorInfo = JsonHelper.Object2Json(vm.MonitorInfo);
                var useWorkingMonitorInfo = vm.MonitorInfo?.Where(x => x.PropValue.HasValue).ToList();
                if (useWorkingMonitorInfo != null && useWorkingMonitorInfo.Count > 0)
                {
                    working.MonitorInfo = JsonHelper.Object2Json(useWorkingMonitorInfo);
                }
                working.SortCode = vm.SortCode;
                working.Description = vm.Description;
@@ -2225,35 +2206,35 @@
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateCalcuProperty(calcuResult);
                #endregion 视图列表
                #endregion
                #region 当前构件
                SelectVisual(_visual, eVisualSource.Calcu);
                SelectVisual(_visual, eSimulationVisualSource.Calcu);
                #endregion 当前构件
                #endregion
                #region 构件明细
                UpdateVisualListCtrl();
                #endregion 构件明细
                #endregion
                #region 颜色分级
                var gradingHelper = await GetGradingHelper();
                gradingHelper.Set();
                #endregion 颜色分级
                #endregion
                #region 计算标签
                var calcuResultLabelHelper = await GetCalcuResultLabelHelper();
                calcuResultLabelHelper.Set();
                #endregion 计算标签
            };
                #endregion
            };
            dlg.ShowDialog();
        }
@@ -2263,7 +2244,7 @@
            Calcu();
        }
        #endregion 水力计算
        #endregion
        #region 导出报告
@@ -2274,11 +2255,14 @@
            {
                return;
            }
            var vm = new ReportViewModel();
            vm.ProjectName = _project.Name;
            vm.Description = _project.Description;
            SimulationWordReport word = new SimulationWordReport();
            //word.Create(fileName);
            word.Create(fileName, vm);
        }
        #endregion 导出报告
        #endregion
        #region 当前工况
@@ -2343,7 +2327,7 @@
            AddWorking();
        }
        #endregion 当前工况
        #endregion
        #region 选择工况
@@ -2390,7 +2374,8 @@
            helper.Remove(working);
        }
        #endregion 选择工况
        #endregion
        #region 工况分析
@@ -2402,14 +2387,14 @@
            {
                if (sources.Count == 1)
                {
                    SelectVisual(sources[0], eVisualSource.None);
                    SelectVisual(sources[0], eSimulationVisualSource.None);
                }
                else
                {
                    var source = sources.FirstOrDefault(x => x.Flags.Contains(HStation.Xhs.Flags.进口));
                    if (source != null)
                    {
                        SelectVisual(source, eVisualSource.None);
                        SelectVisual(source, eSimulationVisualSource.None);
                    }
                }
            }
@@ -2488,6 +2473,7 @@
            }
            else
            {
                var dlg = new SimulationMultiWorkingEnergyDlg();
                dlg.SetBindingData(_hydroInfo, allMonitorList, allCheckedWorkingList);
                dlg.ShowDialog();
@@ -2526,7 +2512,7 @@
                var dlg = new HydroSingleWorkingLossCurveDlg();
                dlg.HydroClickEvent += (code) =>
                {
                    SelectVisual(code, eVisualSource.None);
                    SelectVisual(code, eSimulationVisualSource.None);
                };
                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual);
                dlg.ShowDialog();
@@ -2536,7 +2522,7 @@
                var dlg = new HydroMultiWorkingLossCurveDlg();
                dlg.HydroClickEvent += (code) =>
                {
                    SelectVisual(code, eVisualSource.None);
                    SelectVisual(code, eSimulationVisualSource.None);
                };
                dlg.SetBindingData(_hydroInfo, allCheckedWorkingList, visual);
                dlg.ShowDialog();
@@ -2615,6 +2601,81 @@
            }
        }
        #endregion 工况分析
        #endregion
        #region 方案管理
        //更新方案
        private void UpdateScheme()
        {
            if (_scheme == null)
            {
                return;
            }
            if (_hydroInfo == null)
            {
                return;
            }
            var dlg = new EditXhsSchemeDlg();
            dlg.SetBindingData(_scheme, _hydroInfo);
            dlg.ReloadDataEvent += (rhs) =>
            {
                _scheme = rhs;
                this.PageTitle.Caption = $"模拟方案\r\n{_scheme.Name}";
                UpdatePageTitle(this.PageGuid, this.PageTitle);
                this.UpdateSchemeEvent?.Invoke(_scheme);
            };
            dlg.ShowDialog();
        }
        //编辑方案
        private void barBtnEditScheme_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            UpdateScheme();
        }
        //删除方案
        private async void DeleteScheme()
        {
            var bol = XtraMessageBox.Show("请问是否删除当前方案?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes;
            if (!bol)
            {
                return;
            }
            if (_scheme == null)
            {
                return;
            }
            var relation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance
                .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsScheme, _scheme.ID, HStation.Xhs.Purpose.Simulation);
            if (relation == null)
            {
                TipFormHelper.ShowError("水力模拟方案删除失败,请重试!");
                return;
            }
            if (!await BLLFactory<Yw.BLL.HydroModelRelation>.Instance.DeleteAllByID(relation.ID))
            {
                TipFormHelper.ShowError("水力模拟方案删除失败,请重试!");
                return;
            }
            if (!await BLLFactory<HStation.BLL.XhsScheme>.Instance.DeleteByID(_scheme.ID))
            {
                TipFormHelper.ShowError("水力模拟方案删除失败,请重试!");
                return;
            }
            this.RemoveSchemeEvent?.Invoke(_scheme);
            TipFormHelper.ShowSucceed("水力模拟方案删除成功!");
            ClosePage(this.PageGuid);
        }
        //删除方案
        private void barBtnDeleteScheme_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            DeleteScheme();
        }
        #endregion
    }
}