From 1e387f457092df846ec04e2c6792b83244aae04e Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期六, 07 十二月 2024 12:09:23 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs |   76 +++++++++++++++++++++++++++----------
 1 files changed, 55 insertions(+), 21 deletions(-)

diff --git a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs
index 883999a..e283041 100644
--- a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs
+++ b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs
@@ -27,26 +27,6 @@
                 return false;
             }).ToList();
 
-            //璁$畻杩欎簺鑺傜偣鐨勫娍鑳斤紝鍔胯兘璁$畻鍏紡涓猴細鍔胯兘=闇�姘撮噺*鑺傜偣姘村ご
-            
-            foreach (var node in negativeDemandNodes)
-            {
-                if (node is Node n)
-                {
-                    double energyInW = GetEnergyPowerByQH(Math.Abs(dictNodes[n.Id].Demand), dictNodes[n.Id].Head);
-                    var energyPoint = new EnergyPoint
-                    {
-                        Id = n.Id,
-                        EnergyType = eEnergyType.Input,
-                        EnergyPower = energyInW,
-                       
-                    };
-                    points.Add(energyPoint);
-                    result.InputEnergy.Add(n.Id,new List<EnergyPoint> { energyPoint });
-                    result.InputTotalEnerge += energyInW;
-                }
-            }
-
             //鎵惧埌绠$綉涓渶姘撮噺涓烘鐨勮妭鐐�
             var positiveDemandNodes = network.GetAllNodes().Where(n =>
             {
@@ -57,13 +37,67 @@
                 return false;
             }).ToList();
 
+            double minElev = 99999999;
+
+            List<Node> DemandNodes=new List<Node>();
+            DemandNodes.AddRange(negativeDemandNodes);
+            DemandNodes.AddRange(positiveDemandNodes);
+            foreach (var node in DemandNodes)
+            {
+                if (node is Junction n)
+                {
+                    if (n.Elev < minElev)
+                    {
+                        minElev = n.Elev;
+                    }
+                }
+                else if (node is Tank t)
+                {
+                    if (t.PoolElev < minElev)
+                    {
+                        minElev = t.PoolElev;
+                    }
+                }
+                else if (node is Reservoir r)
+                {
+                    var elev = r.PoolElev == null ? 0 : (double)r.PoolElev;
+                    if (elev < minElev)
+                    {
+                        minElev = elev;
+                    }
+                }
+            }
+
+
+
+
+
+            //璁$畻杩欎簺鑺傜偣鐨勫娍鑳斤紝鍔胯兘璁$畻鍏紡涓猴細鍔胯兘=闇�姘撮噺*鑺傜偣姘村ご
+
+            foreach (var node in negativeDemandNodes)
+            {
+                if (node is Node n)
+                {
+                    double energyInW = GetEnergyPowerByQH(Math.Abs(dictNodes[n.Id].Demand), dictNodes[n.Id].Head- minElev);
+                    var energyPoint = new EnergyPoint
+                    {
+                        Id = n.Id,
+                        EnergyType = eEnergyType.Input,
+                        EnergyPower = energyInW,
+
+                    };
+                    points.Add(energyPoint);
+                    result.InputEnergy.Add(n.Id, new List<EnergyPoint> { energyPoint });
+                    result.InputTotalEnerge += energyInW;
+                }
+            }
 
 
             foreach (var node in positiveDemandNodes)
             {
                 if (node is Node n)
                 {
-                    double energyInW =  GetEnergyPowerByQH(Math.Abs(dictNodes[n.Id].Demand), dictNodes[n.Id].Head);
+                    double energyInW =  GetEnergyPowerByQH(Math.Abs(dictNodes[n.Id].Demand), dictNodes[n.Id].Head- minElev);
                     var energyPoint = new EnergyPoint
                     {
                         Id = n.Id,

--
Gitblit v1.9.3