| | |
| | | { |
| | | 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 |
| | | { |
| | |
| | | /// <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; |
| | |
| | | |
| | | 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.功率?"用电量最优":"电费最优")); |
| | | |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | //不许切泵时间 |
| | | 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(); |
| | | |
| | |
| | | { |
| | | 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) |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | //不许开泵时间 |
| | | 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)) |
| | | //{ |
| | | |
| | | //} |
| | | |
| | | |
| | | |