using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Calculation.DispatchAna
{
///
///
///
public class CalculatorOptAnaBase: CalculatorBase
{
///
///
///
///
///
///
///
protected virtual List CalcSchemes压力(
IStation.Calculation.DispatchAna.Model.RequestParasComplex complex_request_paras,
IStation.Calculation.DispatchAna.Model.MachineRunPara machine_run_status,
out string error_info)
{
error_info = "未实例化";
return null;
}
///
/// 计算汇总数据
///
///
///
///
public virtual IStation.Calculation.DispatchAna.Model.DaySumData CalcSumData(
List HourRequests, out string error_info)
{
error_info = null;
IStation.Calculation.DispatchAna.Model.DaySumData sum = new Model.DaySumData();
sum.Qt = 0;
foreach (var hourRequest in HourRequests)
{
var complex_request_paras = hourRequest.Request;
if (complex_request_paras.OutletPipePara == null || complex_request_paras.OutletPipePara.Count < 1)
{
error_info = string.Format("第{0},分析出错,原因是:{1}",
hourRequest.Hour + 1, "出口管路参数有误, 请确认是否赋值, ERROR 35");
return null;
}
double target_flow = complex_request_paras.OutletPipePara[0].TargetFlow;
if (target_flow < 50)
{
continue;
}
var result_anaSchemes = CalcSchemes压力(hourRequest.Request, null, out error_info);
if (result_anaSchemes == null || result_anaSchemes.Count == 0)
{
error_info = string.Format("第{0},分析出错,原因是:{1}", hourRequest.Hour + 1, error_info);
return null;
}
var opt_anaScheme = result_anaSchemes.First();
sum.Qt = sum.Qt + opt_anaScheme.TotalWrkQ;
sum.Dt = sum.Dt + opt_anaScheme.TotalWrkP;
}
sum.WP = CalculateWP(sum.Dt, sum.Qt);
return sum;
}
}
}