namespace Yw.WinFrmUI
{
public partial class HydroEnergyTotalHorizViewCtrl : DevExpress.XtraEditors.XtraUserControl
{
public HydroEnergyTotalHorizViewCtrl()
{
InitializeComponent();
this.layoutControl1.SetupLayoutControl();
}
///
/// 绑定数据
///
public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult)
{
if (hydroInfo == null)
{
return;
}
if (calcuResult == null)
{
return;
}
if (!calcuResult.Succeed)
{
return;
}
var allCalcuResultVisualDict = calcuResult.GetVisualDict();
SetBindingData(hydroInfo, allCalcuResultVisualDict);
}
///
/// 绑定数据
///
public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Dictionary allCalcuResultVisualDict)
{
if (hydroInfo == null)
{
return;
}
if (allCalcuResultVisualDict == null || allCalcuResultVisualDict.Count < 1)
{
return;
}
double? totalQ = null;
double? totalP = null;
var allEfficiList = new List();
if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0)
{
foreach (var pump in hydroInfo.Pumps)
{
if (!allCalcuResultVisualDict.ContainsKey(pump.Code))
{
continue;
}
var calcuResult = allCalcuResultVisualDict[pump.Code] as HydroCalcuPumpResult;
if (calcuResult == null)
{
continue;
}
if (pump.LinkStatus == Yw.Hydro.PumpStatus.Open)
{
if (calcuResult.CalcuQ.HasValue)
{
if (!totalQ.HasValue)
{
totalQ = 0;
}
totalQ += calcuResult.CalcuQ.Value;
}
if (calcuResult.CalcuP.HasValue)
{
if (!totalP.HasValue)
{
totalP = 0;
}
totalP += calcuResult.CalcuP.Value;
}
if (calcuResult.CalcuE.HasValue)
{
allEfficiList.Add(calcuResult.CalcuE.Value);
}
}
}
}
if (totalQ.HasValue)
{
this.txtQ.EditValue = $"{Math.Round(totalQ.Value, 1)}m³/h";
}
if (totalP.HasValue)
{
this.txtP.EditValue = $"{Math.Round(totalP.Value, 1)}kW";
}
if (allEfficiList.Count > 0)
{
this.txtE.EditValue = $"{Math.Round(allEfficiList.Average(), 1)}%";
}
}
}
}