using HStation.WinFrmUI.PhartRelation;
|
|
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<ValveSingleMatchingViewModel> _allBindingList = null;
|
|
private BLL.AssetsValveMain _valveBll = null;
|
|
private List<PhartViewModel> _allPhartList = null;
|
private readonly Lazy<BLL.XhsValveMainPhartMappingExtensions> _bll_ex = new();
|
|
private ValveMatchingViewModel _pumpMatchingViewModel;
|
|
public async void SetBindingData(ValveMatchingViewModel valveMatchingViewModel)
|
{
|
_pumpMatchingViewModel = valveMatchingViewModel;
|
_allBindingList = new List<ValveSingleMatchingViewModel>();
|
_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 void InitChart(Vmo.XhsValveMainPhartMappingExtensions dto)
|
{
|
if (dto == null)
|
{
|
return;
|
}
|
var diagram = dto.Diagram;
|
if (diagram == null)
|
{
|
return;
|
}
|
var graph_list = diagram.GraphList;
|
if (graph_list == null || !graph_list.Any())
|
{
|
return;
|
}
|
|
var graph_ql = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.ValveQL);
|
if (graph_ql == null)
|
{
|
return;
|
}
|
|
List<Yw.Geometry.Point2d> points_ql = null;
|
points_ql = PhartPerformCurveHelper.GetFeatPointList(graph_ql.GraphType, graph_ql.GeometryInfo, 12, null);
|
|
var cubic_spline_ql = new Yw.Geometry.CubicSpline2d(points_ql);
|
|
var disp_paras = diagram.DispParas;
|
var is_calc_disp_paras = string.IsNullOrWhiteSpace(disp_paras);
|
this.xtrPerform2dChart1.SetBindingData(cubic_spline_ql, disp_paras, is_calc_disp_paras);
|
}
|
|
//阀门型号列表选择项切换事件
|
private async void gridView2_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
{
|
_allPhartList = new List<PhartViewModel>();
|
var vm = this.gridView3.GetCurrentViewModel(_allBindingList);
|
if (vm != null)
|
{
|
_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_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
{
|
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_qh = vmo.Diagram.GraphList.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.ValveQL);
|
if (graph_qh != null)
|
{
|
var points_qh = PhartPerformCurveHelper.GetFeatPointList(graph_qh.GraphType, graph_qh.GeometryInfo, 100, null);
|
_pumpMatchingViewModel.MatchingCurveQL = new List<CurvePointMatchingViewModel>();
|
foreach (var item in points_qh)
|
{
|
_pumpMatchingViewModel.MatchingCurveQL.Add(new CurvePointMatchingViewModel(item.X, item.Y));
|
}
|
}
|
}
|
InitChart(vmo);
|
return;
|
}
|
this.xtrPerform2dChart1.SetBindingData(null, null, null, null, true);
|
}
|
}
|
}
|