From 9490957edfc694a0378ee52af47e921b8ac44e7a Mon Sep 17 00:00:00 2001
From: qin <a@163.com>
Date: 星期二, 04 六月 2024 09:12:11 +0800
Subject: [PATCH] 冲突

---
 Hydraulic/Hydro.ConfigModel/GlobalModel.cs |  368 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 285 insertions(+), 83 deletions(-)

diff --git a/Hydraulic/Hydro.ConfigModel/GlobalModel.cs b/Hydraulic/Hydro.ConfigModel/GlobalModel.cs
index 957ee88..11735ba 100644
--- a/Hydraulic/Hydro.ConfigModel/GlobalModel.cs
+++ b/Hydraulic/Hydro.ConfigModel/GlobalModel.cs
@@ -1,5 +1,7 @@
-锘縰sing Hydro.HydraulicModel;
+锘縰sing Hydro.CommonBase;
+using Hydro.HydraulicModel;
 using MetroFramework;
+using System;
 using System.Collections.Generic;
 using System.Drawing;
 
@@ -7,6 +9,29 @@
 {
     public class GlobalModel
     {
+
+
+        //鍒涘缓鏌ヨ缂撳瓨锛屽皢鏌ヨ杩囩殑鍐呭璁板綍鍒扮紦瀛�
+        public static Dictionary<string, dynamic> dict_StringToType
+        {
+            get;
+            set;
+        } = new Dictionary<string, dynamic>();
+        public static Dictionary<string, int> dict_StringToObjType
+        {
+            get;
+            set;
+        } = new Dictionary<string, int>();
+        public static Dictionary<string, bool> dict_StringToisNode
+        {
+            get;
+            set;
+        } = new Dictionary<string, bool>();
+        public static Dictionary<string, int> dict_StringToFuncType
+        {
+            get;
+            set;
+        } = new Dictionary<string, int>();
 
         //public static List<string> Type_LogicalOfPoint = new List<string>() { "鍒濆鏉′欢", "绾︽潫鏉′欢", "璇曠畻鍙傛暟", "鐩爣鍑芥暟", "鍙橀噺" };
         //public static List<MetroColorStyle_Inner> Color_Logical = new List<MetroColorStyle_Inner>() { MetroColorStyle_Inner.Blue, MetroColorStyle_Inner.Pink, MetroColorStyle_Inner.Orange, MetroColorStyle_Inner.Red, MetroColorStyle_Inner.Yellow };
@@ -16,7 +41,32 @@
         //public static List<string> Type_Indicator = new List<string>() { "鍘嬪姏", "鐢ㄦ按閲�", "姘翠綅", "姘存车杞�熸瘮", "闃诲姏绯绘暟", "姘存车鐘舵��" };
 
         //public static List<bool> Type_Indicator_isNode = new List<bool>() { true, true, true, false, false, false };
-        public static List<string> NameList=null;
+        private static HashSet<string> _NameList = null;
+        public static HashSet<string> NameList
+        {
+            get
+            {
+                //if (_NameList!=null) _NameList.Sort();
+                return _NameList;
+            }
+            set
+            {
+                _NameList = value;
+            }
+        }
+        private static HashSet<string> _TagList = null;
+        public static HashSet<string> TagList
+        {
+            get
+            {
+                //if (_TagList != null) _TagList.Sort();
+                return _TagList;
+            }
+            set
+            {
+                _TagList = value;
+            }
+        }
 
 
         public static List<TypeFacilities> DEFINE_FACI = new List<TypeFacilities>() 
@@ -65,225 +115,286 @@
             {
                 Name="宸茬煡鍘嬪姏",
                 isNode=true,
-                EpaType=EPAModelInput.eType.press,
-                isInput=true,
+                Type=HydraulicInputType.press,
+                
                 ObjectNames=new List<string>(){"宸茬煡鍘嬪姏鐐�"},
             },
             new TypeIndicator
             {
                 Name="鑺傜偣鐢ㄦ按閲�",
                 isNode=true,
-                EpaType=EPAModelInput.eType.demand,
-                isInput=true,
+                Type=HydraulicInputType.demand,
+                
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�"},
             },
             new TypeIndicator
             {
                 Name="鑺傜偣鐢ㄦ按妯″紡",
                 isNode=true,
-                EpaType=EPAModelInput.eType.pattern,
-                isInput=true,
+                Type=HydraulicInputType.pattern,
+                
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�"},
             },
             new TypeIndicator
             {
                 Name="姘存睜姘翠綅",
                 isNode=true,
-                EpaType=EPAModelInput.eType.level,
-                isInput=true,
+                Type=HydraulicInputType.level,
+                
                 ObjectNames=new List<string>(){"姘存睜","姘村簱"},
             },
             new TypeIndicator
             {
                 Name="姘存车杞�熸瘮",
                 isNode=false,
-                EpaType=EPAModelInput.eType.initPumpRS,
-                isInput=true,
+                Type=HydraulicInputType.initPumpRS,
+                
                 ObjectNames=new List<string>(){"姘存车"},
             },
             new TypeIndicator
             {
                 Name="绠$嚎闃诲姏绯绘暟",
                 isNode=false,
-                EpaType=EPAModelInput.eType.initSettings,
-                isInput=true,
+                Type=HydraulicInputType.initSettings,
+                
                 ObjectNames=new List<string>(){"绠$嚎"},
             },
             new TypeIndicator
             {
                 Name="闃�闂ㄥ紑搴�",
                 isNode=false,
-                EpaType=EPAModelInput.eType.initSettings,
-                isInput=true,
+                Type=HydraulicInputType.initSettings,
+                
                 ObjectNames=new List<string>(){"闃�闂�"},
             },
             new TypeIndicator
             {
                 Name="姘存车寮�鍏�",
                 isNode=false,
-                EpaType=EPAModelInput.eType.initStatus,
-                isInput=true,
+                Type=HydraulicInputType.initStatus,
+                
                 ObjectNames=new List<string>(){"姘存车"},
             },
             new TypeIndicator
             {
                 Name="闃�闂ㄥ紑鍏�",
                 isNode=false,
-                EpaType=EPAModelInput.eType.initStatus,
-                isInput=true,
+                Type=HydraulicInputType.initStatus,
+                
                 ObjectNames=new List<string>(){"闃�闂�"},
             },
             new TypeIndicator
             {
                 Name="绠$嚎寮�鍏�",
                 isNode=false,
-                EpaType=EPAModelInput.eType.initStatus,
-                isInput=true,
+                Type=HydraulicInputType.initStatus,
+                
                 ObjectNames=new List<string>(){"绠$嚎"},
             },
             new TypeIndicator
             {
                 Name="绠$嚎鐩村緞",
                 isNode=false,
-                EpaType=EPAModelInput.eType.diameter,
-                isInput=true,
+                Type=HydraulicInputType.diameter,
+                
                 ObjectNames=new List<string>(){"绠$嚎"},
             },
             new TypeIndicator
             {
                 Name="绠$嚎闀垮害",
                 isNode=false,
-                EpaType=EPAModelInput.eType.length,
-                isInput=true,
+                Type=HydraulicInputType.length,
+                
                 ObjectNames=new List<string>(){"绠$嚎"},
             },
             new TypeIndicator
             {
                 Name="鎬绘按閲�",
                 isNode=true,
-                EpaType=EPAModelInput.eType.totalDemand,
-                isInput=true,
+                Type=HydraulicInputType.totalDemand,               
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�"},
             },
-            new TypeIndicator
-            {
-                Name="鎬诲垎閰嶆按閲�",
-                isNode=true,
-                EpaType=EPAModelInput.eType.Distribution_TotalDemand,
-                isInput=true,
-                ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�"},
-            },
+            //new TypeIndicator
+            //{
+            //    Name="鎬诲垎閰嶆按閲�",
+            //    isNode=true,
+            //    Type=HydraulicInputType.Distribution_TotalDemand,
+                
+            //    ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�"},
+            //},
             new TypeIndicator
             {
                 Name="鑺傜偣鍘嬪姏",
                 isNode=true,
-                EpaType=EPAModelOutput.eType.HEAD_HEADLOSSS,
+                Type=HydraulicOutputType.Head,
         
-                isInput=false,
+                
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�","姘存睜","姘村簱"},
             },
             new TypeIndicator
             {
                 Name="鑺傜偣鑷敱鍘嬪姏",
                 isNode=true,
-                EpaType=EPAModelOutput.eType.STATUS_PRESSURE,
+                Type=HydraulicOutputType.Pressure,
 
-                isInput=false,
+                
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�","姘存睜","姘村簱"},
             },
             new TypeIndicator
             {
                 Name="鑺傜偣闇�姘撮噺",
                 isNode=true,
-                EpaType=EPAModelOutput.eType.VELOCITY_DEMAND,
+                Type=HydraulicOutputType.Demand,
 
-                isInput=false,
+                
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�","姘存睜","姘村簱"},
             },
             new TypeIndicator
             {
                 Name="鑺傜偣鏍囬珮",
                 isNode=true,
-                EpaType=EPAModelOutput.eType.EN_DIAMETER,
+                Type=HydraulicOutputType.Diameter,
 
-                isInput=false,
+                
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�","姘存睜","姘村簱"},
             },
             new TypeIndicator
             {
                 Name="鑺傜偣姘撮緞",
                 isNode=true,
-                EpaType=EPAModelOutput.eType.QUALITY_SETTINGS,
+                Type=HydraulicOutputType.Quality,
 
-                isInput=false,
+                
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�","姘存睜","姘村簱"},
             },
             new TypeIndicator
             {
                 Name="鑺傜偣姘磋川",
                 isNode=true,
-                EpaType=EPAModelOutput.eType.QUALITY_SETTINGS,
-
-                isInput=false,
+                Type=HydraulicOutputType.Quality,
+                
                 ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�","姘存睜","姘村簱"},
             },
             new TypeIndicator
             {
                 Name="绠$嚎娴侀噺",
                 isNode=false,
-                EpaType=EPAModelOutput.eType.FLOW,
-                isInput=false,
+                Type=HydraulicOutputType.Flow,
+                
                 ObjectNames=new List<string>(){"绠$嚎","闃�闂�","姘存车"},
             },
             new TypeIndicator
             {
                 Name="绠$嚎娴侀��",
                 isNode=false,
-                EpaType=EPAModelOutput.eType.VELOCITY_DEMAND,
-                isInput=false,
+                Type=HydraulicOutputType.Velocity,
+                
                 ObjectNames=new List<string>(){"绠$嚎","闃�闂�","姘存车"},
             },
             new TypeIndicator
             {
                 Name="姘村ご鎹熷け",
                 isNode=false,
-                EpaType=EPAModelOutput.eType.HEAD_HEADLOSSS,
-                isInput=false,
+                Type=HydraulicOutputType.HeadLoss,
+                
                 ObjectNames=new List<string>(){"绠$嚎","闃�闂�","姘存车"},
             },
             new TypeIndicator
             {
                 Name="褰撳墠鐘舵��",
                 isNode=false,
-                EpaType=EPAModelOutput.eType.STATUS_PRESSURE,
-                isInput=false,
+                Type=HydraulicOutputType.Status,
+                
                 ObjectNames=new List<string>(){"绠$嚎","闃�闂�","姘存车"},
             },
             new TypeIndicator
             {
                 Name="姘存车鑳借��",
                 isNode=false,
-                EpaType=EPAModelOutput.eType.ENERGY,
-                isInput=false,
+                Type=HydraulicOutputType.Energy,
+                
                 ObjectNames=new List<string>(){"姘存车"},
             },
             new TypeIndicator
             {
                 Name="姘存车寮�鍏�",
                 isNode=false,
-                EpaType=EPAModelOutput.eType.INITSTATUS,
-                isInput=false,
+                Type=HydraulicOutputType.InitStatus,
+                
                 ObjectNames=new List<string>(){"姘存车"},
             },
             new TypeIndicator
             {
                 Name="姘存车杞�熸瘮",
                 isNode=false,
-                EpaType=EPAModelOutput.eType.QUALITY_SETTINGS,
-                isInput=false,
+                Type=HydraulicOutputType.Settings,
+                
                 ObjectNames=new List<string>(){"姘存车"},
             },
-            
+            new TypeIndicator
+            {
+                Name="鍒濆鍙婅繍琛屼紶鍙�",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"姘存车"},
+            },
+            new TypeIndicator
+            {
+                Name="鍒濆浼犲弬",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"姘存车"},
+            },
+            new TypeIndicator
+            {
+                Name="杩愯浼犲弬",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"姘存车"},
+            },
+            new TypeIndicator
+            {
+                Name="绉嶇兢鐢熸垚鍣�",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"姘存车"},
+            },
+            new TypeIndicator
+            {
+                Name="鏂规绛涢�夊櫒",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"姘存车"},
+            },
+            new TypeIndicator
+            {
+                Name="璁$畻鍓嶅鐞�",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"姘存车"},
+            },
+            new TypeIndicator
+            {
+                Name="缁撴灉澶勭悊",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"姘存车"},
+            },
+            new TypeIndicator
+            {
+                Name="褰撻噺鍒嗛厤",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�"},
+            },
+            new TypeIndicator
+            {
+                Name="闅忔満鍒嗛厤",
+                isNode=true,
+                Type=HydraulicInputType.None,
+                ObjectNames=new List<string>(){"鑺傜偣","姘磋〃","娑堢伀鏍�"},
+            }
+
 
 
         };
@@ -292,80 +403,137 @@
             new TypeObject
             {
                 Name="宸茬煡鍘嬪姏鐐�",
-                EPAObjType=EPAModelOutput.ObjType.EN_RESERVOIR,
+                Type=HydraulicObjectType.EN_RESERVOIR,
                 isNode=true,
             },
             new TypeObject
             {
                 Name="鑺傜偣",
-                EPAObjType=EPAModelOutput.ObjType.EN_JUNCTION,
+                Type=HydraulicObjectType.EN_JUNCTION,
                 isNode=true,
             },
             new TypeObject
             {
                 Name="姘磋〃",
-                EPAObjType=EPAModelOutput.ObjType.EN_JUNCTION,
+                Type=HydraulicObjectType.EN_JUNCTION,
                 isNode=true,
             },
             new TypeObject
             {
                 Name="娑堢伀鏍�",
-                EPAObjType=EPAModelOutput.ObjType.EN_JUNCTION,
+                Type=HydraulicObjectType.EN_JUNCTION,
                 isNode=true,
             },
             new TypeObject
             {
                 Name="姘存睜",
-                EPAObjType=EPAModelOutput.ObjType.EN_TANK,
+                Type=HydraulicObjectType.EN_TANK,
                 isNode=true,
             },
             new TypeObject
             {
                 Name="姘村簱",
-                EPAObjType=EPAModelOutput.ObjType.EN_RESERVOIR,
+                Type=HydraulicObjectType.EN_RESERVOIR,
                 isNode=true,
             },
             new TypeObject
             {
                 Name="姘存车",
-                EPAObjType=EPAModelOutput.ObjType.EN_PUMP,
+                Type=HydraulicObjectType.EN_PUMP,
                 isNode=false,
             },
             new TypeObject
             {
                 Name="绠$嚎",
-                EPAObjType=EPAModelOutput.ObjType.EN_PIPE,
+                Type=HydraulicObjectType.EN_PIPE,
                 isNode=false,
             },
             new TypeObject
             {
                 Name="闃�闂�",
-                EPAObjType=EPAModelOutput.ObjType.EN_GPV,
+                Type=HydraulicObjectType.EN_GPV,
                 isNode=false,
             },
           
         };
-    
 
+
+        public static List<AggregateFunction> DEFIND_AGGFUNC = new List<AggregateFunction>()
+        {
+            //鐢熸垚涓�绯诲垪AggregateFunction锛屽悕绉板垎鍒负锛�"绱鍊�","骞冲潎鍊�","鏈�澶у��","鏈�灏忓��","璁℃暟","缁濆绱鍊�"
+            new AggregateFunction("绱鍊�",(arr)=>
+            {
+                double sum = 0;
+                foreach (var item in arr)
+                {
+                    sum += item;
+                }
+                return sum;
+            }), 
+            new AggregateFunction("骞冲潎鍊�",(arr)=>
+            {
+                double sum = 0;
+                foreach (var item in arr)
+                {
+                    sum += item;
+                }
+                return sum/arr.Length;
+            }),
+            new AggregateFunction("鏈�澶у��",(arr)=>
+            {
+                double max = arr[0];
+                foreach (var item in arr)
+                {
+                    if (item > max) max = item;
+                }
+                return max;
+            }),
+            new AggregateFunction("鏈�灏忓��",(arr)=>
+            {
+                double min = arr[0];
+                foreach (var item in arr)
+                {
+                    if (item < min) min = item;
+                }
+                return min;
+            }),
+            new AggregateFunction("璁℃暟",(arr)=>
+            {
+                return arr.Length;
+            }),
+            new AggregateFunction("缁濆绱鍊�",(arr)=>
+            {
+                double sum = 0;
+                foreach (var item in arr)
+                {
+                    sum += Math.Abs(item);
+                }
+                return sum;
+            }),
+
+
+
+        };
+        public static Dictionary<string, LogicalPointType> dict_LogicPoint = null;
         /// <summary>
         /// 
         /// </summary>
         public static List<LogicalPointType> DEFINE_LOGICPOINT = new List<LogicalPointType>()
         {
-            
+
             new LogicalPointType()
             {
                 Name = "鍒濆鏉′欢",
                 titleStyle = MetroColorStyle_Inner.Blue,
-                IndicatorNames = new List<string>(){ "宸茬煡鍘嬪姏","鑺傜偣鐢ㄦ按閲�", "鑺傜偣鐢ㄦ按妯″紡", "姘存睜姘翠綅","姘存车杞�熸瘮","绠$嚎闃诲姏绯绘暟","闃�闂ㄥ紑搴�","姘存车寮�鍏�","闃�闂ㄥ紑鍏�","绠$嚎寮�鍏�","绠$嚎鐩村緞","绠$嚎闀垮害" },
-                Type_expression= new List<string>() { "鍩哄噯鍊�(鐣岄潰)",  "鍩哄噯鍊�(鎺ュ彛)", "妯″紡绯绘暟(鐣岄潰)", "妯″紡绯绘暟(鎺ュ彛)", "瀹氫箟鍊�"},
+                IndicatorNames = new List<string>(){ "宸茬煡鍘嬪姏","鑺傜偣鐢ㄦ按閲�", "鑺傜偣鐢ㄦ按妯″紡", "姘存睜姘翠綅", "鎬绘按閲�", "姘存车杞�熸瘮","绠$嚎闃诲姏绯绘暟","闃�闂ㄥ紑搴�","姘存车寮�鍏�","闃�闂ㄥ紑鍏�","绠$嚎寮�鍏�","绠$嚎鐩村緞","绠$嚎闀垮害" },
+                Type_expression= new List<string>() { "鍩哄噯鍊�(鐣岄潰)",  "鍩哄噯鍊�(鎺ュ彛)", "妯″紡绯绘暟(鐣岄潰)", "妯″紡绯绘暟(鎺ュ彛)"},
             },
             new LogicalPointType()
             {
                 Name = "涓嬮樁娈垫潯浠�",
                 titleStyle = MetroColorStyle_Inner.Blue,
                 IndicatorNames = new List<string>(){ "宸茬煡鍘嬪姏","鑺傜偣鐢ㄦ按閲�", "鑺傜偣鐢ㄦ按妯″紡", "姘存睜姘翠綅","姘存车杞�熸瘮","绠$嚎闃诲姏绯绘暟","闃�闂ㄥ紑搴�","姘存车寮�鍏�","闃�闂ㄥ紑鍏�","绠$嚎寮�鍏�","绠$嚎鐩村緞","绠$嚎闀垮害","鎬绘按閲�" },
-                Type_expression= new List<string>() { "鍩哄噯鍊�(鐣岄潰)",  "鍩哄噯鍊�(鎺ュ彛)", "妯″紡绯绘暟(鐣岄潰)", "妯″紡绯绘暟(鎺ュ彛)", "瀹氫箟鍊�"},
+                Type_expression= new List<string>() { "鍩哄噯鍊�(鐣岄潰)",  "鍩哄噯鍊�(鎺ュ彛)", "妯″紡绯绘暟(鐣岄潰)", "妯″紡绯绘暟(鎺ュ彛)"},
             },
             new LogicalPointType()
             {
@@ -378,7 +546,7 @@
             {
                 Name = "姘撮噺鍒嗛厤",
                 titleStyle = MetroColorStyle_Inner.DarkGreen,
-                IndicatorNames = new List<string>(){ "褰撻噺鍒嗛厤" ,"闅忔満鍒嗛厤","鎬绘按閲�","鎬诲垎閰嶆按閲�"},
+                IndicatorNames = new List<string>(){ "褰撻噺鍒嗛厤" ,"闅忔満鍒嗛厤","鎬绘按閲�"},//,"鎬诲垎閰嶆按閲�"
                 Type_expression= new List<string>() { "鍩哄噯鍊�(鐣岄潰)", "鍩哄噯鍊�(鎺ュ彛)", "妯″紡绯绘暟(鐣岄潰)", "妯″紡绯绘暟(鎺ュ彛)" },
             },
             new LogicalPointType()
@@ -407,7 +575,7 @@
                 Name = "鍙橀噺",
                 titleStyle = MetroColorStyle_Inner.Green_Content,
                 IndicatorNames = new List<string>(){ "鑺傜偣鍘嬪姏","鑺傜偣鑷敱鍘嬪姏", "鑺傜偣闇�姘撮噺","鑺傜偣鏍囬珮","鑺傜偣姘磋川", "绠$嚎娴侀噺", "绠$嚎娴侀��","姘村ご鎹熷け","绠$嚎鐘舵��", "姘存车鑳借��" ,"姘存车寮�鍏�","姘存车杞�熸瘮"},
-                Type_expression= new List<string>() { "璁$畻鍊�","鍙樺寲鍊�","鍒濆璁$畻鍊�","鍩哄噯鍊�(鐣岄潰)","鍩哄噯鍊�(鎺ュ彛)", "妯″紡绯绘暟(鐣岄潰)", "妯″紡绯绘暟(鎺ュ彛)", "瀹氫箟鍊�","瀛愭柟妗堝��"},
+                Type_expression= new List<string>() { "璁$畻鍊�","鍙樺寲鍊�","鍒濆璁$畻鍊�","鍩哄噯鍊�(鐣岄潰)","鍩哄噯鍊�(鎺ュ彛)", "妯″紡绯绘暟(鐣岄潰)", "妯″紡绯绘暟(鎺ュ彛)", "瀛愭柟妗堝��"},
             },
             new LogicalPointType()
             {
@@ -422,9 +590,24 @@
                 titleStyle = MetroColorStyle_Inner.Yellow_Content,
                 //IndicatorNames = new List<string>(){ "宸茬煡鍘嬪姏","鑺傜偣鐢ㄦ按閲�", "姘存睜姘翠綅","姘存车杞�熸瘮","绠$嚎闃诲姏绯绘暟","闃�闂ㄥ紑搴�","姘存车寮�鍏�","闃�闂ㄥ紑鍏�","绠$嚎寮�鍏�","绠$嚎鐩村緞","绠$嚎闀垮害","[-----杈撳嚭-----]","鑺傜偣鍘嬪姏", "鑺傜偣鑷敱鍘嬪姏", "鑺傜偣闇�姘撮噺", "绠$嚎娴侀噺", "绠$嚎娴侀��", "姘存车鑳借��","姘存车寮�鍏�","姘存车杞�熸瘮" },
                 IndicatorNames = new List<string>(){  "鑺傜偣鍘嬪姏","鑺傜偣鑷敱鍘嬪姏", "鑺傜偣闇�姘撮噺", "鑺傜偣鏍囬珮", "鑺傜偣姘磋川", "绠$嚎娴侀噺", "绠$嚎娴侀��","姘村ご鎹熷け","绠$嚎鐘舵��", "姘存车鑳借��" ,"姘存车寮�鍏�","姘存车杞�熸瘮" },
-                Type_expression= new List<string>() { "鏈�澶у��","鏈�灏忓��","骞冲潎鍊�","绱鍊�","璁℃暟"},
+                //Type_expression= new List<string>() { "鏈�澶у��","鏈�灏忓��","骞冲潎鍊�","绱鍊�","璁℃暟"},
+                Type_expression= new List<string>(){ "闆嗗悎璁$畻"},
             },            
         };
+    }
+    
+
+    public class AggregateFunction
+    {
+        //鐢熸垚鏋勯�犲嚱鏁�
+        public AggregateFunction(string Name, Func<double[], double> CalcFunc)
+        {
+            this.Name = Name;
+            this.CalcFunc = CalcFunc;
+        }
+        public string Name;
+        public string Description;
+        public Func<double[],double> CalcFunc;
     }
     public class LogicalPointType
     {
@@ -441,7 +624,26 @@
         /// true:鑺傜偣;false:绠$嚎
         /// </summary>
         public bool isNode;
-        public dynamic EpaType;
+        private HydraulicInputType _inType= HydraulicInputType.None;
+        private HydraulicOutputType _outType = HydraulicOutputType.None;
+        public dynamic Type 
+        { 
+            get
+            {
+                if(_outType==HydraulicOutputType.None)
+                    return _inType;
+                else
+                    return _outType;
+                //if (isInput) return _inType;
+                //else return _outType;
+            }
+            set
+            {
+                if (value is HydraulicInputType) _inType = value;
+                else _outType = value;  
+            }
+        }
+
         public dynamic EpaResultType;
         public List<string> ObjectNames;
         /// <summary>
@@ -454,7 +656,7 @@
     {
         public string Name;
         public bool isNode;
-        public EPAModelOutput.ObjType EPAObjType=EPAModelOutput.ObjType.EN_CVPIPE;
+        public HydraulicObjectType Type=HydraulicObjectType.EN_CVPIPE;
 
     }
     public class TypeFacilities

--
Gitblit v1.9.3