From 1e9a72970e30b74b8f0cb7c74e2bec9df1aa1d22 Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期四, 05 十二月 2024 09:29:33 +0800 Subject: [PATCH] 阀门曲线 --- WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/02-main/AddValveMainDlg.cs | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 100 insertions(+), 6 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/02-main/AddValveMainDlg.cs b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/02-main/AddValveMainDlg.cs index 100dfb4..e2f08b6 100644 --- a/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/02-main/AddValveMainDlg.cs +++ b/WinFrmUI/HStation.WinFrmUI.Assets.Core/03-valve/02-main/AddValveMainDlg.cs @@ -1,5 +1,6 @@ 锘縰sing DevExpress.XtraEditors.Controls; using HStation.Assets; +using HStation.Vmo; namespace HStation.WinFrmUI.Assets { @@ -9,15 +10,21 @@ { InitializeComponent(); this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; + this.treeList1.InitialMultiColSettings(); } private Vmo.AssetsValveMainVmo _AssetsValveMain = null; //闃�闂ㄥ瀷鍙� - public async void SetBindingData(long SeriesID, HStation.Assets.eAssetsValveSeriesType type) + private List<Vmo.AssetsValveCoefficientVmo> _AssetsValveCoefficient; + + public async void SetBindingData(long SeriesID) { + var bll = new BLL.AssetsValveCoefficient(); + _AssetsValveCoefficient = await bll.GetAll(); + this.valveCoefficientViewModelBindingSource.DataSource = _AssetsValveCoefficient; _AssetsValveMain = new Vmo.AssetsValveMainVmo(); _AssetsValveMain.SeriesID = SeriesID; - _AssetsValveMain.SeriesType = type; + TextEditType.Properties.AddEnum(typeof(HStation.Assets.eValveType)); var allCaliber = await new Yw.BLL.SysDictData().GetByTypeCode("1"); if (allCaliber != null) { @@ -36,7 +43,6 @@ TextEditMaterial.Properties.Items.Add(imageItem); } } - imageComboBoxEditValveType.Properties.AddEnum(typeof(eValveOpenStatus)); TextEditCaliber.SelectedIndex = 0; TextEditMaterial.SelectedIndex = 0; } @@ -78,18 +84,23 @@ _AssetsValveMain.Name = TextEditName.Text.Trim(); if (double.TryParse(TextEditCoefficient.Text, out double coefficient)) { - _AssetsValveMain.Coefficient = coefficient; + _AssetsValveMain.MinorLoss = coefficient; } if (TextEditMaterial.Text != "榛樿") { - _AssetsValveMain.MaterialName = TextEditMaterial.Text.Trim(); + _AssetsValveMain.Material = TextEditMaterial.Text.Trim(); } _AssetsValveMain.Description = TextEditDescription.Text.Trim(); if (double.TryParse(TextEditCaliber.Text, out double caliber)) { _AssetsValveMain.Caliber = caliber; } - _AssetsValveMain.OpenStatus = (eValveOpenStatus)this.imageComboBoxEditValveType.EditValue; + if (Enum.TryParse(Convert.ToString(TextEditType.EditValue), true, out HStation.Assets.eValveType valvetype)) + { + _AssetsValveMain.ValveType = valvetype; + } + _AssetsValveMain.KeyWord = this.TextEditKeyWord.Text.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(); + _AssetsValveMain.ValveSetting = this.TextEditValveSetting.Text.Trim(); if (await this.ReloadDataEvent.Invoke(_AssetsValveMain)) { TipFormHelper.ShowSucceed("娣诲姞鎴愬姛!"); @@ -101,5 +112,88 @@ this.DialogResult = DialogResult.OK; this.Close(); } + + //鏉愭枡閫夋嫨鍙樺寲浜嬩欢 + private void TextEditMaterial_SelectedIndexChanged(object sender, EventArgs e) + { + if (_AssetsValveCoefficient == null) + return; + var select = GetCoefficientByMaterial(TextEditMaterial.Text); + if (select == null) + { + this.TextEditCoefficient.Text = string.Empty; + return; + } + this.TextEditCoefficient.Text = select.MinorLoss.ToString(); + } + + //鍙e緞閫夋嫨鍙樺寲浜嬩欢 + private void TextEditCaliber_SelectedIndexChanged(object sender, EventArgs e) + { + if (_AssetsValveCoefficient == null) + return; + + if (double.TryParse(TextEditCaliber.Text, out double caliber)) + { + foreach (var item in _AssetsValveCoefficient) + { + if (item.Caliber.HasValue) + { + if (Math.Abs(Convert.ToDouble(item.Caliber) - caliber) < 10) + { + this.TextEditCoefficient.Text = item.MinorLoss.ToString(); + return; + } + } + } + } + } + + //鎵惧埌鏈�鐩歌繎鐨勬潗鏂� + private AssetsValveCoefficientVmo GetCoefficientByMaterial(string name) + { + AssetsValveCoefficientVmo select = null; + int maxMatchedChars = 0; + foreach (var item in _AssetsValveCoefficient) + { + int matchedChars = GetIntersect(item.Material, name); + if (matchedChars > maxMatchedChars) + { + maxMatchedChars = matchedChars; + select = item; + return select; + } + } + return select; + } + + private int GetIntersect(string str1, string str2) + { + if (str1 == null || str2 == null) return 0; + return string.Join("", str1.Intersect(str2)).Count(); + } + + private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) + { + var vm = this.treeList1.GetCurrentViewModel(_AssetsValveCoefficient); + if (vm == null) + return; + this.TextEditCoefficient.Text = vm.MinorLoss.ToString(); + } + + private void TextEditType_SelectedIndexChanged(object sender, EventArgs e) + { + if (Enum.TryParse(Convert.ToString(TextEditType.EditValue), true, out HStation.Assets.eValveType valvetype)) + { + if (valvetype == eValveType.GPV || valvetype == eValveType.TCV) + { + TextEditValveSetting.Enabled = false; + } + else + { + TextEditValveSetting.Enabled = true; + } + } + } } } \ No newline at end of file -- Gitblit v1.9.3