From 3effbd15ec04bbc39514c6904fa71d00631c96eb Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 04 十一月 2024 01:36:42 +0800 Subject: [PATCH] 整合属性研究 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs | 192 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 155 insertions(+), 37 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 720af0f..5d8aa94 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 @@ -1,4 +1,5 @@ -锘縰sing HStation.WinFrmUI.Xhs; +锘縰sing HStation.WinFrmUI.PhartRelation; +using HStation.WinFrmUI.Xhs; namespace HStation.WinFrmUI { @@ -11,22 +12,34 @@ { 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; + this.hydroParterPropertyCtrl1.SetCurveEvent += HydroParterPropertyCtrl1_SetCurveEvent; + this.hydroParterPropertyCtrl1.SetPatternEvent += HydroParterPropertyCtrl1_SetPatternEvent; + this.hydroParterPropertyCtrl1.BlinkLinkParterEvent += HydroParterPropertyCtrl1_BlinkLinkParterEvent; } + + + /// <summary> + /// 寮鸿皟杩炴帴缁勪欢浜嬩欢 + /// 绗竴涓弬鏁颁负缁勪欢Code + /// 绗簩涓弬鏁颁负杩炴帴缁勪欢Code + /// </summary> + public event Action<string, string> BlinkLinkParterEvent; //姘村姏淇℃伅鏂规硶 private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; + private Func<List<HydroCalcuResult>> _allHydroCalcuResultListFunc = null; /// <summary> - /// 缁戝畾鏁版嵁 + /// 鍒濆鍖栨暟鎹� /// </summary> - public void SetBindingData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) + public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc, Func<List<HydroCalcuResult>> allHydroCalcuResultListFunc) { _hydroInfoFunc = hydroInfoFunc; + _allHydroCalcuResultListFunc = allHydroCalcuResultListFunc; + this.hydroParterPropertyCtrl1.InitialData(hydroInfoFunc); } /// <summary> @@ -42,7 +55,7 @@ } var allParterList = hydroInfo.GetAllParters(); var parter = allParterList.Find(x => x.ID == id); - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); + var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, hydroInfo); this.hydroParterPropertyCtrl1.SelectedObject = vm; } @@ -59,7 +72,7 @@ } var allParterList = hydroInfo.GetAllParters(); var parter = allParterList.Find(x => x.Code == code); - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); + var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, hydroInfo); this.hydroParterPropertyCtrl1.SelectedObject = vm; } @@ -68,14 +81,20 @@ /// </summary> public void SelectParter(Yw.Model.HydroParterInfo parter, List<Yw.Model.HydroParterInfo> allParterList) { - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); + var hydroInfo = _hydroInfoFunc?.Invoke(); + if (hydroInfo == null) + { + this.hydroParterPropertyCtrl1.SelectedObject = null; + return; + } + var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, hydroInfo); this.hydroParterPropertyCtrl1.SelectedObject = vm; } /// <summary> /// 鏇存柊璁$畻灞炴�� /// </summary> - public void UpdateCalcuProperty(Yw.WinFrmUI.IHydroCalcuProperty rhs) + public void UpdateCalcuProperty(Yw.WinFrmUI.HydroCalcuResult rhs) { var vm = this.hydroParterPropertyCtrl1.SelectedObject; if (vm == null) @@ -86,41 +105,35 @@ this.hydroParterPropertyCtrl1.UpdateRows(); } - //鑾峰彇姘村姏淇℃伅浜嬩欢 - private Yw.Model.HydroModelInfo HydroParterPropertyCtrl1_GetHydroInfoEvent() + //閫夋嫨鏇茬嚎 + private bool HydroParterPropertyCtrl1_SetCurveEvent(HydroParterViewModel propViewModel, string curveType) { var hydroInfo = _hydroInfoFunc?.Invoke(); - return hydroInfo; - } - - //閫夋嫨鏇茬嚎 - private bool HydroParterPropertyCtrl1_SelectCurveEvent(HydroParterPropertyViewModel propViewModel, string curveType) - { + if (hydroInfo == null) + { + return false; + } switch (curveType) { case Yw.WinFrmUI.HydroCurve.Pump: { - var hydroInfo = _hydroInfoFunc?.Invoke(); - if (hydroInfo == null) - { - return false; - } var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == propViewModel.Code); - - var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo); - var dlg = new PumpMainCurveChoiceDlg(); - dlg.SetBindingData(input); - dlg.ReloadDataEvent += (rhs) => + if (pumpInfo == null) { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); + break; + } + var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo, _allHydroCalcuResultListFunc?.Invoke()); + var dlg = new SinglePumpAnalyDlg(); + dlg.SetBindindData(input); + dlg.ReloadDataEvent += (output) => + { + var bol = AssetsMatchingParasHelper.Apply(hydroInfo, output); if (bol) { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); + propViewModel.Update(); + this.hydroParterPropertyCtrl1.UpdateRows(); } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); - } + return bol; }; dlg.ShowDialog(); return true; @@ -151,7 +164,7 @@ } //閫夋嫨妯″紡 - private bool HydroParterPropertyCtrl1_SelectPatternEvent(HydroParterPropertyViewModel propViewModel, string patternType) + private bool HydroParterPropertyCtrl1_SetPatternEvent(HydroParterViewModel propViewModel, string patternType) { switch (patternType) { @@ -171,15 +184,120 @@ } //灞炴�у彂鐢熸敼鍙� - private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterPropertyViewModel obj) + private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterViewModel obj) { return false; } //灞炴�ф鍦ㄥ彂鐢熸敼鍙� - private bool HydroParterPropertyCtrl1_PropertyValueChangingEvent(HydroParterPropertyViewModel arg) + private bool HydroParterPropertyCtrl1_PropertyValueChangingEvent(HydroParterViewModel arg) { return false; } + + //鍖归厤Db + private bool HydroParterPropertyCtrl1_MatchingDbEvent(HydroParterViewModel propertyViewModel) + { + var bol = false; + if (propertyViewModel == null) + { + return bol; + } + var hydroInfo = _hydroInfoFunc?.Invoke(); + if (hydroInfo == null) + { + return bol; + } + var catalog = Yw.WinFrmUI.HydroParterCatalogHelper.GetCatalogCode(propertyViewModel.Catalog); + switch (catalog) + { + case Yw.Hydro.ParterCatalog.Pump://姘存车 + { + var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == propertyViewModel.Code); + if (pumpInfo == null) + { + break; + } + + var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo, _allHydroCalcuResultListFunc?.Invoke()); + var dlg = new PumpSingleMatchingDlg(); + dlg.SetBindingData(input); + dlg.ReloadDataEvent += (output) => + { + bol = AssetsMatchingParasHelper.Apply(hydroInfo, output); + if (bol) + { + propertyViewModel.Update(); + } + }; + dlg.ShowDialog(); + } + break; + case Yw.Hydro.ParterCatalog.Valve://闃�闂� + { + var valveInfo = hydroInfo.Valves?.Find(x => x.Code == propertyViewModel.Code); + if (valveInfo == null) + { + break; + } + var input = AssetsMatchingParasHelper.Create(hydroInfo, valveInfo, _allHydroCalcuResultListFunc?.Invoke()); + var dlg = new ValveSingleMatchingDlg(); + dlg.SetBindingData(input); + dlg.ReloadDataEvent += (rhs) => + { + bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); + }; + dlg.ShowDialog(); + } + break; + case Yw.Hydro.ParterCatalog.Pipe://绠¢亾 + { + } + break; + case Yw.Hydro.ParterCatalog.Elbow://寮ご + { + var elbowInfo = hydroInfo.Elbows?.Find(x => x.Code == propertyViewModel.Code); + if (elbowInfo == null) + { + break; + } + var input = AssetsMatchingParasHelper.Create(hydroInfo, elbowInfo, _allHydroCalcuResultListFunc?.Invoke()); + var dlg = new ElbowSingMatchingDlg(); + dlg.SetBindingData(input); + dlg.ReloadDataEvent += (output) => + { + bol = AssetsMatchingParasHelper.Apply(hydroInfo, output); + }; + dlg.ShowDialog(); + } + break; + case Yw.Hydro.ParterCatalog.Threelink://涓夐�� + { + } + break; + case Yw.Hydro.ParterCatalog.Fourlink://鍥涢�� + { + } + break; + default: break; + } + return bol; + } + + //寮鸿皟杩炴帴缁勪欢 + private void HydroParterPropertyCtrl1_BlinkLinkParterEvent(string code, string linkCode) + { + if (string.IsNullOrEmpty(code)) + { + return; + } + if (string.IsNullOrEmpty(linkCode)) + { + return; + } + this.BlinkLinkParterEvent?.Invoke(code, linkCode); + } + + } } \ No newline at end of file -- Gitblit v1.9.3