duheng
2024-07-25 713d5218ee2b47c0c92f75c19c49bb7e883cd214
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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();
            
        }
    }
    
}