duheng
2025-02-07 80ef0be2e44f42d6f7dc0f9c928de0dbe7362138
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/07-matching/00-core/AssetsMatchingHelper.cs
@@ -1,4 +1,8 @@
namespace HStation.WinFrmUI
using DevExpress.CodeParser;
using System.Text.Json;
using Yw.Ahart;
namespace HStation.WinFrmUI
{
    public class AssetsMatchingHelper
    {
@@ -413,11 +417,6 @@
            {
                input.MatchingMinorLoss = valve.MinorLoss;
            }
            if (input.ValveSetting == null)
            {
                input.MatchingValveSetting = valve.ValveSetting;
            }
            input.MatchingValveType = eValveType.TCV;
            if (input.CurveDbId == null)
            {
                var list = Task.Run(async () =>
@@ -426,17 +425,38 @@
                {
                    var def = list.OrderByDescending(x => x.Importance).First();
                    input.MatchingCurveDbId = def.ID.ToString();
                    var curve = def.Diagram.GraphList[0].GetFeatPointList();
                    input.MatchingCurveQL = new List<HydroCurvePointViewModel>();
                    //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>();
                    foreach (var item in curve)
                    input.MatchingCurvesQL = new List<HydroFactorCurveViewModel>();
                    for (int i = 0; i < def.Diagram.GraphList.Count; i++)
                    {
                        input.MatchingCurveOL.Add(new HydroCurvePointViewModel(item.X, item.Y));
                        var curve = def.Diagram.GraphList[i].GetFeatPointList();
                        if (def.Diagram.GraphList[i].GraphType == 11)
                        {
                            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)
                            {
                                model.CurveData.Add(new HydroCurvePointViewModel(item.X, item.Y));
                            }
                            input.MatchingCurvesQL.Add(model);
                        }
                        else if (def.Diagram.GraphList[i].GraphType == 12)
                        {
                            foreach (var item in curve)
                            {
                                input.MatchingCurveOL.Add(new HydroCurvePointViewModel(item.X, item.Y));
                            }
                        }
                    }
                }
                return true;
@@ -1821,6 +1841,7 @@
        public static bool Matching(HydroPressmeterMatchingViewModel input, List<AssetsPressmeterMainVmo> pressmeterVmos)
        {
            //输入参数验证
            if (input == null)
            {
                return false;
@@ -2017,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;
            }
@@ -2033,6 +2054,7 @@
            {
                input.MatchingStartDiameter = translation.StartDiameter;
            }
            input.MatchingTranslationType = (Yw.WinFrmUI.eTranslationType)(int)translation.TranslationType;
            return true;
        }