lixiaojun
2024-12-20 44c67892cddc9b7f7091e446fc2030f0b22a82b3
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/04-link/00-core/HydroLinkViewModel.cs
@@ -21,17 +21,26 @@
            this.UpdatePropStatus(nameof(this.EndCode), rhs, nameof(rhs.EndCode));
            this.LinkStatus = HydroLinkStatusHelper.GetStatusName(rhs.LinkStatus);
            this.UpdatePropStatus(nameof(this.LinkStatus), rhs, nameof(rhs.LinkStatus));
            this.Vmo = rhs;
        }
        /// <summary>
        /// Y流向
        /// </summary>
        [Category("拓扑结构")]
        [DisplayName("Y流向")]
        [HydroFlowDirectionPro]
        [PropertyOrder(102)]
        [TypeConverter(typeof(HydroFlowDirectionConverter))]
        [Browsable(false)]
        public override string FlowDirectionY { get; set; }
        /// <summary>
        /// 上游节点
        /// </summary>
        [Category("基础信息")]
        [Category("拓扑结构")]
        [DisplayName("上游节点")]
        [PropertyOrder(1001)]
        [IsHydroLinkCode]
        [HydroLinkPro]
        [ReadOnly(true)]
        [Browsable(true)]
        public string StartCode { get; set; }
@@ -39,10 +48,10 @@
        /// <summary>
        /// 下游节点
        /// </summary>
        [Category("基础信息")]
        [Category("拓扑结构")]
        [DisplayName("下游节点")]
        [PropertyOrder(1002)]
        [IsHydroLinkCode]
        [HydroLinkPro]
        [ReadOnly(true)]
        [Browsable(true)]
        public string EndCode { get; set; }
@@ -53,7 +62,7 @@
        [Category("数据")]
        [DisplayName("管段状态")]
        [PropertyOrder(1003)]
        [Browsable(true)]
        [Browsable(false)]
        public virtual string LinkStatus { get; set; }
        /// <summary>
@@ -61,43 +70,75 @@
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流量")]
        [PropertyOrder(10001)]
        [Browsable(true)]
        [DisplayUnit("m³/h")]
        [IsHydroCalcuPro(true)]
        [Display(Name = "流量(m³/h)")]
        [PropertyOrder(10001)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public virtual double? CalcuFlow { get; set; }
        /// <summary>
        /// 流速
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流速")]
        [PropertyOrder(10002)]
        [Browsable(true)]
        [DisplayUnit("m/s")]
        [IsHydroCalcuPro(true)]
        [ShowEditor(false)]
        public virtual double? CalcuVelocity { get; set; }
        /// <summary>
        /// 水头损失
        /// </summary>
        [Category("计算结果")]
        [DisplayName("水头损失")]
        [PropertyOrder(10003)]
        [Browsable(true)]
        [DisplayUnit("m")]
        [IsHydroCalcuPro(true)]
        [Display(Name = "水头损失(m)")]
        [PropertyOrder(10002)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public virtual double? CalcuHeadLoss { get; set; }
        /// <summary>
        /// 流速
        /// </summary>
        [Category("计算结果")]
        [DisplayName("流速")]
        [DisplayUnit("m/s")]
        [Display(Name = "流速(m/s)")]
        [PropertyOrder(19007)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public virtual double? CalcuVelocity { get; set; }
        /// <summary>
        /// Vmo
        /// 局部损失
        /// </summary>
        [Category("计算结果")]
        [DisplayName("局部损失")]
        [DisplayUnit("m")]
        [Display(Name = "局部损失(m)")]
        [PropertyOrder(19008)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public virtual double? CalcuMinorLoss { get; set; }
        /// <summary>
        /// 沿程损失
        /// </summary>
        [Category("计算结果")]
        [DisplayName("沿程损失")]
        [DisplayUnit("m")]
        [Display(Name = "沿程损失(m)")]
        [PropertyOrder(19009)]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public virtual double? CalcuFrictionLoss { get; set; }
        /// <summary>
        ///
        /// </summary>
        [Browsable(false)]
        public new Yw.Model.HydroLinkInfo Vmo { get; set; }
        public new Yw.Model.HydroLinkInfo Vmo
        {
            get { return _vmo as Yw.Model.HydroLinkInfo; }
            set { _vmo = value; }
        }
        /// <summary>
        /// 
@@ -113,12 +154,24 @@
            this.UpdatePropStatus(nameof(this.LinkStatus), this.Vmo, nameof(this.Vmo.LinkStatus));
        }
        /// <summary>
        ///
        /// </summary>
        public override void UpdateVmoProperty()
        {
            base.UpdateVmoProperty();
            this.Vmo.StartCode = this.StartCode;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.StartCode), this, nameof(this.StartCode));
            this.Vmo.EndCode = this.EndCode;
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.EndCode), this, nameof(this.EndCode));
            this.Vmo.LinkStatus = HydroLinkStatusHelper.GetStatusCode(this.LinkStatus);
            this.Vmo.UpdatePropStatus(nameof(this.Vmo.LinkStatus), this, nameof(this.LinkStatus));
        }
        /// <summary>
        /// 更新计算属性
        /// </summary>
        /// <param name="rhs"></param>
        public override void UpdateCalcuProperty(HydroCalcuResult rhs)
        public override void UpdateCalcuProperty(HydroCalcuVisualResult rhs)
        {
            base.UpdateCalcuProperty(rhs);
            if (rhs is HydroCalcuLinkResult calcuLinkProperty)
@@ -126,6 +179,8 @@
                this.CalcuFlow = calcuLinkProperty.CalcuFlow.HasValue ? Math.Round(calcuLinkProperty.CalcuFlow.Value, 1) : null;
                this.CalcuVelocity = calcuLinkProperty.CalcuVelocity.HasValue ? Math.Round(calcuLinkProperty.CalcuVelocity.Value, 2) : null;
                this.CalcuHeadLoss = calcuLinkProperty.CalcuHeadLoss.HasValue ? Math.Round(calcuLinkProperty.CalcuHeadLoss.Value, 2) : null;
                this.CalcuMinorLoss = calcuLinkProperty.CalcuMinorLoss.HasValue ? Math.Round(calcuLinkProperty.CalcuMinorLoss.Value, 4) : null;
                this.CalcuFrictionLoss = calcuLinkProperty.CalcuFrictionLoss.HasValue ? Math.Round(calcuLinkProperty.CalcuFrictionLoss.Value, 4) : null;
            }
        }