From 8981c9f11f01973ddbf9718ff5935ebfe6dc6b40 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期五, 20 九月 2024 18:33:13 +0800 Subject: [PATCH] 报错修改 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/02-AsstesFormCtrl/PumpMatchingCtrl.cs | 90 ++++++++++++++------------------------------- 1 files changed, 28 insertions(+), 62 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/02-AsstesFormCtrl/PumpMatchingCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/02-AsstesFormCtrl/PumpMatchingCtrl.cs index 5e1b2dd..f8c8c4d 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/02-AsstesFormCtrl/PumpMatchingCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/02-AsstesFormCtrl/PumpMatchingCtrl.cs @@ -1,6 +1,4 @@ -锘縰sing DevExpress.Dialogs.Core.View; - -namespace HStation.WinFrmUI +锘縩amespace HStation.WinFrmUI { public partial class PumpMatchingCtrl : DevExpress.XtraEditors.XtraUserControl { @@ -13,72 +11,40 @@ } private List<PumpMatchingViewModel> _allBindingList = null; - private BLL.PumpMain _pumpMainBll = null; - public List<PumpMatchingViewModel> SetBindingData(List<PumpMatchingViewModel> pumpMatchingViewModel, out List<PumpMatchingViewModel> errorList) + /// <summary> + /// 鐐瑰嚮浜嬩欢 + /// </summary> + public event Action<string> RowClickEvent; + + public void SetBindingData(List<PumpMatchingViewModel> pumpMatchingViewModel) { - _pumpMainBll = new BLL.PumpMain(); - errorList = null; - _allBindingList = new List<PumpMatchingViewModel>(); - if (pumpMatchingViewModel == null) - return null; - var alllist = _pumpMainBll.GetAll().Result; - const double speedTolerance = 100; - const double flowTolerance = 10; - const double headTolerance = 5; - const double efficiencyTolerance = 0.05; - foreach (var viewModel in pumpMatchingViewModel) - { - foreach (var pumpMain in alllist) - { - // 灏濊瘯缁濆鍖归厤 - var absoluteMatch = alllist.FirstOrDefault(item => - viewModel.RatedN == item.RatedSpeed && - viewModel.RatedQ == item.RatedFlow && - viewModel.RatedH == item.RatedHead && - viewModel.RatedP == item.RatedPower); - if (absoluteMatch != null) - { - } - else - { - // 灏濊瘯鍖洪棿鍖归厤 - var rangeMatch = alllist.Where(item => - (viewModel.RatedN.HasValue ? Math.Abs(viewModel.RatedN.Value - item.RatedSpeed) <= speedTolerance : true) && - (viewModel.RatedQ.HasValue ? Math.Abs(viewModel.RatedQ.Value - item.RatedFlow) <= flowTolerance : true) && - (viewModel.RatedH.HasValue ? Math.Abs(viewModel.RatedH.Value - item.RatedHead) <= headTolerance : true) && - (Math.Abs(viewModel.RatedP - item.RatedPower) <= efficiencyTolerance)).ToList(); - if (rangeMatch != null) - { - var vmo = new Vmo.PumpMainVmo(); - int firstCount = 0; - foreach (var item in rangeMatch) - { - int commonCount = CountCommonCharacters(viewModel.ModelType, item.Name); - if (commonCount > firstCount) - { - vmo = item; - firstCount = commonCount; - } - } - } - } - } - } + _allBindingList = pumpMatchingViewModel; this.pumpMatchingViewModelBindingSource.DataSource = _allBindingList; - return new List<PumpMatchingViewModel>(); } - private static int CountCommonCharacters(string baseString, string comparisonString) + public async Task<List<PumpMatchingViewModel>> SetMatching(List<PumpMatchingViewModel> pumpMatchingViewModel, List<PumpMainVmo> pumpMainVmos) { - // 灏嗗瓧绗︿覆杞崲涓哄瓧绗﹂泦鍚� - HashSet<char> baseChars = new HashSet<char>(baseString); - HashSet<char> comparisonChars = new HashSet<char>(comparisonString); + List<PumpMatchingViewModel> _allBindingList = new List<PumpMatchingViewModel>(); + if (pumpMatchingViewModel == null) + return null; + foreach (var item in pumpMatchingViewModel) + { + var result = await AsstesAutoMatchingHelper.PumpMatching(item, pumpMainVmos); + } + this.pumpMatchingViewModelBindingSource.ResetBindings(false); + return _allBindingList; + } - // 璁$畻涓や釜闆嗗悎鐨勪氦闆� - int commonCount = baseChars.Intersect(comparisonChars).Count(); - - return commonCount; + //琛岀偣鍑讳簨浠� + private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) + { + var row = this.gridView1.GetCurrentViewModel(_allBindingList); + if (row == null) + { + return; + } + this.RowClickEvent?.Invoke(row.Code); } } } \ No newline at end of file -- Gitblit v1.9.3