Shuxia Ning
2024-08-07 554694000f4d7ffc231a23e7ff429595c254ceaa
IStation.Service/08-algorithm/02-schedule/ScheduleHelper.cs
@@ -20,6 +20,8 @@
        #endregion
        #region Private Variable
        private readonly decimal _frequency_min = 28;
        private readonly decimal _frequency_max = 50;
        private readonly decimal _frequency_space = 1;//频率间隔 
@@ -45,7 +47,9 @@
        private List<List<int>> _same_section_flag_combine_list = null; // 同段泵组合  
        private List<Model.WaterSupplyLimit> _water_supply_limit_list = null; //供水限制列表
        private List<Model.FrequencyLimit> _frequency_limit_list = null; // 频率限制列表
        private Dictionary<int,double> _flag_cumulative_runtime_dict = null; // 泵累计运行时长字典
        private Dictionary<int, double> _flag_cumulative_runtime_dict = null; // 泵累计运行时长字典
        #endregion
        /// <summary>
        /// 初始化
@@ -111,7 +115,7 @@
            var min_open_count = _min_open_count;
            var max_open_count = _max_open_count < 1 ? pump_list.Count : _max_open_count;
            var must_open_flag_list = _must_open_flag_list;
            var must_close_flag_list = _must_close_flag_list;
            var must_close_flag_list = _must_close_flag_list;
            var forbidden_flag_combine_list = _forbidden_flag_combine_list;
            var associative_flag_combine_list = _associative_flag_combine_list;
            var same_section_flag_combine_list = _same_section_flag_combine_list;
@@ -149,7 +153,7 @@
            var exist_must_close_flag_list = must_close_flag_list != null && must_close_flag_list.Count > 0;
            #endregion
            #region 存在-禁用组合
            var exist_forbidden_flag_combine_list = forbidden_flag_combine_list != null && forbidden_flag_combine_list.Count > 0;
@@ -201,7 +205,7 @@
            #region 存在-泵累计运行时长字典
            var flag_cumulative_runtime_loss_ratio_dict=new Dictionary<int,double>();
            var flag_cumulative_runtime_loss_ratio_dict = new Dictionary<int, double>();
            var exist_flag_cumulative_runtime_dict = flag_cumulative_runtime_dict != null && flag_cumulative_runtime_dict.Count > 0;
            if (exist_flag_cumulative_runtime_dict)
            {
@@ -216,8 +220,6 @@
            {
                //供水限制
                var exist_limit = false;
#if DEBUG
#else
                if (exist_water_supply_limit_list)
                {
                    var limit = water_supply_limit_list.Find(x => x.PumpCount == current_open_flag_list.Count);
@@ -228,8 +230,7 @@
                            exist_limit = true;
                        }
                    }
                }
#endif
                }
                if (!exist_limit)
                {
                    var opt_ana_combine = GetOptAnaCombine
@@ -759,8 +760,7 @@
                var loss_ratio = 1 - level;
                flag_cumulative_runtime_loss_ratio_dict.Add(flag, loss_ratio);
            }
            return flag_cumulative_runtime_dict;
            return flag_cumulative_runtime_loss_ratio_dict;
        }
        /// <summary>
@@ -852,7 +852,6 @@
            return lstResult;
        }
        /// <summary>
        /// 获取排列组合
@@ -882,6 +881,10 @@
            var analysis_deviation = _service_analysis_deviation.GetByFlowAndRunFlags(flow, flags);
            if (analysis_deviation == null)
            {
                if (GlobalHelper.IsStation2(flags))
                {
                    Yw.LogHelper.Error($"[{Yw.Untity.IntListHelper.ToString(flags)}]组合不存在偏差系数!");
                }
                return deviation_factor_dict;
            }
@@ -915,8 +918,7 @@
        #endregion
        #region Expand
        /// <summary>