using DevExpress.XtraBars;
|
using System.Data;
|
|
namespace HStation.WinFrmUI
|
{
|
public partial class SimulationPumpSingleMatchingDlg : DevExpress.XtraBars.Ribbon.RibbonForm
|
{
|
public SimulationPumpSingleMatchingDlg()
|
{
|
InitializeComponent();
|
this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
|
this.gridViewPumpMain.SetNormalView();
|
this.gridViewCurve.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 long DiagramID { get; set; }
|
}
|
|
private HydroPumpMatchingViewModel _pump_matching_vm = null;
|
private List<PumpSingleMatchingViewModel> _pump_mian_vm_list = null;
|
private List<PhartViewModel> _phart_vm_list = null;
|
private Vmo.AssetsPumpMainVmo _pumpVmo;
|
|
private readonly Lazy<BLL.AssetsPumpMain> _pump_main_bll = new();
|
private readonly Lazy<BLL.PhartDiagramRelation> _phart_ex_bll = new();
|
|
public event Action<HydroPumpMatchingViewModel> ReloadDataEvent;
|
|
public async void SetBindingData(HydroPumpMatchingViewModel pump_matching_vm)
|
{
|
_pump_matching_vm = pump_matching_vm;
|
_pump_mian_vm_list = new List<PumpSingleMatchingViewModel>();
|
|
int sel_index = 0;
|
var pump_main_list = await _pump_main_bll.Value.GetAll();
|
if (pump_main_list != null && pump_main_list.Any())
|
{
|
for (int i = 0; i < pump_main_list.Count; i++)
|
{
|
var item = pump_main_list[i];
|
var vm = new PumpSingleMatchingViewModel(item);
|
_pump_mian_vm_list.Add(vm);
|
if (pump_matching_vm.DbId != null)
|
{
|
if (vm.ID.ToString() == pump_matching_vm.DbId.ToString())
|
{
|
sel_index = i;
|
}
|
}
|
}
|
}
|
|
this.gridControlPumpMain.DataSource = _pump_mian_vm_list;
|
this.gridViewPumpMain.BestFitColumns();
|
this.gridViewPumpMain.FocusedRowHandle = sel_index;
|
// this.gridControlPumpMain.RefreshDataSource();
|
}
|
|
private void barBtnOK_ItemClick(object sender, ItemClickEventArgs e)
|
{
|
var pump_mian = this.gridViewPumpMain.GetCurrentViewModel(_pump_mian_vm_list);
|
if (pump_mian == null)
|
{
|
TipFormHelper.ShowError("泵型号为空");
|
return;
|
}
|
var phart = this.gridViewCurve.GetCurrentViewModel(_phart_vm_list);
|
if (phart == null)
|
{
|
TipFormHelper.ShowError("泵型号曲线为空");
|
return;
|
}
|
|
_pump_matching_vm.MatchingDbId = pump_mian.ID.ToString();
|
_pump_matching_vm.MatchingModelType = pump_mian.Name.ToString();
|
_pump_matching_vm.MatchingRatedH = pump_mian.RatedHead;
|
_pump_matching_vm.MatchingRatedN = pump_mian.RatedSpeed;
|
_pump_matching_vm.MatchingRatedP = pump_mian.RatedPower;
|
_pump_matching_vm.MatchingRatedQ = pump_mian.RatedFlow;
|
this.ReloadDataEvent?.Invoke(_pump_matching_vm);
|
this.Close();
|
}
|
|
private async void gridViewPumpMain_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
{
|
_phart_vm_list = new List<PhartViewModel>();
|
var pump_main = this.gridViewPumpMain.GetCurrentViewModel(_pump_mian_vm_list);
|
if (pump_main != null)
|
{
|
var vmo = await new BLL.AssetsPumpMain().GetByID(pump_main.ID);
|
_pumpVmo = vmo;
|
var phart_list = await _phart_ex_bll.Value.GetByObjectTypeAndObjectID(HStation.Assets.DataType.PumpMain, pump_main.ID);
|
if (phart_list != null && phart_list.Any())
|
{
|
foreach (var item in phart_list)
|
{
|
var vm = new PhartViewModel();
|
vm.ID = item.ID;
|
vm.OtherName = item.OtherName;
|
vm.Importance = item.Importance;
|
vm.SortCode = item.SortCode;
|
// vm.Diagram = item.Diagram;
|
vm.DiagramID = item.DiagramID;
|
_phart_vm_list.Add(vm);
|
}
|
}
|
}
|
this.phartViewModelBindingSource.DataSource = _phart_vm_list;
|
//this.gridControlCurve.DataSource = _phart_vm_list;
|
//this.gridViewCurve.RefreshData();
|
this.phartViewModelBindingSource.ResetBindings(false);
|
//this.gridViewCurve.FocusInvalidRow();
|
gridViewCurve_FocusedRowChanged(null, null);
|
}
|
|
private async void gridViewCurve_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
|
{
|
var phart = this.gridViewCurve.GetCurrentViewModel(_phart_vm_list);
|
if (phart == null)
|
{
|
//TipFormHelper.ShowWarn("无曲线");
|
//this.pumpChartViewCtrl1.SetBindingData(null, 0);
|
this.pumpChartViewCtrl1.ClearBindingData();
|
return;
|
}
|
var list = Task.Run(async () => await new BLL.PhartDiagramRelation().GetExByObjectTypeAndObjectID(HStation.Assets.DataType.PumpMain, _pumpVmo.ID)).Result;
|
if (list != null && list.Count > 0)
|
{
|
var def = list.OrderByDescending(x => x.Importance).First();
|
_pump_matching_vm.MatchingCurveDbId = def.ID.ToString();
|
var diagram = def.Diagram.GetDefaultVmo();
|
var qh = diagram.QH.GetFeatPointList();
|
var qp = diagram.QP.GetFeatPointList();
|
var qe = diagram.QE.GetFeatPointList();
|
_pump_matching_vm.MatchingCurveQH = new List<HydroCurvePointViewModel>();
|
_pump_matching_vm.MatchingCurveQP = new List<HydroCurvePointViewModel>();
|
_pump_matching_vm.MatchingCurveQE = new List<HydroCurvePointViewModel>();
|
foreach (var item in qh)
|
{
|
_pump_matching_vm.MatchingCurveQH.Add(new HydroCurvePointViewModel(item.X, item.Y));
|
}
|
foreach (var item in qp)
|
{
|
_pump_matching_vm.MatchingCurveQP.Add(new HydroCurvePointViewModel(item.X, item.Y));
|
}
|
foreach (var item in qe)
|
{
|
_pump_matching_vm.MatchingCurveQE.Add(new HydroCurvePointViewModel(item.X, item.Y));
|
}
|
}
|
var vmo = await BLLFactory<Yw.BLL.PhartDiagramExtensions>.Instance.GetByID(phart.DiagramID);
|
this.pumpChartViewCtrl1.SetBindingData(vmo, _pumpVmo.RatedSpeed);
|
}
|
}
|
}
|