From 0363984a82f507db16460a1441bf856c40e13481 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期三, 08 十一月 2023 13:17:36 +0800 Subject: [PATCH] 修改录入方式 --- Yw.Application.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user | 2 Yw.Application.Curve.Core/0-core/4-helper/ConfigHelper.cs | 13 + Yw.Service.Curve.Core/Yw.Service.Curve.Core.csproj | 5 Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/AddPumpCurveInput.cs | 4 Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/PumpCurveDto.cs | 6 Yw.Application.Curve.Core/9-tool/dto/PumpCurvePointToolDto.cs | 28 ++ Yw.Service.Curve.Core/paras_curve_settings.json | 15 - Yw.Application.Curve.Core/1-pump-curve/1-mgr/PumpCurve_Controller.cs | 8 Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/UpdatePumpCurveExMappingInput.cs | 4 Yw.Application.Curve.Core/0-core/2-extensions/Extensions.cs | 28 ++ Yw.Application.Curve.Core/0-core/3-dto/curve-info/CurveExpressInput.cs | 36 +++ Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/PumpCurveExMapping_Controller.cs | 2 Yw.Service.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user | 2 Yw.Application.Curve.Core/0-core/3-dto/curve-info/CurveExpressDto.cs | 38 +++ Yw.Application.Curve.Core/0-core/1-mapper/Mapper.cs | 9 /dev/null | 13 - Yw.Application.Curve.Core/9-tool/dto/PumpCurveExpressToolOutput.cs | 23 ++ Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/PumpCurveExMappingDto.cs | 6 Yw.Application.Curve.Core/0-core/3-dto/UpdatePumpCurveExpressInput.cs | 13 + Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/UpdatePumpCurveInput.cs | 4 Yw.Application.Curve.Core/Yw.Application.Curve.Core.csproj | 8 Yw.Application.Curve.Core/9-tool/CurveTool_Controller.cs | 115 ++++++++++ Yw.Application.Curve.Core/9-tool/dto/CurveExpressToolInput.cs | 50 ++++ Yw.Application.Curve.Core/9-tool/dto/PumpCurveExpressToolInput.cs | 102 +++++++++ Yw.Application.Curve.Core/0-core/3-dto/curve-info/PumpCurveExpressDto.cs | 44 ++++ Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/AddPumpCurveExMappingInput.cs | 4 Yw.Application.Curve.Core/0-core/3-dto/curve-info/PumpCurveExpressInput.cs | 23 ++ Yw.Service.Curve.Core/3-settings/paras/Paras_Curve.cs | 5 28 files changed, 554 insertions(+), 56 deletions(-) diff --git a/Yw.Application.Curve.Core/0-core/1-mapper/Mapper.cs b/Yw.Application.Curve.Core/0-core/1-mapper/Mapper.cs index f5e8823..93ecf44 100644 --- a/Yw.Application.Curve.Core/0-core/1-mapper/Mapper.cs +++ b/Yw.Application.Curve.Core/0-core/1-mapper/Mapper.cs @@ -14,15 +14,14 @@ #region 1-pump-curve - config.ForType<Model.PumpCurve, PumpCurveDto>(); config.ForType<AddPumpCurveInput, Model.PumpCurve>() - .Map(dest => dest.CurveInfo, src => src.CurveInfo) + .Map(dest => dest.CurveInfo, src => src.CurveExpress.Transfer()) .Map(dest => dest.CoordParas, src => src.CoordParas) .Map(dest => dest.CreateUserID, src => UserManager.UserID) .Map(dest => dest.CreateTime, src => DateTime.Now) .Map(dest => dest.CreateUserName, src => UserManager.UserName); config.ForType<UpdatePumpCurveInput, Model.PumpCurve>() - .Map(dest => dest.CurveInfo, src => src.CurveInfo) + .Map(dest => dest.CurveInfo, src => src.CurveExpress.Transfer()) .Map(dest => dest.CoordParas, src => src.CoordParas) .Map(dest => dest.UpdateTime, src => DateTime.Now) .Map(dest => dest.UpdateUserID, src => UserManager.UserID) @@ -42,14 +41,14 @@ #region 3-pump-curve-mapping-extension config.ForType<AddPumpCurveExMappingInput, Model.PumpCurve>() - .Map(dest => dest.CurveInfo, src => src.CurveInfo) + .Map(dest => dest.CurveInfo, src => src.CurveExpress.Transfer()) .Map(dest => dest.CoordParas, src => src.CoordParas) .Map(dest => dest.CreateUserID, src => UserManager.UserID) .Map(dest => dest.CreateTime, src => DateTime.Now) .Map(dest => dest.CreateUserName, src => UserManager.UserName); config.ForType<UpdatePumpCurveExMappingInput, Model.PumpCurve>() - .Map(dest => dest.CurveInfo, src => src.CurveInfo) + .Map(dest => dest.CurveInfo, src => src.CurveExpress.Transfer()) .Map(dest => dest.CoordParas, src => src.CoordParas) .Map(dest => dest.UpdateTime, src => DateTime.Now) .Map(dest => dest.UpdateUserID, src => UserManager.UserID) diff --git a/Yw.Application.Curve.Core/0-core/2-extensions/Extensions.cs b/Yw.Application.Curve.Core/0-core/2-extensions/Extensions.cs index e2cb858..3790f06 100644 --- a/Yw.Application.Curve.Core/0-core/2-extensions/Extensions.cs +++ b/Yw.Application.Curve.Core/0-core/2-extensions/Extensions.cs @@ -5,9 +5,33 @@ /// </summary> public static class Extensions { + /// <summary> + /// 杞崲 + /// </summary> + public static Yw.Model.Curve.PumpCurveInfoModel Transfer(this PumpCurveExpressInput input) + { + if (input == null) + { + return default; + } + var vm = new Yw.Model.Curve.PumpCurveInfoModel(); + vm.CurveQH = input.CurveQH.Transfer(); + vm.CurveQP = input.CurveQP.Transfer(); + vm.CurveQE = input.CurveQE.Transfer(); + return vm; + } - - + /// <summary> + /// 杞崲 + /// </summary> + public static Yw.Curve.CurveExpress Transfer(this CurveExpressInput input) + { + if (input == null) + { + return default; + } + return FitHelper.BuildCurveExpress(input.DefinePoints, input.FitType); + } } diff --git a/Yw.Application.Curve.Core/0-core/3-dto/UpdatePumpCurveExpressInput.cs b/Yw.Application.Curve.Core/0-core/3-dto/UpdatePumpCurveExpressInput.cs new file mode 100644 index 0000000..8daa6a0 --- /dev/null +++ b/Yw.Application.Curve.Core/0-core/3-dto/UpdatePumpCurveExpressInput.cs @@ -0,0 +1,13 @@ +锘縩amespace Yw.Application.Curve +{ + /// <summary> + /// + /// </summary> + public class UpdatePumpCurveExpressInput : IDInput + { + /// <summary> + /// 鏇茬嚎琛ㄨ揪寮� + /// </summary> + public PumpCurveExpressInput CurveExpress { get; set; } + } +} diff --git a/Yw.Application.Curve.Core/0-core/3-dto/UpdatePumpCurveInfoInput.cs b/Yw.Application.Curve.Core/0-core/3-dto/UpdatePumpCurveInfoInput.cs deleted file mode 100644 index 39d2334..0000000 --- a/Yw.Application.Curve.Core/0-core/3-dto/UpdatePumpCurveInfoInput.cs +++ /dev/null @@ -1,13 +0,0 @@ -锘縩amespace Yw.Application.Curve -{ - /// <summary> - /// - /// </summary> - public class UpdatePumpCurveInfoInput : IDInput - { - /// <summary> - /// 鏇茬嚎淇℃伅 - /// </summary> - public PumpCurveInfoModel CurveInfo { get; set; } - } -} diff --git a/Yw.Application.Curve.Core/0-core/3-dto/curve-info/CurveExpressDto.cs b/Yw.Application.Curve.Core/0-core/3-dto/curve-info/CurveExpressDto.cs new file mode 100644 index 0000000..3e33cd2 --- /dev/null +++ b/Yw.Application.Curve.Core/0-core/3-dto/curve-info/CurveExpressDto.cs @@ -0,0 +1,38 @@ +锘縩amespace Yw.Application.Curve +{ + /// <summary> + /// + /// </summary> + public class CurveExpressDto + { + /// <summary> + /// + /// </summary> + public CurveExpressDto() { } + + /// <summary> + /// + /// </summary> + public CurveExpressDto(Yw.Curve.CurveExpress rhs) + { + this.FitType = rhs.FitType; + this.DefinePoints = rhs.DefinePoints; + this.PointList = FitHelper.GetFitPoints(rhs, ConfigHelper.PointNumber); + } + + /// <summary> + /// 鎷熷悎绫诲瀷 + /// </summary> + public eFitType FitType { get; set; } + + /// <summary> + /// 瀹氫箟鐐瑰垪琛� + /// </summary> + public List<CurvePoint> DefinePoints { get; set; } + + /// <summary> + /// 鎷熷悎鐐瑰垪琛� + /// </summary> + public List<CurvePoint> PointList { get; set; } + } +} diff --git a/Yw.Application.Curve.Core/0-core/3-dto/curve-info/CurveExpressInput.cs b/Yw.Application.Curve.Core/0-core/3-dto/curve-info/CurveExpressInput.cs new file mode 100644 index 0000000..4a8858e --- /dev/null +++ b/Yw.Application.Curve.Core/0-core/3-dto/curve-info/CurveExpressInput.cs @@ -0,0 +1,36 @@ +锘縩amespace Yw.Application.Curve +{ + /// <summary> + /// + /// </summary> + public class CurveExpressInput : IValidatableObject + { + /// <summary> + /// 鎷熷悎绫诲瀷 + /// </summary> + public eFitType FitType { get; set; } + + /// <summary> + /// 瀹氫箟鐐瑰垪琛� + /// </summary> + public List<CurvePoint> DefinePoints { get; set; } + + /// <summary> + /// + /// </summary> + public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) + { + if (DefinePoints == null || DefinePoints.Count < 1) + { + yield return new ValidationResult("DefinePoints 鏁伴噺涓嶈冻锛岃嚦灏�4涓偣", new string[] { nameof(DefinePoints) }); + } + + var fitPow = FitHelper.GetFitPow(FitType); + if (DefinePoints.Count < fitPow + 1) + { + yield return new ValidationResult($"DefinePoints 鏁伴噺涓嶈冻锛岃嚦灏憑fitPow + 1}涓偣", new string[] { nameof(DefinePoints) }); + } + } + + } +} diff --git a/Yw.Application.Curve.Core/0-core/3-dto/curve-info/PumpCurveExpressDto.cs b/Yw.Application.Curve.Core/0-core/3-dto/curve-info/PumpCurveExpressDto.cs new file mode 100644 index 0000000..fe308a8 --- /dev/null +++ b/Yw.Application.Curve.Core/0-core/3-dto/curve-info/PumpCurveExpressDto.cs @@ -0,0 +1,44 @@ +锘縩amespace Yw.Application.Curve +{ + /// <summary> + /// + /// </summary> + public class PumpCurveExpressDto + { + /// <summary> + /// + /// </summary> + public PumpCurveExpressDto() { } + + /// <summary> + /// + /// </summary> + public PumpCurveExpressDto(Model.Curve.PumpCurveInfoModel rhs) + { + this.CurveQH = new CurveExpressDto(rhs.CurveQH); + if (rhs.CurveQP != null) + { + this.CurveQP = new CurveExpressDto(rhs.CurveQP); + } + if (rhs.CurveQE != null) + { + this.CurveQE = new CurveExpressDto(rhs.CurveQE); + } + } + + /// <summary> + /// 娴侀噺鎵▼鏇茬嚎 + /// </summary> + public CurveExpressDto CurveQH { get; set; } + + /// <summary> + /// 娴侀噺鍔熺巼鏇茬嚎 + /// </summary> + public CurveExpressDto CurveQP { get; set; } + + /// <summary> + /// 娴侀噺鏁堢巼鏇茬嚎 + /// </summary> + public CurveExpressDto CurveQE { get; set; } + } +} diff --git a/Yw.Application.Curve.Core/0-core/3-dto/curve-info/PumpCurveExpressInput.cs b/Yw.Application.Curve.Core/0-core/3-dto/curve-info/PumpCurveExpressInput.cs new file mode 100644 index 0000000..60a352b --- /dev/null +++ b/Yw.Application.Curve.Core/0-core/3-dto/curve-info/PumpCurveExpressInput.cs @@ -0,0 +1,23 @@ +锘縩amespace Yw.Application.Curve +{ + /// <summary> + /// + /// </summary> + public class PumpCurveExpressInput + { + /// <summary> + /// 娴侀噺鎵▼鏇茬嚎 + /// </summary> + public CurveExpressInput CurveQH { get; set; } + + /// <summary> + /// 娴侀噺鍔熺巼鏇茬嚎 + /// </summary> + public CurveExpressInput CurveQP { get; set; } + + /// <summary> + /// 娴侀噺鏁堢巼鏇茬嚎 + /// </summary> + public CurveExpressInput CurveQE { get; set; } + } +} diff --git a/Yw.Application.Curve.Core/0-core/4-helper/ConfigHelper.cs b/Yw.Application.Curve.Core/0-core/4-helper/ConfigHelper.cs new file mode 100644 index 0000000..cf4d059 --- /dev/null +++ b/Yw.Application.Curve.Core/0-core/4-helper/ConfigHelper.cs @@ -0,0 +1,13 @@ +锘縩amespace Yw.Application.Curve +{ + internal class ConfigHelper + { + /// <summary> + /// 鐐规暟閲� + /// </summary> + public static int PointNumber + { + get { return Settings.CurveParasHelper.Curve.PointNumber; } + } + } +} diff --git a/Yw.Application.Curve.Core/1-pump-curve/1-mgr/PumpCurve_Controller.cs b/Yw.Application.Curve.Core/1-pump-curve/1-mgr/PumpCurve_Controller.cs index 5d91201..6472051 100644 --- a/Yw.Application.Curve.Core/1-pump-curve/1-mgr/PumpCurve_Controller.cs +++ b/Yw.Application.Curve.Core/1-pump-curve/1-mgr/PumpCurve_Controller.cs @@ -98,13 +98,13 @@ } /// <summary> - /// 更新曲线信息 + /// 更新曲线表达式 /// </summary> - [Route("UpdateCurveInfo@V1.0")] + [Route("UpdateCurveExpress@V1.0")] [HttpPut] - public bool UpdateCurveInfo(UpdatePumpCurveInfoInput input) + public bool UpdateCurveExpress(UpdatePumpCurveExpressInput input) { - var bol = _service.UpdateCurveInfo(input.ID, input.CurveInfo, UserManager.UserID, DateTime.Now); + var bol = _service.UpdateCurveInfo(input.ID, input.CurveExpress.Transfer(), UserManager.UserID, DateTime.Now); return bol; } diff --git a/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/AddPumpCurveInput.cs b/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/AddPumpCurveInput.cs index d66238f..debebbd 100644 --- a/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/AddPumpCurveInput.cs +++ b/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/AddPumpCurveInput.cs @@ -30,10 +30,10 @@ public Dictionary<string, string> CoordParas { get; set; } /// <summary> - /// 鏇茬嚎淇℃伅 + /// 鏇茬嚎琛ㄨ揪寮� /// </summary> [Required] - public PumpCurveInfoModel CurveInfo { get; set; } + public PumpCurveExpressInput CurveExpress { get; set; } /// <summary> /// 鍙俊搴� diff --git a/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/PumpCurveDto.cs b/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/PumpCurveDto.cs index dc2bfde..2f40aaf 100644 --- a/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/PumpCurveDto.cs +++ b/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/PumpCurveDto.cs @@ -20,7 +20,7 @@ this.SourceWay = rhs.SourceWay; this.CreateMethod = rhs.CreateMethod; this.CoordParas = rhs.CoordParas; - this.CurveInfo = rhs.CurveInfo; + this.CurveExpress = new PumpCurveExpressDto(rhs.CurveInfo); this.ReliabilityStatus = rhs.ReliabilityStatus; this.CreateTime = rhs.CreateTime; this.CreateUserID = rhs.CreateUserID; @@ -57,9 +57,9 @@ public Dictionary<string, string> CoordParas { get; set; } /// <summary> - /// 鏇茬嚎淇℃伅 + /// 鏇茬嚎琛ㄨ揪寮� /// </summary> - public PumpCurveInfoModel CurveInfo { get; set; } + public PumpCurveExpressDto CurveExpress { get; set; } /// <summary> /// 鍙俊搴� diff --git a/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/UpdatePumpCurveInput.cs b/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/UpdatePumpCurveInput.cs index 178ee76..f7f5bdc 100644 --- a/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/UpdatePumpCurveInput.cs +++ b/Yw.Application.Curve.Core/1-pump-curve/1-mgr/dto/UpdatePumpCurveInput.cs @@ -35,10 +35,10 @@ public Dictionary<string, string> CoordParas { get; set; } /// <summary> - /// 鏇茬嚎淇℃伅 + /// 鏇茬嚎琛ㄨ揪寮� /// </summary> [Required] - public PumpCurveInfoModel CurveInfo { get; set; } + public PumpCurveExpressInput CurveExpress { get; set; } /// <summary> /// 鍙俊搴� diff --git a/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/PumpCurveExMapping_StandardController.cs b/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/PumpCurveExMapping_Controller.cs similarity index 97% rename from Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/PumpCurveExMapping_StandardController.cs rename to Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/PumpCurveExMapping_Controller.cs index bcda611..62a00db 100644 --- a/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/PumpCurveExMapping_StandardController.cs +++ b/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/PumpCurveExMapping_Controller.cs @@ -5,7 +5,7 @@ /// </summary> [Route("Curve/Pump/Mapping/Extension")] [ApiDescriptionSettings("Curve", Name = "娉垫洸绾挎槧灏勬嫇灞�", Order = 8000)] - public partial class PumpCurveExMapping_StandardController : IDynamicApiController + public partial class PumpCurveExMapping_Controller : IDynamicApiController { private readonly Service.PumpCurveExMapping _service = new(); diff --git a/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/AddPumpCurveExMappingInput.cs b/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/AddPumpCurveExMappingInput.cs index 3f1ab77..fa5c94b 100644 --- a/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/AddPumpCurveExMappingInput.cs +++ b/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/AddPumpCurveExMappingInput.cs @@ -42,10 +42,10 @@ public Dictionary<string, string> CoordParas { get; set; } /// <summary> - /// 鏇茬嚎淇℃伅 + /// 鏇茬嚎琛ㄨ揪寮� /// </summary> [Required] - public PumpCurveInfoModel CurveInfo { get; set; } + public PumpCurveExpressInput CurveExpress { get; set; } /// <summary> /// 鍙俊搴� diff --git a/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/PumpCurveExMappingDto.cs b/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/PumpCurveExMappingDto.cs index 12f7b2f..96dbd0d 100644 --- a/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/PumpCurveExMappingDto.cs +++ b/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/PumpCurveExMappingDto.cs @@ -23,7 +23,7 @@ this.SourceWay = curve.SourceWay; this.CreateMethod = curve.CreateMethod; this.CoordParas = curve.CoordParas; - this.CurveInfo = curve.CurveInfo; + this.CurveExpress = new PumpCurveExpressDto(curve.CurveInfo); this.ReliabilityStatus = curve.ReliabilityStatus; this.InputTime = curve.InputTime; this.IsWorking = mapping.IsWorking; @@ -78,9 +78,9 @@ public Dictionary<string, string> CoordParas { get; set; } /// <summary> - /// 鏇茬嚎淇℃伅 + /// 鏇茬嚎琛ㄨ揪寮� /// </summary> - public PumpCurveInfoModel CurveInfo { get; set; } + public PumpCurveExpressDto CurveExpress { get; set; } /// <summary> /// 鍙俊搴� diff --git a/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/UpdatePumpCurveExMappingInput.cs b/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/UpdatePumpCurveExMappingInput.cs index ed3100b..a07c2fe 100644 --- a/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/UpdatePumpCurveExMappingInput.cs +++ b/Yw.Application.Curve.Core/3-pump-curve-extension/1-mgr/dto/UpdatePumpCurveExMappingInput.cs @@ -47,10 +47,10 @@ public Dictionary<string, string> CoordParas { get; set; } /// <summary> - /// 鏇茬嚎淇℃伅 + /// 鏇茬嚎琛ㄨ揪寮� /// </summary> [Required] - public PumpCurveInfoModel CurveInfo { get; set; } + public PumpCurveExpressInput CurveExpress { get; set; } /// <summary> /// 鍙俊搴� diff --git a/Yw.Application.Curve.Core/9-tool/CurveTool_Controller.cs b/Yw.Application.Curve.Core/9-tool/CurveTool_Controller.cs new file mode 100644 index 0000000..ee99db1 --- /dev/null +++ b/Yw.Application.Curve.Core/9-tool/CurveTool_Controller.cs @@ -0,0 +1,115 @@ +锘縩amespace Yw.Application +{ + /// <summary> + /// CurveTool + /// </summary> + [Route("Curve/Tool")] + [ApiDescriptionSettings("Curve", Name = "鏇茬嚎宸ュ叿", Order = 1000)] + public partial class CurveTool_Controller : IDynamicApiController + { + /// <summary> + /// 鐢熸垚鎷熷悎鐐瑰垪琛� + /// </summary> + [Route("GeneralFitPointList@V1.0")] + [HttpPost] + public List<CurvePoint> GeneralFitPointList([Required] CurveExpressToolInput input) + { + var fitHelper = new FitHelper(input.DefinePoints, input.FitType); + var pointNumber = ConfigHelper.PointNumber; + if (input.PointNumber.HasValue) + { + pointNumber = input.PointNumber.Value; + } + var list = fitHelper.GetFitPoints(pointNumber); + return list; + } + + /// <summary> + /// 鐢熸垚娉垫嫙鍚堢偣鍒楄〃 + /// </summary> + [Route("GeneralPumpFitPointList@V1.0")] + [HttpPost] + public PumpCurveExpressToolOutput GeneralPumpFitPointList([Required] PumpCurveExpressToolInput input) + { + var vm = new PumpCurveExpressToolOutput(); + + //鎵▼ + var pointNumberQH = ConfigHelper.PointNumber; + if (input.PointNumberQH.HasValue) + { + pointNumberQH = input.PointNumberQH.Value; + } + var pointListQH = input.DefinePoints.Select(x => new CurvePoint(x.Q, x.H)).ToList(); + var fitHelperQH = new FitHelper(pointListQH, input.FitTypeQH); + vm.PointListQH = fitHelperQH.GetFitPoints(pointNumberQH); + + //鍔熺巼 + var hasQP = false; + var pointNumberQP = ConfigHelper.PointNumber; + if (input.PointNumberQP.HasValue) + { + pointNumberQP = input.PointNumberQP.Value; + } + var pointListQP = input.DefinePoints.Where(x => x.P.HasValue).Select(x => new CurvePoint(x.Q, x.P.Value)).ToList(); + if (pointListQP != null && pointListQP.Count > 3) + { + var fitPowQP = FitHelper.GetFitPow(input.FitTypeQP); + if (pointListQP.Count > fitPowQP) + { + var fitHelperQP = new FitHelper(pointListQP, input.FitTypeQP); + vm.PointListQP = fitHelperQP.GetFitPoints(pointNumberQP); + hasQP = true; + } + } + + + //鏁堢巼 + var hasQE = false; + var pointNumberQE = ConfigHelper.PointNumber; + if (input.PointNumberQE.HasValue) + { + pointNumberQE = input.PointNumberQE.Value; + } + var pointListQE = input.DefinePoints.Where(x => x.E.HasValue).Select(x => new CurvePoint(x.Q, x.E.Value)).ToList(); + if (pointListQE != null && pointListQE.Count > 3) + { + var fitPowQE = FitHelper.GetFitPow(input.FitTypeQE); + if (pointListQE.Count > fitPowQE) + { + var fitHelperQE = new FitHelper(pointListQE, input.FitTypeQE); + vm.PointListQE = fitHelperQE.GetFitPoints(pointNumberQE); + hasQE = true; + } + } + + if (!hasQP && hasQE) + { + pointListQP = new List<CurvePoint>(); + foreach (var item in pointListQE) + { + var pointQH = pointListQH.Find(x => x.X == item.X); + var p = Yw.Calculation.PumpCalcuHelper.CalculateP(pointQH.X, pointQH.Y, item.Y); + pointListQP.Add(new CurvePoint(item.X, p)); + } + var fitHelperQP = new FitHelper(pointListQP, input.FitTypeQE); + vm.PointListQP = fitHelperQP.GetFitPoints(pointNumberQP); + } + else if (hasQP && !hasQE) + { + pointListQE = new List<CurvePoint>(); + foreach (var item in pointListQP) + { + var pointQH = pointListQH.Find(x => x.X == item.X); + var e = Yw.Calculation.PumpCalcuHelper.CalculateE(pointQH.X, pointQH.Y, item.Y); + pointListQE.Add(new CurvePoint(item.X, e)); + } + var fitHelperQE = new FitHelper(pointListQE, input.FitTypeQP); + vm.PointListQE = fitHelperQE.GetFitPoints(pointNumberQE); + } + + return vm; + + } + + } +} \ No newline at end of file diff --git a/Yw.Application.Curve.Core/9-tool/dto/CurveExpressToolInput.cs b/Yw.Application.Curve.Core/9-tool/dto/CurveExpressToolInput.cs new file mode 100644 index 0000000..732e08e --- /dev/null +++ b/Yw.Application.Curve.Core/9-tool/dto/CurveExpressToolInput.cs @@ -0,0 +1,50 @@ +锘縩amespace Yw.Application +{ + /// <summary> + /// + /// </summary> + public class CurveExpressToolInput : IValidatableObject + { + /// <summary> + /// 鎷熷悎绫诲瀷 + /// </summary> + [Required] + public eFitType FitType { get; set; } + + /// <summary> + /// 瀹氫箟鐐瑰垪琛� + /// </summary> + [Required] + public List<CurvePoint> DefinePoints { get; set; } + + /// <summary> + /// 鐐规暟閲� + /// </summary> + public int? PointNumber { get; set; } + + /// <summary> + /// + /// </summary> + public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) + { + if (DefinePoints == null || DefinePoints.Count < 4) + { + yield return new ValidationResult("DefinePoints 鏁伴噺涓嶈冻锛岃嚦灏�4涓偣", new string[] { nameof(DefinePoints) }); + } + + var fitPow = FitHelper.GetFitPow(FitType); + if (DefinePoints.Count < fitPow + 1) + { + yield return new ValidationResult($"DefinePoints 鏁伴噺涓嶈冻锛岃嚦灏憑fitPow + 1}涓偣", new string[] { nameof(DefinePoints) }); + } + if (PointNumber.HasValue) + { + if (PointNumber.Value < 6) + { + yield return new ValidationResult($"PointNumber 涓嶈兘灏忎簬6", new string[] { nameof(PointNumber) }); + } + } + } + + } +} diff --git a/Yw.Application.Curve.Core/9-tool/dto/PumpCurveExpressToolInput.cs b/Yw.Application.Curve.Core/9-tool/dto/PumpCurveExpressToolInput.cs new file mode 100644 index 0000000..d0c7e7c --- /dev/null +++ b/Yw.Application.Curve.Core/9-tool/dto/PumpCurveExpressToolInput.cs @@ -0,0 +1,102 @@ +锘縩amespace Yw.Application +{ + /// <summary> + /// + /// </summary> + public class PumpCurveExpressToolInput : IValidatableObject + { + /// <summary> + /// 娴侀噺鎵▼鎷熷悎绫诲瀷 + /// </summary> + public eFitType FitTypeQH { get; set; } + + /// <summary> + /// 娴侀噺鍔熺巼鎷熷悎绫诲瀷 + /// </summary> + public eFitType FitTypeQP { get; set; } + + /// <summary> + /// 娴侀噺鏁堢巼鎷熷悎绫诲瀷 + /// </summary> + public eFitType FitTypeQE { get; set; } + + /// <summary> + /// 娴侀噺鎵▼鐐规暟閲� + /// </summary> + public int? PointNumberQH { get; set; } + + /// <summary> + /// 娴侀噺鍔熺巼鐐规暟閲� + /// </summary> + public int? PointNumberQP { get; set; } + + /// <summary> + /// 娴侀噺鏁堢巼鐐规暟閲� + /// </summary> + public int? PointNumberQE { get; set; } + + /// <summary> + /// 瀹氫箟鐐瑰垪琛� + /// </summary> + public List<PumpCurvePointToolDto> DefinePoints { get; set; } + + + /// <summary> + /// + /// </summary> + public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) + { + if (this.DefinePoints == null || this.DefinePoints.Count < 4) + { + yield return new ValidationResult("DefinePoints 鏁伴噺涓嶈冻锛岃嚦灏�4涓偣", new string[] { nameof(DefinePoints) }); + } + + var fitPowQH = FitHelper.GetFitPow(this.FitTypeQH); + if (this.DefinePoints.Count < fitPowQH + 1) + { + yield return new ValidationResult($"DefinePoints 鏁伴噺涓嶈冻锛岃嚦灏憑fitPowQH + 1}涓偣", new string[] { nameof(DefinePoints) }); + } + + if (this.PointNumberQH.HasValue) + { + if (this.PointNumberQH.Value < 6) + { + yield return new ValidationResult($"PointNumberQH 涓嶈兘灏忎簬6", new string[] { nameof(PointNumberQH) }); + } + } + + var fitPowQP = FitHelper.GetFitPow(this.FitTypeQP); + if (this.DefinePoints.Count < fitPowQP + 1) + { + yield return new ValidationResult($"DefinePoints 鏁伴噺涓嶈冻锛岃嚦灏憑fitPowQP + 1}涓偣", new string[] { nameof(DefinePoints) }); + } + if (this.PointNumberQP.HasValue) + { + if (this.PointNumberQP.Value < 6) + { + yield return new ValidationResult($"PointNumberQP 涓嶈兘灏忎簬6", new string[] { nameof(PointNumberQP) }); + } + } + + var fitPowQE = FitHelper.GetFitPow(this.FitTypeQE); + if (this.DefinePoints.Count < fitPowQE + 1) + { + yield return new ValidationResult($"DefinePoints 鏁伴噺涓嶈冻锛岃嚦灏憑fitPowQE + 1}涓偣", new string[] { nameof(DefinePoints) }); + } + if (this.PointNumberQE.HasValue) + { + if (this.PointNumberQE.Value < 6) + { + yield return new ValidationResult($"PointNumberQE 涓嶈兘灏忎簬6", new string[] { nameof(PointNumberQE) }); + } + } + + + + + + } + + + } +} diff --git a/Yw.Application.Curve.Core/9-tool/dto/PumpCurveExpressToolOutput.cs b/Yw.Application.Curve.Core/9-tool/dto/PumpCurveExpressToolOutput.cs new file mode 100644 index 0000000..88b5aa5 --- /dev/null +++ b/Yw.Application.Curve.Core/9-tool/dto/PumpCurveExpressToolOutput.cs @@ -0,0 +1,23 @@ +锘縩amespace Yw.Application +{ + /// <summary> + /// + /// </summary> + public class PumpCurveExpressToolOutput + { + /// <summary> + /// 娴侀噺鎵▼鐐瑰垪琛� + /// </summary> + public List<CurvePoint> PointListQH { get; set; } + + /// <summary> + /// 娴侀噺鍔熺巼鐐瑰垪琛� + /// </summary> + public List<CurvePoint> PointListQP { get; set; } + + /// <summary> + /// 娴侀噺鏁堢巼鐐瑰垪琛� + /// </summary> + public List<CurvePoint> PointListQE { get; set; } + } +} diff --git a/Yw.Application.Curve.Core/9-tool/dto/PumpCurvePointToolDto.cs b/Yw.Application.Curve.Core/9-tool/dto/PumpCurvePointToolDto.cs new file mode 100644 index 0000000..d9a49db --- /dev/null +++ b/Yw.Application.Curve.Core/9-tool/dto/PumpCurvePointToolDto.cs @@ -0,0 +1,28 @@ +锘縩amespace Yw.Application +{ + /// <summary> + /// + /// </summary> + public class PumpCurvePointToolDto + { + /// <summary> + /// 娴侀噺 + /// </summary> + public double Q { get; set; } + + /// <summary> + /// 鎵▼ + /// </summary> + public double H { get; set; } + + /// <summary> + /// 鍔熺巼 + /// </summary> + public double? P { get; set; } + + /// <summary> + /// 鏁堢巼 + /// </summary> + public double? E { get; set; } + } +} diff --git a/Yw.Application.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user b/Yw.Application.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user index 98cb734..691e5cf 100644 --- a/Yw.Application.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/Yw.Application.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -4,6 +4,6 @@ --> <Project> <PropertyGroup> - <History>True|2023-11-07T03:05:59.7264456Z;True|2023-11-07T11:05:52.0532331+08:00;True|2023-10-24T23:17:54.0748672+08:00;True|2023-10-21T14:38:03.2722172+08:00;True|2023-09-26T14:10:22.2485377+08:00;True|2023-08-29T11:46:24.5710627+08:00;True|2023-08-23T11:34:59.7400481+08:00;True|2023-08-21T13:31:52.3074533+08:00;True|2023-08-18T16:51:57.4477528+08:00;True|2023-08-18T13:49:11.3231257+08:00;True|2023-08-17T14:51:49.8452519+08:00;True|2023-08-17T11:44:23.5001902+08:00;True|2023-08-16T17:43:46.8283841+08:00;True|2023-08-16T11:10:43.5110570+08:00;True|2023-08-15T16:51:35.3016945+08:00;True|2023-08-15T15:04:30.4334950+08:00;True|2023-08-10T15:23:57.4783701+08:00;True|2023-08-08T10:01:53.7466486+08:00;True|2023-08-07T11:49:59.7506144+08:00;True|2023-08-05T10:38:53.6104500+08:00;True|2023-08-02T15:25:21.6024349+08:00;True|2023-08-02T15:20:20.4985081+08:00;True|2023-08-02T13:31:18.6184059+08:00;True|2023-08-02T13:30:52.4975034+08:00;True|2023-08-02T13:29:34.9010019+08:00;True|2023-08-02T13:28:35.4729592+08:00;True|2023-07-25T15:08:42.3375388+08:00;True|2023-07-17T10:31:53.5181752+08:00;True|2023-07-17T10:31:44.6652344+08:00;True|2023-07-13T12:10:11.2591498+08:00;True|2023-05-25T18:02:16.3580168+08:00;True|2023-05-25T15:44:32.4909866+08:00;</History> + <History>True|2023-11-08T03:55:54.5929525Z;True|2023-11-07T11:05:59.7264456+08:00;True|2023-11-07T11:05:52.0532331+08:00;True|2023-10-24T23:17:54.0748672+08:00;True|2023-10-21T14:38:03.2722172+08:00;True|2023-09-26T14:10:22.2485377+08:00;True|2023-08-29T11:46:24.5710627+08:00;True|2023-08-23T11:34:59.7400481+08:00;True|2023-08-21T13:31:52.3074533+08:00;True|2023-08-18T16:51:57.4477528+08:00;True|2023-08-18T13:49:11.3231257+08:00;True|2023-08-17T14:51:49.8452519+08:00;True|2023-08-17T11:44:23.5001902+08:00;True|2023-08-16T17:43:46.8283841+08:00;True|2023-08-16T11:10:43.5110570+08:00;True|2023-08-15T16:51:35.3016945+08:00;True|2023-08-15T15:04:30.4334950+08:00;True|2023-08-10T15:23:57.4783701+08:00;True|2023-08-08T10:01:53.7466486+08:00;True|2023-08-07T11:49:59.7506144+08:00;True|2023-08-05T10:38:53.6104500+08:00;True|2023-08-02T15:25:21.6024349+08:00;True|2023-08-02T15:20:20.4985081+08:00;True|2023-08-02T13:31:18.6184059+08:00;True|2023-08-02T13:30:52.4975034+08:00;True|2023-08-02T13:29:34.9010019+08:00;True|2023-08-02T13:28:35.4729592+08:00;True|2023-07-25T15:08:42.3375388+08:00;True|2023-07-17T10:31:53.5181752+08:00;True|2023-07-17T10:31:44.6652344+08:00;True|2023-07-13T12:10:11.2591498+08:00;True|2023-05-25T18:02:16.3580168+08:00;True|2023-05-25T15:44:32.4909866+08:00;</History> </PropertyGroup> </Project> \ No newline at end of file diff --git a/Yw.Application.Curve.Core/Yw.Application.Curve.Core.csproj b/Yw.Application.Curve.Core/Yw.Application.Curve.Core.csproj index 0fb7b83..be76585 100644 --- a/Yw.Application.Curve.Core/Yw.Application.Curve.Core.csproj +++ b/Yw.Application.Curve.Core/Yw.Application.Curve.Core.csproj @@ -7,7 +7,7 @@ <RootNamespace>Yw.Application</RootNamespace> <GenerateDocumentationFile>True</GenerateDocumentationFile> <GeneratePackageOnBuild>True</GeneratePackageOnBuild> - <Version>1.0.0</Version> + <Version>1.0.1</Version> </PropertyGroup> <ItemGroup> @@ -40,7 +40,11 @@ <ItemGroup> <PackageReference Include="Yw.Application.Core" Version="1.2.5" /> <PackageReference Include="Yw.Quartz.Core" Version="1.0.0" /> - <PackageReference Include="Yw.Service.Curve.Core" Version="1.0.0" /> + <PackageReference Include="Yw.Service.Curve.Core" Version="1.0.1" /> + </ItemGroup> + + <ItemGroup> + <Folder Include="2-pump-curve-mapping\2-std\" /> </ItemGroup> </Project> diff --git a/Yw.Service.Curve.Core/3-settings/paras/Paras_Curve.cs b/Yw.Service.Curve.Core/3-settings/paras/Paras_Curve.cs index f9afd17..46330b4 100644 --- a/Yw.Service.Curve.Core/3-settings/paras/Paras_Curve.cs +++ b/Yw.Service.Curve.Core/3-settings/paras/Paras_Curve.cs @@ -11,6 +11,11 @@ /// </summary> public Paras_Curve_DataBase DataBase { get; set; } + /// <summary> + /// 鐐规暟閲� + /// </summary> + public int PointNumber { get; set; } + } } diff --git a/Yw.Service.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user b/Yw.Service.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user index 5791534..d8d6b50 100644 --- a/Yw.Service.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/Yw.Service.Curve.Core/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -4,6 +4,6 @@ --> <Project> <PropertyGroup> - <History>True|2023-11-07T03:00:32.3186525Z;True|2023-11-07T11:00:20.7173571+08:00;True|2023-10-24T23:16:33.8643304+08:00;True|2023-10-21T14:19:25.2606768+08:00;True|2023-09-26T14:09:33.8756384+08:00;True|2023-08-29T11:33:28.5466784+08:00;True|2023-08-21T13:26:43.3162454+08:00;True|2023-08-18T13:08:38.6378644+08:00;True|2023-08-16T17:42:45.3685771+08:00;True|2023-08-16T11:48:48.4326811+08:00;True|2023-08-15T15:00:14.6493599+08:00;True|2023-08-10T15:20:03.2786400+08:00;True|2023-08-07T11:48:46.2865626+08:00;True|2023-08-07T11:15:37.1248435+08:00;True|2023-08-07T10:40:31.7277832+08:00;True|2023-08-04T17:10:25.6488475+08:00;True|2023-08-02T15:24:28.5531853+08:00;True|2023-08-02T15:19:18.2260163+08:00;True|2023-08-02T13:26:30.0499052+08:00;True|2023-07-17T10:30:15.0370305+08:00;True|2023-07-13T11:54:33.7989040+08:00;True|2023-07-13T11:54:23.3967174+08:00;True|2023-07-06T09:49:52.7407983+08:00;True|2023-05-25T15:37:23.5406830+08:00;False|2023-05-25T15:36:09.3589239+08:00;</History> + <History>True|2023-11-08T03:54:49.6715090Z;True|2023-11-07T11:00:32.3186525+08:00;True|2023-11-07T11:00:20.7173571+08:00;True|2023-10-24T23:16:33.8643304+08:00;True|2023-10-21T14:19:25.2606768+08:00;True|2023-09-26T14:09:33.8756384+08:00;True|2023-08-29T11:33:28.5466784+08:00;True|2023-08-21T13:26:43.3162454+08:00;True|2023-08-18T13:08:38.6378644+08:00;True|2023-08-16T17:42:45.3685771+08:00;True|2023-08-16T11:48:48.4326811+08:00;True|2023-08-15T15:00:14.6493599+08:00;True|2023-08-10T15:20:03.2786400+08:00;True|2023-08-07T11:48:46.2865626+08:00;True|2023-08-07T11:15:37.1248435+08:00;True|2023-08-07T10:40:31.7277832+08:00;True|2023-08-04T17:10:25.6488475+08:00;True|2023-08-02T15:24:28.5531853+08:00;True|2023-08-02T15:19:18.2260163+08:00;True|2023-08-02T13:26:30.0499052+08:00;True|2023-07-17T10:30:15.0370305+08:00;True|2023-07-13T11:54:33.7989040+08:00;True|2023-07-13T11:54:23.3967174+08:00;True|2023-07-06T09:49:52.7407983+08:00;True|2023-05-25T15:37:23.5406830+08:00;False|2023-05-25T15:36:09.3589239+08:00;</History> </PropertyGroup> </Project> \ No newline at end of file diff --git a/Yw.Service.Curve.Core/Yw.Service.Curve.Core.csproj b/Yw.Service.Curve.Core/Yw.Service.Curve.Core.csproj index ce3a792..53dfb68 100644 --- a/Yw.Service.Curve.Core/Yw.Service.Curve.Core.csproj +++ b/Yw.Service.Curve.Core/Yw.Service.Curve.Core.csproj @@ -7,7 +7,7 @@ <RootNamespace>Yw</RootNamespace> <GenerateDocumentationFile>True</GenerateDocumentationFile> <GeneratePackageOnBuild>True</GeneratePackageOnBuild> - <Version>1.0.0</Version> + <Version>1.0.1</Version> <Description>澧炲姞璁惧鍋ュ悍璇勪环鏁版嵁鍒嗗彂</Description> </PropertyGroup> @@ -56,6 +56,9 @@ <Content Update="C:\Users\admin\.nuget\packages\yw.service.core\1.0.6\contentFiles\any\net6.0\paras_service_settings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Update="C:\Users\admin\.nuget\packages\yw.service.core\1.1.2\contentFiles\any\net6.0\paras_service_settings.json"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Update="C:\Users\admin\.nuget\packages\yw.sqlsugar.core\1.0.0\contentFiles\any\net6.0\paras_sqlsugar_settings.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> diff --git a/Yw.Service.Curve.Core/paras_curve_settings.json b/Yw.Service.Curve.Core/paras_curve_settings.json index e7fce82..ec474c4 100644 --- a/Yw.Service.Curve.Core/paras_curve_settings.json +++ b/Yw.Service.Curve.Core/paras_curve_settings.json @@ -2,20 +2,11 @@ "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", - "Health": { + "Curve": { "DataBase": { - "ConnectString": "PORT=5432;DATABASE=yw_health;HOST=localhost;PASSWORD=123456;USER ID=postgres;", - "RecordConnectString": "PORT=5432;DATABASE=yw_health_record;HOST=localhost;PASSWORD=123456;USER ID=postgres;" + "ConnectString": "PORT=5432;DATABASE=yw_health;HOST=localhost;PASSWORD=123456;USER ID=postgres;" }, - "RedisCache": { - "Prefix": "yw" - }, - "Run": { - "ExchangeName": "yw-health-evaluation-record-run-exchange" - }, - "Task": { - "Frequency": 60 - } + "PointNumber": 12 } -- Gitblit v1.9.3