Shuxia Ning
2024-10-24 0711485ecb4fe66fbe820478d92eb9f04b77c042
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/03-link/02-pump/HydroPumpPropertyViewModel.cs
@@ -5,7 +5,7 @@
    /// <summary>
    /// 水泵属性视图
    /// </summary>
    public class HydroPumpPropertyViewModel : HydroLinkPropertyViewModel
    public class HydroPumpPropertyViewModel : HydroLinkPropertyViewModel, IHydroCalcuPumpResult
    {
        /// <summary>
        /// 
@@ -31,7 +31,7 @@
            this.UpdatePropStatus(nameof(this.SpeedRatio), rhs, nameof(rhs.SpeedRatio));
            this.SpeedRatioPattern = rhs.SpeedRatioPattern;
            this.UpdatePropStatus(nameof(this.SpeedRatioPattern), rhs, nameof(rhs.SpeedRatioPattern));
            this.HasCurve = !string.IsNullOrEmpty(rhs.CurveQH);
            this.Curve = string.IsNullOrEmpty(rhs.CurveQH) ? "未配置" : "已配置";
            this.CurveQH = rhs.CurveQH;
            this.UpdatePropStatus(nameof(this.CurveQH), rhs, nameof(rhs.CurveQH));
            this.CurveQP = rhs.CurveQP;
@@ -149,9 +149,9 @@
        [Category("数据")]
        [DisplayName("性能曲线")]
        [PropertyOrder(110)]
        [ShowEditor(false)]
        [IsHydroCurvePro(HydroCurve.Pump)]
        [Browsable(true)]
        public bool HasCurve { get; set; }
        public string Curve { get; set; }
        /// <summary>
        /// 流量扬程曲线
@@ -203,6 +203,92 @@
        /// <summary>
        /// 流量
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流量")]
        [PropertyOrder(10001)]
        [DisplayUnit("m³/h")]
        [IsHydroCalcuPro(true)]
        [ShowEditor(false)]
        [Browsable(false)]
        public override double? CalcuFlow { get; set; }
        /// <summary>
        /// 流速
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流速")]
        [PropertyOrder(10002)]
        [DisplayUnit("m/s")]
        [IsHydroCalcuPro(true)]
        [ShowEditor(false)]
        [Browsable(false)]
        public override double? CalcuVelocity { get; set; }
        /// <summary>
        /// 水头损失
        /// </summary>
        [Category("计算结果")]
        [DisplayName("水头损失")]
        [PropertyOrder(10003)]
        [DisplayUnit("m")]
        [IsHydroCalcuPro(true)]
        [ShowEditor(false)]
        [Browsable(false)]
        public override double? CalcuHeadLoss { get; set; }
        /// <summary>
        /// 流量
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流量")]
        [PropertyOrder(11001)]
        [DisplayUnit("m³/h")]
        [IsHydroCalcuPro(true)]
        [ShowEditor(false)]
        [Browsable(true)]
        public double? CalcuQ { get; set; }
        /// <summary>
        /// 扬程
        /// </summary>
        [Category("计算结果")]
        [DisplayName("扬程")]
        [PropertyOrder(11002)]
        [DisplayUnit("m")]
        [IsHydroCalcuPro(true)]
        [ShowEditor(false)]
        [Browsable(true)]
        public double? CalcuH { get; set; }
        /// <summary>
        /// 功率
        /// </summary>
        [Category("计算结果")]
        [DisplayName("功率")]
        [PropertyOrder(11003)]
        [DisplayUnit("kW")]
        [IsHydroCalcuPro(true)]
        [ShowEditor(false)]
        [Browsable(true)]
        public double? CalcuP { get; set; }
        /// <summary>
        /// 效率
        /// </summary>
        [Category("计算结果")]
        [DisplayName("效率")]
        [PropertyOrder(11004)]
        [DisplayUnit("%")]
        [IsHydroCalcuPro(true)]
        [ShowEditor(false)]
        [Browsable(true)]
        public double? CalcuE { get; set; }
        /// <summary>
        /// 更新属性
        /// </summary>
        public override void UpdateProperty(HydroParterInfo rhs, List<HydroParterInfo> allParterList)
@@ -237,7 +323,20 @@
            }
        }
        /// <summary>
        /// 更新计算属性
        /// </summary>
        public override void UpdateCalcuProperty(IHydroCalcuResult rhs)
        {
            base.UpdateCalcuProperty(rhs);
            if (rhs is IHydroCalcuPumpResult calcuPumpProperty)
            {
                this.CalcuQ = calcuPumpProperty.CalcuQ.HasValue ? Math.Round(calcuPumpProperty.CalcuQ.Value, 1) : 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;
            }
        }
    }
}