From 6b437da7145139fda9cbff0acaa5b8e2295d11cd Mon Sep 17 00:00:00 2001 From: tangxu <76880903@qq.com> Date: 星期六, 08 十月 2022 10:55:23 +0800 Subject: [PATCH] 添加 能效计划 --- Calculation/IStation.Calculation.Dispatch/IStation.Calculation.Dispatch.csproj | 3 Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs | 166 +++----- Calculation/IStation.Calculation.Dispatch/general/Calculator.cs | 76 +-- Calculation/IStation.Calculation.Dispatch/input/OutletPipePara.cs | 2 Application/IStation.Application.Eta/dispatch_analy/dto/Dto.cs | 133 +++++-- Calculation/IStation.Calculation.Dispatch/input/RequestParasComplex.cs | 24 + Application/IStation.Application.OpenApi/IStation.Application.OpenApi.csproj | 1 Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController.cs | 12 Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaDto.cs | 2 Calculation/IStation.Calculation.Dispatch/DispatchAnalyCalculatorFactory.cs | 95 ++++ Application/IStation.Application.Eta/dispatch_analy/ParallelConnect_StdController.cs | 8 Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaTransfer.cs | 12 /dev/null | 45 -- Calculation/IStation.EtaCalculation4Custom/shys/station/EtaAnalyCalculator4长兴岛输水泵房.cs | 100 ++-- Application/IStation.Application.Eta/dispatch_analy/DispatchAnaly_StdController.cs | 108 ++--- Calculation/IStation.Calculation.Dispatch/Model/MachineDetail.cs | 2 Calculation/IStation.Calculation.Plan/IStation.Calculation.Plan.csproj | 17 Application/IStation.Application.Eta/dispatch_analy/dto/StationCurrentInfo.cs | 4 Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaConstant.cs | 67 +-- Application/IStation.Application.Eta/dispatch_analy/dto/StationEtaAnaRecord.cs | 38 ++ Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaInput.cs | 2 Entry/IStation.WebApi.Entry/IStation.WebApi.Entry.csproj | 17 IStation.WebApi.Dispatch.sln | 126 ------- 23 files changed, 498 insertions(+), 562 deletions(-) diff --git a/Application/IStation.Application.Eta/dispatch_analy/DispatchAnaly_StdController.cs b/Application/IStation.Application.Eta/dispatch_analy/DispatchAnaly_StdController.cs index e8c7dc5..f7fdedb 100644 --- a/Application/IStation.Application.Eta/dispatch_analy/DispatchAnaly_StdController.cs +++ b/Application/IStation.Application.Eta/dispatch_analy/DispatchAnaly_StdController.cs @@ -24,7 +24,7 @@ /// </summary> [Route("GetCurrentInfo@V1.0")] [HttpGet] - public IStation.Dto.ApiResult GetCurrentInfo([FromQuery][Required] StationIDUnderCorpInput input) + public IStation.Dto.ApiResult GetCurrentInfo([FromQuery][Required] StationIDUnderCorpInput input) { var pipeLineList = new Service.PipeLine().GetByBelongTypeAndBelongID(input.CorpID, IStation.ObjectType.Station, input.StationID); if (pipeLineList == null || pipeLineList.Count < 1) @@ -77,27 +77,31 @@ vm_ana_result.Name = string.Join(",", name_list); - IStation.Calculation.IDispatchAnalyCalculator calc_helper = - IStation.Calculation.DispatchAnalyCalculatorFactory.CreateCalculator(input.CorpID, - IStation.ObjectType.Station, - input.StationID, null); + IStation.Calculation.DispatchAna.IGetCurrentRecord calc_helper = + IStation.Calculation.DispatchAnalyCalculatorFactory.CreateGetCurrentRecord( + input.CorpID, IStation.ObjectType.Station, + input.StationID); if (calc_helper == null) { - return new Dto.ApiResult<IStation.Dto.DispatchAna.StationCurrentInfo>( new IStation.Dto.DispatchAna.StationCurrentInfo(vm_ana_result)); + return new Dto.ApiResult<IStation.Dto.DispatchAna.StationCurrentInfo>(new IStation.Dto.DispatchAna.StationCurrentInfo(vm_ana_result)); + } + + string error_info = null; + var current_dispatch_info = calc_helper.GetCurrentRecord(input.CorpID, input.StationID, out error_info); + if (current_dispatch_info == null) + { + return new Dto.ApiResult<IStation.Dto.DispatchAna.StationCurrentInfo>( + new IStation.Dto.DispatchAna.StationCurrentInfo(vm_ana_result)); } else { - string error_info = null; - var current_dispatch_info = calc_helper.GetCurrentRecord(input.CorpID, input.StationID, out error_info); - if(current_dispatch_info == null) - { - return new Dto.ApiResult<IStation.Dto.DispatchAna.StationCurrentInfo>(new IStation.Dto.DispatchAna.StationCurrentInfo(vm_ana_result)); - } - else - { - return new Dto.ApiResult<IStation.Dto.DispatchAna.StationCurrentInfo>(new IStation.Dto.DispatchAna.StationCurrentInfo(vm_ana_result, current_dispatch_info)); - } + return new Dto.ApiResult<IStation.Dto.DispatchAna.StationCurrentInfo>( + new IStation.Dto.DispatchAna.StationCurrentInfo( + vm_ana_result, + current_dispatch_info) + ); } + } @@ -125,51 +129,29 @@ return IStation.Dto.ApiResult.Error("StationID涓虹┖"); } - string error_info = null; - var complex = request.BuildRequestComplex(out error_info); - complex.SchemeSortType = (Calculation.DispatchAna.Model.eAnaSchemeSortType)request.SortType; - - - List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> machine_run_filter_list = null; - if (request.RunStatusList == null) - { - // IStation.LogHelper.Info("RunStatusList none"); - } - else if (request.RunStatusList.Count() == 0) - { - // IStation.LogHelper.Info("RunStatusList Count==0"); - } - else //if (request.Setting.OpenStatus != null && request.Setting.OpenStatus.Count > 0) - { - machine_run_filter_list = new List<IStation.Calculation.DispatchAna.Model.MachineRunFilter>(); - foreach (var d in request.RunStatusList) - { - var binding_list = new Service.PipeLineBinding().GetByPipeLineID(request.CorpID, d.MachineID); - machine_run_filter_list.Add(new IStation.Calculation.DispatchAna.Model.MachineRunFilter() - { - MachineID = binding_list.First().ID, - RunStatus = d.Status, - MaxFlow = -1 - }); - } - } - - - - - IStation.Calculation.IDispatchAnalyCalculator calc_helper = - IStation.Calculation.DispatchAnalyCalculatorFactory.CreateCalculator(request.CorpID, - IStation.ObjectType.Station, - request.StationID, null); + //鑾峰彇杈呭姪绫� + IStation.Calculation.DispatchAna.IOptAnaCalc calc_helper = + IStation.Calculation.DispatchAnalyCalculatorFactory.CreateOptAnaCalculator( + request.CorpID, IStation.ObjectType.Station, + request.StationID,null); if (calc_helper == null) { return IStation.Dto.ApiResult.Error("Calculator 杩樻湭鏋勫缓"); } - var machine_run_status = new IStation.Calculation.DispatchAna.Model.MachineRunPara() { MachineRunFilter = machine_run_filter_list }; - //璋冪敤CalcOptListByPre 鍥犱负鍙兘閮ㄥ垎鍙傛暟杩橀渶鑾峰彇瀹炴椂鏁版嵁 - - var items = calc_helper.CalcOptListByPre(complex, machine_run_status, out error_info); + + //鏋勫缓鍙傛暟 + string error_info = null; + var complex_request_paras = request.BuildRequestComplex(out error_info); + var machine_run_status = request.BuildMachineRunPara(out error_info); + var eta_ana_records = request.BuildEtaAnaRecord(out error_info); + + //璁$畻 + var items = calc_helper.CalcSchemes( + complex_request_paras, + eta_ana_records, + machine_run_status, + out error_info); if (items == null || items.Count() == 0) { return IStation.Dto.ApiResult.Alert(error_info); @@ -252,7 +234,7 @@ continue; IStation.Calculation.DispatchAna.Model.AnaCurveItem anaData = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - int ret = IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.CalcAnaCurve( + int ret = IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.CalcAnaCurve( pump_curve.CurveInfo.CurveQH, pump_curve.CurveInfo.CurveQP, 0, TargetH / 102, 0, 0, frequence, ref anaData); @@ -275,8 +257,8 @@ } project.TotalWrkQ = (from x in project.Items where x.WorkPointQ > 0 select x.WorkPointQ).Sum(); project.TotalWrkP = (from x in project.Items where x.WorkPointP > 0 select x.WorkPointP).Sum(); - project.UWP = Math.Round(IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.Calcu_UWP(project.TotalWrkP, project.TotalWrkQ, TargetH), 3); - project.WP = Math.Round(IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.Calcu_UWP(project.TotalWrkP, project.TotalWrkQ, TargetH), 3); + project.UWP = Math.Round(IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.Calcu_UWP(project.TotalWrkP, project.TotalWrkQ, TargetH), 3); + project.WP = Math.Round(IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.Calcu_UWP(project.TotalWrkP, project.TotalWrkQ, TargetH), 3); project.SpanQ = Math.Round(project.TotalWrkQ - TargetQ, 0); @@ -340,11 +322,11 @@ if (frequence > 49.5) { var curve_qh = curve_default.CurveInfo.CurveQH; - curve_qh.Max = curve_qh.Max * IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.ExtendMaxRatio; + curve_qh.Max = curve_qh.Max * IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.ExtendMaxRatio; curveListQH.Add(curve_qh); var curve_qp = curve_default.CurveInfo.CurveQP; - curve_qp.Max = curve_qp.Max * IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.ExtendMaxRatio; + curve_qp.Max = curve_qp.Max * IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.ExtendMaxRatio; curveListQP.Add(curve_qp); } else @@ -352,9 +334,9 @@ var ration = frequence / 50.0; var maxCurveQH = IStation.Model.FitCurveHelper.GetFitPointsByExtend(curve_default.CurveInfo.CurveQH, - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.ExtendMaxRatio, 20); + IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.ExtendMaxRatio, 20); var maxCurveQP = IStation.Model.FitCurveHelper.GetFitPointsByExtend(curve_default.CurveInfo.CurveQP, - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.ExtendMaxRatio, 20); + IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.ExtendMaxRatio, 20); List<IStation.Model.CurvePoint> simuPointsQH = new List<IStation.Model.CurvePoint>(); foreach (var pt in maxCurveQH) diff --git a/Application/IStation.Application.Eta/dispatch_analy/ParallelConnect_StdController.cs b/Application/IStation.Application.Eta/dispatch_analy/ParallelConnect_StdController.cs index e0a14da..7f56f4b 100644 --- a/Application/IStation.Application.Eta/dispatch_analy/ParallelConnect_StdController.cs +++ b/Application/IStation.Application.Eta/dispatch_analy/ParallelConnect_StdController.cs @@ -75,11 +75,11 @@ if (frequence > 49.5) { var curve_qh = curve_default.CurveInfo.CurveQH; - curve_qh.Max = curve_qh.Max * IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.ExtendMaxRatio; + curve_qh.Max = curve_qh.Max * IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.ExtendMaxRatio; curveListQH.Add(curve_qh); var curve_qp = curve_default.CurveInfo.CurveQP; - curve_qp.Max = curve_qp.Max * IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.ExtendMaxRatio; + curve_qp.Max = curve_qp.Max * IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.ExtendMaxRatio; curveListQP.Add(curve_qp); } else @@ -87,9 +87,9 @@ var ration = frequence / 50.0; var maxCurveQH = IStation.Model.FitCurveHelper.GetFitPointsByExtend(curve_default.CurveInfo.CurveQH, - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.ExtendMaxRatio, 20); + IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.ExtendMaxRatio, 20); var maxCurveQP = IStation.Model.FitCurveHelper.GetFitPointsByExtend(curve_default.CurveInfo.CurveQP, - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper.ExtendMaxRatio, 20); + IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏.ExtendMaxRatio, 20); List<IStation.Model.CurvePoint> simuPointsQH = new List<IStation.Model.CurvePoint>(); foreach (var pt in maxCurveQH) diff --git a/Application/IStation.Application.Eta/dispatch_analy/dto/Dto.cs b/Application/IStation.Application.Eta/dispatch_analy/dto/Dto.cs index 133bae6..99c6f5e 100644 --- a/Application/IStation.Application.Eta/dispatch_analy/dto/Dto.cs +++ b/Application/IStation.Application.Eta/dispatch_analy/dto/Dto.cs @@ -11,7 +11,7 @@ public class CalcBySimple_Request { /// <summary> - /// + /// 鏈烘车杩愯鐘舵�� /// </summary> public class RunStatus { @@ -24,8 +24,19 @@ /// </summary> public int Status { get; set; } = -1; } + /// <summary> /// + /// </summary> + public long CorpID { get; set; } + + /// <summary> + /// + /// </summary> + public long StationID { get; set; } + + /// <summary> + /// 绠¤矾鍙傛暟 /// </summary> public class PipeParas { @@ -48,7 +59,7 @@ } /// <summary> - /// + /// 闃�闂ㄥ弬鏁� /// </summary> public class ValveParas { @@ -61,32 +72,24 @@ /// </summary> public int Status { get; set; } } - /// <summary> - /// - /// </summary> - public long CorpID { get; set; } - /// <summary> - /// - /// </summary> - public long StationID { get; set; } - + /// <summary> /// 姘翠綅鍙傛暟 /// </summary> public List<double> WaterLevelList { get; set; } /// <summary> - /// + /// 绠¤矾鍙傛暟 /// </summary> public List<PipeParas> PipeList { get; set; } - + /// <summary> - /// + /// 闃�闂ㄥ弬鏁� /// </summary> public List<ValveParas> ValveList { get; set; } /// <summary> - /// + /// 鏈烘车杩愯鍙傛暟 /// </summary> public List<RunStatus> RunStatusList { get; set; } @@ -101,7 +104,12 @@ public int PressValueType { get; set; } /// <summary> - /// / + /// 鑳芥晥鍒嗘瀽璁板綍 + /// </summary> + public StationEtaAnaRecord EtaAnaRecord { get; set; } + + /// <summary> + /// 鏋勫缓鎴愬鍚堝弬鏁� /// </summary> /// <param name="error_info"></param> /// <returns></returns> @@ -113,20 +121,26 @@ complex_request_paras.CorpID = this.CorpID; complex_request_paras.StationID = this.StationID; - if(WaterLevelList != null && WaterLevelList.Count > 0) - { - complex_request_paras.WaterLevelPara = new List<Calculation.DispatchAna.Model.WaterLevelPara>(); - foreach(var wl in WaterLevelList) - { - complex_request_paras.WaterLevelPara.Add(new Calculation.DispatchAna.Model.WaterLevelPara(wl)); - } - } - else if (this.PressValueType == 1) - {// 1:琛ㄧず鎵▼ + if (this.PressValueType == 1) + {//1:琛ㄧず鎵▼ + complex_request_paras.PressValueType = Calculation.DispatchAna.Model.RequestParasComplex.ePressValueType.鎵▼; + complex_request_paras.WaterLevelPara = new List<Calculation.DispatchAna.Model.WaterLevelPara>(); complex_request_paras.WaterLevelPara.Add(new Calculation.DispatchAna.Model.WaterLevelPara(0)); } - + else + {//鍘嬪姏 + complex_request_paras.PressValueType = Calculation.DispatchAna.Model.RequestParasComplex.ePressValueType.鍘嬪姏; + + if (WaterLevelList != null && WaterLevelList.Count > 0) + { + complex_request_paras.WaterLevelPara = new List<Calculation.DispatchAna.Model.WaterLevelPara>(); + foreach (var wl in WaterLevelList) + { + complex_request_paras.WaterLevelPara.Add(new Calculation.DispatchAna.Model.WaterLevelPara(wl)); + } + } + } if (this.PipeList != null&& this.PipeList.Count > 0) { @@ -134,16 +148,8 @@ foreach (var pipe in this.PipeList) { var pipe_model = new Calculation.DispatchAna.Model.OutletPipePara(); - pipe_model.InitialFlowInfo(pipe.TargetFlow, pipe.TargetFlowMinQ , pipe.TargetFlowMaxQ); - - if(this.PressValueType == 0) - {// 0:琛ㄧず鍘嬪姏 - pipe_model.TargetPress = pipe.TargetPress; - } - if (this.PressValueType == 1) - {// 1:琛ㄧず鎵▼ - pipe_model.TargetPress = pipe.TargetPress / 102; - } + pipe_model.InitialFlowInfo(pipe.TargetFlow, pipe.TargetFlowMinQ, pipe.TargetFlowMaxQ); + pipe_model.TargetPress = pipe.TargetPress; complex_request_paras.OutletPipePara.Add(pipe_model); } } @@ -157,8 +163,61 @@ new Calculation.DispatchAna.Model.ValvePara() { Name = valve.Name, OpenStatus = valve.Status }); } } + + complex_request_paras.SchemeSortType = (Calculation.DispatchAna.Model.eAnaSchemeSortType)this.SortType; return complex_request_paras; } + + + /// <summary> + /// + /// </summary> + /// <returns></returns> + public IStation.Calculation.DispatchAna.Model.MachineRunPara BuildMachineRunPara(out string error_info) + { + error_info = null; + List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> machine_run_filter_list = null; + if (this.RunStatusList == null) + { + // IStation.LogHelper.Info("RunStatusList none"); + } + else if (this.RunStatusList.Count() == 0) + { + // IStation.LogHelper.Info("RunStatusList Count==0"); + } + else //if (request.Setting.OpenStatus != null && request.Setting.OpenStatus.Count > 0) + { + machine_run_filter_list = new List<IStation.Calculation.DispatchAna.Model.MachineRunFilter>(); + foreach (var d in this.RunStatusList) + { + var binding_list = new Service.PipeLineBinding().GetByPipeLineID(this.CorpID, d.MachineID); + machine_run_filter_list.Add(new IStation.Calculation.DispatchAna.Model.MachineRunFilter() + { + MachineID = binding_list.First().ID, + RunStatus = d.Status, + MaxFlow = -1 + }); + } + } + return new IStation.Calculation.DispatchAna.Model.MachineRunPara() + { + MachineRunFilter = machine_run_filter_list + }; + } + + /// <summary> + /// + /// </summary> + /// <param name="error_info"></param> + /// <returns></returns> + public IStation.Calculation.DispatchAna.Model.EtaAnaRecord4Station BuildEtaAnaRecord(out string error_info) + { + error_info = null; + if (EtaAnaRecord == null) + return null; + + return EtaAnaRecord.Build(out error_info); + } } diff --git a/Application/IStation.Application.Eta/dispatch_analy/dto/StationCurrentInfo.cs b/Application/IStation.Application.Eta/dispatch_analy/dto/StationCurrentInfo.cs index dd87ca0..c8bc0d8 100644 --- a/Application/IStation.Application.Eta/dispatch_analy/dto/StationCurrentInfo.cs +++ b/Application/IStation.Application.Eta/dispatch_analy/dto/StationCurrentInfo.cs @@ -30,7 +30,9 @@ /// <summary> /// /// </summary> - public StationCurrentInfo(StationEtaAnaRecord anaRecord, IStation.Calculation.DispatchAna.Model.CurrentRecordBundle signalRecord) + public StationCurrentInfo( + IStation.Dto.DispatchAna.StationEtaAnaRecord anaRecord, + IStation.Calculation.DispatchAna.Model.CurrentRecordBundle signalRecord) { this.EtaAnaRecord = anaRecord; diff --git a/Application/IStation.Application.Eta/dispatch_analy/dto/StationEtaAnaRecord.cs b/Application/IStation.Application.Eta/dispatch_analy/dto/StationEtaAnaRecord.cs index 414076b..59a64dd 100644 --- a/Application/IStation.Application.Eta/dispatch_analy/dto/StationEtaAnaRecord.cs +++ b/Application/IStation.Application.Eta/dispatch_analy/dto/StationEtaAnaRecord.cs @@ -89,5 +89,43 @@ /// </summary> public List<PumpEtaAnaRecord> Items { get; set; } + /// <summary> + /// + /// </summary> + /// <param name="error_info"></param> + /// <returns></returns> + public IStation.Calculation.DispatchAna.Model.EtaAnaRecord4Station Build(out string error_info) + { + error_info = null; + + IStation.Calculation.DispatchAna.Model.EtaAnaRecord4Station eta_ana_records = new Calculation.DispatchAna.Model.EtaAnaRecord4Station(); + eta_ana_records.Name = this.Name; + eta_ana_records.Q = this.Q; + eta_ana_records.H = this.H; + eta_ana_records.E = this.E; + eta_ana_records.P = this.P; + eta_ana_records.WP = this.WP; + eta_ana_records.UWP = this.UWP; + eta_ana_records.RunStatus = this.RunStatus; + eta_ana_records.Items = new List<Calculation.DispatchAna.Model.EtaAnaRecord4Pump>(); + foreach(var v in this.Items) + { + eta_ana_records.Items.Add(new Calculation.DispatchAna.Model.EtaAnaRecord4Pump() + { + MachineID = v.MachineID, + PumpID = v.PumpID, + Q = v.Q, + H = v.H, + E = v.E, + P = v.P, + WP = v.WP, + UWP = v.UWP, + PipeLineID = v.PipeLineID, + Name = v.Name, + HZ = v.HZ + }); + } + return eta_ana_records; + } } } diff --git a/Application/IStation.Application.OpenApi/IStation.Application.OpenApi.csproj b/Application/IStation.Application.OpenApi/IStation.Application.OpenApi.csproj index 70a23d8..7b8e887 100644 --- a/Application/IStation.Application.OpenApi/IStation.Application.OpenApi.csproj +++ b/Application/IStation.Application.OpenApi/IStation.Application.OpenApi.csproj @@ -11,7 +11,6 @@ <ItemGroup> <ProjectReference Include="..\..\Calculation\IStation.Calculation.Dispatch\IStation.Calculation.Dispatch.csproj" /> - <ProjectReference Include="..\..\Calculation\IStation.Calculation.Plan\IStation.Calculation.Plan.csproj" /> <ProjectReference Include="..\IStation.Application.Core\IStation.Application.Core.csproj" /> </ItemGroup> diff --git a/Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController.cs b/Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController.cs index d63eee2..f7571b2 100644 --- a/Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController.cs +++ b/Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController.cs @@ -42,7 +42,7 @@ case 1://闀垮叴娉电珯 { var result= shys_cxd(input, result_sg,out error_info); - LogHelper.Debug(JsonHelper.Object2Json(result)); + //LogHelper.Debug(JsonHelper.Object2Json(result)); return result; } default:return default; @@ -290,11 +290,13 @@ complex_request_paras.SchemeSortType = Calculation.DispatchAna.Model.eAnaSchemeSortType.鍔熺巼; complex_request_paras.SchemeNumber = 1; + //鏋勯�犺绠楀櫒 + var calulator = IStation.Calculation.DispatchAnalyCalculatorFactory.CreateKeepStatusCalculator(4, IStation.ObjectType.Station, 2,null); + calulator.IntialRequest(complex_request_paras, + null, + machine_run_status); //鍑烘柟妗� - var scheme = new IStation.Calculation.DispatchAna.Calculator4ShysCxbz().CalcKeepStatusByWhole( - complex_request_paras, - machine_run_status, - out error_info); + var scheme = calulator.Calc(out error_info); if (scheme == null) return default; var result = new IStation.Application.DispatchAnaSchemeOutput(); diff --git a/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs b/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs index b62ab44..7c745a8 100644 --- a/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs +++ b/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs @@ -6,10 +6,9 @@ using IStation.Untity; using Furion.DynamicApiController; using System.ComponentModel.DataAnnotations; -using Mapster; using Microsoft.AspNetCore.Authorization; using IStation.Calculation; -using IStation.Calculation.PlanAna; +using IStation.Dto; namespace IStation.Application { @@ -45,7 +44,31 @@ LogHelper.Debug(responseText); var planDataList = JsonHelper.Json2Object<List<PlanAnaData>>(responseText); - if (planDataList == null||planDataList.Count<1) + return CalculateCore(planDataList); + } + + /// <summary> + /// 璁$畻-璋冭瘯 + /// </summary> + [AllowAnonymous] + [NonUnify] + [Route("Calculate@Debug")] + [HttpGet] + public List<PlanAnaDto> Calculate_debug() + { + var responseText = System.IO.File.ReadAllText(@"E:\WorkData\IStation\result.txt");//(娴嬭瘯鐢ㄧ殑) + var planDataList = JsonHelper.Json2Object<List<PlanAnaData>>(responseText); + return CalculateCore(planDataList); + } + + /// <summary> + /// 鍒嗘瀽鏍稿績 + /// </summary> + /// <param name="planDataList"></param> + /// <returns></returns> + private List<PlanAnaDto> CalculateCore(List<PlanAnaData> planDataList) + { + if (planDataList == null || planDataList.Count < 1) { LogHelper.Error("涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾笁楂樿繑鍥炴帴鍙e嚭鍙備负绌�"); return default; @@ -56,97 +79,29 @@ return default; } - var factoryIds = planDataList.SelectMany(x=>x.datas).Select(x => x.factory).Distinct().ToList(); - var vmList = new List<PlanAnaDto>(); - foreach (var factoryId in factoryIds) - { - //鏋勯�犺绠楀叆鍙� - var sumRecordList = new List<MonthSumRecord>(); - foreach (var planData in planDataList) - { - var sumRecord = new MonthSumRecord(); - sumRecord.Month = planData.timeflag; - sumRecord.HourRecords = new List<HourSumRecord>(); - var factoryData = planData.datas.Find(t=>t.factory==factoryId); - for (int i = 0; i <= 23; i++) - { - var hourSumRecord = new HourSumRecord(); - hourSumRecord.Hour = i; - hourSumRecord.Records = new List<Calculation.PlanAna.MonitorRecord>(); - if (factoryData.scada != null && factoryData.scada.Count > 0) - { - foreach (var scadaItem in factoryData.scada) - { - var scadaRecord = new Calculation.PlanAna.MonitorRecord(); - scadaRecord.MonitorId = PlanAnaConstant.MonitorDict[scadaItem.tagname]; - scadaRecord.RecordValue = scadaItem.values.Find(t => t.datetime.Trim() == PlanAnaConstant.HourDict[i]).value; - hourSumRecord.Records.Add(scadaRecord); - } - } - if (factoryData.result != null && factoryData.result.Count > 0) - { - foreach (var resultItem in factoryData.result) - { - var resultRecord = new Calculation.PlanAna.MonitorRecord(); - resultRecord.MonitorId = PlanAnaConstant.MonitorDict[resultItem.tagname]; - resultRecord.RecordValue = resultItem.values.Find(t => t.datetime.Trim() == PlanAnaConstant.HourDict[i]).value; - hourSumRecord.Records.Add(resultRecord); - } - } - sumRecord.HourRecords.Add(hourSumRecord); - } - sumRecordList.Add(sumRecord); - } - - //鎵惧埌鐩稿叧娉电珯锛屽苟杩涜璁$畻 - var stationId = PlanAnaConstant.FactoryDict[factoryId]; - var station = new Service.Station().GetByID(_corpId, stationId); - var calculator = PlanAnaCalculatorFactory.CreateCalculator(_corpId, ObjectType.Station, stationId); - var resultList = calculator.Calculate(sumRecordList); - if (resultList == null || resultList.Count < 1) - { - LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛屾车绔欏悕绉�:{station.Name} 娉电珯id:{stationId},璁$畻閿欒"); - continue; - } - - //鐢熸垚杩斿洖缁撴灉 - var vmItem = new PlanAnaDto(); - vmItem.factory = factoryId; - vmItem.name = station.Name; - vmItem.values = new List<List<double>>(); - for (int i = 1; i <= 12; i++) - { - var result = resultList.Find(t => t.Month == i); - if (result == null) - { - vmItem.values.Add(new List<double>() { 0, 0, 0 }); - } - else - { - vmItem.values.Add(new List<double>() {result.Qt,result.Dt,result.WP}); - } - } - vmList.Add(vmItem); - } - return vmList; - } - - /// <summary> - /// 璁$畻-璋冭瘯 - /// </summary> - [AllowAnonymous] - [NonUnify] - [Route("Calculate@Debug")] - [HttpPost] - public List<PlanAnaDto> Calculate_debug() - { - var responseText = System.IO.File.ReadAllText(@"D:\result.txt");//(娴嬭瘯鐢ㄧ殑) - var planDataList = JsonHelper.Json2Object<List<PlanAnaData>>(responseText); - var factoryIds = planDataList.SelectMany(x => x.datas).Select(x => x.factory).Distinct().ToList(); var vmList = new List<PlanAnaDto>(); foreach (var factoryId in factoryIds) { + //鎵惧埌鐩稿叧娉电珯锛屽苟杩涜璁$畻 + if (!PlanAnaConstant.FactoryDict.ContainsKey(factoryId)) + { + LogHelper.Error("鏈壘鍒癷d:{factoryId},瀵瑰簲鐨勬车绔�"); + return default; + } + var stationId = PlanAnaConstant.FactoryDict[factoryId]; + var station = new Service.Station().GetByID(_corpId, stationId); + if (station == null) + { + LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛� 娉电珯id:{stationId}, 鏁版嵁搴撲腑鏈壘鍒版娉电珯"); + continue; + } + var calculator = PlanAnaCalculatorFactory.CreateCalculator(_corpId, ObjectType.Station, stationId); + if (calculator == null) + { + LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛� 娉电珯id:{stationId}, 鏈瀯寤鸿绠楀櫒"); + continue; + } //鏋勯�犺绠楀叆鍙� var sumRecordList = new List<MonthSumRecord>(); foreach (var planData in planDataList) @@ -159,14 +114,20 @@ { var hourSumRecord = new HourSumRecord(); hourSumRecord.Hour = i; - hourSumRecord.Records = new List<Calculation.PlanAna.MonitorRecord>(); + hourSumRecord.Records = new List<Dto.MonitorRecord4SG>(); if (factoryData.scada != null && factoryData.scada.Count > 0) { foreach (var scadaItem in factoryData.scada) { - var scadaRecord = new Calculation.PlanAna.MonitorRecord(); - scadaRecord.MonitorId = PlanAnaConstant.MonitorDict[scadaItem.tagname]; - scadaRecord.RecordValue = scadaItem.values.Find(t => t.datetime.Trim() == PlanAnaConstant.HourDict[i]).value; + var scadaRecord = new Dto.MonitorRecord4SG(); + scadaRecord.MonitorTag = scadaItem.tagname ; + var ff = scadaItem.values.Find(t => t.GetHour() == i ); + if(ff == null) + { + LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛� 娉电珯id:{stationId}, {scadaItem.tagname} 鏃堕棿鐐箋i}, 鏈壘鍒版暟鎹�" ); + return default; + } + scadaRecord.RecordValue = ff.value; hourSumRecord.Records.Add(scadaRecord); } } @@ -174,9 +135,9 @@ { foreach (var resultItem in factoryData.result) { - var resultRecord = new Calculation.PlanAna.MonitorRecord(); - resultRecord.MonitorId = PlanAnaConstant.MonitorDict[resultItem.tagname]; - resultRecord.RecordValue = resultItem.values.Find(t => t.datetime.Trim() == PlanAnaConstant.HourDict[i]).value; + var resultRecord = new Dto.MonitorRecord4SG(); + resultRecord.MonitorTag = resultItem.tagname;// PlanAnaConstant.MonitorDict[resultItem.tagname]; + resultRecord.RecordValue = resultItem.values.Find(t => t.GetHour() == i).value; hourSumRecord.Records.Add(resultRecord); } } @@ -185,14 +146,11 @@ sumRecordList.Add(sumRecord); } - //鎵惧埌鐩稿叧娉电珯锛屽苟杩涜璁$畻 - var stationId = PlanAnaConstant.FactoryDict[factoryId]; - var station = new Service.Station().GetByID(_corpId, stationId); - var calculator = PlanAnaCalculatorFactory.CreateCalculator(_corpId, ObjectType.Station, stationId); - var resultList = calculator.Calculate(sumRecordList); - if (resultList == null || resultList.Count < 1) + string error_info=""; + var resultList = calculator.Calc(station, factoryId, sumRecordList, out error_info); + if (resultList == null || resultList.Count() < 1) { - LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛屾车绔欏悕绉�:{station.Name} 娉电珯id:{stationId},璁$畻閿欒"); + LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛屾车绔欏悕绉�:{station.Name} 娉电珯id:{stationId},璁$畻閿欒,鍘熷洜鏄�:{error_info}" ); continue; } diff --git a/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaConstant.cs b/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaConstant.cs index a648127..ea7a85f 100644 --- a/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaConstant.cs +++ b/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaConstant.cs @@ -35,49 +35,38 @@ {17,21},//澶фˉ娉电珯 }; - /// <summary> - /// 娴嬬偣瀛楀吀 - /// </summary> - public static Dictionary<string, long> MonitorDict = new Dictionary<string, long>() - { - {"_0402010403030103001",69},//闈掕崏娌欐按搴撴恫浣� - {"_0402010404030103001",70},//闈掕崏娌欐按搴撳惛姘翠簳娑蹭綅-闀垮叴娉电珯鍓嶆睜娑蹭綅 - {"_0402010403030002001",73},//闀垮叴娉电珯杈撴按娉靛嚭姘寸閬�1娴侀噺 - {"_0402010403030002005",72},//闀垮叴娉电珯杈撴按绠¢亾1#鍘嬪姏 - {"_0402010403030002002",77},//闀垮叴娉电珯杈撴按娉靛嚭姘寸閬�2娴侀噺 - {"_0402010403030002006",76},//闀垮叴娉电珯杈撴按绠¢亾2#鍘嬪姏 - }; + /// <summary> /// 鏃跺瓧鍏� /// </summary> - public static Dictionary<int,string> HourDict = new Dictionary<int,string>() - { - { 0,"00:00"}, - { 1,"01:00"}, - { 2,"02:00"}, - { 3,"03:00"}, - { 4,"04:00"}, - { 5,"05:00"}, - { 6,"06:00"}, - { 7,"07:00"}, - { 8,"08:00"}, - { 9,"09:00"}, - { 10,"10:00"}, - { 11,"11:00"}, - { 12,"12:00"}, - { 13,"13:00"}, - { 14,"14:00"}, - { 15,"15:00"}, - { 16,"16:00"}, - { 17,"17:00"}, - { 18,"18:00"}, - { 19,"19:00"}, - { 20,"20:00"}, - { 21,"21:00"}, - { 22,"22:00"}, - { 23,"23:00"} - }; + //public static Dictionary<int,string> HourDict = new Dictionary<int,string>() + //{ + // { 0,"00:00"}, + // { 1,"01:00"}, + // { 2,"02:00"}, + // { 3,"03:00"}, + // { 4,"04:00"}, + // { 5,"05:00"}, + // { 6,"06:00"}, + // { 7,"07:00"}, + // { 8,"08:00"}, + // { 9,"09:00"}, + // { 10,"10:00"}, + // { 11,"11:00"}, + // { 12,"12:00"}, + // { 13,"13:00"}, + // { 14,"14:00"}, + // { 15,"15:00"}, + // { 16,"16:00"}, + // { 17,"17:00"}, + // { 18,"18:00"}, + // { 19,"19:00"}, + // { 20,"20:00"}, + // { 21,"21:00"}, + // { 22,"22:00"}, + // { 23,"23:00"} + //}; } diff --git a/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaDto.cs b/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaDto.cs index 467a807..f9e260d 100644 --- a/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaDto.cs +++ b/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaDto.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace IStation.Application +namespace IStation.Dto { /// <summary> /// 璁″垝鍒嗘瀽dto diff --git a/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaInput.cs b/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaInput.cs index f833aac..c028b09 100644 --- a/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaInput.cs +++ b/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaInput.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace IStation.Application +namespace IStation.Dto { /// <summary> /// 鑳借�楄鍒掓按閲忚緭鍏� diff --git a/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaTransfer.cs b/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaTransfer.cs index a1075d2..698006a 100644 --- a/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaTransfer.cs +++ b/Application/IStation.Application.OpenApi/shys/plan/dto/PlanAnaTransfer.cs @@ -4,7 +4,7 @@ using System.Text; using System.Threading.Tasks; -namespace IStation.Application +namespace IStation.Dto { /// <summary> /// 鏃跺�� @@ -17,6 +17,16 @@ public string datetime { get; set; } /// <summary> + /// + /// </summary> + /// <returns></returns> + public int GetHour() + { + var sss = datetime.Split(':'); + return Convert.ToInt32(sss[0]); + } + + /// <summary> /// 鍊� /// </summary> public double value { get; set; } diff --git a/Calculation/IStation.Calculation.Dispatch/DispatchAnalyCalculatorFactory.cs b/Calculation/IStation.Calculation.Dispatch/DispatchAnalyCalculatorFactory.cs index 701eeb0..e9f6ebb 100644 --- a/Calculation/IStation.Calculation.Dispatch/DispatchAnalyCalculatorFactory.cs +++ b/Calculation/IStation.Calculation.Dispatch/DispatchAnalyCalculatorFactory.cs @@ -3,6 +3,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using IStation.Calculation.DispatchAna; +using IStation.Numerics; namespace IStation.Calculation { @@ -26,25 +28,104 @@ EPT = 1 } /// <summary> - /// 鍒涘缓璁$畻鍣� + /// 鍒涘缓璁$畻鍣�(褰撳墠璋冨害淇℃伅) /// </summary> - public static IDispatchAnalyCalculator CreateCalculator(long CorpID, string ObjectType,long ObjectID, eCalcTool? CalcTool) + public static IGetCurrentRecord CreateGetCurrentRecord( + long CorpID, string ObjectType, long ObjectID ) { - if(ObjectType == IStation.ObjectType.Station) + if (ObjectType == IStation.ObjectType.Station) { - if(CorpID == 4) + IGetCurrentRecord calc = null; + if (CorpID == 4) {//涓婃捣 鍘熸按 if (ObjectID == 2) { - return new IStation.Calculation.DispatchAna.Calculator4ShysCxbz(); - } + calc = new IStation.Calculation.DispatchAna.Calculator_Current_SHYS_闀垮叴宀�(); + } } - return new IStation.Calculation.DispatchAna.Calculator4StationGeneral(); + + + + + if (calc == null) + { + var general = new IStation.Calculation.DispatchAna.Calculator_Current_Gneral(); + calc = general; + } + return calc; } return null; } + + /// <summary> + /// 鍒涘缓璁$畻鍣�(鏈�浼樻柟妗堣绠�) + /// </summary> + public static IOptAnaCalc CreateOptAnaCalculator( + long CorpID, string ObjectType, long ObjectID, eCalcTool? CalcTool) + { + if (ObjectType == IStation.ObjectType.Station) + { + IOptAnaCalc calc = null; + if (CorpID == 4) + {//涓婃捣 鍘熸按 + if (ObjectID == 2) + { + calc = new IStation.Calculation.DispatchAna.Calculator_OptAna_SHYS_闀垮叴宀�(); + } + } + + if (calc == null) + { + var general = new IStation.Calculation.DispatchAna.Calculator_OptAna_General(); + calc = general; + } + + + return calc; + } + + + + return null; + } + + + /// <summary> + /// 鍒涘缓璁$畻鍣�(鏈�浼樻柟妗堣绠�) + /// </summary> + public static IKeepStatusCalc CreateKeepStatusCalculator( + long CorpID, string ObjectType, long ObjectID, eCalcTool? CalcTool) + { + if (ObjectType == IStation.ObjectType.Station) + { + IKeepStatusCalc calc = null; + if (CorpID == 4) + {//涓婃捣 鍘熸按 + if (ObjectID == 2) + { + calc = new IStation.Calculation.DispatchAna.Calculator_KeepStatus_SHYS_闀垮叴宀�(); + } + } + + if (calc == null) + { + var general = new IStation.Calculation.DispatchAna.Calculator_KeepStatus_General(); + calc = general; + } + + + return calc; + } + + + + return null; + } + + + } } diff --git a/Calculation/IStation.Calculation.Dispatch/IDispatchAnalyCalculator.cs b/Calculation/IStation.Calculation.Dispatch/IDispatchAnalyCalculator.cs deleted file mode 100644 index 66226a2..0000000 --- a/Calculation/IStation.Calculation.Dispatch/IDispatchAnalyCalculator.cs +++ /dev/null @@ -1,64 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace IStation.Calculation -{ - /// <summary> - /// 璋冨害鍒嗘瀽璁$畻鍣ㄦ帴鍙� - /// </summary> - public interface IDispatchAnalyCalculator - { - /// <summary> - /// 鑾峰彇褰撳墠璋冨害淇℃伅 - /// </summary> - /// <param name="CorpID"></param> - /// <param name="StationID"></param> - /// <param name="error_info"></param> - /// <returns></returns> - IStation.Calculation.DispatchAna.Model.CurrentRecordBundle GetCurrentRecord(long CorpID,long StationID,out string error_info); - - /// <summary> - /// 璁$畻(鏈�浼�):闇�瑕佹坊鍔犲疄鏃舵暟鎹� - /// </summary> - /// <param name="complex_request_paras">闇�姹傚弬鏁�</param> - /// <param name="machine_run_status"></param> - /// <param name="error_info">閿欒淇℃伅</param> - /// <returns></returns> - List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptListByPre( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - IStation.Calculation.DispatchAna.Model.MachineRunPara machine_run_status, - out string error_info); - - /// <summary> - /// 璁$畻(鏈�浼�) - /// </summary> - /// <param name="complex_request_paras"></param> - /// <param name="machine_run_status"></param> - /// <param name="error_info"></param> - /// <returns></returns> - List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptListByWhole( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - IStation.Calculation.DispatchAna.Model.MachineRunPara machine_run_status, - out string error_info); - - - - /// <summary> - /// 璁$畻淇濇寔褰撳墠寮�鏈虹姸鎬� - /// </summary> - /// <param name="requesParas"></param> - /// <param name="openMachineIdList">寮�娉礗D</param> - /// <param name="error_info">閿欒淇℃伅</param> - /// <returns></returns> - IStation.Calculation.DispatchAna.Model.AnaScheme CalcKeepStatusByWhole( - IStation.Calculation.DispatchAna.Model.RequestParasComplex requesParas, - List<long> openMachineIdList, - out string error_info); - - - - } -} diff --git a/Calculation/IStation.Calculation.Dispatch/IStation.Calculation.Dispatch.csproj b/Calculation/IStation.Calculation.Dispatch/IStation.Calculation.Dispatch.csproj index dc3a1d6..07a813f 100644 --- a/Calculation/IStation.Calculation.Dispatch/IStation.Calculation.Dispatch.csproj +++ b/Calculation/IStation.Calculation.Dispatch/IStation.Calculation.Dispatch.csproj @@ -19,7 +19,10 @@ </ItemGroup> <ItemGroup> + <Compile Remove="base\CalculatorBase - 澶嶅埗.cs" /> <Compile Remove="custom\shys\station\DispatchKeepSchemeCalculator4Cxbz - 鍓湰.cs" /> + <Compile Remove="custom\shys\station\闀垮叴宀沑CxbzBase - 澶嶅埗.cs" /> + <Compile Remove="general\Calculator.cs" /> <Compile Remove="input\RequestParasSimple.cs" /> <Compile Remove="input\TargetPressPara.cs" /> <Compile Remove="Model\CurrentRecordValue.cs" /> diff --git a/Calculation/IStation.Calculation.Dispatch/Model/MachineDetail.cs b/Calculation/IStation.Calculation.Dispatch/Model/MachineDetail.cs index 2076306..cdc34ee 100644 --- a/Calculation/IStation.Calculation.Dispatch/Model/MachineDetail.cs +++ b/Calculation/IStation.Calculation.Dispatch/Model/MachineDetail.cs @@ -26,7 +26,7 @@ /// <summary> /// 娉靛瀷鍙� /// </summary> - public string PumpCode { get; set; }// + public string PumpCode { get; set; } /// <summary> /// /// </summary> diff --git a/Calculation/IStation.Calculation.Dispatch/custom/CalculatorBase.cs b/Calculation/IStation.Calculation.Dispatch/custom/CalculatorBase.cs deleted file mode 100644 index b0ddadc..0000000 --- a/Calculation/IStation.Calculation.Dispatch/custom/CalculatorBase.cs +++ /dev/null @@ -1,142 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace IStation.Calculation.DispatchAna -{ - /// <summary> - /// - /// </summary> - public class CalculatorBase - { - /// <summary> - /// / - /// </summary> - protected long _corpID = 0; - /// <summary> - /// - /// </summary> - protected long _stationID = 0; - - - - /// <summary> - /// 璁$畻(鏈�浼�) - /// </summary> - public virtual List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptListCore( - IStation.Calculation.DispatchAna.Model.RequestParasComplex requesParas, - IStation.Calculation.DispatchAna.Model.MachineRunPara runParas, - out string error_info) - { - error_info = "鏈疄鐜�!Error:21"; - return null; - } - - /// <summary> - /// 璁$畻淇濇寔褰撳墠寮�鏈虹姸鎬� - /// </summary> - /// <param name="requesParas"></param> - /// <param name="openMachineIdList"></param> - /// <param name="error_info"></param> - /// <returns></returns> - public virtual IStation.Calculation.DispatchAna.Model.AnaScheme CalcKeepStatusCore( - IStation.Calculation.DispatchAna.Model.RequestParasComplex requesParas, - List<long> openMachineIdList, - out string error_info) - { - error_info = "鏈疄鐜�!Error:34"; - return null; - } - - /// <summary> - /// - /// </summary> - /// <param name="CorpID"></param> - /// <param name="StationID"></param> - /// <param name="allMachineList"></param> - /// <returns></returns> - protected bool BuildMachineList( - long CorpID, - long StationID, - out List<IStation.Calculation.DispatchAna.Model.MachineDetail> allMachineList) - { - this._corpID = CorpID; - this._stationID = StationID; - - allMachineList = null; - IStation.Service.Product service_product = new IStation.Service.Product(); - IStation.Service.PumpCurve service_curve = new IStation.Service.PumpCurve(); - - var allEnginePumpList = service_product.GetEnginePumpListByBelongTypeAndBelongID(CorpID, - IStation.ObjectType.Station, StationID); //鑾峰彇鏈烘车鍒楄〃 - //var allPumpList = service_product.GetChildPumpByID(this._stationID); - if (allEnginePumpList == null || allEnginePumpList.Count() == 0) - { - return false; - } - - - allMachineList = new List<IStation.Calculation.DispatchAna.Model.MachineDetail>(); - - allEnginePumpList = allEnginePumpList.OrderBy(x => x.SortCode).ToList(); - foreach (var engine in allEnginePumpList) - { - IStation.Model.Product<IStation.Model.Pump> pump = service_product.GetChildPumpByEnginePumpID(CorpID, engine.ID); - if (pump == null) - continue; - - var curve_default = service_curve.GetWorkingByPumpID(CorpID, pump.ID); - if (curve_default == null) - continue; - if (curve_default.CurveInfo == null) - continue; - //var motor = service_product.GetChildMotorProductByID(machine.ID); - //if (motor == null) - // continue; - IStation.Calculation.DispatchAna.Model.MachineDetail detail = - new IStation.Calculation.DispatchAna.Model.MachineDetail(engine, pump, curve_default); - allMachineList.Add(detail); - } - - - return true; - } - - - #region 璁$畻鑳借�� - - /// <summary> - /// 璁$畻鍗冨惃鑳借�� - /// </summary> - /// <param name="p">鍔熺巼kW</param> - /// <param name="q">鐬椂娴侀噺m鲁/h</param> - /// <returns>kW路h/km鲁</returns> - public static double CalculateWP(double p, double q) - { - if (q < 0.1) - return 0; - return p / q * 1000; - } - - /// <summary> - /// 璁$畻鍗曚綅鑳借�� - /// </summary> - /// <param name="p">鍔熺巼kW</param> - /// <param name="q">鐬椂娴侀噺m鲁/h</param> - /// <param name="h">鎵▼m</param> - /// <returns>kW路h/km鲁</returns> - public static double CalculateUWP(double p, double q, double h) - { - if (q < 0.1) - return default; - if (h < 0.1) - return default; - return p / q / h * 1000; - } - - #endregion - - } -} diff --git a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/Cxbz.cs b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/Cxbz.cs deleted file mode 100644 index 3594043..0000000 --- a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/Cxbz.cs +++ /dev/null @@ -1,445 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace IStation.Calculation.DispatchAna -{ - /// <summary> - /// 闀垮叴娉电珯璋冨害鏂规璁$畻鍣� - /// </summary> - public class Calculator4ShysCxbz : CalculatorBase, IDispatchAnalyCalculator - { - /// <summary> - /// 鑾峰彇褰撳墠璋冨害淇℃伅 - /// </summary> - /// <param name="CorpID"></param> - /// <param name="StationID"></param> - /// <param name="error_info"></param> - /// <returns></returns> - public IStation.Calculation.DispatchAna.Model.CurrentRecordBundle GetCurrentRecord(long CorpID, long StationID, out string error_info) - { - error_info = null; - var monitor_ids = new List<long>() { 70,71,72,73, 76,77,79}; - var monitor_records = new Service.MonitorRecord().GetLastRecord(CorpID, monitor_ids); - - IStation.Calculation.DispatchAna.Model.CurrentRecordBundle bundle = new Model.CurrentRecordBundle(); - - var water_level = monitor_records.Find(x => x.MonitorPointID == 70); - if(water_level != null) - { - bundle.WaterLevelList = new List<Model.CurrentRecordBundle.RecordValue>(); - bundle.WaterLevelList.Add(new Model.CurrentRecordBundle.RecordValue("杩涙按娑蹭綅",water_level,2)); - } - - var middle_valve = monitor_records.Find(x => x.MonitorPointID == 71); - if (middle_valve != null) - { - bundle.VavleOpenList = new List<Model.CurrentRecordBundle.RecordValue>(); - bundle.VavleOpenList.Add(new Model.CurrentRecordBundle.RecordValue(middle_valve)); - } - - var pipe_press1 = monitor_records.Find(x => x.MonitorPointID == 72); - var pipe_press2 = monitor_records.Find(x => x.MonitorPointID == 76); - if (pipe_press1 != null && pipe_press2 != null) - { - bundle.PressList = new List<Model.CurrentRecordBundle.RecordValue>(); - bundle.PressList.Add(new Model.CurrentRecordBundle.RecordValue("涓�鍙风", pipe_press1,4)); - bundle.PressList.Add(new Model.CurrentRecordBundle.RecordValue("浜屽彿绠�", pipe_press2,4)); - } - - var pipe_flow1 = monitor_records.Find(x => x.MonitorPointID == 73); - var pipe_flow2 = monitor_records.Find(x => x.MonitorPointID == 77); - if (pipe_flow1 != null && pipe_flow2 != null) - { - bundle.FlowList = new List<Model.CurrentRecordBundle.RecordValue>(); - bundle.FlowList.Add(new Model.CurrentRecordBundle.RecordValue("涓�鍙风", pipe_flow1,0)); - bundle.FlowList.Add(new Model.CurrentRecordBundle.RecordValue("浜屽彿绠�", pipe_flow2,0)); - } - - return bundle; - } - - - /// <summary> - /// 璁$畻(鏈�浼�):闇�瑕佹坊鍔犲疄鏃舵暟鎹� - /// </summary> - /// <param name="complex_request_paras">闇�姹傚弬鏁�</param> - /// <param name="machine_run_status"></param> - /// <param name="error_info">閿欒淇℃伅</param> - /// <returns></returns> - public List<Calculation.DispatchAna.Model.AnaScheme> CalcOptListByPre( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - IStation.Calculation.DispatchAna.Model.MachineRunPara machine_run_status, - out string error_info) - { - if(complex_request_paras.ValvePara == null || complex_request_paras.ValvePara.Count() == 0) - { - complex_request_paras.ValvePara = new List<Model.ValvePara>(); - complex_request_paras.ValvePara.Add(new Model.ValvePara() { Name = "涓棿闃�闂�", OpenStatus = 0 }); - } - - - return CalcOptListCore(complex_request_paras, machine_run_status, out error_info); - } - - /// <summary> - /// 璁$畻(鏈�浼�):闇�瑕佹坊鍔犲疄鏃舵暟鎹� - /// </summary> - /// <param name="complex_request_paras">闇�姹傚弬鏁�</param> - /// <param name="machine_run_status"></param> - /// <param name="error_info">閿欒淇℃伅</param> - /// <returns></returns> - public List<Calculation.DispatchAna.Model.AnaScheme> CalcOptListByWhole( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - IStation.Calculation.DispatchAna.Model.MachineRunPara machine_run_status, - out string error_info) - { - return CalcOptListCore(complex_request_paras, machine_run_status, out error_info); - } - - /// <summary> - /// - /// </summary> - /// <param name="complex_request_paras"></param> - /// <param name="openMachineIdList"></param> - /// <param name="error_info"></param> - /// <returns></returns> - public IStation.Calculation.DispatchAna.Model.AnaScheme CalcKeepStatusByWhole( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - List<long> openMachineIdList, - out string error_info) - { - return CalcKeepStatusCore(complex_request_paras, openMachineIdList, out error_info); - } - - /// <summary> - /// 璁$畻(鏈�浼�) - /// </summary> - /// <param name="complex_request_paras">闇�姹傚弬鏁�</param> - /// <param name="machine_run_status"></param> - /// <param name="error_info">閿欒淇℃伅</param> - /// <returns></returns> - public override List<Calculation.DispatchAna.Model.AnaScheme> CalcOptListCore( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - IStation.Calculation.DispatchAna.Model.MachineRunPara machine_run_status, - out string error_info) - { - error_info = null; - this._corpID = 4; - this._stationID = 2; - - if (complex_request_paras == null) - { - error_info = "ERROR 30"; - return null; - } - if (complex_request_paras.OutletPipePara == null || complex_request_paras.OutletPipePara.Count < 2) - { - error_info = "ERROR 35,闀垮叴娉电珯闇�瑕佷袱涓璺殑娴侀噺"; - return null; - } - double pipe1_TargetFlow = complex_request_paras.OutletPipePara[0].TargetFlow; - double pipe2_TargetFlow = complex_request_paras.OutletPipePara[1].TargetFlow; - if (pipe1_TargetFlow < 50 && pipe2_TargetFlow < 50) - { - return default; - } - - double pipe1_TargetPess = complex_request_paras.OutletPipePara[0].TargetPress; - double pipe2_TargetPess = complex_request_paras.OutletPipePara[1].TargetPress; - - if(pipe1_TargetPess<0.01 || pipe2_TargetPess<0.01) - { - return default; - } - double water_level = 0;//姘翠綅 - if (complex_request_paras.WaterLevelPara != null && complex_request_paras.WaterLevelPara.Count > 0) - { - water_level = complex_request_paras.WaterLevelPara.First().Value; - } - //var inletLevel = paras.MonitorPointInfoList.Find(x => x.SignalType == IStation.SignalType.姘翠綅); - //Elevation = inletLevel?.Elevation != null ? inletLevel.Elevation.Value : 0;//鑾峰彇娴嬬偣鐨勬爣楂� - - if (complex_request_paras.ValvePara == null || complex_request_paras.ValvePara.Count < 1) - { - error_info = "ERROR 57"; - return null; - } - int isOpenMiddleValve = complex_request_paras.ValvePara.First().OpenStatus; - - List<IStation.Calculation.DispatchAna.Model.MachineDetail> allMachineList = null; - if (!BuildMachineList(complex_request_paras.CorpID, complex_request_paras.StationID, out allMachineList)) - { - error_info = "ERROR 70"; - return null; - } - - if (isOpenMiddleValve == 1)//闃�闂ㄥ紑鐨勭姸鎬佷笅 涓ょ鐩歌繛鏁版嵁鐩稿姞姹傚钩鍧囧�� - { - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper calc_pipe_helper = - new IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper(); - calc_pipe_helper.InitialParas( - pipe1_TargetFlow + pipe2_TargetFlow, - water_level, - (pipe1_TargetPess + pipe2_TargetPess) / 2, - null, null, - allMachineList, machine_run_status.MachineRunFilter); - - return calc_pipe_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); - } - else //闃�闂ㄥ叧鐨勭姸鎬佷笅 涓ょ鐩歌繛鏁版嵁鐩稿姞 - { - var pipe1_machineIds = new List<long>() { 19, 22 };//1鍙锋车锛�2鍙锋车 - var pipe2_machineIds = new List<long>() { 25, 28 };//3鍙锋车锛�4鍙锋车 - - - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper calc_pipe1_helper = - new IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper(); - - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper calc_pipe2_helper = - new IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper(); - - if (pipe2_TargetFlow < 50) - {//鍙紑涓�鍙锋车浜屽彿娉� - calc_pipe1_helper.InitialParas( - pipe1_TargetFlow, - water_level, - pipe1_TargetPess, - null, null, - (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), - machine_run_status.MachineRunFilter); - - return calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); - } - else if (pipe1_TargetFlow < 50) - { - calc_pipe2_helper.InitialParas( - pipe2_TargetFlow, - water_level, - pipe2_TargetPess, - null, null, - (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), - machine_run_status.MachineRunFilter); - - return calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); - } - calc_pipe1_helper.InitialParas( - pipe1_TargetFlow, - water_level, - pipe1_TargetPess, - null, null, - (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), - machine_run_status.MachineRunFilter); - var pipe1_result = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); - - - calc_pipe2_helper.InitialParas( - pipe2_TargetFlow, - water_level, - pipe2_TargetPess, - null, null, - (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), - machine_run_status.MachineRunFilter); - - var pipe2_result = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3); - - if (pipe1_result == null || pipe2_result == null) - return default; - - var result_1 = pipe1_result.First(); - var result_2 = pipe2_result.First(); - - var plan = new Calculation.DispatchAna.Model.AnaScheme(); - plan.ID = 1; - plan.TotalWrkQ = result_1.TotalWrkQ + result_2.TotalWrkQ; - plan.TotalWrkH = result_1.TotalWrkH + result_2.TotalWrkH; - plan.TotalWrkP = result_1.TotalWrkP + result_2.TotalWrkP; - plan.TotalWrkE = IStation.Common.PumpParaHelper.CalculateE(plan.TotalWrkQ, plan.TotalWrkH, plan.TotalWrkP); - plan.UWP = CalculateUWP(plan.TotalWrkP, plan.TotalWrkQ, plan.TotalWrkH); - plan.WP = CalculateWP(plan.TotalWrkP, plan.TotalWrkQ); - - plan.Items = new List<Calculation.DispatchAna.Model.AnaSchemeItem>(); - if (result_1.Items != null && result_1.Items.Count > 0) - plan.Items.AddRange(result_1.Items); - if (result_2.Items != null && result_2.Items.Count > 0) - plan.Items.AddRange(result_2.Items); - - - return new List<Calculation.DispatchAna.Model.AnaScheme>() { plan }; - } - } - - - /// <summary> - /// 璁$畻淇濇寔褰撳墠寮�鏈虹姸鎬� - /// </summary> - /// <param name="complex_request_paras"></param> - /// <param name="openMachineIdList">寮�娉礗D</param> - /// <param name="error_info">閿欒淇℃伅</param> - /// <returns></returns> - public override IStation.Calculation.DispatchAna.Model.AnaScheme CalcKeepStatusCore( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - List<long> openMachineIdList, - out string error_info) - { - this._corpID = 4; - this._stationID = 2; - if(openMachineIdList == null || openMachineIdList.Count == 0) - { - error_info = "ERROR 25"; - return null; - } - error_info = null; - if (complex_request_paras == null) - { - error_info = "ERROR 30"; - return null; - } - - if (complex_request_paras.OutletPipePara == null || complex_request_paras.OutletPipePara.Count < 2) - { - error_info = "ERROR 35"; - return null; - } - double pipe1_TargetFlow = complex_request_paras.OutletPipePara[0].TargetFlow; - double pipe2_TargetFlow = complex_request_paras.OutletPipePara[1].TargetFlow; - if (pipe1_TargetFlow < 10 && pipe2_TargetFlow < 10) - { - return default; - } - - double pipe1_TargetPess = complex_request_paras.OutletPipePara[0].TargetPress; - double pipe2_TargetPess = complex_request_paras.OutletPipePara[1].TargetPress; - - - double water_level = 0;//姘翠綅 - if (complex_request_paras.WaterLevelPara != null && complex_request_paras.WaterLevelPara.Count > 0) - { - water_level = complex_request_paras.WaterLevelPara.First().Value; - } - - - if (complex_request_paras.ValvePara == null || complex_request_paras.ValvePara.Count < 1) - { - error_info = "ERROR 57"; - return null; - } - int isOpenMiddleValve = complex_request_paras.ValvePara.First().OpenStatus; - - List<IStation.Calculation.DispatchAna.Model.MachineDetail> allMachineList = null; - if (!BuildMachineList(complex_request_paras.CorpID, complex_request_paras.StationID, out allMachineList)) - { - error_info = "ERROR 70"; - return null; - } - - if (isOpenMiddleValve == 1)//闃�闂ㄥ紑鐨勭姸鎬佷笅 涓ょ鐩歌繛鏁版嵁鐩稿姞姹傚钩鍧囧�� - { - double press = 0; - if(pipe1_TargetPess > 0.1 && pipe2_TargetPess > 0.1) - { - press = (pipe1_TargetPess + pipe2_TargetPess) / 2; - } - else - { - if (pipe1_TargetPess > 0.01) - press = pipe1_TargetPess; - else if (pipe2_TargetPess > 0.01) - press = pipe2_TargetPess; - else - return null; - } - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper calc_pipe_helper = - new IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper(); - calc_pipe_helper.InitialParas( - pipe1_TargetFlow + pipe2_TargetFlow, - water_level, - press, - null, null, - allMachineList, null); - - return calc_pipe_helper.CalcKeepStatus(openMachineIdList); - } - else //闃�闂ㄥ叧鐨勭姸鎬佷笅 涓ょ鐩歌繛鏁版嵁鐩稿姞 - { - var pipe1_machineIds = new List<long>() { 19, 22 };//1鍙锋车锛�2鍙锋车 - var pipe2_machineIds = new List<long>() { 25, 28 };//3鍙锋车锛�4鍙锋车 - - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper calc_pipe1_helper - = new IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper(); - - IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper calc_pipe2_helper - = new IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper(); - - if (pipe2_TargetFlow < 30) - {//鍙紑涓�鍙锋车浜屽彿娉� - calc_pipe1_helper.InitialParas( - pipe1_TargetFlow, - water_level, - pipe1_TargetPess, - null, null, - (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null); - - return calc_pipe1_helper.CalcKeepStatus(openMachineIdList); - } - else if (pipe1_TargetFlow < 30) - { - calc_pipe2_helper.InitialParas( - pipe2_TargetFlow, - water_level, - pipe2_TargetPess, - null, null, - (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null); - - return calc_pipe2_helper.CalcKeepStatus(openMachineIdList); - } - - - - - calc_pipe1_helper.InitialParas( - pipe1_TargetFlow, - water_level, - pipe1_TargetPess, - null, null, - (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null); - var pipe1_result = calc_pipe1_helper.CalcKeepStatus(openMachineIdList); - - - calc_pipe2_helper.InitialParas( - pipe2_TargetFlow, - water_level, - pipe2_TargetPess, - null, null, - (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null); - - var pipe2_result = calc_pipe2_helper.CalcKeepStatus(openMachineIdList); - - if (pipe1_result == null || pipe2_result == null) - return default; - - - - var connect_scheme = new Calculation.DispatchAna.Model.AnaScheme(); - connect_scheme.ID = 1; - connect_scheme.TotalWrkQ = pipe1_result.TotalWrkQ + pipe2_result.TotalWrkQ; - connect_scheme.TotalWrkH = (pipe1_result.TotalWrkH + pipe2_result.TotalWrkH) / 2; - connect_scheme.TotalWrkP = pipe1_result.TotalWrkP + pipe2_result.TotalWrkP; - connect_scheme.TotalWrkE = IStation.Common.PumpParaHelper.CalculateE(connect_scheme.TotalWrkQ, connect_scheme.TotalWrkH, connect_scheme.TotalWrkP); - connect_scheme.UWP = CalculateUWP(connect_scheme.TotalWrkP, connect_scheme.TotalWrkQ, connect_scheme.TotalWrkH); - connect_scheme.WP = CalculateWP(connect_scheme.TotalWrkP, connect_scheme.TotalWrkQ); - - connect_scheme.Items = new List<Calculation.DispatchAna.Model.AnaSchemeItem>(); - if (pipe1_result.Items != null && pipe1_result.Items.Count > 0) - connect_scheme.Items.AddRange(pipe1_result.Items); - if (pipe2_result.Items != null && pipe2_result.Items.Count > 0) - connect_scheme.Items.AddRange(pipe2_result.Items); - - - return connect_scheme; - } - } - } -} diff --git a/Calculation/IStation.Calculation.Dispatch/general/Calculator.cs b/Calculation/IStation.Calculation.Dispatch/general/Calculator.cs index ae1bbd1..9a95740 100644 --- a/Calculation/IStation.Calculation.Dispatch/general/Calculator.cs +++ b/Calculation/IStation.Calculation.Dispatch/general/Calculator.cs @@ -10,7 +10,7 @@ /// <summary> /// 甯歌 /// </summary> - public class Calculator4StationGeneral : CalculatorBase, IDispatchAnalyCalculator + internal class Calculator4StationGeneral : CalculatorBase { /// <summary> /// 鑾峰彇褰撳墠璋冨害淇℃伅 @@ -19,55 +19,19 @@ /// <param name="StationID"></param> /// <param name="error_info"></param> /// <returns></returns> - public IStation.Calculation.DispatchAna.Model.CurrentRecordBundle GetCurrentRecord(long CorpID, long StationID, out string error_info) + public IStation.Calculation.DispatchAna.Model.CurrentRecordBundle GetCurrentRecord( + long CorpID, + long StationID, + out string error_info) { error_info = null; return null; } - /// <summary> - /// 璁$畻(鏈�浼�):闇�瑕佹坊鍔犲疄鏃舵暟鎹� - /// </summary> - /// <param name="complex_request_paras">闇�姹傚弬鏁�</param> - /// <param name="machine_run_status"></param> - /// <param name="error_info">閿欒淇℃伅</param> - /// <returns></returns> - public List<Calculation.DispatchAna.Model.AnaScheme> CalcOptListByPre( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - IStation.Calculation.DispatchAna.Model.MachineRunPara machine_run_status, - out string error_info) - { - return CalcOptListCore(complex_request_paras, machine_run_status, out error_info); - } + - /// <summary> - /// 璁$畻(鏈�浼�):闇�瑕佹坊鍔犲疄鏃舵暟鎹� - /// </summary> - /// <param name="complex_request_paras">闇�姹傚弬鏁�</param> - /// <param name="machine_run_status"></param> - /// <param name="error_info">閿欒淇℃伅</param> - /// <returns></returns> - public List<Calculation.DispatchAna.Model.AnaScheme> CalcOptListByWhole( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - IStation.Calculation.DispatchAna.Model.MachineRunPara machine_run_status, - out string error_info) - { - return CalcOptListCore(complex_request_paras, machine_run_status, out error_info); - } + - /// <summary> - /// - /// </summary> - /// <param name="complex_request_paras"></param> - /// <param name="openMachineIdList"></param> - /// <param name="error_info"></param> - /// <returns></returns> - public IStation.Calculation.DispatchAna.Model.AnaScheme CalcKeepStatusByWhole( - IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras, - List<long> openMachineIdList, - out string error_info) - { - return CalcKeepStatusByWhole(complex_request_paras, openMachineIdList, out error_info); - } + /// <summary> /// 璁$畻(鏈�浼�) /// </summary> @@ -117,9 +81,11 @@ List<IStation.Calculation.DispatchAna.Model.MachineDetail> allMachineList = null; - if (!BuildMachineList(complex_request_paras.CorpID, complex_request_paras.StationID, out allMachineList)) + if (!BuildMachineList( + out allMachineList, + out error_info)) { - error_info = "鏈烘车缁勬棤娉曟瀯寤�,ERROR 70"; + error_info = "鏈烘车缁勬棤娉曟瀯寤�,ERROR 70,閿欒淇℃伅:" + error_info; return null; } @@ -130,7 +96,8 @@ target_flow, water_level, target_press, - complex_request_paras.OutletPipePara[0].TargetFlowRangeMin, complex_request_paras.OutletPipePara[0].TargetFlowRangeMax, + complex_request_paras.OutletPipePara[0].TargetFlowRangeMin, + complex_request_paras.OutletPipePara[0].TargetFlowRangeMax, allMachineList, machine_run_status.MachineRunFilter); @@ -144,7 +111,7 @@ /// <param name="openMachineIdList">寮�娉礗D</param> /// <param name="error_info">閿欒淇℃伅</param> /// <returns></returns> - public override IStation.Calculation.DispatchAna.Model.AnaScheme CalcKeepStatusCore( + protected override IStation.Calculation.DispatchAna.Model.AnaScheme CalcKeepStatusCore( IStation.Calculation.DispatchAna.Model.RequestParasComplex requesParas, List<long> openMachineIdList, out string error_info) @@ -192,9 +159,11 @@ } List<IStation.Calculation.DispatchAna.Model.MachineDetail> allMachineList = null; - if (!BuildMachineList(requesParas.CorpID, requesParas.StationID, out allMachineList)) + if (!BuildMachineList( + out allMachineList, + out error_info)) { - error_info = "ERROR 70"; + error_info = "鏈烘车缁勬棤娉曟瀯寤�,ERROR 70,閿欒淇℃伅:" + error_info; return null; } @@ -203,9 +172,10 @@ calc_pipe_helper.InitialParas( target_flow, water_level, - target_press , - requesParas.OutletPipePara[0].TargetFlowRangeMin, requesParas.OutletPipePara[0].TargetFlowRangeMax, - allMachineList ,null ); + target_press, + requesParas.OutletPipePara[0].TargetFlowRangeMin, + requesParas.OutletPipePara[0].TargetFlowRangeMax, + allMachineList, null); return calc_pipe_helper.CalcKeepStatus(openMachineIdList); } diff --git a/Calculation/IStation.Calculation.Dispatch/helper/DispatchAnaGeneralHelper.cs b/Calculation/IStation.Calculation.Dispatch/helper/DispatchAnaGeneralHelper.cs deleted file mode 100644 index 3400a89..0000000 --- a/Calculation/IStation.Calculation.Dispatch/helper/DispatchAnaGeneralHelper.cs +++ /dev/null @@ -1,2143 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace IStation.Calculation.DispatchAna.Common -{ - /// <summary> - /// 璋冨害鍒嗘瀽(鏍稿績绠楁硶) - /// </summary> - public class DispatchAnaGeneralHelper - { - /// <summary> - /// - /// </summary> - static public double MinFlowIngore = 50;//娴侀噺浣庝簬澶氬皯灏变笉鑰冭檻浜� - /// <summary> - /// - /// </summary> - static public double ExtendMaxRatio = 1.25;//鏈�澶у欢闀跨巼 25% - /// <summary> - /// - /// </summary> - static public double MinChangeFrequence = 15;//鏈�灏忓彉鍖栫殑棰戠巼 - /// <summary> - /// - /// </summary> - static public double ChangeFrequenceSpaece = 0.5;//棰戠巼鍙樺寲鍊� - - private double _defaultInletDia = 1000; - private double _defaultOutletDia = 800; - - private double _targetQ; - private double _targetInletPress; - private double _targetOutletPress; - private double _targetQmax, _targetQmin; - - private List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> _machineRunFilterList = null; - private List<long> _must_open_machine_array = null; - private List<long> _must_close_machine_array = null; - private Dictionary<long, double> _machine_flow_limit_max_dict = null; - private Dictionary<long, double> _machine_flow_limit_min_dict = null; - private int _max_open_machine_number = 0;//鏈�澶氬紑鏈烘暟閲� - private List<IStation.Calculation.DispatchAna.Model.AnaScheme> _anaSchemeList = null; - private List<IStation.Calculation.DispatchAna.Model.MachineDetail> _allMachineList = null; - //缁勫悎杩愯绾︽潫(绂佹鍒ゆ柇) - private List<IStation.Calculation.DispatchAna.Model.CombineRunJudge> _allCombineRunJudgeList4Forbid = null; - //缁勫悎杩愯绾︽潫(蹇呴』鍒ゆ柇) - private List<List<long>> _allCombineRunJudgeList4Must = null; - /// <summary> - /// 鍒濆鍖栧弬鏁� - /// </summary> - /// <param name="targetQ"></param> - /// <param name="water_level"></param> - /// <param name="outlet_press"></param> - /// <param name="MinQ"></param> - /// <param name="MaxQ"></param> - /// <param name="allEnginePumpList"></param> - /// <param name="MachineRunFilterList"></param> - /// <returns></returns> - public bool InitialParas( - double targetQ, double water_level, double outlet_press, string MinQ, string MaxQ, - List<IStation.Calculation.DispatchAna.Model.MachineDetail > allEnginePumpList, - List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> MachineRunFilterList) - { - this._targetInletPress = Math.Round(water_level / 102, 4); - this._targetOutletPress = outlet_press; - this._targetQ = targetQ; - this._allMachineList = allEnginePumpList; - - - this._targetQmax = targetQ * 1.25; - this._targetQmin = targetQ * 0.85; - if (!string.IsNullOrEmpty(MinQ)) - { - double minq = targetQ; - if (MinQ.Contains("%")) - { - double ratio; - if (double.TryParse(MinQ.Replace("%", ""), out ratio)) - { - minq = targetQ * (1 - Math.Abs(ratio)); - } - } - else - { - double.TryParse(MinQ, out minq); - } - if (minq < targetQ) - { - _targetQmin = minq; - } - } - //IStation.LogHelper.Info("min_q:" + _targetQmin); - - if (!string.IsNullOrEmpty(MaxQ)) - { - double maxq = targetQ; - if (MaxQ.Contains("%")) - { - double ratio; - if (double.TryParse(MaxQ.Replace("%", ""), out ratio)) - { - maxq = targetQ * (1 + Math.Abs(ratio)); - } - } - else - { - double.TryParse(MaxQ, out maxq); - } - if (maxq > targetQ) - { - _targetQmax = maxq; - } - } - - - InitialFilter(MachineRunFilterList); - - - return true; - } - - #region 杩囨护 - private void InitialFilter(List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> MachineRunFilterList) - { - this._machineRunFilterList = MachineRunFilterList; - - if (_machineRunFilterList != null) - { - _must_open_machine_array = null; - _must_close_machine_array = null; - _machine_flow_limit_max_dict = null; - _machine_flow_limit_min_dict = null; - foreach (var m in _machineRunFilterList) - { - if (m.RunStatus == 1) - { - if (_must_open_machine_array == null) - _must_open_machine_array = new List<long>(); - - _must_open_machine_array.Add(m.MachineID); - } - - if (m.RunStatus == 0) - { - if (_must_close_machine_array == null) - _must_close_machine_array = new List<long>(); - - _must_close_machine_array.Add(m.MachineID); - } - - if (m.MaxFlow > 10) - { - if (this._machine_flow_limit_max_dict == null) - _machine_flow_limit_max_dict = new Dictionary<long, double>(); - _machine_flow_limit_max_dict[m.MachineID] = m.MaxFlow; - } - - } - - } - } - - //鏄惁绗﹀悎杩囨护 - private bool IsAccordMachineRunFilter(List<long> current_open_machine_id_array) - { - if (current_open_machine_id_array == null || current_open_machine_id_array.Count() == 0) - return false; - - //蹇呴』寮�鏈� - if (_must_open_machine_array != null && _must_open_machine_array.Count > 0) - { - foreach (var machine_id in _must_open_machine_array) - { - if (!current_open_machine_id_array.Contains(machine_id)) - return false; - } - } - - //涓嶈兘寮�鏈� - if (_must_close_machine_array != null && _must_close_machine_array.Count > 0) - { - foreach (var machine_id in current_open_machine_id_array) - { - if (_must_close_machine_array.Contains(machine_id)) - return false; - } - } - - - //寮�鏈虹粍鍚� 绾︽潫(绂佹) - if (_allCombineRunJudgeList4Forbid != null && _allCombineRunJudgeList4Forbid.Count() > 0) - { - foreach (var combineRunJudge in _allCombineRunJudgeList4Forbid) - {//绗﹀悎绂佹绾︽潫灏变笉琛� - if (combineRunJudge.Judgement(current_open_machine_id_array)) - return false; - } - } - - - //寮�鏈虹粍鍚� 绾︽潫(蹇呴』) - if (this._allCombineRunJudgeList4Must != null) - { - foreach( var item_arr in this._allCombineRunJudgeList4Must) - { - var q = from a in item_arr join b in current_open_machine_id_array on a equals b select a; - - bool flag = item_arr.Count == current_open_machine_id_array.Count && q.Count() == item_arr.Count; - - if (!flag) - return false; - } - } - return true; - } - #endregion - - - /// <summary> - /// 璁$畻(鏈�浼�) - /// </summary> - /// <param name="SchemeSortType"></param> - /// <param name="ReturnSchemeNumber"></param> - /// <returns></returns> - public List<IStation.Calculation.DispatchAna.Model.AnaScheme> CalcOptList ( - IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType SchemeSortType, - int ReturnSchemeNumber) - { - if (_allMachineList == null || _allMachineList.Count() == 0) - { - return null; - } - - - #region 鑾峰彇骞堕绠椾竴涓� - - List<IStation.Calculation.DispatchAna.Model.FixPumpAnaData> fixPumpAnaDataList = new List<IStation.Calculation.DispatchAna.Model.FixPumpAnaData>();//鍥洪娉� - List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData> frePumpAnaDataList = new List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData>();//鍙橀娉� - - foreach (var machine in _allMachineList) - { - if (_must_close_machine_array != null) - { - if (_must_close_machine_array.Contains(machine.MachineID)) - continue;//蹇呴』鍏抽棴 - } - - - if (machine.IsFrequency) - {//鍙橀娉� - var anaData = GetFrePumpAnaData(machine); - if (anaData != null) - frePumpAnaDataList.Add(anaData); - } - else - {//鍥洪娉� - var anaData = GetFixPumpAnaData(machine); - if (anaData != null) - fixPumpAnaDataList.Add(anaData); - } - } - #endregion - - #region 寮�濮嬪垎鏋� - _anaSchemeList = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); - - if (fixPumpAnaDataList == null || fixPumpAnaDataList.Count() == 0) - {//娌℃湁鍚堥�傜殑鍥洪娉� - AddOnlyFrePumpPrj(frePumpAnaDataList.ToArray()); - } - else - { - //鍒嗘瀽娌℃湁鍙橀娉靛紑鍚殑鎯呭喌 - AddOnlyFrePumpPrj(frePumpAnaDataList.ToArray()); - - //鍒嗘瀽鏈夊浐棰戞车寮�鍚殑鎯呭喌 - for (int fixPumpNum = 1; fixPumpNum <= fixPumpAnaDataList.Count(); fixPumpNum++) - { - //寰楀埌鎵�鏈夋帓鍒楃粍鍚�(宸ラ) - List<IStation.Calculation.DispatchAna.Model.FixPumpAnaData[]> fixPumpAnaCombineList = IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.FixPumpAnaData>.GetCombination( - fixPumpAnaDataList.ToArray(), fixPumpNum); - - #region 鍒嗘瀽姣忕缁勫悎 - foreach (IStation.Calculation.DispatchAna.Model.FixPumpAnaData[] fixPumpAnaCombine in fixPumpAnaCombineList) - {//閬嶅巻鍚勭宸ラ缁勫悎 - #region 妫�鏌ユ槸鍚︾鍚堝紑鏈虹害鏉� - List<long> machine_ids = new List<long>(); - if (fixPumpAnaCombine != null) - { - foreach (var item in fixPumpAnaCombine) - machine_ids.Add(item.MachineDetail.MachineID); - } - if (!IsAccordMachineRunFilter(machine_ids)) - { - continue; - } - #endregion - - var fix_pump_total_flow = (from x in fixPumpAnaCombine select x.AnaItem.WorkPointQ).Sum(); - if (fix_pump_total_flow > _targetQmax) - { - continue; - } - if (fix_pump_total_flow > _targetQmin) - {//鍙敤鍥洪娉靛嵆鍙� - AddOnlyFixPumpPrj(fixPumpAnaCombine, fix_pump_total_flow); - } - else if (frePumpAnaDataList.Count() > 0) - { - //鍙湁涓�鍙板彉棰戞车 - AddSingleFreqPumpPrj1(fixPumpAnaCombine, frePumpAnaDataList.ToArray()); - //鏈�2鍙板彉棰戞车 - if (fixPumpAnaCombine.Count() >= 2) - { - AddMultiFreqPumpPrj2(fixPumpAnaCombine, frePumpAnaDataList.ToArray()); - } - //鏈�3鍙板彉棰戞车 - if (fixPumpAnaCombine.Count() >= 3) - { - AddMultiFreqPumpPrj3(fixPumpAnaCombine, frePumpAnaDataList.ToArray()); - } - //鏈�4鍙板彉棰戞车 - if (fixPumpAnaCombine.Count() >= 4) - { - AddMultiFreqPumpPrj4(fixPumpAnaCombine, frePumpAnaDataList.ToArray(), fix_pump_total_flow); - } - //鏈�5鍙板彉棰戞车 - if (fixPumpAnaCombine.Count() >= 5) - { - AddMultiFreqPumpPrj5(fixPumpAnaCombine, frePumpAnaDataList.ToArray(), fix_pump_total_flow); - } - } - } - #endregion - } - } - #endregion - - //璁$畻 - var ds_disp_project_list = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); - foreach (var project in _anaSchemeList) - { - //璁$畻娴侀噺 - //project.TotalWrkQ = (from x in project.Items where x.WorkPointQ > 0 select x.WorkPointQ).Sum(); - if (project.TotalWrkQ <= _targetQmax && project.TotalWrkQ >= this._targetQmin) - ds_disp_project_list.Add(project); - - project.UWP = Math.Round(project.UWP, 3); - project.WP = Math.Round(project.WP, 3); - project.SpanQ = Math.Round(project.TotalWrkQ - _targetQ, 0); - project.CalcItemParas(); - } - - // 0 鍔熺巼 1 娴侀噺闂撮殧 - if (SchemeSortType == IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType.鍔熺巼) - ds_disp_project_list = (from x in ds_disp_project_list orderby x.TotalWrkP select x).ToList(); - else if (SchemeSortType == IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType.娴侀噺宸��) - ds_disp_project_list = (from x in ds_disp_project_list orderby Math.Abs(x.SpanQ) select x).ToList(); - - //閲嶆柊缂栧彿ID - for (int i = 0; i < ds_disp_project_list.Count; i++) - { - ds_disp_project_list[i].ID = i + 1; - } - - if (ReturnSchemeNumber <= 0) - return ds_disp_project_list; - else - return ds_disp_project_list.Take(ReturnSchemeNumber).ToList(); - } - - /// <summary> - /// 璁$畻(淇濇寔褰撳墠寮�娉电姸鎬�) - /// </summary> - /// <param name="openMachineIdList"></param> - /// <returns></returns> - public IStation.Calculation.DispatchAna.Model.AnaScheme CalcKeepStatus(List<long> openMachineIdList) - { - if (_allMachineList == null || _allMachineList.Count() == 0) - { - return null; - } - if (openMachineIdList == null || openMachineIdList.Count() == 0) - { - return null; - } - this._allCombineRunJudgeList4Must = new List<List<long>>(); - _allCombineRunJudgeList4Must.Add(openMachineIdList); - - #region 鑾峰彇骞堕绠椾竴涓� - - List<IStation.Calculation.DispatchAna.Model.FixPumpAnaData> fixPumpAnaDataList = new List<IStation.Calculation.DispatchAna.Model.FixPumpAnaData>();//鍥洪娉� - List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData> frePumpAnaDataList = new List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData>();//鍙橀娉� - - foreach (var machine_id in openMachineIdList) - { - var machine = this._allMachineList.Find(x => x.MachineID == machine_id); - if (machine == null) - continue; - - if (machine.IsFrequency) - {//鍙橀娉� - var anaData = GetFrePumpAnaData(machine); - if (anaData != null) - frePumpAnaDataList.Add(anaData); - } - else - {//鍥洪娉� - var anaData = GetFixPumpAnaData(machine); - if (anaData != null) - fixPumpAnaDataList.Add(anaData); - } - } - #endregion - - #region 寮�濮嬪垎鏋� - _anaSchemeList = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); - - if (fixPumpAnaDataList == null || fixPumpAnaDataList.Count() == 0) - {//娌℃湁鍚堥�傜殑鍥洪娉� - AddOnlyFrePumpPrj(frePumpAnaDataList.ToArray()); - } - else - { - var fix_pump_total_flow = (from x in fixPumpAnaDataList select x.AnaItem.WorkPointQ).Sum(); - - if (fix_pump_total_flow > _targetQmin) - {//鍙敤鍥洪娉靛嵆鍙� - AddOnlyFixPumpPrj(fixPumpAnaDataList.ToArray(), fix_pump_total_flow); - } - else - { - int iFrePumpCount = frePumpAnaDataList.Count(); - if (iFrePumpCount == 0) - {//鍙敤鍥洪娉靛嵆鍙� - AddOnlyFixPumpPrj(fixPumpAnaDataList.ToArray(), fix_pump_total_flow); - } - else if (iFrePumpCount == 1) - {//鍙湁涓�鍙板彉棰戞车 - AddSingleFreqPumpPrj1(fixPumpAnaDataList.ToArray(), frePumpAnaDataList.ToArray()); - } - else if (iFrePumpCount == 2) - {//鏈�2鍙板彉棰戞车 - AddMultiFreqPumpPrj2(fixPumpAnaDataList.ToArray(), frePumpAnaDataList.ToArray()); - } - else if (iFrePumpCount == 3) - {//鏈�3鍙板彉棰戞车 - AddMultiFreqPumpPrj3(fixPumpAnaDataList.ToArray(), frePumpAnaDataList.ToArray()); - } - else if (iFrePumpCount == 4) - {//鏈�4鍙板彉棰戞车 - AddMultiFreqPumpPrj4(fixPumpAnaDataList.ToArray(), frePumpAnaDataList.ToArray(), fix_pump_total_flow); - } - else if (iFrePumpCount == 5) - { //鏈�5鍙板彉棰戞车 - AddMultiFreqPumpPrj5(fixPumpAnaDataList.ToArray(), frePumpAnaDataList.ToArray(), fix_pump_total_flow); - } - else - { //鏈�6鍙板彉棰戞车 - AddMultiFreqPumpPrj6(fixPumpAnaDataList.ToArray(), frePumpAnaDataList.ToArray(), fix_pump_total_flow); - } - } - } - #endregion - - if (_anaSchemeList.Count() == 0) - return null; - - //璁$畻 - var ds_disp_project_list = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); - foreach (var project in _anaSchemeList) - { - project.UWP = Math.Round(project.UWP, 3); - project.WP = Math.Round(project.WP, 3); - project.SpanQ = Math.Round(project.TotalWrkQ - _targetQ, 0); - project.CalcItemParas(); - - ds_disp_project_list.Add(project); - } - - return (from x in ds_disp_project_list orderby x.TotalWrkP select x).FirstOrDefault(); - } - - #region 绠楀嚭鏄惁绗﹀悎鐨勫浐棰戞车:GetFixPumpAnaData - private IStation.Calculation.DispatchAna.Model.FixPumpAnaData GetFixPumpAnaData(IStation.Calculation.DispatchAna.Model.MachineDetail Machine) - { - if (Machine == null) - return null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem anaData = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - if (CalcAnaCurve(Machine.MaxCurveInfoQH, Machine.MaxCurveInfoQP, - this._targetInletPress, this._targetOutletPress, this._defaultInletDia, this._defaultOutletDia, 50, ref anaData) <= 0) - return null; - - anaData.CurveInfoQH = Machine.MaxCurveInfoQH; - anaData.CurveInfoQP = Machine.MaxCurveInfoQP; - anaData.Frequence = 50; - anaData.Speed = Machine.Ratedn; - - return new IStation.Calculation.DispatchAna.Model.FixPumpAnaData() { MachineDetail = Machine, AnaItem = anaData }; - } - #endregion - - /// <summary> - /// - /// </summary> - /// <param name="InletPress"></param> - /// <param name="OutletPress"></param> - /// <param name="InletDia"></param> - /// <param name="OutletDia"></param> - /// <param name="Flow"></param> - /// <returns></returns> - private double CalcHeadByPress(double InletPress, double OutletPress,double InletDia,double OutletDia, double Flow) - { - //return (OutletPress - InletPress) * 102; - double h4Press = (OutletPress - InletPress) * 102; - if(Flow>0 && InletDia>0 && OutletDia > 0) - { - double rPipeInV = OtherPressCoeff * Flow / InletDia / InletDia; - double rPipeOutV = OtherPressCoeff * Flow / OutletDia / OutletDia; - - double rVDif = (rPipeOutV * rPipeOutV - rPipeInV * rPipeInV) / 9.81 / 2.0; - - return h4Press + rVDif; - } - else - { - return h4Press; - } - } - - #region 绠楀嚭鏄惁绗﹀悎鐨勫彉棰戞车:GetFrePumpAnaData - - private IStation.Calculation.DispatchAna.Model.FrePumpAnaData GetFrePumpAnaData( - IStation.Calculation.DispatchAna.Model.MachineDetail Machine) - { - if (Machine == null) - return null; - - IStation.Calculation.DispatchAna.Model.FrePumpAnaData anaData = new IStation.Calculation.DispatchAna.Model.FrePumpAnaData(); - anaData.MachineDetail = Machine; - anaData.AnaItemList = new List<IStation.Calculation.DispatchAna.Model.AnaCurveItem>(); - - double targetH = this.CalcHeadByPress(this._targetInletPress, - this._targetOutletPress, this._defaultInletDia, this._defaultOutletDia, this._targetQ ) ; - //CalcHeadByPress(this._targetInletPress, this._targetOutletPress); - - - - - double maxH; - double minH; - var points50 = IStation.Model.FitCurveHelper.GetFitPoints(Machine.MaxCurveInfoQH, 50); - IStation.Model.FitCurveHelper.GetMinMaxPointY(points50, out maxH, out minH); - if (maxH < targetH) - { - return null; - } - - - var pointsMin = IStation.Common.SpeedSimuCalculer.GetSimuPointQH(Machine.MaxCurveInfoQH, 50, MinChangeFrequence); - IStation.Model.FitCurveHelper.GetMinMaxPointY(pointsMin, out maxH, out minH); - if (minH > targetH) - { - return null; - } - - //鑾峰彇姣忎釜棰戠巼鐨勫��(绮楃畻) - for (double freqCurrentFrequ = 50; freqCurrentFrequ > MinChangeFrequence; - freqCurrentFrequ = freqCurrentFrequ - ChangeFrequenceSpaece) - { - IStation.Calculation.DispatchAna.Model.AnaCurveItem curve = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - int ret = CalcAnaCurve(Machine.MaxCurveInfoQH, Machine.MaxCurveInfoQP, - this._targetInletPress, this._targetOutletPress, this._defaultInletDia, this._defaultOutletDia, freqCurrentFrequ, ref curve); - if (ret == -1) - break;//-1 琛ㄧず鏈�澶ф壃绋嬮兘宸茬粡浣庝簬鐩爣鎵▼浜�, 娌″繀瑕佸啀杩唬浜� - if (ret == 0) - continue; - curve.Speed = Machine.CalcSpeedByFrequence(curve.Frequence); - - anaData.AnaItemList.Add(curve); - } - - - - return anaData; - } - #endregion - - - #region 绮剧畻 - private void CalcDetailAccurate(ref IStation.Calculation.DispatchAna.Model.AnaScheme project) - { - //娌℃湁鍙橀娉�, 灏辨病鏈夊繀瑕佺簿绠� - var frequecePumps = (from x in project.Items where x.IsFrequency select x); - if (frequecePumps == null || frequecePumps.Count() == 0) - return; - - - if (frequecePumps.Count() == 1) - {//鍙湁涓�鍙�,姣旇緝绠�鍗� - #region 鍙湁涓�鍙�,姣旇緝绠�鍗� - IStation.Calculation.DispatchAna.Model.AnaSchemeItem current_adjust_item = frequecePumps.FirstOrDefault(); - var current_machine = (from x in this._allMachineList where x.MachineID == current_adjust_item.MachineID select x).FirstOrDefault(); - if (current_machine == null) - return; - - var totalWrkQ_other = (from x in project.Items where x.WorkPointQ > 0 && x.MachineID != current_adjust_item.MachineID select x.WorkPointQ).Sum(); - // var target_pump_flow = this._targetQ - totalWrkQ_other; - - var max_fr = Math.Min(50, current_adjust_item.Frequence + ChangeFrequenceSpaece * 2); - var min_fr = current_adjust_item.Frequence - ChangeFrequenceSpaece * 2; - - double flow_chajiu = Math.Abs(project.TotalWrkQ - this._targetQ); - - for (double fre = max_fr; fre > min_fr; fre = fre - 0.1) - { - IStation.Calculation.DispatchAna.Model.AnaCurveItem ana_item = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - int ret = CalcAnaCurve(current_machine.MaxCurveInfoQH, current_machine.MaxCurveInfoQP, - this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, - fre, ref ana_item); - if (ret == -1) - return;//-1 琛ㄧず鏈�澶ф壃绋嬮兘宸茬粡浣庝簬鐩爣鎵▼浜�, 娌″繀瑕佸啀杩唬浜� - - if (ret == 0) - continue; - var total_q = totalWrkQ_other + ana_item.WorkPointQ; - if (total_q < this._targetQmin) - break;//濡傛灉宸茬粡浣庝簬鏈�灏�,涓嶇敤鍐嶅彉棰戜簡 - if (Math.Abs(total_q - this._targetQ) < flow_chajiu) - { - flow_chajiu = Math.Abs(total_q - this._targetQ); - current_adjust_item.Frequence = Math.Round(fre, 1); - current_adjust_item.WorkPointQ = Math.Round(ana_item.WorkPointQ, 1); - current_adjust_item.WorkPointP = Math.Round(ana_item.WorkPointP, 1); - - - // 鍐嶆眹鎬讳竴涓� - project.TotalWrkQ = (from x in project.Items where x.WorkPointQ > 0 select x.WorkPointQ).Sum(); - project.TotalWrkP = (from x in project.Items where x.WorkPointP > 0 select x.WorkPointP).Sum(); - - project.UWP = Calcu_UWP(project.TotalWrkP, project.TotalWrkQ, this._targetInletPress, this._targetOutletPress); - project.WP = Calcu_WP(project.TotalWrkP, project.TotalWrkQ); - } - - if (total_q < this._targetQ) - { - break; - } - } - #endregion - - } - else if (frequecePumps.Count() == 2) - { - IStation.Calculation.DispatchAna.Model.AnaSchemeItem adjust_item_1 = frequecePumps.ElementAt(0); - IStation.Calculation.DispatchAna.Model.AnaSchemeItem adjust_item_2 = frequecePumps.ElementAt(1); - var adjust_machine_1 = (from x in this._allMachineList where x.MachineID == adjust_item_1.MachineID select x).FirstOrDefault(); - if (adjust_machine_1 == null) - return; - var adjust_machine_2 = (from x in this._allMachineList where x.MachineID == adjust_item_2.MachineID select x).FirstOrDefault(); - if (adjust_machine_2 == null) - return; - //闄や簡璋冭В娉电殑鍏朵粬娉垫祦閲� - var total_flow_other = (from x in project.Items where x.WorkPointQ > 0 && x.MachineID != adjust_machine_1.MachineID && x.MachineID != adjust_machine_2.MachineID select x.WorkPointQ).Sum(); - - var total_power_other = (from x in project.Items where x.WorkPointP > 0 && x.MachineID != adjust_machine_1.MachineID && x.MachineID != adjust_machine_2.MachineID select x.WorkPointP).Sum(); - - List<IStation.Calculation.DispatchAna.Model.AnaCurveItem> item_js_1 = new List<IStation.Calculation.DispatchAna.Model.AnaCurveItem>(); - for (double fre = Math.Min(50, adjust_item_1.Frequence + ChangeFrequenceSpaece * 2); - fre > adjust_item_1.Frequence - ChangeFrequenceSpaece * 2; - fre = fre - 0.1) - { - IStation.Calculation.DispatchAna.Model.AnaCurveItem ana_item = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - int ret = CalcAnaCurve(adjust_machine_1.MaxCurveInfoQH, - adjust_machine_1.MaxCurveInfoQP, - this._targetInletPress, this._targetOutletPress, - this._defaultInletDia,this._defaultOutletDia, - fre, ref ana_item); - if (ret == -1) - break; - item_js_1.Add(ana_item); - } - - List<IStation.Calculation.DispatchAna.Model.AnaCurveItem> item_js_2 = new List<IStation.Calculation.DispatchAna.Model.AnaCurveItem>(); - for (double fre = Math.Min(50, adjust_item_2.Frequence + ChangeFrequenceSpaece * 2); - fre > adjust_item_2.Frequence - ChangeFrequenceSpaece * 2; - fre = fre - 0.1) - { - IStation.Calculation.DispatchAna.Model.AnaCurveItem ana_item = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - int ret = CalcAnaCurve(adjust_machine_2.MaxCurveInfoQH, adjust_machine_2.MaxCurveInfoQP, - this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, fre, ref ana_item); - if (ret == -1) - break; - item_js_2.Add(ana_item); - } - - double ump_chajiu = project.UWP; - - foreach (var item1 in item_js_1) - { - foreach (var item2 in item_js_2) - { - var total_flow = item1.WorkPointQ + item2.WorkPointQ + total_flow_other; - if (Math.Abs(total_flow - this._targetQ) < this._targetQ * 0.01) - { - var total_power = item1.WorkPointP + item2.WorkPointP + total_power_other; - var uwp = Calcu_UWP(total_power, total_flow, this._targetInletPress, this._targetOutletPress); - - if (uwp < ump_chajiu) - { - adjust_item_1.ResetItem(item1); - adjust_item_2.ResetItem(item2); - adjust_item_1.Frequence = Math.Round(item1.Frequence, 1); - adjust_item_2.Frequence = Math.Round(item2.Frequence, 1); - - // 鍐嶆眹鎬讳竴涓� - project.TotalWrkQ = (from x in project.Items where x.WorkPointQ > 0 select x.WorkPointQ).Sum(); - project.TotalWrkP = (from x in project.Items where x.WorkPointP > 0 select x.WorkPointP).Sum(); - - project.UWP = Calcu_UWP(project.TotalWrkP, project.TotalWrkQ, this._targetInletPress, this._targetOutletPress); - project.WP = Calcu_WP(project.TotalWrkP, project.TotalWrkQ); - } - - } - } - } - - - - } - else - { - //鍝釜娉垫祦閲忓ぇ,灏辫皟鏁村摢涓车 - IStation.Calculation.DispatchAna.Model.AnaSchemeItem aj_pump = frequecePumps.FirstOrDefault(); - foreach (var p in project.Items) - { - if (!p.IsFrequency) - continue; - if (p.WorkPointQ > aj_pump.WorkPointQ) - { - aj_pump = p; - } - } - //闄や簡璋冭В娉电殑鍏朵粬娉垫祦閲� - var total_flow_other = (from x in project.Items where x.WorkPointQ > 0 && x.MachineID != aj_pump.MachineID select x.WorkPointQ).Sum(); - // - double flow_chajiu = Math.Abs(project.TotalWrkQ - this._targetQ); - // - var pump_curve = (from x in this._allMachineList where x.MachineID == aj_pump.MachineID select x).FirstOrDefault(); - if (pump_curve != null) - { - var max_fr = Math.Min(50, aj_pump.Frequence + ChangeFrequenceSpaece * 2); - var min_fr = aj_pump.Frequence - ChangeFrequenceSpaece * 2; - for (double fre = max_fr; fre > min_fr; fre = fre - 0.1) - { - IStation.Calculation.DispatchAna.Model.AnaCurveItem curve = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - int ret = CalcAnaCurve(pump_curve.MaxCurveInfoQH, pump_curve.MaxCurveInfoQP, - this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, fre, ref curve); - if (ret == -1) - break;//-1 琛ㄧず鏈�澶ф壃绋嬮兘宸茬粡浣庝簬鐩爣鎵▼浜�, 娌″繀瑕佸啀杩唬浜� - if (ret == 0) - continue; - var total_q = total_flow_other + curve.WorkPointQ; - if (total_q < this._targetQmin) - break;//濡傛灉宸茬粡浣庝簬鏈�灏�,涓嶇敤鍐嶅彉棰戜簡 - if (Math.Abs(total_q - this._targetQ) < flow_chajiu) - { - flow_chajiu = Math.Abs(total_q - this._targetQ); - aj_pump.Frequence = Math.Round(fre, 1); - aj_pump.WorkPointQ = Math.Round(curve.WorkPointQ, 1); - aj_pump.WorkPointP = Math.Round(curve.WorkPointP, 1); - - //鍐嶆眹鎬讳竴涓� - project.TotalWrkQ = (from x in project.Items where x.WorkPointQ > 0 select x.WorkPointQ).Sum(); - project.TotalWrkP = (from x in project.Items where x.WorkPointP > 0 select x.WorkPointP).Sum(); - - project.UWP = Calcu_UWP(project.TotalWrkP, project.TotalWrkQ, this._targetInletPress, this._targetOutletPress); - project.WP = Calcu_WP(project.TotalWrkP, project.TotalWrkQ); - } - - if (total_q < this._targetQ) - { - break; - } - } - } - } - - - } - #endregion - - - #region 鏍规嵁棰戠巼鍊�,璁$畻鍙橀鏇茬嚎 - /// <summary> - /// 鏍规嵁棰戠巼鍊�,璁$畻鍙橀鏇茬嚎(澶栭儴涔熶細璋冪敤) - /// </summary> - /// <param name="MaxCurveInfoQH"></param> - /// <param name="MaxCurveInfoQP"></param> - /// <param name="inletPress"></param> - /// <param name="outletPress"></param> - /// <param name="InletDia"></param> - /// <param name="OutletDia"></param> - /// <param name="freqCurrentFrequ"></param> - /// <param name="ana_data"></param> - /// <returns></returns> - public static int CalcAnaCurve( - IStation.Model.CurveExpress MaxCurveInfoQH, - IStation.Model.CurveExpress MaxCurveInfoQP, - double inletPress, double outletPress, - double InletDia, double OutletDia, - double freqCurrentFrequ,//棰戠巼鍊� - ref IStation.Calculation.DispatchAna.Model.AnaCurveItem ana_data) - { - if (ana_data == null) - ana_data = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - - if (Math.Abs(freqCurrentFrequ - 50) < 0.1) - { - ana_data.Frequence = freqCurrentFrequ; - ana_data.CurveInfoQH = MaxCurveInfoQH; - ana_data.CurveInfoQP = MaxCurveInfoQP; - - double flow = 0; - if (!GetFolwByPress(ana_data.CurveInfoQH, inletPress, outletPress, InletDia, OutletDia, ref flow)) - { - ana_data.IsOverMaxH = true; - ana_data.Note = "宸茶秴鍑烘渶澶у彲琛岀殑娴侀噺"; - return 0; - } - flow = Math.Round(flow, 1); - - var head = IStation.Model.FitCurveHelper.GetFitPointY(ana_data.CurveInfoQH, Math.Round(flow, 1)); - head = Math.Round(head, 1); - ana_data.WorkPointQ = flow; - ana_data.WorkPointH = head; - ana_data.WorkPointP = Math.Round(IStation.Model.FitCurveHelper.GetFitPointY(ana_data.CurveInfoQP, ana_data.WorkPointQ), 1); - ana_data.WorkPointE = Math.Round(IStation.Common.PumpParaHelper.CalculateE(ana_data.WorkPointQ, ana_data.WorkPointH, ana_data.WorkPointP), 1); - - ana_data.IsExtendCurve = false; - if (flow > ana_data.CurveInfoQH.Max) - {//鍦ㄥ欢闀跨嚎涓� - ana_data.IsExtendCurve = true; - - //寤堕暱鐜� - double extRatioQ = Math.Round(flow * 100 / ana_data.CurveInfoQH.Max, 1); - ana_data.Note = string.Format("鍦ㄥ欢闀挎洸绾块儴鍒�,鍙傛暟鍙兘涓嶅噯纭�,寤堕暱鐜囦负:{0:0.0}", extRatioQ); - } - - return 1; - } - else - { - #region 鍙橀 - - ana_data.Frequence = Math.Round(freqCurrentFrequ, 1); - - - ana_data.CurveInfoQH = IStation.Common.SpeedSimuCalculer.GetSimuPointQH(MaxCurveInfoQH, 50, ana_data.Frequence); - ana_data.CurveInfoQP = IStation.Common.SpeedSimuCalculer.GetSimuPointQP(MaxCurveInfoQP, 50, ana_data.Frequence); - - double flow = 0; - if (!GetFolwByPress(ana_data.CurveInfoQH, inletPress, outletPress, InletDia, OutletDia, ref flow)) - { - ana_data.IsOverMaxH = true; - ana_data.Note = "宸茶秴鍑烘渶澶у彲琛岀殑娴侀噺"; - return 0; - } - flow = Math.Round(flow, 1); - - var head = IStation.Model.FitCurveHelper.GetFitPointY(ana_data.CurveInfoQH, Math.Round(flow, 1)); - head = Math.Round(head, 1); - ana_data.WorkPointQ = flow; - ana_data.WorkPointH = head; - ana_data.WorkPointP = Math.Round(IStation.Model.FitCurveHelper.GetFitPointY(ana_data.CurveInfoQP, ana_data.WorkPointQ), 1); - ana_data.WorkPointE = Math.Round(IStation.Common.PumpParaHelper.CalculateE(ana_data.WorkPointQ, ana_data.WorkPointH, ana_data.WorkPointP), 1); - - ana_data.IsExtendCurve = false; - if (flow > ana_data.CurveInfoQH.Max) - {//鍦ㄥ欢闀跨嚎涓� - ana_data.IsExtendCurve = true; - - //寤堕暱鐜� - double extRatioQ = Math.Round(flow * 100 / ana_data.CurveInfoQH.Max, 1); - ana_data.Note = string.Format("鍦ㄥ欢闀挎洸绾块儴鍒�,鍙傛暟鍙兘涓嶅噯纭�,寤堕暱鐜囦负:{0:0.0}", extRatioQ); - } - - - - #endregion - - return 1; - } - - } - - //鏍规嵁鍘嬪樊璁$畻娴侀噺 - private static double OtherPressCoeff = 4 * 1000 / Math.PI / 3.6; - /// <summary> - /// - /// </summary> - /// <param name="curveInfoQH"></param> - /// <param name="InletPress"></param> - /// <param name="OutletPress"></param> - /// <param name="InletDia"></param> - /// <param name="OutletDia"></param> - /// <param name="flow"></param> - /// <returns></returns> - public static bool GetFolwByPress( - IStation.Model.CurveExpress curveInfoQH, - double InletPress, double OutletPress, - double InletDia, double OutletDia, - ref double flow) - { - if(InletDia <1) - InletDia = 1000; - if (OutletDia < 1) - OutletDia = 800; - - double g = 9.81; - - double h4Press = (OutletPress - InletPress) * 102; - //璁$畻娴侀噺 - var points = IStation.Model.FitCurveHelper.GetFitPointsByExtend(curveInfoQH, ExtendMaxRatio, 50); - List<IStation.Model.CurvePoint> listQ = IStation.Model.FitCurveHelper.GetInterPointX(points, h4Press); - if (listQ == null || listQ.Count == 0) - { - return false; - } - - flow = listQ.Last().X; - - double initialQ = listQ.Last().X; - double calcQ = initialQ;//鐢ㄤ簬璁$畻鐨勬祦閲� - for (int calcNo = 1; calcNo <= 3; calcNo++) - { - double rPipeInV = OtherPressCoeff * calcQ / InletDia / InletDia; - double rPipeOutV = OtherPressCoeff * calcQ / OutletDia / OutletDia; - - double rVDif = (rPipeOutV * rPipeOutV - rPipeInV * rPipeInV) / g / 2.0; - double dieDai1H = h4Press + rVDif; - - if (GetFolwByHead(points, dieDai1H, ref flow)) - { - if (Math.Abs(calcQ - flow) / flow < 0.005) - { - return true; - } - //缁х画杩唬 - if (calcQ > flow) - { - calcQ = flow + Math.Abs(calcQ - flow) / 2; - } - else - { - calcQ = flow - Math.Abs(calcQ - flow) / 2; - } - } - else - { - return false; - } - } - - return true; - } - /// <summary> - /// - /// </summary> - /// <param name="curveInfoQH"></param> - /// <param name="h"></param> - /// <param name="q"></param> - /// <returns></returns> - public static bool GetFolwByHead(List<IStation.Model.CurvePoint> curveInfoQH, double h, ref double q) - { - List<IStation.Model.CurvePoint> listQ = IStation.Model.FitCurveHelper.GetInterPointX(curveInfoQH, h); - if (listQ == null || listQ.Count == 0) - { - return false; - } - - q = listQ.Last().X; - - return true; - } - /// <summary> - /// 鏍规嵁棰戠巼鍊�,璁$畻鍙橀鏇茬嚎 - /// </summary> - /// <param name="MaxCurveInfoQH"></param> - /// <param name="targetH"></param> - /// <param name="freqCurrentFrequ"></param> - /// <param name="curve"></param> - /// <returns></returns> - public static int CalcAnaCurveDDD( - IStation.Model.CurveExpress MaxCurveInfoQH, - double targetH, - double freqCurrentFrequ,//棰戠巼鍊� - ref IStation.Calculation.DispatchAna.Model.AnaCurveItem curve) - { - if (curve == null) - curve = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - if (Math.Abs(freqCurrentFrequ - 50) < 0.1) - { - curve.Frequence = freqCurrentFrequ; - curve.CurveInfoQH = MaxCurveInfoQH; - double maxH; - double minH; - var points = IStation.Model.FitCurveHelper.GetFitPointsByExtend(curve.CurveInfoQH, ExtendMaxRatio, 50); - IStation.Model.FitCurveHelper.GetMinMaxPointY(points, out maxH, out minH); - if (maxH < targetH) - { - curve.IsOverMaxH = true; - curve.Note = "宸茶秴鍑烘渶澶ц繍琛屾壃绋�"; - return -1;//-1 琛ㄧず鏈�澶ф壃绋嬮兘宸茬粡浣庝簬鐩爣鎵▼浜�, 娌″繀瑕佸啀杩唬浜� - } - - List<IStation.Model.CurvePoint> interPts = IStation.Model.FitCurveHelper.GetInterPointX(points, targetH); - if (interPts == null || interPts.Count == 0) - { - curve.IsOverMaxH = true; - curve.Note = "宸茶秴鍑烘渶澶у彲琛岀殑娴侀噺"; - return 0; - } - IStation.Model.CurvePoint pt = interPts.Last(); - if (pt.X < MinFlowIngore) - { - curve.IsOverMaxH = true; - curve.Note = "宸茶秴鍑烘渶澶у彲琛岀殑娴侀噺"; - return -1; - } - - curve.IsExtendCurve = false; - curve.WorkPointQ = Math.Round(pt.X, 1); - curve.WorkPointH = Math.Round(pt.Y, 1); - - if (pt.X > curve.CurveInfoQH.Max) - {//鍦ㄥ欢闀跨嚎涓� - curve.IsExtendCurve = true; - - //寤堕暱鐜� - double extRatioQ = Math.Round(pt.X * 100 / curve.CurveInfoQH.Max, 1); - curve.Note = string.Format("鍦ㄥ欢闀挎洸绾块儴鍒�,鍙傛暟鍙兘涓嶅噯纭�,寤堕暱鐜囦负:{0:0.0}", extRatioQ); - - //鏁堢巼寤堕暱涓嶇ǔ瀹� - //if (anaData.CurveInfoQP != null) - //{ - // var exPointsQP = IStation.Model.FitCurveHelper.GetFitPointsByExtend(anaData.CurveInfoQP, ExtendMaxRatio, 50);//寤堕暱 - // anaData.WorkPointP = Math.Round(IStation.Model.FitCurveHelper.GetFitPointY(exPointsQP, anaData.WorkPointQ), 1); - // anaData.WorkPointE = IStation.Common.PumpParaHelper.CalculateE(anaData.WorkPointQ, anaData.WorkPointH, anaData.WorkPointP); - //} - } - else - { - curve.IsExtendCurve = false; - } - return 1; - } - else - { - #region 鍙橀 - - curve.Frequence = freqCurrentFrequ; - - - curve.CurveInfoQH = IStation.Common.SpeedSimuCalculer.GetSimuPointQH(MaxCurveInfoQH, 50, freqCurrentFrequ); - - var points = IStation.Model.FitCurveHelper.GetFitPointsByExtend(curve.CurveInfoQH, ExtendMaxRatio, 50);//寤堕暱 - - //IStation.Model.FitCurveHelper.GetMinMaxPointY(points, out maxH, out minH); - List<IStation.Model.CurvePoint> extPtsQH = IStation.Model.FitCurveHelper.GetInterPointX(points, targetH); - if (extPtsQH == null || extPtsQH.Count == 0) - {//鍦ㄥ欢闀跨嚎閮芥病鏈変氦鐐�,灏变笉瑕佸啀杩唬浜�. - if (targetH > curve.CurveInfoQH.Index0) - return -1;//-1 琛ㄧず鏈�澶ф壃绋嬮兘宸茬粡浣庝簬鐩爣鎵▼浜�, 娌″繀瑕佸啀杩唬浜� - - return 0; - } - - IStation.Model.CurvePoint pt = extPtsQH.Last(); - if (pt.X < MinFlowIngore) - { - return -1; - } - - - curve.IsExtendCurve = false; - curve.WorkPointQ = Math.Round(pt.X, 1); - curve.WorkPointH = Math.Round(pt.Y, 1); - - if (pt.X > curve.CurveInfoQH.Max) - {//鍦ㄥ欢闀跨嚎涓� - curve.IsExtendCurve = true; - //寤堕暱鐜� - double extRatioQ = Math.Round(pt.X * 100 / curve.CurveInfoQH.Max, 1); - curve.Note = string.Format("鍦ㄥ欢闀挎洸绾块儴鍒�,鍙傛暟鍙兘涓嶅噯纭�,寤堕暱鐜囦负:{0:0.0}", extRatioQ); - //if (MaxCurveInfoQP != null) - //{ - // curve.CurveInfoQP = IStation.Common.SpeedSimuCalculer.GetSimuPointQP(MaxCurveInfoQP, 50, freqCurrentFrequ); - // var exPointsQP = IStation.Model.FitCurveHelper.GetFitPointsByExtend(curve.CurveInfoQP, ExtendMaxRatio, 50);//寤堕暱 - // curve.WorkPointP = Math.Round(IStation.Model.FitCurveHelper.GetFitPointY(exPointsQP, curve.WorkPointQ), 1); - // curve.WorkPointE = IStation.Common.PumpParaHelper.CalculateE(curve.WorkPointQ, curve.WorkPointH, curve.WorkPointP); - //} - } - else - { - curve.IsExtendCurve = false; - //if (MaxCurveInfoQP != null) - //{ - // curve.CurveInfoQP = IStation.Common.SpeedSimuCalculer.GetSimuPointQP(MaxCurveInfoQP, 50, freqCurrentFrequ); - // curve.WorkPointP = Math.Round(IStation.Model.FitCurveHelper.GetFitPointY(curve.CurveInfoQP, curve.WorkPointQ), 1); - // curve.WorkPointE = IStation.Common.PumpParaHelper.CalculateE(curve.WorkPointQ, curve.WorkPointH, curve.WorkPointP); - //} - } - #endregion - - return 1; - } - - } - - - #endregion - - - #region 娣诲姞椤圭洰 (鍙湁鐢ㄥ浐棰戞车) - private IStation.Calculation.DispatchAna.Model.AnaScheme AddOnlyFixPumpPrj( - IStation.Calculation.DispatchAna.Model.FixPumpAnaData[] fixPumpAnaDataList, - double totalQ) - { - // - var rowPrj = new IStation.Calculation.DispatchAna.Model.AnaScheme(); - - rowPrj.TotalWrkQ = totalQ; - rowPrj.TotalWrkH = Math.Round( this.CalcHeadByPress(this._targetInletPress, - this._targetOutletPress, this._defaultInletDia, this._defaultOutletDia, totalQ),3); - rowPrj.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); - - foreach (var fixPump in fixPumpAnaDataList) - { - if (fixPump.AnaItem.WorkPointQ < 1) - continue; - - var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem); - - rowPrj.Items.Add(itemRow); - } - AddScheme(rowPrj, false); - - return rowPrj; - } - #endregion - - - #region 娣诲姞椤圭洰 鍙湁鐢ㄥ彉棰戦娉靛嵆鍙� - private void AddOnlyFrePumpPrj( - IStation.Calculation.DispatchAna.Model.FrePumpAnaData[] freqPumpAnaList) - { - AddSingleFreqPumpPrj1(null, freqPumpAnaList); - - //鏈�2鍙板彉棰戞车 - if (freqPumpAnaList.Count() >= 2) - { - AddMultiFreqPumpPrj2(null, freqPumpAnaList); - } - - //鏈�3鍙板彉棰戞车 - if (freqPumpAnaList.Count() >= 3) - { - AddMultiFreqPumpPrj3(null, freqPumpAnaList); - } - - //鏈�4鍙板彉棰戞车 - if (freqPumpAnaList.Count() >= 4) - { - AddMultiFreqPumpPrj4(null, freqPumpAnaList, 0); - } - - //鏈�5鍙板彉棰戞车 - if (freqPumpAnaList.Count() >= 5) - { - AddMultiFreqPumpPrj5(null, freqPumpAnaList, 0); - } - - //鏈�6鍙板彉棰戞车 - //if (freqPumpAnaList.Count >= 6) - //{ - // AddMultiFreqPumpPrj6(null, freqPumpAnaList, 0); - //} - } - #endregion - - - #region 娣诲姞椤圭洰 鍙湁1鍙板彉棰戞车:AddOneFreqPumpPrj - private int AddSingleFreqPumpPrj1( - IStation.Calculation.DispatchAna.Model.FixPumpAnaData[] allFixPumpAnaList, - IStation.Calculation.DispatchAna.Model.FrePumpAnaData[] allFreqPumpAnaList) - { - if (allFreqPumpAnaList == null || allFreqPumpAnaList.Count() == 0) - return 0; - - //鍒ゆ柇鏈�澶у紑鏈烘暟 - if (_max_open_machine_number > 0) - { - int macine_number = 1; - if (allFixPumpAnaList != null) - { - macine_number = macine_number + allFixPumpAnaList.Count(); - } - if (macine_number > _max_open_machine_number) - return 0; - } - - double fix_pump_total_flow = 0; - if (allFixPumpAnaList != null) - { - fix_pump_total_flow = (from x in allFixPumpAnaList select x.AnaItem.WorkPointQ).Sum(); - } - if (fix_pump_total_flow >= this._targetQ * 0.99) - return 0; - - int addPrjNum = 0; - foreach (var freqPump in allFreqPumpAnaList) - { - #region 妫�鏌ユ槸鍚︾鍚堝紑鏈虹害鏉� - List<long> machine_ids = new List<long>(); - machine_ids.Add(freqPump.MachineDetail.MachineID); - if (allFixPumpAnaList != null) - { - foreach (var item in allFixPumpAnaList) - machine_ids.Add(item.MachineDetail.MachineID); - } - if (!IsAccordMachineRunFilter(machine_ids)) - { - continue; - } - #endregion - - - double h = //this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress); - Math.Round(this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, this._targetQ), 3); - - var wrkSpeed = IStation.Common.SpeedSimuCalculer.GetSimuValue( - freqPump.MachineDetail.MaxCurveInfoQH, - new IStation.Model.CurvePoint(_targetQ - fix_pump_total_flow, h), 2900); - - IStation.Calculation.DispatchAna.Model.AnaCurveItem currentAna = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - - double fre = Math.Round(50 * wrkSpeed / 2900, 1); - int ret = CalcAnaCurve(freqPump.MachineDetail.MaxCurveInfoQH, - freqPump.MachineDetail.MaxCurveInfoQP, this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, fre, ref currentAna); - if (ret == -1) - continue; - if (ret == 0) - continue; - currentAna.Speed = freqPump.MachineDetail.CalcSpeedByFrequence(fre); - - - var rowPrj = new IStation.Calculation.DispatchAna.Model.AnaScheme(); - rowPrj.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); - - #region 鍔犲叆鍥洪娉靛紑鍚俊鎭� - if (allFixPumpAnaList != null) - { - foreach (var fixPump in allFixPumpAnaList) - { - if (fixPump.AnaItem.WorkPointQ < 1) - continue; - var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem); - rowPrj.Items.Add(itemRow); - } - } - #endregion - - - var itemRowF = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump.MachineDetail, currentAna); - rowPrj.Items.Add(itemRowF); - - AddScheme(rowPrj, false); - addPrjNum++; - } - - return addPrjNum; - } - #endregion - - - #region 娣诲姞椤圭洰 鍙湁2鍙板彉棰戞车:AddTwoFreqPumpPrj - private int AddMultiFreqPumpPrj2( - IStation.Calculation.DispatchAna.Model.FixPumpAnaData[] allFixPumpAnaList, - IStation.Calculation.DispatchAna.Model.FrePumpAnaData[] allFreqPumpAnaList) - { - int addPrjNum = 0; - int frePumpNum = 2; - if (allFreqPumpAnaList == null || allFreqPumpAnaList.Count() < frePumpNum) - return addPrjNum; - - //鍒ゆ柇鏈�澶у紑鏈烘暟 - if (_max_open_machine_number > 0) - { - int macine_number = 2; - if (allFixPumpAnaList != null) - { - macine_number = macine_number + allFixPumpAnaList.Count(); - } - if (macine_number > _max_open_machine_number) - return 0; - } - - double fix_pump_total_flow = 0; - if (allFixPumpAnaList != null) - { - fix_pump_total_flow = (from x in allFixPumpAnaList select x.AnaItem.WorkPointQ).Sum(); - } - - List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData[]> freqPumpAnaCombineList = IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.FrePumpAnaData>.GetCombination( - allFreqPumpAnaList, frePumpNum); - foreach (var freqPumpAnaCombine in freqPumpAnaCombineList) - { - var freqPump1 = freqPumpAnaCombine[0]; - var freqPump2 = freqPumpAnaCombine[1]; - - #region 妫�鏌ユ槸鍚︾鍚堝紑鏈虹害鏉� - List<long> machine_ids = new List<long>(); - machine_ids.Add(freqPump1.MachineDetail.MachineID); - machine_ids.Add(freqPump2.MachineDetail.MachineID); - if (allFixPumpAnaList != null) - { - foreach (var item in allFixPumpAnaList) - machine_ids.Add(item.MachineDetail.MachineID); - } - if (!IsAccordMachineRunFilter(machine_ids)) - { - continue; - } - #endregion - - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData1 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData2 = null; - - - var rowPrj = new IStation.Calculation.DispatchAna.Model.AnaScheme(); - rowPrj.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); - - #region 鍔犲叆鍥洪娉靛紑鍚俊鎭� - if (allFixPumpAnaList != null) - { - foreach (var fixPump in allFixPumpAnaList) - { - if (fixPump.AnaItem.WorkPointQ < 1) - continue; - - var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem); - rowPrj.Items.Add(itemRow); - } - } - #endregion - - bool isActCalc = true; - if (freqPump1.MachineDetail.PumpCode == freqPump2.MachineDetail.PumpCode) - {//鍚屽瀷鍙� - #region 娴侀噺瀵瑰崐鍒� - var fre_pump_total_flow = this._targetQ - fix_pump_total_flow; - isActCalc = false; - - double h = //this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress); - Math.Round(this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, this._targetQ), 3); - - //娴侀噺瀵瑰崐鍒� - var wrkSpeed1 = IStation.Common.SpeedSimuCalculer.GetSimuValue(freqPump1.MachineDetail.MaxCurveInfoQH, - new IStation.Model.CurvePoint((_targetQ - fix_pump_total_flow) * 0.5, h), 2900); - curveData1 = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - double fre1 = Math.Round(50 * wrkSpeed1 / 2900, 1); - int ret1 = CalcAnaCurve(freqPump1.MachineDetail.MaxCurveInfoQH, - freqPump1.MachineDetail.MaxCurveInfoQP, this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, fre1, ref curveData1); - if (ret1 == -1) - continue; - if (ret1 == 0) - continue; - curveData1.Speed = freqPump1.MachineDetail.CalcSpeedByFrequence(fre1); - - - - var wrkSpeed2 = IStation.Common.SpeedSimuCalculer.GetSimuValue(freqPump2.MachineDetail.MaxCurveInfoQH, - new IStation.Model.CurvePoint((_targetQ - fix_pump_total_flow) * 0.5, h), 2900); - curveData2 = new IStation.Calculation.DispatchAna.Model.AnaCurveItem(); - double fre2 = Math.Round(50 * wrkSpeed2 / 2900, 1); - int ret2 = CalcAnaCurve(freqPump2.MachineDetail.MaxCurveInfoQH, - freqPump2.MachineDetail.MaxCurveInfoQP, - this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, fre2, ref curveData2); - if (ret2 == -1) - continue; - if (ret2 == 0) - continue; - curveData2.Speed = freqPump2.MachineDetail.CalcSpeedByFrequence(fre2); - #endregion - } - else - { - #region MyRegion - isActCalc = true; - - double minSpanQ = _targetQ; - - - //鎵惧埌绂籣targetQ鏈�鎺ヨ繎鐨勯鐜囩偣 - for (int index1 = 0; index1 < freqPump1.AnaItemList.Count; index1++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index2 = 0; index2 < freqPump2.AnaItemList.Count; index2++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - double freTotalQ = freqPump1.AnaItemList[index1].WorkPointQ + - freqPump2.AnaItemList[index2].WorkPointQ; - if (Math.Abs(fix_pump_total_flow + freTotalQ - _targetQ) < minSpanQ) - { - minSpanQ = Math.Abs(fix_pump_total_flow + freTotalQ - _targetQ); - curveData1 = freqPump1.AnaItemList[index1]; - curveData2 = freqPump2.AnaItemList[index2]; - } - } - } - #endregion - } - - - - - if (curveData1.WorkPointQ > 10) - { - var itemRowF1 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump1.MachineDetail, curveData1); - rowPrj.Items.Add(itemRowF1); - } - - - if (curveData2.WorkPointQ > 10) - { - var itemRowF2 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump2.MachineDetail, curveData2); - rowPrj.Items.Add(itemRowF2); - } - - if (AddScheme(rowPrj, isActCalc)) - addPrjNum++; - - } - - return addPrjNum; - } - #endregion - - - #region 娣诲姞椤圭洰 鍙湁3鍙板彉棰戞车:AddThreeFreqPumpPrj - private int AddMultiFreqPumpPrj3( - IStation.Calculation.DispatchAna.Model.FixPumpAnaData[] allFixPumpAnaList, - IStation.Calculation.DispatchAna.Model.FrePumpAnaData[] allFreqPumpAnaList) - { - int addPrjNum = 0; - int frePumpNum = 3; - if (allFreqPumpAnaList == null || allFreqPumpAnaList.Count() < frePumpNum) - return addPrjNum; - - //鍒ゆ柇鏈�澶у紑鏈烘暟 - if (_max_open_machine_number > 0) - { - int macine_number = 3; - if (allFixPumpAnaList != null) - { - macine_number = macine_number + allFixPumpAnaList.Count(); - } - if (macine_number > _max_open_machine_number) - return 0; - } - - double fix_pump_total_flow = 0; - if (allFixPumpAnaList != null) - { - fix_pump_total_flow = (from x in allFixPumpAnaList select x.AnaItem.WorkPointQ).Sum(); - } - - List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData[]> freqPumpAnaCombineList = IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.FrePumpAnaData>.GetCombination( - allFreqPumpAnaList.ToArray(), frePumpNum); - foreach (var freqPumpAnaCombine in freqPumpAnaCombineList) - { - var freqPump1 = freqPumpAnaCombine[0]; - var freqPump2 = freqPumpAnaCombine[1]; - var freqPump3 = freqPumpAnaCombine[2]; - - #region 妫�鏌ユ槸鍚︾鍚堝紑鏈虹害鏉� - List<long> machine_ids = new List<long>(); - machine_ids.Add(freqPump1.MachineDetail.MachineID); - machine_ids.Add(freqPump2.MachineDetail.MachineID); - machine_ids.Add(freqPump3.MachineDetail.MachineID); - if (allFixPumpAnaList != null) - { - foreach (var item in allFixPumpAnaList) - machine_ids.Add(item.MachineDetail.MachineID); - } - if (!IsAccordMachineRunFilter(machine_ids)) - { - continue; - } - #endregion - - double freTotalQ = fix_pump_total_flow; - double minSpanQ = _targetQmax; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData1 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData2 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData3 = null; - - // - var rowPrj = new IStation.Calculation.DispatchAna.Model.AnaScheme(); - - rowPrj.TotalWrkQ = freTotalQ; - rowPrj.TotalWrkH = //this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress); - Math.Round(this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, this._targetQ), 3); - rowPrj.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); - - //鎵惧埌绂籣targetQ鏈�鎺ヨ繎鐨勯鐜囩偣 - for (int index1 = 0; index1 < freqPump1.AnaItemList.Count; index1++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index2 = 0; index2 < freqPump2.AnaItemList.Count; index2++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index3 = 0; index3 < freqPump3.AnaItemList.Count; index3++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - double wrkQ = freqPump1.AnaItemList[index1].WorkPointQ + - freqPump2.AnaItemList[index2].WorkPointQ + - freqPump3.AnaItemList[index3].WorkPointQ; - - if (Math.Abs(fix_pump_total_flow + wrkQ - _targetQ) < minSpanQ) - { - freTotalQ = fix_pump_total_flow + wrkQ; - rowPrj.TotalWrkQ = freTotalQ; - minSpanQ = Math.Abs(freTotalQ - _targetQ); - curveData1 = freqPump1.AnaItemList[index1]; - curveData2 = freqPump2.AnaItemList[index2]; - curveData3 = freqPump3.AnaItemList[index3]; - } - } - } - } - - // - if (freTotalQ < _targetQmax && freTotalQ > _targetQmin && curveData1 != null) - { - #region 鍔犲叆鍥洪娉靛紑鍚俊鎭� - if (allFixPumpAnaList != null) - { - foreach (var fixPump in allFixPumpAnaList) - { - if (fixPump.AnaItem.WorkPointQ < 1) - continue; - var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem); - rowPrj.Items.Add(itemRow); - } - } - #endregion - - - if (curveData1.WorkPointQ > 10) - { - var itemRowF1 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump1.MachineDetail, curveData1); - rowPrj.Items.Add(itemRowF1); - } - - if (curveData2.WorkPointQ > 10) - { - var itemRowF2 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump2.MachineDetail, curveData2); - rowPrj.Items.Add(itemRowF2); - } - - if (curveData3.WorkPointQ > 10) - { - var itemRowF3 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump3.MachineDetail, curveData3); - rowPrj.Items.Add(itemRowF3); - } - - AddScheme(rowPrj, true); - addPrjNum++; - } - } - - return addPrjNum; - } - #endregion - - - #region 娣诲姞椤圭洰 鍙湁4鍙板彉棰戞车:AddFourFreqPumpPrj - private int AddMultiFreqPumpPrj4( - IStation.Calculation.DispatchAna.Model.FixPumpAnaData[] allFixPumpAnaList, - IStation.Calculation.DispatchAna.Model.FrePumpAnaData[] allFreqPumpAnaList, - double fix_pump_total_flow) - { - int addPrjNum = 0; - int frePumpNum = 4; - if (allFreqPumpAnaList == null || allFreqPumpAnaList.Count() < frePumpNum) - return addPrjNum; - - //鍒ゆ柇鏈�澶у紑鏈烘暟 - if (_max_open_machine_number > 0) - { - int macine_number = 4; - if (allFixPumpAnaList != null) - { - macine_number = macine_number + allFixPumpAnaList.Count(); - } - if (macine_number > _max_open_machine_number) - return 0; - } - - List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData[]> freqPumpAnaCombineList = IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.FrePumpAnaData>.GetCombination( - allFreqPumpAnaList, frePumpNum); - foreach (var freqPumpAnaCombine in freqPumpAnaCombineList) - { - var freqPump1 = freqPumpAnaCombine[0]; - var freqPump2 = freqPumpAnaCombine[1]; - var freqPump3 = freqPumpAnaCombine[2]; - var freqPump4 = freqPumpAnaCombine[3]; - - #region 妫�鏌ユ槸鍚︾鍚堝紑鏈虹害鏉� - List<long> machine_ids = new List<long>(); - machine_ids.Add(freqPump1.MachineDetail.MachineID); - machine_ids.Add(freqPump2.MachineDetail.MachineID); - machine_ids.Add(freqPump3.MachineDetail.MachineID); - machine_ids.Add(freqPump4.MachineDetail.MachineID); - if (allFixPumpAnaList != null) - { - foreach (var item in allFixPumpAnaList) - machine_ids.Add(item.MachineDetail.MachineID); - } - if (!IsAccordMachineRunFilter(machine_ids)) - { - continue; - } - #endregion - - double freTotalQ = fix_pump_total_flow; - double minSpanQ = _targetQmax; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData1 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData2 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData3 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData4 = null; - - var rowPrj = new IStation.Calculation.DispatchAna.Model.AnaScheme(); - rowPrj.TotalWrkQ = freTotalQ; - rowPrj.TotalWrkH = //this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress); - Math.Round( this.CalcHeadByPress(this._targetInletPress, - this._targetOutletPress, this._defaultInletDia, this._defaultOutletDia, this._targetQ),3); - rowPrj.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); - - - - //鎵惧埌绂籣targetQ鏈�鎺ヨ繎鐨勯鐜囩偣 - for (int index1 = 0; index1 < freqPump1.AnaItemList.Count; index1++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index2 = 0; index2 < freqPump2.AnaItemList.Count; index2++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index3 = 0; index3 < freqPump3.AnaItemList.Count; index3++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index4 = 0; index4 < freqPump4.AnaItemList.Count; index4++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - double wrkQ = freqPump1.AnaItemList[index1].WorkPointQ + - freqPump2.AnaItemList[index2].WorkPointQ + - freqPump3.AnaItemList[index3].WorkPointQ + - freqPump4.AnaItemList[index4].WorkPointQ; - if (Math.Abs(fix_pump_total_flow + wrkQ - _targetQ) < minSpanQ) - { - freTotalQ = fix_pump_total_flow + wrkQ; - rowPrj.TotalWrkQ = freTotalQ; - minSpanQ = Math.Abs(freTotalQ - _targetQ); - curveData1 = freqPump1.AnaItemList[index1]; - curveData2 = freqPump2.AnaItemList[index2]; - curveData3 = freqPump3.AnaItemList[index3]; - curveData4 = freqPump4.AnaItemList[index4]; - } - } - } - } - } - - // - if (freTotalQ < _targetQmax && freTotalQ > _targetQmin && curveData1 != null) - { - #region 鍔犲叆鍥洪娉靛紑鍚俊鎭� - if (allFixPumpAnaList != null) - { - foreach (var fixPump in allFixPumpAnaList) - { - if (fixPump.AnaItem.WorkPointQ < 1) - continue; - var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem); - rowPrj.Items.Add(itemRow); - } - } - #endregion - - - var itemRowF1 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump1.MachineDetail, curveData1); - rowPrj.Items.Add(itemRowF1); - - var itemRowF2 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump2.MachineDetail, curveData2); - rowPrj.Items.Add(itemRowF2); - - var itemRowF3 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump3.MachineDetail, curveData3); - rowPrj.Items.Add(itemRowF3); - - var itemRowF4 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump4.MachineDetail, curveData4); - rowPrj.Items.Add(itemRowF4); - - - AddScheme(rowPrj, true); - addPrjNum++; - } - } - - return addPrjNum; - } - #endregion - - - #region 娣诲姞椤圭洰 鍙湁5鍙板彉棰戞车:AddMultiFreqPumpPrj5 - private int AddMultiFreqPumpPrj5( - IStation.Calculation.DispatchAna.Model.FixPumpAnaData[] allFixPumpAnaList, - IStation.Calculation.DispatchAna.Model.FrePumpAnaData[] allFreqPumpAnaList, - double fix_pump_total_flow) - { - int addPrjNum = 0; - int frePumpNum = 5; - if (allFreqPumpAnaList == null || allFreqPumpAnaList.Count() < frePumpNum) - return addPrjNum; - - //鍒ゆ柇鏈�澶у紑鏈烘暟 - if (_max_open_machine_number > 0) - { - int macine_number = 5; - if (allFixPumpAnaList != null) - { - macine_number = macine_number + allFixPumpAnaList.Count(); - } - if (macine_number > _max_open_machine_number) - return 0; - } - - List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData[]> freqPumpAnaCombineList = IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.FrePumpAnaData>.GetCombination( - allFreqPumpAnaList, frePumpNum); - foreach (var freqPumpAnaCombine in freqPumpAnaCombineList) - { - var freqPump1 = freqPumpAnaCombine[0]; - var freqPump2 = freqPumpAnaCombine[1]; - var freqPump3 = freqPumpAnaCombine[2]; - var freqPump4 = freqPumpAnaCombine[3]; - var freqPump5 = freqPumpAnaCombine[4]; - - #region 妫�鏌ユ槸鍚︾鍚堝紑鏈虹害鏉� - List<long> machine_ids = new List<long>(); - machine_ids.Add(freqPump1.MachineDetail.MachineID); - machine_ids.Add(freqPump2.MachineDetail.MachineID); - machine_ids.Add(freqPump3.MachineDetail.MachineID); - machine_ids.Add(freqPump4.MachineDetail.MachineID); - machine_ids.Add(freqPump5.MachineDetail.MachineID); - if (allFixPumpAnaList != null) - { - foreach (var item in allFixPumpAnaList) - machine_ids.Add(item.MachineDetail.MachineID); - } - if (!IsAccordMachineRunFilter(machine_ids)) - { - continue; - } - #endregion - - double freTotalQ = fix_pump_total_flow; - double minSpanQ = _targetQmax; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData1 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData2 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData3 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData4 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData5 = null; - - var rowPrj = new IStation.Calculation.DispatchAna.Model.AnaScheme(); - rowPrj.TotalWrkQ = freTotalQ; - rowPrj.TotalWrkH = //this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress); - Math.Round(this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, this._targetQ), 3); - rowPrj.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); - - //double TotalWrkP = 0; - - - //鎵惧埌绂籣targetQ鏈�鎺ヨ繎鐨勯鐜囩偣 - for (int index1 = 0; index1 < freqPump1.AnaItemList.Count; index1++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index2 = 0; index2 < freqPump2.AnaItemList.Count; index2++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index3 = 0; index3 < freqPump3.AnaItemList.Count; index3++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index4 = 0; index4 < freqPump4.AnaItemList.Count; index4++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index5 = 0; index5 < freqPump5.AnaItemList.Count; index5++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - double wrkQ = - freqPump1.AnaItemList[index1].WorkPointQ + - freqPump2.AnaItemList[index2].WorkPointQ + - freqPump3.AnaItemList[index3].WorkPointQ + - freqPump4.AnaItemList[index4].WorkPointQ + - freqPump5.AnaItemList[index5].WorkPointQ; - if (Math.Abs(fix_pump_total_flow + wrkQ - _targetQ) < minSpanQ) - { - freTotalQ = fix_pump_total_flow + wrkQ; - rowPrj.TotalWrkQ = freTotalQ; - minSpanQ = Math.Abs(freTotalQ - _targetQ); - curveData1 = freqPump1.AnaItemList[index1]; - curveData2 = freqPump2.AnaItemList[index2]; - curveData3 = freqPump3.AnaItemList[index3]; - curveData4 = freqPump4.AnaItemList[index4]; - curveData5 = freqPump5.AnaItemList[index5]; - } - } - } - } - } - } - - // - if (freTotalQ < _targetQmax && freTotalQ > _targetQmin && curveData1 != null) - { - #region 鍔犲叆鍥洪娉靛紑鍚俊鎭� - if (allFixPumpAnaList != null) - { - foreach (var fixPump in allFixPumpAnaList) - { - if (fixPump.AnaItem.WorkPointQ < 1) - continue; - var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem); - rowPrj.Items.Add(itemRow); - } - } - #endregion - - - var itemRowF1 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump1.MachineDetail, curveData1); - rowPrj.Items.Add(itemRowF1); - - var itemRowF2 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump2.MachineDetail, curveData2); - rowPrj.Items.Add(itemRowF2); - - var itemRowF3 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump3.MachineDetail, curveData3); - rowPrj.Items.Add(itemRowF3); - - var itemRowF4 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump4.MachineDetail, curveData4); - rowPrj.Items.Add(itemRowF4); - - var itemRowF5 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump5.MachineDetail, curveData5); - rowPrj.Items.Add(itemRowF5); - - - AddScheme(rowPrj, true); - addPrjNum++; - } - } - - return addPrjNum; - } - #endregion - - - #region 娣诲姞椤圭洰 鍙湁6鍙板彉棰戞车:AddMultiFreqPumpPrj6 - private int AddMultiFreqPumpPrj6( - IStation.Calculation.DispatchAna.Model.FixPumpAnaData[] allFixPumpAnaList, - IStation.Calculation.DispatchAna.Model.FrePumpAnaData[] allFreqPumpAnaList, - double fix_pump_total_flow) - { - int addPrjNum = 0; - int frePumpNum = 6; - if (allFreqPumpAnaList == null || allFreqPumpAnaList.Count() < frePumpNum) - return addPrjNum; - - //鍒ゆ柇鏈�澶у紑鏈烘暟 - if (_max_open_machine_number > 0) - { - int macine_number = 6; - if (allFixPumpAnaList != null) - { - macine_number = macine_number + allFixPumpAnaList.Count(); - } - if (macine_number > _max_open_machine_number) - return 0; - } - - List<IStation.Calculation.DispatchAna.Model.FrePumpAnaData[]> freqPumpAnaCombineList = IStation.Model.PermutationAndCombination<IStation.Calculation.DispatchAna.Model.FrePumpAnaData>.GetCombination( - allFreqPumpAnaList, frePumpNum); - foreach (var freqPumpAnaList in freqPumpAnaCombineList) - { - var freqPump1 = freqPumpAnaList[0]; - var freqPump2 = freqPumpAnaList[1]; - var freqPump3 = freqPumpAnaList[2]; - var freqPump4 = freqPumpAnaList[3]; - var freqPump5 = freqPumpAnaList[4]; - var freqPump6 = freqPumpAnaList[5]; - - #region 妫�鏌ユ槸鍚︾鍚堝紑鏈虹害鏉� - List<long> machine_ids = new List<long>(); - machine_ids.Add(freqPump1.MachineDetail.MachineID); - machine_ids.Add(freqPump2.MachineDetail.MachineID); - machine_ids.Add(freqPump3.MachineDetail.MachineID); - machine_ids.Add(freqPump4.MachineDetail.MachineID); - machine_ids.Add(freqPump5.MachineDetail.MachineID); - machine_ids.Add(freqPump6.MachineDetail.MachineID); - if (allFixPumpAnaList != null) - { - foreach (var item in allFixPumpAnaList) - machine_ids.Add(item.MachineDetail.MachineID); - } - if (!IsAccordMachineRunFilter(machine_ids)) - { - continue; - } - #endregion - - - double freTotalQ = fix_pump_total_flow; - double minSpanQ = _targetQmax; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData1 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData2 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData3 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData4 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData5 = null; - IStation.Calculation.DispatchAna.Model.AnaCurveItem curveData6 = null; - - var rowPrj = new IStation.Calculation.DispatchAna.Model.AnaScheme(); - rowPrj.TotalWrkQ = freTotalQ; - rowPrj.TotalWrkH = //this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress); - Math.Round(this.CalcHeadByPress(this._targetInletPress, this._targetOutletPress, - this._defaultInletDia, this._defaultOutletDia, this._targetQ), 3); - rowPrj.Items = new List<IStation.Calculation.DispatchAna.Model.AnaSchemeItem>(); - - - //鎵惧埌绂籣targetQ鏈�鎺ヨ繎鐨勯鐜囩偣 - for (int index1 = 0; index1 < freqPump1.AnaItemList.Count; index1++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index2 = 0; index2 < freqPump2.AnaItemList.Count; index2++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index3 = 0; index3 < freqPump3.AnaItemList.Count; index3++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index4 = 0; index4 < freqPump4.AnaItemList.Count; index4++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index5 = 0; index5 < freqPump5.AnaItemList.Count; index5++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - for (int index6 = 0; index6 < freqPump6.AnaItemList.Count; index6++) - {//棰戠巼瓒婃潵瓒婂皬,c.WorkPointQ涔熻秺鏉ヨ秺灏� - double wrkQ = - freqPump1.AnaItemList[index1].WorkPointQ + - freqPump2.AnaItemList[index2].WorkPointQ + - freqPump3.AnaItemList[index3].WorkPointQ + - freqPump4.AnaItemList[index4].WorkPointQ + - freqPump5.AnaItemList[index5].WorkPointQ + - freqPump6.AnaItemList[index6].WorkPointQ; - if (Math.Abs(fix_pump_total_flow + wrkQ - _targetQ) < minSpanQ) - { - freTotalQ = fix_pump_total_flow + wrkQ; - rowPrj.TotalWrkQ = freTotalQ; - minSpanQ = Math.Abs(freTotalQ - _targetQ); - curveData1 = freqPump1.AnaItemList[index1]; - curveData2 = freqPump2.AnaItemList[index2]; - curveData3 = freqPump3.AnaItemList[index3]; - curveData4 = freqPump4.AnaItemList[index4]; - curveData5 = freqPump5.AnaItemList[index5]; - curveData6 = freqPump6.AnaItemList[index6]; - } - } - } - } - } - } - } - - // - if (freTotalQ < _targetQmax && freTotalQ > _targetQmin && curveData1 != null) - { - #region 鍔犲叆鍥洪娉靛紑鍚俊鎭� - if (allFixPumpAnaList != null) - { - foreach (var fixPump in allFixPumpAnaList) - { - if (fixPump.AnaItem.WorkPointQ < 1) - continue; - var itemRow = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(fixPump.MachineDetail, fixPump.AnaItem); - - rowPrj.Items.Add(itemRow); - } - } - #endregion - - - var itemRowF1 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump1.MachineDetail, curveData1); - rowPrj.Items.Add(itemRowF1); - - var itemRowF2 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump2.MachineDetail, curveData2); - rowPrj.Items.Add(itemRowF2); - - var itemRowF3 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump3.MachineDetail, curveData3); - rowPrj.Items.Add(itemRowF3); - - var itemRowF4 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump4.MachineDetail, curveData4); - rowPrj.Items.Add(itemRowF4); - - var itemRowF5 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump5.MachineDetail, curveData5); - rowPrj.Items.Add(itemRowF5); - - var itemRowF6 = new IStation.Calculation.DispatchAna.Model.AnaSchemeItem(freqPump6.MachineDetail, curveData6); - rowPrj.Items.Add(itemRowF6); - - AddScheme(rowPrj, true); - addPrjNum++; - } - } - - return addPrjNum; - } - #endregion - - - - private int _schemeID = 1; - private bool AddScheme(IStation.Calculation.DispatchAna.Model.AnaScheme project, bool IsAccurateCalc) - { - // - project.TotalWrkQ = (from x in project.Items where x.WorkPointQ > 0 select x.WorkPointQ).Sum(); - project.TotalWrkH = Math.Round((from x in project.Items where x.WorkPointH > 0 select x.WorkPointH).Average(), 2); - - project.TotalWrkP = Math.Round((from x in project.Items where x.WorkPointP > 0 select x.WorkPointP).Sum(), 2); - project.TotalWrkE = IStation.Common.PumpParaHelper.CalculateE(project.TotalWrkQ, project.TotalWrkH, project.TotalWrkP); - project.UWP = Calcu_UWP(project.TotalWrkP, project.TotalWrkQ, this._targetInletPress, this._targetOutletPress); - project.WP = Calcu_WP(project.TotalWrkP, project.TotalWrkQ); - - if (project.TotalWrkQ > _targetQmax || project.TotalWrkQ < _targetQmin) - { - return false; - } - //璁$畻娴侀噺 - //rowPrj.TotalWrkQ = (from x in rowPrj.Items where x.WorkPointQ > 0 select x.WorkPointQ).Sum(); - //if (rowPrj.TotalWrkQ <= _targetQmax && rowPrj.TotalWrkQ >= this._targetQmin) - // ds_disp_project_list.Add(project); - - if (_machine_flow_limit_max_dict != null) - { - foreach (var item in project.Items) - { - if (_machine_flow_limit_max_dict.ContainsKey(item.MachineID)) - {//鎿嶄綔寮�鏈洪檺鍒� - if (item.WorkPointQ > _machine_flow_limit_max_dict[item.MachineID]) - return false; - } - } - } - - if (_machine_flow_limit_min_dict != null) - { - foreach (var item in project.Items) - { - if (_machine_flow_limit_min_dict.ContainsKey(item.MachineID)) - {//鎿嶄綔寮�鏈洪檺鍒� - if (item.WorkPointQ < _machine_flow_limit_min_dict[item.MachineID]) - return false; - } - } - } - - - - - if (_anaSchemeList == null) - _anaSchemeList = new List<IStation.Calculation.DispatchAna.Model.AnaScheme>(); - - - - //鍐嶇簿绠椾竴涓� - if (IsAccurateCalc) - CalcDetailAccurate(ref project); - - - project.ID = _schemeID; - _anaSchemeList.Add(project); - _schemeID++; - - return true; - } - /// <summary> - /// 鍗曚綅姘磋�� 鍗冨惃姘� - /// </summary> - public static double Calcu_UWP(double P, double Q, double H) - { - if (Q <= 0.001) - return 0; - if (H <= 0.00001) - return 0; - if (P <= 0.001) - return 0; - return P * 1000f / Q / H; - } - /// <summary> - /// 鍗曚綅姘磋�� 鍗冨惃姘� - /// </summary> - public static double Calcu_UWP(double P, double Q, double inletPress, double outletPress) - { - double H = (outletPress - inletPress) * 102; - if (Q <= 0.001) - return 0; - if (H <= 0.00001) - return 0; - if (P <= 0.001) - return 0; - return P * 1000f / Q / H; - } - /// <summary> - /// 鍗曚綅姘磋�� - /// </summary> - public static double Calcu_WP(double P, double Q) - { - if (Q <= 0.001) - return 0; - - if (P <= 0.001) - return 0; - return P * 1000f / Q; - } - } - - - - - - - -} \ No newline at end of file diff --git a/Calculation/IStation.Calculation.Dispatch/input/OutletPipePara.cs b/Calculation/IStation.Calculation.Dispatch/input/OutletPipePara.cs index f2ec71e..388df7b 100644 --- a/Calculation/IStation.Calculation.Dispatch/input/OutletPipePara.cs +++ b/Calculation/IStation.Calculation.Dispatch/input/OutletPipePara.cs @@ -54,7 +54,7 @@ public string TargetFlowRangeMax { get; set; } /// <summary> - /// 鐩爣鍘嬪姏 + /// 鐩爣鍘嬪姏(濡傛灉鏄壃绋嬪氨鏄洰鏍囨壃绋�) /// </summary> public double TargetPress { get; set; } diff --git a/Calculation/IStation.Calculation.Dispatch/input/RequestParasComplex.cs b/Calculation/IStation.Calculation.Dispatch/input/RequestParasComplex.cs index 53ecbc1..d622d07 100644 --- a/Calculation/IStation.Calculation.Dispatch/input/RequestParasComplex.cs +++ b/Calculation/IStation.Calculation.Dispatch/input/RequestParasComplex.cs @@ -36,9 +36,27 @@ /// </summary> public IStation.Calculation.DispatchAna.Model.eAnaSchemeSortType SchemeSortType { get; set; } - /// <summary> - /// 鍑哄彛绠¤矾 + /// + /// </summary> + public enum ePressValueType + { + /// <summary> + /// + /// </summary> + 鍘嬪姏 =0, + /// <summary> + /// + /// </summary> + 鎵▼=1 + } + /// <summary> + /// 鍘嬪姏鍊肩被鍨� 0:琛ㄧず鍘嬪姏 1:琛ㄧず鎵▼ + /// </summary> + public ePressValueType PressValueType { get; set; } = ePressValueType.鍘嬪姏; + + /// <summary> + /// 鍑哄彛绠¤矾 /// </summary> public List<OutletPipePara> OutletPipePara { get; set; } @@ -50,7 +68,7 @@ /// <summary> - /// 姘翠綅鍙傛暟 + /// 姘翠綅鍙傛暟 /// </summary> public List<WaterLevelPara> WaterLevelPara { get; set; } diff --git a/Calculation/IStation.Calculation.Plan/IPlanAnaCalculator.cs b/Calculation/IStation.Calculation.Plan/IPlanAnaCalculator.cs deleted file mode 100644 index 6775d04..0000000 --- a/Calculation/IStation.Calculation.Plan/IPlanAnaCalculator.cs +++ /dev/null @@ -1,30 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using IStation.Calculation.PlanAna; - -namespace IStation.Calculation -{ - /// <summary> - /// 璁″垝鍒嗘瀽璁$畻鍣ㄦ帴鍙� - /// </summary> - public interface IPlanAnaCalculator - { - /// <summary> - /// - /// </summary> - List<MonthCalcuResult> Calculate(List<MonthSumRecord> monthRecordList); - - - - - - - - - - - } -} diff --git a/Calculation/IStation.Calculation.Plan/IStation.Calculation.Plan.csproj b/Calculation/IStation.Calculation.Plan/IStation.Calculation.Plan.csproj index d786c64..291fd67 100644 --- a/Calculation/IStation.Calculation.Plan/IStation.Calculation.Plan.csproj +++ b/Calculation/IStation.Calculation.Plan/IStation.Calculation.Plan.csproj @@ -9,7 +9,24 @@ </PropertyGroup> <ItemGroup> + <Compile Remove="calc\**" /> + <Compile Remove="custom\shys\**" /> + <Compile Remove="input\**" /> + <EmbeddedResource Remove="calc\**" /> + <EmbeddedResource Remove="custom\shys\**" /> + <EmbeddedResource Remove="input\**" /> + <None Remove="calc\**" /> + <None Remove="custom\shys\**" /> + <None Remove="input\**" /> + </ItemGroup> + + <ItemGroup> <ProjectReference Include="..\..\Core\IStation.Core\IStation.Core.csproj" /> + <ProjectReference Include="..\IStation.Calculation.Dispatch\IStation.Calculation.Dispatch.csproj" /> + </ItemGroup> + + <ItemGroup> + <Folder Include="custom\" /> </ItemGroup> </Project> diff --git a/Calculation/IStation.Calculation.Plan/PlanAnaCalculatorFactory.cs b/Calculation/IStation.Calculation.Plan/PlanAnaCalculatorFactory.cs deleted file mode 100644 index e5932c7..0000000 --- a/Calculation/IStation.Calculation.Plan/PlanAnaCalculatorFactory.cs +++ /dev/null @@ -1,45 +0,0 @@ -锘縰sing IStation.Calculation.PlanAna; - -namespace IStation.Calculation -{ - public class PlanAnaCalculatorFactory - { - /// <summary> - /// 鍒涘缓璁$畻鍣� - /// </summary> - public static IPlanAnaCalculator CreateCalculator(long corpId, string objectType, long objectId) - { - IPlanAnaCalculator calculator = null; - switch (objectType) - { - case ObjectType.Station: - { - switch (corpId) - { - case 4: - { - switch (objectId) - { - case 2: //闀垮叴娉电珯 - { - calculator = new Calculator4ShysCxbz(); - } - break; - default:break; - } - } - break; - default:break; - } - } - break; - default:break; - } - return calculator; - } - - - - - } -} \ No newline at end of file diff --git "a/Calculation/IStation.EtaCalculation4Custom/shys/station/EtaAnalyCalculator4\351\225\277\345\205\264\345\262\233\350\276\223\346\260\264\346\263\265\346\210\277.cs" "b/Calculation/IStation.EtaCalculation4Custom/shys/station/EtaAnalyCalculator4\351\225\277\345\205\264\345\262\233\350\276\223\346\260\264\346\263\265\346\210\277.cs" index 2e22a3f..e78d9e4 100644 --- "a/Calculation/IStation.EtaCalculation4Custom/shys/station/EtaAnalyCalculator4\351\225\277\345\205\264\345\262\233\350\276\223\346\260\264\346\263\265\346\210\277.cs" +++ "b/Calculation/IStation.EtaCalculation4Custom/shys/station/EtaAnalyCalculator4\351\225\277\345\205\264\345\262\233\350\276\223\346\260\264\346\263\265\346\210\277.cs" @@ -10,16 +10,12 @@ /// </summary> public class EtaAnalyCalculator4闀垮叴宀涜緭姘存车鎴� : EtaAnalyCalculatorBase4Station, IEtaStationAnalyCalculator { - - IStation.Model.EtaMonitorPointAnalyContextitem _monitor_flow_pipe1 = null;//涓�鍙风璺祦閲忚娴嬬偣 + IStation.Model.EtaMonitorPointAnalyContextitem _monitor_flow_pipe1 = null;//涓�鍙风璺祦閲忚娴嬬偣 IStation.Model.EtaMonitorPointAnalyContextitem _monitor_flow_pipe2 = null;//涓�鍙风璺祦閲忚娴嬬偣 // - EtaMultiRealRecordPure result_pipe_1 = new EtaMultiRealRecordPure();//涓�鍙风 鍒嗘瀽缁撴灉 EtaMultiRealRecordPure result_pipe_2 = new EtaMultiRealRecordPure();//浜屽彿绠� 鍒嗘瀽缁撴灉 - - //娴嬬偣ID(娴嬬偣ID) @@ -44,7 +40,7 @@ if (context == null) { error_info = "涓婁笅鏂囧弬鏁颁负绌�"; - return false ; + return false; } this._stationID = context.ID; @@ -53,7 +49,7 @@ //鍒濆鍖栨満娉� if (!InitialPumpList(context, out error_info)) { - return false ; + return false; } //鍒濆鍖栨祴鐐� @@ -62,7 +58,7 @@ IStation.LogHelper.Error(error_info); return false; } - + //寮�鍋滄満鍒嗘瀽 if (!AnaAllPumpRunStatus(out error_info)) { @@ -80,14 +76,14 @@ _pipeAnaResultList = new List<EtaMultiRealRecordPure>(); _pipeAnaResultList.Add(result_pipe_1); - _pipeAnaResultList.Add(result_pipe_2); + _pipeAnaResultList.Add(result_pipe_2); - return true ; + return true; } @@ -99,7 +95,7 @@ /// <param name="error_info"></param> /// <returns></returns> protected override bool InitialPumpList(Model.EtaStationAnalyContextItem context, out string error_info) - { + { long[] monitor_id_pump_flow_array = new long[] { 0, 0, 0, 0 };//鍗曟车娴侀噺璁� long[] monitor_id_inlet_press_array = new long[] { 82, 92, 102, 112 };// 娉电殑杩涘彛鍘嬪姏璁� long[] monitor_id_outlet_press_array = new long[] { 83, 93, 103, 113 };//鍑哄彛鍘嬪姏 @@ -127,9 +123,9 @@ if (_allMachineList == null) { IStation.LogHelper.Error(error_info); - return false ; + return false; } - + error_info = null; return true; @@ -137,7 +133,7 @@ #endregion - + @@ -148,26 +144,26 @@ private bool AnaPipeResultList() { //娉电珯 - _stationAnaResult = new EtaMultiRealRecordPure(); - _stationAnaResult.ObjectType = IStation.ObjectType.Station ; + _stationAnaResult = new EtaMultiRealRecordPure(); + _stationAnaResult.ObjectType = IStation.ObjectType.Station; _stationAnaResult.ObjectID = _stationID; - _stationAnaResult.RunningCount = 0; + _stationAnaResult.RunningCount = 0; _stationAnaResult.AnalyStatus = Model.Eta.eAnalyStatus.Unkonw; _stationAnaResult.InitialRunList(this._machineCount); //涓�鍙风璺� - result_pipe_1 = new EtaMultiRealRecordPure(); - result_pipe_1.ObjectType = IStation.ObjectType.PipeLine ; + result_pipe_1 = new EtaMultiRealRecordPure(); + result_pipe_1.ObjectType = IStation.ObjectType.PipeLine; result_pipe_1.ObjectID = _sub_pipe_id[0]; - result_pipe_1.RunningCount = 0; + result_pipe_1.RunningCount = 0; result_pipe_1.AnalyStatus = Model.Eta.eAnalyStatus.Unkonw; result_pipe_1.InitialRunList(this._machineCount);//鎸夋车鎬绘暟璧嬪�� //浜屽彿绠¤矾 - result_pipe_2 = new EtaMultiRealRecordPure(); + result_pipe_2 = new EtaMultiRealRecordPure(); result_pipe_2.ObjectType = IStation.ObjectType.PipeLine; result_pipe_2.ObjectID = _sub_pipe_id[1]; - result_pipe_2.RunningCount = 0; + result_pipe_2.RunningCount = 0; result_pipe_2.AnalyStatus = Model.Eta.eAnalyStatus.Unkonw; result_pipe_2.InitialRunList(this._machineCount);//鎸夋车鎬绘暟璧嬪�� @@ -286,28 +282,28 @@ if (this._allMachineList[0].IsRunIng && !this._allMachineList[1].IsRunIng) {//鍙湁涓�鍙锋车寮�鐫� Analy_鏈夊崟娉垫祦閲忚_杩愯鐘舵�佸凡鍒嗘瀽_鍙橀娉�( - pipe_flow_1, + pipe_flow_1, ref result_pump1); result_pipe_1.CopyAnaPara(result_pump1.AnaResult); - + result_pipe_1.Qa = pipe_flow_1; result_pipe_1.Ha = result_pump1.AnaResult.Ha; result_pipe_1.Pa = result_pump1.AnaResult.Pa; - result_pipe_1.RunningCount = 1; + result_pipe_1.RunningCount = 1; result_pipe_1.SetPumpStatusByIndex(0, result_pump1.AnaResult.HZa, result_pump1.AnaResult.RSa); - - result_pipe_1.AnalyStatus = result_pump1.AnaResult.AnalyStatus; + + result_pipe_1.AnalyStatus = result_pump1.AnaResult.AnalyStatus; result_pump2.AnaResult.SetShutDownStatus();//1鍙锋车 娌″紑 } else if (!this._allMachineList[0].IsRunIng && this._allMachineList[1].IsRunIng) {//鍙湁浜屽彿娉靛紑鐫� Analy_鏈夊崟娉垫祦閲忚_杩愯鐘舵�佸凡鍒嗘瀽_鍙橀娉�( - pipe_flow_1, + pipe_flow_1, ref result_pump2); - result_pipe_1.CopyAnaPara(result_pump2.AnaResult); + result_pipe_1.CopyAnaPara(result_pump2.AnaResult); result_pipe_1.Qa = pipe_flow_1; result_pipe_1.Ha = result_pump2.AnaResult.Ha; result_pipe_1.Pa = result_pump2.AnaResult.Pa; @@ -317,7 +313,7 @@ result_pipe_1.AnalyStatus = result_pump2.AnaResult.AnalyStatus; - + result_pump1.AnaResult.SetShutDownStatus();//1鍙锋车 娌″紑 } @@ -326,12 +322,12 @@ Analy_澶氭车骞惰仈杩愯_鍗曠鍑哄彛(pipe_flow_1, new List<IStation.Calculation.Eta.Model.PumpAnaResult>() { result_pump1, result_pump2 }); BuildConnectResult(pipe_flow_1, result_pipe_1, new List<IStation.Calculation.Eta.Model.PumpAnaResult>() { result_pump1, result_pump2 }); - + } - + } else - { + { result_pipe_1.SetEmptyPipe(this._machineCount);//绌虹璺� } @@ -351,10 +347,10 @@ if (this._allMachineList[2].IsRunIng && !this._allMachineList[3].IsRunIng) {//3鍙锋车寮�鐫� Analy_鏈夊崟娉垫祦閲忚_杩愯鐘舵�佸凡鍒嗘瀽_鍙橀娉�( - pipe_flow_2, + pipe_flow_2, ref result_pump3); - result_pipe_2.CopyAnaPara(result_pump3.AnaResult); + result_pipe_2.CopyAnaPara(result_pump3.AnaResult); result_pipe_2.Qa = pipe_flow_2; result_pipe_2.Ha = result_pump3.AnaResult.Ha; result_pipe_2.RunningCount = 1; @@ -362,25 +358,25 @@ result_pipe_2.AnalyStatus = result_pump3.AnaResult.AnalyStatus; result_pipe_2.SetPumpStatusByIndex(2, result_pump3.AnaResult.HZa, result_pump3.AnaResult.RSa); - + result_pump4.AnaResult.SetShutDownStatus();//1鍙锋车 娌″紑 } else if (!this._allMachineList[2].IsRunIng && this._allMachineList[3].IsRunIng) {//4鍙锋车寮�鐫� Analy_鏈夊崟娉垫祦閲忚_杩愯鐘舵�佸凡鍒嗘瀽_鍙橀娉�( - pipe_flow_2, + pipe_flow_2, ref result_pump4); - result_pipe_2.CopyAnaPara(result_pump4.AnaResult); + result_pipe_2.CopyAnaPara(result_pump4.AnaResult); result_pipe_2.Qa = pipe_flow_2; result_pipe_2.Ha = result_pump4.AnaResult.Ha; - result_pipe_2.RunningCount = 1; + result_pipe_2.RunningCount = 1; result_pipe_2.Pa = result_pump4.AnaResult.Pa; result_pipe_2.AnalyStatus = result_pump4.AnaResult.AnalyStatus; result_pipe_2.SetPumpStatusByIndex(3, result_pump4.AnaResult.HZa, result_pump4.AnaResult.RSa); - + result_pump3.AnaResult.SetShutDownStatus();//1鍙锋车 娌″紑 } @@ -389,12 +385,12 @@ Analy_澶氭车骞惰仈杩愯_鍗曠鍑哄彛(pipe_flow_2, new List<IStation.Calculation.Eta.Model.PumpAnaResult>() { result_pump3, result_pump4 }); BuildConnectResult(pipe_flow_2, result_pipe_2, new List<IStation.Calculation.Eta.Model.PumpAnaResult>() { result_pump3, result_pump4 }); - + } - + } else - { + { result_pipe_2.SetEmptyPipe(this._machineCount);//绌虹璺� } @@ -440,15 +436,15 @@ } if (result_pump == null) - { - result_pipe_2.AnalyStatus = Model.Eta.eAnalyStatus.Abnormal; + { + result_pipe_2.AnalyStatus = Model.Eta.eAnalyStatus.Abnormal; result_pipe_1.AnalyStatus = Model.Eta.eAnalyStatus.Abnormal; return; } if (isPipe1) { - result_pipe_1.CopyAnaPara(result_pump); + result_pipe_1.CopyAnaPara(result_pump); result_pipe_1.AnalyInfo = result_pump.AnalyInfo; result_pipe_1.AnalyStatus = result_pump.AnalyStatus; @@ -461,14 +457,14 @@ } else { - result_pipe_2.CopyAnaPara(result_pump); + result_pipe_2.CopyAnaPara(result_pump); result_pipe_2.AnalyInfo = result_pump.AnalyInfo; result_pipe_2.AnalyStatus = result_pump.AnalyStatus; BuildConnectResult(total_flow, result_pipe_2); result_pipe_2.RunningCount = 1; - + result_pipe_1.SetEmptyPipe(this._machineCount);//绌虹璺� _stationAnaResult.CopyAnaPara(result_pipe_2); @@ -500,9 +496,9 @@ { Analy_澶氭车骞惰仈杩愯_鍗曠鍑哄彛(total_flow, this._allMachineList); - BuildConnectResult(total_flow, result_pipe_1 ); + BuildConnectResult(total_flow, result_pipe_1); result_pipe_1.Qa = total_flow; - + result_pipe_2.SetEmptyPipe(this._machineCount);//绌虹璺� _stationAnaResult.CopyAnaPara(result_pipe_1); @@ -511,7 +507,7 @@ { Analy_澶氭车骞惰仈杩愯_鍗曠鍑哄彛(total_flow, this._allMachineList); - BuildConnectResult(total_flow, result_pipe_2 ); + BuildConnectResult(total_flow, result_pipe_2); result_pipe_2.Qa = total_flow; result_pipe_1.SetEmptyPipe(this._machineCount);//绌虹璺� @@ -535,7 +531,7 @@ return pump_open_count; } - + diff --git a/Entry/IStation.WebApi.Entry/IStation.WebApi.Entry.csproj b/Entry/IStation.WebApi.Entry/IStation.WebApi.Entry.csproj index 69b8f6a..31ffaea 100644 --- a/Entry/IStation.WebApi.Entry/IStation.WebApi.Entry.csproj +++ b/Entry/IStation.WebApi.Entry/IStation.WebApi.Entry.csproj @@ -12,25 +12,8 @@ <ItemGroup> <ProjectReference Include="..\..\Application\IStation.Application.Basic\IStation.Application.Basic.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Bimface\IStation.Application.Bimface.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.DataFile\IStation.Application.DataFile.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Dma\IStation.Application.Dma.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Epanet\IStation.Application.Epanet.csproj" /> <ProjectReference Include="..\..\Application\IStation.Application.Eta\IStation.Application.Eta.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.File\IStation.Application.File.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Inspect\IStation.Application.Inspect.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Job\IStation.Application.Job.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.LargeScreen\IStation.Application.LargeScreen.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Main\IStation.Application.Main.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Map\IStation.Application.Map.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Monitor\IStation.Application.Monitor.csproj" /> <ProjectReference Include="..\..\Application\IStation.Application.OpenApi\IStation.Application.OpenApi.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Organize\IStation.Application.Organize.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Product\IStation.Application.Product.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Repair\IStation.Application.Repair.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Run\IStation.Application.Run.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.User\IStation.Application.User.csproj" /> - <ProjectReference Include="..\..\Application\IStation.Application.Vibration\IStation.Application.Vibration.csproj" /> <ProjectReference Include="..\..\Core\IStation.WebApi.Core\IStation.WebApi.Core.csproj" /> </ItemGroup> diff --git a/IStation.WebApi.Dispatch.sln b/IStation.WebApi.Dispatch.sln index 83117ee..b80386e 100644 --- a/IStation.WebApi.Dispatch.sln +++ b/IStation.WebApi.Dispatch.sln @@ -87,8 +87,6 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Core", "Application\IStation.Application.Core\IStation.Application.Core.csproj", "{17472ED6-6993-4F35-B419-5DD70BACF8EE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Job", "Application\IStation.Application.Job\IStation.Application.Job.csproj", "{E333361E-5072-43DA-97D9-B94D0EF7A388}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Basic", "Entity\IStation.Entity.Basic\IStation.Entity.Basic.csproj", "{935F8017-8FF6-4D05-8B02-370B01C4395C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Model.Basic", "Model\IStation.Model.Basic\IStation.Model.Basic.csproj", "{EABD7A65-2A38-4E1F-AB4E-0A477896D74B}" @@ -107,8 +105,6 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Map", "Service\IStation.Service.Map\IStation.Service.Map.csproj", "{1F820E39-7D27-4438-9EA1-35250ED67504}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Map", "Application\IStation.Application.Map\IStation.Application.Map.csproj", "{4AA289D4-59F2-4AB7-8E39-7CB9F7E8D054}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Epanet", "Entity\IStation.Entity.Epanet\IStation.Entity.Epanet.csproj", "{45C619EF-A0D6-4DCD-949E-35A49C65CF8C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Model.Epanet", "Model\IStation.Model.Epanet\IStation.Model.Epanet.csproj", "{A98C78E2-6695-486B-BED3-C4B629762333}" @@ -116,8 +112,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.DAL.Epanet", "DAL\IStation.DAL.Epanet\IStation.DAL.Epanet.csproj", "{FD10F7E7-81F8-406F-B30C-AFD7ACABE0E6}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Epanet", "Service\IStation.Service.Epanet\IStation.Service.Epanet.csproj", "{E09E35AC-0DDB-455A-8EE1-E83791AE3ACD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Epanet", "Application\IStation.Application.Epanet\IStation.Application.Epanet.csproj", "{3DEAD862-B78B-4588-997F-74CC425A8ABD}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.User", "Entity\IStation.Entity.User\IStation.Entity.User.csproj", "{A9D90108-0B39-4604-9D56-F8A8AF8611EF}" EndProject @@ -127,8 +121,6 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.User", "Service\IStation.Service.User\IStation.Service.User.csproj", "{222C836C-1F72-466B-BA05-C0DB5F62561A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.User", "Application\IStation.Application.User\IStation.Application.User.csproj", "{BB173A59-3109-404A-BC12-DB9172B258EE}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Organize", "Entity\IStation.Entity.Organize\IStation.Entity.Organize.csproj", "{19C35E9E-8E84-4BCA-A7D8-A21A7F8B68FB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Model.Organize", "Model\IStation.Model.Organize\IStation.Model.Organize.csproj", "{4E3453FF-9541-4493-8633-9A1EF28FC831}" @@ -136,8 +128,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.DAL.Organize", "DAL\IStation.DAL.Organize\IStation.DAL.Organize.csproj", "{F2BCF22D-7002-44F4-9DD3-E094E6E80998}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Organize", "Service\IStation.Service.Organize\IStation.Service.Organize.csproj", "{468702CC-EC28-4E92-B35D-BA51480D933F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Organize", "Application\IStation.Application.Organize\IStation.Application.Organize.csproj", "{EB04B4AB-2E7B-4DFC-B3E6-FD4C768D3A95}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Bimface", "Entity\IStation.Entity.Bimface\IStation.Entity.Bimface.csproj", "{FEC84CC4-3118-41EA-AA71-8CC6AB175EFB}" EndProject @@ -147,8 +137,6 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Bimface", "Service\IStation.Service.Bimface\IStation.Service.Bimface.csproj", "{91C78958-1A27-4090-A890-4C7B5495F36D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Bimface", "Application\IStation.Application.Bimface\IStation.Application.Bimface.csproj", "{662E6240-C1D4-4B6E-A792-21587C2F0569}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Dma", "Entity\IStation.Entity.Dma\IStation.Entity.Dma.csproj", "{C39A9B5A-A0BB-442F-913A-F4FC55C9DF59}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Model.Dma", "Model\IStation.Model.Dma\IStation.Model.Dma.csproj", "{D7393EFB-357D-4790-8820-A68937299777}" @@ -156,8 +144,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.DAL.Dma", "DAL\IStation.DAL.Dma\IStation.DAL.Dma.csproj", "{CC0577CF-B838-4D62-9F17-84263D78BC75}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Dma", "Service\IStation.Service.Dma\IStation.Service.Dma.csproj", "{D887FBE4-4294-4153-A40D-5C2AE9FAEA6C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Dma", "Application\IStation.Application.Dma\IStation.Application.Dma.csproj", "{2B9A741E-F363-421B-90D0-096C035AFB74}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Product", "Entity\IStation.Entity.Product\IStation.Entity.Product.csproj", "{0B14D208-546A-4B98-9E5B-F4075ADC8B60}" EndProject @@ -169,8 +155,6 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Product", "Service\IStation.Service.Product\IStation.Service.Product.csproj", "{9FF7BE27-C8A1-40A2-9830-F39D3F1B2723}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Product", "Application\IStation.Application.Product\IStation.Application.Product.csproj", "{855C7C2F-7F87-4AAA-BF8C-DC308D0EB424}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Main", "Entity\IStation.Entity.Main\IStation.Entity.Main.csproj", "{F02C6E7D-E171-4F2F-95D5-522DB73DBEC9}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Model.Main", "Model\IStation.Model.Main\IStation.Model.Main.csproj", "{F0B75BDD-8E1B-4C44-88F4-9471300D2597}" @@ -178,8 +162,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.DAL.Main", "DAL\IStation.DAL.Main\IStation.DAL.Main.csproj", "{2E73CAB8-A477-43A2-B455-E19FB4F606D9}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Main", "Service\IStation.Service.Main\IStation.Service.Main.csproj", "{64B6ED22-8656-44DC-B2FC-4C6BC271886F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Main", "Application\IStation.Application.Main\IStation.Application.Main.csproj", "{C6954B2D-B574-45EA-889D-B70A32787A43}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Monitor", "Entity\IStation.Entity.Monitor\IStation.Entity.Monitor.csproj", "{453A98C0-CFC8-4EBF-8981-B0EE6DD0312E}" EndProject @@ -189,8 +171,6 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Monitor", "Service\IStation.Service.Monitor\IStation.Service.Monitor.csproj", "{53410317-717A-4A06-8D06-0A049A96834E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Monitor", "Application\IStation.Application.Monitor\IStation.Application.Monitor.csproj", "{7A77BD15-6F41-45EB-BD6C-2351B209CDD5}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Repair", "Entity\IStation.Entity.Repair\IStation.Entity.Repair.csproj", "{1A4EBA31-7554-4FC8-B4A7-735B940E0916}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Model.Repair", "Model\IStation.Model.Repair\IStation.Model.Repair.csproj", "{361C9FD1-F673-496B-BB4B-1E2665E91721}" @@ -198,8 +178,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.DAL.Repair", "DAL\IStation.DAL.Repair\IStation.DAL.Repair.csproj", "{1110F78E-0232-4A56-B678-CB2A6C2AEB9E}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Repair", "Service\IStation.Service.Repair\IStation.Service.Repair.csproj", "{9BDA9171-483B-4F69-936E-01F546E25DC0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Repair", "Application\IStation.Application.Repair\IStation.Application.Repair.csproj", "{27B7C2A6-5C6E-4305-98EC-D6A3EE7B9C2E}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Entity.Run", "Entity\IStation.Entity.Run\IStation.Entity.Run.csproj", "{306CC209-52B5-470F-BF99-BD171B822DD5}" EndProject @@ -210,8 +188,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Run", "Service\IStation.Service.Run\IStation.Service.Run.csproj", "{286D6CAF-5238-4B09-ACA8-19651C645EBA}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.RedisCache.Run", "RedisCache\IStation.RedisCache.Run\IStation.RedisCache.Run.csproj", "{EB9471A8-69D1-477A-A664-4E8B0EBE5F94}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Run", "Application\IStation.Application.Run\IStation.Application.Run.csproj", "{762886ED-B832-4622-A40E-43D7EB32CE75}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Calculation.Analy", "Calculation\IStation.Calculation.Analy\IStation.Calculation.Analy.csproj", "{CEB46485-56CF-4EB8-980A-7C8C81A7C347}" EndProject @@ -241,23 +217,11 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Service.Inspect", "Service\IStation.Service.Inspect\IStation.Service.Inspect.csproj", "{07387995-A7CD-4C04-A05A-45F8DB0EDFBC}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Inspect", "Application\IStation.Application.Inspect\IStation.Application.Inspect.csproj", "{46936FDF-D917-40AD-A67B-0177CCB8D659}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Model.Vibration", "Model\IStation.Model.Vibration\IStation.Model.Vibration.csproj", "{84C5D892-21E5-44E9-BF7E-18B9CB38FF08}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.Vibration", "Application\IStation.Application.Vibration\IStation.Application.Vibration.csproj", "{BA9ED0E3-5C49-42F0-85A5-94BE110C9B2B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.RedisCache.Vibration", "RedisCache\IStation.RedisCache.Vibration\IStation.RedisCache.Vibration.csproj", "{3E9AC754-2820-484C-9792-71AC5396D7E0}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.OpenApi", "Application\IStation.Application.OpenApi\IStation.Application.OpenApi.csproj", "{1CDB8D9B-0DCF-4DB7-A193-96005E4E0554}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.File", "Application\IStation.Application.File\IStation.Application.File.csproj", "{6B1F2F73-E16C-4C85-9D3B-B1872E363653}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.DataFile", "Application\IStation.Application.DataFile\IStation.Application.DataFile.csproj", "{73065108-246A-4852-A248-1755B3804DF5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Application.LargeScreen", "Application\IStation.Application.LargeScreen\IStation.Application.LargeScreen.csproj", "{902AABE5-E167-444E-B3C7-8077E1E9BBBB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IStation.Calculation.Plan", "Calculation\IStation.Calculation.Plan\IStation.Calculation.Plan.csproj", "{EE2FFC2D-6935-40EE-B5F9-085CF922ABD9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -385,10 +349,6 @@ {17472ED6-6993-4F35-B419-5DD70BACF8EE}.Debug|Any CPU.Build.0 = Debug|Any CPU {17472ED6-6993-4F35-B419-5DD70BACF8EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {17472ED6-6993-4F35-B419-5DD70BACF8EE}.Release|Any CPU.Build.0 = Release|Any CPU - {E333361E-5072-43DA-97D9-B94D0EF7A388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E333361E-5072-43DA-97D9-B94D0EF7A388}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E333361E-5072-43DA-97D9-B94D0EF7A388}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E333361E-5072-43DA-97D9-B94D0EF7A388}.Release|Any CPU.Build.0 = Release|Any CPU {935F8017-8FF6-4D05-8B02-370B01C4395C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {935F8017-8FF6-4D05-8B02-370B01C4395C}.Debug|Any CPU.Build.0 = Debug|Any CPU {935F8017-8FF6-4D05-8B02-370B01C4395C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -425,10 +385,6 @@ {1F820E39-7D27-4438-9EA1-35250ED67504}.Debug|Any CPU.Build.0 = Debug|Any CPU {1F820E39-7D27-4438-9EA1-35250ED67504}.Release|Any CPU.ActiveCfg = Release|Any CPU {1F820E39-7D27-4438-9EA1-35250ED67504}.Release|Any CPU.Build.0 = Release|Any CPU - {4AA289D4-59F2-4AB7-8E39-7CB9F7E8D054}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4AA289D4-59F2-4AB7-8E39-7CB9F7E8D054}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4AA289D4-59F2-4AB7-8E39-7CB9F7E8D054}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4AA289D4-59F2-4AB7-8E39-7CB9F7E8D054}.Release|Any CPU.Build.0 = Release|Any CPU {45C619EF-A0D6-4DCD-949E-35A49C65CF8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {45C619EF-A0D6-4DCD-949E-35A49C65CF8C}.Debug|Any CPU.Build.0 = Debug|Any CPU {45C619EF-A0D6-4DCD-949E-35A49C65CF8C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -445,10 +401,6 @@ {E09E35AC-0DDB-455A-8EE1-E83791AE3ACD}.Debug|Any CPU.Build.0 = Debug|Any CPU {E09E35AC-0DDB-455A-8EE1-E83791AE3ACD}.Release|Any CPU.ActiveCfg = Release|Any CPU {E09E35AC-0DDB-455A-8EE1-E83791AE3ACD}.Release|Any CPU.Build.0 = Release|Any CPU - {3DEAD862-B78B-4588-997F-74CC425A8ABD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3DEAD862-B78B-4588-997F-74CC425A8ABD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3DEAD862-B78B-4588-997F-74CC425A8ABD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3DEAD862-B78B-4588-997F-74CC425A8ABD}.Release|Any CPU.Build.0 = Release|Any CPU {A9D90108-0B39-4604-9D56-F8A8AF8611EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A9D90108-0B39-4604-9D56-F8A8AF8611EF}.Debug|Any CPU.Build.0 = Debug|Any CPU {A9D90108-0B39-4604-9D56-F8A8AF8611EF}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -465,10 +417,6 @@ {222C836C-1F72-466B-BA05-C0DB5F62561A}.Debug|Any CPU.Build.0 = Debug|Any CPU {222C836C-1F72-466B-BA05-C0DB5F62561A}.Release|Any CPU.ActiveCfg = Release|Any CPU {222C836C-1F72-466B-BA05-C0DB5F62561A}.Release|Any CPU.Build.0 = Release|Any CPU - {BB173A59-3109-404A-BC12-DB9172B258EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BB173A59-3109-404A-BC12-DB9172B258EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BB173A59-3109-404A-BC12-DB9172B258EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BB173A59-3109-404A-BC12-DB9172B258EE}.Release|Any CPU.Build.0 = Release|Any CPU {19C35E9E-8E84-4BCA-A7D8-A21A7F8B68FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {19C35E9E-8E84-4BCA-A7D8-A21A7F8B68FB}.Debug|Any CPU.Build.0 = Debug|Any CPU {19C35E9E-8E84-4BCA-A7D8-A21A7F8B68FB}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -485,10 +433,6 @@ {468702CC-EC28-4E92-B35D-BA51480D933F}.Debug|Any CPU.Build.0 = Debug|Any CPU {468702CC-EC28-4E92-B35D-BA51480D933F}.Release|Any CPU.ActiveCfg = Release|Any CPU {468702CC-EC28-4E92-B35D-BA51480D933F}.Release|Any CPU.Build.0 = Release|Any CPU - {EB04B4AB-2E7B-4DFC-B3E6-FD4C768D3A95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB04B4AB-2E7B-4DFC-B3E6-FD4C768D3A95}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB04B4AB-2E7B-4DFC-B3E6-FD4C768D3A95}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB04B4AB-2E7B-4DFC-B3E6-FD4C768D3A95}.Release|Any CPU.Build.0 = Release|Any CPU {FEC84CC4-3118-41EA-AA71-8CC6AB175EFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FEC84CC4-3118-41EA-AA71-8CC6AB175EFB}.Debug|Any CPU.Build.0 = Debug|Any CPU {FEC84CC4-3118-41EA-AA71-8CC6AB175EFB}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -505,10 +449,6 @@ {91C78958-1A27-4090-A890-4C7B5495F36D}.Debug|Any CPU.Build.0 = Debug|Any CPU {91C78958-1A27-4090-A890-4C7B5495F36D}.Release|Any CPU.ActiveCfg = Release|Any CPU {91C78958-1A27-4090-A890-4C7B5495F36D}.Release|Any CPU.Build.0 = Release|Any CPU - {662E6240-C1D4-4B6E-A792-21587C2F0569}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {662E6240-C1D4-4B6E-A792-21587C2F0569}.Debug|Any CPU.Build.0 = Debug|Any CPU - {662E6240-C1D4-4B6E-A792-21587C2F0569}.Release|Any CPU.ActiveCfg = Release|Any CPU - {662E6240-C1D4-4B6E-A792-21587C2F0569}.Release|Any CPU.Build.0 = Release|Any CPU {C39A9B5A-A0BB-442F-913A-F4FC55C9DF59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C39A9B5A-A0BB-442F-913A-F4FC55C9DF59}.Debug|Any CPU.Build.0 = Debug|Any CPU {C39A9B5A-A0BB-442F-913A-F4FC55C9DF59}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -525,10 +465,6 @@ {D887FBE4-4294-4153-A40D-5C2AE9FAEA6C}.Debug|Any CPU.Build.0 = Debug|Any CPU {D887FBE4-4294-4153-A40D-5C2AE9FAEA6C}.Release|Any CPU.ActiveCfg = Release|Any CPU {D887FBE4-4294-4153-A40D-5C2AE9FAEA6C}.Release|Any CPU.Build.0 = Release|Any CPU - {2B9A741E-F363-421B-90D0-096C035AFB74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B9A741E-F363-421B-90D0-096C035AFB74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B9A741E-F363-421B-90D0-096C035AFB74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B9A741E-F363-421B-90D0-096C035AFB74}.Release|Any CPU.Build.0 = Release|Any CPU {0B14D208-546A-4B98-9E5B-F4075ADC8B60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0B14D208-546A-4B98-9E5B-F4075ADC8B60}.Debug|Any CPU.Build.0 = Debug|Any CPU {0B14D208-546A-4B98-9E5B-F4075ADC8B60}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -549,10 +485,6 @@ {9FF7BE27-C8A1-40A2-9830-F39D3F1B2723}.Debug|Any CPU.Build.0 = Debug|Any CPU {9FF7BE27-C8A1-40A2-9830-F39D3F1B2723}.Release|Any CPU.ActiveCfg = Release|Any CPU {9FF7BE27-C8A1-40A2-9830-F39D3F1B2723}.Release|Any CPU.Build.0 = Release|Any CPU - {855C7C2F-7F87-4AAA-BF8C-DC308D0EB424}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {855C7C2F-7F87-4AAA-BF8C-DC308D0EB424}.Debug|Any CPU.Build.0 = Debug|Any CPU - {855C7C2F-7F87-4AAA-BF8C-DC308D0EB424}.Release|Any CPU.ActiveCfg = Release|Any CPU - {855C7C2F-7F87-4AAA-BF8C-DC308D0EB424}.Release|Any CPU.Build.0 = Release|Any CPU {F02C6E7D-E171-4F2F-95D5-522DB73DBEC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F02C6E7D-E171-4F2F-95D5-522DB73DBEC9}.Debug|Any CPU.Build.0 = Debug|Any CPU {F02C6E7D-E171-4F2F-95D5-522DB73DBEC9}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -569,10 +501,6 @@ {64B6ED22-8656-44DC-B2FC-4C6BC271886F}.Debug|Any CPU.Build.0 = Debug|Any CPU {64B6ED22-8656-44DC-B2FC-4C6BC271886F}.Release|Any CPU.ActiveCfg = Release|Any CPU {64B6ED22-8656-44DC-B2FC-4C6BC271886F}.Release|Any CPU.Build.0 = Release|Any CPU - {C6954B2D-B574-45EA-889D-B70A32787A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C6954B2D-B574-45EA-889D-B70A32787A43}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C6954B2D-B574-45EA-889D-B70A32787A43}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C6954B2D-B574-45EA-889D-B70A32787A43}.Release|Any CPU.Build.0 = Release|Any CPU {453A98C0-CFC8-4EBF-8981-B0EE6DD0312E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {453A98C0-CFC8-4EBF-8981-B0EE6DD0312E}.Debug|Any CPU.Build.0 = Debug|Any CPU {453A98C0-CFC8-4EBF-8981-B0EE6DD0312E}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -589,10 +517,6 @@ {53410317-717A-4A06-8D06-0A049A96834E}.Debug|Any CPU.Build.0 = Debug|Any CPU {53410317-717A-4A06-8D06-0A049A96834E}.Release|Any CPU.ActiveCfg = Release|Any CPU {53410317-717A-4A06-8D06-0A049A96834E}.Release|Any CPU.Build.0 = Release|Any CPU - {7A77BD15-6F41-45EB-BD6C-2351B209CDD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7A77BD15-6F41-45EB-BD6C-2351B209CDD5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7A77BD15-6F41-45EB-BD6C-2351B209CDD5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7A77BD15-6F41-45EB-BD6C-2351B209CDD5}.Release|Any CPU.Build.0 = Release|Any CPU {1A4EBA31-7554-4FC8-B4A7-735B940E0916}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1A4EBA31-7554-4FC8-B4A7-735B940E0916}.Debug|Any CPU.Build.0 = Debug|Any CPU {1A4EBA31-7554-4FC8-B4A7-735B940E0916}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -609,10 +533,6 @@ {9BDA9171-483B-4F69-936E-01F546E25DC0}.Debug|Any CPU.Build.0 = Debug|Any CPU {9BDA9171-483B-4F69-936E-01F546E25DC0}.Release|Any CPU.ActiveCfg = Release|Any CPU {9BDA9171-483B-4F69-936E-01F546E25DC0}.Release|Any CPU.Build.0 = Release|Any CPU - {27B7C2A6-5C6E-4305-98EC-D6A3EE7B9C2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {27B7C2A6-5C6E-4305-98EC-D6A3EE7B9C2E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {27B7C2A6-5C6E-4305-98EC-D6A3EE7B9C2E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {27B7C2A6-5C6E-4305-98EC-D6A3EE7B9C2E}.Release|Any CPU.Build.0 = Release|Any CPU {306CC209-52B5-470F-BF99-BD171B822DD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {306CC209-52B5-470F-BF99-BD171B822DD5}.Debug|Any CPU.Build.0 = Debug|Any CPU {306CC209-52B5-470F-BF99-BD171B822DD5}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -633,10 +553,6 @@ {EB9471A8-69D1-477A-A664-4E8B0EBE5F94}.Debug|Any CPU.Build.0 = Debug|Any CPU {EB9471A8-69D1-477A-A664-4E8B0EBE5F94}.Release|Any CPU.ActiveCfg = Release|Any CPU {EB9471A8-69D1-477A-A664-4E8B0EBE5F94}.Release|Any CPU.Build.0 = Release|Any CPU - {762886ED-B832-4622-A40E-43D7EB32CE75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {762886ED-B832-4622-A40E-43D7EB32CE75}.Debug|Any CPU.Build.0 = Debug|Any CPU - {762886ED-B832-4622-A40E-43D7EB32CE75}.Release|Any CPU.ActiveCfg = Release|Any CPU - {762886ED-B832-4622-A40E-43D7EB32CE75}.Release|Any CPU.Build.0 = Release|Any CPU {CEB46485-56CF-4EB8-980A-7C8C81A7C347}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CEB46485-56CF-4EB8-980A-7C8C81A7C347}.Debug|Any CPU.Build.0 = Debug|Any CPU {CEB46485-56CF-4EB8-980A-7C8C81A7C347}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -693,18 +609,10 @@ {07387995-A7CD-4C04-A05A-45F8DB0EDFBC}.Debug|Any CPU.Build.0 = Debug|Any CPU {07387995-A7CD-4C04-A05A-45F8DB0EDFBC}.Release|Any CPU.ActiveCfg = Release|Any CPU {07387995-A7CD-4C04-A05A-45F8DB0EDFBC}.Release|Any CPU.Build.0 = Release|Any CPU - {46936FDF-D917-40AD-A67B-0177CCB8D659}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {46936FDF-D917-40AD-A67B-0177CCB8D659}.Debug|Any CPU.Build.0 = Debug|Any CPU - {46936FDF-D917-40AD-A67B-0177CCB8D659}.Release|Any CPU.ActiveCfg = Release|Any CPU - {46936FDF-D917-40AD-A67B-0177CCB8D659}.Release|Any CPU.Build.0 = Release|Any CPU {84C5D892-21E5-44E9-BF7E-18B9CB38FF08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {84C5D892-21E5-44E9-BF7E-18B9CB38FF08}.Debug|Any CPU.Build.0 = Debug|Any CPU {84C5D892-21E5-44E9-BF7E-18B9CB38FF08}.Release|Any CPU.ActiveCfg = Release|Any CPU {84C5D892-21E5-44E9-BF7E-18B9CB38FF08}.Release|Any CPU.Build.0 = Release|Any CPU - {BA9ED0E3-5C49-42F0-85A5-94BE110C9B2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BA9ED0E3-5C49-42F0-85A5-94BE110C9B2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BA9ED0E3-5C49-42F0-85A5-94BE110C9B2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BA9ED0E3-5C49-42F0-85A5-94BE110C9B2B}.Release|Any CPU.Build.0 = Release|Any CPU {3E9AC754-2820-484C-9792-71AC5396D7E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3E9AC754-2820-484C-9792-71AC5396D7E0}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E9AC754-2820-484C-9792-71AC5396D7E0}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -713,22 +621,6 @@ {1CDB8D9B-0DCF-4DB7-A193-96005E4E0554}.Debug|Any CPU.Build.0 = Debug|Any CPU {1CDB8D9B-0DCF-4DB7-A193-96005E4E0554}.Release|Any CPU.ActiveCfg = Release|Any CPU {1CDB8D9B-0DCF-4DB7-A193-96005E4E0554}.Release|Any CPU.Build.0 = Release|Any CPU - {6B1F2F73-E16C-4C85-9D3B-B1872E363653}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6B1F2F73-E16C-4C85-9D3B-B1872E363653}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6B1F2F73-E16C-4C85-9D3B-B1872E363653}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B1F2F73-E16C-4C85-9D3B-B1872E363653}.Release|Any CPU.Build.0 = Release|Any CPU - {73065108-246A-4852-A248-1755B3804DF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {73065108-246A-4852-A248-1755B3804DF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {73065108-246A-4852-A248-1755B3804DF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {73065108-246A-4852-A248-1755B3804DF5}.Release|Any CPU.Build.0 = Release|Any CPU - {902AABE5-E167-444E-B3C7-8077E1E9BBBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {902AABE5-E167-444E-B3C7-8077E1E9BBBB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {902AABE5-E167-444E-B3C7-8077E1E9BBBB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {902AABE5-E167-444E-B3C7-8077E1E9BBBB}.Release|Any CPU.Build.0 = Release|Any CPU - {EE2FFC2D-6935-40EE-B5F9-085CF922ABD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EE2FFC2D-6935-40EE-B5F9-085CF922ABD9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE2FFC2D-6935-40EE-B5F9-085CF922ABD9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EE2FFC2D-6935-40EE-B5F9-085CF922ABD9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -763,7 +655,6 @@ {A3B3FD1B-CE92-415C-919B-97960574E1C7} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} {D3CB445E-D280-4340-B86F-6D6B2F0CC222} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} {17472ED6-6993-4F35-B419-5DD70BACF8EE} = {C7614DA2-0679-407D-B9E3-66D448DD7488} - {E333361E-5072-43DA-97D9-B94D0EF7A388} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {935F8017-8FF6-4D05-8B02-370B01C4395C} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {EABD7A65-2A38-4E1F-AB4E-0A477896D74B} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {4FD9F497-BF54-4DED-9747-61103339584C} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} @@ -773,59 +664,48 @@ {81F213B6-BAF7-466E-ACE5-27EA6E74C32C} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {F64241F2-ABE2-44FF-A618-FDCB23D6F773} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {1F820E39-7D27-4438-9EA1-35250ED67504} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {4AA289D4-59F2-4AB7-8E39-7CB9F7E8D054} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {45C619EF-A0D6-4DCD-949E-35A49C65CF8C} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {A98C78E2-6695-486B-BED3-C4B629762333} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {FD10F7E7-81F8-406F-B30C-AFD7ACABE0E6} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {E09E35AC-0DDB-455A-8EE1-E83791AE3ACD} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {3DEAD862-B78B-4588-997F-74CC425A8ABD} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {A9D90108-0B39-4604-9D56-F8A8AF8611EF} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {BAD1818E-FE2B-4E14-B011-6105B311635B} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {D1156846-1AF1-453D-8682-2BBD954C463B} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {222C836C-1F72-466B-BA05-C0DB5F62561A} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {BB173A59-3109-404A-BC12-DB9172B258EE} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {19C35E9E-8E84-4BCA-A7D8-A21A7F8B68FB} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {4E3453FF-9541-4493-8633-9A1EF28FC831} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {F2BCF22D-7002-44F4-9DD3-E094E6E80998} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {468702CC-EC28-4E92-B35D-BA51480D933F} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {EB04B4AB-2E7B-4DFC-B3E6-FD4C768D3A95} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {FEC84CC4-3118-41EA-AA71-8CC6AB175EFB} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {B79635F1-A92E-491C-B881-F6B1F196FE2F} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {A4FA0340-3251-4ECD-8198-9ABAFE5DD724} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {91C78958-1A27-4090-A890-4C7B5495F36D} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {662E6240-C1D4-4B6E-A792-21587C2F0569} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {C39A9B5A-A0BB-442F-913A-F4FC55C9DF59} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {D7393EFB-357D-4790-8820-A68937299777} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {CC0577CF-B838-4D62-9F17-84263D78BC75} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {D887FBE4-4294-4153-A40D-5C2AE9FAEA6C} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {2B9A741E-F363-421B-90D0-096C035AFB74} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {0B14D208-546A-4B98-9E5B-F4075ADC8B60} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {29D1F9FB-BFDC-4929-A316-9344D8B878BD} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {D5FBE2E9-E46A-43DE-BB95-AE587FF757F8} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {78FCCC31-B40F-4675-9A50-AA9DA7DDC716} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {9FF7BE27-C8A1-40A2-9830-F39D3F1B2723} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {855C7C2F-7F87-4AAA-BF8C-DC308D0EB424} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {F02C6E7D-E171-4F2F-95D5-522DB73DBEC9} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {F0B75BDD-8E1B-4C44-88F4-9471300D2597} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {2E73CAB8-A477-43A2-B455-E19FB4F606D9} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {64B6ED22-8656-44DC-B2FC-4C6BC271886F} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {C6954B2D-B574-45EA-889D-B70A32787A43} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {453A98C0-CFC8-4EBF-8981-B0EE6DD0312E} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {8BB51C09-E462-4F5B-BEE6-10DF1DF0DEA8} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {6C5C5F6D-EDBC-4DDD-8600-8C8DCE6BEC6E} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {53410317-717A-4A06-8D06-0A049A96834E} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {7A77BD15-6F41-45EB-BD6C-2351B209CDD5} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {1A4EBA31-7554-4FC8-B4A7-735B940E0916} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {361C9FD1-F673-496B-BB4B-1E2665E91721} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {1110F78E-0232-4A56-B678-CB2A6C2AEB9E} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {9BDA9171-483B-4F69-936E-01F546E25DC0} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {27B7C2A6-5C6E-4305-98EC-D6A3EE7B9C2E} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {306CC209-52B5-470F-BF99-BD171B822DD5} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} {D50F9E4D-55AA-4FB7-A2B2-4CBB07D3B2C0} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {4212F5F8-F5FC-40FD-8F05-0A2D8204E55E} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {286D6CAF-5238-4B09-ACA8-19651C645EBA} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} {EB9471A8-69D1-477A-A664-4E8B0EBE5F94} = {318306D9-A6F4-456C-9019-8E7EDA4F2066} - {762886ED-B832-4622-A40E-43D7EB32CE75} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {CEB46485-56CF-4EB8-980A-7C8C81A7C347} = {B1548C2C-C3C2-47C0-8F6E-B265D0603099} {95B99C20-2073-4DE9-A0BE-0FF205128544} = {B1548C2C-C3C2-47C0-8F6E-B265D0603099} {4E406844-6424-4F35-A2F5-E503FB9B39C4} = {A24F4CA7-C6A3-4663-9A07-017814E614E7} @@ -840,15 +720,9 @@ {8F6EF573-0AD7-40C4-B839-15EA72764C30} = {61C58B21-80C9-4092-ACC5-141B424D15E8} {BE8E32E4-862C-4AFF-97D0-300EB2896285} = {49E7CA43-7FD9-48A3-B0DB-6D99FA93F393} {07387995-A7CD-4C04-A05A-45F8DB0EDFBC} = {3BE2BA1A-B93F-4EDE-BC37-915663317C33} - {46936FDF-D917-40AD-A67B-0177CCB8D659} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {84C5D892-21E5-44E9-BF7E-18B9CB38FF08} = {61C58B21-80C9-4092-ACC5-141B424D15E8} - {BA9ED0E3-5C49-42F0-85A5-94BE110C9B2B} = {C7614DA2-0679-407D-B9E3-66D448DD7488} {3E9AC754-2820-484C-9792-71AC5396D7E0} = {318306D9-A6F4-456C-9019-8E7EDA4F2066} {1CDB8D9B-0DCF-4DB7-A193-96005E4E0554} = {C7614DA2-0679-407D-B9E3-66D448DD7488} - {6B1F2F73-E16C-4C85-9D3B-B1872E363653} = {C7614DA2-0679-407D-B9E3-66D448DD7488} - {73065108-246A-4852-A248-1755B3804DF5} = {C7614DA2-0679-407D-B9E3-66D448DD7488} - {902AABE5-E167-444E-B3C7-8077E1E9BBBB} = {C7614DA2-0679-407D-B9E3-66D448DD7488} - {EE2FFC2D-6935-40EE-B5F9-085CF922ABD9} = {B1548C2C-C3C2-47C0-8F6E-B265D0603099} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {18D1EA07-81E5-4443-8512-F303BC79DCF4} -- Gitblit v1.9.3