using HStation.WinFrmUI.Basic; using HStation.WinFrmUI.PhartRelation; using HStation.WinFrmUI.Xhs; namespace HStation.WinFrmUI { public partial class ValveSingleMatchingCtrl : DevExpress.XtraEditors.XtraUserControl { public ValveSingleMatchingCtrl() { InitializeComponent(); this.gridView1.SetNormalView(); this.gridView3.SetNormalView(); } public class PhartViewModel { public long ID { get; set; } public string OtherName { get; set; } public int Importance { get; set; } public int SortCode { get; set; } } public class CurvieInfo { public long? Dbid { get; set; } public long? Curveid { get; set; } public Vmo.XhsValveMainPhartMappingExtensions Curveinfo { get; set; } } private List _allBindingList = null; private BLL.AssetsValveMain _valveBll = null; private List _allPhartList = null; private readonly Lazy _bll_ex = new(); private ValveMatchingViewModel _pumpMatchingViewModel; public async void SetBindingData(ValveMatchingViewModel valveMatchingViewModel) { _pumpMatchingViewModel = valveMatchingViewModel; _allBindingList = new List(); _valveBll = new BLL.AssetsValveMain(); var allAssetsPumpMain = await _valveBll.GetAll(); foreach (var Main in allAssetsPumpMain) { _allBindingList.Add(new ValveSingleMatchingViewModel(Main)); } this.searchControl1.Text = valveMatchingViewModel.ModelType; for (int i = 0; i < _allBindingList.Count; i++) { if (long.TryParse(valveMatchingViewModel.DbId, out long dbID)) { if (_allBindingList[i].ID == dbID) { this.gridView3.FocusedRowHandle = i; } } } this.valveSingleMatchingViewModelBindingSource.DataSource = _allBindingList; } //阀门型号列表选择项切换事件 private async void gridView2_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { _allPhartList = new List(); var vm = this.gridView3.GetCurrentViewModel(_allBindingList); if (vm != null) { if (vm.SeriesType == HStation.Assets.eAssetsValveSeriesType.GPV) { layoutControlGroup2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; } else { layoutControlGroup2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; } _pumpMatchingViewModel.MatchingDbId = vm.ID.ToString(); _pumpMatchingViewModel.MatchingModelType = vm.Name.ToString(); if (double.TryParse(vm.Caliber, out double caliber)) { _pumpMatchingViewModel.MatchingDiameter = caliber; } _pumpMatchingViewModel.MatchingMinorLoss = vm.Coefficient; _pumpMatchingViewModel.MatchingMaterial = vm.Material; _pumpMatchingViewModel.MatchingValveLift = vm.ValveLift; _pumpMatchingViewModel.MatchingValveType = vm.SeriesType.ToString(); _pumpMatchingViewModel.MatchingValveSetting = vm.ValveSetting; var list = await _bll_ex.Value.GetByValveMainID(vm.ID); if (list != null && list.Any()) { foreach (var item in list) { _allPhartList.Add(new PhartViewModel { ID = item.ID, OtherName = item.OtherName, Importance = item.Importance, SortCode = item.SortCode }); } } } if (_pumpMatchingViewModel.MatchingChartDbId != null) { for (int i = 0; i < _allPhartList.Count; i++) { if (_allBindingList[i].ID.ToString() == _pumpMatchingViewModel.MatchingChartDbId) { gridView1.FocusedRowHandle = i; } } } this.gridControl1.DataSource = _allPhartList; } //查看曲线 private async void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { if (e.Column == this.ColShowChart) { var vm = this.gridView1.GetCurrentViewModel(_allPhartList); if (vm != null) { var vmo = await _bll_ex.Value.GetByID(vm.ID); if (vmo != null) { _pumpMatchingViewModel.MatchingChartDbId = vm.ID.ToString(); var graph_ql = vmo.Diagram.GraphList.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.ValveQL); if (graph_ql != null) { var points_qh = PhartPerformCurveHelper.GetFeatPointList(graph_ql.GraphType, graph_ql.GeometryInfo, 100, null); _pumpMatchingViewModel.MatchingCurveQL = new List(); foreach (var item in points_qh) { _pumpMatchingViewModel.MatchingCurveQL.Add(new CurvePointMatchingViewModel(item.X, item.Y)); } } } var dlg = new ValveChartShowDlg(); dlg.InitChart(vmo); dlg.ShowDialog(); return; } } } } }