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)}%"; } } } }