Shuxia Ning
2024-12-02 0fd4a678c2218c42d383e964a6b4aca975aa7b7a
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -50,7 +50,6 @@
            _projectSite = projectSite;
            _hydroInfo = hydroInfo;
            _allWorkingCheckedListDict = allWorkingCheckedListDict;
            //this.PageTitle.Caption = $"{_project.Name}\r\n水力模拟";
        }
        /// <summary>
@@ -308,6 +307,7 @@
            Q3d,
            Property,
            List,
            Set,
            Search,
            Monitor,
            Check,
@@ -351,6 +351,13 @@
                    }
                    break;
                case eVisualSource.List:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Set:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
@@ -522,6 +529,15 @@
                return;
            }
            _visualListCtrl?.UpdateBindingData();
            var calcuResult = GetCalcuResult();
            if (calcuResult != null && calcuResult.Succeed)
            {
                _visualListCtrl.SetCalcuView();
            }
            else
            {
                _visualListCtrl.SetNormalView();
            }
        }
        //构件明细
@@ -646,95 +662,116 @@
            //水库
            this.barBtnSetReservoirList.ItemClick += delegate
            {
                //var dlg = new HydroReservoirBulkSetListDlg();
                //dlg.ShowDialog();
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroReservoirListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //水池
            this.barBtnSetTankList.ItemClick += delegate
            {
                //var dlg = new HydroTankBulkSetListDlg();
                //dlg.ShowDialog();
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroTankListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //水箱
            this.barBtnSetWaterboxList.ItemClick += delegate
            {
                //if (_hydroInfo == null)
                //{
                //    return;
                //}
                //var dlg = new SetHydroWaterboxListDlg();
                //dlg.SetBindingData(_hydroInfo);
                //dlg.HydroClickEvent += async (obj) =>
                //{
                //    if (obj == null)
                //    {
                //        return;
                //    }
                //    _selectedParter = obj;
                //    await _bimfaceCtrl?.ZoomAndSelectComponent(obj.Code);
                //    ShowProperty();
                //};
                //dlg.HydroChangedEvent += (obj) =>
                //{
                //};
                //dlg.ShowDialog();
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroWaterboxListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //连接节点
            this.barBtnSetJunctionList.ItemClick += delegate
            {
                //var dlg = new HydroJunctionBulkSetListDlg();
                //dlg.ShowDialog();
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroJunctionListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //闷头
            this.barBtnSetBluntheadList.ItemClick += delegate
            {
                //if (_hydroInfo == null)
                //{
                //    return;
                //}
                //var dlg = new SetHydroBluntheadListDlg();
                //dlg.SetBindingData(_hydroInfo);
                //dlg.HydroClickEvent += async (obj) =>
                //{
                //    if (obj == null)
                //    {
                //        return;
                //    }
                //    _selectedParter = obj;
                //    await _bimfaceCtrl?.ZoomAndSelectComponent(obj.Code);
                //    ShowProperty();
                //};
                //dlg.HydroChangedEvent += (obj) =>
                //{
                //};
                //dlg.ShowDialog();
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroBluntheadListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //弯头
            this.barBtnSetElbowsList.ItemClick += delegate
            {
                //if (_hydroInfo == null)
                //{
                //    return;
                //}
                //var dlg = new SetHydroElbowListDlg();
                //dlg.SetBindingData(_hydroInfo);
                //dlg.HydroClickEvent += async (obj) =>
                //{
                //    if (obj == null)
                //    {
                //        return;
                //    }
                //    _selectedParter = obj;
                //    await _bimfaceCtrl?.ZoomAndSelectComponent(obj.Code);
                //    ShowProperty();
                //};
                //dlg.HydroChangedEvent += (obj) =>
                //{
                //};
                //dlg.ShowDialog();
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroElbowListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //三通
            this.barBtnSetThreelinkList.ItemClick += delegate
@@ -745,6 +782,14 @@
                }
                var dlg = new SetHydroThreelinkListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //四通
@@ -756,6 +801,14 @@
                }
                var dlg = new SetHydroFourlinkListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //水表
@@ -767,6 +820,14 @@
                }
                var dlg = new SetHydroMeterListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //流量计
@@ -778,6 +839,14 @@
                }
                var dlg = new SetHydroFlowmeterListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //压力表
@@ -789,6 +858,14 @@
                }
                var dlg = new SetHydroPressmeterListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //管道
@@ -800,6 +877,33 @@
                }
                var dlg = new SetHydroPipeListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //过渡件
            this.barBtnSetTranslationList.ItemClick += delegate
            {
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroTranslationListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //水泵
@@ -811,6 +915,14 @@
                }
                var dlg = new SetHydroPumpListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //阀门
@@ -822,6 +934,52 @@
                }
                var dlg = new SetHydroValveListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //换热器
            this.barBtnSetExchangerList.ItemClick += delegate
            {
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroExchangerListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
            //换热器
            this.barBtnSetCompressorList.ItemClick += delegate
            {
                if (_hydroInfo == null)
                {
                    return;
                }
                var dlg = new SetHydroCompressorListDlg();
                dlg.SetBindingData(_hydroInfo);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                };
                dlg.ShowDialog();
            };
        }
@@ -991,6 +1149,26 @@
                this.barBtnSetTranslationList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }
            //水泵
            if (_hydroInfo.Pumps == null || _hydroInfo.Pumps.Count < 1)
            {
                this.barBtnSetPumpList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
            }
            else
            {
                this.barBtnSetPumpList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }
            //阀门
            if (_hydroInfo.Valves == null || _hydroInfo.Valves.Count < 1)
            {
                this.barBtnSetValveList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
            }
            else
            {
                this.barBtnSetValveList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }
            //换热器
            if (_hydroInfo.Exchangers == null || _hydroInfo.Exchangers.Count < 1)
            {
@@ -1011,25 +1189,6 @@
                this.barBtnSetCompressorList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }
            //水泵
            if (_hydroInfo.Pumps == null || _hydroInfo.Pumps.Count < 1)
            {
                this.barBtnSetPumpList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
            }
            else
            {
                this.barBtnSetPumpList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }
            //阀门
            if (_hydroInfo.Valves == null || _hydroInfo.Valves.Count < 1)
            {
                this.barBtnSetValveList.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
            }
            else
            {
                this.barBtnSetValveList.Visibility = DevExpress.XtraBars.BarItemVisibility.Always;
            }
        }
@@ -1851,7 +2010,6 @@
                return;
            }
            var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo);
            var json = JsonHelper.Object2Json(netWork);
            var result = netWork.ToInpString();
            File.WriteAllText(fileName, result);
            TipFormHelper.ShowSucceed("导出成功");
@@ -1860,6 +2018,12 @@
        #endregion
        #region 水泵列表
        //性能曲线
        private void barBtnPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
        }
        #region 并联模拟
@@ -1912,26 +2076,26 @@
            }
            var dlg = new PumpParallelAnalyDlg();
            dlg.SetBindingData(vmList);
            dlg.ReloadDataEvent += (list) =>
            {
                list?.ForEach(x =>
                {
                    var pump = pumps.Find(t => t.Code == x.Code);
                    if (pump != null)
                    {
                        pump.LinkStatus = x.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed;
                        pump.SpeedRatio = x.CurrentHz / pump.RatedHz;
                    }
                });
                var codes = list?.Select(x => x.Code).ToList();
                //UpdateVisualViewModelProperty(codes);
                //ShowSelectedProperty();
                UpdateVisualListCtrl();
                return true;
            };
            dlg.ShowDialog();
            //var dlg = new PumpParallelAnalyDlg();
            //dlg.SetBindingData(vmList);
            //dlg.ReloadDataEvent += (list) =>
            //{
            //    list?.ForEach(x =>
            //    {
            //        var pump = pumps.Find(t => t.Code == x.Code);
            //        if (pump != null)
            //        {
            //            pump.LinkStatus = x.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed;
            //            pump.SpeedRatio = x.CurrentHz / pump.RatedHz;
            //        }
            //    });
            //    var codes = list?.Select(x => x.Code).ToList();
            //    //UpdateVisualViewModelProperty(codes);
            //    //ShowSelectedProperty();
            //    UpdateVisualListCtrl();
            //    return true;
            //};
            //dlg.ShowDialog();
        }
        //并联模拟
@@ -2013,6 +2177,12 @@
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateCalcuProperty(calcuResult);
                #endregion
                #region 构件明细
                UpdateVisualListCtrl();
                #endregion
@@ -2230,23 +2400,23 @@
            }
            var dlg = new PumpParallelAnalyDlg();
            dlg.SetBindingData(vmList);
            dlg.ReloadDataEvent += (list) =>
            {
                list?.ForEach(x =>
                {
                    var pump = _hydroInfo.Pumps?.Find(t => t.Code == x.Code);
                    if (pump != null)
                    {
                        pump.LinkStatus = x.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed;
                        pump.SpeedRatio = Math.Round(x.CurrentHz / pump.RatedHz, 1);
                    }
                });
                //ShowSelectedProperty();
                return true;
            };
            dlg.ShowDialog();
            //var dlg = new PumpParallelAnalyDlg();
            //dlg.SetBindingData(vmList);
            //dlg.ReloadDataEvent += (list) =>
            //{
            //    list?.ForEach(x =>
            //    {
            //        var pump = _hydroInfo.Pumps?.Find(t => t.Code == x.Code);
            //        if (pump != null)
            //        {
            //            pump.LinkStatus = x.RunStatus ? Yw.Hydro.PumpStatus.Open : Yw.Hydro.PumpStatus.Closed;
            //            pump.SpeedRatio = Math.Round(x.CurrentHz / pump.RatedHz, 1);
            //        }
            //    });
            //    //ShowSelectedProperty();
            //    return true;
            //};
            //dlg.ShowDialog();
        }
        //能效分析
@@ -2383,5 +2553,6 @@
    }
}