Shuxia Ning
2025-01-14 0f99d4d12f2eae29bbe343f4b3131f2faeccda5d
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/04-link/02-pump/HydroPumpViewModel.cs
@@ -16,27 +16,17 @@
        public HydroPumpViewModel(Yw.Model.HydroPumpInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo)
        {
            this.RatedP = rhs.RatedP;
            this.UpdatePropStatus(nameof(this.RatedP), rhs, nameof(rhs.RatedP));
            this.RatedQ = rhs.RatedQ;
            this.UpdatePropStatus(nameof(this.RatedQ), rhs, nameof(rhs.RatedQ));
            this.RatedH = rhs.RatedH;
            this.UpdatePropStatus(nameof(this.RatedH), rhs, nameof(rhs.RatedH));
            this.RatedN = rhs.RatedN;
            this.UpdatePropStatus(nameof(this.RatedN), rhs, nameof(rhs.RatedN));
            this.RatedHz = rhs.RatedHz;
            this.UpdatePropStatus(nameof(this.RatedHz), rhs, nameof(rhs.RatedHz));
            this.InletDiameter = rhs.InletDiameter;
            this.OutletDiameter = rhs.OutletDiameter;
            this.SpeedRatio = rhs.SpeedRatio;
            this.UpdatePropStatus(nameof(this.SpeedRatio), rhs, nameof(rhs.SpeedRatio));
            this.SpeedRatioPattern = rhs.SpeedRatioPattern;
            this.UpdatePropStatus(nameof(this.SpeedRatioPattern), rhs, nameof(rhs.SpeedRatioPattern));
            this.CurveQH = rhs.CurveQH;
            this.UpdatePropStatus(nameof(this.CurveQH), rhs, nameof(rhs.CurveQH));
            this.CurveQP = rhs.CurveQP;
            this.UpdatePropStatus(nameof(this.CurveQP), rhs, nameof(rhs.CurveQP));
            this.CurveQE = rhs.CurveQE;
            this.UpdatePropStatus(nameof(this.CurveQE), rhs, nameof(rhs.CurveQE));
            this.Vmo = rhs;
        }
        /// <summary>
@@ -45,8 +35,8 @@
        [Category("数据")]
        [DisplayName("水泵状态")]
        [PropertyOrder(1003)]
        [Browsable(true)]
        [TypeConverter(typeof(HydroPumpStatusConverter))]
        [Browsable(true)]
        public override string LinkStatus { get; set; }
        /// <summary>
@@ -54,11 +44,11 @@
        /// </summary>
        [Category("数据")]
        [Display(Name = "额定流量(m³/h)")]
        [DisplayName("额定流量")]
        [DisplayUnit("m³/h")]
        [DisplayName("额定流量")]
        [PropertyOrder(2001)]
        [Browsable(true)]
        public double? RatedQ { get; set; }
        public double RatedQ { get; set; }
        /// <summary>
        /// 额定扬程
@@ -69,7 +59,7 @@
        [DisplayUnit("m")]
        [PropertyOrder(2002)]
        [Browsable(true)]
        public double? RatedH { get; set; }
        public double RatedH { get; set; }
        /// <summary>
        /// 额定功率
@@ -91,7 +81,7 @@
        [DisplayUnit("r/min")]
        [PropertyOrder(2004)]
        [Browsable(true)]
        public double? RatedN { get; set; }
        public double RatedN { get; set; }
        /// <summary>
        /// 额定频率
@@ -103,6 +93,28 @@
        [PropertyOrder(2005)]
        [Browsable(true)]
        public double RatedHz { get; set; }
        /// <summary>
        /// 进口口径
        /// </summary>
        [Category("数据")]
        [Display(Name = "进口口径(mm)")]
        [DisplayName("进口口径")]
        [DisplayUnit("mm")]
        [PropertyOrder(2006)]
        [Browsable(true)]
        public double? InletDiameter { get; set; }
        /// <summary>
        /// 出口口径
        /// </summary>
        [Category("数据")]
        [Display(Name = "出口口径(mm)")]
        [DisplayName("出口口径")]
        [DisplayUnit("mm")]
        [PropertyOrder(2007)]
        [Browsable(true)]
        public double? OutletDiameter { get; set; }
        /// <summary>
        /// 设定频率
@@ -170,8 +182,8 @@
        [Category("数据")]
        [DisplayName("流量扬程曲线")]
        [PropertyOrder(2010)]
        [HydroCurvePro(HydroCurve.PumpQH)]
        [Browsable(false)]
        [HydroCurvePro(HydroCurve.Pump, HydroCurveType.CurveQH)]
        [Browsable(true)]
        public string CurveQH { get; set; }
        /// <summary>
@@ -180,8 +192,8 @@
        [Category("数据")]
        [DisplayName("流量功率曲线")]
        [PropertyOrder(2011)]
        [HydroCurvePro(HydroCurve.PumpQP)]
        [Browsable(false)]
        [HydroCurvePro(HydroCurve.Pump, HydroCurveType.CurveQP)]
        [Browsable(true)]
        public string CurveQP { get; set; }
        /// <summary>
@@ -190,67 +202,57 @@
        [Category("数据")]
        [DisplayName("流量效率曲线")]
        [PropertyOrder(2012)]
        [HydroCurvePro(HydroCurve.PumpQE)]
        [Browsable(false)]
        [HydroCurvePro(HydroCurve.Pump, HydroCurveType.CurveQE)]
        [Browsable(true)]
        public string CurveQE { get; set; }
        /// <summary>
        /// 流量
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流量")]
        [PropertyOrder(10001)]
        [DisplayUnit("m³/h")]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public override double? CalcuFlow { get; set; }
        /// <summary>
        /// 流速
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流速")]
        [PropertyOrder(10002)]
        [DisplayUnit("m/s")]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public override double? CalcuVelocity { get; set; }
        /// <summary>
        /// 水头损失
        /// </summary>
        [Category("计算结果")]
        [DisplayName("水头损失")]
        [PropertyOrder(10003)]
        [DisplayUnit("m")]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public override double? CalcuHeadLoss { get; set; }
        /// <summary>
        /// 流量
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流量")]
        [Display(Name = "流量(m³/h)")]
        [PropertyOrder(11001)]
        [DisplayUnit("m³/h")]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(true)]
        public double? CalcuQ { get; set; }
        /// <summary>
        /// 进口压力
        /// </summary>
        [Category("计算结果")]
        [DisplayName("进口压力")]
        [DisplayUnit("m")]
        [Display(Name = "进口压力(m)")]
        [PropertyOrder(11002)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(true)]
        public virtual double? CalcuPr1 { get; set; }
        /// <summary>
        /// 出口压力
        /// </summary>
        [Category("计算结果")]
        [DisplayName("出口压力")]
        [DisplayUnit("m")]
        [Display(Name = "出口压力(m)")]
        [PropertyOrder(11003)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(true)]
        public virtual double? CalcuPr2 { get; set; }
        /// <summary>
        /// 扬程
        /// </summary>
        [Category("计算结果")]
        [DisplayName("扬程")]
        [PropertyOrder(11002)]
        [DisplayUnit("m")]
        [Display(Name = "扬程(m)")]
        [PropertyOrder(11004)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(true)]
@@ -261,8 +263,9 @@
        /// </summary>
        [Category("计算结果")]
        [DisplayName("功率")]
        [PropertyOrder(11003)]
        [DisplayUnit("kW")]
        [Display(Name = "功率(kW)")]
        [PropertyOrder(11005)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(true)]
@@ -273,8 +276,9 @@
        /// </summary>
        [Category("计算结果")]
        [DisplayName("效率")]
        [PropertyOrder(11004)]
        [DisplayUnit("%")]
        [Display(Name = "效率(%)")]
        [PropertyOrder(11006)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(true)]
@@ -284,7 +288,11 @@
        /// 
        /// </summary>
        [Browsable(false)]
        public new Yw.Model.HydroPumpInfo Vmo { get; set; }
        public new Yw.Model.HydroPumpInfo Vmo
        {
            get { return _vmo as Yw.Model.HydroPumpInfo; }
            set { _vmo = value; }
        }
        /// <summary>
        /// 
@@ -293,50 +301,30 @@
        {
            base.UpdateProperty();
            this.RatedP = this.Vmo.RatedP;
            this.UpdatePropStatus(nameof(this.RatedP), this.Vmo, nameof(this.Vmo.RatedP));
            this.RatedQ = this.Vmo.RatedQ;
            this.UpdatePropStatus(nameof(this.RatedQ), this.Vmo, nameof(this.Vmo.RatedQ));
            this.RatedH = this.Vmo.RatedH;
            this.UpdatePropStatus(nameof(this.RatedH), this.Vmo, nameof(this.Vmo.RatedH));
            this.RatedN = this.Vmo.RatedN;
            this.UpdatePropStatus(nameof(this.RatedN), this.Vmo, nameof(this.Vmo.RatedN));
            this.RatedHz = this.Vmo.RatedHz;
            this.UpdatePropStatus(nameof(this.RatedHz), this.Vmo, nameof(this.Vmo.RatedHz));
            this.SpeedRatio = this.Vmo.SpeedRatio;
            this.UpdatePropStatus(nameof(this.SpeedRatio), this.Vmo, nameof(this.Vmo.SpeedRatio));
            this.SpeedRatioPattern = this.Vmo.SpeedRatioPattern;
            this.UpdatePropStatus(nameof(this.SpeedRatioPattern), this.Vmo, nameof(this.Vmo.SpeedRatioPattern));
            this.CurveQH = this.Vmo.CurveQH;
            this.UpdatePropStatus(nameof(this.CurveQH), this.Vmo, nameof(this.Vmo.CurveQH));
            this.CurveQP = this.Vmo.CurveQP;
            this.UpdatePropStatus(nameof(this.CurveQP), this.Vmo, nameof(this.Vmo.CurveQP));
            this.CurveQE = this.Vmo.CurveQE;
            this.UpdatePropStatus(nameof(this.CurveQE), this.Vmo, nameof(this.Vmo.CurveQE));
        }
        public override void UpdateVmoProperty()
        {
            base.UpdateVmoProperty();
            this.Vmo.RatedQ = this.RatedQ;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedQ), this, nameof(this.RatedQ));
            this.Vmo.RatedH = this.RatedH;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedH), this, nameof(this.RatedH));
            this.Vmo.RatedP = this.RatedP;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedP), this, nameof(this.RatedP));
            this.Vmo.RatedN = this.RatedN;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedN), this, nameof(this.RatedN));
            this.Vmo.RatedHz = this.RatedHz;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.RatedHz), this, nameof(this.RatedHz));
            this.Vmo.SpeedRatio = this.SpeedRatio;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.SpeedRatio), this, nameof(this.SpeedRatio));
            this.Vmo.SpeedRatioPattern = this.SpeedRatioPattern;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.SpeedRatioPattern), this, nameof(this.SpeedRatioPattern));
            this.Vmo.CurveQH = this.CurveQH;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.CurveQH), this, nameof(this.CurveQH));
            this.Vmo.CurveQP = this.CurveQP;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.CurveQP), this, nameof(this.CurveQP));
            this.Vmo.CurveQE = this.CurveQE;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.CurveQE), this, nameof(this.CurveQE));
        }
@@ -349,6 +337,8 @@
            if (rhs is HydroCalcuPumpResult calcuPumpProperty)
            {
                this.CalcuQ = calcuPumpProperty.CalcuQ.HasValue ? Math.Round(calcuPumpProperty.CalcuQ.Value, 1) : null;
                this.CalcuPr1 = calcuPumpProperty.CalcuPr1.HasValue ? Math.Round(calcuPumpProperty.CalcuPr1.Value, 2) : null;
                this.CalcuPr2 = calcuPumpProperty.CalcuPr2.HasValue ? Math.Round(calcuPumpProperty.CalcuPr2.Value, 2) : null;
                this.CalcuH = calcuPumpProperty.CalcuH.HasValue ? Math.Round(calcuPumpProperty.CalcuH.Value, 2) : null;
                this.CalcuP = calcuPumpProperty.CalcuP.HasValue ? Math.Round(calcuPumpProperty.CalcuP.Value, 1) : null;
                this.CalcuE = calcuPumpProperty.CalcuE.HasValue ? Math.Round(calcuPumpProperty.CalcuE.Value, 1) : null;