tangxu
2022-11-02 05f522e321a742f03bf1e3e26edaeb5147da42f4
Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs
@@ -49,7 +49,7 @@
                #region 检查数据
                if (complex_request_paras.OutletPipePara == null || complex_request_paras.OutletPipePara.Count < 1)
                {
                    error_info = string.Format("第{0},分析出错,原因是:{1}",
                    error_info = string.Format("{0}时,分析出错,原因是:{1}",
                        hourRequest.Hour + 1, "出口管路参数有误, 请确认是否赋值, ERROR 35");
                    return null;
                }
@@ -75,9 +75,9 @@
                {//检查压力
                    continue;
                }
                if (complex_request_paras.WaterLevelPara != null)
                if (complex_request_paras.InletPipePara != null)
                {
                    foreach (var wl in complex_request_paras.WaterLevelPara)
                    foreach (var wl in complex_request_paras.InletPipePara)
                    {
                        cacheNameBuilder.AppendFormat("V{0}", Math.Round(wl.Value, 0));
                    }
@@ -97,7 +97,18 @@
                    var result_anaSchemes = CalcSchemes压力(complex_request_paras, null, out error_info);
                    if (result_anaSchemes == null || result_anaSchemes.Count == 0)
                    {
                        error_info = string.Format("第{0},分析出错,原因是:{1}", hourRequest.Hour + 1, error_info);
                        if (string.IsNullOrEmpty(error_info))
                        {
                            error_info = string.Format("{0}时,分析出错,可能是入参数据不合理,请检查",
                                                    hourRequest.Hour + 1 );
                        }
                        else
                        {
                            error_info = string.Format("{0}时,分析出错,原因是:{1}",
                                        hourRequest.Hour + 1,
                                        error_info);
                        }
                        return null;
                    }
                    opt_anaScheme = result_anaSchemes.First();
@@ -112,7 +123,30 @@
            sum.WP = CalculateWP(sum.Dt, sum.Qt);
            return sum;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="pipes"></param>
        /// <returns></returns>
        protected static double CalcConnectPipeEta(List<IStation.Calculation.DispatchAna.Model.AnaScheme> pipes)
        {
            double eta = 0;
            double qh = 0;
            int count = 0;
            foreach (var pipe in pipes)
            {
                if (pipe == null)
                    continue;
                if (pipe.TotalWrkQ < 1 || pipe.TotalWrkH < 0.1)
                    continue;
                qh += pipe.TotalWrkQ * pipe.TotalWrkH;
                eta += pipe.TotalWrkQ * pipe.TotalWrkH * pipe.TotalWrkE;
                count++;
            }
            if (count <= 0)
                return 0;
            return Math.Round(eta / qh, 2);
        }
    }
}