ningshuxia
2025-04-16 a67da735b33be01b24845ce03ae7551cf55ddbbc
02-desktop/WinFrmUI/IStation.WinFrmUI.Monitor/03-WorkingConditionAnalysis/ScadaVerify/ScadaDiffVerifyPage.cs
@@ -14,21 +14,21 @@
        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();
        }
@@ -40,11 +40,11 @@
            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; }
@@ -83,7 +83,7 @@
        /// </summary>
        public void InitialChart()
        {
            _diagram = this.chartControl1.Diagram as XYDiagram;
            _diagram = chartControl1.Diagram as XYDiagram;
            _diagram.EnableAxisXScrolling = true;
            _diagram.EnableAxisYScrolling = true;
            _diagram.EnableAxisXZooming = true;
@@ -98,11 +98,11 @@
            _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>
@@ -110,44 +110,44 @@
        /// </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())
@@ -198,8 +198,8 @@
                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())
@@ -207,7 +207,7 @@
                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);
@@ -215,12 +215,12 @@
                        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)
@@ -237,10 +237,10 @@
                {
                    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);
                }
@@ -252,18 +252,18 @@
                }
            }
            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);
        }
@@ -299,7 +299,7 @@
                    {
                        continue;
                    }
                }
                }
                var time = record.Time;
                var flowRate = record.FlowRate;
@@ -366,16 +366,16 @@
            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;
@@ -390,13 +390,13 @@
        //图表点击
        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);
@@ -409,8 +409,8 @@
                        {
                            vm = _verifyViewModelList.FindLast(x => x.Time < pt_dt);
                        }
                        this.propertyGridControl1.Text = "数据";
                        this.propertyGridControl1.SelectedObject = vm;
                        propertyGridControl1.Text = "数据";
                        propertyGridControl1.SelectedObject = vm;
                    }
                }
            }
@@ -420,28 +420,28 @@
        //导出表格
        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], "提示", "导出完成!");
@@ -452,30 +452,30 @@
        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();
        }
    }
}