| | |
| | | public ScadaDiffVerifyPage() |
| | | { |
| | | InitializeComponent(); |
| | | this.PageTitle.Caption = "工况均差验证"; |
| | | PageTitle.Caption = "工况均差验证"; |
| | | |
| | | this.repDateEdit.ShowToday = false; |
| | | this.repDateEdit.ShowMonthHeaders = true; |
| | | this.repDateEdit.CalendarView = DevExpress.XtraEditors.Repository.CalendarView.Vista; |
| | | this.repDateEdit.VistaCalendarInitialViewStyle = DevExpress.XtraEditors.VistaCalendarInitialViewStyle.YearView; |
| | | this.repDateEdit.VistaCalendarViewStyle = DevExpress.XtraEditors.VistaCalendarViewStyle.YearView; |
| | | this.repDateEdit.Mask.EditMask = "yyyy-MM"; |
| | | this.repDateEdit.Mask.UseMaskAsDisplayFormat = true; |
| | | this.barEditDate.EditValue = DateTime.Now.AddMonths(-1); //DateTime.Now.AddYears(-1); |
| | | 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 = DateTime.Now.AddMonths(-1); //DateTime.Now.AddYears(-1); |
| | | |
| | | this.equipmentExTreeListCtrl1.FocusedChangedEvent += EquipmentExTreeListCtrl1_FocusedChangedEvent; ; |
| | | this.monitorDataSourcesTreeList.FocusedChangedEvent += MonitorDataSourcesTreeList1_FocusedChangedEvent; |
| | | equipmentExTreeListCtrl1.FocusedChangedEvent += EquipmentExTreeListCtrl1_FocusedChangedEvent; ; |
| | | monitorDataSourcesTreeList.FocusedChangedEvent += MonitorDataSourcesTreeList1_FocusedChangedEvent; |
| | | |
| | | this.gridView1.SetNormalView(); |
| | | gridView1.SetNormalView(); |
| | | //this.colUpdateHeadDiff.Visible = false; |
| | | InitialChart(); |
| | | } |
| | |
| | | public VerifyViewModel(Model.PumpSignalRecord rhs) : base(rhs) { } |
| | | public VerifyViewModel(Model.PumpSignalRecord rhs, DateTime dateTime) : base(rhs) |
| | | { |
| | | this.Time = dateTime; |
| | | Time = dateTime; |
| | | } |
| | | |
| | | [Display(Name = "时间", Order = 0)] |
| | | public DateTime Time { get; set; } |
| | | public DateTime Time { get; set; } |
| | | |
| | | [Display(Name = "曲线功率", Order = 11)] |
| | | public double InterPower { get; set; } |
| | |
| | | /// </summary> |
| | | public void InitialChart() |
| | | { |
| | | _diagram = this.chartControl1.Diagram as XYDiagram; |
| | | _diagram = chartControl1.Diagram as XYDiagram; |
| | | _diagram.EnableAxisXScrolling = true; |
| | | _diagram.EnableAxisYScrolling = true; |
| | | _diagram.EnableAxisXZooming = true; |
| | |
| | | _secondaryAxisYHead = _diagram.SecondaryAxesY[0]; |
| | | |
| | | |
| | | this.chartControl1.RuntimeHitTesting = true; |
| | | this.chartControl1.CrosshairOptions.ShowArgumentLine = false; |
| | | this.chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True; |
| | | this.chartControl1.Legend.MarkerMode = LegendMarkerMode.CheckBoxAndMarker; |
| | | this.chartControl1.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right; |
| | | chartControl1.RuntimeHitTesting = true; |
| | | chartControl1.CrosshairOptions.ShowArgumentLine = false; |
| | | chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True; |
| | | chartControl1.Legend.MarkerMode = LegendMarkerMode.CheckBoxAndMarker; |
| | | chartControl1.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public override void InitialDataSource() |
| | | { |
| | | this.chartControl1.BeginInit(); |
| | | this.chartControl1.Series.Clear(); |
| | | this.chartControl1.EndInit(); |
| | | chartControl1.BeginInit(); |
| | | chartControl1.Series.Clear(); |
| | | chartControl1.EndInit(); |
| | | |
| | | this.equipmentExTreeListCtrl1.SetBindingData(); |
| | | this.monitorDataSourcesTreeList.SetBindingData(); |
| | | equipmentExTreeListCtrl1.SetBindingData(); |
| | | monitorDataSourcesTreeList.SetBindingData(); |
| | | } |
| | | |
| | | private void MonitorDataSourcesTreeList1_FocusedChangedEvent(Model.MonitorDataSources obj) |
| | | { |
| | | _monitorDataSources = obj; |
| | | } |
| | | |
| | | |
| | | private void EquipmentExTreeListCtrl1_FocusedChangedEvent(Model.Equipment obj) |
| | | { |
| | | _equipment = obj; |
| | | _equipment = obj; |
| | | } |
| | | |
| | | //验证 |
| | | private void barBtnVerify_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) |
| | | { |
| | | this.memoInfo.Text = string.Empty; |
| | | if (this.barEditDate.EditValue == null) |
| | | memoInfo.Text = string.Empty; |
| | | if (barEditDate.EditValue == null) |
| | | { |
| | | XtraMessageBox.Show("请选择时间!"); |
| | | return; |
| | | } |
| | | if (_monitorDataSources == null || _equipment == null) |
| | | return; |
| | | var lays = this.chartControl1.ShowOverlay(); |
| | | this.chartControl1.BeginInit(); |
| | | this.chartControl1.Series.Clear(); |
| | | this.chartControl1.EndInit(); |
| | | var lays = chartControl1.ShowOverlay(); |
| | | chartControl1.BeginInit(); |
| | | chartControl1.Series.Clear(); |
| | | chartControl1.EndInit(); |
| | | _verifyViewModelList = new List<VerifyViewModel>(); |
| | | |
| | | var pump = new BLL.Equipment().GetChildPumpByEnginePumpID(_equipment.ID); |
| | | |
| | | var date = (DateTime)this.barEditDate.EditValue; |
| | | var date = (DateTime)barEditDate.EditValue; |
| | | var packet = new BLL.StationSignalRecordPacket().Get(_monitorDataSources.ID, _equipment.BelongID, date.Year, date.Month); |
| | | var stationSignalRecords = packet?.StationSignalRecords?.ToList(); |
| | | if (stationSignalRecords == null || !stationSignalRecords.Any()) |
| | |
| | | LegendText = pump.SortCode + "-扬程" |
| | | }; |
| | | |
| | | var verifyViewModelList= Verify(pump.RatedParas.Nr, curveInfo, _verifyViewModelList); |
| | | |
| | | var verifyViewModelList = Verify(pump.RatedParas.Nr, curveInfo, _verifyViewModelList); |
| | | |
| | | var rpm_diff_dict = new Dictionary<double, double>(); |
| | | var new_verify_vm_rpm_group = verifyViewModelList.GroupBy(x => Math.Round(x.Rpm)).OrderBy(x => x.Key); |
| | | if (new_verify_vm_rpm_group != null && new_verify_vm_rpm_group.Any()) |
| | |
| | | var str = new StringBuilder(); |
| | | foreach (var group in new_verify_vm_rpm_group) |
| | | { |
| | | var points = group.Where(x => Math.Abs(x.HeadDiff) <10)?.ToList(); |
| | | var points = group.Where(x => Math.Abs(x.HeadDiff) < 10)?.ToList(); |
| | | if (points != null && points.Any()) |
| | | { |
| | | var head_diff_avg = points.Average(x => x.HeadDiff); |
| | |
| | | rpm_diff_dict.Add(group.Key, head_diff_avg); |
| | | } |
| | | } |
| | | this.memoInfo.Text = str.ToString(); |
| | | memoInfo.Text = str.ToString(); |
| | | } |
| | | |
| | | foreach (var record in verifyViewModelList) |
| | | { |
| | | |
| | | |
| | | if (record.Flag > 18) |
| | | { |
| | | if (record.FlowRate < 1) |
| | |
| | | { |
| | | continue; |
| | | } |
| | | var rpm = record.Rpm; |
| | | var rpm = record.Rpm; |
| | | rpm = Math.Round(rpm); |
| | | if (rpm_diff_dict.ContainsKey(rpm)) |
| | | { |
| | | { |
| | | var update_head = rpm_diff_dict[rpm]; |
| | | record.UpdateHeadDiff = VerifyUpdate(pump.RatedParas.Nr, curveInfo, update_head, record); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | this.chartControl1.Series.Add(seriesPower); |
| | | chartControl1.Series.Add(seriesPower); |
| | | if (pump.SortCode > 19) |
| | | { |
| | | this.chartControl1.Series.Add(seriesHead); |
| | | chartControl1.Series.Add(seriesHead); |
| | | } |
| | | |
| | | |
| | | lays.Close(); |
| | | lays.Close(); |
| | | |
| | | |
| | | this.verifyViewModelBindingSource.DataSource = verifyViewModelList; |
| | | this.verifyViewModelBindingSource.ResetBindings(false); |
| | | verifyViewModelBindingSource.DataSource = verifyViewModelList; |
| | | verifyViewModelBindingSource.ResetBindings(false); |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | |
| | | var time = record.Time; |
| | | var flowRate = record.FlowRate; |
| | |
| | | var curveQhPoints50 = curveInfo.CurveQH.DefinePoints?.Select(x => new Model.CurvePoint(x.X, x.Y + update_head)).ToList(); |
| | | var curveQh50 = new CurveExpress(curveQhPoints50, Model.eCurveFitType.FourM, true); |
| | | |
| | | var flowRate = record.FlowRate; |
| | | var flowRate = record.FlowRate; |
| | | Model.CurveExpress curveQH; |
| | | curveQH = Model.CurveCalcuHelper.CalculateSimilarQH(curveQh50, Nr, record.Rpm); |
| | | curveQH = Model.CurveCalcuHelper.CalculateSimilarQH(curveQh50, Nr, record.Rpm); |
| | | if (curveQH == null) |
| | | return default; |
| | | |
| | | if (record.Flag > 19) |
| | | { |
| | | var inter_head = curveQH.GetFitPointY(flowRate); |
| | | head_diff =Math.Round(record.Head - inter_head,2); |
| | | head_diff = Math.Round(record.Head - inter_head, 2); |
| | | } |
| | | |
| | | return head_diff; |
| | |
| | | //图表点击 |
| | | private void chartControl1_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e) |
| | | { |
| | | if (this.chartControl1.Series.Count < 1) |
| | | if (chartControl1.Series.Count < 1) |
| | | return; |
| | | if (e.Button == System.Windows.Forms.MouseButtons.Left) |
| | | { |
| | | if (_verifyViewModelList != null && _verifyViewModelList.Any()) |
| | | { |
| | | var hitInfo = this.chartControl1.CalcHitInfo(e.Location); |
| | | var hitInfo = chartControl1.CalcHitInfo(e.Location); |
| | | if (hitInfo.InChart) |
| | | { |
| | | var diagramCoordinates = _diagram.PointToDiagram(e.Location); |
| | |
| | | { |
| | | vm = _verifyViewModelList.FindLast(x => x.Time < pt_dt); |
| | | } |
| | | this.propertyGridControl1.Text = "数据"; |
| | | this.propertyGridControl1.SelectedObject = vm; |
| | | propertyGridControl1.Text = "数据"; |
| | | propertyGridControl1.SelectedObject = vm; |
| | | } |
| | | } |
| | | } |
| | |
| | | //导出表格 |
| | | private void barBtnExportExcel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) |
| | | { |
| | | this.gridView1.ExportExcel(); |
| | | gridView1.ExportExcel(); |
| | | } |
| | | |
| | | |
| | | private void barBtnExportWaterDesk_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) |
| | | { |
| | | if (this.barEditDate.EditValue == null) |
| | | if (barEditDate.EditValue == null) |
| | | { |
| | | XtraMessageBox.Show("请选择时间!"); |
| | | return; |
| | | } |
| | | if (_monitorDataSources == null || _equipment == null) |
| | | return; |
| | | |
| | | |
| | | |
| | | var dlg = new SetTimeStepDlg(); |
| | | dlg.SetBindingData(300); |
| | | dlg.ReloadDataEvent += (timeStep) => |
| | | { |
| | | |
| | | WaitFrmHelper.ShowWaitForm("正在导出"); |
| | | ExportWaterDeskHelper.Export(_monitorDataSources.ID, _equipment.BelongID, timeStep); |
| | | |
| | | WaitFrmHelper.ShowWaitForm("正在导出"); |
| | | ExportWaterDeskHelper.Export(_monitorDataSources.ID, _equipment.BelongID, timeStep); |
| | | WaitFrmHelper.HideWaitForm(); |
| | | AlertTool.ShowInfo(System.Windows.Forms.Application.OpenForms[0], "提示", "导出完成!"); |
| | | |
| | |
| | | |
| | | private void barBtnExportEapnet_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) |
| | | { |
| | | if (this.barEditDate.EditValue == null) |
| | | if (barEditDate.EditValue == null) |
| | | { |
| | | XtraMessageBox.Show("请选择时间!"); |
| | | return; |
| | | } |
| | | if (_monitorDataSources == null || _equipment == null) |
| | | return; |
| | | |
| | | |
| | | var date = (DateTime)this.barEditDate.EditValue; |
| | | |
| | | var date = (DateTime)barEditDate.EditValue; |
| | | var year = date.Year; |
| | | var month = date.Month; |
| | | var dlg = new SetTimeStepDlg(); |
| | | dlg.SetBindingData(300); |
| | | dlg.ReloadDataEvent += (timeStep) => |
| | | { |
| | | { |
| | | WaitFrmHelper.ShowWaitForm("正在导出"); |
| | | //ExportEpanetHelper.ExportByDay(_monitorDataSources.ID, _equipment.BelongID, year, month, timeStep); |
| | | ExportEpanetHelper.Export(_monitorDataSources.ID, _equipment.BelongID, timeStep); |
| | | |
| | | |
| | | WaitFrmHelper.HideWaitForm(); |
| | | AlertTool.ShowInfo(System.Windows.Forms.Application.OpenForms[0], "提示", "导出完成!"); |
| | | AlertTool.ShowInfo(System.Windows.Forms.Application.OpenForms[0], "提示", "导出完成!"); |
| | | }; |
| | | dlg.ShowDialog(); |
| | | dlg.ShowDialog(); |
| | | } |
| | | } |
| | | } |