tangxu
2022-11-08 5b5c4221ec96596e14da1b5cec9e29f27555daa2
Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs
@@ -29,19 +29,27 @@
        }
        Dictionary<string, IStation.Calculation.DispatchAna.Model.AnaScheme> _dict = new Dictionary<string, Model.AnaScheme>();
        /// <summary>
        /// 提升出口压力每次提升的百分率
        /// </summary>
        public double UpOutletPressPercent { get; set; } = 0;
        /// <summary>
        /// 提升出口压力次数
        /// </summary>
        public int UpOutletPressCount { get; set; } = 0;
        /// <summary>
        /// 计算汇总数据 :成功返回null, 失败返回错误信息
        /// </summary>
        /// <param name="Month">月份</param>
        /// <param name="HourRequests"></param>
        /// <param name="isUseCache">是否用缓存</param>
        /// <param name="isUseCache">是否用缓存</param>
        /// <param name="daySumData"></param>
        /// <returns></returns>
        public virtual string  CalcSumData(
             int Month,
             List<Model.HourRequest> HourRequests,
             bool isUseCache,
             bool isUseCache,
             out IStation.Calculation.DispatchAna.Model.DaySumData daySumData)
        { 
            daySumData = new Model.DaySumData();
@@ -97,8 +105,21 @@
                }
                else
                {
                    string error_info;
                    var result_anaSchemes = CalcSchemes压力(complex_request_paras, null, out error_info);
                    string error_info = "";
                    List<Calculation.DispatchAna.Model.AnaScheme> result_anaSchemes = null;
                    for (int i = 0; i <= UpOutletPressCount; i++)
                    {
                        result_anaSchemes = CalcSchemes压力(complex_request_paras, null, out error_info);
                        if (result_anaSchemes != null && result_anaSchemes.Count > 0)
                            break;
                        if (UpOutletPressCount > 0 && i != UpOutletPressCount)
                        {
                            foreach (var p in complex_request_paras.OutletPipePara)
                                p.TargetPress = complex_request_paras.OutletPipePara[0].TargetPress * (1.0 + UpOutletPressPercent / 100);
                        }
                    }
                    if (result_anaSchemes == null || result_anaSchemes.Count == 0)
                    {
                        if (string.IsNullOrEmpty(error_info))