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