namespace HStation.WinFrmUI
|
{
|
public partial class PumpSingleMatchingCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public PumpSingleMatchingCtrl()
|
{
|
InitializeComponent();
|
this.gridView1.SetNormalView();
|
this.gridView2.SetNormalView();
|
}
|
|
private List<PumpSingleMatchingViewModel> _allBindingList = null;
|
|
private BLL.AssetsPumpMain _pumpBll = null;
|
|
private List<PhartViewModel> _allPhartList = null;
|
private readonly Lazy<BLL.PhartDiagramRelation> _bll_ex = new();
|
|
private HydroPumpMatchingViewModel _pumpMatchingViewModel;
|
|
public async void SetBindingData(HydroPumpMatchingViewModel pumpMatchingViewModel)
|
{
|
_pumpMatchingViewModel = pumpMatchingViewModel;
|
_allBindingList = new List<PumpSingleMatchingViewModel>();
|
_pumpBll = new BLL.AssetsPumpMain();
|
var allAssetsPumpMain = await _pumpBll.GetAll();
|
foreach (var Main in allAssetsPumpMain)
|
{
|
_allBindingList.Add(new PumpSingleMatchingViewModel(Main));
|
}
|
this.gridControl2.DataSource = _allBindingList;
|
this.searchControl1.Text = pumpMatchingViewModel.ModelType;
|
for (int i = 0; i < _allBindingList.Count; i++)
|
{
|
if (long.TryParse(pumpMatchingViewModel.DbId, out long dbID))
|
{
|
if (_allBindingList[i].ID == dbID)
|
{
|
gridView2.FocusedRowHandle = i;
|
}
|
}
|
}
|
}
|
|
//初始化图表数据
|
private void InitChart(Yw.Vmo.PhartDiagramExGraphListVmo vmo, double speed = 0)
|
{
|
this.pumpChartViewCtrl1.SetBindingData(vmo, speed);
|
}
|
|
//泵型号列表选择项切换事件
|
private async void gridView2_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
{
|
var vm = this.gridView2.GetCurrentViewModel(_allBindingList);
|
if (vm != null)
|
{
|
_pumpMatchingViewModel.MatchingDbId = vm.ID.ToString();
|
_pumpMatchingViewModel.MatchingModelType = vm.Name.ToString();
|
_pumpMatchingViewModel.MatchingRatedH = vm.RatedHead;
|
_pumpMatchingViewModel.MatchingRatedN = vm.RatedSpeed;
|
_pumpMatchingViewModel.MatchingRatedP = vm.RatedPower;
|
_pumpMatchingViewModel.MatchingRatedQ = vm.RatedFlow;
|
var list = await BLLFactory<HStation.BLL.PhartDiagramRelation>.Instance
|
.GetByObjectTypeAndObjectID(HStation.Assets.DataType.PumpMain, vm.ID);
|
_allPhartList = new List<PhartViewModel>();
|
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, DiagramID = item.DiagramID });
|
}
|
}
|
}
|
this.phartViewModelBindingSource.DataSource = _allPhartList;
|
if (_pumpMatchingViewModel.CurveDbId != null)
|
{
|
for (int i = 0; i < _allPhartList.Count; i++)
|
{
|
if (_allPhartList[i].ID.ToString() == _pumpMatchingViewModel.CurveDbId)
|
{
|
gridView1.FocusedRowHandle = i;
|
}
|
}
|
}
|
this.phartViewModelBindingSource.ResetBindings(false);
|
}
|
|
//曲线列表选择项切换事件
|
private async void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
{
|
var vm = this.gridView1.GetCurrentViewModel(_allPhartList);
|
if (vm != null)
|
{
|
var list = Task.Run(async () => await new BLL.PhartDiagramRelation().GetExByObjectTypeAndObjectID(HStation.Assets.DataType.PumpMain, vm.ID)).Result;
|
if (list != null && list.Count > 0)
|
{
|
var def = list.OrderByDescending(x => x.Importance).First();
|
_pumpMatchingViewModel.MatchingCurveDbId = def.ID.ToString();
|
var diagram = def.Diagram.GetDefaultVmo();
|
var qh = diagram.QH.GetFeatPointList();
|
var qp = diagram.QP.GetFeatPointList();
|
var qe = diagram.QE.GetFeatPointList();
|
_pumpMatchingViewModel.MatchingCurveQH = new List<HydroCurvePointViewModel>();
|
_pumpMatchingViewModel.MatchingCurveQP = new List<HydroCurvePointViewModel>();
|
_pumpMatchingViewModel.MatchingCurveQE = new List<HydroCurvePointViewModel>();
|
foreach (var item in qh)
|
{
|
_pumpMatchingViewModel.MatchingCurveQH.Add(new HydroCurvePointViewModel(item.X, item.Y));
|
}
|
foreach (var item in qp)
|
{
|
_pumpMatchingViewModel.MatchingCurveQP.Add(new HydroCurvePointViewModel(item.X, item.Y));
|
}
|
foreach (var item in qe)
|
{
|
_pumpMatchingViewModel.MatchingCurveQE.Add(new HydroCurvePointViewModel(item.X, item.Y));
|
}
|
}
|
var vmo = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.GetByID(vm.DiagramID);
|
InitChart(vmo);
|
return;
|
}
|
this.pumpChartViewCtrl1.SetBindingData(null, 0);
|
}
|
}
|
}
|