From c0a8df94a97281d7ed5a38550dd6fcf73e9cf0c8 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期六, 09 十一月 2024 13:53:43 +0800
Subject: [PATCH] 核心修改

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs |  197 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 157 insertions(+), 40 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs
index e169370..d3bef85 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs
@@ -1,4 +1,6 @@
-锘縩amespace HStation.WinFrmUI
+锘縰sing SqlSugar;
+
+namespace HStation.WinFrmUI
 {
     /// <summary>
     /// 璧勪骇鍖归厤鍙傛暟杈呭姪绫�
@@ -11,7 +13,7 @@
         /// <summary>
         /// 鍒涘缓璧勪骇鑷姩鍖归厤ViewModel
         /// </summary>
-        public static AssetsMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, List<IHydroCalcuResult> allCalcuResultList)
+        public static AssetsMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, List<HydroCalcuResult> allCalcuResultList)
         {
             if (hydroInfo == null)
             {
@@ -43,7 +45,7 @@
         /// <summary>
         /// 鍒涘缓娉佃嚜鍔ㄥ尮閰峍iewModel
         /// </summary>
-        public static PumpMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPumpInfo pumpInfo, List<IHydroCalcuResult> allCalcuResultList)
+        public static PumpMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPumpInfo pumpInfo, List<HydroCalcuResult> allCalcuResultList)
         {
             if (hydroInfo == null)
             {
@@ -59,7 +61,7 @@
         /// <summary>
         /// 鍒涘缓闃�闂ㄨ嚜鍔ㄥ尮閰峍iewModel
         /// </summary>
-        public static ValveMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroValveInfo valveInfo, List<IHydroCalcuResult> allCalcuResultList)
+        public static ValveMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroValveInfo valveInfo, List<HydroCalcuResult> allCalcuResultList)
         {
             if (hydroInfo == null)
             {
@@ -69,25 +71,13 @@
             {
                 return default;
             }
-            return new ValveMatchingViewModel()
-            {
-                ID = valveInfo.ID,
-                Code = valveInfo.Code,
-                Name = valveInfo.Name,
-                DbLocked = valveInfo.DbLocked,
-                ModelType = valveInfo.ModelType,
-                DbId = valveInfo.DbId,
-                Diameter = valveInfo.Diameter,
-                Material = valveInfo.Material,
-                MinorLoss = valveInfo.MinorLoss,
-                ValveType = valveInfo.ValveType
-            };
+            return new ValveMatchingViewModel(valveInfo, hydroInfo, allCalcuResultList);
         }
 
         /// <summary>
         /// 鍒涘缓绠¢亾鑷姩鍖归厤ViewModel
         /// </summary>
-        public static PipeMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPipeInfo pipeInfo, List<IHydroCalcuResult> allCalcuResultList)
+        public static PipeMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPipeInfo pipeInfo, List<HydroCalcuResult> allCalcuResultList)
         {
             if (hydroInfo == null)
             {
@@ -116,7 +106,7 @@
         /// <summary>
         /// 鍒涘缓寮ご鑷姩鍖归厤ViewModel
         /// </summary>
-        public static ElbowMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroElbowInfo elbowInfo, List<IHydroCalcuResult> allCalcuResultList)
+        public static ElbowMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroElbowInfo elbowInfo, List<HydroCalcuResult> allCalcuResultList)
         {
             if (hydroInfo == null)
             {
@@ -143,7 +133,7 @@
         /// <summary>
         /// 鍒涘缓涓夐�氳嚜鍔ㄥ尮閰峍iewModel
         /// </summary>
-        public static ThreelinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroThreelinkInfo threelinkInfo, List<IHydroCalcuResult> allCalcuResultList)
+        public static ThreelinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroThreelinkInfo threelinkInfo, List<HydroCalcuResult> allCalcuResultList)
         {
             if (hydroInfo == null)
             {
@@ -170,7 +160,7 @@
         /// <summary>
         /// 鍒涘缓鍥涢�氳嚜鍔ㄥ尮閰峍iewModel
         /// </summary>
-        public static FourlinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFourlinkInfo fourlinkInfo, List<IHydroCalcuResult> allCalcuResultList)
+        public static FourlinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFourlinkInfo fourlinkInfo, List<HydroCalcuResult> allCalcuResultList)
         {
             if (hydroInfo == null)
             {
@@ -334,7 +324,7 @@
                         {
                             curveqh = new Yw.Model.HydroCurveInfo();
                             curveqh.Catalog = Yw.Hydro.ParterCatalog.Curve;
-                            curveqh.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", GetAllCodeList(hydroInfo));
+                            curveqh.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes());
                             curveqh.Name = "鍖归厤";
                             curveqh.ModelType = string.Empty;
                             curveqh.DbLocked = false;
@@ -352,7 +342,7 @@
                         {
                             if (!curveqh.DbLocked)
                             {
-                                curveqh.DbId = matching.MatchingDbId;
+                                curveqh.DbId = matching.MatchingCurveDbId;
                                 curveqh.CurveData = matching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList();
                             }
                         }
@@ -363,7 +353,7 @@
                         {
                             curveqp = new Yw.Model.HydroCurveInfo();
                             curveqp.Catalog = Yw.Hydro.ParterCatalog.Curve;
-                            curveqp.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", GetAllCodeList(hydroInfo));
+                            curveqp.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes());
                             curveqp.Name = "鍖归厤";
                             curveqp.ModelType = string.Empty;
                             curveqp.DbLocked = false;
@@ -381,7 +371,7 @@
                         {
                             if (!curveqp.DbLocked)
                             {
-                                curveqp.DbId = matching.MatchingDbId;
+                                curveqp.DbId = matching.MatchingCurveDbId;
                                 curveqp.CurveData = matching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList();
                             }
                         }
@@ -392,7 +382,7 @@
                         {
                             curveqe = new Yw.Model.HydroCurveInfo();
                             curveqe.Catalog = Yw.Hydro.ParterCatalog.Curve;
-                            curveqe.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", GetAllCodeList(hydroInfo));
+                            curveqe.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes());
                             curveqe.Name = "鍖归厤";
                             curveqe.ModelType = string.Empty;
                             curveqe.DbLocked = false;
@@ -410,7 +400,7 @@
                         {
                             if (!curveqe.DbLocked)
                             {
-                                curveqe.DbId = matching.MatchingDbId;
+                                curveqe.DbId = matching.MatchingCurveDbId;
                                 curveqe.CurveData = matching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList();
                             }
                         }
@@ -445,42 +435,169 @@
             {
                 valve.DbLocked = matching.DbLocked;
                 valve.ModelType = matching.ModelType;
-                valve.Diameter = matching.Diameter;
                 valve.Material = matching.Material;
+                valve.Diameter = matching.Diameter;
                 valve.MinorLoss = matching.MinorLoss;
-                valve.ValveType = matching.ValveType;
-                //valve.ValveSetting = matching.ValveSetting;
+                switch (matching.ValveType)
+                {
+                    case HStation.Assets.eValveType.PBV: valve.ValveType = Yw.Hydro.ValveType.PBV; break;
+                    case HStation.Assets.eValveType.PRV: valve.ValveType = Yw.Hydro.ValveType.PRV; break;
+                    case HStation.Assets.eValveType.PSV: valve.ValveType = Yw.Hydro.ValveType.PSV; break;
+                    case HStation.Assets.eValveType.TCV: valve.ValveType = Yw.Hydro.ValveType.TCV; break;
+                    case HStation.Assets.eValveType.FCV: valve.ValveType = Yw.Hydro.ValveType.FCV; break;
+                    case HStation.Assets.eValveType.GPV: valve.ValveType = Yw.Hydro.ValveType.GPV; break;
+                    case HStation.Assets.eValveType.CV: valve.ValveType = Yw.Hydro.ValveType.CV; break;
+                    default: break;
+                }
+                valve.ValveSetting = matching.ValveSetting;
 
                 if (!valve.DbLocked)
                 {
-                    if (!string.IsNullOrEmpty(matching.MatchingModelType))
-                    {
-                        valve.ModelType = matching.MatchingModelType;
-                    }
                     if (!string.IsNullOrEmpty(matching.MatchingDbId))
                     {
                         valve.DbId = matching.MatchingDbId;
                     }
-                    if (matching.MatchingDiameter.HasValue)
+                    if (!string.IsNullOrEmpty(matching.MatchingModelType))
                     {
-                        valve.Diameter = matching.MatchingDiameter.Value;
+                        valve.ModelType = matching.MatchingModelType;
                     }
                     if (!string.IsNullOrEmpty(matching.MatchingMaterial))
                     {
                         valve.Material = matching.MatchingMaterial;
                     }
+                    if (matching.MatchingDiameter.HasValue)
+                    {
+                        valve.Diameter = matching.MatchingDiameter.Value;
+                    }
                     if (matching.MatchingMinorLoss.HasValue)
                     {
                         valve.MinorLoss = matching.MatchingMinorLoss.Value;
                     }
-                    if (!string.IsNullOrEmpty(matching.MatchingValveType))
+                    if (matching.MatchingValveType.HasValue)
                     {
-                        valve.ValveType = matching.MatchingValveType;
+                        switch (matching.MatchingValveType.Value)
+                        {
+                            case HStation.Assets.eValveType.PBV: valve.ValveType = Yw.Hydro.ValveType.PBV; break;
+                            case HStation.Assets.eValveType.PRV: valve.ValveType = Yw.Hydro.ValveType.PRV; break;
+                            case HStation.Assets.eValveType.PSV: valve.ValveType = Yw.Hydro.ValveType.PSV; break;
+                            case HStation.Assets.eValveType.TCV: valve.ValveType = Yw.Hydro.ValveType.TCV; break;
+                            case HStation.Assets.eValveType.FCV: valve.ValveType = Yw.Hydro.ValveType.FCV; break;
+                            case HStation.Assets.eValveType.GPV: valve.ValveType = Yw.Hydro.ValveType.GPV; break;
+                            case HStation.Assets.eValveType.CV: valve.ValveType = Yw.Hydro.ValveType.CV; break;
+                            default: break;
+                        }
                     }
-                    if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
+                    switch (valve.ValveType)
                     {
-                        valve.ValveSetting = matching.MatchingValveSetting;
+                        case Yw.Hydro.ValveType.PSV:
+                            {
+                                if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
+                                {
+                                    valve.ValveSetting = matching.MatchingValveSetting;
+                                }
+                            }
+                            break;
+                        case Yw.Hydro.ValveType.PBV:
+                            {
+                                if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
+                                {
+                                    valve.ValveSetting = matching.MatchingValveSetting;
+                                }
+                            }
+                            break;
+                        case Yw.Hydro.ValveType.PRV:
+                            {
+                                if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
+                                {
+                                    valve.ValveSetting = matching.MatchingValveSetting;
+                                }
+                            }
+                            break;
+                        case Yw.Hydro.ValveType.FCV:
+                            {
+                                if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
+                                {
+                                    valve.ValveSetting = matching.MatchingValveSetting;
+                                }
+                            }
+                            break;
+                        case Yw.Hydro.ValveType.TCV:
+                            {
+                                if (!string.IsNullOrEmpty(matching.MatchingCurveDbId))
+                                {
+                                    //闃�闂ㄥ紑搴︽崯澶辩郴鏁版洸绾�
+                                    var curveol = hydroInfo.Curves?.Find(x => x.Code == valve.ValveSetting);
+                                    if (curveol == null)
+                                    {
+                                        curveol = new Yw.Model.HydroCurveInfo();
+                                        curveol.Catalog = Yw.Hydro.ParterCatalog.Curve;
+                                        curveol.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes());
+                                        curveol.Name = "鍖归厤";
+                                        curveol.ModelType = valve.ModelType;
+                                        curveol.DbLocked = false;
+                                        curveol.DbId = matching.MatchingCurveDbId;
+                                        curveol.CurveType = Yw.WinFrmUI.HydroCurve.ValveOL;
+                                        curveol.CurveData = matching.MatchingCurveOL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList();
+                                        if (hydroInfo.Curves == null)
+                                        {
+                                            hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>();
+                                        }
+                                        hydroInfo.Curves.Add(curveol);
+                                        valve.ValveSetting = curveol.Code;
+                                    }
+                                    else
+                                    {
+                                        if (!curveol.DbLocked)
+                                        {
+                                            curveol.DbId = matching.MatchingCurveDbId;
+                                            curveol.CurveData = matching.MatchingCurveOL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList();
+                                        }
+                                    }
+                                }
+                            }
+                            break;
+                        case Yw.Hydro.ValveType.GPV:
+                            {
+                                if (!string.IsNullOrEmpty(matching.MatchingCurveDbId))
+                                {
+                                    //闃�闂ㄥ紑搴︽崯澶辩郴鏁版洸绾�
+                                    var curveql = hydroInfo.Curves?.Find(x => x.Code == valve.ValveSetting);
+                                    if (curveql == null)
+                                    {
+                                        curveql = new Yw.Model.HydroCurveInfo();
+                                        curveql.Catalog = Yw.Hydro.ParterCatalog.Curve;
+                                        curveql.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", hydroInfo.GetAllParterCodes());
+                                        curveql.Name = "鍖归厤";
+                                        curveql.ModelType = valve.ModelType;
+                                        curveql.DbLocked = false;
+                                        curveql.DbId = matching.MatchingCurveDbId;
+                                        curveql.CurveType = Yw.WinFrmUI.HydroCurve.ValveOL;
+                                        curveql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList();
+                                        if (hydroInfo.Curves == null)
+                                        {
+                                            hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>();
+                                        }
+                                        hydroInfo.Curves.Add(curveql);
+                                        valve.ValveSetting = curveql.Code;
+                                    }
+                                    else
+                                    {
+                                        if (!curveql.DbLocked)
+                                        {
+                                            curveql.DbId = matching.MatchingCurveDbId;
+                                            curveql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList();
+                                        }
+                                    }
+                                }
+                            }
+                            break;
+                        case Yw.Hydro.ValveType.CV:
+                            {
+
+                            }
+                            break;
                     }
+
                     result = true;
                 }
             }

--
Gitblit v1.9.3