From 2967027410e4131e18c13daf9a80782c3351da4d Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期一, 31 十月 2022 15:45:21 +0800
Subject: [PATCH] 修改 能效单泵 kpi权重效率

---
 Calculation/IStation.EtaCalculation4Custom/base/station/EtaAnalyCalculatorBase4Station.cs |   43 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/Calculation/IStation.EtaCalculation4Custom/base/station/EtaAnalyCalculatorBase4Station.cs b/Calculation/IStation.EtaCalculation4Custom/base/station/EtaAnalyCalculatorBase4Station.cs
index a04a7b9..306f022 100644
--- a/Calculation/IStation.EtaCalculation4Custom/base/station/EtaAnalyCalculatorBase4Station.cs
+++ b/Calculation/IStation.EtaCalculation4Custom/base/station/EtaAnalyCalculatorBase4Station.cs
@@ -138,7 +138,9 @@
             List<double> all_power = new List<double>();
 
             //鐢ㄧ殑鏄车绔欑殑鎬绘暟閲�,
-            result_pipe.InitialRunList(this._allMachineList.Count()); 
+            result_pipe.InitialRunList(this._allMachineList.Count());
+
+            double qhTotal = 0; 
 
             #region  寮�鏈虹姸鎬� 鍜屾暟閲�
             int pump_open_count = 0;
@@ -154,6 +156,7 @@
                     continue;
                 }
 
+
                 var result_pump = pump.AnaResult;
                 if (result_pump == null)
                 {
@@ -162,14 +165,15 @@
                     allPumpPowerOk = false;
                     continue;
                 }
-               
-
-             
+                
                 if (!pump.IsRunIng)
                 {
                     result_pipe.SetPumpStatusByIndex(i, result_pump.HZa, result_pump.RSa);
                     continue;
                 }
+
+
+                bool validQ = false, validH = false;
 
                 result_pipe.PutStationAnalyInfo(result_pump.AnalyInfo, pump.MachineID);
 
@@ -195,6 +199,7 @@
                 else
                 {
                     all_flow.Add(result_pump.Qa.Value);
+                    validQ = true;
                 }
 
                 if (result_pump.IsHaveAnaTag(IStation.Model.EtaBasicRealRecord.InfoTag_Ha) ||
@@ -213,6 +218,12 @@
                 else
                 {
                     all_head.Add(result_pump.Ha.Value);
+                    validH = true;
+                }
+
+                if (validQ && validH)
+                {
+                    qhTotal += result_pump.Qa.Value * result_pump.Ha.Value;
                 }
 
                 if (result_pump.IsHaveAnaTag(IStation.Model.EtaBasicRealRecord.InfoTag_Pa))
@@ -259,11 +270,27 @@
 
                 if (allPumpPowerOk && result_pipe.Ha != null && result_pipe.Pa != null && result_pipe.Qa != null)
                 {
-                    //璁$畻鏁堢巼
-                    double eta = Math.Round(Model.EtaSingleRealRecordPure.Calc_Eta(result_pipe.Qa.Value, result_pipe.Ha.Value, result_pipe.Pa.Value, WaterDensity, g), 1);
-                    result_pipe.Ea = eta;
+                    //璁$畻鏁堢巼 鏃т唬鐮�
+                    //double eta = Math.Round(Model.EtaSingleRealRecordPure.Calc_Eta(result_pipe.Qa.Value, result_pipe.Ha.Value, result_pipe.Pa.Value, WaterDensity, g), 1);
+
+                    double eta = 0;
+                    foreach (var item in all_machine_list)
+                    {
+                        var result = item.AnaResult;
+                        if (result == null)
+                            continue;
+                        if (result.IsHaveAnaTag(IStation.Model.EtaBasicRealRecord.InfoTag_Qa) || result.IsHaveAnaTag(IStation.Model.EtaBasicRealRecord.InfoTag_Ha))
+                            continue;
+                        if (result.Ea.HasValue && result.Qa.HasValue && result.Ha.HasValue)
+                        {
+                            eta += (result.Qa.Value * result.Ha.Value / qhTotal) * result.Ea.Value;
+                        }
+                    }
+                     
+
+                    result_pipe.Ea = Math.Round(eta, 1);
                     result_pipe.UWPa = 0;
-                    result_pipe.WPa = 0;
+                    result_pipe.WPa = 0; 
                     // 妫�鏌ユ晥鐜�
                     if (eta > 98)
                     {//鏈夋椂, 澶ф祦閲忔洸绾块儴鍒�,鏄洸绾夸笉绮剧‘, 閫犳垚Q H鏇茬嚎涓嶇鍚堝疄闄�, 閫犳垚鏁堢巼璁$畻鍑洪棶棰�                 

--
Gitblit v1.9.3