lixiaojun
2025-02-20 25dd33f23a5e3f8386e25d9298743288a1b4c9f6
水泵分析整理
已删除9个文件
已重命名6个文件
已复制5个文件
已修改4个文件
已添加7个文件
1938 ■■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyChartCtrl.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyChartCtrl.cs 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyChartCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyCtrl.Designer.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyCtrl.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyDlg.Designer.cs 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyDlg.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingChartCtrl.Designer.cs 105 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingChartCtrl.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingChartCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingCtrl.Designer.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingCtrl.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingDlg.Designer.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingDlg.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.Designer.cs 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyDlg.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationPumpAnalyChartCtrl.cs 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyCtrl.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyCtrl.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyDlg.Designer.cs 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyDlg.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyDlg.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -3210,11 +3210,17 @@
        }
        //水泵分析
        private void barBtnPumpAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        private async void barBtnPumpAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var workingCheckedListHelper = GetWorkingCheckedListHelper();
            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
            if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
            if (_hydroInfo == null)
            {
                return;
            }
            var isHead = _calcuPressModeIsHead;
            var allEvaluationList = await GetEvaluationList();
            var workingList = GetCheckedWorkingList();
            if (workingList == null || workingList.Count < 1)
            {
                var workingHelper = GetWorkingHelper();
                if (!workingHelper.Initialized)
@@ -3222,16 +3228,15 @@
                    TipFormHelper.ShowWarn("请计算后重试!");
                    return;
                }
                var dlg = new SimulationSingleWorkingPumpAnalyDlg();
                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult);
                var dlg = new SimulationPumpAnalyDlg();
                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.Working, workingHelper.CalcuResult, isHead, allEvaluationList);
                dlg.ShowDialog();
                return;
            }
            else
            {
                var dlg = new SimulationMultiWorkingPumpAnalyDlg();
                dlg.SetBindingData(_hydroInfo, allCheckedWorkingList);
                dlg.ShowDialog();
            }
            var workingDlg = new SimulationPumpAnalyWorkingDlg();
            workingDlg.SetBindingData(_hydroInfo, workingList, isHead, allEvaluationList);
            workingDlg.ShowDialog();
        }
        //能效分析
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyChartCtrl.Designer.cs
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyChartCtrl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,200 @@
using DevExpress.Mvvm.Native;
using System.Data;
using Yw.Pump;
using Yw.Vmo;
using Yw.WinFrmUI.Phart;
namespace HStation.WinFrmUI
{
    public partial class SimulationPumpAnalyChartCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public SimulationPumpAnalyChartCtrl()
        {
            InitializeComponent();
            this.pumpRunViewChart1.RunPointSelectedEvent += PumpRunViewChart1_RunPointSelectedEvent;
        }
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private Yw.Model.HydroPumpInfo _pumpInfo = null;//水泵信息
        private Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel> _allCalcuResultDict = null;//计算结果字典
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                Yw.Model.HydroPumpInfo pumpInfo,
                Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel> allCalcuResultDict
            )
        {
            if (hydroInfo == null)
            {
                return;
            }
            if (pumpInfo == null)
            {
                return;
            }
            _hydroInfo = hydroInfo;
            _pumpInfo = pumpInfo;
            _allCalcuResultDict = allCalcuResultDict;
            var vm = CreateViewModel(hydroInfo, pumpInfo, allCalcuResultDict);
            SetBindingData(vm);
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(PumpRunViewViewModel vm)
        {
            this.pumpRunViewChart1.SetBindingData(vm);
            this.barCheckE.Checked = this.pumpRunViewChart1.QEVisible;
            this.barCheckP.Checked = this.pumpRunViewChart1.QPVisble;
            if (vm != null && vm.Items != null)
            {
                var item = vm.Items.FirstOrDefault();
                SetCurrent(item);
            }
        }
        //设置当前
        private void SetCurrent(PumpRunViewItemViewModel item)
        {
            if (item != null)
            {
                this.barTxtQ.EditValue = $"{Math.Round(item.Q, 1)}m³/h";
                this.barTxtH.EditValue = $"{Math.Round(item.H, 2)}m";
                this.barTxtP.EditValue = $"{Math.Round(item.P ?? 0, 1)}kW";
                this.barTxtE.EditValue = $"{Math.Round(item.E ?? 0, 1)}%";
            }
        }
        //创建视图
        private PumpRunViewViewModel CreateViewModel
            (
                Yw.Model.HydroModelInfo hydroInfo,
                Yw.Model.HydroPumpInfo pumpInfo,
                Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel> allCalcuResultDict
            )
        {
            if (hydroInfo == null)
            {
                return default;
            }
            if (pumpInfo == null)
            {
                return default;
            }
            var vm = new PumpRunViewViewModel();
            vm.Id = _pumpInfo.Code;
            vm.Name = _pumpInfo.Name;
            vm.CurveName = $"额定曲线({_pumpInfo.RatedHz}hz)";
            vm.RatedQ = _pumpInfo.RatedQ;
            vm.RatedH = _pumpInfo.RatedH;
            vm.RatedP = _pumpInfo.RatedP;
            vm.RatedN = _pumpInfo.RatedN;
            vm.RatedHz = _pumpInfo.RatedHz;
            vm.Color = Color.Black;
            var curveqh = _hydroInfo.Curves?.Find(x => x.Code == _pumpInfo.CurveQH);
            if (curveqh != null)
            {
                var qh_pts = curveqh.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
                if (qh_pts != null && qh_pts.Count > 3)
                {
                    vm.CurveQH = qh_pts;
                }
            }
            var curveqp = _hydroInfo.Curves?.Find(x => x.Code == _pumpInfo.CurveQP);
            if (curveqp != null)
            {
                var qp_pts = curveqp.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
                if (qp_pts != null && qp_pts.Count > 3)
                {
                    vm.CurveQP = qp_pts;
                }
            }
            var curveqe = _hydroInfo.Curves?.Find(x => x.Code == _pumpInfo.CurveQE);
            if (curveqe != null)
            {
                var qe_pts = curveqe.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
                if (qe_pts != null && qe_pts.Count > 3)
                {
                    vm.CurveQE = qe_pts;
                }
            }
            if (allCalcuResultDict != null && allCalcuResultDict.Count > 0)
            {
                vm.Items = new List<PumpRunViewItemViewModel>();
                foreach (var kvp in allCalcuResultDict)
                {
                    var working = kvp.Key;
                    var workingPump = kvp.Value.Items?.Find(x => x.Code == pumpInfo.Code);
                    if (workingPump == null)
                    {
                        continue;
                    }
                    if (workingPump.LinkStatus != Yw.Hydro.LinkStatus.Open)
                    {
                        continue;
                    }
                    var vmItem = new PumpRunViewItemViewModel();
                    vm.Items.Add(vmItem);
                    vmItem.Id = working.ID.ToString();
                    vmItem.Name = working.Name;
                    if (working.ID < 1)
                    {
                        vmItem.Name = "运行";
                    }
                    vmItem.Hz = workingPump.CurrentHz;
                    vmItem.N = workingPump.CurrentN;
                    vmItem.Color = HydroPumpCurveColorHelper.GetRandomColor(allCalcuResultDict.Keys.ToList().IndexOf(working));
                    vmItem.CurveName = $"{working.Name}({vmItem.Hz}hz)";
                    if (working.ID < 1)
                    {
                        vmItem.CurveName = $"运行曲线({vmItem.Hz}hz)";
                    }
                    vmItem.Q = workingPump.CurrentQ ?? 0;
                    vmItem.H = workingPump.CurrentH ?? 0;
                    vmItem.P = workingPump.CurrentP;
                    vmItem.E = workingPump.CurrentE;
                    vmItem.CurveQH = workingPump.CurrentCurveQH;
                    vmItem.CurveQP = workingPump.CurrentCurveQP;
                    vmItem.CurveQE = workingPump.CurrentCurveQE;
                }
            }
            return vm;
        }
        //效率线
        private void barCheckE_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.pumpRunViewChart1.QEVisible = this.barCheckE.Checked;
        }
        //功率线
        private void barCheckP_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.pumpRunViewChart1.QPVisble = this.barCheckP.Checked;
        }
        //设置坐标轴
        private void barBtnCoord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.pumpRunViewChart1.SetChartAxis();
        }
        //设置当前
        private void PumpRunViewChart1_RunPointSelectedEvent(PumpRunViewItemViewModel obj)
        {
            SetCurrent(obj);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyChartCtrl.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyCtrl.Designer.cs
ÎļþÃû´Ó WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyCtrl.Designer.cs ÐÞ¸Ä
@@ -1,6 +1,6 @@
namespace HStation.WinFrmUI
{
    partial class SimulationSingleWorkingPumpAnalyCtrl
    partial class SimulationPumpAnalyCtrl
    {
        /// <summary> 
        /// Required designer variable.
@@ -55,7 +55,7 @@
            layoutControl1.Dock = DockStyle.Fill;
            layoutControl1.Location = new Point(0, 0);
            layoutControl1.Name = "layoutControl1";
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1055, 304, 650, 400);
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(717, 297, 650, 400);
            layoutControl1.Root = Root;
            layoutControl1.Size = new Size(1010, 570);
            layoutControl1.TabIndex = 1;
@@ -65,17 +65,17 @@
            // 
            hydroPumpListStateViewCtrl1.Location = new Point(2, 24);
            hydroPumpListStateViewCtrl1.Name = "hydroPumpListStateViewCtrl1";
            hydroPumpListStateViewCtrl1.Size = new Size(226, 544);
            hydroPumpListStateViewCtrl1.Size = new Size(210, 544);
            hydroPumpListStateViewCtrl1.TabIndex = 8;
            // 
            // panelControl1
            // 
            panelControl1.BorderStyle = BorderStyles.Simple;
            panelControl1.Controls.Add(simulationPumpAnalyChartCtrl1);
            panelControl1.Location = new Point(242, 2);
            panelControl1.Location = new Point(226, 2);
            panelControl1.Name = "panelControl1";
            panelControl1.Padding = new Padding(1);
            panelControl1.Size = new Size(766, 566);
            panelControl1.Size = new Size(782, 566);
            panelControl1.TabIndex = 7;
            // 
            // simulationPumpAnalyChartCtrl1
@@ -83,7 +83,7 @@
            simulationPumpAnalyChartCtrl1.Dock = DockStyle.Fill;
            simulationPumpAnalyChartCtrl1.Location = new Point(3, 3);
            simulationPumpAnalyChartCtrl1.Name = "simulationPumpAnalyChartCtrl1";
            simulationPumpAnalyChartCtrl1.Size = new Size(760, 560);
            simulationPumpAnalyChartCtrl1.Size = new Size(776, 560);
            simulationPumpAnalyChartCtrl1.TabIndex = 0;
            // 
            // Root
@@ -103,7 +103,7 @@
            layoutControlGroup1.Location = new Point(0, 0);
            layoutControlGroup1.Name = "layoutControlGroup1";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(230, 570);
            layoutControlGroup1.Size = new Size(214, 570);
            layoutControlGroup1.Text = "水泵列表";
            // 
            // layoutControlItem2
@@ -112,34 +112,34 @@
            layoutControlItem2.Location = new Point(0, 0);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem2.Size = new Size(226, 544);
            layoutControlItem2.Size = new Size(210, 544);
            layoutControlItem2.TextSize = new Size(0, 0);
            layoutControlItem2.TextVisible = false;
            // 
            // splitterItem1
            // 
            splitterItem1.AllowHotTrack = true;
            splitterItem1.Location = new Point(230, 0);
            splitterItem1.Location = new Point(214, 0);
            splitterItem1.Name = "splitterItem1";
            splitterItem1.Size = new Size(10, 570);
            // 
            // layoutControlItem3
            // 
            layoutControlItem3.Control = panelControl1;
            layoutControlItem3.Location = new Point(240, 0);
            layoutControlItem3.Location = new Point(224, 0);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem3.Size = new Size(770, 570);
            layoutControlItem3.Size = new Size(786, 570);
            layoutControlItem3.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            // 
            // SimulationSingleWorkingPumpAnalyCtrl
            // SimulationPumpAnalyCtrl
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(layoutControl1);
            Name = "SimulationSingleWorkingPumpAnalyCtrl";
            Name = "SimulationPumpAnalyCtrl";
            Size = new Size(1010, 570);
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyCtrl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
using Mapster;
using Yw.Vmo;
namespace HStation.WinFrmUI
{
    public partial class SimulationPumpAnalyCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public SimulationPumpAnalyCtrl()
        {
            InitializeComponent();
            this.layoutControl1.SetupLayoutControl();
            this.hydroPumpListStateViewCtrl1.SelectedChangedEvent += HydroPumpListStateViewCtrl1_SelectedChangedEvent;
        }
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private HydroWorkingVmo _working = null;//工况
        private HydroPumpAnalyViewModel _vm = null;//视图
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                HydroWorkingVmo working,
                HydroCalcuResult calcuResult = null,
                bool isHead = false,
                List<HydroEvaluationVmo> allEvaluationList = null
            )
        {
            if (hydroInfo == null)
            {
                return;
            }
            if (working == null)
            {
                return;
            }
            _hydroInfo = hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
            _working = working;
            if (calcuResult == null)
            {
                _hydroInfo.UpdateWorkingInfo(working.WorkingInfo);
                calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList);
                if (!calcuResult.Succeed)
                {
                    return;
                }
            }
            _vm = HydroPumpAnalyHelper.Create(_hydroInfo, working, calcuResult, isHead, allEvaluationList);
            this.hydroPumpListStateViewCtrl1.SetBindingData(_hydroInfo);
        }
        //选择改变
        private void HydroPumpListStateViewCtrl1_SelectedChangedEvent(Yw.Model.HydroPumpInfo pump)
        {
            if (pump == null)
            {
                return;
            }
            if (_hydroInfo == null)
            {
                return;
            }
            if (_working == null)
            {
                return;
            }
            if (_vm == null)
            {
                return;
            }
            var dict = new Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel>()
            {
                { _working,_vm}
            };
            this.simulationPumpAnalyChartCtrl1.SetBindingData(_hydroInfo, pump, dict);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyCtrl.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyDlg.Designer.cs
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyDlg.Designer.cs copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyDlg.Designer.cs
Îļþ´Ó WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyDlg.Designer.cs ¸´ÖÆ
@@ -1,6 +1,6 @@
namespace HStation.WinFrmUI
{
    partial class SimulationMultiWorkingPumpAnalyDlg
    partial class SimulationPumpAnalyDlg
    {
        /// <summary>
        /// Required designer variable.
@@ -31,7 +31,7 @@
            ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl();
            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            simulationMultiWorkingPumpAnalyCtrl1 = new SimulationMultiWorkingPumpAnalyCtrl();
            simulationPumpAnalyCtrl1 = new SimulationPumpAnalyCtrl();
            ((ISupportInitialize)ribbon).BeginInit();
            SuspendLayout();
            // 
@@ -45,7 +45,7 @@
            ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
            ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left;
            ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False;
            ribbon.Size = new Size(1039, 32);
            ribbon.Size = new Size(1105, 32);
            // 
            // ribbonPage1
            // 
@@ -58,23 +58,23 @@
            ribbonPageGroup1.Name = "ribbonPageGroup1";
            ribbonPageGroup1.Text = "ribbonPageGroup1";
            // 
            // simulationMultiWorkingPumpAnalyCtrl1
            // simulationPumpAnalyCtrl1
            // 
            simulationMultiWorkingPumpAnalyCtrl1.Dock = DockStyle.Fill;
            simulationMultiWorkingPumpAnalyCtrl1.Location = new Point(0, 32);
            simulationMultiWorkingPumpAnalyCtrl1.Name = "simulationMultiWorkingPumpAnalyCtrl1";
            simulationMultiWorkingPumpAnalyCtrl1.Size = new Size(1039, 631);
            simulationMultiWorkingPumpAnalyCtrl1.TabIndex = 3;
            simulationPumpAnalyCtrl1.Dock = DockStyle.Fill;
            simulationPumpAnalyCtrl1.Location = new Point(0, 32);
            simulationPumpAnalyCtrl1.Name = "simulationPumpAnalyCtrl1";
            simulationPumpAnalyCtrl1.Size = new Size(1105, 631);
            simulationPumpAnalyCtrl1.TabIndex = 1;
            // 
            // SimulationMultiWorkingPumpAnalyDlg
            // SimulationPumpAnalyDlg
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(1039, 663);
            Controls.Add(simulationMultiWorkingPumpAnalyCtrl1);
            ClientSize = new Size(1105, 663);
            Controls.Add(simulationPumpAnalyCtrl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            Name = "SimulationMultiWorkingPumpAnalyDlg";
            Name = "SimulationPumpAnalyDlg";
            Ribbon = ribbon;
            RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden;
            StartPosition = FormStartPosition.CenterParent;
@@ -89,6 +89,6 @@
        private DevExpress.XtraBars.Ribbon.RibbonControl ribbon;
        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
        private SimulationMultiWorkingPumpAnalyCtrl simulationMultiWorkingPumpAnalyCtrl1;
        private SimulationPumpAnalyCtrl simulationPumpAnalyCtrl1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyDlg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
using Yw.Vmo;
namespace HStation.WinFrmUI
{
    public partial class SimulationPumpAnalyDlg : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public SimulationPumpAnalyDlg()
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                HydroWorkingVmo working,
                HydroCalcuResult calcuResult = null,
                bool isHead = false,
                List<HydroEvaluationVmo> allEvaluationList = null
            )
        {
            this.simulationPumpAnalyCtrl1.SetBindingData(hydroInfo, working, calcuResult, isHead, allEvaluationList);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyDlg.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingChartCtrl.Designer.cs
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyCtrl.Designer.cs copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingChartCtrl.Designer.cs
Îļþ´Ó WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyCtrl.Designer.cs ¸´ÖÆ
@@ -1,6 +1,6 @@
namespace HStation.WinFrmUI
{
    partial class SimulationSingleWorkingPumpAnalyCtrl
    partial class SimulationPumpAnalyWorkingChartCtrl
    {
        /// <summary> 
        /// Required designer variable.
@@ -29,139 +29,132 @@
        private void InitializeComponent()
        {
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            hydroPumpListStateViewCtrl1 = new HydroPumpListStateViewCtrl();
            panelControl1 = new PanelControl();
            simulationPumpAnalyChartCtrl1 = new SimulationPumpAnalyChartCtrl();
            hydroWorkingCheckedListHorizCtrl1 = new HydroWorkingCheckedListHorizCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            splitterItem1 = new DevExpress.XtraLayout.SplitterItem();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)panelControl1).BeginInit();
            panelControl1.SuspendLayout();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlGroup1).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            ((ISupportInitialize)splitterItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem3).BeginInit();
            SuspendLayout();
            // 
            // layoutControl1
            // 
            layoutControl1.Controls.Add(hydroPumpListStateViewCtrl1);
            layoutControl1.Controls.Add(panelControl1);
            layoutControl1.Controls.Add(hydroWorkingCheckedListHorizCtrl1);
            layoutControl1.Dock = DockStyle.Fill;
            layoutControl1.Location = new Point(0, 0);
            layoutControl1.Name = "layoutControl1";
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1055, 304, 650, 400);
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(599, 274, 650, 388);
            layoutControl1.Root = Root;
            layoutControl1.Size = new Size(1010, 570);
            layoutControl1.TabIndex = 1;
            layoutControl1.Size = new Size(926, 612);
            layoutControl1.TabIndex = 0;
            layoutControl1.Text = "layoutControl1";
            //
            // hydroPumpListStateViewCtrl1
            //
            hydroPumpListStateViewCtrl1.Location = new Point(2, 24);
            hydroPumpListStateViewCtrl1.Name = "hydroPumpListStateViewCtrl1";
            hydroPumpListStateViewCtrl1.Size = new Size(226, 544);
            hydroPumpListStateViewCtrl1.TabIndex = 8;
            // 
            // panelControl1
            // 
            panelControl1.BorderStyle = BorderStyles.Simple;
            panelControl1.Controls.Add(simulationPumpAnalyChartCtrl1);
            panelControl1.Location = new Point(242, 2);
            panelControl1.Location = new Point(2, 61);
            panelControl1.Name = "panelControl1";
            panelControl1.Padding = new Padding(1);
            panelControl1.Size = new Size(766, 566);
            panelControl1.TabIndex = 7;
            panelControl1.Size = new Size(922, 549);
            panelControl1.TabIndex = 5;
            // 
            // simulationPumpAnalyChartCtrl1
            // 
            simulationPumpAnalyChartCtrl1.Dock = DockStyle.Fill;
            simulationPumpAnalyChartCtrl1.Location = new Point(3, 3);
            simulationPumpAnalyChartCtrl1.Name = "simulationPumpAnalyChartCtrl1";
            simulationPumpAnalyChartCtrl1.Size = new Size(760, 560);
            simulationPumpAnalyChartCtrl1.Size = new Size(916, 543);
            simulationPumpAnalyChartCtrl1.TabIndex = 0;
            //
            // hydroWorkingCheckedListHorizCtrl1
            //
            hydroWorkingCheckedListHorizCtrl1.Location = new Point(2, 24);
            hydroWorkingCheckedListHorizCtrl1.Name = "hydroWorkingCheckedListHorizCtrl1";
            hydroWorkingCheckedListHorizCtrl1.Size = new Size(922, 35);
            hydroWorkingCheckedListHorizCtrl1.TabIndex = 4;
            // 
            // Root
            // 
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup1, splitterItem1, layoutControlItem3 });
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup1, layoutControlItem2 });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(1010, 570);
            Root.Size = new Size(926, 612);
            Root.TextVisible = false;
            // 
            // layoutControlGroup1
            // 
            layoutControlGroup1.GroupStyle = DevExpress.Utils.GroupStyle.Title;
            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 });
            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 });
            layoutControlGroup1.Location = new Point(0, 0);
            layoutControlGroup1.Name = "layoutControlGroup1";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(230, 570);
            layoutControlGroup1.Text = "水泵列表";
            layoutControlGroup1.Size = new Size(926, 60);
            layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 1);
            layoutControlGroup1.Text = "工况列表";
            //
            // layoutControlItem1
            //
            layoutControlItem1.Control = hydroWorkingCheckedListHorizCtrl1;
            layoutControlItem1.Location = new Point(0, 0);
            layoutControlItem1.MaxSize = new Size(0, 35);
            layoutControlItem1.MinSize = new Size(50, 35);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem1.Size = new Size(922, 35);
            layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            // 
            // layoutControlItem2
            // 
            layoutControlItem2.Control = hydroPumpListStateViewCtrl1;
            layoutControlItem2.Location = new Point(0, 0);
            layoutControlItem2.Control = panelControl1;
            layoutControlItem2.Location = new Point(0, 60);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem2.Size = new Size(226, 544);
            layoutControlItem2.Size = new Size(926, 552);
            layoutControlItem2.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 1, 2);
            layoutControlItem2.TextSize = new Size(0, 0);
            layoutControlItem2.TextVisible = false;
            // 
            // splitterItem1
            //
            splitterItem1.AllowHotTrack = true;
            splitterItem1.Location = new Point(230, 0);
            splitterItem1.Name = "splitterItem1";
            splitterItem1.Size = new Size(10, 570);
            //
            // layoutControlItem3
            //
            layoutControlItem3.Control = panelControl1;
            layoutControlItem3.Location = new Point(240, 0);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem3.Size = new Size(770, 570);
            layoutControlItem3.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            //
            // SimulationSingleWorkingPumpAnalyCtrl
            // SimulationPumpAnalyWorkingChartCtrl
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(layoutControl1);
            Name = "SimulationSingleWorkingPumpAnalyCtrl";
            Size = new Size(1010, 570);
            Name = "SimulationPumpAnalyWorkingChartCtrl";
            Size = new Size(926, 612);
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)panelControl1).EndInit();
            panelControl1.ResumeLayout(false);
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlGroup1).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ((ISupportInitialize)splitterItem1).EndInit();
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ResumeLayout(false);
        }
        #endregion
        private DevExpress.XtraLayout.LayoutControl layoutControl1;
        private PanelControl panelControl1;
        private HydroWorkingCheckedListHorizCtrl hydroWorkingCheckedListHorizCtrl1;
        private DevExpress.XtraLayout.LayoutControlGroup Root;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
        private DevExpress.XtraLayout.SplitterItem splitterItem1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
        private HydroPumpListStateViewCtrl hydroPumpListStateViewCtrl1;
        private PanelControl panelControl1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
        private SimulationPumpAnalyChartCtrl simulationPumpAnalyChartCtrl1;
    }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingChartCtrl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
using Yw.Vmo;
namespace HStation.WinFrmUI
{
    public partial class SimulationPumpAnalyWorkingChartCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public SimulationPumpAnalyWorkingChartCtrl()
        {
            InitializeComponent();
            this.layoutControl1.SetupLayoutControl();
            this.hydroWorkingCheckedListHorizCtrl1.CheckedChangedEvent += HydroWorkingCheckedListHorizCtrl1_CheckedChangedEvent;
        }
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private Yw.Model.HydroPumpInfo _pumpInfo = null;//水泵信息
        private List<HydroWorkingVmo> _allWorkingList = null;//所有工况列表
        private Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel> _allCalcuResultDict = null;//计算结果字典
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                Yw.Model.HydroPumpInfo pumpInfo,
                List<HydroWorkingVmo> allWorkingList,
                Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel> allCalcuResultDict
            )
        {
            if (hydroInfo == null)
            {
                return;
            }
            if (pumpInfo == null)
            {
                return;
            }
            if (allWorkingList == null || allWorkingList.Count < 1)
            {
                return;
            }
            if (allCalcuResultDict == null || allCalcuResultDict.Count < 1)
            {
                return;
            }
            _hydroInfo = hydroInfo;
            _pumpInfo = pumpInfo;
            _allWorkingList = allWorkingList;
            _allCalcuResultDict = allCalcuResultDict;
            this.hydroWorkingCheckedListHorizCtrl1.SetBindingData(allWorkingList);
            this.simulationPumpAnalyChartCtrl1.SetBindingData(hydroInfo, pumpInfo, allCalcuResultDict);
        }
        //工况选择改变事件
        private void HydroWorkingCheckedListHorizCtrl1_CheckedChangedEvent(List<HydroWorkingVmo> allWorkingList)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (_pumpInfo == null)
            {
                return;
            }
            if (_allCalcuResultDict == null || _allCalcuResultDict.Count < 1)
            {
                return;
            }
            var dict = new Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel>();
            foreach (var working in allWorkingList)
            {
                if (_allCalcuResultDict.ContainsKey(working))
                {
                    dict.Add(working, _allCalcuResultDict[working]);
                }
            }
            this.simulationPumpAnalyChartCtrl1.SetBindingData(_hydroInfo, _pumpInfo, dict);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingChartCtrl.resx
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.resx copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingChartCtrl.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingCtrl.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
namespace HStation.WinFrmUI
{
    partial class SimulationPumpAnalyWorkingCtrl
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Component Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            simulationPumpAnalyWorkingChartCtrl1 = new SimulationPumpAnalyWorkingChartCtrl();
            hydroPumpListViewCtrl1 = new HydroPumpListViewInWorkingsCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            splitterItem1 = new DevExpress.XtraLayout.SplitterItem();
            itemForPumpAnaly = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlGroup1).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)splitterItem1).BeginInit();
            ((ISupportInitialize)itemForPumpAnaly).BeginInit();
            SuspendLayout();
            //
            // layoutControl1
            //
            layoutControl1.Controls.Add(simulationPumpAnalyWorkingChartCtrl1);
            layoutControl1.Controls.Add(hydroPumpListViewCtrl1);
            layoutControl1.Dock = DockStyle.Fill;
            layoutControl1.Location = new Point(0, 0);
            layoutControl1.Name = "layoutControl1";
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1065, 279, 650, 400);
            layoutControl1.Root = Root;
            layoutControl1.Size = new Size(1021, 557);
            layoutControl1.TabIndex = 2;
            layoutControl1.Text = "layoutControl1";
            //
            // simulationPumpAnalyWorkingChartCtrl1
            //
            simulationPumpAnalyWorkingChartCtrl1.Location = new Point(206, 0);
            simulationPumpAnalyWorkingChartCtrl1.Name = "simulationPumpAnalyWorkingChartCtrl1";
            simulationPumpAnalyWorkingChartCtrl1.Size = new Size(815, 557);
            simulationPumpAnalyWorkingChartCtrl1.TabIndex = 10;
            //
            // hydroPumpListViewCtrl1
            //
            hydroPumpListViewCtrl1.Location = new Point(2, 24);
            hydroPumpListViewCtrl1.Name = "hydroPumpListViewCtrl1";
            hydroPumpListViewCtrl1.Size = new Size(192, 531);
            hydroPumpListViewCtrl1.TabIndex = 9;
            //
            // Root
            //
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup1, itemForPumpAnaly, splitterItem1 });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(1021, 557);
            Root.TextVisible = false;
            //
            // layoutControlGroup1
            //
            layoutControlGroup1.GroupStyle = DevExpress.Utils.GroupStyle.Title;
            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 });
            layoutControlGroup1.Location = new Point(0, 0);
            layoutControlGroup1.Name = "layoutControlGroup1";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(196, 557);
            layoutControlGroup1.Text = "水泵列表";
            //
            // layoutControlItem1
            //
            layoutControlItem1.Control = hydroPumpListViewCtrl1;
            layoutControlItem1.Location = new Point(0, 0);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem1.Size = new Size(192, 531);
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            //
            // splitterItem1
            //
            splitterItem1.AllowHotTrack = true;
            splitterItem1.Location = new Point(196, 0);
            splitterItem1.Name = "splitterItem1";
            splitterItem1.Size = new Size(10, 557);
            //
            // itemForPumpAnaly
            //
            itemForPumpAnaly.Control = simulationPumpAnalyWorkingChartCtrl1;
            itemForPumpAnaly.Location = new Point(206, 0);
            itemForPumpAnaly.Name = "itemForPumpAnaly";
            itemForPumpAnaly.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            itemForPumpAnaly.Size = new Size(815, 557);
            itemForPumpAnaly.TextSize = new Size(0, 0);
            itemForPumpAnaly.TextVisible = false;
            //
            // SimulationPumpAnalyWorkingCtrl
            //
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(layoutControl1);
            Name = "SimulationPumpAnalyWorkingCtrl";
            Size = new Size(1021, 557);
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlGroup1).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)splitterItem1).EndInit();
            ((ISupportInitialize)itemForPumpAnaly).EndInit();
            ResumeLayout(false);
        }
        #endregion
        private DevExpress.XtraLayout.LayoutControl layoutControl1;
        private HydroPumpListViewInWorkingsCtrl hydroPumpListViewCtrl1;
        private DevExpress.XtraLayout.LayoutControlGroup Root;
        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
        private DevExpress.XtraLayout.SplitterItem splitterItem1;
        private SimulationPumpAnalyChartCtrl simulationPumpAnalyChartCtrl1;
        private SimulationPumpAnalyWorkingChartCtrl simulationPumpAnalyWorkingChartCtrl1;
        private DevExpress.XtraLayout.LayoutControlItem itemForPumpAnaly;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingCtrl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
using Mapster;
using Yw.Vmo;
namespace HStation.WinFrmUI
{
    public partial class SimulationPumpAnalyWorkingCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public SimulationPumpAnalyWorkingCtrl()
        {
            InitializeComponent();
            this.layoutControl1.SetupLayoutControl();
            this.hydroPumpListViewCtrl1.SelectedChangedEvent += HydroPumpListViewCtrl1_SelectedChangedEvent;
        }
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private Yw.Model.HydroPumpInfo _pumpInfo = null;//水泵信心
        private List<HydroWorkingVmo> _allWorkingList = null;//所有工况列表
        private Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel> _allCalcuResultDict = null;//计算结果字典
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                List<HydroWorkingVmo> allWorkingList,
                bool isHead = false,
                List<HydroEvaluationVmo> allEvaluationList = null
            )
        {
            if (hydroInfo == null)
            {
                return;
            }
            if (allWorkingList == null || allWorkingList.Count < 1)
            {
                return;
            }
            _hydroInfo = hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
            _allWorkingList = allWorkingList;
            _allCalcuResultDict = new Dictionary<HydroWorkingVmo, HydroPumpAnalyViewModel>();
            foreach (var working in allWorkingList)
            {
                _hydroInfo.UpdateWorkingInfo(working.WorkingInfo);
                var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList);
                if (calcuResult.Succeed)
                {
                    var vm = HydroPumpAnalyHelper.Create(_hydroInfo, working, calcuResult, isHead, allEvaluationList);
                    _allCalcuResultDict.Add(working, vm);
                }
            }
            this.hydroPumpListViewCtrl1.SetBindingData(_hydroInfo, allWorkingList);
        }
        //水泵选择改变
        private void HydroPumpListViewCtrl1_SelectedChangedEvent(Yw.Model.HydroPumpInfo pumpInfo)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (pumpInfo == null)
            {
                return;
            }
            _pumpInfo = pumpInfo;
            this.simulationPumpAnalyWorkingChartCtrl1.SetBindingData(_hydroInfo, pumpInfo, _allWorkingList, _allCalcuResultDict);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingCtrl.resx
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.resx copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingCtrl.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingDlg.Designer.cs
ÎļþÃû´Ó WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyDlg.Designer.cs ÐÞ¸Ä
@@ -1,6 +1,6 @@
namespace HStation.WinFrmUI
{
    partial class SimulationMultiWorkingPumpAnalyDlg
    partial class SimulationPumpAnalyWorkingDlg
    {
        /// <summary>
        /// Required designer variable.
@@ -31,7 +31,7 @@
            ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl();
            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            simulationMultiWorkingPumpAnalyCtrl1 = new SimulationMultiWorkingPumpAnalyCtrl();
            simulationPumpAnalyWorkingCtrl1 = new SimulationPumpAnalyWorkingCtrl();
            ((ISupportInitialize)ribbon).BeginInit();
            SuspendLayout();
            // 
@@ -60,18 +60,18 @@
            // 
            // simulationMultiWorkingPumpAnalyCtrl1
            // 
            simulationMultiWorkingPumpAnalyCtrl1.Dock = DockStyle.Fill;
            simulationMultiWorkingPumpAnalyCtrl1.Location = new Point(0, 32);
            simulationMultiWorkingPumpAnalyCtrl1.Name = "simulationMultiWorkingPumpAnalyCtrl1";
            simulationMultiWorkingPumpAnalyCtrl1.Size = new Size(1039, 631);
            simulationMultiWorkingPumpAnalyCtrl1.TabIndex = 3;
            simulationPumpAnalyWorkingCtrl1.Dock = DockStyle.Fill;
            simulationPumpAnalyWorkingCtrl1.Location = new Point(0, 32);
            simulationPumpAnalyWorkingCtrl1.Name = "simulationMultiWorkingPumpAnalyCtrl1";
            simulationPumpAnalyWorkingCtrl1.Size = new Size(1039, 631);
            simulationPumpAnalyWorkingCtrl1.TabIndex = 3;
            // 
            // SimulationMultiWorkingPumpAnalyDlg
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(1039, 663);
            Controls.Add(simulationMultiWorkingPumpAnalyCtrl1);
            Controls.Add(simulationPumpAnalyWorkingCtrl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            Name = "SimulationMultiWorkingPumpAnalyDlg";
@@ -89,6 +89,6 @@
        private DevExpress.XtraBars.Ribbon.RibbonControl ribbon;
        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
        private SimulationMultiWorkingPumpAnalyCtrl simulationMultiWorkingPumpAnalyCtrl1;
        private SimulationPumpAnalyWorkingCtrl simulationPumpAnalyWorkingCtrl1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingDlg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
using Yw.Vmo;
namespace HStation.WinFrmUI
{
    public partial class SimulationPumpAnalyWorkingDlg : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public SimulationPumpAnalyWorkingDlg()
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                List<HydroWorkingVmo> allWorkingList,
                bool isHead = false,
                List<HydroEvaluationVmo> allEvaluationList = null
            )
        {
            if (hydroInfo == null)
            {
                return;
            }
            this.simulationPumpAnalyWorkingCtrl1.SetBindingData(hydroInfo, allWorkingList, isHead, allEvaluationList);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingDlg.resx
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyDlg.resx copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-pump-analy/SimulationPumpAnalyWorkingDlg.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyCtrl.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationMultiWorkingPumpAnalyDlg.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationPumpAnalyChartCtrl.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyCtrl.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyCtrl.resx
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyDlg.Designer.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyDlg.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/03-analy/SimulationSingleWorkingPumpAnalyDlg.resx
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
@@ -390,8 +390,8 @@
        <Compile Update="03-simulation\11-pump\01-parallel\SimulationPumpParallelDlg.cs" />
        <Compile Update="03-simulation\11-pump\02-feat\SimulationSinglePumpFeatDlg.cs" />
        <Compile Update="03-simulation\11-pump\02-feat\SimulationPumpFeatDlg.cs" />
        <Compile Update="03-simulation\11-pump\03-analy\SimulationMultiWorkingPumpAnalyDlg.cs" />
        <Compile Update="03-simulation\11-pump\03-analy\SimulationSingleWorkingPumpAnalyDlg.cs" />
        <Compile Update="03-simulation\10-pump-analy\SimulationPumpAnalyWorkingDlg.cs" />
        <Compile Update="03-simulation\10-pump-analy\SimulationPumpAnalyDlg.cs" />
        <Compile Update="Properties\Resources.Designer.cs">
            <DesignTime>True</DesignTime>
            <AutoGen>True</AutoGen>
@@ -405,4 +405,8 @@
            <LastGenOutput>Resources.Designer.cs</LastGenOutput>
        </EmbeddedResource>
    </ItemGroup>
    <ItemGroup>
      <Folder Include="03-simulation\11-pump\03-analy\" />
    </ItemGroup>
</Project>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
@@ -238,19 +238,22 @@
    <Compile Update="03-simulation\11-pump\02-feat\SimulationSinglePumpFeatDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="03-simulation\11-pump\03-analy\SimulationMultiWorkingPumpAnalyCtrl.cs">
    <Compile Update="03-simulation\10-pump-analy\SimulationPumpAnalyWorkingCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\11-pump\03-analy\SimulationMultiWorkingPumpAnalyDlg.cs">
    <Compile Update="03-simulation\10-pump-analy\SimulationPumpAnalyWorkingDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="03-simulation\11-pump\03-analy\SimulationPumpAnalyChartCtrl.cs">
    <Compile Update="03-simulation\10-pump-analy\SimulationPumpAnalyChartCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\11-pump\03-analy\SimulationSingleWorkingPumpAnalyCtrl.cs">
    <Compile Update="03-simulation\10-pump-analy\SimulationPumpAnalyWorkingChartCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\11-pump\03-analy\SimulationSingleWorkingPumpAnalyDlg.cs">
    <Compile Update="03-simulation\10-pump-analy\SimulationPumpAnalyCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\10-pump-analy\SimulationPumpAnalyDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="03-simulation\09-energy-analy\SimulationEnergyAnalyChartCtrl.cs">
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
@@ -462,6 +462,7 @@
    <ItemGroup>
      <Folder Include="19-pump\07-group\" />
      <Folder Include="pump-analy\01-control\" />
    </ItemGroup>
</Project>