using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.Linq; namespace IStation.WinFrmUI.Monitor { public partial class ScadaValueVerifyPage : DocumentPage { public ScadaValueVerifyPage() { InitializeComponent(); PageTitle.Caption = "Scada验证"; repDateEdit.ShowToday = false; repDateEdit.ShowMonthHeaders = true; repDateEdit.CalendarView = DevExpress.XtraEditors.Repository.CalendarView.Vista; repDateEdit.VistaCalendarInitialViewStyle = DevExpress.XtraEditors.VistaCalendarInitialViewStyle.YearView; repDateEdit.VistaCalendarViewStyle = DevExpress.XtraEditors.VistaCalendarViewStyle.YearView; repDateEdit.Mask.EditMask = "yyyy-MM"; repDateEdit.Mask.UseMaskAsDisplayFormat = true; barEditDate.EditValue = new DateTime(2024, 01, 01, 00, 00, 00); advBandedGridView1.SetNormalView(); advBandedGridView2.SetNormalView(); gridView3.SetNormalView(); gridView3.OptionsView.ColumnAutoWidth = false; gridView4.SetNormalView(); gridView4.OptionsView.ColumnAutoWidth = false; repositoryItemDateEdit1.SetShowClock(); repositoryItemDateEdit2.SetShowClock(); barEditStartTime.EditValue = new DateTime(2024, 01, 01, 00, 00, 00); barEditEndTime.EditValue = new DateTime(2024, 05, 31, 23, 59, 59); barCekShowPressure.Checked = true; barCekShowFlow.Checked = true; barCekShowPump.Checked = true; barCekShowWaterLevel.Checked = true; barCekShowSumFlow.Checked = true; barCekShowSumPressure.Checked = true; barCekShowPressureDiff.Checked = true; } List _dayValueList = null; private List _scadaValueValidViewModelList = null; private List _combineStatisticsViewModelList = null; private List _avgStatisticsS1ViewModelList = null; private List _avgStatisticsS2ViewModelList = null; /// /// 加载 /// /// /// private void barBtnLoad_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { WaitFrmHelper.ShowWaitForm(); _dayValueList = DayValueHelper.GetDayValues(); WaitFrmHelper.HideWaitForm(); } /// /// 初始化数据 /// public override void InitialDataSource() { } //验证 private void barBtnVerify_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (barEditDate.EditValue == null) { XtraMessageBox.Show("请选择时间!"); return; } if (_dayValueList == null || !_dayValueList.Any()) { XtraMessageBox.Show("无数据!"); return; } _scadaValueValidViewModelList = new List(); _combineStatisticsViewModelList = new List(); _avgStatisticsS1ViewModelList = new List(); _avgStatisticsS2ViewModelList = new List(); var date = (DateTime)barEditDate.EditValue; var year = date.Year; var month = date.Month; var dayValueList = _dayValueList;//.Where(x => x.Year == year && x.Month == month); foreach (var dayValue in dayValueList) { var timeValueList = dayValue.TimeValueList.OrderBy(x => x.Time); foreach (var timeValue in timeValueList) { var time = timeValue.Time; var valueDict = timeValue.Value; var scadaValueValidViewModel = new ScadaValueValidViewModel(); scadaValueValidViewModel.Time = time; scadaValueValidViewModel.R1 = valueDict["R1"]; scadaValueValidViewModel.R2 = valueDict["R2"]; scadaValueValidViewModel.R3 = valueDict["R3"]; scadaValueValidViewModel.RPump21 = valueDict["RPump21"]; scadaValueValidViewModel.RPump22 = valueDict["RPump22"]; scadaValueValidViewModel.RPump23 = valueDict["RPump23"]; scadaValueValidViewModel.RPump24 = valueDict["RPump24"]; scadaValueValidViewModel.RPump25 = valueDict["RPump25"]; scadaValueValidViewModel.RPump26 = valueDict["RPump26"]; scadaValueValidViewModel.RPump27 = valueDict["RPump27"]; scadaValueValidViewModel.DN2400P = valueDict["SPDN2400"]; scadaValueValidViewModel.DN2700P = valueDict["SPDN2700"]; scadaValueValidViewModel.JD1P = valueDict["SPJD1"]; scadaValueValidViewModel.JD2P = valueDict["SPJD2"]; scadaValueValidViewModel.JD3P = valueDict["SPJD3"]; scadaValueValidViewModel.Pump11P = valueDict["SPPump11"]; scadaValueValidViewModel.Pump12P = valueDict["SPPump12"]; scadaValueValidViewModel.Pump13P = valueDict["SPPump13"]; scadaValueValidViewModel.Pump14P = valueDict["SPPump14"]; scadaValueValidViewModel.Pump15P = valueDict["SPPump15"]; scadaValueValidViewModel.Pump16P = valueDict["SPPump16"]; scadaValueValidViewModel.Pump17P = valueDict["SPPump17"]; scadaValueValidViewModel.Pump18P = valueDict["SPPump18"]; scadaValueValidViewModel.Pump21P = valueDict["SPPump21"]; scadaValueValidViewModel.Pump22P = valueDict["SPPump22"]; scadaValueValidViewModel.Pump23P = valueDict["SPPump23"]; scadaValueValidViewModel.Pump24P = valueDict["SPPump24"]; scadaValueValidViewModel.Pump25P = valueDict["SPPump25"]; scadaValueValidViewModel.Pump26P = valueDict["SPPump26"]; scadaValueValidViewModel.Pump27P = valueDict["SPPump27"]; scadaValueValidViewModel.DN2400F = valueDict["SFDN2400"]; scadaValueValidViewModel.DN2700F = valueDict["SFDN2700"]; scadaValueValidViewModel.JD1F = valueDict["SFJD1"]; scadaValueValidViewModel.JD2F = valueDict["SFJD2"]; scadaValueValidViewModel.JD3F = valueDict["SFJD3"]; scadaValueValidViewModel.Pump21F = valueDict["SFPump21"]; scadaValueValidViewModel.Pump22F = valueDict["SFPump22"]; scadaValueValidViewModel.Pump23F = valueDict["SFPump23"]; scadaValueValidViewModel.Pump24F = valueDict["SFPump24"]; scadaValueValidViewModel.Pump25F = valueDict["SFPump25"]; scadaValueValidViewModel.Pump26F = valueDict["SFPump26"]; scadaValueValidViewModel.Pump27F = valueDict["SFPump27"]; scadaValueValidViewModel.Pump11 = valueDict["Pump11"]; scadaValueValidViewModel.Pump12 = valueDict["Pump12"]; scadaValueValidViewModel.Pump13 = valueDict["Pump13"]; scadaValueValidViewModel.Pump14 = valueDict["Pump14"]; scadaValueValidViewModel.Pump15 = valueDict["Pump15"]; scadaValueValidViewModel.Pump16 = valueDict["Pump16"]; scadaValueValidViewModel.Pump17 = valueDict["Pump17"]; scadaValueValidViewModel.Pump18 = valueDict["Pump18"]; scadaValueValidViewModel.Pump21 = valueDict["Pump21"]; scadaValueValidViewModel.Pump22 = valueDict["Pump22"]; scadaValueValidViewModel.Pump23 = valueDict["Pump23"]; scadaValueValidViewModel.Pump24 = valueDict["Pump24"]; scadaValueValidViewModel.Pump25 = valueDict["Pump25"]; scadaValueValidViewModel.Pump26 = valueDict["Pump26"]; scadaValueValidViewModel.Pump27 = valueDict["Pump27"]; var combineStatisticsViewModel = new CombineStatisticsViewModel(scadaValueValidViewModel); scadaValueValidViewModel.Diff(); scadaValueValidViewModel.Round(); _scadaValueValidViewModelList.Add(scadaValueValidViewModel); combineStatisticsViewModel.Diff(); combineStatisticsViewModel.Round(); combineStatisticsViewModel.Statistics(); _combineStatisticsViewModelList.Add(combineStatisticsViewModel); } } scadaValueValidViewModelBindingSource.DataSource = _scadaValueValidViewModelList; scadaValueValidViewModelBindingSource.ResetBindings(false); advBandedGridView1.BestFitColumns(); combineStatisticsViewModelBindingSource.DataSource = _combineStatisticsViewModelList; combineStatisticsViewModelBindingSource.ResetBindings(false); advBandedGridView2.BestFitColumns(); var combineStatisticsViewModelList = _combineStatisticsViewModelList?.ToList(); if (combineStatisticsViewModelList != null && combineStatisticsViewModelList.Any()) { var minQ = 5000; var maxQ = 140000; var spaceQ = 2500; for (int currentMinQ = minQ; currentMinQ <= maxQ; currentMinQ += spaceQ) { if (currentMinQ == 20000) { } var currentMaxQ = currentMinQ + spaceQ; var combineS1 = combineStatisticsViewModelList .Where(x => x.TotalFlow1 >= currentMinQ && x.TotalFlow1 <= currentMaxQ) .ToList(); if (combineS1 != null && combineS1.Any()) { var combineS1Group = combineS1.GroupBy(x => new { x.RunFlags1, x.RunCount1 }).ToList(); foreach (var item in combineS1Group) { var avg1 = new AvgStatisticsS1ViewModel(); avg1.MinTotalFlow = currentMinQ; avg1.MaxTotalFlow = currentMaxQ; avg1.RunCount = item.Key.RunCount1; avg1.RunFlags = item.Key.RunFlags1; avg1.Pump11PdJD1 = item.Where(x => x.Pump11PdJD1 > 0).Average(x => x.Pump11PdJD1); avg1.Pump12PdJD1 = item.Where(x => x.Pump12PdJD1 > 0).Average(x => x.Pump12PdJD1); avg1.Pump13PdJD1 = item.Where(x => x.Pump13PdJD1 > 0).Average(x => x.Pump13PdJD1); avg1.Pump14PdJD1 = item.Where(x => x.Pump14PdJD1 > 0).Average(x => x.Pump14PdJD1); avg1.Pump15PdJD1 = item.Where(x => x.Pump15PdJD1 > 0).Average(x => x.Pump15PdJD1); avg1.Pump16PdJD1 = item.Where(x => x.Pump16PdJD1 > 0).Average(x => x.Pump16PdJD1); avg1.Pump17PdJD1 = item.Where(x => x.Pump17PdJD1 > 0).Average(x => x.Pump17PdJD1); avg1.Pump18PdJD1 = item.Where(x => x.Pump18PdJD1 > 0).Average(x => x.Pump18PdJD1); avg1.Pump11PdJD2 = item.Where(x => x.Pump11PdJD2 > 0).Average(x => x.Pump11PdJD2); avg1.Pump12PdJD2 = item.Where(x => x.Pump12PdJD2 > 0).Average(x => x.Pump12PdJD2); avg1.Pump13PdJD2 = item.Where(x => x.Pump13PdJD2 > 0).Average(x => x.Pump13PdJD2); avg1.Pump14PdJD2 = item.Where(x => x.Pump14PdJD2 > 0).Average(x => x.Pump14PdJD2); avg1.Pump15PdJD2 = item.Where(x => x.Pump15PdJD2 > 0).Average(x => x.Pump15PdJD2); avg1.Pump16PdJD2 = item.Where(x => x.Pump16PdJD2 > 0).Average(x => x.Pump16PdJD2); avg1.Pump17PdJD2 = item.Where(x => x.Pump17PdJD2 > 0).Average(x => x.Pump17PdJD2); avg1.Pump18PdJD2 = item.Where(x => x.Pump18PdJD2 > 0).Average(x => x.Pump18PdJD2); avg1.Pump11PdJD3 = item.Where(x => x.Pump11PdJD3 > 0).Average(x => x.Pump11PdJD3); avg1.Pump12PdJD3 = item.Where(x => x.Pump12PdJD3 > 0).Average(x => x.Pump12PdJD3); avg1.Pump13PdJD3 = item.Where(x => x.Pump13PdJD3 > 0).Average(x => x.Pump13PdJD3); avg1.Pump14PdJD3 = item.Where(x => x.Pump14PdJD3 > 0).Average(x => x.Pump14PdJD3); avg1.Pump15PdJD3 = item.Where(x => x.Pump15PdJD3 > 0).Average(x => x.Pump15PdJD3); avg1.Pump16PdJD3 = item.Where(x => x.Pump16PdJD3 > 0).Average(x => x.Pump16PdJD3); avg1.Pump17PdJD3 = item.Where(x => x.Pump17PdJD3 > 0).Average(x => x.Pump17PdJD3); avg1.Pump18PdJD3 = item.Where(x => x.Pump18PdJD3 > 0).Average(x => x.Pump18PdJD3); avg1.Count = item.Count(); avg1.Round(); //if (avg1.Pump12PdJD1 < 0) //{ //} _avgStatisticsS1ViewModelList.Add(avg1); } } var combineS2 = combineStatisticsViewModelList .Where(x => x.TotalFlow2 >= currentMinQ && x.TotalFlow2 <= currentMaxQ) .ToList(); if (combineS2 != null && combineS2.Any()) { var combineS2Group = combineS2.GroupBy(x => new { x.RunFlags2, x.RunCount2 }).ToList(); foreach (var item in combineS2Group) { var avg2 = new AvgStatisticsS2ViewModel(); avg2.MinTotalFlow = currentMinQ; avg2.MaxTotalFlow = currentMaxQ; avg2.RunCount = item.Key.RunCount2; avg2.RunFlags = item.Key.RunFlags2; avg2.Pump21PdDN2400 = item.Where(x => x.Pump21PdDN2400 > 0).Average(x => x.Pump21PdDN2400); avg2.Pump22PdDN2400 = item.Where(x => x.Pump22PdDN2400 > 0).Average(x => x.Pump22PdDN2400); avg2.Pump23PdDN2400 = item.Where(x => x.Pump23PdDN2400 > 0).Average(x => x.Pump23PdDN2400); avg2.Pump24PdDN2400 = item.Where(x => x.Pump24PdDN2400 > 0).Average(x => x.Pump24PdDN2400); avg2.Pump25PdDN2400 = item.Where(x => x.Pump25PdDN2400 > 0).Average(x => x.Pump25PdDN2400); avg2.Pump26PdDN2400 = item.Where(x => x.Pump26PdDN2400 > 0).Average(x => x.Pump26PdDN2400); avg2.Pump27PdDN2400 = item.Where(x => x.Pump27PdDN2400 > 0).Average(x => x.Pump27PdDN2400); avg2.Pump21PdDN2700 = item.Where(x => x.Pump21PdDN2700 > 0).Average(x => x.Pump21PdDN2700); avg2.Pump22PdDN2700 = item.Where(x => x.Pump22PdDN2700 > 0).Average(x => x.Pump22PdDN2700); avg2.Pump23PdDN2700 = item.Where(x => x.Pump23PdDN2700 > 0).Average(x => x.Pump23PdDN2700); avg2.Pump24PdDN2700 = item.Where(x => x.Pump24PdDN2700 > 0).Average(x => x.Pump24PdDN2700); avg2.Pump25PdDN2700 = item.Where(x => x.Pump25PdDN2700 > 0).Average(x => x.Pump25PdDN2700); avg2.Pump26PdDN2700 = item.Where(x => x.Pump26PdDN2700 > 0).Average(x => x.Pump26PdDN2700); avg2.Pump27PdDN2700 = item.Where(x => x.Pump27PdDN2700 > 0).Average(x => x.Pump27PdDN2700); avg2.Count = item.Count(); avg2.Round(); _avgStatisticsS2ViewModelList.Add(avg2); } } } _avgStatisticsS1ViewModelList = _avgStatisticsS1ViewModelList.OrderBy(x => x.RunFlags).ToList(); _avgStatisticsS2ViewModelList = _avgStatisticsS2ViewModelList.OrderBy(x => x.RunFlags).ToList(); } avgStatisticsS1ViewModelBindingSource.DataSource = _avgStatisticsS1ViewModelList; gridView3.BestFitColumns(); avgStatisticsS2ViewModelBindingSource.DataSource = _avgStatisticsS2ViewModelList; gridView4.BestFitColumns(); } //刷新 private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { InitialDataSource(); } //导出表格 private void barBtnExportExcel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { gridView1.ExportExcel(); } private void barCekShowPump_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowPump(barCekShowPump.Checked); } private void ShowPump(bool isShow) { gbPump1.Visible = isShow; gbPump2.Visible = isShow; } private void barCekShowWaterLevel_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowWaterLevel(barCekShowWaterLevel.Checked); } private void ShowWaterLevel(bool isShow) { gbWaterLevel1.Visible = isShow; gbWaterLevel2.Visible = isShow; } private void barCekShowFlow_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowFlow(barCekShowFlow.Checked); } private void ShowFlow(bool isShow) { gbFlow2.Visible = isShow; } private void barCekShowPressure_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowPressure(barCekShowPressure.Checked); } private void ShowPressure(bool isShow) { gbPressure1.Visible = isShow; gbPressure2.Visible = isShow; } private void barCekShowPressureDiff_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowPressureDiff(barCekShowPressureDiff.Checked); } private void ShowPressureDiff(bool isShow) { gbSumPressure1Diff.Visible = isShow; gbSumPressure2Diff.Visible = isShow; } private void barCekShowSumFlow_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowSumFlow(barCekShowSumFlow.Checked); } private void ShowSumFlow(bool isShow) { gbSumFlow1.Visible = isShow; gbSumFlow2.Visible = isShow; } private void barCekShowSumPressure_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ShowSumPressure(barCekShowSumPressure.Checked); } private void ShowSumPressure(bool isShow) { gbSumPressure1.Visible = isShow; gbSumPressure2.Visible = isShow; } } }