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 | 496 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 255 insertions(+), 241 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 e7ad1cc..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,273 +12,157 @@ public XhsProjectSimulationPropertyCtrl() { InitializeComponent(); + this.hydroVisualPropertyCtrl1.MatchingDbEvent += HydroVisualPropertyCtrl1_MatchingDbEvent; + this.hydroVisualPropertyCtrl1.SetCurveEvent += HydroVisualPropertyCtrl1_SetCurveEvent; + this.hydroVisualPropertyCtrl1.SetPatternEvent += HydroVisualPropertyCtrl1_SetPatternEvent; - this.hydroParterPropertyCtrl1.ViewCurveEvent += HydroParterPropertyCtrl1_ViewCurveEvent; - this.hydroParterPropertyCtrl1.SetCurveEvent += HydroParterPropertyCtrl1_SetCurveEvent; - this.hydroParterPropertyCtrl1.SetPatternEvent += HydroParterPropertyCtrl1_SetPatternEvent; - this.hydroParterPropertyCtrl1.PropertyValueChangedEvent += HydroParterPropertyCtrl1_PropertyValueChangedEvent; - this.hydroParterPropertyCtrl1.PropertyValueChangingEvent += HydroParterPropertyCtrl1_PropertyValueChangingEvent; - this.hydroParterPropertyCtrl1.MatchingDbEvent += HydroParterPropertyCtrl1_MatchingDbEvent; + 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; } - //姘村姏淇℃伅鏂规硶 - private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; + #region 浜嬩欢闆� /// <summary> - /// 鍒濆鍖栨暟鎹� + /// 鏋勪欢鏌ョ湅浜嬩欢 /// </summary> - public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) + public event Action<HydroVisualInfo> HydroViewEvent; + + /// <summary> + /// 寮鸿皟杩炴帴缁勪欢浜嬩欢 + /// 绗竴涓弬鏁颁负缁勪欢 + /// 绗簩涓弬鏁颁负杩炴帴鑺傜偣Code + /// </summary> + public event Action<HydroLinkInfo, string> BlinkLinkNodeEvent; + + /// <summary> + /// 灞炴�у�兼敼鍙樹簨浠� + /// </summary> + public event Action<HydroVisualInfo> PropertyValueChangedEvent; + + /// <summary> + /// 鏍囨敞灞炴�у�兼敼鍙樹簨浠� + /// </summary> + public event Action<HydroVisualInfo> MarkPropertyValueChangedEvent; + + /// <summary> + /// 鍒嗙骇灞炴�у�兼敼鍙樹簨浠� + /// </summary> + public event Action<HydroVisualInfo> GradingPropertyValueChangedEvent; + + /// <summary> + /// 姘存祦鍔ㄧ敾灞炴�у�兼敼鍙樹簨浠� + /// </summary> + public event Action<HydroVisualInfo> FlowEffectPropertyValueChangedEvent; + + #endregion 浜嬩欢闆� + + #region 灞炴�ц祴鍊� + + /// <summary> + /// 閫夋嫨瀵硅薄 + /// </summary> + public HydroVisualViewModel SelectedObject { - _hydroInfoFunc = hydroInfoFunc; - this.hydroParterPropertyCtrl1.InitialData(hydroInfoFunc); + get { return this.hydroVisualPropertyCtrl1.SelectedObject; } + set { this.hydroVisualPropertyCtrl1.SelectedObject = value; } + } + + #endregion 灞炴�ц祴鍊� + + #region 灞炴�ф洿鏂� + + /// <summary> + /// 閲嶆柊杞藉叆鏁版嵁 + /// </summary> + public void UpdateData() + { + this.hydroVisualPropertyCtrl1?.UpdateData(); } /// <summary> - /// 閫夋嫨缁勪欢 + /// 鏇存柊琛岋紝鏍峰紡涓嶅彉 /// </summary> - public void SelectParter(long id) + public void UpdateRows() { - var hydroInfo = _hydroInfoFunc?.Invoke(); - if (hydroInfo == null) - { - this.hydroParterPropertyCtrl1.SelectedObject = null; - return; - } - var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList.Find(x => x.ID == id); - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); - this.hydroParterPropertyCtrl1.SelectedObject = vm; + this.hydroVisualPropertyCtrl1?.UpdateRows(); } /// <summary> - /// 閫夋嫨缁勪欢 + /// 鏇存柊灞炴�� /// </summary> - public void SelectParter(string code) + public void UpdateProperty() { - var hydroInfo = _hydroInfoFunc?.Invoke(); - if (hydroInfo == null) - { - this.hydroParterPropertyCtrl1.SelectedObject = null; - return; - } - var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList.Find(x => x.Code == code); - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); - this.hydroParterPropertyCtrl1.SelectedObject = vm; - } - - /// <summary> - /// 閫夋嫨缁勪欢 - /// </summary> - public void SelectParter(Yw.Model.HydroParterInfo parter, List<Yw.Model.HydroParterInfo> allParterList) - { - var vm = Yw.WinFrmUI.HydroParterPropertyViewModelBuilder.CreateViewModel(parter, allParterList); - this.hydroParterPropertyCtrl1.SelectedObject = vm; - } - - /// <summary> - /// 鏇存柊璁$畻灞炴�� - /// </summary> - public void UpdateCalcuProperty(Yw.WinFrmUI.IHydroCalcuResult rhs) - { - var vm = this.hydroParterPropertyCtrl1.SelectedObject; + var vm = this.hydroVisualPropertyCtrl1.SelectedObject; if (vm == null) { return; } - vm.UpdateCalcuProperty(rhs); - this.hydroParterPropertyCtrl1.UpdateRows(); + vm.UpdateProperty(); + this.hydroVisualPropertyCtrl1.UpdateRows(); } - //鏌ョ湅鏇茬嚎 - private void HydroParterPropertyCtrl1_ViewCurveEvent(Yw.Model.HydroParterInfo parterInfo, string curveType) + #endregion 灞炴�ф洿鏂� + + #region 浜嬩欢瀹炵幇 + + //鍖归厤Db + private bool HydroVisualPropertyCtrl1_MatchingDbEvent(HydroVisualViewModel vm) { - var hydroInfo = _hydroInfoFunc?.Invoke(); - if (hydroInfo == null) + if (vm == null) { - return; + return false; } - switch (curveType) - { - case Yw.WinFrmUI.HydroCurve.Pump: - { - var pumpInfo = parterInfo as Yw.Model.HydroPumpInfo; - var curveqh = hydroInfo.Curves?.Find(x => x.Code == pumpInfo.CurveQH); - if (curveqh == null) - { - return; - } - var pumpId = string.IsNullOrEmpty(pumpInfo.DbId) ? 0 : Convert.ToInt64(pumpInfo.DbId); - var curveId = string.IsNullOrEmpty(curveqh.DbId) ? 0 : Convert.ToInt64(curveqh.DbId); - var speedRatio = pumpInfo.SpeedRatio; - var dlg = new PumpPerform2dViewDlg(); - dlg.SetBindingData(pumpId, curveId, speedRatio); - dlg.ShowDialog(); - } - break; - - case Yw.WinFrmUI.HydroCurve.Valve: - { - } - break; - - default: break; - } - } - - //閫夋嫨鏇茬嚎 - private bool HydroParterPropertyCtrl1_SetCurveEvent(HydroParterPropertyViewModel propViewModel, string curveType) - { - 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 PumpSingleMatchingDlg(); - dlg.SetBindingData(input); - dlg.ReloadDataEvent += (rhs) => - { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); - if (bol) - { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); - } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); - } - }; - dlg.ShowDialog(); - return true; - } - case Yw.WinFrmUI.HydroCurve.PumpQH: - { - return false; - } - case Yw.WinFrmUI.HydroCurve.PumpQP: - { - return false; - } - case Yw.WinFrmUI.HydroCurve.PumpQE: - { - return false; - } - case Yw.WinFrmUI.HydroCurve.Valve: - { - return true; - } - case Yw.WinFrmUI.HydroCurve.ValveQL: - { - return false; - } - default: break; - } - return false; - } - - //閫夋嫨妯″紡 - private bool HydroParterPropertyCtrl1_SetPatternEvent(HydroParterPropertyViewModel propViewModel, string patternType) - { - switch (patternType) - { - case Yw.WinFrmUI.HydroPattern.Demand: - { - } - break; - - case Yw.WinFrmUI.HydroPattern.Head: - { - } - break; - - default: break; - } - return true; - } - - //灞炴�у彂鐢熸敼鍙� - private bool HydroParterPropertyCtrl1_PropertyValueChangedEvent(HydroParterPropertyViewModel obj) - { - return false; - } - - //灞炴�ф鍦ㄥ彂鐢熸敼鍙� - private bool HydroParterPropertyCtrl1_PropertyValueChangingEvent(HydroParterPropertyViewModel arg) - { - 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) + var bol = false; + var catalog = HydroParterCatalogHelper.GetCode(vm.Catalog); + switch (catalog) { case Yw.Hydro.ParterCatalog.Pump://姘存车 { - var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == parter.Code); - var input = AssetsMatchingParasHelper.Create(hydroInfo, pumpInfo); + /* var pumpInfo = vm.HydroInfo.Pumps?.Find(x => x.Code == vm.Code); + if (pumpInfo == null) + { + break; + } - if (input.DbId != string.Empty) - { - var detailDlg = new PumpFullInfoViewDlg(); - detailDlg.SetBindindData(input); - detailDlg.ShowDialog(); - return; - } - - var dlg = new PumpSingleMatchingDlg(); - dlg.SetBindingData(input); - dlg.ReloadDataEvent += (rhs) => - { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); - if (bol) - { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); - } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); - } - }; - dlg.ShowDialog(); + 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 = hydroInfo.Valves?.Find(x => x.Code == parter.Code); - var input = AssetsMatchingParasHelper.Create(hydroInfo, valveInfo); - var dlg = new ValveSingleMatchingDlg(); - dlg.SetBindingData(input); - dlg.ReloadDataEvent += (rhs) => - { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); - if (bol) - { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); - } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); - } - }; - dlg.ShowDialog(); + /* 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; @@ -288,20 +173,21 @@ case Yw.Hydro.ParterCatalog.Elbow://寮ご { - var elbowInfo = hydroInfo.Elbows?.Find(x => x.Code == parter.Code); - var input = AssetsMatchingParasHelper.Create(hydroInfo, elbowInfo); + 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 += (rhs) => + dlg.ReloadDataEvent += (output) => { - var bol = AssetsMatchingParasHelper.Apply(hydroInfo, rhs); + bol = HydroMatchingHelper.Apply(vm.HydroInfo, null, output); if (bol) { - TipFormHelper.ShowSucceed("鍖归厤鎴愬姛"); - } - else - { - TipFormHelper.ShowWarn("鍖归厤澶辫触"); + vm.UpdateProperty(); + this.hydroVisualPropertyCtrl1.UpdateRows(); } }; dlg.ShowDialog(); @@ -317,7 +203,135 @@ { } break; + + default: break; } + return bol; } + + //閫夋嫨鏇茬嚎 + private bool HydroVisualPropertyCtrl1_SetCurveEvent(HydroVisualViewModel vm, string curveType) + { + if (vm == null) + { + return false; + } + switch (curveType) + { + case HydroCurve.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 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 HydroCurve.PumpQH: + { + return false; + } + case HydroCurve.PumpQP: + { + return false; + } + case HydroCurve.PumpQE: + { + return false; + } + case HydroCurve.Valve: + { + return false; + } + case HydroCurve.ValveQL: + { + return false; + } + default: break; + } + return false; + } + + //閫夋嫨妯″紡 + private bool HydroVisualPropertyCtrl1_SetPatternEvent(HydroVisualViewModel vm, string patternType) + { + switch (patternType) + { + case HydroPattern.Head: + { + return false; + } + case HydroPattern.Demand: + { + return false; + } + default: break; + } + return false; + } + + #endregion 浜嬩欢瀹炵幇 + + #region 浜嬩欢绌块�� + + //鏋勪欢鏌ョ湅浜嬩欢 + private void HydroVisualPropertyCtrl1_HydroViewEvent(HydroVisualViewModel vm) + { + this.HydroViewEvent?.Invoke(vm?.Vmo); + } + + //寮鸿皟杩炴帴鑺傜偣 + private void HydroVisualPropertyCtrl1_BlinkLinkNodeEvent(HydroLinkViewModel vm, string linkNodeCode) + { + if (vm == null) + { + return; + } + 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