From ca1ccd0dd9f2d6936368f07d14a2b29b309fd151 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期三, 04 十二月 2024 15:59:25 +0800 Subject: [PATCH] 增加单独匹配界面 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/01-property/XhsProjectSimulationPropertyCtrl.cs | 510 +++++++++++++++++++++++-------------------------------- 1 files changed, 214 insertions(+), 296 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 cb573fa..178e983 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,5 +1,6 @@ 锘縰sing HStation.WinFrmUI.PhartRelation; using HStation.WinFrmUI.Xhs; +using Yw.Model; namespace HStation.WinFrmUI { @@ -11,133 +12,83 @@ public XhsProjectSimulationPropertyCtrl() { InitializeComponent(); - this.hydroParterPropertyCtrl1.MatchingDbEvent += HydroParterPropertyCtrl1_MatchingDbEvent; - this.hydroParterPropertyCtrl1.SetCurveEvent += HydroParterPropertyCtrl1_SetCurveEvent; - this.hydroParterPropertyCtrl1.SetPatternEvent += HydroParterPropertyCtrl1_SetPatternEvent; - this.hydroParterPropertyCtrl1.BlinkLinkParterEvent += HydroParterPropertyCtrl1_BlinkLinkParterEvent; - this.hydroParterPropertyCtrl1.ViewParterEvent += HydroParterPropertyCtrl1_ViewParterEvent; + this.hydroVisualPropertyCtrl1.MatchingDbEvent += HydroVisualPropertyCtrl1_MatchingDbEvent; + this.hydroVisualPropertyCtrl1.SetCurveEvent += HydroVisualPropertyCtrl1_SetCurveEvent; + this.hydroVisualPropertyCtrl1.SetPatternEvent += HydroVisualPropertyCtrl1_SetPatternEvent; - this.hydroParterPropertyCtrl1.PropertyValueChangedEvent += HydroParterPropertyCtrl1_PropertyValueChangedEvent; - this.hydroParterPropertyCtrl1.MarkPropertyValueChangedEvent += HydroParterPropertyCtrl1_MarkPropertyValueChangedEvent; - this.hydroParterPropertyCtrl1.GradingPropertyValueChangedEvent += HydroParterPropertyCtrl1_GradingPropertyValueChangedEvent; - this.hydroParterPropertyCtrl1.FlowDirectionPropertyValueChangedEvent += HydroParterPropertyCtrl1_FlowDirectionPropertyValueChangedEvent; + this.hydroVisualPropertyCtrl1.HydroViewEvent += HydroVisualPropertyCtrl1_HydroViewEvent; + this.hydroVisualPropertyCtrl1.BlinkLinkNodeEvent += HydroVisualPropertyCtrl1_BlinkLinkNodeEvent; + this.hydroVisualPropertyCtrl1.PropertyValueChangedEvent += HydroVisualPropertyCtrl1_PropertyValueChangedEvent; + this.hydroVisualPropertyCtrl1.MarkPropertyValueChangedEvent += HydroVisualPropertyCtrl1_MarkPropertyValueChangedEvent; + this.hydroVisualPropertyCtrl1.GradingPropertyValueChangedEvent += HydroPVisualPropertyCtrl1_GradingPropertyValueChangedEvent; + this.hydroVisualPropertyCtrl1.FlowEffectPropertyValueChangedEvent += HydroVisualPropertyCtrl1_FlowEffectPropertyValueChangedEvent; } + #region 浜嬩欢闆� - - - + /// <summary> + /// 鏋勪欢鏌ョ湅浜嬩欢 + /// </summary> + public event Action<HydroVisualInfo> HydroViewEvent; /// <summary> /// 寮鸿皟杩炴帴缁勪欢浜嬩欢 - /// 绗竴涓弬鏁颁负缁勪欢Code - /// 绗簩涓弬鏁颁负杩炴帴缁勪欢Code + /// 绗竴涓弬鏁颁负缁勪欢 + /// 绗簩涓弬鏁颁负杩炴帴鑺傜偣Code /// </summary> - public event Action<string, string> BlinkLinkParterEvent; + public event Action<HydroLinkInfo, string> BlinkLinkNodeEvent; /// <summary> /// 灞炴�у�兼敼鍙樹簨浠� /// </summary> - public event Action<Yw.Model.HydroParterInfo> PropertyValueChangedEvent; + public event Action<HydroVisualInfo> PropertyValueChangedEvent; /// <summary> /// 鏍囨敞灞炴�у�兼敼鍙樹簨浠� /// </summary> - public event Action<Yw.Model.HydroParterInfo> MarkPropertyValueChangedEvent; + public event Action<HydroVisualInfo> MarkPropertyValueChangedEvent; /// <summary> /// 鍒嗙骇灞炴�у�兼敼鍙樹簨浠� /// </summary> - public event Action<Yw.Model.HydroParterInfo> GradingPropertyValueChangedEvent; + public event Action<HydroVisualInfo> GradingPropertyValueChangedEvent; /// <summary> - /// 娴佸悜灞炴�у�兼敼鍙樹簨浠� + /// 姘存祦鍔ㄧ敾灞炴�у�兼敼鍙樹簨浠� /// </summary> - public event Action<Yw.Model.HydroParterInfo> FlowDirectionPropertyValueChangedEvent; + public event Action<HydroVisualInfo> FlowEffectPropertyValueChangedEvent; + + #endregion 浜嬩欢闆� + + #region 灞炴�ц祴鍊� /// <summary> - /// 鏌ョ湅鏋勪欢浜嬩欢 + /// 閫夋嫨瀵硅薄 /// </summary> - public event Action<Yw.Model.HydroParterInfo> ViewParterEvent; - - //姘村姏淇℃伅鏂规硶 - private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; - private Func<List<HydroCalcuResult>> _allHydroCalcuResultListFunc = null; - - /// <summary> - /// 鍒濆鍖栨暟鎹� - /// </summary> - public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc, Func<List<HydroCalcuResult>> allHydroCalcuResultListFunc) + public HydroVisualViewModel SelectedObject { - _hydroInfoFunc = hydroInfoFunc; - _allHydroCalcuResultListFunc = allHydroCalcuResultListFunc; + get { return this.hydroVisualPropertyCtrl1.SelectedObject; } + set { this.hydroVisualPropertyCtrl1.SelectedObject = value; } } - //鑾峰彇姘村姏淇℃伅 - private Yw.Model.HydroModelInfo GetHydroInfo() + #endregion 灞炴�ц祴鍊� + + #region 灞炴�ф洿鏂� + + /// <summary> + /// 閲嶆柊杞藉叆鏁版嵁 + /// </summary> + public void UpdateData() { - var hydroInfo = _hydroInfoFunc?.Invoke(); - if (hydroInfo == null) - { - this.hydroParterPropertyCtrl1.SelectedObject = null; - return default; - } - return hydroInfo; + this.hydroVisualPropertyCtrl1?.UpdateData(); } /// <summary> - /// 閫夋嫨缁勪欢 + /// 鏇存柊琛岋紝鏍峰紡涓嶅彉 /// </summary> - public void SelectParter(long id) + public void UpdateRows() { - var hydroInfo = GetHydroInfo(); - if (hydroInfo == null) - { - return; - } - var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList?.Find(x => x.ID == id); - SelectParter(parter); - } - - /// <summary> - /// 閫夋嫨缁勪欢 - /// </summary> - public void SelectParter(string code) - { - var hydroInfo = GetHydroInfo(); - if (hydroInfo == null) - { - return; - } - var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList?.Find(x => x.Code == code); - SelectParter(parter); - } - - /// <summary> - /// 閫夋嫨缁勪欢 - /// </summary> - public void SelectParter(Yw.Model.HydroParterInfo parter) - { - var hydroInfo = GetHydroInfo(); - if (hydroInfo == null) - { - return; - } - if (parter != null) - { - var vm = Yw.WinFrmUI.HydroParterViewModelBuilder.CreateViewModel(parter, hydroInfo); - this.hydroParterPropertyCtrl1.SelectedObject = vm; - } - } - - /// <summary> - /// 鍙栨秷閫夋嫨缁勪欢 - /// </summary> - public void CancelSelectParter() - { - this.hydroParterPropertyCtrl1.SelectedObject = null; + this.hydroVisualPropertyCtrl1?.UpdateRows(); } /// <summary> @@ -145,83 +96,168 @@ /// </summary> public void UpdateProperty() { - var vm = this.hydroParterPropertyCtrl1.SelectedObject; + var vm = this.hydroVisualPropertyCtrl1.SelectedObject; if (vm == null) { return; } vm.UpdateProperty(); - this.hydroParterPropertyCtrl1.UpdateRows(); + this.hydroVisualPropertyCtrl1.UpdateRows(); } - /// <summary> - /// 鏇存柊璁$畻灞炴�� - /// </summary> - public void UpdateCalcuProperty(Yw.WinFrmUI.HydroCalcuResult calcuResult) + #endregion 灞炴�ф洿鏂� + + #region 浜嬩欢瀹炵幇 + + //鍖归厤Db + private bool HydroVisualPropertyCtrl1_MatchingDbEvent(HydroVisualViewModel vm) { - if (calcuResult == null) - { - return; - } - var vm = this.hydroParterPropertyCtrl1.SelectedObject; if (vm == null) { - return; + return false; } - vm.UpdateCalcuProperty(calcuResult); - this.hydroParterPropertyCtrl1.UpdateRows(); + var bol = false; + var catalog = HydroParterCatalogHelper.GetCode(vm.Catalog); + switch (catalog) + { + case Yw.Hydro.ParterCatalog.Pump://姘存车 + { + /* var pumpInfo = vm.HydroInfo.Pumps?.Find(x => x.Code == vm.Code); + if (pumpInfo == null) + { + break; + } + + var input = AssetsMatchingParasHelper.Create(vm.HydroInfo, pumpInfo, null); + var dlg = new PumpSingleMatchingDlg(); + dlg.SetBindingData(input); + dlg.ReloadDataEvent += (output) => + { + bol = AssetsMatchingParasHelper.Apply(vm.HydroInfo, output); + if (bol) + { + vm.UpdateProperty(); + } + }; + dlg.ShowDialog();*/ + } + break; + + case Yw.Hydro.ParterCatalog.Valve://闃�闂� + { + /* var valveInfo = vm.HydroInfo.Valves?.Find(x => x.Code == vm.Code); + if (valveInfo == null) + { + break; + } + var input = AssetsMatchingParasHelper.Create(vm.HydroInfo, valveInfo, null); + var dlg = new ValveSingleMatchingDlg(); + dlg.SetBindingData(input); + dlg.ReloadDataEvent += (rhs) => + { + bol = AssetsMatchingParasHelper.Apply(vm.HydroInfo, rhs); + if (bol) + { + vm.UpdateProperty(); + this.hydroVisualPropertyCtrl1.UpdateRows(); + } + }; + dlg.ShowDialog();*/ + } + break; + + case Yw.Hydro.ParterCatalog.Pipe://绠¢亾 + { + } + break; + + case Yw.Hydro.ParterCatalog.Elbow://寮ご + { + var elbowInfo = vm.HydroInfo.Elbows?.Find(x => x.Code == vm.Code); + if (elbowInfo == null) + { + break; + } + var input = HydroMatchingHelper.Create(elbowInfo, vm.HydroInfo, null); + var dlg = new ElbowSingMatchingDlg(); + dlg.SetBindingData(input); + dlg.ReloadDataEvent += (output) => + { + bol = HydroMatchingHelper.Apply(vm.HydroInfo, null, output); + if (bol) + { + vm.UpdateProperty(); + this.hydroVisualPropertyCtrl1.UpdateRows(); + } + }; + dlg.ShowDialog(); + } + break; + + case Yw.Hydro.ParterCatalog.Threelink://涓夐�� + { + } + break; + + case Yw.Hydro.ParterCatalog.Fourlink://鍥涢�� + { + } + break; + + default: break; + } + return bol; } //閫夋嫨鏇茬嚎 - private bool HydroParterPropertyCtrl1_SetCurveEvent(HydroParterViewModel propViewModel, string curveType) + private bool HydroVisualPropertyCtrl1_SetCurveEvent(HydroVisualViewModel vm, string curveType) { - var hydroInfo = _hydroInfoFunc?.Invoke(); - if (hydroInfo == null) + if (vm == null) { return false; } switch (curveType) { - case Yw.WinFrmUI.HydroCurve.Pump: + case HydroCurve.Pump: { - var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == propViewModel.Code); - if (pumpInfo == null) - { - 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) - { - propViewModel.UpdateProperty(); - this.hydroParterPropertyCtrl1.UpdateRows(); - } - return bol; - }; - dlg.ShowDialog(); + //var pumpInfo = vm.HydroInfo.Pumps?.Find(x => x.Code == vm.Code); + //if (pumpInfo == null) + //{ + // break; + //} + //var input = AssetsMatchingParasHelper.Create(vm.HydroInfo, pumpInfo, null); + //var dlg = new SinglePumpAnalyDlg(); + //dlg.SetBindindData(input); + //dlg.ReloadDataEvent += (output) => + //{ + // var bol = AssetsMatchingParasHelper.Apply(vm.HydroInfo, output); + // if (bol) + // { + // vm.UpdateProperty(); + // this.hydroVisualPropertyCtrl1.UpdateRows(); + // } + // return bol; + //}; + //dlg.ShowDialog(); return true; } - case Yw.WinFrmUI.HydroCurve.PumpQH: + case HydroCurve.PumpQH: { return false; } - case Yw.WinFrmUI.HydroCurve.PumpQP: + case HydroCurve.PumpQP: { return false; } - case Yw.WinFrmUI.HydroCurve.PumpQE: + case HydroCurve.PumpQE: { return false; } - case Yw.WinFrmUI.HydroCurve.Valve: + case HydroCurve.Valve: { - return true; + return false; } - case Yw.WinFrmUI.HydroCurve.ValveQL: + case HydroCurve.ValveQL: { return false; } @@ -231,189 +267,71 @@ } //閫夋嫨妯″紡 - private bool HydroParterPropertyCtrl1_SetPatternEvent(HydroParterViewModel propViewModel, string patternType) + private bool HydroVisualPropertyCtrl1_SetPatternEvent(HydroVisualViewModel vm, string patternType) { switch (patternType) { - case Yw.WinFrmUI.HydroPattern.Demand: + case HydroPattern.Head: { + return false; } - break; - - case Yw.WinFrmUI.HydroPattern.Head: + case HydroPattern.Demand: { + return false; } - break; - default: break; } - return true; - } - - //灞炴�у彂鐢熸敼鍙� - private void HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterViewModel vm) - { - if (vm == null) - { - return; - } - this.PropertyValueChangedEvent?.Invoke(vm.Vmo); - } - - //鏍囨敞灞炴�у彂鐢熸敼鍙� - private void HydroParterPropertyCtrl1_MarkPropertyValueChangedEvent(HydroParterViewModel vm) - { - if (vm == null) - { - return; - } - this.MarkPropertyValueChangedEvent?.Invoke(vm.Vmo); - } - - //鍒嗙骇灞炴�у彂鐢熸敼鍙� - private void HydroParterPropertyCtrl1_GradingPropertyValueChangedEvent(HydroParterViewModel vm) - { - if (vm == null) - { - return; - } - this.GradingPropertyValueChangedEvent?.Invoke(vm.Vmo); - } - - //娴佸悜灞炴�у彂鐢熸敼鍙� - private void HydroParterPropertyCtrl1_FlowDirectionPropertyValueChangedEvent(HydroParterViewModel vm) - { - if (vm == null) - { - return; - } - this.FlowDirectionPropertyValueChangedEvent?.Invoke(vm.Vmo); - } - - - - - - - //灞炴�ф鍦ㄥ彂鐢熸敼鍙� - 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; - } + #endregion 浜嬩欢瀹炵幇 - 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.UpdateProperty(); - } - }; - 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; + #region 浜嬩欢绌块�� + + //鏋勪欢鏌ョ湅浜嬩欢 + private void HydroVisualPropertyCtrl1_HydroViewEvent(HydroVisualViewModel vm) + { + this.HydroViewEvent?.Invoke(vm?.Vmo); } - //寮鸿皟杩炴帴缁勪欢 - private void HydroParterPropertyCtrl1_BlinkLinkParterEvent(string code, string linkCode) - { - if (string.IsNullOrEmpty(code)) - { - return; - } - if (string.IsNullOrEmpty(linkCode)) - { - return; - } - this.BlinkLinkParterEvent?.Invoke(code, linkCode); - } - - //鏌ョ湅鏋勪欢 - private void HydroParterPropertyCtrl1_ViewParterEvent(HydroParterViewModel vm) + //寮鸿皟杩炴帴鑺傜偣 + private void HydroVisualPropertyCtrl1_BlinkLinkNodeEvent(HydroLinkViewModel vm, string linkNodeCode) { if (vm == null) { return; } - this.ViewParterEvent?.Invoke(vm.Vmo); + if (string.IsNullOrEmpty(linkNodeCode)) + { + return; + } + this.BlinkLinkNodeEvent?.Invoke(vm?.Vmo, linkNodeCode); } + //灞炴�у彂鐢熸敼鍙� + private void HydroVisualPropertyCtrl1_PropertyValueChangedEvent(HydroVisualViewModel vm) + { + this.PropertyValueChangedEvent?.Invoke(vm?.Vmo); + } + //鏍囨敞灞炴�у彂鐢熸敼鍙� + private void HydroVisualPropertyCtrl1_MarkPropertyValueChangedEvent(HydroVisualViewModel vm) + { + this.MarkPropertyValueChangedEvent?.Invoke(vm?.Vmo); + } + + //鍒嗙骇灞炴�у彂鐢熸敼鍙� + private void HydroPVisualPropertyCtrl1_GradingPropertyValueChangedEvent(HydroVisualViewModel vm) + { + this.GradingPropertyValueChangedEvent?.Invoke(vm?.Vmo); + } + + //姘存祦鍔ㄧ敾灞炴�у彂鐢熸敼鍙� + private void HydroVisualPropertyCtrl1_FlowEffectPropertyValueChangedEvent(HydroVisualViewModel vm) + { + this.FlowEffectPropertyValueChangedEvent?.Invoke(vm?.Vmo); + } + + #endregion 浜嬩欢绌块�� } } \ No newline at end of file -- Gitblit v1.9.3