lixiaojun
2025-01-24 7b65f86343ca014b12894f09b7d62e8b5ac1f95d
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/04-working/SimulationPumpSingleWorkingChartCtrl.cs
@@ -1,14 +1,4 @@
using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Yw.Geometry;
using System.Data;
using Yw.Pump;
using Yw.Vmo;
using Yw.WinFrmUI.Phart;
@@ -97,89 +87,13 @@
            vm.CurveName = $"装置线";
            vm.Color = Color.Black;
            var startSourceMonitor = _allMonitorList?
                .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                { HStation.Xhs.Flags.水源,HStation.Xhs.Flags.始端,HStation.Xhs.Flags.默认});
            if (startSourceMonitor == null)
            {
                startSourceMonitor = _allMonitorList?
                .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                { HStation.Xhs.Flags.水源,HStation.Xhs.Flags.始端});
            }
            if (startSourceMonitor != null)
            {
                var startSourceCalcuResult = _allCalcuResultVisualDict?.GetValue(startSourceMonitor.Relation);
                if (startSourceCalcuResult != null)
                {
                    var startHead = startSourceCalcuResult.GetCalcuValue(startSourceMonitor.PropName);
                    if (startHead.HasValue)
                    {
                        var endSourceMonitor = _allMonitorList?
                                    .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                                    { HStation.Xhs.Flags.水源,HStation.Xhs.Flags.末端,HStation.Xhs.Flags.默认});
                        if (endSourceMonitor == null)
                        {
                            endSourceMonitor = _allMonitorList?
                                        .Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                                        { HStation.Xhs.Flags.水源,HStation.Xhs.Flags.末端});
                        }
                        if (endSourceMonitor != null)
                        {
                            var endSouceCalcuResult = _allCalcuResultVisualDict?.GetValue(endSourceMonitor.Relation);
                            if (endSouceCalcuResult != null)
                            {
                                var endHead = endSouceCalcuResult.GetCalcuValue(endSourceMonitor.PropName);
                                if (endHead.HasValue)
                                {
                                    vm.StartH = Math.Round(endHead.Value - startHead.Value, 2);
                                }
                            }
                        }
                    }
            var head = _hydroInfo.GetHead();
            var pipeQ = _hydroInfo.GetPipeQ(_allCalcuResultVisualDict);
            var pipeH = _hydroInfo.GetPipeHead(_allCalcuResultVisualDict);
                }
            }
            var outPipeFlowMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuFlow, new List<string>()
                            { HStation.Xhs.Flags.总管,HStation.Xhs.Flags.出口,HStation.Xhs.Flags.默认});
            if (outPipeFlowMonitor == null)
            {
                outPipeFlowMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuFlow, new List<string>()
                        { HStation.Xhs.Flags.总管,HStation.Xhs.Flags.出口});
            }
            if (outPipeFlowMonitor != null)
            {
                var outPipeFlowCalcuResult = _allCalcuResultVisualDict?.GetValue(outPipeFlowMonitor.Relation);
                if (outPipeFlowCalcuResult != null)
                {
                    var outPipeFlow = outPipeFlowCalcuResult.GetCalcuValue(outPipeFlowMonitor.PropName);
                    if (outPipeFlow.HasValue)
                    {
                        vm.PipeQ = Math.Round(outPipeFlow.Value, 1);
                    }
                }
            }
            var outPipeHeadMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                            { HStation.Xhs.Flags.总管,HStation.Xhs.Flags.出口,HStation.Xhs.Flags.默认});
            if (outPipeHeadMonitor == null)
            {
                outPipeHeadMonitor = _allMonitorList?.Matching(HydroVisualCalcuProp.CalcuHead, new List<string>()
                            { HStation.Xhs.Flags.总管,HStation.Xhs.Flags.出口});
            }
            if (outPipeHeadMonitor != null)
            {
                var outPipeHeadCalcuResult = _allCalcuResultVisualDict?.GetValue(outPipeHeadMonitor.Relation);
                if (outPipeHeadCalcuResult != null)
                {
                    var outPipeHead = outPipeHeadCalcuResult.GetCalcuValue(outPipeHeadMonitor.PropName);
                    if (outPipeHead.HasValue)
                    {
                        vm.PipeH = Math.Round(outPipeHead.Value, 2);
                    }
                }
            }
            vm.StartH = head;
            vm.PipeQ = pipeQ ?? 0;
            vm.PipeH = pipeH ?? 0;
            if (_hydroInfo.Pumps != null && _hydroInfo.Pumps.Count > 0)
            {
@@ -204,7 +118,7 @@
                            vmItem.E = calcuResult.CalcuE;
                        }
                        vmItem.Hz = Math.Round(pump.SpeedRatio * pump.RatedHz, 1);
                        vmItem.N = pump.RatedN.HasValue ? Math.Round(pump.SpeedRatio * pump.RatedN.Value, 1) : 0;
                        vmItem.N = pump.RatedN > 0 ? Math.Round(pump.SpeedRatio * pump.RatedN, 1) : 0;
                        var curveqh = _hydroInfo.Curves?.Find(x => x.Code == pump.CurveQH);
@@ -214,7 +128,7 @@
                            if (qh_pts != null && qh_pts.Count > 3)
                            {
                                var qh_run_pts = qh_pts.GetQHPointListByN(pump.RatedHz, vmItem.Hz);
                                vmItem.CurveQH = new CubicSpline2d(qh_run_pts);
                                vmItem.CurveQH = qh_run_pts;
                            }
                        }
@@ -225,7 +139,7 @@
                            if (qp_pts != null && qp_pts.Count > 3)
                            {
                                var qp_run_pts = qp_pts.GetQPPointListByN(pump.RatedHz, vmItem.Hz);
                                vmItem.CurveQP = new CubicSpline2d(qp_run_pts);
                                vmItem.CurveQP = qp_run_pts;
                            }
                        }
@@ -236,7 +150,7 @@
                            if (qe_pts != null && qe_pts.Count > 3)
                            {
                                var qe_run_pts = qe_pts.GetQEPointListByN(pump.RatedHz, vmItem.Hz);
                                vmItem.CurveQE = new CubicSpline2d(qe_run_pts);
                                vmItem.CurveQE = qe_run_pts;
                            }
                        }