ningshuxia
2025-03-31 d321346f204a69b1929cc39098a5d88f44509e7b
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
using DevExpress.Utils.Extensions;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
 
namespace IStation.WinFrmUI.Monitor
{
    public partial class SchedulingAnalysisMgrPage : DocumentPage
    {
        public SchedulingAnalysisMgrPage()
        {
            InitializeComponent();
            this.PageTitle.Caption = "数据整合";
            this.gridView1.SetNormalView();
            //    this.gridView1.OptionsView.AllowCellMerge = true;
            this.stationListCtrl1.FocusedChangedEvent += StationListCtrl1_FocusedChangedEvent;
            this.monitorDataSourcesTreeList1.FocusedChangedEvent += MonitorDataSourcesListCtrl1_FocusedChangedEvent;
            this.barEditDate.EditValue = DateTime.Now.AddYears(-1);
        }
 
        public class CurrentViewModel
        {
            public DateTime Time { get; set; }
            public double TotalFlow { get; set; }
            public double TotalHead { get; set; }
            public int RunCount { get; set; }
            public string RunFlags { get; set; }
        }
 
        private BLL.StationStatisticalRecordPacket _bll = new BLL.StationStatisticalRecordPacket();
        private Model.Station _station = null;
        private Model.MonitorDataSources _monitorDataSources = null;
        private List<CurrentViewModel> _allBindingList = null;
 
        /// <summary>
        /// 清空数据
        /// </summary>
        public void Clear()
        {
            _allBindingList = new List<CurrentViewModel>();
            this.currentViewModelBindingSource.DataSource = _allBindingList;
        }
 
        /// <summary>
        /// 初始化数据
        /// </summary>
        public override void InitialDataSource()
        {
            this.stationListCtrl1.SetBindingData();
            this.monitorDataSourcesTreeList1.SetBindingData();
        }
 
        //泵站变换
        private void StationListCtrl1_FocusedChangedEvent(Model.Station obj)
        {
            _station = obj;
        }
 
        //来源变换
        private void MonitorDataSourcesListCtrl1_FocusedChangedEvent(Model.MonitorDataSources obj)
        {
            _monitorDataSources = obj;
        }
 
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(DateTime date, Model.StationStatisticalRecordPacket packet)
        {
            WaitFrmHelper.ShowWaitForm();
            _allBindingList = new List<CurrentViewModel>();
            if (packet != null)
            {
                var enginePumps = new BLL.Equipment().GetEnginePumpListByBelongTypeAndBelongID(IStation.ObjectType.Station, _station.ID);
                packet.StationStatisticalRecords?.ForEach(record =>
                {
                    var vm = new CurrentViewModel();
                    vm.Time = record.Time;
                    vm.TotalFlow = record.TotalFlow;
                    vm.TotalHead = record.TotalHead;
                    vm.RunCount = record.PumpRunCount;
                    vm.RunFlags = record.PumpRunFlags;
                    _allBindingList.Add(vm);
                });
            }
 
            this.currentViewModelBindingSource.DataSource = _allBindingList;
            this.gridView1.ExpandAllGroups();
            this.gridView1.BestFitColumns();
            WaitFrmHelper.HideWaitForm();
        }
 
 
        #region GridView
 
        ////自定义组名
        //private void gridView1_CustomDrawGroupRow(object sender, DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventArgs e)
        //{
        //    var vm = this.gridView1.GetRow(e.RowHandle) as CurrentViewModel;
        //    var grid = e.Info as GridGroupRowInfo;
        //    grid.GroupText = vm.GroupName;
 
        //}
 
        #endregion
 
        #region 菜单 
 
        //全部展开
        private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.gridView1.ExpandAllGroups();
        }
 
        //全部折叠
        private void barBtnCollapseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.gridView1.CollapseAllGroups();
        }
 
        //检索
        private void barCekSearch_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (this.barCekSearch.Checked)
                this.gridView1.ShowFindPanel();
            else
                this.gridView1.HideFindPanel();
        }
 
        // 刷新数据
        private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            InitialDataSource();
        }
 
        #endregion
 
 
        //整合
        private void barBtnIntegration_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_monitorDataSources == null || _station == null)
                return;
            var packets = _bll.Get(_monitorDataSources.ID, _station.ID);
            if (packets != null && packets.Any())
            {
                if (XtraMessageBox.Show($"已存在整合数据,是否重新整合,?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) != DialogResult.OK)
                    return;
            }
            var dlg = new SetTimeStepDlg();
            dlg.ReloadDataEvent += (timeStep) =>
            {
                packets = _bll.AnalysisAndSave(_monitorDataSources.ID, _station.ID, timeStep);
            };
            dlg.ShowDialog();
        }
 
        //加载
        private void barBtnLoad_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (this.barEditDate.EditValue == null)
            {
                XtraMessageBox.Show("请选择时间!");
                return;
            }
            if (_monitorDataSources == null || _station == null)
                return;
            var date = (DateTime)this.barEditDate.EditValue;
            var packet = _bll.Get(_monitorDataSources.ID, _station.ID, date.Year, date.Month);
            SetBindingData(date, packet);
        }
    }
}