duheng
2024-12-11 423b9511a9ce98fe36a235d5d2ab0d5a8e66238e
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -30,24 +30,26 @@
        /// 新增工况事件
        /// </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;//项目站
@@ -138,7 +140,7 @@
            this.tabPageBimface.Controls.Add(bimfaceCtrl);
        }
        #endregion
        #endregion BIM控件
        #region Q3d控件
@@ -175,7 +177,7 @@
            this.tabPageQ3d.Controls.Add(q3dCtrl);
        }
        #endregion
        #endregion Q3d控件
        #region 属性控件
@@ -266,7 +268,6 @@
                    var flowEffectHelper = await GetFlowEffectHelper();
                    flowEffectHelper.Set(visual);
                };
            }
            return _propertyCtrl;
        }
@@ -321,7 +322,7 @@
            _propertyCtrl?.UpdateRows();
        }
        #endregion
        #endregion 属性控件
        #region 选择构件
@@ -341,12 +342,14 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Bimface:
                    {
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Q3d:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
@@ -354,12 +357,14 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Property:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                    }
                    break;
                case eSimulationVisualSource.List:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
@@ -367,6 +372,7 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Set:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
@@ -374,6 +380,7 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Search:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
@@ -381,6 +388,7 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Monitor:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
@@ -388,6 +396,7 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Check:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
@@ -395,6 +404,7 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Calcu:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
@@ -402,6 +412,7 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Warning:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
@@ -409,6 +420,7 @@
                        SetPropertyCtrl(visual);
                    }
                    break;
                default: break;
            }
        }
@@ -420,7 +432,7 @@
            SelectVisual(visual, source);
        }
        #endregion
        #endregion 选择构件
        #region 构件明细
@@ -469,7 +481,7 @@
            return helper.GetSourceList();
        }
        #endregion
        #endregion 可见列表
        #region 视图列表
@@ -499,7 +511,7 @@
            return helper.GetVisualList();
        }
        #endregion
        #endregion 视图列表
        #region 明细控件
@@ -599,7 +611,7 @@
            ShowVisualListCtrl();
        }
        #endregion
        #endregion 明细控件
        #region 构件显示
@@ -648,9 +660,9 @@
            SetVisualVisible();
        }
        #endregion
        #endregion 构件显示
        #endregion
        #endregion 构件明细
        #region 一键显隐
@@ -674,7 +686,9 @@
            SetDecoratorVisible(this.barCkDecorator.Checked);
        }
        #endregion
        #endregion 一键显隐
        #region 保存信息
@@ -699,16 +713,15 @@
            TipFormHelper.ShowSucceed("保存成功!");
            //Stopwatch sw = new Stopwatch();
            //sw.Start();
            //耗时巨大的代码
            //耗时巨大的代码
            //sw.Stop();
            //TimeSpan ts2 = sw.Elapsed;
            //Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);
        }
        #endregion
        #endregion 保存信息
        #region 批量配置
@@ -1006,7 +1019,6 @@
            };
        }
        //显示RadialMenu
        private void barBtnSetList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
@@ -1210,11 +1222,9 @@
            {
                this.barBtnSetCompressorList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }
        }
        #endregion
        #endregion 批量配置
        #region 构件查询
@@ -1305,7 +1315,7 @@
            ShowSearchDlg();
        }
        #endregion
        #endregion 构件查询
        #region 模型标注
@@ -1357,7 +1367,7 @@
            markHelper.Set();
        }
        #endregion
        #endregion 模型标注
        #region 颜色分级
@@ -1439,7 +1449,7 @@
            gradingHelper.Set();
        }
        #endregion
        #endregion 颜色分级
        #region 人工刷新
@@ -1452,7 +1462,6 @@
            }
            if (XtraMessageBox.Show("刷新后将丢失当前水力信息更改,是否继续刷新?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                var hydroInfo = await this.RefreshModelEvent.Invoke();
                if (hydroInfo == null)
                {
@@ -1467,7 +1476,7 @@
            }
        }
        #endregion
        #endregion 人工刷新
        #region 水流动画
@@ -1500,7 +1509,7 @@
            flowEffectHelper.Set();
        }
        #endregion
        #endregion 水流动画
        #region 监测列表
@@ -1567,7 +1576,7 @@
            SetMonitorList(_visual);
        }
        #endregion
        #endregion 监测点
        #region 监测值
@@ -1596,10 +1605,9 @@
                var helper = GetMonitorValueHelper();
                helper.Reset(working.MonitorInfo);
            }
        }
        #endregion
        #endregion 监测值
        #region 监测值控件
@@ -1665,7 +1673,7 @@
            ShowMonitorValueListCtrl();
        }
        #endregion
        #endregion 监测值控件
        #region 监测点标记
@@ -1692,9 +1700,9 @@
            monitorMarkerHelper.Set();
        }
        #endregion
        #endregion 监测点标记
        #endregion
        #endregion 监测列表
        #region 模型检查
@@ -1778,7 +1786,7 @@
            ShowCheckCtrl(checkResult);
        }
        #endregion
        #endregion 模型检查
        #region 模型计算
@@ -1798,7 +1806,7 @@
            return _calcuResultHelper;
        }
        #endregion
        #endregion 计算结果
        #region 计算失败
@@ -1862,7 +1870,7 @@
            calcuFailedCtrl.SetBindingData(calcuResult.FailedList);
        }
        #endregion
        #endregion 计算失败
        #region 计算警告
@@ -1934,7 +1942,7 @@
            calcuWaringCtrl.SetBindingData(calcuResult.WainingList, allVisualDict);
        }
        #endregion
        #endregion 计算警告
        #region 计算标签
@@ -1961,9 +1969,9 @@
            calcuResultLabelHelper.Set();
        }
        #endregion
        #endregion 计算标签
        #endregion
        #endregion 模型计算
        #region 管网修复
@@ -2028,7 +2036,7 @@
            Repair();
        }
        #endregion
        #endregion 管网修复
        #region 导出INP
@@ -2050,7 +2058,7 @@
            TipFormHelper.ShowSucceed("导出成功");
        }
        #endregion
        #endregion 导出INP
        #region 水泵列表
@@ -2125,11 +2133,10 @@
        //并联模拟
        private void barBtnPumpParallel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            PumpParallel();
        }
        #endregion
        #endregion 水泵列表
        #region 水力计算
@@ -2206,34 +2213,33 @@
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateCalcuProperty(calcuResult);
                #endregion
                #endregion 视图列表
                #region 当前构件
                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();
        }
@@ -2244,25 +2250,49 @@
            Calcu();
        }
        #endregion
        #endregion 水力计算
        #region 导出报告
        private void barBtnExportWord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        private async void barBtnExportWord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var fileName = FileDialogHelper.SaveWordDoc("导出Word报告");
            if (string.IsNullOrEmpty(fileName))
            if (_visual == null)
            {
                return;
                SelectInputSource();
                if (_visual == null)
                {
                    TipFormHelper.ShowWarn("请选择构件后重试!");
                    return;
                }
            }
            var vm = new ReportViewModel();
            vm.ProjectName = _project.Name;
            vm.Description = _project.Description;
            SimulationWordReport word = new SimulationWordReport();
            word.Create(fileName, vm);
            HydroVisualInfo visual = _visual;
            if (_visual is HydroLinkInfo linkInfo)
            {
                var visualListHelper = GetVisualListHelper();
                visual = visualListHelper.GetVisual(linkInfo.StartCode);
            }
            var allMonitorList = await GetMonitorList();
            var working = GetWorking();
            var calcuResult = GetCalcuResult();
            var dlg = new SimulationWorkingReportDlg();
            dlg.ReloadDataEvent += (vm) =>
            {
                var fileName = FileDialogHelper.SaveWordDoc("导出Word报告");
                if (string.IsNullOrEmpty(fileName))
                {
                    return;
                }
                var reportHelper = new SimulationWorkingReportHelper();
                reportHelper.Create(fileName, vm);
                TipFormHelper.ShowInfo("导出成功!");
            };
            dlg.SetBindingData(_project, _hydroInfo, allMonitorList, working, calcuResult, visual);
            dlg.ShowDialog();
        }
        #endregion
        #endregion 导出报告
        #region 当前工况
@@ -2327,7 +2357,7 @@
            AddWorking();
        }
        #endregion
        #endregion 当前工况
        #region 选择工况
@@ -2374,8 +2404,7 @@
            helper.Remove(working);
        }
        #endregion
        #endregion 选择工况
        #region 工况分析
@@ -2473,7 +2502,6 @@
            }
            else
            {
                var dlg = new SimulationMultiWorkingEnergyDlg();
                dlg.SetBindingData(_hydroInfo, allMonitorList, allCheckedWorkingList);
                dlg.ShowDialog();
@@ -2601,7 +2629,7 @@
            }
        }
        #endregion
        #endregion 工况分析
        #region 方案管理
@@ -2638,6 +2666,11 @@
        //删除方案
        private async void DeleteScheme()
        {
            var bol = XtraMessageBox.Show("请问是否删除当前方案?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes;
            if (!bol)
            {
                return;
            }
            if (_scheme == null)
            {
                return;
@@ -2671,6 +2704,6 @@
            DeleteScheme();
        }
        #endregion
        #endregion 方案管理
    }
}