tangxu
2024-04-24 1c5fa983ae3506c2edaa88c51a959d46685c1ba1
Calc/IStation.Calc.Core/¼ÆËã»ùÀà/ErQuCalcBaseHelper.cs
@@ -15,15 +15,74 @@
        /// <returns></returns>
        public static IStation.Calc.ErQuCalcBaseHelper Build(IStation.CalcModel.AnaRequest anaRequest)
        {
            //if(anaRequest.MaxLimitWaterBoxLevel != null)
            //{
            if (anaRequest.MaxLimitWaterBoxLevel != null)
            {
                DateTime? limit_time = GetMaxLimitWaterBoxTime(anaRequest);
            //}
            //else
            //{
                if(limit_time == null)
                {
                    var calc = new IStation.Calc.ErQuCalcHelper_2_递归_定水位_任意时间();
                    calc.SetMaxReservoirHeight(anaRequest.MaxLimitWaterBoxLevel.Value);
                    return calc;
                }
                else
                {
                    var calc = new IStation.Calc.ErQuCalcHelper_2_递归_定水位_指定时间();
                    calc.SetMaxReservoirHeight(anaRequest.MaxLimitWaterBoxLevel.Value, limit_time.Value);
                    return calc;
                }
            }
            else
            {
                return new IStation.Calc.ErQuCalcHelper_2_递归_定水量();
            }
        }
            //}
            return new IStation.Calc.ErQuCalcHelper_2_递归_定水量();
        private static DateTime? GetMaxLimitWaterBoxTime(IStation.CalcModel.AnaRequest anaRequest)
        {
            if (string.IsNullOrEmpty(anaRequest.MaxLimitWaterBoxTime))
            {
                return null;
            }
            DateTime time;
            if (DateTime.TryParse(anaRequest.MaxLimitWaterBoxTime, out time))
            {
                return time;
            }
            if (anaRequest.MaxLimitWaterBoxTime.Contains(":"))
            {
                var sss = anaRequest.MaxLimitWaterBoxTime.Split(':');
                int hour = 0;
                int miut = 0;
                if (int.TryParse(sss[0], out hour) && int.TryParse(sss[1],out miut))
                {
                    if (hour < anaRequest.StartTime.Hour)
                        return new DateTime(anaRequest.EndTime.Year, anaRequest.EndTime.Month, anaRequest.EndTime.Day, hour, miut, 0);
                    else
                        return new DateTime(anaRequest.StartTime.Year, anaRequest.StartTime.Month, anaRequest.StartTime.Day, hour, miut, 0);
                }
            }
            else
            {
                int hour = 0;
                if (int.TryParse(anaRequest.MaxLimitWaterBoxTime, out hour))
                {
                    if (hour < anaRequest.StartTime.Hour)
                        return new DateTime(anaRequest.EndTime.Year, anaRequest.EndTime.Month, anaRequest.EndTime.Day, hour, 0, 0);
                    else
                        return new DateTime(anaRequest.StartTime.Year, anaRequest.StartTime.Month, anaRequest.StartTime.Day, hour, 0, 0);
                }
            }
    return null;
        }
        /// <summary>
@@ -74,19 +133,7 @@
            this._startOpenCount = anaRequest.StartOpenCount;
            this._clacOptType = anaRequest.CalcOptType;
            if (anaRequest.MaxLimitWaterBoxLevel != null)
            {
               // this._max_level时间 =  anaRequest.MinLimitWaterBoxLevel.Value;
                this._max_level水库水位 = anaRequest.MaxLimitWaterBoxLevel.Value;
                if (!string.IsNullOrEmpty(anaRequest.MaxLimitWaterBoxTime))
                {
                    //DateTime time;
                   // if(!string.IsNullOrEmpty())
                   // anaRequest.
                }
            }
            if (anaRequest.TotalFlow取水总量 != null)