using DevExpress.XtraEditors;
|
using DevExpress.XtraGrid.Views.Grid;
|
using IStation.CalcModel;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Windows.Forms;
|
|
namespace IStation.WinFrmUI.CalcErQu
|
{
|
public partial class CalcParasMainPage定水量 : DocumentPage
|
{
|
List<IStation.CalcModel.PumpInfo> _allCalcPumpInfos;
|
|
public CalcParasMainPage定水量()
|
{
|
InitializeComponent();
|
|
|
this.PageTitle.Caption = "总量分析";
|
this.SurfaceGuid = new SurfaceGuid()
|
{
|
Modular = eModular.CalcErQu1,
|
Function = this.PageTitle.Caption
|
};
|
|
this.gridViewMain.OptionsDetail.ShowDetailTabs = false;//不显示TAB名
|
this.gridViewMain.OptionsView.ShowGroupPanel = false;//隐藏最上面的GroupPanel
|
this.gridViewMain.OptionsSelection.MultiSelect = false;//单选
|
//this.gridViewMain.OptionsBehavior.Editable = false;//只读
|
this.gridViewMain.IndicatorWidth = 4;
|
this.gridViewMain.RowClick += new DevExpress.XtraGrid.Views.Grid.RowClickEventHandler(this.GridViewMain_RowClick);
|
//this.gridViewMain.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(this.GridViewMain_CustomDrawRowIndicator);
|
//this.gridViewMain.CustomUnboundColumnData += new DevExpress.XtraGrid.Views.Base.CustomColumnDataEventHandler(this.GridViewMain_CustomUnboundColumnData);
|
//this.gridViewMain.DoubleClick += new System.EventHandler(this.GridViewMain_DoubleClick);
|
this.gridViewMain.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridViewMain_RowCellClick);
|
this.gridViewMain.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(this.gridViewMain_CellValueChanged);
|
//
|
//layoutControlGroup3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
this.anaResultInfoDefaultCtrl.OnRefreshTimeSpan += (anaPrj) =>
|
{
|
RefreshPrjRangeTime(anaPrj);
|
};
|
|
|
dateEditDay.DateTime = DateTime.Now.Date;
|
|
_allAnaPrjs = new List<AnaPrj>();
|
this.bindingSource1.DataSource = _allAnaPrjs;
|
}
|
|
private bool _isInitialPageFinished = false;
|
|
|
List<Model.ElecPriceMonthSetting> _elePriceMonthList = null;
|
private void InitialElePrice()
|
{
|
if (_elePriceMonthList == null)
|
{
|
var bllElecPrice = new BLL.ElecPrice();
|
var allPrices = bllElecPrice.GetAll();
|
_elePriceMonthList = allPrices.First().Settings.MonthList;
|
}
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
private void InitalPumpInfo()
|
{
|
if (_allCalcPumpInfos == null)
|
{
|
var allCurveList = new BLL.PumpCurve().GetAll();
|
var allPumpMapList = new BLL.PumpCurveMapping().GetAll();
|
var allPumpList = new BLL.Product().GetAllPump();
|
|
_allCalcPumpInfos = new List<IStation.CalcModel.PumpInfo>();
|
foreach (var pump in allPumpList)
|
{
|
var curve_wrk_map = (from x in allPumpMapList where x.PumpID == pump.ID && x.IsWorking select x).FirstOrDefault();
|
if (curve_wrk_map == null)
|
{
|
MessageBox.Show(pump.Name + "未设置工作曲线");
|
return;
|
}
|
var curve = allCurveList.Find(x => x.ID == curve_wrk_map.CurveID);
|
|
IStation.CalcModel.PumpInfo calcPumpInfo = new IStation.CalcModel.PumpInfo();
|
calcPumpInfo.Product = pump;
|
calcPumpInfo.ID = pump.ID;
|
calcPumpInfo.Name = pump.Name;
|
calcPumpInfo.CurveInfo = curve.CurveInfo;
|
calcPumpInfo.RatedParas = pump.RatedParas;
|
|
_allCalcPumpInfos.Add(calcPumpInfo);
|
}
|
}
|
}
|
|
private List<AnaPrj> _allAnaPrjs = null;
|
private void AddProject(AnaPrj prj)
|
{
|
if (prj == null)
|
return;
|
|
if (string.IsNullOrEmpty(prj.ID))
|
prj.ID = Guid.NewGuid().ToString("N");
|
|
_allAnaPrjs.Add(prj);
|
|
this.bindingSource1.DataSource = _allAnaPrjs;
|
this.bindingSource1.ResetBindings(false);
|
}
|
|
|
/// <summary>
|
/// 初始化数据
|
/// </summary>
|
public override void InitialDataSource()
|
{
|
imageComboClacOptType.SelectedIndex =
|
IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.OptSortType;
|
textEditTotalFlow万.Text =
|
IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.LastTargetTotalFlow.ToString();
|
|
_isInitialPageFinished = true;
|
}
|
|
|
/// <summary>
|
/// 刷新数据
|
/// </summary>
|
public override void RefreshDataSource()
|
{
|
}
|
|
#region GridView
|
AnaPrj _gridViewPrj;
|
private void gridViewMain_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
|
{
|
if (e.Column == this.colPrjName)
|
{
|
var prj = gridViewMain.GetRow(e.RowHandle) as AnaPrj;
|
for (int i = 0; i < this.xtraTabControl1.TabPages.Count; i++)
|
{
|
if (this.xtraTabControl1.TabPages[i].Tag == null)
|
continue;
|
if(prj.ID == this.xtraTabControl1.TabPages[i].Tag.ToString())
|
{
|
this.xtraTabControl1.TabPages[i].Text = e.Value.ToString();
|
return;
|
}
|
}
|
}
|
}
|
private void GridViewMain_RowClick(object sender, RowClickEventArgs e)
|
{
|
if (e.RowHandle < 0) return;
|
|
if (e.Button == System.Windows.Forms.MouseButtons.Right)
|
{
|
_gridViewPrj = gridViewMain.GetRow(e.RowHandle) as AnaPrj;
|
contextMenuStrip1.Show(gridControl1, e.Location);
|
}
|
else
|
{
|
//SetRibbonButtonDisp(SPump.WinFrmUI.SeriesTreeView.eNodeLevel.Pump);
|
}
|
}
|
private void GridViewMain_RowCellClick(object sender, RowCellClickEventArgs e)
|
{
|
if (e.Column == colDetail)
|
{
|
var anaPrj = this.gridViewMain.GetRow(e.RowHandle) as IStation.CalcModel.AnaPrj;
|
if (anaPrj != null)
|
{
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
|
this.tabPageDefault.Text = anaPrj.Name;
|
this.tabPageDefault.Tag = anaPrj.ID;
|
this.anaResultInfoDefaultCtrl.SetBindingData(this._targetTotalFlow, rangeStartTime, rangeEndTime, anaPrj);
|
}
|
}
|
if (e.Column == colDL)
|
{
|
var anaPrj = this.gridViewMain.GetRow(e.RowHandle) as IStation.CalcModel.AnaPrj;
|
if (anaPrj != null)
|
{
|
foreach (DevExpress.XtraTab.XtraTabPage tab in this.xtraTabControl1.TabPages)
|
{
|
if (tab.Tag == null)
|
continue;
|
if (tab.Tag.ToString() == anaPrj.ID)
|
{
|
this.xtraTabControl1.SelectedTabPage = tab;
|
return;
|
}
|
}
|
AddPrjPanel(anaPrj);
|
}
|
}
|
if (e.Column == this.colDelete)
|
{
|
var anaPrj = this.gridViewMain.GetRow(e.RowHandle) as IStation.CalcModel.AnaPrj;
|
if (anaPrj != null)
|
{
|
for(int i = 0; i < this._allAnaPrjs.Count; i++)
|
{
|
if (_allAnaPrjs[i].ID == anaPrj.ID)
|
{
|
_allAnaPrjs.RemoveAt(i);
|
this.bindingSource1.ResetBindings(false);
|
}
|
}
|
|
}
|
}
|
}
|
|
private void MenuItem复制Prj_Click(object sender, EventArgs e)
|
{
|
if (_gridViewPrj == null)
|
return;
|
var new_gridViewPrj = new AnaPrj(_gridViewPrj);
|
new_gridViewPrj.ID = Guid.NewGuid().ToString("N");
|
AddProject( new_gridViewPrj );
|
}
|
|
private void MenuItem默认面板查看Prj_Click(object sender, EventArgs e)
|
{
|
if (_gridViewPrj == null)
|
return;
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
this.tabPageDefault.Text = _gridViewPrj.Name;
|
this.tabPageDefault.Tag = _gridViewPrj.ID;
|
this.anaResultInfoDefaultCtrl.SetBindingData(
|
this._targetTotalFlow,
|
rangeStartTime, rangeEndTime, _gridViewPrj);
|
}
|
|
private void MenuItem新建面板查看Prj_Click(object sender, EventArgs e)
|
{
|
if (_gridViewPrj == null)
|
return;
|
|
foreach (DevExpress.XtraTab.XtraTabPage tab in this.xtraTabControl1.TabPages)
|
{
|
if (tab.Tag == null)
|
continue;
|
if (tab.Tag.ToString() == _gridViewPrj.ID)
|
{
|
this.xtraTabControl1.SelectedTabPage = tab;
|
return;
|
}
|
}
|
AddPrjPanel(_gridViewPrj );
|
}
|
#endregion
|
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="startTime"></param>
|
/// <param name="endTime"></param>
|
private void GetAnaRangeTime(out DateTime startTime, out DateTime endTime)
|
{
|
var day = this.dateEditDay.DateTime.Date;
|
var startHour = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.StartHourPerDay;
|
if (startHour < 1)
|
{
|
startTime = day;
|
endTime = startTime.AddDays(1);
|
}
|
else
|
{
|
startTime = new DateTime(day.Year, day.Month, day.Day, startHour, 0, 0);
|
endTime = startTime.AddDays(1);
|
}
|
}
|
|
|
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnStartCalc_Click(object sender, EventArgs e)
|
{
|
IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.OptSortType = imageComboClacOptType.SelectedIndex;
|
|
IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.LastTargetTotalFlow = Convert.ToDouble(textEditTotalFlow万.Text);
|
IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.Save();
|
|
AnaOptResult();
|
}
|
double _targetTotalFlow;
|
private void AnaOptResult()
|
{
|
if (string.IsNullOrEmpty(textEditTotalFlow万.Text))
|
{
|
return;
|
}
|
|
|
if (!Initial长江水位())
|
{
|
MessageBox.Show("请输入长江水位信息");
|
return;
|
}
|
|
|
this._targetTotalFlow = 10000 * Convert.ToDouble(textEditTotalFlow万.Text);
|
|
InitalPumpInfo();
|
|
InitialElePrice();
|
|
IStation.WinFrmUI.WaitFrmHelper.ShowWaitForm(this);
|
|
IStation.Calc.ErQuCalcBaseHelper calcHelper = GetCalcHelper(true );
|
calcHelper.SetTargetFlow(this._targetTotalFlow);
|
string error_info;
|
var anaPrjs = calcHelper.CalcOptPrjs( out error_info);
|
IStation.WinFrmUI.WaitFrmHelper.HideWaitForm(this);
|
if (!string.IsNullOrEmpty(error_info) || anaPrjs == null || anaPrjs.Count() == 0)
|
{
|
MessageBox.Show(error_info);
|
return;
|
}
|
anaPrjs.Sort(new AnaPrj.Comparer(GetSortType()));
|
|
|
foreach (var prj in anaPrjs)
|
{
|
prj.Name = string.Format("目标:{0} ({1})",
|
this.textEditTotalFlow万.Text,this.imageComboClacOptType.Text);
|
prj.SumMoney = Math.Round(prj.SumMoney, 0);
|
prj.SumFlow = Math.Round(prj.SumFlow, 0);
|
prj.SumPower = Math.Round(prj.SumPower, 0);
|
}
|
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
|
var defaultPrj = anaPrjs.First();
|
this.tabPageDefault.Text = defaultPrj.Name;
|
this.tabPageDefault.Tag = defaultPrj.ID;
|
|
this.anaResultInfoDefaultCtrl.SetPumpInfo(_allCalcPumpInfos);
|
this.anaResultInfoDefaultCtrl.SetRiverWaterLevels(this._waterLevels长江);
|
this.anaResultInfoDefaultCtrl.SetBindingData(_targetTotalFlow,rangeStartTime, rangeEndTime, defaultPrj);
|
|
|
|
AddProject(defaultPrj);
|
}
|
|
|
|
private void labelControlDebug清空_Click(object sender, EventArgs e)
|
{
|
listBoxDebug.Items.Clear();
|
}
|
|
|
|
private void bbi电价信息_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
ViewElecPriceByDay frm = new ViewElecPriceByDay();
|
frm.SetBindingData(dateEditDay.DateTime.Date);
|
frm.Show();
|
}
|
|
private void bbi手动添加方案_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (!Initial长江水位())
|
return;
|
|
InitalPumpInfo();
|
|
InitialElePrice();
|
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
SetPrjItemSpanTimeDlg frm = new SetPrjItemSpanTimeDlg();
|
frm.SetDay(rangeStartTime, rangeEndTime);
|
frm.OnRefreshData += (name, rangelist) =>
|
{
|
AddManuPrj(name, rangelist);
|
};
|
if (frm.ShowDialog(this) != DialogResult.OK)
|
return;
|
}
|
private void AddManuPrj(string PrjName, List<CalcModel.PumpRunRange> list)
|
{
|
IStation.WinFrmUI.WaitFrmHelper.ShowWaitForm(this);
|
|
|
IStation.Calc.ErQuCalcBaseHelper calcHelper = GetCalcHelper(false);
|
|
string error_info;
|
AnaPrj anaPrj = new AnaPrj();
|
anaPrj.Type = 1;
|
|
calcHelper.CalcManuPrj(list, ref anaPrj, out error_info);
|
|
IStation.WinFrmUI.WaitFrmHelper.HideWaitForm(this);
|
|
if (!string.IsNullOrEmpty(error_info) || anaPrj == null)
|
{
|
MessageBox.Show(error_info);
|
return;
|
}
|
|
anaPrj.Name = PrjName;
|
if (string.IsNullOrEmpty(anaPrj.Name))
|
{
|
anaPrj.Name = string.Format("目标:{0} (手动)",
|
this.textEditTotalFlow万.Text );
|
}
|
if (string.IsNullOrEmpty(anaPrj.ID))
|
{
|
anaPrj.ID = Guid.NewGuid().ToString("N");
|
}
|
anaPrj.SumMoney = Math.Round(anaPrj.SumMoney, 0);
|
anaPrj.SumFlow = Math.Round(anaPrj.SumFlow, 0);
|
anaPrj.SumPower = Math.Round(anaPrj.SumPower, 0);
|
|
|
AddProject(anaPrj);
|
|
AddPrjPanel(anaPrj );
|
}
|
|
private void AddPrjPanel(AnaPrj anaPrj )
|
{
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
|
var anaResultInfoCtrlm = new IStation.WinFrmUI.CalcErQu.AnaResultInfoCtrl定水量();
|
|
|
anaResultInfoCtrlm.Location = new System.Drawing.Point(0, 0);
|
anaResultInfoCtrlm.Margin = new System.Windows.Forms.Padding(0);
|
anaResultInfoCtrlm.MinimumSize = new System.Drawing.Size(300, 0);
|
anaResultInfoCtrlm.Name = "anaResultInfoCtrlManu" + anaPrj.ID;
|
anaResultInfoCtrlm.Size = new System.Drawing.Size(963, 637);
|
anaResultInfoCtrlm.Dock = DockStyle.Fill;
|
this.layoutControl1.Controls.Add(anaResultInfoCtrlm);
|
|
anaResultInfoCtrlm.SetPumpInfo(_allCalcPumpInfos);
|
anaResultInfoCtrlm.SetRiverWaterLevels(this._waterLevels长江);
|
anaResultInfoCtrlm.SetBindingData(this._targetTotalFlow,
|
rangeStartTime, rangeEndTime,
|
anaPrj);
|
|
anaResultInfoCtrlm.OnRefreshTimeSpan += (anaPrj2) =>
|
{
|
RefreshPrjRangeTime(anaPrj2);
|
};
|
|
var tabPageManu = new DevExpress.XtraTab.XtraTabPage();
|
|
this.xtraTabControl1.TabPages.Insert(
|
this.xtraTabControl1.TabPages.Count-1,
|
tabPageManu);
|
|
tabPageManu.Controls.Add(anaResultInfoCtrlm);
|
tabPageManu.Name = "Tab"+ anaPrj.ID;
|
tabPageManu.Size = new System.Drawing.Size(967, 724);
|
tabPageManu.Text = anaPrj.Name;
|
tabPageManu.Tag = anaPrj.ID;
|
|
return;
|
}
|
|
private void RereshPrjTimeSpan(IStation.CalcModel.AnaPrj anaPrj, List<CalcModel.PumpRunRange> time_list)
|
{
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
|
IStation.WinFrmUI.WaitFrmHelper.ShowWaitForm(this);
|
|
IStation.Calc.ErQuCalcBaseHelper calcHelper = GetCalcHelper(false);
|
|
string error_info;
|
calcHelper.CalcManuPrj(time_list, ref anaPrj, out error_info);
|
IStation.WinFrmUI.WaitFrmHelper.HideWaitForm(this);
|
|
|
if (!string.IsNullOrEmpty(error_info) || anaPrj == null)
|
{
|
MessageBox.Show(error_info);
|
return;
|
}
|
|
|
anaPrj.SumMoney = Math.Round(anaPrj.SumMoney, 0);
|
anaPrj.SumFlow = Math.Round(anaPrj.SumFlow, 0);
|
anaPrj.SumPower = Math.Round(anaPrj.SumPower, 0);
|
|
foreach (DevExpress.XtraTab.XtraTabPage tab in this.xtraTabControl1.TabPages)
|
{
|
if (tab.Tag == null)
|
continue;
|
if (tab.Tag.ToString() == anaPrj.ID)
|
{
|
tab.Text = anaPrj.Name;
|
this.xtraTabControl1.SelectedTabPage = tab;
|
var result_ctrl = tab.Controls[0] as AnaResultInfoCtrl定水量;
|
result_ctrl.SetBindingData(this._targetTotalFlow, rangeStartTime, rangeEndTime, anaPrj);
|
break;
|
}
|
}
|
}
|
|
|
private void bbi分析配置_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
AnaSettingMgrDlg frm = new AnaSettingMgrDlg();
|
if (frm.ShowDialog() != DialogResult.OK)
|
return;
|
|
|
}
|
|
|
|
private void bbi导出计算迭代基础数据_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (string.IsNullOrEmpty(textEditTotalFlow万.Text))
|
{
|
return;
|
}
|
|
|
if (!Initial长江水位())
|
{
|
MessageBox.Show("请输入长江水位信息");
|
return;
|
}
|
|
|
InitalPumpInfo();
|
|
InitialElePrice();
|
|
|
|
|
IStation.Calc.ErQuCalcBaseHelper calcHelper = GetCalcHelper(false );
|
|
|
|
SaveFileDialog saveFileDlg = new SaveFileDialog();
|
saveFileDlg.Filter = "csv 文件(*.csv)|*.csv";
|
if (saveFileDlg.ShowDialog() != DialogResult.OK)
|
return;
|
|
string error_info;
|
calcHelper.ExportTimeData(saveFileDlg.FileName, out error_info);
|
if (!string.IsNullOrEmpty(error_info))
|
MessageBox.Show(error_info);
|
|
}
|
|
private IStation.Calc.ErQuCalcBaseHelper GetCalcHelper(bool isIgnoreOpenLimitAble)
|
{
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
|
IStation.Calc.ErQuCalcBaseHelper calcHelper = IStation.Calc.ErQuCalcBaseHelper.Build();
|
calcHelper.MinOpenPumpMinute = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.MinOpenTimeMinute;
|
calcHelper.MinSwitchPumpMinute = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.MinSwitchTimeMinute;
|
calcHelper.SetPumpInfo(_allCalcPumpInfos);
|
calcHelper.SetCalcTimeRange(rangeStartTime, rangeEndTime);
|
calcHelper.StartOpenCount = Convert.ToInt32(imageComboCurrentOpenCount.EditValue);
|
calcHelper.MaxPumpSwitchCount = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.MaxPumpSwitchCount;
|
|
calcHelper.ElecPrice = _elePriceMonthList;
|
calcHelper.CalcSpaceMinute = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.CalcSpaceMinute;
|
calcHelper.RiverWaterLevels = _waterLevels长江;
|
calcHelper.IsDispDebug = true;
|
calcHelper.OnShowDebugInfo += (info) =>
|
{
|
if (tabPageDebug.PageVisible)
|
this.listBoxDebug.Items.Add(info);
|
};
|
|
calcHelper.SetClacOptType(GetSortType());
|
|
|
//不许切泵时间
|
if (!string.IsNullOrEmpty(IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.SwitchPumpIgnoreTimes))
|
{
|
var ttt = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.SwitchPumpIgnoreTimes.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);
|
}
|
//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);
|
}
|
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.LimitSwitchPumpTimes = limit_times;
|
}
|
|
|
//不许开泵时间
|
if (isIgnoreOpenLimitAble==true &&
|
!string.IsNullOrEmpty(IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.OpenPumpIgnoreTimes))
|
{
|
var ttt = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.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;
|
}
|
|
|
|
|
|
return calcHelper;
|
}
|
private eCalcOptType GetSortType()
|
{
|
eCalcOptType sortType = eCalcOptType.功率;
|
if (this.imageComboClacOptType.SelectedIndex == 0)
|
{
|
sortType = eCalcOptType.功率;
|
}
|
else if (this.imageComboClacOptType.SelectedIndex == 1)
|
{
|
sortType = eCalcOptType.电费;
|
}
|
return sortType;
|
}
|
#region 长江水位
|
List<Model.TimeWaterLevel> _waterLevels长江 = null;
|
private void dateEditDay_EditValueChanged(object sender, EventArgs e)
|
{
|
if (_isInitialPageFinished == false)
|
return;
|
|
Initial长江水位();
|
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
_isInitial长江水位Chart = true;
|
viewRealTimeRiverWaterLevelCtrl1.SetBindingData3Day(rangeStartTime, rangeEndTime);
|
}
|
private bool Initial长江水位()
|
{
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
|
WaitFrmHelper.ShowWaitForm(this);
|
string error = null;
|
try
|
{
|
string benchmark = "";
|
this._waterLevels长江 = IStation.WinFrmUI.CalcErQu.TideHelper.GetByTime(
|
rangeStartTime, rangeEndTime, out benchmark, out error);
|
if (benchmark != null && _waterLevels长江!=null)
|
{
|
layoutControlGroup2.Text = string.Format
|
("长江水位: 暂时认为潮汐查询的数据( 就是成行基准,如不是,需要修正),网站返回备注是:{0}",
|
benchmark);
|
var base_level = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.RiverWaterLevelBase;
|
if (Math.Abs(base_level) > 0.1)
|
{
|
List<Model.TimeWaterLevel> waterLevels长江xz = new List<Model.TimeWaterLevel>();
|
foreach(var m in _waterLevels长江)
|
{
|
Model.TimeWaterLevel m2 = new Model.TimeWaterLevel(m);
|
m2.Level += base_level;
|
waterLevels长江xz.Add(m2);
|
}
|
this._waterLevels长江 = waterLevels长江xz;
|
}
|
|
|
return true;
|
}
|
else
|
{
|
layoutControlGroup2.Text = "长江水位:"+ error;
|
return false;
|
}
|
}
|
catch (Exception ex)
|
{
|
error = ex.Message;
|
}
|
finally
|
{
|
WaitFrmHelper.HideWaitForm(this);
|
if (!string.IsNullOrEmpty(error))
|
{
|
MessageBox.Show(error);
|
}
|
}
|
return false;
|
}
|
|
|
private void bbi显示长江水位曲线_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (!Initial长江水位())
|
return;
|
|
ViewRealTimeRiverWaterLevelDlg frm = new ViewRealTimeRiverWaterLevelDlg();
|
frm.SetBindingData(_waterLevels长江);
|
frm.Show();
|
}
|
private void layoutControlGroup2_CustomButtonUnchecked(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e)
|
{
|
if (_isInitial长江水位Chart)
|
return;
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
_isInitial长江水位Chart = true;
|
viewRealTimeRiverWaterLevelCtrl1.SetBindingData3Day(rangeStartTime, rangeEndTime);
|
//viewRealTimeRiverWaterLevelCtrl1.SetStripRange();
|
}
|
private bool _isInitial长江水位Chart = false;
|
private void bbi长江水位_油猴插件输入_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
InputRiverWaterLevelData油猴Dlg frm = new InputRiverWaterLevelData油猴Dlg();
|
frm.SetDay(this.dateEditDay.DateTime);
|
if (frm.ShowDialog() == DialogResult.OK)
|
{
|
this._waterLevels长江 = frm.GetWaterLevels长江();
|
}
|
}
|
|
private void btnRefresh水位_Click(object sender, EventArgs e)
|
{
|
//if (imageComboWL.SelectedIndex == 0)
|
//{
|
Initial长江水位();
|
//}
|
//else
|
//{
|
// InputRiverWaterLevelData油猴Dlg frm = new InputRiverWaterLevelData油猴Dlg();
|
// frm.SetDay(this.dateEditDay.DateTime);
|
// if (frm.ShowDialog() == DialogResult.OK)
|
// {
|
// this._waterLevels长江 = frm.GetWaterLevels长江();
|
// }
|
//}
|
|
}
|
|
|
#endregion
|
private void layoutControlGroup7_CustomButtonClick(object sender,
|
DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e)
|
{
|
var btn = e.Button as DevExpress.XtraEditors.ButtonsPanelControl.GroupBoxButton;
|
if (btn == null || btn.Tag == null)
|
return;
|
|
if (btn.Tag.ToString() == "Export")
|
{
|
SaveFileDialog dlg = new SaveFileDialog();
|
dlg.Title = "导出信息列表";
|
dlg.FileName = "信息列表.xls";
|
dlg.Filter = "excel文件 (*.xls)|*.xls";
|
if (dlg.ShowDialog() == DialogResult.OK)
|
this.gridControl1.ExportToXls(dlg.FileName);
|
}
|
if (btn.Tag.ToString() == "Empty")
|
{
|
this._allAnaPrjs.Clear();
|
this.bindingSource1.ResetBindings(false);
|
}
|
}
|
|
|
private void RefreshPrjRangeTime(AnaPrj anaPrj)
|
{
|
if (anaPrj == null)
|
return;
|
DateTime rangeStartTime, rangeEndTime;
|
GetAnaRangeTime(out rangeStartTime, out rangeEndTime);
|
SetPrjItemSpanTimeDlg frm = new SetPrjItemSpanTimeDlg();
|
frm.SetDay(rangeStartTime, rangeEndTime);
|
frm.SetBindingData(anaPrj);
|
frm.OnRefreshData += (name,list) =>
|
{
|
anaPrj.Name = name;
|
RereshPrjTimeSpan(anaPrj, list);
|
};
|
if (frm.ShowDialog() == DialogResult.OK)
|
{
|
|
}
|
}
|
}
|
}
|