using System.Collections.Generic;
|
using System;
|
using System.Drawing.Drawing2D;
|
using System.IO;
|
using System.Text;
|
using System.Linq;
|
using System.Runtime.InteropServices.ComTypes;
|
using DevExpress.XtraCharts.Native;
|
using DevExpress.Utils.MVVM;
|
|
namespace IStation.WinFrmUI.Monitor
|
{
|
public partial class HistoryDataDlg : DocumentPage
|
{
|
public HistoryDataDlg()
|
{
|
InitializeComponent();
|
this.PageTitle.Caption = "历史数据";
|
this.SurfaceGuid = new SurfaceGuid()
|
{
|
Modular = eModular.Basic,
|
Function = this.PageTitle.Caption
|
};
|
this.gridView1.SetNormalView();
|
this.gridView1.OptionsView.ShowDetailButtons = true;
|
this.gridView1.OptionsDetail.ShowDetailTabs = false;
|
}
|
|
|
private List<HistoryDataHelper> _historyDatas =new List<HistoryDataHelper>();
|
string connect1;
|
string connect2;
|
string connect3;
|
string connect4;
|
string connect5;
|
|
List<HistoryDataHelper> filteredList = new List<HistoryDataHelper>(); //过滤选择后绑定的list
|
//初始化
|
private void HistoryDataDlg_Load(object sender, System.EventArgs e)
|
{
|
WaitFrmHelper.ShowWaitForm();
|
HistoryDataHelper historyDataHelper = new HistoryDataHelper();
|
filteredList = historyDataHelper.GetHistoryData();
|
foreach (var item in filteredList)
|
{
|
string[] arr1 = item.pump1.Split(new char[] { ';' });
|
if (arr1.Length > 1)
|
connect1 = arr1[0] + Environment.NewLine + arr1[1];
|
else connect1 = arr1[0];
|
string[] arr2 = item.pump2.Split(new char[] { ';' });
|
if (arr2.Length > 1)
|
connect2 = arr2[0]+ Environment.NewLine + arr2[1];
|
else connect2 = arr2[0];
|
string[] arr3 = item.pump3.Split(new char[] { ';' });
|
if (arr3.Length > 1)
|
connect3 = arr3[0] + Environment.NewLine + arr3[1];
|
else connect3 = arr3[0];
|
string[] arr4 = item.pump4.Split(new char[] { ';' });
|
if (arr4.Length > 1)
|
connect4 = arr4[0] + Environment.NewLine + arr4[1];
|
else connect4 = arr4[0];
|
string[] arr5 = item.pump5.Split(new char[] { ';' });
|
if (arr5.Length > 1)
|
connect5 = arr5[0] + Environment.NewLine + arr5[1];
|
else connect5 = arr5[0];
|
var a = new HistoryDataHelper
|
{
|
DateTime = item.DateTime,
|
electricity = item.electricity,
|
water = item.water,
|
pump1 = connect1,
|
pump2 = connect2,
|
pump3 = connect3,
|
pump4 = connect4,
|
pump5 = connect5,
|
};
|
_historyDatas.Add(a);
|
connect1 = null; connect2=null; connect3=null; connect4=null;
|
connect5= null;
|
}
|
RefreshByDay();
|
WaitFrmHelper.HideWaitForm();
|
}
|
|
|
//刷新时间
|
private void BtnRefresh_Click(object sender, EventArgs e)
|
{
|
RefreshByDay();
|
}
|
|
private void RefreshByDay()
|
{
|
HistoryDataHelper historyDataHelper = new HistoryDataHelper();
|
string Starttime=this.BtnStartYear.EditValue + "/"+this.BtnStartMonth.EditValue;
|
int daysInMonth = DateTime.DaysInMonth(Convert.ToInt32( BtnEndYear.EditValue), Convert.ToInt32( BtnEndMonth.EditValue));
|
// 构建新的日期对象,将日期设置为该月的最后一天
|
DateTime EndTimeLastDay = new DateTime(Convert.ToInt32(BtnEndYear.EditValue), Convert.ToInt32(BtnEndMonth.EditValue), daysInMonth);
|
filteredList = _historyDatas
|
.Where(item => item.DateTime >= Convert.ToDateTime( Starttime) && item.DateTime <=Convert.ToDateTime(EndTimeLastDay))
|
.ToList();
|
this.HistorybindingSource.DataSource = filteredList;
|
this.HistorybindingSource.ResetBindings(true);
|
TimeSpan timeSpan1=TimeSpan.FromHours(0);
|
TimeSpan timeSpan2 = TimeSpan.FromHours(0);
|
TimeSpan timeSpan3 = TimeSpan.FromHours(0); ;
|
TimeSpan timeSpan4 = TimeSpan.FromHours(0); ;
|
TimeSpan timeSpan5 = TimeSpan.FromHours(0);
|
double arevageElectricity=0; //平均用电量
|
double waterElectricity = 0; //平均取水量
|
foreach (var item in filteredList)
|
{
|
arevageElectricity += item.electricity;
|
}
|
foreach (var item in filteredList)
|
{
|
waterElectricity += item.water;
|
}
|
var timeList=historyDataHelper.GetDataModel(filteredList);
|
foreach (var item in timeList)
|
{
|
foreach (var time in item.timespan1)
|
{
|
timeSpan1+= Convert.ToDateTime( time.EndTime) -Convert.ToDateTime( time.StartTime);
|
}
|
foreach (var time in item.timespan2)
|
{
|
timeSpan2 += Convert.ToDateTime(time.EndTime) - Convert.ToDateTime(time.StartTime);
|
}
|
foreach (var time in item.timespan3)
|
{
|
timeSpan3 += Convert.ToDateTime(time.EndTime) - Convert.ToDateTime(time.StartTime);
|
}
|
foreach (var time in item.timespan4)
|
{
|
timeSpan4 += Convert.ToDateTime(time.EndTime) - Convert.ToDateTime(time.StartTime);
|
}
|
foreach (var time in item.timespan5)
|
{
|
timeSpan5 += Convert.ToDateTime(time.EndTime) - Convert.ToDateTime(time.StartTime);
|
}
|
}
|
this.TimeSpan1.Text = Math.Round(timeSpan1.TotalHours/timeList.Count,0).ToString();
|
this.TimeSpan2.Text = Math.Round(timeSpan2.TotalHours / timeList.Count, 0).ToString();
|
this.TimeSpan3.Text = Math.Round(timeSpan3.TotalHours / timeList.Count, 0).ToString();
|
this.TimeSpan4.Text = Math.Round(timeSpan4.TotalHours / timeList.Count, 0).ToString();
|
this.TimeSpan5.Text = Math.Round(timeSpan5.TotalHours / timeList.Count, 0).ToString();
|
|
this.arevageWater.Text= Math.Round( waterElectricity/ filteredList.Count,2).ToString();
|
this.arevageElectricity.Text = Math.Round(arevageElectricity/filteredList.Count, 2).ToString();
|
|
}
|
}
|
|
}
|