From 467578cbe7f027c14ceba0aed16fb827b94e2c65 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期五, 07 三月 2025 09:41:58 +0800 Subject: [PATCH] pbs-为登录静态类赋值 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs | 167 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 126 insertions(+), 41 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs index 324f56e..04eddc2 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs @@ -1,4 +1,8 @@ -锘縩amespace HStation.WinFrmUI +锘縰sing DevExpress.CodeParser; +using System.Text.Json; +using Yw.Ahart; + +namespace HStation.WinFrmUI { public class AssetsMatchingHelper { @@ -111,7 +115,7 @@ } } - //鍠峰ご鍖归厤 + //鍐峰嵈濉斿尮閰� foreach (var item in assetsAutoMatchingView.Coolings) { if (Matching(item, allCoolingMain)) @@ -384,7 +388,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000;//涓存椂淇敼,涔嬪墠涓�1 foreach (var item in valveMainVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -413,39 +417,51 @@ { input.MatchingMinorLoss = valve.MinorLoss; } - if (input.ValveSetting == null) - { - input.MatchingValveSetting = valve.ValveSetting; - } if (input.CurveDbId == null) { - /* var list = Task.Run(async () => - await new BLL.PhartDiagramRelation().GetExByObjectTypeAndObjectID(HStation.Assets.DataType.ValveMain, valve.ID)).Result; - if (list != null && list.Count > 0) + var list = Task.Run(async () => + await new BLL.PhartDiagramRelation().GetExByObjectTypeAndObjectID(HStation.Assets.DataType.ValveMain, valve.ID)).Result; + if (list != null && list.Count > 0) + { + var def = list.OrderByDescending(x => x.Importance).First(); + input.MatchingCurveDbId = def.ID.ToString(); + //var curve = def.Diagram.GraphList[0].GetFeatPointList(); + //var curve1 = def.Diagram.GraphList[1].GetFeatPointList(); + //input.MatchingCurveQL = new List<HydroCurvePointViewModel>(); + /* foreach (var item in curve) + { + input.MatchingCurveQL.Add(new HydroCurvePointViewModel(item.X, item.Y)); + }*/ + + input.MatchingCurveOL = new List<HydroCurvePointViewModel>(); + input.MatchingCurvesQL = new List<HydroFactorCurveViewModel>(); + for (int i = 0; i < def.Diagram.GraphList.Count; i++) { - var def = list.OrderByDescending(x => x.Importance).First(); - input.MatchingCurveDbId = def.ID.ToString(); - var curve = def.Diagram.GraphList[0].GetFeatPointList(); - if (valve.ValveType == HStation.Assets.eValveType.GPV) + var curve = def.Diagram.GraphList[i].GetFeatPointList(); + if (def.Diagram.GraphList[i].GraphType == 11) { - input.MatchingCurveQL = new List<HydroCurvePointViewModel>(); + var opening = Yw.WinFrmUI.PhartGraphHelper.GetGraphParas<Yw.WinFrmUI.Phart.QLGraphParasViewModel>((Yw.Ahart.eCurveType)def.Diagram.GraphList[i].GraphType, def.Diagram.GraphList[i].GraphParas); + var model = new HydroFactorCurveViewModel(); + model.CurveFactor = opening.Opening ?? 0; + model.CurveData = new List<HydroCurvePointViewModel>(); foreach (var item in curve) { - input.MatchingCurveQL.Add(new HydroCurvePointViewModel(item.X, item.Y)); + model.CurveData.Add(new HydroCurvePointViewModel(item.X, item.Y)); } + input.MatchingCurvesQL.Add(model); } - else if (valve.ValveType == HStation.Assets.eValveType.TCV) + else if (def.Diagram.GraphList[i].GraphType == 12) { - input.MatchingCurveOL = new List<HydroCurvePointViewModel>(); foreach (var item in curve) { input.MatchingCurveOL.Add(new HydroCurvePointViewModel(item.X, item.Y)); } } - }*/ + } + } + return true; } - - return true; + return false; } //绠¢亾鍖归厤 @@ -532,7 +548,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in pipeLineMainVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -647,7 +663,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in threelinkVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -770,7 +786,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in fourLinkVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -888,7 +904,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in sprinklerVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -1006,7 +1022,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in allExchangerList) { if (item.Flags != null && item.Flags.Count > 0) @@ -1145,7 +1161,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in allCompressorList) { if (item.Flags != null && item.Flags.Count > 0) @@ -1284,7 +1300,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in bluntheadVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -1369,7 +1385,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in tankVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -1475,7 +1491,7 @@ } //鏍囩 - int flagWeight = 10; + int flagWeight = 1000; foreach (var item in allMeterList) { if (item.Flags != null && item.Flags.Count > 0) @@ -1552,7 +1568,7 @@ } //鏍囩 - int flagWeight = 10; + int flagWeight = 1000; foreach (var item in allFlowmeterList) { if (item.Flags != null && item.Flags.Count > 0) @@ -1662,7 +1678,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in hydrantVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -1710,7 +1726,7 @@ { return false; } - + allElbowList = allElbowList.Where(x => x.Angle == 90).ToList(); //鏉冮噸瀛楀吀 var dict = new Dictionary<AssetsElbowMainVmo, double>(); foreach (var item in allElbowList) @@ -1731,7 +1747,40 @@ } } } - + //鍙e緞 + int caliberWeight = 1; + if (input.Caliber > 0) + { + foreach (var item in allElbowList) + { + if (item.Caliber.HasValue) + { + var diff = Math.Abs(item.Caliber.Value - input.Caliber); + dict[item] += diff / input.Caliber * 100 * caliberWeight; + } + } + } + // 瑙掑害 + int angleWeight = 1000; + if (input.BendingAngle > 0) + { + foreach (var item in allElbowList) + { + if (item.Angle > 0) + { + var count = Math.Abs(item.Angle.Value - input.BendingAngle); + if (count != 0) + { + dict[item] += (1.0 / count) * angleWeight; + } + else + { + // 濡傛灉 count 涓� 0锛岃〃绀哄畬鍏ㄥ尮閰嶏紝缁欎簣鏈�澶ф潈閲� + dict[item] += angleWeight * 100; + } + } + } + } // 鍏抽敭瀛� int keywordWeight = 1; foreach (var item in allElbowList) @@ -1747,7 +1796,7 @@ } //鏍囩 - int flagWeight = 10; + int flagWeight = 1000; foreach (var item in allElbowList) { if (item.Flags != null && item.Flags.Count > 0) @@ -1773,7 +1822,10 @@ { input.MatchingBendingAngle = elbow.Angle; } - input.MatchingElbowType = (Yw.WinFrmUI.eElbowType)(int)elbow.ElbowType; + if (elbow.ElbowType != null) + { + input.MatchingElbowType = (Yw.WinFrmUI.eElbowType)(int)elbow.ElbowType; + } if (input.Material == null || input.Material == string.Empty) { input.MatchingMaterial = elbow.Material; @@ -1789,6 +1841,7 @@ public static bool Matching(HydroPressmeterMatchingViewModel input, List<AssetsPressmeterMainVmo> pressmeterVmos) { //杈撳叆鍙傛暟楠岃瘉 + if (input == null) { return false; @@ -1836,7 +1889,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in pressmeterVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -1898,6 +1951,37 @@ } } + // 涓婃父鍜屼笅娓哥洿寰� + int diameterWeight = 100; + if (input.StartDiameter > 0 && input.EndDiameter > 0) + { + foreach (var item in translationVmos) + { + if (item.StartDiameter > 0 && item.EndDiameter > 0) + { + var startCount = Math.Abs(item.StartDiameter - input.StartDiameter); + var endCount = Math.Abs(item.EndDiameter - input.EndDiameter); + + if (startCount == 0 && endCount == 0) + { + // 濡傛灉 startCount 鍜� endCount 閮戒负 0锛岃〃绀哄畬鍏ㄥ尮閰嶏紝缁欎簣鏈�澶ф潈閲� + dict[item] += diameterWeight * 100; + } + else + { + // 鍚﹀垯锛屽垎鍒绠楁潈閲� + if (startCount != 0) + { + dict[item] += (1.0 / startCount) * diameterWeight; + } + if (endCount != 0) + { + dict[item] += (1.0 / endCount) * diameterWeight; + } + } + } + } + } //鏉愯川 int materialWeight = 5; if (!string.IsNullOrEmpty(input.Material)) @@ -1932,7 +2016,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in translationVmos) { if (item.Flags != null && item.Flags.Count > 0) @@ -1954,11 +2038,11 @@ { input.MatchingMaterial = translation.Material; } - if (input.MinorLoss < 0) + if (input.MinorLoss <= 0) { input.MatchingMinorLoss = translation.MinorLoss; } - if (input.Roughness < 0) + if (input.Roughness <= 0) { input.MatchingRoughness = translation.Roughness; } @@ -1970,6 +2054,7 @@ { input.MatchingStartDiameter = translation.StartDiameter; } + input.MatchingTranslationType = (Yw.WinFrmUI.eTranslationType)(int)translation.TranslationType; return true; } @@ -2058,7 +2143,7 @@ } //鏍囩 - int flagWeight = 1; + int flagWeight = 1000; foreach (var item in allCoolingList) { if (item.Flags != null && item.Flags.Count > 0) -- Gitblit v1.9.3