lixiaojun
2024-10-11 b06ab50bba7ba5f3bb51adee1fca01e91e307195
型号匹配
已修改4个文件
已添加1个文件
182 ■■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropertyViewModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/04-attribute/IsHydroModelTypeAttribute.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs
@@ -11,20 +11,22 @@
        {
            InitializeComponent();
            this.hydroParterPropertyCtrl1.GetHydroInfoEvent += HydroParterPropertyCtrl1_GetHydroInfoEvent;
            this.hydroParterPropertyCtrl1.SelectCurveEvent += HydroParterPropertyCtrl1_SelectCurveEvent;
            this.hydroParterPropertyCtrl1.SelectPatternEvent += HydroParterPropertyCtrl1_SelectPatternEvent;
            this.hydroParterPropertyCtrl1.PropertyValueChangedEvent += HydroParterPropertyCtrl1_PropertyValueChangedEvent;
            this.hydroParterPropertyCtrl1.PropertyValueChangingEvent += HydroParterPropertyCtrl1_PropertyValueChangingEvent;
            this.hydroParterPropertyCtrl1.MatchingDbEvent += HydroParterPropertyCtrl1_MatchingDbEvent;
        }
        //水力信息方法
        private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null;
        /// <summary>
        /// ç»‘定数据
        /// åˆå§‹åŒ–数据
        /// </summary>
        public void SetBindingData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc)
        public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc)
        {
            _hydroInfoFunc = hydroInfoFunc;
        }
@@ -84,13 +86,6 @@
            }
            vm.UpdateCalcuProperty(rhs);
            this.hydroParterPropertyCtrl1.UpdateRows();
        }
        //获取水力信息事件
        private Yw.Model.HydroModelInfo HydroParterPropertyCtrl1_GetHydroInfoEvent()
        {
            var hydroInfo = _hydroInfoFunc?.Invoke();
            return hydroInfo;
        }
        //选择曲线
@@ -181,5 +176,102 @@
        {
            return false;
        }
        //匹配Db事件
        private void HydroParterPropertyCtrl1_MatchingDbEvent(Yw.Model.HydroParterInfo parter)
        {
            if (parter == null)
            {
                return;
            }
            var hydroInfo = _hydroInfoFunc?.Invoke();
            if (hydroInfo == null)
            {
                return;
            }
            switch (parter.Catalog)
            {
                case Yw.Hydro.ParterCatalog.Pump://æ°´æ³µ
                    {
                        var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == parter.Code);
                        var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo);
                        var dlg = new PumpMainCurveChoiceDlg();
                        dlg.SetBindingData(input);
                        dlg.ReloadDataEvent += (rhs) =>
                        {
                            var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs);
                            if (bol)
                            {
                                TipFormHelper.ShowSucceed("匹配成功");
                            }
                            else
                            {
                                TipFormHelper.ShowWarn("匹配失败");
                            }
                        };
                        dlg.ShowDialog();
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Valve://阀门
                    {
                        var valveInfo = hydroInfo.Valves?.Find(x => x.Code == parter.Code);
                        var input = AssetsMatchingParasHelper.Create(hydroInfo, valveInfo);
                        var dlg = new ValveMainCurveChoiceDlg();
                        dlg.SetBindingData(input);
                        dlg.ReloadDataEvent += (rhs) =>
                        {
                            var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs);
                            if (bol)
                            {
                                TipFormHelper.ShowSucceed("匹配成功");
                            }
                            else
                            {
                                TipFormHelper.ShowWarn("匹配失败");
                            }
                        };
                        dlg.ShowDialog();
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Pipe://管道
                    {
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Elbow://弯头
                    {
                        var elbowInfo = hydroInfo.Elbows?.Find(x => x.Code == parter.Code);
                        var input = AssetsMatchingParasHelper.Create(hydroInfo, elbowInfo);
                        var dlg = new ElbowSingMatchingDlg();
                        dlg.SetBindingData(input);
                        dlg.ReloadDataEvent += (rhs) =>
                        {
                            var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs);
                            if (bol)
                            {
                                TipFormHelper.ShowSucceed("匹配成功");
                            }
                            else
                            {
                                TipFormHelper.ShowWarn("匹配失败");
                            }
                        };
                        dlg.ShowDialog();
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Threelink://三通
                    {
                    }
                    break;
                case Yw.Hydro.ParterCatalog.Fourlink://四通
                    {
                    }
                    break;
            }
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -78,7 +78,7 @@
            this.PageTitle.Caption = $"{_project.Name}\r\n水力模拟";
            await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite, () => _hydroInfo);
            this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo);
            this.xhsProjectSimulationPropertyCtrl1.SetBindingData(() => _hydroInfo);
            this.xhsProjectSimulationPropertyCtrl1.InitialData(() => _hydroInfo);
            this.xhsProjectSimulationSearchCtrl1.InitialData(() => _hydroInfo);
        }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropertyViewModel.cs
@@ -71,6 +71,7 @@
        [Category("基础信息")]
        [DisplayName("型号")]
        [PropertyOrder(5)]
        [IsHydroModelType]
        [Browsable(true)]
        public virtual string ModelType { get; set; }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/04-attribute/IsHydroModelTypeAttribute.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
namespace Yw.WinFrmUI
{
    /// <summary>
    /// ç”¨äºŽæ ‡è¯†æ°´åŠ›åž‹å·ç‰¹æ€§
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
    public class IsHydroModelTypeAttribute : Attribute
    {
        /// <summary>
        ///
        /// </summary>
        public IsHydroModelTypeAttribute() { }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs
@@ -7,6 +7,7 @@
using DevExpress.XtraLayout.Utils;
using DevExpress.XtraVerticalGrid.Events;
using NetTaste;
using SQLitePCL;
using System.Windows.Forms.VisualStyles;
using Yw.EPAnet;
@@ -23,10 +24,6 @@
        }
        /// <summary>
        /// èŽ·å–æ°´åŠ›ä¿¡æ¯äº‹ä»¶
        /// </summary>
        public event Func<Yw.Model.HydroModelInfo> GetHydroInfoEvent;
        /// <summary>
        /// é€‰æ‹©æ›²çº¿äº‹ä»¶
        /// </summary>
        public event Func<HydroParterPropertyViewModel, string, bool> SelectCurveEvent;
@@ -42,6 +39,22 @@
        /// å±žæ€§å€¼å‘生改变事件
        /// </summary>
        public event Func<HydroParterPropertyViewModel, bool> PropertyValueChangedEvent;
        /// <summary>
        /// åŒ¹é…db事件
        /// </summary>
        public event Action<Yw.Model.HydroParterInfo> MatchingDbEvent;
        //获取水力信息方法
        private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null;
        /// <summary>
        /// åˆå§‹åŒ–数据
        /// </summary>
        public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc)
        {
            _hydroInfoFunc = hydroInfoFunc;
        }
        /// <summary>
        /// ç»‘定对象
@@ -266,7 +279,7 @@
                    var vm = GetPropertyViewModel(e.Row);
                    if (this.SelectCurveEvent == null || !this.SelectCurveEvent.Invoke(vm, curvePro.CurveType))
                    {
                        var hydroInfo = GetHydroInfoEvent?.Invoke();
                        var hydroInfo = _hydroInfoFunc?.Invoke();
                        if (hydroInfo == null)
                        {
                            return;
@@ -366,6 +379,30 @@
            #endregion
            #region åž‹å·
            var modelTypePro = (IsHydroModelTypeAttribute)descriptor.Attributes[typeof(IsHydroModelTypeAttribute)];
            if (modelTypePro != null)
            {
                var buttonEdit = new RepositoryItemButtonEdit();
                buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor;
                buttonEdit.ButtonClick += delegate
                {
                    var hydroInfo = _hydroInfoFunc?.Invoke();
                    if (hydroInfo == null)
                    {
                        return;
                    }
                    var vm = GetPropertyViewModel(e.Row);
                    var allParterList = hydroInfo.GetAllParters();
                    var parter = allParterList?.Find(x => x.Code == vm.Code);
                    this.MatchingDbEvent?.Invoke(parter);
                };
                e.RepositoryItem = buttonEdit;
            }
            #endregion
            #region æ¨¡å¼
            var patternPro = (IsHydroPatternProAttribute)descriptor.Attributes[typeof(IsHydroPatternProAttribute)];
@@ -429,7 +466,7 @@
            this.PropertyValueChangedEvent?.Invoke(propertyViewModel);
            if (this.PropertyValueChangedEvent == null || !this.PropertyValueChangedEvent.Invoke(propertyViewModel))
            {
                var hydroInfo = GetHydroInfoEvent?.Invoke();
                var hydroInfo = _hydroInfoFunc?.Invoke();
                if (hydroInfo == null)
                {
                    return;