tangxu
2024-02-28 f9acbc64359c08113ee6781adfe7cc683d0b5186
WinFrmUI/IStation.WinFrmUI.CalcErQu/Wizard/pageManuResult.cs
@@ -72,14 +72,14 @@
                                {
                                    if (this._currentViewPrj == null)
                                        return;
                                    if (HistoryAnaPrjFileHelper.SaveXml(this._anaDay, this._currentViewPrj))
                                    {
                                        MessageBox.Show("保存成功");
                                    }
                                    else
                                    {
                                        MessageBox.Show("保存失败");
                                    }
                                    //if (HistoryAnaPrjFileHelper.SaveXml(this._anaDay, this._currentViewPrj))
                                    //{
                                    //    MessageBox.Show("保存成功");
                                    //}
                                    //else
                                    //{
                                    //    MessageBox.Show("保存失败");
                                    //}
                                }
                                else
                                {
@@ -329,8 +329,10 @@
        /// <param name="endTime"></param>
        private void GetAnaRangeTime(out DateTime startTime, out DateTime endTime)
        {
            var anaSetting = IStation.Calc.ErQu.GlobalParas.AnaSetting;
            var day = this._anaDay;
            var startHour = Settings.AnaSetting.StartHourPerDay;
            var startHour = anaSetting.StartHourPerDay;
            if (startHour < 1)
            {
                startTime = day;
@@ -466,7 +468,7 @@
            listBoxControl1.Items.Clear();
            listBoxControl1.Items.Add("----------目标参数---------");
            listBoxControl1.Items.Add(string.Format("取水总量 {0} 万方", anaRequest.TotalFlow供水总量/10000));
            listBoxControl1.Items.Add(string.Format("取水总量 {0} 万方", anaRequest.TotalFlow取水总量/10000));
            listBoxControl1.Items.Add(string.Format("优化目标 {0}  ", anaRequest.CalcOptType== eCalcOptType.功率?"用电量最优":"电费最优"));
@@ -593,19 +595,23 @@
            DateTime rangeStartTime, rangeEndTime;
            GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
            var anaSetting = IStation.Calc.ErQu.GlobalParas.AnaSetting;
            if (anaSetting == null)
                return null;
            IStation.Calc.ErQuCalcBaseHelper calcHelper = IStation.Calc.ErQuCalcBaseHelper.Build();
            calcHelper.MinOpenPumpMinute = Settings.AnaSetting.MinOpenTimeMinute;
            calcHelper.MinSwitchPumpMinute = Settings.AnaSetting.MinSwitchTimeMinute;
            calcHelper.MinOpenPumpMinute = anaSetting.MinOpenTimeMinute;
            calcHelper.MinSwitchPumpMinute = anaSetting.MinSwitchTimeMinute;
            if (isLimitLevel)
            {
                calcHelper.CalcSpaceMinute = Settings.AnaSetting.CalcSpaceMinuteL;
                calcHelper.MaxPumpSwitchCount = Settings.AnaSetting.MaxPumpSwitchCountL;
                calcHelper.CalcSpaceMinute = anaSetting.CalcSpaceMinuteL;
                calcHelper.MaxPumpSwitchCount = anaSetting.MaxPumpSwitchCountL;
            }
            else
            {
                calcHelper.CalcSpaceMinute = Settings.AnaSetting.CalcSpaceMinuteQ;
                calcHelper.MaxPumpSwitchCount = Settings.AnaSetting.MaxPumpSwitchCountQ;
                calcHelper.CalcSpaceMinute = anaSetting.CalcSpaceMinuteQ;
                calcHelper.MaxPumpSwitchCount = anaSetting.MaxPumpSwitchCountQ;
            }
@@ -626,22 +632,16 @@
            //不许切泵时间
            if (!string.IsNullOrEmpty(Settings.AnaSetting.SwitchPumpIgnoreTimes))
            if (IStation.Calc.ErQu.GlobalParas.AnaSetting.SwitchPumpIgnoreTimes != null && IStation.Calc.ErQu.GlobalParas.AnaSetting.SwitchPumpIgnoreTimes.Count > 0)
            {
                var ttt = Settings.AnaSetting.SwitchPumpIgnoreTimes.Split(
                    new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                List<IStaton.CalcModel.TimeRange> limit_times = new List<IStaton.CalcModel.TimeRange>();
                foreach (var t in ttt)
                foreach (var t in IStation.Calc.ErQu.GlobalParas.AnaSetting.SwitchPumpIgnoreTimes)
                {
                    var ddd = t.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
                    if (Convert.ToBoolean(ddd[0]) == false)
                    if (t.IsUse == false)
                        continue;
                    var st = ddd[1].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                    var ed = ddd[2].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                    int ed_h = Convert.ToInt32(ed[0]);
                    int st_h = Convert.ToInt32(st[0]);
                    int ed_h = t.EndHour;
                    int st_h = t.StartHour;
                    IStaton.CalcModel.TimeRange v = new IStaton.CalcModel.TimeRange();
@@ -649,29 +649,26 @@
                    {
                        var nextDay = rangeStartTime.AddDays(1);
                        v.Start = new DateTime(nextDay.Year, nextDay.Month,
    nextDay.Day, st_h, Convert.ToInt32(st[1]), 0);
    nextDay.Day, st_h, t.StartMinute, 0);
                    }
                    else
                    {
                        v.Start = new DateTime(rangeStartTime.Year, rangeStartTime.Month,
    rangeStartTime.Day, st_h, Convert.ToInt32(st[1]), 0);
    rangeStartTime.Day, st_h, t.StartMinute, 0);
                    }
                    //v.Start = new DateTime(rangeStartTime.Year, rangeStartTime.Month,
                    //    rangeStartTime.Day, Convert.ToInt32(st[0]), Convert.ToInt32(st[1]), 0);
                    bool isNext = ed_h > 23 ? true : false;
                    //v.StartM = Convert.ToInt32(ed[1]);
                    //ed_h > 23 ? ed_h - 24 : ed_h;
                    if (isNext)
                    {
                        var nextDay = v.Start.AddDays(1);
                        v.End = new DateTime(nextDay.Year, nextDay.Month,
                        nextDay.Day, ed_h - 24, Convert.ToInt32(ed[1]), 0);
                        nextDay.Day, ed_h - 24, t.EndMinute, 0);
                    }
                    else
                    {
                        v.End = new DateTime(v.Start.Year, v.Start.Month,
                        v.Start.Day, ed_h, Convert.ToInt32(ed[1]), 0);
                        v.Start.Day, ed_h, t.EndMinute, 0);
                    }
                    if (v.End > v.Start)
                    {
@@ -682,60 +679,13 @@
            }
            //不许开泵时间
            if (isIgnoreOpenLimitAble == true &&
                !string.IsNullOrEmpty(Settings.AnaSetting.OpenPumpIgnoreTimes))
            {
                var ttt = Settings.AnaSetting.OpenPumpIgnoreTimes.Split(
                    new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                List<IStaton.CalcModel.TimeRange> limit_times = new List<IStaton.CalcModel.TimeRange>();
                foreach (var t in ttt)
                {
                    var ddd = t.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
                    if (Convert.ToBoolean(ddd[0]) == false)
                        continue;
                    var st = ddd[1].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                    var ed = ddd[2].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
                    int ed_h = Convert.ToInt32(ed[0]);
                    int st_h = Convert.ToInt32(st[0]);
                    IStaton.CalcModel.TimeRange v = new IStaton.CalcModel.TimeRange();
                    if (ed_h <= rangeStartTime.Hour)
                    {
                        var nextDay = rangeStartTime.AddDays(1);
                        v.Start = new DateTime(nextDay.Year, nextDay.Month,
    nextDay.Day, st_h, Convert.ToInt32(st[1]), 0);
                    }
                    else
                    {
                        v.Start = new DateTime(rangeStartTime.Year, rangeStartTime.Month,
    rangeStartTime.Day, st_h, Convert.ToInt32(st[1]), 0);
                    }
                    bool isNext = ed_h > 23 ? true : false;
                    //ed_h > 23 ? ed_h - 24 : ed_h;
                    if (isNext)
                    {
                        var nextDay = v.Start.AddDays(1);
                        v.End = new DateTime(nextDay.Year, nextDay.Month,
                        nextDay.Day, ed_h - 24, Convert.ToInt32(ed[1]), 0);
                    }
                    else
                    {
                        v.End = new DateTime(v.Start.Year, v.Start.Month,
v.Start.Day, ed_h, Convert.ToInt32(ed[1]), 0);
                    }
                    if (v.End > v.Start)
                    {
                        limit_times.Add(v);
                    }
                }
                calcHelper.LimitOpenPumpTimes = limit_times;
            }
            //if (isIgnoreOpenLimitAble == true &&
            //    !string.IsNullOrEmpty(anaSetting.OpenPumpIgnoreTimes))
            //{
            //}