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