lixiaojun
2025-01-24 7b65f86343ca014b12894f09b7d62e8b5ac1f95d
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/03-node/03-junction/00-core/HydroJunctionViewModel.cs
@@ -3,7 +3,7 @@
    /// <summary>
    /// 连接节点
    /// </summary>
    public class HydroJunctionViewModel : HydroNodeViewModel
    public class HydroJunctionViewModel : HydroNodeViewModel, IHydroCalcuJunctionResult
    {
        /// <summary>
        /// 
@@ -15,14 +15,10 @@
        /// </summary>
        public HydroJunctionViewModel(Yw.Model.HydroJunctionInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo)
        {
            this.Elev = rhs.Elev;
            this.UpdatePropStatus(nameof(this.Elev), rhs, nameof(rhs.Elev));
            this.Elev = Math.Round(rhs.Elev, 4);
            this.MinorLoss = rhs.MinorLoss;
            this.UpdatePropStatus(nameof(this.MinorLoss), rhs, nameof(rhs.MinorLoss));
            this.Demand = rhs.Demand;
            this.UpdatePropStatus(nameof(this.Demand), rhs, nameof(rhs.Demand));
            this.DemandPattern = rhs.DemandPattern;
            this.UpdatePropStatus(nameof(this.DemandPattern), rhs, nameof(rhs.DemandPattern));
        }
@@ -31,8 +27,8 @@
        /// </summary>
        [Category("数据")]
        [DisplayName("标高")]
        [Display(Name = "标高(m)")]
        [DisplayUnit("m")]
        [Display(Name = "标高(m)")]
        [PropertyOrder(2001)]
        [Browsable(true)]
        public virtual double Elev { get; set; }
@@ -45,7 +41,7 @@
        [Display(Name = "损失系数")]
        [PropertyOrder(2002)]
        [Browsable(true)]
        public virtual double? MinorLoss { get; set; }
        public virtual double MinorLoss { get; set; }
        /// <summary>
        /// 需水量
@@ -56,7 +52,7 @@
        [DisplayUnit("m³/h")]
        [PropertyOrder(2003)]
        [Browsable(false)]
        public virtual double? Demand { get; set; }
        public virtual double Demand { get; set; }
        /// <summary>
        /// 需水模式
@@ -68,6 +64,19 @@
        [PropertyOrder(2004)]
        [Browsable(false)]
        public virtual string DemandPattern { get; set; }
        /// <summary>
        /// 压力
        /// </summary>
        [Category("计算结果")]
        [DisplayName("压力")]
        [DisplayUnit("m")]
        [Display(Name = "压力(m)")]
        [PropertyOrder(11002)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(true)]
        public virtual double? CalcuPr { get; set; }
        /// <summary>
        /// 
@@ -85,14 +94,10 @@
        public override void UpdateProperty()
        {
            base.UpdateProperty();
            this.Elev = this.Vmo.Elev;
            this.UpdatePropStatus(nameof(this.Elev), this.Vmo, nameof(this.Vmo.Elev));
            this.Elev = Math.Round(this.Vmo.Elev, 4);
            this.MinorLoss = this.Vmo.MinorLoss;
            this.UpdatePropStatus(nameof(this.MinorLoss), this.Vmo, nameof(this.Vmo.MinorLoss));
            this.Demand = this.Vmo.Demand;
            this.UpdatePropStatus(nameof(this.Demand), this.Vmo, nameof(this.Vmo.Demand));
            this.DemandPattern = this.Vmo.DemandPattern;
            this.UpdatePropStatus(nameof(this.DemandPattern), this.Vmo, nameof(this.Vmo.DemandPattern));
        }
        /// <summary>
@@ -102,13 +107,21 @@
        {
            base.UpdateVmoProperty();
            this.Vmo.Elev = this.Elev;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.Elev), this, nameof(this.Elev));
            this.Vmo.MinorLoss = this.MinorLoss;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.MinorLoss), this, nameof(this.MinorLoss));
            this.Vmo.Demand = this.Demand;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.Demand), this, nameof(this.Demand));
            this.Vmo.DemandPattern = this.DemandPattern;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.DemandPattern), this, nameof(this.DemandPattern));
        }
        /// <summary>
        /// 更新计算属性
        /// </summary>
        public override void UpdateCalcuProperty(HydroCalcuVisualResult rhs)
        {
            base.UpdateCalcuProperty(rhs);
            if (rhs is HydroCalcuJunctionResult calcuJunctionResult)
            {
                this.CalcuPr = calcuJunctionResult.CalcuPr.HasValue ? Math.Round(calcuJunctionResult.CalcuPr.Value, 2) : null;
            }
        }