From 05f522e321a742f03bf1e3e26edaeb5147da42f4 Mon Sep 17 00:00:00 2001 From: tangxu <76880903@qq.com> Date: 星期三, 02 十一月 2022 16:18:47 +0800 Subject: [PATCH] 解决南汇北 计划计算 --- Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs | 44 +++++++++++++++++++++++++++++++++++++++----- 1 files changed, 39 insertions(+), 5 deletions(-) diff --git a/Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs b/Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs index 50c3be7..f1f4f53 100644 --- a/Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs +++ b/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); + } } } -- Gitblit v1.9.3