using DevExpress.Utils.Extensions; using DevExpress.XtraEditors; using DevExpress.XtraGrid.Columns; using System.Data; namespace IStation.Win { public partial class ModelValidView : XtraUserControl { public ModelValidView() { InitializeComponent(); this.gridView1.SetNormalView(); this.gridView2.SetNormalView(); this.gridView2.OptionsView.ColumnAutoWidth = false; foreach (GridColumn col in gridView2.Columns) { col.MinWidth = 60; } var year = 2024; var month = 1; this.dateEditStart.DateTime = new DateTime(year, month, 1); this.dateEditEnd.DateTime = new DateTime(year, month, DateTime.DaysInMonth(year, month)); } private List _schedule_request_list = null; private List _schedule_pump_list = null; private List _schedule_conclusion_list = null; // private List _hydraulic_model_validation_list = null; private List _hydraulic_model_record_list = null; //加载 private void barBtnLoad_Click(object sender, EventArgs e) { this.modelValidViewModelBindingSource.DataSource = null; this.modelScadaValidViewModelBindingSource.DataSource = null; WaitHelper.ShowWaitForm(); var start_time = this.dateEditStart.DateTime; var end_time = this.dateEditEnd.DateTime; _schedule_request_list = new IStation.Service.ScheduleRequest().GetByReceptionTime(start_time, end_time); if (_schedule_request_list == null || !_schedule_request_list.Any()) { WaitHelper.HideWaitForm(); XtraMessageBox.Show("_schedule_request_list is null"); return; } var request_ids= _schedule_request_list.Select(x=>x.ID).ToList(); _schedule_pump_list = new IStation.Service.SchedulePump().GetByRequestIds(request_ids); if (_schedule_pump_list == null || !_schedule_pump_list.Any()) { WaitHelper.HideWaitForm(); XtraMessageBox.Show("_schedule_pump_list is null"); return; } _schedule_conclusion_list = new IStation.Service.ScheduleConclusion().GetByRequestIds(request_ids); if (_schedule_conclusion_list == null || !_schedule_conclusion_list.Any()) { WaitHelper.HideWaitForm(); XtraMessageBox.Show("_schedule_conclusion_list is null"); return; } //_hydraulic_model_validation_list = new IStation.Service.HydraulicModelValidation().GetByDate(start_time, end_time); //if (_hydraulic_model_validation_list == null || !_hydraulic_model_validation_list.Any()) //{ // WaitHelper.HideWaitForm(); // XtraMessageBox.Show("_hydraulic_model_validation_list is null"); // return; //} _hydraulic_model_record_list = new IStation.Service.HydraulicModelRecord().GetByDate(start_time, end_time); if (_hydraulic_model_record_list == null || !_hydraulic_model_record_list.Any()) { WaitHelper.HideWaitForm(); XtraMessageBox.Show("_hydraulic_model_record_list is null"); return; } // SetGridView1(_hydraulic_model_record_list); //SetGridView2(_hydraulic_model_record_list); WaitHelper.HideWaitForm(); } private void SetGridView1(List hydraulic_model_record_list) { var model_valid_vm_list = new List(); if (hydraulic_model_record_list != null && hydraulic_model_record_list.Any()) { foreach (var hydraulic_model_record in hydraulic_model_record_list) { var model_valid_vm = new ModelValidViewModel(); model_valid_vm.Time = hydraulic_model_record.Time; model_valid_vm.ValueType = hydraulic_model_record.ValueType; model_valid_vm.ModelId = hydraulic_model_record.ModelId; model_valid_vm.ScadaId = hydraulic_model_record.ScadaId; model_valid_vm.ModeValue = hydraulic_model_record.ModeValue; model_valid_vm.ScadaValue = hydraulic_model_record.ScadaValue; model_valid_vm.DifferenceValue = hydraulic_model_record.DifferenceValue; model_valid_vm.Round(); model_valid_vm_list.Add(model_valid_vm); } } this.modelValidViewModelBindingSource.DataSource = model_valid_vm_list; this.modelValidViewModelBindingSource.ResetBindings(false); this.gridView1.BestFitColumns(); } private void SetGridView2(List schedule_request_list, List schedule_pump_list, List schedule_conclusion_list, // List hydraulic_model_validation_list, List hydraulic_model_record_list) { var schedule_pump_group = schedule_pump_list.GroupBy(x => x.RequestID); var schedule_conclusion_group = schedule_conclusion_list.GroupBy(x => x.RequestID); var hydraulic_model_record_group = hydraulic_model_record_list.GroupBy(x => x.Time); var model_scada_valid_vm_list = new List(); var time_list= schedule_request_list.Select(x=>x.ReceptionTime).OrderBy(x=>x).ToList(); foreach (var time in time_list) { var schedule_request = schedule_request_list.Find(x => x.ReceptionTime == time); if (schedule_request == null) continue; var request_id = schedule_request.ID; var schedule_pumps = schedule_pump_group.Where(x => x.Key == request_id).SelectMany(x=>x).ToList(); if (schedule_pumps == null|| !schedule_pumps.Any()) continue; var schedule_conclusions = schedule_conclusion_group .Where(x => x.Key == request_id) .SelectMany(x=>x) .ToDictionary(x=>x.Station); if (schedule_conclusions == null || !schedule_conclusions.Any()) continue; var hydraulic_model_records= hydraulic_model_record_group.Where(x => x.Key == time).SelectMany(x => x).ToList(); if (hydraulic_model_records == null || !hydraulic_model_records.Any()) continue; var vm = new ModelScadaValidViewModel(); vm.Time=time; vm.R1 = schedule_request.WaterLevel1; vm.R2 = rhs.R2; vm.R3 = rhs.R3; vm.RPump21 = rhs.RPump21; vm.RPump22 = rhs.RPump22; vm.RPump23 = rhs.RPump23; vm.RPump24 = rhs.RPump24; vm.RPump25 = rhs.RPump25; vm.RPump26 = rhs.RPump26; vm.RPump27 = rhs.RPump27; vm.DN2700P = rhs.DN2700P; vm.DN2400P = rhs.DN2400P; vm.JD1P = rhs.JD1P; vm.JD2P = rhs.JD2P; vm.JD3P = rhs.JD3P; vm.Pump11P = rhs.Pump11P; vm.Pump12P = rhs.Pump12P; vm.Pump13P = rhs.Pump13P; vm.Pump14P = rhs.Pump14P; vm.Pump15P = rhs.Pump15P; vm.Pump16P = rhs.Pump16P; vm.Pump17P = rhs.Pump17P; vm.Pump18P = rhs.Pump18P; vm.Pump21P = rhs.Pump21P; vm.Pump22P = rhs.Pump22P; vm.Pump23P = rhs.Pump23P; vm.Pump24P = rhs.Pump24P; vm.Pump25P = rhs.Pump25P; vm.Pump26P = rhs.Pump26P; vm.Pump27P = rhs.Pump27P; vm.DN2700Ps = rhs.DN2700Ps; vm.DN2400Ps = rhs.DN2400Ps; vm.JD1Ps = rhs.JD1Ps; vm.JD2Ps = rhs.JD2Ps; vm.JD3Ps = rhs.JD3Ps; vm.Pump11Ps = rhs.Pump11Ps; vm.Pump12Ps = rhs.Pump12Ps; vm.Pump13Ps = rhs.Pump13Ps; vm.Pump14Ps = rhs.Pump14Ps; vm.Pump15Ps = rhs.Pump15Ps; vm.Pump16Ps = rhs.Pump16Ps; vm.Pump17Ps = rhs.Pump17Ps; vm.Pump18Ps = rhs.Pump18Ps; vm.Pump21Ps = rhs.Pump21Ps; vm.Pump22Ps = rhs.Pump22Ps; vm.Pump23Ps = rhs.Pump23Ps; vm.Pump24Ps = rhs.Pump24Ps; vm.Pump25Ps = rhs.Pump25Ps; vm.Pump26Ps = rhs.Pump26Ps; vm.Pump27Ps = rhs.Pump27Ps; vm.DN2700F = rhs.DN2700F; vm.DN2400F = rhs.DN2400F; vm.JD1F = rhs.JD1F; vm.JD2F = rhs.JD2F; vm.JD3F = rhs.JD3F; vm.Pump21F = rhs.Pump21F; vm.Pump22F = rhs.Pump22F; vm.Pump23F = rhs.Pump23F; vm.Pump24F = rhs.Pump24F; vm.Pump25F = rhs.Pump25F; vm.Pump26F = rhs.Pump26F; vm.Pump27F = rhs.Pump27F; vm.DN2700Fs = rhs.DN2700Fs; vm.DN2400Fs = rhs.DN2400Fs; vm.JD1Fs = rhs.JD1Fs; vm.JD2Fs = rhs.JD2Fs; vm.JD3Fs = rhs.JD3Fs; vm.Pump21Fs = rhs.Pump21Fs; vm.Pump22Fs = rhs.Pump22Fs; vm.Pump23Fs = rhs.Pump23Fs; vm.Pump24Fs = rhs.Pump24Fs; vm.Pump25Fs = rhs.Pump25Fs; vm.Pump26Fs = rhs.Pump26Fs; vm.Pump27Fs = rhs.Pump27Fs; vm.Pump11 = rhs.Pump11; vm.Pump12 = rhs.Pump12; vm.Pump13 = rhs.Pump13; vm.Pump14 = rhs.Pump14; vm.Pump15 = rhs.Pump15; vm.Pump16 = rhs.Pump16; vm.Pump17 = rhs.Pump17; vm.Pump18 = rhs.Pump18; vm.Pump21 = rhs.Pump21; vm.Pump22 = rhs.Pump22; vm.Pump23 = rhs.Pump23; vm.Pump24 = rhs.Pump24; vm.Pump25 = rhs.Pump25; vm.Pump26 = rhs.Pump26; vm.Pump27 = rhs.Pump27; } this.modelScadaValidViewModelBindingSource.DataSource = model_scada_valid_vm_list; this.modelValidViewModelBindingSource.ResetBindings(false); this.gridView2.BestFitColumns(); } } }