lixiaojun
2025-03-31 b0a694ccba71736f9092f30e45be94689ce92416
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/00-core/02-extensions/PhartVmoExtensions.cs
@@ -1,4 +1,6 @@
 namespace HStation.WinFrmUI
using Yw.WinFrmUI.Phart;
namespace HStation.WinFrmUI
{
    /// <summary>
    /// 图表Vmo 扩展方法
@@ -12,12 +14,12 @@
        /// <summary>
        /// 获取默认的泵曲线
        /// </summary> 
        public static PumpCurveViewModel GetDefaultPumpCurveViewMdoel(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        public static PumpPerformCurveViewModel GetDefaultPumpCurveViewMdoel(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        {
            if (vmo == null)
            {
                return default;
            }
            }
            var graph_list = vmo.GraphList;
            if (graph_list == null || !graph_list.Any())
            {
@@ -30,7 +32,7 @@
        /// <summary>
        /// 获取默认的泵曲线
        /// </summary>
        public static PumpCurveViewModel GetDefaultPumpCurveViewMdoel(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        public static PumpPerformCurveViewModel GetDefaultPumpCurveViewMdoel(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        {
            if (vmo_list == null || !vmo_list.Any())
            {
@@ -46,15 +48,39 @@
        }
        /// <summary>
        /// 获取泵曲线列表
        /// 获取变速泵曲线列表
        /// </summary> 
        public static List<PumpCurveViewModel> GetPumpCurveViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        public static List<PumpPerformCurveViewModel> GetVariableSpeedPumpCurveViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        {
            if (vmo == null)
            {
                return default;
            }
            }
            var graph_list = vmo.GraphList;
            if (graph_list == null || !graph_list.Any())
            {
                return default;
            }
            var vm_list = graph_list.GetPumpCurveViewMdoelList();
            if (vm_list == null || !vm_list.Any())
            {
                return default;
            }
            var vm_default = vm_list.OrderBy(x => x.Hz).LastOrDefault();
            vm_list.Remove(vm_default);
            return vm_list;
        }
        /// <summary>
        /// 获取泵曲线列表
        /// </summary>
        public static List<PumpPerformCurveViewModel> GetPumpCurveViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        {
            if (vmo == null)
            {
                return default;
            }
            var graph_list = vmo.GraphList;
            if (graph_list == null || !graph_list.Any())
            {
@@ -67,7 +93,7 @@
        /// <summary>
        /// 获取泵曲线列表
        /// </summary> 
        public static List<PumpCurveViewModel> GetPumpCurveViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        public static List<PumpPerformCurveViewModel> GetPumpCurveViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        {
            if (vmo_list == null || !vmo_list.Any())
            {
@@ -79,7 +105,7 @@
            {
                if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QH)
                {
                    var paras = HStation.Model.QHGraphParasModel.ToModel(vmo.GraphParas);
                    var paras = QHGraphParasViewModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = Yw.Pump.CurveQHHelper.ToModel(vmo.GeometryInfo);
@@ -88,7 +114,7 @@
                }
                else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QE)
                {
                    var paras = HStation.Model.QEGraphParasModel.ToModel(vmo.GraphParas);
                    var paras = QEGraphParasViewModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = Yw.Pump.CurveQEHelper.ToModel(vmo.GeometryInfo);
@@ -97,7 +123,7 @@
                }
                else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QP)
                {
                    var paras = HStation.Model.QPGraphParasModel.ToModel(vmo.GraphParas);
                    var paras = QPGraphParasViewModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = Yw.Pump.CurveQPHelper.ToModel(vmo.GeometryInfo);
@@ -111,7 +137,7 @@
                return default;
            }
            var vm_list = new List<PumpCurveViewModel>();
            var vm_list = new List<PumpPerformCurveViewModel>();
            var group = filter_list.GroupBy(x => new { x.Item1, x.Item2 });
            foreach (var item_list in group)
            {
@@ -125,17 +151,17 @@
                if (qh == null)
                    continue;
                var vm = new PumpCurveViewModel();
                var vm = new PumpPerformCurveViewModel();
                vm.Hz = hz;
                vm.N = n;
                vm.CurveQH = new CurveQHViewModel(qh);
                vm.CurveQH = new QHViewModel(qh);
                if (qe != null)
                {
                    vm.CurveQE = new CurveQEViewModel(qe);
                    vm.CurveQE = new QEViewModel(qe);
                }
                if (qp != null)
                {
                    vm.CurveQP = new CurveQPViewModel(qp);
                    vm.CurveQP = new QPViewModel(qp);
                }
                vm_list.Add(vm);
            }
@@ -158,7 +184,7 @@
            {
                if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QH)
                {
                    var paras = HStation.Model.QHGraphParasModel.ToModel(vmo.GraphParas);
                    var paras = QHGraphParasViewModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = Yw.Pump.CurveQHHelper.ToModel(vmo.GeometryInfo);
@@ -167,7 +193,7 @@
                }
                else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QE)
                {
                    var paras = HStation.Model.QEGraphParasModel.ToModel(vmo.GraphParas);
                    var paras = QEGraphParasViewModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = Yw.Pump.CurveQEHelper.ToModel(vmo.GeometryInfo);
@@ -176,7 +202,7 @@
                }
                else if (vmo.GraphType == (int)HStation.PhartRelation.eGraphType.QP)
                {
                    var paras = HStation.Model.QPGraphParasModel.ToModel(vmo.GraphParas);
                    var paras = QPGraphParasViewModel.ToModel(vmo.GraphParas);
                    if (paras != null)
                    {
                        var curve = Yw.Pump.CurveQPHelper.ToModel(vmo.GeometryInfo);
@@ -242,12 +268,12 @@
        /// <summary>
        /// 获取等效线列表
        /// </summary> 
        public static List<CurveEqualEViewModel> GetCurveEqualEViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        public static List<EqualEViewModel> GetCurveEqualEViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        {
            if (vmo == null)
            {
                return default;
            }
            }
            var graph_list = vmo.GraphList;
            if (graph_list == null || !graph_list.Any())
            {
@@ -260,7 +286,7 @@
        /// <summary>
        /// 获取等效线列表
        /// </summary> 
        public static List<CurveEqualEViewModel> GetCurveEqualEViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        public static List<EqualEViewModel> GetCurveEqualEViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        {
            vmo_list = vmo_list?.Where(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.EqualE).ToList();
            if (vmo_list == null || !vmo_list.Any())
@@ -268,14 +294,15 @@
                return default;
            }
            var vm_list = new List<CurveEqualEViewModel>();
            var vm_list = new List<EqualEViewModel>();
            foreach (var vmo in vmo_list)
            {
                var paras = HStation.Model.EqualEGraphParasModel.ToModel(vmo.GraphParas);
                var graph_paras = Yw.WinFrmUI.Phart.EqualEGraphParasViewModel.ToModel(vmo.GraphParas);
                var geometry_paras = Yw.WinFrmUI.Phart.CurveGeometryParasViewModel.ToModel(vmo.GeometryInfo);
                var curve = vmo.GetPerformCurve() as Yw.Pump.CurveEqualE;
                if (curve == null)
                    continue;
                var vm = new CurveEqualEViewModel(curve, paras);
                var vm = new EqualEViewModel(curve, graph_paras, geometry_paras);
                vm_list.Add(vm);
            }
            return vm_list;
@@ -289,12 +316,12 @@
        /// <summary>
        /// 获取等功线列表
        /// </summary> 
        public static List<CurveEqualPViewModel> GetCurveEqualPViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        public static List<EqualPViewModel> GetCurveEqualPViewMdoelList(this Yw.Vmo.PhartDiagramExGraphListVmo vmo)
        {
            if (vmo == null)
            {
                return default;
            }
            }
            var graph_list = vmo.GraphList;
            if (graph_list == null || !graph_list.Any())
            {
@@ -307,7 +334,7 @@
        /// <summary>
        /// 获取等功线列表
        /// </summary> 
        public static List<CurveEqualPViewModel> GetCurveEqualPViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        public static List<EqualPViewModel> GetCurveEqualPViewMdoelList(this List<Yw.Vmo.PhartGraphVmo> vmo_list)
        {
            vmo_list = vmo_list?.Where(x => x.GraphType == (int)HStation.PhartRelation.eGraphType.EqualP).ToList();
            if (vmo_list == null || !vmo_list.Any())
@@ -315,14 +342,15 @@
                return default;
            }
            var vm_list = new List<CurveEqualPViewModel>();
            var vm_list = new List<EqualPViewModel>();
            foreach (var vmo in vmo_list)
            {
                var paras = HStation.Model.EqualPGraphParasModel.ToModel(vmo.GraphParas);
                var graph_paras = EqualPGraphParasViewModel.ToModel(vmo.GraphParas);
                var geometry_paras = Yw.WinFrmUI.Phart.CurveGeometryParasViewModel.ToModel(vmo.GeometryInfo);
                var curve = vmo.GetPerformCurve() as Yw.Pump.CurveEqualP;
                if (curve == null)
                    continue;
                var vm = new CurveEqualPViewModel(curve, paras);
                var vm = new EqualPViewModel(curve, graph_paras, geometry_paras);
                vm_list.Add(vm);
            }
            return vm_list;
@@ -342,7 +370,7 @@
        {
            if (vmo == null)
                return default;
            var performCurve = HStation.Service.PhartRelation.PhartGraphHelper.GetPerformCurve( (HStation.PhartRelation.eGeometryStyle) vmo.GeometryStyle, vmo.GeometryInfo);
            var performCurve = PhartGraphHelper.GetPerformCurve((Yw.Ahart.eCurveType)vmo.GraphType, vmo.GeometryInfo);
            return performCurve;
        }
@@ -353,9 +381,8 @@
        {
            if (vmo == null)
                return default;
            var graph_type = vmo.GraphType;
            var geometry_info = vmo.GeometryInfo;
            var pts = HStation.Service.PhartRelation.PhartGraphHelper.GetFeatPointList((HStation.PhartRelation.eGraphType)graph_type, geometry_info, point_number, min_space);
            var curve = vmo.GetPerformCurve();
            var pts = curve.FeatCurve.GetPointList(point_number, min_space);
            return pts?.ToList();
        }
@@ -367,12 +394,12 @@
            if (vmo == null)
                return default;
            var paras = vmo.GeometryParasModel();
            var define_pt_list = paras?.DefinePoints;
            var define_pt_list = paras?.DefinePoints;
            var performCurve = HStation.Service.PhartRelation.PhartGraphHelper.GetPerformCurve((HStation.PhartRelation.eGeometryStyle)vmo.GeometryStyle, vmo.GeometryInfo);
            var performCurve = PhartGraphHelper.GetPerformCurve((Yw.Ahart.eCurveType)vmo.GraphType, vmo.GeometryInfo);
            var curve_type = (Yw.Ahart.eCurveType)vmo.GraphType;
            var feat_type = performCurve.FeatType;
            var line_pt_list = performCurve.FeatCurve.GetPointList(30);
            var line_pt_list = performCurve.FeatCurve.GetPointList(50);
            if (define_pt_list == null)
            {
                define_pt_list = line_pt_list?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList();
@@ -381,13 +408,13 @@
        }
        #endregion
        /// <summary>
        /// 获取特性曲线
        /// </summary>
        public static HStation.Model.FeatCurveGeometryParasModel GeometryParasModel(this Yw.Vmo.PhartGraphVmo vmo)
        public static CurveGeometryParasViewModel GeometryParasModel(this Yw.Vmo.PhartGraphVmo vmo)
        {
            if (vmo == null)
                return default;
@@ -395,7 +422,7 @@
                return default;
            if (vmo.GeometryStyle != (int)HStation.PhartRelation.eGeometryStyle.FeatCurve)
                return default;
            return HStation.Model.FeatCurveGeometryParasModel.ToModel(vmo.GeometryParas);
            return CurveGeometryParasViewModel.ToModel(vmo.GeometryParas);
        }
    }