cloudflight
2024-06-10 79fabf74a3fe97f1f2b8ae23e37cc33ba0d53ae2
[fix]修复器具ID对应异常的问题
已修改3个文件
56 ■■■■■ 文件已修改
Hydraulic/Hydro.ConfigModel/LogicPoint.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydraulic/Hydro.MapView/MapViewNetWork.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lib/Hydro.HydraulicHelper.dll 补丁 | 查看 | 原始文档 | blame | 历史
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;
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;
Lib/Hydro.HydraulicHelper.dll
Binary files differ