From 79fabf74a3fe97f1f2b8ae23e37cc33ba0d53ae2 Mon Sep 17 00:00:00 2001
From: cloudflight <cloudflight@126.com>
Date: 星期一, 10 六月 2024 22:25:49 +0800
Subject: [PATCH] [fix]修复器具ID对应异常的问题

---
 Hydraulic/Hydro.ConfigModel/LogicPoint.cs |    5 +++++
 Lib/Hydro.HydraulicHelper.dll             |    0 
 Hydraulic/Hydro.MapView/MapViewNetWork.cs |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/Hydraulic/Hydro.ConfigModel/LogicPoint.cs b/Hydraulic/Hydro.ConfigModel/LogicPoint.cs
index fb24030..5f23780 100644
--- a/Hydraulic/Hydro.ConfigModel/LogicPoint.cs
+++ b/Hydraulic/Hydro.ConfigModel/LogicPoint.cs
@@ -235,6 +235,11 @@
             get
             {
                 if (ExpressionType == null) return null;
+                if (ExpressionType=="闆嗗悎璁$畻")
+                {
+                    return ExpressionType + "锛�" + accurary;
+                }
+                else
                 if (ExpressionType.IndexOf("鎺ュ彛") >= 0 )
                 {
                     return ExpressionType + " " + Expression;
diff --git a/Hydraulic/Hydro.MapView/MapViewNetWork.cs b/Hydraulic/Hydro.MapView/MapViewNetWork.cs
index 2db7e47..ec851d7 100644
--- a/Hydraulic/Hydro.MapView/MapViewNetWork.cs
+++ b/Hydraulic/Hydro.MapView/MapViewNetWork.cs
@@ -1007,6 +1007,57 @@
             //return new List<TimePoint>();
         }
 
+        public List<TimePoint> CalcByValAndHead(WDNModelOptimizer wdo, Result val,double Head)
+        {
+
+            WdnmoParam wdnmoParam = new WdnmoParam();
+
+
+            Nodes.ForEach(n =>
+            {
+                //if (n is JunctionViewModel || n is MeterViewModel || n is NozzleViewModel)
+                {
+                    wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Press_{n.ID}" });
+                    wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Head_{n.ID}" });
+                    wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Demand_{n.ID}" });
+                }
+            });
+            Links.ForEach(n =>
+            {
+                //if (n is PipeViewModel || n is PumpViewModel || n is ValveViewModel)
+                {
+                    wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Flow_{n.ID}" });
+                    wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Velocity_{n.ID}" });
+                    wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Headloss_{n.ID}" });
+
+                }
+            });
+            calcParam calcParam = new calcParam();
+            calcParam.vars = val.arrayTryValue;
+            calcParam.setVars = new List<SetVar>();
+            reservoirs.ForEach(r =>
+            {
+                calcParam.setVars.Add(new SetVar(r.ID, true, (int)EpanetEnum.NodeValueType.姘存睜姘翠綅, (float)Head));
+            });
+
+            wdnmoParam = wdo.CalcbyResult(calcParam, wdnmoParam);
+            var list = wdnmoParam.ResultPoints;
+            if (list == null) return list;
+            list.Sort((a, b) => string.Compare(a.Key, b.Key));
+            Nodes.Sort((a, b) => string.Compare(a.ID, b.ID));
+            Links.Sort((a, b) => string.Compare(a.ID, b.ID));
+            SetNodeFromWparam(this, list, "Press");
+            SetNodeFromWparam(this, list, "Head");
+            SetNodeFromWparam(this, list, "Demand");
+
+            SetLinkFromWparam(this, list, "Flow");
+            SetLinkFromWparam(this, list, "Velocity");
+            SetLinkFromWparam(this, list, "Headloss");
+            this._isCalculated = true;
+            return list;
+            //return new List<TimePoint>();
+        }
+
         private void SetNodeFromWparam(MapViewNetWork net, List<TimePoint> list, string valueType)
         {
             int k1 = 0;
diff --git a/Lib/Hydro.HydraulicHelper.dll b/Lib/Hydro.HydraulicHelper.dll
index 165e609..df279aa 100644
--- a/Lib/Hydro.HydraulicHelper.dll
+++ b/Lib/Hydro.HydraulicHelper.dll
Binary files differ

--
Gitblit v1.9.3