From 3af811d30c93995e2500bdd2f3795be77cc1a519 Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期四, 19 十二月 2024 18:06:02 +0800
Subject: [PATCH] 水泵曲线修改

---
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs |  195 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 180 insertions(+), 15 deletions(-)

diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs
index 5f6ca18..5791993 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs
@@ -70,6 +70,12 @@
 
             #endregion
 
+            #region 鍐峰嵈濉�
+
+            vm.Coolings = hydroInfo.Coolings?.Select(x => Create(x, hydroInfo)).ToList();
+
+            #endregion
+
             #region 姘磋〃
 
             vm.Meters = hydroInfo.Meters?.Select(x => Create(x, hydroInfo)).ToList();
@@ -347,6 +353,38 @@
                 return default;
             }
             return new HydroHydrantMatchingViewModel(visualViewModel);
+        }
+
+        #endregion
+
+        #region 鍐峰嵈濉�
+
+        /// <summary>
+        /// 鍒涘缓鍐峰嵈濉旇嚜鍔ㄥ尮閰峍iewModel
+        /// </summary>
+        public static HydroCoolingMatchingViewModel Create(HydroCoolingInfo visualInfo, HydroModelInfo hydroInfo)
+        {
+            if (visualInfo == null)
+            {
+                return default;
+            }
+            if (hydroInfo == null)
+            {
+                return default;
+            }
+            return new HydroCoolingMatchingViewModel(visualInfo, hydroInfo);
+        }
+
+        /// <summary>
+        /// 鍒涘缓鍐峰嵈濉旇嚜鍔ㄥ尮閰峍iewModel
+        /// </summary>
+        public static HydroCoolingMatchingViewModel Create(HydroCoolingViewModel visualViewModel)
+        {
+            if (visualViewModel == null)
+            {
+                return default;
+            }
+            return new HydroCoolingMatchingViewModel(visualViewModel);
         }
 
         #endregion
@@ -794,6 +832,25 @@
 
             #endregion
 
+            #region 娑堢伀鏍�
+
+            if (hydroInfo.Coolings != null && hydroInfo.Coolings.Count > 0)
+            {
+                if (matchingInfo.Coolings != null && matchingInfo.Coolings.Count > 0)
+                {
+                    hydroInfo.Coolings.ForEach(x =>
+                    {
+                        var matching = matchingInfo.Coolings.Find(t => t.Code == x.Code);
+                        if (Apply(hydroInfo, x, matching))
+                        {
+                            result = true;
+                        }
+                    });
+                }
+            }
+
+            #endregion
+
             #region 姘磋〃
 
             if (hydroInfo.Meters != null && hydroInfo.Meters.Count > 0)
@@ -1012,36 +1069,43 @@
             {
                 if (!string.IsNullOrEmpty(matching.MatchingModelType))
                 {
+                    visual.UpdatePropStatus(nameof(visual.ModelType), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     visual.ModelType = matching.MatchingModelType;
                     result = true;
                 }
                 if (!string.IsNullOrEmpty(matching.MatchingDbId))
                 {
+                    visual.UpdatePropStatus(nameof(visual.DbId), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     visual.DbId = matching.MatchingDbId;
                     result = true;
                 }
                 if (matching.MatchingMinLevel.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.MinLevel), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     visual.MinLevel = matching.MatchingMinLevel.Value;
                     result = true;
                 }
                 if (matching.MatchingMaxLevel.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.MaxLevel), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     visual.MaxLevel = matching.MatchingMaxLevel.Value;
                     result = true;
                 }
                 if (matching.MatchingDN.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.DN), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     visual.DN = matching.MatchingDN.Value;
                     result = true;
                 }
                 if (matching.MatchingMinVol.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.MinVol), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     visual.MinVol = matching.MatchingMinVol.Value;
                     result = true;
                 }
                 if (matching.MatchingOverFlow.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.OverFlow), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     visual.OverFlow = matching.MatchingOverFlow.Value;
                     result = true;
                 }
@@ -1548,6 +1612,96 @@
 
         #endregion
 
+        #region 鍐峰嵈濉�
+
+        /// <summary>
+        /// 搴旂敤
+        /// </summary>
+        public static bool Apply(HydroCoolingViewModel visualViewModel, HydroCoolingMatchingViewModel matching)
+        {
+            var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching);
+            visualViewModel.UpdateProperty();
+            return bol;
+        }
+
+        /// <summary>
+        /// 搴旂敤
+        /// </summary>
+        public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroCoolingInfo visual, HydroCoolingMatchingViewModel matching)
+        {
+            if (hydroInfo == null)
+            {
+                return false;
+            }
+            if (visual == null)
+            {
+                return false;
+            }
+            if (matching == null)
+            {
+                return false;
+            }
+            visual.Name = matching.Name;
+            visual.DbLocked = matching.DbLocked;
+            visual.DbId = matching.DbId;
+            visual.ModelType = matching.ModelType;
+            visual.Material = matching.Material;
+            visual.Caliber = matching.Caliber;
+            visual.MinorLoss = matching.MinorLoss;
+            visual.Coefficient = matching.Coefficient;
+            visual.LowerLimit = matching.LowerLimit;
+
+            bool result = false;
+            if (!visual.DbLocked)
+            {
+                if (!string.IsNullOrEmpty(matching.MatchingModelType))
+                {
+                    visual.UpdatePropStatus(nameof(visual.ModelType), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師鏁版嵁:{visual.ModelType}");
+                    visual.ModelType = matching.MatchingModelType;
+                    result = true;
+                }
+                if (!string.IsNullOrEmpty(matching.MatchingDbId))
+                {
+                    visual.UpdatePropStatus(nameof(visual.DbId), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師鏁版嵁:{visual.DbId}");
+                    visual.DbId = matching.MatchingDbId;
+                    result = true;
+                }
+                if (matching.MatchingCaliber.HasValue)
+                {
+                    visual.UpdatePropStatus(nameof(visual.Caliber), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師鏁版嵁:{visual.Caliber}");
+                    visual.Caliber = matching.MatchingCaliber.Value;
+                    result = true;
+                }
+                if (!string.IsNullOrEmpty(matching.MatchingMaterial))
+                {
+                    visual.UpdatePropStatus(nameof(visual.Material), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師鏁版嵁:{visual.Material}");
+                    visual.Material = matching.MatchingMaterial;
+                    result = true;
+                }
+                if (matching.MatchingMinorLoss.HasValue)
+                {
+                    visual.UpdatePropStatus(nameof(visual.MinorLoss), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師鏁版嵁:{visual.MinorLoss}");
+                    visual.MinorLoss = matching.MatchingMinorLoss.Value;
+                    result = true;
+                }
+                if (matching.MatchingCoefficient.HasValue)
+                {
+                    visual.UpdatePropStatus(nameof(visual.Coefficient), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師鏁版嵁:{visual.Coefficient}");
+                    visual.Coefficient = matching.MatchingCoefficient.Value;
+                    result = true;
+                }
+                if (matching.MatchingLowerLimit.HasValue)
+                {
+                    visual.UpdatePropStatus(nameof(visual.LowerLimit), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師鏁版嵁:{visual.LowerLimit}");
+                    visual.LowerLimit = matching.MatchingLowerLimit.Value;
+                    result = true;
+                }
+            }
+            return result;
+        }
+
+        #endregion
+
         #region 姘磋〃
 
         /// <summary>
@@ -1941,41 +2095,49 @@
             {
                 if (!string.IsNullOrEmpty(matching.MatchingModelType))
                 {
+                    visual.UpdatePropStatus(nameof(visual.ModelType), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師濮嬫暟鎹�:{visual.ModelType}");
                     visual.ModelType = matching.MatchingModelType;
                     result = true;
                 }
                 if (!string.IsNullOrEmpty(matching.MatchingDbId))
                 {
+                    visual.UpdatePropStatus(nameof(visual.DbId), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師濮嬫暟鎹�:{visual.DbId}");
                     visual.DbId = matching.MatchingDbId;
                     result = true;
                 }
                 if (matching.MatchingRatedQ.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.RatedQ), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師濮嬫暟鎹�:{visual.RatedQ}");
                     visual.RatedQ = matching.MatchingRatedQ.Value;
                     result = true;
                 }
                 if (matching.MatchingRatedH.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.RatedH), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師濮嬫暟鎹�:{visual.RatedH}");
                     visual.RatedH = matching.MatchingRatedH.Value;
                     result = true;
                 }
                 if (matching.MatchingRatedP.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.RatedP), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師濮嬫暟鎹�:{visual.RatedP}");
                     visual.RatedP = matching.MatchingRatedP.Value;
                     result = true;
                 }
                 if (matching.MatchingRatedN.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.RatedN), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師濮嬫暟鎹�:{visual.RatedN}");
                     visual.RatedN = matching.MatchingRatedN.Value;
                     result = true;
                 }
                 if (matching.MatchingRatedHz.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.RatedHz), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師濮嬫暟鎹�:{visual.RatedHz}");
                     visual.RatedHz = matching.MatchingRatedHz.Value;
                     result = true;
                 }
                 if (matching.MatchingCurrentHz.HasValue)
                 {
+                    visual.UpdatePropStatus(nameof(visual.SpeedRatio), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇锛屽師濮嬫暟鎹�:{visual.SpeedRatio}");
                     visual.SpeedRatio = matching.MatchingCurrentHz.Value / visual.RatedHz;
                     result = true;
                 }
@@ -2000,6 +2162,7 @@
                             hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>();
                         }
                         hydroInfo.Curves.Add(curveqh);
+                        visual.UpdatePropStatus(nameof(visual.CurveQH), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇");
                         visual.CurveQH = curveqh.Code;
                         result = true;
                     }
@@ -2031,6 +2194,7 @@
                             hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>();
                         }
                         hydroInfo.Curves.Add(curveqp);
+                        visual.UpdatePropStatus(nameof(visual.CurveQP), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇");
                         visual.CurveQP = curveqp.Code;
                         result = true;
                     }
@@ -2062,6 +2226,7 @@
                             hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>();
                         }
                         hydroInfo.Curves.Add(curveqe);
+                        visual.UpdatePropStatus(nameof(visual.CurveQE), ePropStatus.Matching, $"閫氳繃鍩虹鏁版嵁鍖归厤淇");
                         visual.CurveQE = curveqe.Code;
                         result = true;
                     }
@@ -2128,38 +2293,38 @@
             {
                 if (!string.IsNullOrEmpty(matching.MatchingModelType))
                 {
-                    visual.ModelType = matching.MatchingModelType;
                     visual.UpdatePropStatus(nameof(visual.ModelType), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                    visual.ModelType = matching.MatchingModelType;
                     result = true;
                 }
                 if (!string.IsNullOrEmpty(matching.MatchingDbId))
                 {
-                    visual.DbId = matching.MatchingDbId;
                     visual.UpdatePropStatus(nameof(visual.DbId), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                    visual.DbId = matching.MatchingDbId;
                     result = true;
                 }
                 if (!string.IsNullOrEmpty(matching.MatchingMaterial))
                 {
-                    visual.Material = matching.MatchingMaterial;
                     visual.UpdatePropStatus(nameof(visual.Material), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                    visual.Material = matching.MatchingMaterial;
                     result = true;
                 }
                 if (matching.MatchingDiameter.HasValue)
                 {
-                    visual.Diameter = matching.MatchingDiameter.Value;
                     visual.UpdatePropStatus(nameof(visual.Diameter), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                    visual.Diameter = matching.MatchingDiameter.Value;
                     result = true;
                 }
                 if (matching.MatchingMinorLoss.HasValue)
                 {
-                    visual.MinorLoss = matching.MatchingMinorLoss.Value;
                     visual.UpdatePropStatus(nameof(visual.MinorLoss), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                    visual.MinorLoss = matching.MatchingMinorLoss.Value;
                     result = true;
                 }
                 if (matching.MatchingValveType.HasValue)
                 {
-                    visual.ValveType = HydroValveTypeEnumHelper.GetValveTypeCode(matching.MatchingValveType.Value);
                     visual.UpdatePropStatus(nameof(visual.ValveType), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                    visual.ValveType = HydroValveTypeEnumHelper.GetValveTypeCode(matching.MatchingValveType.Value);
                     result = true;
                 }
                 switch (visual.ValveType)
@@ -2168,8 +2333,8 @@
                         {
                             if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
                             {
-                                visual.ValveSetting = matching.MatchingValveSetting;
                                 visual.UpdatePropStatus(nameof(visual.ValveSetting), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                                visual.ValveSetting = matching.MatchingValveSetting;
                                 result = true;
                             }
                         }
@@ -2178,8 +2343,8 @@
                         {
                             if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
                             {
-                                visual.ValveSetting = matching.MatchingValveSetting;
                                 visual.UpdatePropStatus(nameof(visual.ValveSetting), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                                visual.ValveSetting = matching.MatchingValveSetting;
                                 result = true;
                             }
                         }
@@ -2188,8 +2353,8 @@
                         {
                             if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
                             {
-                                visual.ValveSetting = matching.MatchingValveSetting;
                                 visual.UpdatePropStatus(nameof(visual.ValveSetting), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                                visual.ValveSetting = matching.MatchingValveSetting;
                                 result = true;
                             }
                         }
@@ -2198,8 +2363,8 @@
                         {
                             if (!string.IsNullOrEmpty(matching.MatchingValveSetting))
                             {
-                                visual.ValveSetting = matching.MatchingValveSetting;
                                 visual.UpdatePropStatus(nameof(visual.ValveSetting), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
+                                visual.ValveSetting = matching.MatchingValveSetting;
                                 result = true;
                             }
                         }
@@ -2437,31 +2602,31 @@
                 if (!string.IsNullOrEmpty(matching.MatchingModelType))
                 {
                     visual.ModelType = matching.MatchingModelType;
-                    visual.UpdatePropStatus(nameof(visual.ModelType), ePropStatus.Normal, "鍖归厤淇");
+                    visual.UpdatePropStatus(nameof(visual.ModelType), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     result = true;
                 }
                 if (!string.IsNullOrEmpty(matching.MatchingDbId))
                 {
                     visual.DbId = matching.MatchingDbId;
-                    visual.UpdatePropStatus(nameof(visual.DbId), ePropStatus.Normal, "鍖归厤淇");
+                    visual.UpdatePropStatus(nameof(visual.DbId), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     result = true;
                 }
                 if (!string.IsNullOrEmpty(matching.MatchingMaterial))
                 {
                     visual.Material = matching.MatchingMaterial;
-                    visual.UpdatePropStatus(nameof(visual.Material), ePropStatus.Normal, "鍖归厤淇");
+                    visual.UpdatePropStatus(nameof(visual.Material), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     result = true;
                 }
                 if (matching.MatchingDiameter.HasValue)
                 {
                     visual.Diameter = matching.MatchingDiameter.Value;
-                    visual.UpdatePropStatus(nameof(visual.Diameter), ePropStatus.Normal, "鍖归厤淇");
+                    visual.UpdatePropStatus(nameof(visual.Diameter), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     result = true;
                 }
                 if (matching.MatchingMinorLoss.HasValue)
                 {
                     visual.MinorLoss = matching.MatchingMinorLoss.Value;
-                    visual.UpdatePropStatus(nameof(visual.MinorLoss), ePropStatus.Normal, "鍖归厤淇");
+                    visual.UpdatePropStatus(nameof(visual.MinorLoss), ePropStatus.Matching, "閫氳繃鍩虹鏁版嵁鍖归厤淇");
                     result = true;
                 }
 

--
Gitblit v1.9.3