| | |
| | | namespace HStation.WinFrmUI |
| | | using SqlSugar; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | | /// <summary> |
| | | /// 资产匹配参数辅助类 |
| | |
| | | /// <summary> |
| | | /// 创建资产自动匹配ViewModel |
| | | /// </summary> |
| | | public static AssetsMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo) |
| | | public static AssetsMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | |
| | | var input = new AssetsMatchingViewModel(); |
| | | |
| | | //水泵 |
| | | input.PumpMatchingList = hydroInfo.Pumps?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | input.PumpMatchingList = hydroInfo.Pumps?.Select(x => Create(hydroInfo, x, allCalcuResultList)).ToList(); |
| | | |
| | | //阀门 |
| | | input.ValveMatchingList = hydroInfo.Valves?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | input.ValveMatchingList = hydroInfo.Valves?.Select(x => Create(hydroInfo, x, allCalcuResultList)).ToList(); |
| | | |
| | | //管道 |
| | | input.PipeMatchingList = hydroInfo.Pipes?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | input.PipeMatchingList = hydroInfo.Pipes?.Select(x => Create(hydroInfo, x, allCalcuResultList)).ToList(); |
| | | |
| | | //弯头 |
| | | input.ElbowMatchingList = hydroInfo.Elbows?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | input.ElbowMatchingList = hydroInfo.Elbows?.Select(x => Create(hydroInfo, x, allCalcuResultList)).ToList(); |
| | | |
| | | //三通 |
| | | input.ThreelinkMatchingList = hydroInfo.Threelinks?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | input.ThreelinkMatchingList = hydroInfo.Threelinks?.Select(x => Create(hydroInfo, x, allCalcuResultList)).ToList(); |
| | | |
| | | //四通 |
| | | input.FourlinkMatchingList = hydroInfo.Fourlinks?.Select(x => Create(hydroInfo, x)).ToList(); |
| | | input.FourlinkMatchingList = hydroInfo.Fourlinks?.Select(x => Create(hydroInfo, x, allCalcuResultList)).ToList(); |
| | | |
| | | return input; |
| | | } |
| | |
| | | /// <summary> |
| | | /// 创建泵自动匹配ViewModel |
| | | /// </summary> |
| | | public static PumpMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPumpInfo pumpInfo) |
| | | public static PumpMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPumpInfo pumpInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | |
| | | { |
| | | return default; |
| | | } |
| | | return new PumpMatchingViewModel() |
| | | { |
| | | ID = pumpInfo.ID, |
| | | Code = pumpInfo.Code, |
| | | Name = pumpInfo.Name, |
| | | DbLocked = pumpInfo.DbLocked, |
| | | ModelType = pumpInfo.ModelType, |
| | | DbId = pumpInfo.DbId, |
| | | CurveDbId = hydroInfo.Curves?.Find(t => t.Code == pumpInfo.CurveQH)?.DbId, |
| | | RatedP = pumpInfo.RatedP, |
| | | RatedH = pumpInfo.RatedH, |
| | | RatedN = pumpInfo.RatedN, |
| | | RatedQ = pumpInfo.RatedQ, |
| | | }; |
| | | return new PumpMatchingViewModel(pumpInfo, hydroInfo, allCalcuResultList); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 创建阀门自动匹配ViewModel |
| | | /// </summary> |
| | | public static ValveMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroValveInfo valveInfo) |
| | | public static ValveMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroValveInfo valveInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | |
| | | { |
| | | 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) |
| | | public static PipeMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroPipeInfo pipeInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | |
| | | /// <summary> |
| | | /// 创建弯头自动匹配ViewModel |
| | | /// </summary> |
| | | public static ElbowMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroElbowInfo elbowInfo) |
| | | public static ElbowMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroElbowInfo elbowInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | |
| | | /// <summary> |
| | | /// 创建三通自动匹配ViewModel |
| | | /// </summary> |
| | | public static ThreelinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroThreelinkInfo threelinkInfo) |
| | | public static ThreelinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroThreelinkInfo threelinkInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | |
| | | /// <summary> |
| | | /// 创建四通自动匹配ViewModel |
| | | /// </summary> |
| | | public static FourlinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFourlinkInfo fourlinkInfo) |
| | | public static FourlinkMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroFourlinkInfo fourlinkInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | if (hydroInfo == null) |
| | | { |
| | |
| | | pump.RatedQ = matching.RatedQ; |
| | | pump.RatedH = matching.RatedH; |
| | | pump.RatedN = matching.RatedN; |
| | | pump.RatedHz = matching.RatedHz; |
| | | pump.SpeedRatio = Math.Round(matching.CurrentHz / matching.RatedHz, 1); |
| | | |
| | | if (!pump.DbLocked) |
| | | { |
| | |
| | | { |
| | | 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; |
| | |
| | | { |
| | | 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(); |
| | | } |
| | | } |
| | |
| | | { |
| | | 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; |
| | |
| | | { |
| | | 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(); |
| | | } |
| | | } |
| | |
| | | { |
| | | 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; |
| | |
| | | { |
| | | 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(); |
| | | } |
| | | } |
| | |
| | | { |
| | | 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; |
| | | } |
| | | } |