From 02c14c9c57dbde72d9c771bd8b0fab1cd023047d Mon Sep 17 00:00:00 2001
From: cloudflight <cloudflight@126.com>
Date: 星期一, 13 一月 2025 09:09:22 +0800
Subject: [PATCH] 上下游纵断面分析

---
 Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs
index 9023953..3ae7f4f 100644
--- a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs
+++ b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs
@@ -178,12 +178,16 @@
         /// <param name="network"></param>
         /// <param name="startJunc"></param>
         /// <returns></returns>
-        public static List<Link> AnalyzeUpstreamPath(this Network network, Junction startJunc, CalcuResult calcuResult)
+        public static List<Link> AnalyzeUpstreamPath(this Network network, Node startJunc, CalcuResult calcuResult)
         {
             var dictLinks = calcuResult.LinkList.ToDictionary(p => p.Id);
             var dictNodes = calcuResult.NodeList.ToDictionary(p => p.Id);
             var visitedNodes = new HashSet<Node>();
-            var maxlink = startJunc.GetPrevLinks(calcuResult.LinkList).OrderByDescending(o => Math.Abs(dictLinks[o.Id].Flow)).ToList()[0];
+            visitedNodes.Add(startJunc);
+            var prevLinks = startJunc.GetPrevLinks(calcuResult.LinkList);
+            if (prevLinks == null || prevLinks.Count <= 0) return prevLinks;
+
+            var maxlink = prevLinks.OrderByDescending(o => Math.Abs(dictLinks[o.Id].Flow)).ToList()[0];
             return network.TraversePipeNetworkALL(maxlink, visitedNodes, -1, true, calcuResult);
         }
         /// <summary>
@@ -249,6 +253,10 @@
                 }
 
             }
+            if (direction <0)
+            {
+                _links涓昏璺緞.Reverse();
+            }
             return _links涓昏璺緞;
 
 

--
Gitblit v1.9.3