From 982cde7e9372dc218f23b204265d8e54f7e9ce4f Mon Sep 17 00:00:00 2001 From: ningshuxia <ningshuxia0927@outlook.com> Date: 星期四, 13 三月 2025 10:34:21 +0800 Subject: [PATCH] boxModel --- WinFrmUI/Yw.WinFrmUI.Hydro.Core/14-matching/00-core/HydroMatchingHelper.cs | 432 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 269 insertions(+), 163 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 4a86348..211d6f9 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 @@ -1,4 +1,5 @@ -锘縰sing Yw.Hydro; +锘縰sing Yw.Ahart; +using Yw.Hydro; using Yw.Model; namespace Yw.WinFrmUI @@ -2485,8 +2486,11 @@ //visual.DbLocked = matching.DbLocked; //visual.DbId = matching.DbId; //visual.ModelType = matching.ModelType; + //if (matching.TranslationType.HasValue) + //{ + // visual.TranslationType = HydroTranslationTypeEnumHelper.GetTranslationTypeName(matching.TranslationType.Value); + //} //visual.Material = matching.Material; - //visual.Diameter = matching.Diameter; //visual.StartDiameter = matching.StartDiameter; //visual.EndDiameter = matching.EndDiameter; //visual.Roughness = matching.Roughness; @@ -2516,6 +2520,17 @@ visual.DbId = matching.MatchingDbId; result = true; } + if (matching.MatchingTranslationType.HasValue) + { + var translationType = HydroTranslationTypeEnumHelper.GetTranslationTypeName(matching.MatchingTranslationType.Value); + if (visual.TranslationType != translationType) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.TranslationType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } + visual.TranslationType = translationType; + result = true; + } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { if (visual.Material != matching.MatchingMaterial) @@ -2524,16 +2539,6 @@ propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); } visual.Material = matching.MatchingMaterial; - result = true; - } - if (matching.MatchingDiameter.HasValue) - { - if (visual.Diameter != matching.MatchingDiameter.Value) - { - changeHelper?.Append(visual, eChangeType.Update); - propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Diameter), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); - } - visual.Diameter = matching.MatchingDiameter.Value; result = true; } if (matching.MatchingRoughness.HasValue) @@ -2587,9 +2592,15 @@ /// <summary> /// 搴旂敤 /// </summary> - public static bool Apply(HydroPumpViewModel visualViewModel, HydroPumpMatchingViewModel matching) + public static bool Apply + ( + HydroPumpViewModel visualViewModel, + HydroPumpMatchingViewModel matching, + HydroChangeHelper changeHelper = null, + HydroPropStatusHelper propStatusHelper = null + ) { - var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching); + var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } @@ -2736,6 +2747,9 @@ } hydroInfo.Curves.Add(curveqh); visual.CurveQH = curveqh.Code; + changeHelper?.Append(curveqh, eChangeType.Add); + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQH), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); result = true; } else @@ -2744,6 +2758,7 @@ { curveqh.DbId = matching.MatchingCurveDbId; curveqh.CurveData = matching.MatchingCurveQH?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + changeHelper?.Append(curveqh, eChangeType.Update); result = true; } } @@ -2767,6 +2782,9 @@ } hydroInfo.Curves.Add(curveqp); visual.CurveQP = curveqp.Code; + changeHelper?.Append(curveqp, eChangeType.Add); + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQP), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); result = true; } else @@ -2775,6 +2793,7 @@ { curveqp.DbId = matching.MatchingCurveDbId; curveqp.CurveData = matching.MatchingCurveQP?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + changeHelper?.Append(curveqp, eChangeType.Update); result = true; } } @@ -2798,6 +2817,9 @@ } hydroInfo.Curves.Add(curveqe); visual.CurveQE = curveqe.Code; + changeHelper?.Append(curveqe, eChangeType.Add); + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQE), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); result = true; } else @@ -2806,6 +2828,7 @@ { curveqe.DbId = matching.MatchingCurveDbId; curveqe.CurveData = matching.MatchingCurveQE?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + changeHelper?.Append(curveqe, eChangeType.Update); result = true; } } @@ -2822,9 +2845,15 @@ /// <summary> /// 搴旂敤 /// </summary> - public static bool Apply(HydroValveViewModel visualViewModel, HydroValveMatchingViewModel matching) + public static bool Apply + ( + HydroValveViewModel visualViewModel, + HydroValveMatchingViewModel matching, + HydroChangeHelper changeHelper = null, + HydroPropStatusHelper propStatusHelper = null + ) { - var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching); + var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } @@ -2832,7 +2861,14 @@ /// <summary> /// 搴旂敤 /// </summary> - public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroValveInfo visual, HydroValveMatchingViewModel matching) + public static bool Apply + ( + Yw.Model.HydroModelInfo hydroInfo, + Yw.Model.HydroValveInfo visual, + HydroValveMatchingViewModel matching, + HydroChangeHelper changeHelper = null, + HydroPropStatusHelper propStatusHelper = null + ) { if (hydroInfo == null) { @@ -2847,15 +2883,13 @@ return false; } - visual.Name = matching.Name; - visual.DbLocked = matching.DbLocked; - visual.DbId = matching.DbId; - visual.ModelType = matching.ModelType; - visual.Material = matching.Material; - visual.Diameter = matching.Diameter; - visual.MinorLoss = matching.MinorLoss; - visual.ValveType = HydroValveTypeEnumHelper.GetValveTypeCode(matching.ValveType); - visual.ValveSetting = matching.ValveSetting; + //visual.Name = matching.Name; + //visual.DbLocked = matching.DbLocked; + //visual.DbId = matching.DbId; + //visual.ModelType = matching.ModelType; + //visual.Material = matching.Material; + //visual.Diameter = matching.Diameter; + //visual.MinorLoss = matching.MinorLoss; bool result = false; @@ -2863,153 +2897,141 @@ { if (!string.IsNullOrEmpty(matching.MatchingModelType)) { + if (visual.ModelType != matching.MatchingModelType) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Matching, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { + if (visual.DbId != matching.MatchingDbId) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Matching, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.DbId = matching.MatchingDbId; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { + if (visual.Material != matching.MatchingMaterial) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Matching, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingDiameter.HasValue) { + if (visual.Diameter != matching.MatchingDiameter.Value) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Diameter), ePropStatus.Matching, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.Diameter = matching.MatchingDiameter.Value; result = true; } if (matching.MatchingMinorLoss.HasValue) { + if (visual.MinorLoss != matching.MatchingMinorLoss.Value) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Matching, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } - if (matching.MatchingValveType.HasValue) + if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) { - visual.ValveType = HydroValveTypeEnumHelper.GetValveTypeCode(matching.MatchingValveType.Value); - result = true; - } - switch (visual.ValveType) - { - case Yw.Hydro.ValveType.PSV: + //寮�搴︽崯澶辨洸绾� + var curveol = hydroInfo.Curves?.Find(x => x.Code == visual.CurveOL); + 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 = string.Empty; + curveol.DbLocked = false; + curveol.DbId = matching.MatchingCurveDbId; + curveol.CurveType = Yw.WinFrmUI.HydroCurveType.CurveOL; + curveol.CurveFactor = null; + curveol.CurveData = matching.MatchingCurveOL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + if (hydroInfo.Curves == null) { - if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) - { - visual.ValveSetting = matching.MatchingValveSetting; - result = true; - } + hydroInfo.Curves = new List<Yw.Model.HydroCurveInfo>(); } - break; - case Yw.Hydro.ValveType.PBV: + hydroInfo.Curves.Add(curveol); + visual.CurveOL = curveol.Code; + changeHelper?.Append(curveol, eChangeType.Add); + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveOL), ePropStatus.Matching, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + result = true; + } + else + { + if (!curveol.DbLocked) { - if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) - { - visual.ValveSetting = matching.MatchingValveSetting; - result = true; - } + curveol.DbId = matching.MatchingCurveDbId; + curveol.CurveData = matching.MatchingCurveOL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + changeHelper?.Append(curveol, eChangeType.Update); + result = true; } - break; - case Yw.Hydro.ValveType.PRV: - { - if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) - { - visual.ValveSetting = matching.MatchingValveSetting; - result = true; - } - } - break; - case Yw.Hydro.ValveType.FCV: - { - if (!string.IsNullOrEmpty(matching.MatchingValveSetting)) - { - visual.ValveSetting = matching.MatchingValveSetting; - result = true; - } - } - break; - case Yw.Hydro.ValveType.TCV: - { - if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) - { - //闃�闂ㄥ紑搴︽崯澶辩郴鏁版洸绾� - var curveol = hydroInfo.Curves?.Find(x => x.Code == visual.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 = visual.ModelType; - curveol.DbLocked = false; - curveol.DbId = matching.MatchingCurveDbId; - curveol.CurveType = Yw.WinFrmUI.HydroCurveType.CurveOL; - 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); - visual.ValveSetting = curveol.Code; - result = true; - } - else - { - if (!curveol.DbLocked) - { - curveol.DbId = matching.MatchingCurveDbId; - curveol.CurveType = Yw.WinFrmUI.HydroCurveType.CurveOL; - curveol.CurveData = matching.MatchingCurveOL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); - result = true; - } - } - } - } - break; - case Yw.Hydro.ValveType.GPV: - { - if (!string.IsNullOrEmpty(matching.MatchingCurveDbId)) - { - //姘村ご鎹熷け鏇茬嚎 - var curveql = hydroInfo.Curves?.Find(x => x.Code == visual.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 = visual.ModelType; - curveql.DbLocked = false; - curveql.DbId = matching.MatchingCurveDbId; - curveql.CurveType = Yw.WinFrmUI.HydroCurveType.CurveQL; - 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); - visual.ValveSetting = curveql.Code; - result = true; - } - else - { - if (!curveql.DbLocked) - { - curveql.DbId = matching.MatchingCurveDbId; - curveql.CurveType = Yw.WinFrmUI.HydroCurveType.CurveQL; - curveql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); - result = true; - } - } - } - } - break; - case Yw.Hydro.ValveType.CV: - { + } + //姘村ご鎹熷け鏇茬嚎 + if (matching.MatchingCurvesQL != null && matching.MatchingCurvesQL.Count > 0) + { + if (visual.CurvesQL == null) + { + visual.CurvesQL = new List<string>(); } - break; + var curvesql = new List<string>(); + var matchingCurvesQL = matching.MatchingCurvesQL.OrderBy(x => x.CurveFactor).ToList(); + foreach (var matchingCurveQL in matchingCurvesQL) + { + var curveql = hydroInfo.Curves?.Find(x => visual.CurvesQL.Contains(x.Code) && x.CurveFactor.HasValue && x.CurveFactor.Value == matchingCurveQL.CurveFactor); + 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 = string.Empty; + curveql.DbLocked = false; + curveql.DbId = matching.MatchingCurveDbId; + curveql.CurveType = Yw.WinFrmUI.HydroCurveType.CurveQL; + curveql.CurveFactor = matchingCurveQL.CurveFactor; + curveql.CurveData = matchingCurveQL.CurveData?.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); + changeHelper?.Append(curveql, eChangeType.Add); + result = true; + } + else + { + if (!curveql.DbLocked) + { + curveql.DbId = matching.MatchingCurveDbId; + curveql.CurveFactor = matchingCurveQL.CurveFactor; + curveql.CurveData = matchingCurveQL.CurveData?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + changeHelper?.Append(curveql, eChangeType.Update); + result = true; + } + } + curvesql.Add(curveql.Code); + } + visual.CurvesQL = curvesql; + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurvesQL), ePropStatus.Matching, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } } } return result; @@ -3022,9 +3044,15 @@ /// <summary> /// 搴旂敤 /// </summary> - public static bool Apply(HydroExchangerViewModel visualViewModel, HydroExchangerMatchingViewModel matching) + public static bool Apply + ( + HydroExchangerViewModel visualViewModel, + HydroExchangerMatchingViewModel matching, + HydroChangeHelper changeHelper = null, + HydroPropStatusHelper propStatusHelper = null + ) { - var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching); + var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } @@ -3032,7 +3060,14 @@ /// <summary> /// 搴旂敤 /// </summary> - public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroExchangerInfo visual, HydroExchangerMatchingViewModel matching) + public static bool Apply + ( + Yw.Model.HydroModelInfo hydroInfo, + Yw.Model.HydroExchangerInfo visual, + HydroExchangerMatchingViewModel matching, + HydroChangeHelper changeHelper = null, + HydroPropStatusHelper propStatusHelper = null + ) { if (hydroInfo == null) { @@ -3046,39 +3081,64 @@ { return false; } - visual.Name = matching.Name; - visual.DbLocked = matching.DbLocked; - visual.DbId = matching.DbId; - visual.ModelType = matching.ModelType; - visual.Material = matching.Material; - visual.Diameter = matching.Diameter; - visual.MinorLoss = matching.MinorLoss; + //visual.Name = matching.Name; + //visual.DbLocked = matching.DbLocked; + //visual.DbId = matching.DbId; + //visual.ModelType = matching.ModelType; + //visual.Material = matching.Material; + //visual.Diameter = matching.Diameter; + //visual.MinorLoss = matching.MinorLoss; bool result = false; if (!visual.DbLocked) { if (!string.IsNullOrEmpty(matching.MatchingModelType)) { + if (visual.ModelType != matching.MatchingModelType) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { + if (visual.DbId != matching.MatchingDbId) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.DbId = matching.MatchingDbId; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { + if (visual.Material != matching.MatchingMaterial) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingDiameter.HasValue) { + if (visual.Diameter != matching.MatchingDiameter.Value) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Diameter), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.Diameter = matching.MatchingDiameter.Value; result = true; } if (matching.MatchingMinorLoss.HasValue) { + if (visual.MinorLoss != matching.MatchingMinorLoss.Value) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } @@ -3103,6 +3163,9 @@ } hydroInfo.Curves.Add(curvevql); visual.CurveQL = curvevql.Code; + changeHelper?.Append(curvevql, eChangeType.Add); + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQL), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); result = true; } else @@ -3111,6 +3174,7 @@ { curvevql.DbId = matching.MatchingCurveDbId; curvevql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + changeHelper?.Append(curvevql, eChangeType.Update); result = true; } } @@ -3126,9 +3190,15 @@ /// <summary> /// 搴旂敤 /// </summary> - public static bool Apply(HydroCompressorViewModel visualViewModel, HydroCompressorMatchingViewModel matching) + public static bool Apply + ( + HydroCompressorViewModel visualViewModel, + HydroCompressorMatchingViewModel matching, + HydroChangeHelper changeHelper = null, + HydroPropStatusHelper propStatusHelper = null + ) { - var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching); + var bol = Apply(visualViewModel.HydroInfo, visualViewModel.Vmo, matching, changeHelper, propStatusHelper); visualViewModel.UpdateProperty(); return bol; } @@ -3136,7 +3206,14 @@ /// <summary> /// 搴旂敤 /// </summary> - public static bool Apply(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroCompressorInfo visual, HydroCompressorMatchingViewModel matching) + public static bool Apply + ( + Yw.Model.HydroModelInfo hydroInfo, + Yw.Model.HydroCompressorInfo visual, + HydroCompressorMatchingViewModel matching, + HydroChangeHelper changeHelper = null, + HydroPropStatusHelper propStatusHelper = null + ) { if (hydroInfo == null) { @@ -3150,39 +3227,64 @@ { return false; } - visual.Name = matching.Name; - visual.DbLocked = matching.DbLocked; - visual.DbId = matching.DbId; - visual.ModelType = matching.ModelType; - visual.Material = matching.Material; - visual.Diameter = matching.Diameter; - visual.MinorLoss = matching.MinorLoss; + //visual.Name = matching.Name; + //visual.DbLocked = matching.DbLocked; + //visual.DbId = matching.DbId; + //visual.ModelType = matching.ModelType; + //visual.Material = matching.Material; + //visual.Diameter = matching.Diameter; + //visual.MinorLoss = matching.MinorLoss; bool result = false; if (!visual.DbLocked) { if (!string.IsNullOrEmpty(matching.MatchingModelType)) { + if (visual.ModelType != matching.MatchingModelType) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.ModelType), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.ModelType = matching.MatchingModelType; result = true; } if (!string.IsNullOrEmpty(matching.MatchingDbId)) { + if (visual.DbId != matching.MatchingDbId) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.DbId), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.DbId = matching.MatchingDbId; result = true; } if (!string.IsNullOrEmpty(matching.MatchingMaterial)) { + if (visual.Material != matching.MatchingMaterial) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Material), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.Material = matching.MatchingMaterial; result = true; } if (matching.MatchingDiameter.HasValue) { + if (visual.Diameter != matching.MatchingDiameter.Value) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.Diameter), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.Diameter = matching.MatchingDiameter.Value; result = true; } if (matching.MatchingMinorLoss.HasValue) { + if (visual.MinorLoss != matching.MatchingMinorLoss.Value) + { + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.MinorLoss), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); + } visual.MinorLoss = matching.MatchingMinorLoss.Value; result = true; } @@ -3207,6 +3309,9 @@ } hydroInfo.Curves.Add(curvevql); visual.CurveQL = curvevql.Code; + changeHelper?.Append(curvevql, eChangeType.Add); + changeHelper?.Append(visual, eChangeType.Update); + propStatusHelper?.UpdatePropStatus(visual.Code, nameof(visual.CurveQL), ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃浜у搧閰嶇疆鍖归厤淇敼"); result = true; } else @@ -3215,6 +3320,7 @@ { curvevql.DbId = matching.MatchingCurveDbId; curvevql.CurveData = matching.MatchingCurveQL?.Select(x => new Yw.Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + changeHelper?.Append(curvevql, eChangeType.Update); result = true; } } -- Gitblit v1.9.3