using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
|
namespace IStation.Calculation.DispatchAna
|
{
|
/// <summary>
|
/// 常规
|
/// </summary>
|
internal class Calculator_KeepStatus_General : CalculatorBase, IKeepStatusCalc
|
{
|
|
IStation.Calculation.DispatchAna.Model.RequestParasComplex _request_paras;
|
List<long> _open_machine_IdList;
|
|
/// <summary>
|
/// 初始化参数
|
/// </summary>
|
/// <param name="complex_request_paras"></param>
|
/// <param name="eta_ana_records"></param>
|
/// <param name="open_machine_ids"></param>
|
public void IntialRequest(
|
IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras,
|
IStation.Calculation.DispatchAna.Model.EtaAnaRecord4Station eta_ana_records,
|
List<long> open_machine_ids)
|
{
|
this._corpID = complex_request_paras.CorpID;
|
this._stationID = complex_request_paras.StationID;
|
this._request_paras = complex_request_paras;
|
this._open_machine_IdList = open_machine_ids;
|
}
|
|
|
|
|
/// <summary>
|
/// 计算保持当前开机状态
|
/// </summary>
|
/// <param name="error_info">错误信息</param>
|
/// <returns></returns>
|
public IStation.Calculation.DispatchAna.Model.AnaScheme Calc( out string error_info)
|
{
|
error_info = null;
|
|
if (_request_paras == null)
|
{
|
error_info = "ERROR 30";
|
return null;
|
}
|
if (_open_machine_IdList == null || _open_machine_IdList.Count == 0)
|
{
|
error_info = "ERROR 25";
|
return null;
|
}
|
if (_request_paras.OutletPipePara == null || _request_paras.OutletPipePara.Count < 2)
|
{
|
error_info = "ERROR 35";
|
return null;
|
}
|
double target_flow = _request_paras.OutletPipePara[0].TargetFlow;
|
if (target_flow < 10 )
|
{
|
return default;
|
}
|
|
double target_press = _request_paras.OutletPipePara[0].TargetPress;
|
if (target_press < 10)
|
{
|
return default;
|
}
|
|
double water_level = 0;//水位
|
if (_request_paras.InletPipePara != null && _request_paras.InletPipePara.Count > 0)
|
{
|
water_level = _request_paras.InletPipePara.First().Value;
|
}
|
|
if (_request_paras.ValvePara == null || _request_paras.ValvePara.Count < 1)
|
{
|
error_info = "ERROR 135";
|
return null;
|
}
|
|
List<IStation.Calculation.DispatchAna.Model.MachineDetail> allMachineList = null;
|
if (!BuildMachineList(
|
out allMachineList,
|
out error_info))
|
{
|
error_info = "机泵组无法构建,ERROR 70,错误信息:" + error_info;
|
return null;
|
}
|
|
IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper压力 calc_pipe_helper =
|
new IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper压力();
|
calc_pipe_helper.InitialParas(
|
target_flow,
|
water_level,true,
|
target_press,false,
|
_request_paras.OutletPipePara[0].TargetFlowRangeMin,
|
_request_paras.OutletPipePara[0].TargetFlowRangeMax,
|
allMachineList, null);
|
|
return calc_pipe_helper.CalcKeepStatus(_open_machine_IdList);
|
}
|
|
}
|
}
|