From b06ab50bba7ba5f3bb51adee1fca01e91e307195 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期五, 11 十月 2024 17:20:55 +0800 Subject: [PATCH] 型号匹配 --- WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropertyViewModel.cs | 1 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 2 WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs | 49 ++++++++++- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs | 112 +++++++++++++++++++++++++-- WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/04-attribute/IsHydroModelTypeAttribute.cs | 18 ++++ 5 files changed, 165 insertions(+), 17 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs index fba7c7d..84e849c 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs +++ b/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; + } + } + + + } } \ No newline at end of file diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs index 2e3d6cd..b7600ad 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs +++ b/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); } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropertyViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropertyViewModel.cs index 3b75903..80fcafb 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/00-core/HydroParterPropertyViewModel.cs +++ b/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; } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/04-attribute/IsHydroModelTypeAttribute.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/04-attribute/IsHydroModelTypeAttribute.cs new file mode 100644 index 0000000..56c99e8 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/04-attribute/IsHydroModelTypeAttribute.cs @@ -0,0 +1,18 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鐢ㄤ簬鏍囪瘑姘村姏鍨嬪彿鐗规�� + /// </summary> + [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] + public class IsHydroModelTypeAttribute : Attribute + { + /// <summary> + /// + /// </summary> + public IsHydroModelTypeAttribute() { } + + + + } + +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs index 618812f..7c16159 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs +++ b/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; -- Gitblit v1.9.3