From 1d5b344c8be498c9989f3fe2e9846b1dcc919cb8 Mon Sep 17 00:00:00 2001
From: Shuxia Ning <NingShuxia0927@outlook.com>
Date: 星期二, 06 八月 2024 17:29:23 +0800
Subject: [PATCH] 累计运行时长更新

---
 Test/IStation.Win/View/CorrectionFactorView.cs |  871 +++++++++++++++++++--------------------------------------
 1 files changed, 290 insertions(+), 581 deletions(-)

diff --git a/Test/IStation.Win/View/CorrectionFactorView.cs b/Test/IStation.Win/View/CorrectionFactorView.cs
index cb2e356..52b1717 100644
--- a/Test/IStation.Win/View/CorrectionFactorView.cs
+++ b/Test/IStation.Win/View/CorrectionFactorView.cs
@@ -1,8 +1,5 @@
 锘縰sing DevExpress.XtraEditors;
-using IStation.Epanet;
-using IStation.Epanet.Enums;
-using System.Data;
-using System.Text;
+using IStation.Test.Init;
 
 namespace IStation.Win
 {
@@ -14,20 +11,15 @@
             this.layoutControl1.SetupLayoutControl();
             this.bandedGridView1.SetNormalView();
             this.bandedGridView1.OptionsView.ColumnAutoWidth = false;
-            this.gridView2.SetNormalView();
+            this.bandedGridView2.SetNormalView();
+            this.bandedGridView2.OptionsView.ColumnAutoWidth = false;
+
             this.dtDay.SetOnlyShowDate();
+            this.dtDay.DateTime = new DateTime(2024, 3, 2);
 
-            this.dtDay.DateTime = new DateTime(2024, 6, 5);
-            
 
-            this.colTime.Visible = true;
-            this.colTotalFlow1.Visible = false;
-            this.colTotalHead1.Visible = false;
-            this.colRunFlags1.Visible = false;
-
-            this.colTotalFlow2.Visible = true;
-            this.colTotalHead2.Visible = true;
-            this.colRunFlags2.Visible = true;
+            this.gbSum.Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Left;
+            this.gbSum1.Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Left;
 
             ShowWL(false);
             ShowFlow(false);
@@ -38,13 +30,28 @@
             ShowFlow(false);
             ShowPump(true);
             ShowPressure(true);
+            ShowScada(false);
+            ShowModel(false);
+
+            this.cekStation1.Checked = true;
+            this.cekStation2.Checked = false;
+
         }
 
+        #region Show
+
+        private void ShowScada(bool v)
+        {
+            this.gbScada.Visible = v;
+            this.gbScada1.Visible = v;
+        }
+        private void ShowModel(bool v)
+        {
+            this.gbModel.Visible = v;
+            this.gbModel1.Visible = v;
+        }
         private void ShowWL(bool v)
-        { 
-            this.colR1.Visible = v;
-            this.colR2.Visible = v;
-            this.colR3.Visible = v;
+        {
             this.colRPump21.Visible = v;
             this.colRPump22.Visible = v;
             this.colRPump23.Visible = v;
@@ -52,7 +59,12 @@
             this.colRPump25.Visible = v;
             this.colRPump26.Visible = v;
             this.colRPump27.Visible = v;
+
+            this.colR1.Visible = v;
+            this.colR2.Visible = v;
+            this.colR3.Visible = v;
         }
+
         private void ShowFlow(bool v)
         {
             this.colDN2400F.Visible = v;
@@ -86,14 +98,9 @@
             this.colPump26FDiff.Visible = v;
             this.colPump27FDiff.Visible = v;
 
-            if (v)
-            {
-                return;
-            }
             this.colJD1FDiff.Visible = v;
             this.colJD2FDiff.Visible = v;
             this.colJD3FDiff.Visible = v;
-
 
             this.colJD1FM.Visible = v;
             this.colJD2FM.Visible = v;
@@ -103,85 +110,80 @@
             this.colJD1F.Visible = v;
             this.colJD2F.Visible = v;
             this.colJD3F.Visible = v;
-        }  
+        }
         private void ShowPressure(bool v)
-        {   
+        {
             this.colDN2400P.Visible = v;
             this.colDN2700P.Visible = v;
-            this.colPump21P.Visible = v;
-            this.colPump22P.Visible = v;
-            this.colPump23P.Visible = v;
-            this.colPump24P.Visible = v;
-            this.colPump25P.Visible = v;
-            this.colPump26P.Visible = v;
-            this.colPump27P.Visible = v;
+            this.colPump21P.Visible = false;
+            this.colPump22P.Visible = false;
+            this.colPump23P.Visible = false;
+            this.colPump24P.Visible = false;
+            this.colPump25P.Visible = false;
+            this.colPump26P.Visible = false;
+            this.colPump27P.Visible = false;
 
 
             this.colDN2400PM.Visible = v;
             this.colDN2700PM.Visible = v;
-            this.colPump21PM.Visible = v;
-            this.colPump22PM.Visible = v;
-            this.colPump23PM.Visible = v;
-            this.colPump24PM.Visible = v;
-            this.colPump25PM.Visible = v;
-            this.colPump26PM.Visible = v;
-            this.colPump27PM.Visible = v;
+            this.colPump21PM.Visible = false;
+            this.colPump22PM.Visible = false;
+            this.colPump23PM.Visible = false;
+            this.colPump24PM.Visible = false;
+            this.colPump25PM.Visible = false;
+            this.colPump26PM.Visible = false;
+            this.colPump27PM.Visible = false;
 
-             
+
             this.colDN2400PDiff.Visible = v;
             this.colDN2700PDiff.Visible = v;
-            this.colPump21PDiff.Visible = v;
-            this.colPump22PDiff.Visible = v;
-            this.colPump23PDiff.Visible = v;
-            this.colPump24PDiff.Visible = v;
-            this.colPump25PDiff.Visible = v;
-            this.colPump26PDiff.Visible = v;
-            this.colPump27PDiff.Visible = v;
+            this.colPump21PDiff.Visible = false;
+            this.colPump22PDiff.Visible = false;
+            this.colPump23PDiff.Visible = false;
+            this.colPump24PDiff.Visible = false;
+            this.colPump25PDiff.Visible = false;
+            this.colPump26PDiff.Visible = false;
+            this.colPump27PDiff.Visible = false;
 
-            if (v)
-            {
-                return;
-            }
+
             this.colJD1P.Visible = v;
             this.colJD2P.Visible = v;
             this.colJD3P.Visible = v;
-            this.colPump11P.Visible = v;
-            this.colPump12P.Visible = v;
-            this.colPump13P.Visible = v;
-            this.colPump14P.Visible = v;
-            this.colPump15P.Visible = v;
-            this.colPump16P.Visible = v;
-            this.colPump17P.Visible = v;
-            this.colPump18P.Visible = v;
+            this.colPump11P.Visible = false;
+            this.colPump12P.Visible = false;
+            this.colPump13P.Visible = false;
+            this.colPump14P.Visible = false;
+            this.colPump15P.Visible = false;
+            this.colPump16P.Visible = false;
+            this.colPump17P.Visible = false;
+            this.colPump18P.Visible = false;
 
 
             this.colJD1PM.Visible = v;
             this.colJD2PM.Visible = v;
             this.colJD3PM.Visible = v;
-            this.colPump11PM.Visible = v;
-            this.colPump12PM.Visible = v;
-            this.colPump13PM.Visible = v;
-            this.colPump14PM.Visible = v;
-            this.colPump15PM.Visible = v;
-            this.colPump16PM.Visible = v;
-            this.colPump17PM.Visible = v;
-            this.colPump18PM.Visible = v;
-
-
+            this.colPump11PM.Visible = false;
+            this.colPump12PM.Visible = false;
+            this.colPump13PM.Visible = false;
+            this.colPump14PM.Visible = false;
+            this.colPump15PM.Visible = false;
+            this.colPump16PM.Visible = false;
+            this.colPump17PM.Visible = false;
+            this.colPump18PM.Visible = false;
 
             this.colJD1PDiff.Visible = v;
             this.colJD2PDiff.Visible = v;
             this.colJD3PDiff.Visible = v;
-            this.colPump11PDiff.Visible = v;
-            this.colPump12PDiff.Visible = v;
-            this.colPump13PDiff.Visible = v;
-            this.colPump14PDiff.Visible = v;
-            this.colPump15PDiff.Visible = v;
-            this.colPump16PDiff.Visible = v;
-            this.colPump17PDiff.Visible = v;
-            this.colPump18PDiff.Visible = v;
+            this.colPump11PDiff.Visible = false;
+            this.colPump12PDiff.Visible = false;
+            this.colPump13PDiff.Visible = false;
+            this.colPump14PDiff.Visible = false;
+            this.colPump15PDiff.Visible = false;
+            this.colPump16PDiff.Visible = false;
+            this.colPump17PDiff.Visible = false;
+            this.colPump18PDiff.Visible = false;
 
-        } 
+        }
         private void ShowPump(bool v)
         {
             this.colPump21.Visible = v;
@@ -191,7 +193,6 @@
             this.colPump25.Visible = v;
             this.colPump26.Visible = v;
             this.colPump27.Visible = v;
-
 
             this.colPump21M.Visible = v;
             this.colPump22M.Visible = v;
@@ -210,11 +211,6 @@
             this.colPump27Diff.Visible = v;
 
 
-            if (v)
-            {
-                return;
-            }
-             
             this.colPump11.Visible = v;
             this.colPump12.Visible = v;
             this.colPump13.Visible = v;
@@ -243,142 +239,19 @@
             this.colPump18Diff.Visible = v;
         }
 
-        private List<ScadaScheduleViewModel> _scada_vm_list = null;
-        private List<CorrectionFactorViewModel> _correction_factor_vm_list = null;
+        #endregion
 
 
-        //璋冨害
-        private void btnSchedule_Click(object sender, EventArgs e)
-        {
-            var service_station = new Service.Station();
-            var service_schedule_config = new Service.ScheduleConfig();
-            var hydraulic_model_file = System.IO.Path.Combine(
-                Settings.ParasHelper.LocalFile.DataFolderDirectory,
-                Settings.ParasHelper.LocalFile.HydraulicModelFile);
+        #region dict
 
-            _scada_vm_list = new List<ScadaScheduleViewModel>();
-            _correction_factor_vm_list = new List<CorrectionFactorViewModel>();
-
-            var day = this.dtDay.DateTime;
-            var day_value = IStation.DayValueHelper.GetDayValue(day);
-            if (day_value == null)
+        private Dictionary<string, string> _flow_id_mapping_dict1 = new Dictionary<string, string>()
             {
-                XtraMessageBox.Show("鏃犳硶鍔犺浇鏃ユ湡鏁版嵁!");
-                return;
-            }
-            var bol = CorrectionFactorHelper.Analysis(day_value, out Dictionary<string, List<Tuple<int, double, double[]>>> correction_factor_dict);
-            if (!bol)
-            {
-                XtraMessageBox.Show("鏃犳硶鍔犺浇淇绯绘暟!");
-                return;
-            }
-            if (correction_factor_dict == null || !correction_factor_dict.Any())
-            {
-                XtraMessageBox.Show("鏃犳硶鍔犺浇淇绯绘暟!");
-                return;
-            }
+                {"Pjd1","SFJD1"},
+                {"Pjd2","SFJD2"},
+                {"Pjd3","SFJD3"},
+        };
 
-            WaitHelper.ShowWaitForm();
-            var time_value_list = day_value.TimeValueList;
-            foreach (var time_value in time_value_list)
-            {
-                var time = time_value.Time;
-                var scada_value_dict = time_value.Value;
-
-                var vm = new ScadaScheduleViewModel();
-                vm.Time = time;
-                vm.R1 = scada_value_dict["R1"];
-                vm.R2 = scada_value_dict["R2"];
-                vm.R3 = scada_value_dict["R3"];
-                vm.RPump21 = scada_value_dict["RPump21"];
-                vm.RPump22 = scada_value_dict["RPump22"];
-                vm.RPump23 = scada_value_dict["RPump23"];
-                vm.RPump24 = scada_value_dict["RPump24"];
-                vm.RPump25 = scada_value_dict["RPump25"];
-                vm.RPump26 = scada_value_dict["RPump26"];
-                vm.RPump27 = scada_value_dict["RPump27"];
-
-
-                vm.JD1P = scada_value_dict["SPJD1"];
-                vm.JD2P = scada_value_dict["SPJD2"];
-                vm.JD3P = scada_value_dict["SPJD3"];
-                vm.Pump11P = scada_value_dict["SPPump11"];
-                vm.Pump12P = scada_value_dict["SPPump12"];
-                vm.Pump13P = scada_value_dict["SPPump13"];
-                vm.Pump14P = scada_value_dict["SPPump14"];
-                vm.Pump15P = scada_value_dict["SPPump15"];
-                vm.Pump16P = scada_value_dict["SPPump16"];
-                vm.Pump17P = scada_value_dict["SPPump17"];
-                vm.Pump18P = scada_value_dict["SPPump18"];
-
-                vm.DN2400P = scada_value_dict["SPDN2400"];
-                vm.DN2700P = scada_value_dict["SPDN2700"];
-                vm.Pump21P = scada_value_dict["SPPump21"];
-                vm.Pump22P = scada_value_dict["SPPump22"];
-                vm.Pump23P = scada_value_dict["SPPump23"];
-                vm.Pump24P = scada_value_dict["SPPump24"];
-                vm.Pump25P = scada_value_dict["SPPump25"];
-                vm.Pump26P = scada_value_dict["SPPump26"];
-                vm.Pump27P = scada_value_dict["SPPump27"];
-
-
-                vm.JD1F = scada_value_dict["SFJD1"];
-                vm.JD2F = scada_value_dict["SFJD2"];
-                vm.JD3F = scada_value_dict["SFJD3"];
-                vm.DN2700F = scada_value_dict["SFDN2700"];
-                vm.DN2400F = scada_value_dict["SFDN2400"];
-                vm.Pump21F = scada_value_dict["SFPump21"];
-                vm.Pump22F = scada_value_dict["SFPump22"];
-                vm.Pump23F = scada_value_dict["SFPump23"];
-                vm.Pump24F = scada_value_dict["SFPump24"];
-                vm.Pump25F = scada_value_dict["SFPump25"];
-                vm.Pump26F = scada_value_dict["SFPump26"];
-                vm.Pump27F = scada_value_dict["SFPump27"];
-
-                vm.Pump11 = scada_value_dict["Pump11"];
-                vm.Pump12 = scada_value_dict["Pump12"];
-                vm.Pump13 = scada_value_dict["Pump13"];
-                vm.Pump14 = scada_value_dict["Pump14"];
-                vm.Pump15 = scada_value_dict["Pump15"];
-                vm.Pump16 = scada_value_dict["Pump16"];
-                vm.Pump17 = scada_value_dict["Pump17"];
-                vm.Pump18 = scada_value_dict["Pump18"];
-
-                vm.Pump21 = scada_value_dict["Pump21"];
-                vm.Pump22 = scada_value_dict["Pump22"];
-                vm.Pump23 = scada_value_dict["Pump23"];
-                vm.Pump24 = scada_value_dict["Pump24"];
-                vm.Pump25 = scada_value_dict["Pump25"];
-                vm.Pump26 = scada_value_dict["Pump26"];
-                vm.Pump27 = scada_value_dict["Pump27"];
-
-                vm.Sum();
-                _scada_vm_list.Add(vm);
-            }
-
-            foreach (var correction_factor_group_item in correction_factor_dict)
-            {
-                var flags = correction_factor_group_item.Key;
-                foreach (var item in correction_factor_group_item.Value)
-                {
-                    var vm = new CorrectionFactorViewModel
-                    {
-                        RunFlags = flags,
-                        Flag = item.Item1,
-                        Avg = item.Item2,
-                        Mode = item.Item3,
-                        ModeDisplay = Yw.Untity.DoubleListHelper.ToString(item.Item3)
-                    };
-                    _correction_factor_vm_list.Add(vm);
-                }
-            }
-
-            this.correctionFactorViewModelBindingSource.DataSource=_correction_factor_vm_list;
-            this.correctionFactorViewModelBindingSource.ResetBindings(false);
-
-            #region init_dict
-
-            var pressure_id_mapping_dict = new Dictionary<string, string>()
+        private Dictionary<string, string> _pressure_id_mapping_dict1 = new Dictionary<string, string>()
             {
                 {"Jjd1","SPJD1"},
                 {"Jjd2","SPJD2"},
@@ -390,7 +263,47 @@
                 {"Jpump15","SPPump15" },
                 {"Jpump16","SPPump16" },
                 {"Jpump17","SPPump17" },
-                {"Jpump18","SPPump18" },
+                {"Jpump18","SPPump18" }
+            };
+
+        private Dictionary<string, string> _pump_id_mapping_dict1 = new Dictionary<string, string>(){
+                { "Pump11" , "Pump11"},
+                { "Pump12" , "Pump12"},
+                { "Pump13" , "Pump13"},
+                { "Pump14" , "Pump14"},
+                { "Pump15" , "Pump15"},
+                { "Pump16" , "Pump16"},
+                { "Pump17" , "Pump17"},
+                { "Pump18" , "Pump18"},
+
+            };
+
+        private Dictionary<int, string> _flag_pattern_dict1 = new(){
+                { GlobalHelper.Flag11 , "Pump11"},
+                { GlobalHelper.Flag12 , "Pump12"},
+                { GlobalHelper.Flag13 , "Pump13"},
+                { GlobalHelper.Flag14 , "Pump14"},
+                { GlobalHelper.Flag15 , "Pump15"},
+                { GlobalHelper.Flag16 , "Pump16"},
+                { GlobalHelper.Flag17 , "Pump17"},
+                { GlobalHelper.Flag18 , "Pump18"},
+        };
+
+        private Dictionary<string, string> _flow_id_mapping_dict2 = new Dictionary<string, string>()
+            {
+                {"Pdn2400","SFDN2400"},
+                {"Pdn2700","SFDN2700"},
+                {"Ppump21","SFPump21"},
+                {"Ppump22","SFPump22"},
+                {"Ppump23","SFPump23"},
+                {"Ppump24","SFPump24"},
+                {"Ppump25","SFPump25"},
+                {"Ppump26","SFPump26"},
+                {"Ppump27","SFPump27"}
+        };
+
+        private Dictionary<string, string> _pressure_id_mapping_dict2 = new Dictionary<string, string>()
+            {
                 {"Jdn2400","SPDN2400"},
                 {"Jdn2700","SPDN2700"},
                 {"Jpump21","SPPump21"},
@@ -401,415 +314,211 @@
                 {"Jpump26","SPPump26"},
                 {"Jpump27","SPPump27"}
             };
-            var flow_id_mapping_dict = new Dictionary<string, string>()
+
+        private Dictionary<string, string> _pump_id_mapping_dict2 = new Dictionary<string, string>(){
+                { "Pump21" , "Pump21"},
+                { "Pump22" , "Pump22"},
+                { "Pump23" , "Pump23"},
+                { "Pump24" , "Pump24"},
+                { "Pump25" , "Pump25"},
+                { "Pump26" , "Pump26"},
+                { "Pump27" , "Pump27"}
+            };
+
+        private Dictionary<int, string> _flag_pattern_dict2 = new(){
+                { GlobalHelper.Flag21 ,"Pump21" },
+                { GlobalHelper.Flag22 ,"Pump22" },
+                { GlobalHelper.Flag23 ,"Pump23" },
+                { GlobalHelper.Flag24 ,"Pump24" },
+                { GlobalHelper.Flag25 ,"Pump25" },
+                { GlobalHelper.Flag26 ,"Pump26" },
+                { GlobalHelper.Flag27 ,"Pump27" }
+        };
+
+        #endregion
+
+        //璋冨害
+        private void btnSchedule_Click(object sender, EventArgs e)
+        {
+            //var day = this.dtDay.DateTime;
+            //var day_value = DayValueHelper.GetDayValue(day);
+            //if (day_value == null)
+            //{
+            //    XtraMessageBox.Show("鏃犳硶鍔犺浇鏃ユ湡鏁版嵁!");
+            //    return;
+            //}
+            //this.memoInfo.Text = string.Empty;
+
+            //var day_value_list = new List<DayValue>() { day_value };
+            WaitHelper.ShowWaitForm();
+
+            var msg = ScadaScheduleHelper.Schedule(
+                  //day_value_list,
+                  //this.cekStation1.Checked,
+                  //this.cekStation2.Checked,
+                  out List<Station1ScadaSchedule> all_station1_scada_schedule_list,
+                  out List<Station2ScadaSchedule> all_station2_scada_schedule_list);
+
+            this.station1ScadaScheduleBindingSource.DataSource = all_station1_scada_schedule_list;
+            this.station1ScadaScheduleBindingSource.ResetBindings(false);
+            this.bandedGridView2.BestFitColumns();
+
+            this.station2ScadaScheduleBindingSource.DataSource = all_station2_scada_schedule_list;
+            this.station2ScadaScheduleBindingSource.ResetBindings(false);
+            this.bandedGridView1.BestFitColumns();
+
+            this.memoInfo.Text = msg;
+            WaitHelper.HideWaitForm();
+        } 
+
+        #region event
+
+        private void cekShowScada_CheckedChanged(object sender, EventArgs e)
+        {
+            ShowScada(this.cekShowScada.Checked);
+        }
+
+        private void cekShowModel_CheckedChanged(object sender, EventArgs e)
+        {
+            ShowModel(this.cekShowModel.Checked);
+
+        }
+
+        private void bandedGridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
+        {
+            if (e.CellValue != null)
             {
-                {"Pjd1","SFJD1"},
-                {"Pjd2","SFJD2"},
-                {"Pjd3","SFJD3"},
-                {"Pdn2400","SFDN2400"},
-                {"Pdn2700","SFDN2700"},
-                {"Ppump21","SFPump21"},
-                {"Ppump22","SFPump22"},
-                {"Ppump23","SFPump23"},
-                {"Ppump24","SFPump24"},
-                {"Ppump25","SFPump25"},
-                {"Ppump26","SFPump26"},
-                {"Ppump27","SFPump27"}
-            };
-            var pattern_id_mapping_dict = new Dictionary<string, string>()
-            {
-                {"R3", "R3"},
-                {"R2", "R2"},
-                {"R1", "R1"},
-                {"SFJD1", "SFJD1"},
-                {"SFJD2", "SFJD2"},
-                {"SFJD3", "SFJD3"},
-                {"RPump21", "RPump21"},
-                {"RPump22", "RPump22"},
-                {"RPump23", "RPump23"},
-                {"RPump24", "RPump24"},
-                {"RPump25", "RPump25"},
-                {"RPump26", "RPump26"},
-                {"RPump27", "RPump27"},
-                {"SFPump21", "SFPump21"},
-                {"SFPump22", "SFPump22"},
-                {"SFPump23", "SFPump23"},
-                {"SFPump24", "SFPump24"},
-                {"SFPump25", "SFPump25"},
-                {"SFPump26", "SFPump26"},
-                {"SFPump27", "SFPump27"},
-                {"SFDN2400", "SFDN2400"},
-                {"SFDN2700", "SFDN2700"},
-            };
-            var pump_id_mapping_dict_int = new Dictionary<string, int>(){
-                { "Pump11",GlobalHelper.Flag11},
-                { "Pump12",GlobalHelper.Flag12},
-                { "Pump13",GlobalHelper.Flag13},
-                { "Pump14",GlobalHelper.Flag14},
-                { "Pump15",GlobalHelper.Flag15},
-                { "Pump16",GlobalHelper.Flag16},
-                { "Pump17",GlobalHelper.Flag17},
-                { "Pump18",GlobalHelper.Flag18},
-                { "Pump21",GlobalHelper.Flag21},
-                { "Pump22",GlobalHelper.Flag22},
-                { "Pump23",GlobalHelper.Flag23},
-                { "Pump24",GlobalHelper.Flag24},
-                { "Pump25",GlobalHelper.Flag25},
-                { "Pump26",GlobalHelper.Flag26},
-                { "Pump27",GlobalHelper.Flag27}
-            };
-
-            var pump_pressure_mapping_dict_int = new Dictionary<string, string>(){
-                { "Pump11","Jpump11"},
-                { "Pump12","Jpump12"},
-                { "Pump13","Jpump13"},
-                { "Pump14","Jpump14"},
-                { "Pump15","Jpump15"},
-                { "Pump16","Jpump16"},
-                { "Pump17","Jpump17"},
-                { "Pump18","Jpump18" },
-                { "Pump21","Jpump21"},
-                { "Pump22","Jpump22"},
-                { "Pump23","Jpump23"},
-                { "Pump24","Jpump24"},
-                { "Pump25","Jpump25"},
-                { "Pump26","Jpump26"},
-                { "Pump27","Jpump27"}
-            };
-
-            #endregion
-
-            #region init_config
-
-            var station_info = service_station.Get();
-            var station1 = station_info.Station1;
-            var station2 = station_info.Station2;
-            var station1_same_type_flag_group_first = GlobalHelper.Station1SameTypeFlagGroupFirst;
-            var station2_same_type_flag_group_first = GlobalHelper.Station2SameTypeFlagGroupFirst;
-            var station1_schedule_config = service_schedule_config.GetStation1();
-            var station2_schedule_config = service_schedule_config.GetStation2();
-            var station1_flag_list = GlobalHelper.Station1FlagList;
-            var station2_flag_list = GlobalHelper.Station2FlagList;
-
-            var pump_id_mapping_dict = GlobalHelper.ModelPumpIdMappingDict;
-            var flag_nr_mapping_dict = GlobalHelper.GetFlagNrMappingDict();
-
-            var pump_pattern_custom_dict = new Dictionary<string, double>();
-            var pattern_dict = new Dictionary<string, float[]>();
-            var scada_dict = new Dictionary<string, double>();
-            var pattern_dict_temp = new Dictionary<string, float[]>();
-
-            #endregion
-
-            var helper = new IStation.Algorithm.ScheduleHelper();
-            foreach (var time_value in time_value_list)
-            {
-                var time = time_value.Time;
-                var scada_value_dict = time_value.Value;
-                var vm = _scada_vm_list.Find(x => x.Time == time);
-
-                pump_pattern_custom_dict.Clear();
-                pattern_dict.Clear();
-                scada_dict.Clear();
-
-                foreach (var item in pump_id_mapping_dict_int)
+                if (e.Column == this.colDN2400PDiff || e.Column == this.colDN2700PDiff)
                 {
-                    pump_pattern_custom_dict[item.Key] = 0;
-                }
 
-                foreach (var zy_scada in scada_value_dict)
-                {
-                    var tag = zy_scada.Key;
-                    var value = zy_scada.Value;
-                    foreach (var item in pattern_id_mapping_dict)
+                    var cell_value = e.CellValue.ToString() ?? string.Empty;
+                    if (double.TryParse(cell_value, out double value))
                     {
-                        if (item.Key == tag)
+                        if (Math.Abs(value) > 0.5)
                         {
-                            var pattern_id = item.Key;
-                            var factor = value;
-                            pattern_dict.Add(pattern_id, new float[] { (float)factor });
-                            break;
+                            e.Appearance.ForeColor = Color.Red;
                         }
                     }
 
-                    foreach (var item in flow_id_mapping_dict)
-                    {
-                        if (item.Value != tag)
-                            continue;
-                        scada_dict.Add(tag, value);
-                    }
-
-                    foreach (var item in pressure_id_mapping_dict)
-                    {
-                        if (item.Value != tag)
-                            continue;
-                        var pressure_value = value;
-                        scada_dict.Add(tag, pressure_value);
-                    }
                 }
-
-                var pump_model_scada_diff_dict = new Dictionary<string, double?>(){
-                { "Pump11",vm.Pump11},
-                { "Pump12",vm.Pump12},
-                { "Pump13",vm.Pump13},
-                { "Pump14",vm.Pump14},
-                { "Pump15",vm.Pump15},
-                { "Pump16",vm.Pump16},
-                { "Pump17",vm.Pump17},
-                { "Pump18",vm.Pump18},
-                { "Pump21",vm.Pump21},
-                { "Pump22",vm.Pump22},
-                { "Pump23",vm.Pump23},
-                { "Pump24",vm.Pump24},
-                { "Pump25",vm.Pump25},
-                { "Pump26",vm.Pump26},
-                { "Pump27",vm.Pump27}
-                };
-
-                var target_flow1 = vm.TotalFlow1;
-                var target_head1 = vm.TotalHead1;
-
-                var target_flow2 = vm.TotalFlow2;
-                var target_head2 = vm.TotalHead2;
-
-                CorrectionFactorHelper.OutOpenFlagList(scada_value_dict, out List<int> station1_open_flag_list, out List<int> station2_open_flag_list);
-                CorrectionFactorHelper.OutWaterLevel(scada_value_dict, out Dictionary<int, double> station1_flag_inlet_water_level_dict, out Dictionary<int, double> station2_flag_inlet_water_level_dict);
-
-                helper.Initial(station2_open_flag_list, station2_schedule_config);
-
-
-                if (_correction_factor_vm_list != null && _correction_factor_vm_list.Any())
+                else if
+                        (
+                        e.Column == this.colPump21Diff ||
+                        e.Column == this.colPump22Diff ||
+                        e.Column == this.colPump23Diff ||
+                        e.Column == this.colPump24Diff ||
+                        e.Column == this.colPump25Diff ||
+                        e.Column == this.colPump26Diff ||
+                        e.Column == this.colPump27Diff
+                        )
                 {
-                    var station2_open_flag_list_str = Yw.Untity.IntListHelper.ToString(station2_open_flag_list);
-                    var correction_factor_vm_list = _correction_factor_vm_list.Where(x => x.RunFlags.Equals(station2_open_flag_list_str)).ToList();
-                    if (correction_factor_vm_list != null && correction_factor_vm_list.Any())
+
+                    var cell_value = e.CellValue.ToString() ?? string.Empty;
+                    if (double.TryParse(cell_value, out double value))
                     {
-                        if (this.cekUseMode.Checked)
+                        if (value > 0)
                         {
-                            var correction_factor_dict_diff2 = correction_factor_vm_list.ToDictionary(x => x.Flag, y => y.Mode.FirstOrDefault());
-                            helper.InitCorrectionFactorDict(correction_factor_dict_diff2);
+                            e.Appearance.ForeColor = Color.Red;
                         }
                         else
                         {
-                            var correction_factor_dict_diff2 = correction_factor_vm_list.ToDictionary(x => x.Flag, y => y.Avg);
-                            helper.InitCorrectionFactorDict(correction_factor_dict_diff2);
+                            e.Appearance.ForeColor = Color.Green;
                         }
                     }
                 }
-                var optimal_combine2 = helper.GetOptAnaCombine(station2, station2_same_type_flag_group_first, station2_flag_inlet_water_level_dict, null, target_flow2, target_head2);
-
-                var station2_open_flag_list_bak = station2_open_flag_list.Select(x => x).ToList();
-                if (optimal_combine2 != null)
+                else if
+                       (
+                       e.Column == this.colTotalPowerDiff
+                        )
                 {
-                    station2_open_flag_list = new List<int>();
-                    foreach (var fre_pump in optimal_combine2.AnaFrePumps)
+
+                    var cell_value = e.CellValue.ToString() ?? string.Empty;
+                    if (double.TryParse(cell_value, out double value))
                     {
-                        var flag = fre_pump.Flag;
-                        var modelId = pump_id_mapping_dict[flag];
-                        pump_pattern_custom_dict[modelId] = fre_pump.Frequency / 50;
-                        if (fre_pump.Frequency > 0)
+                        if (value > 0)
                         {
-                            station2_open_flag_list.Add(flag);
+                            e.Appearance.ForeColor = Color.Red;
+                        }
+                        else
+                        {
+                            e.Appearance.ForeColor = Color.Green;
                         }
                     }
                 }
 
-                pattern_dict_temp.Clear();
-                foreach (var item in pattern_dict)
-                    pattern_dict_temp.Add(item.Key, item.Value);
-                foreach (var item in pump_pattern_custom_dict)
-                    pattern_dict_temp.Add(item.Key, new float[] { (float)item.Value });
-
-                var record_list = Verify(999, time, hydraulic_model_file, flow_id_mapping_dict, pressure_id_mapping_dict, pattern_dict_temp, scada_value_dict);
-                var model_value_dict = record_list.ToDictionary(x => x.ScadaId, y => y.ModelValue);
-
-                vm.JD1PM = model_value_dict["SPJD1"];
-                vm.JD2PM = model_value_dict["SPJD2"];
-                vm.JD3PM = model_value_dict["SPJD3"];
-                vm.Pump11PM = model_value_dict["SPPump11"];
-                vm.Pump12PM = model_value_dict["SPPump12"];
-                vm.Pump13PM = model_value_dict["SPPump13"];
-                vm.Pump14PM = model_value_dict["SPPump14"];
-                vm.Pump15PM = model_value_dict["SPPump15"];
-                vm.Pump16PM = model_value_dict["SPPump16"];
-                vm.Pump17PM = model_value_dict["SPPump17"];
-                vm.Pump18PM = model_value_dict["SPPump18"];
-
-                vm.DN2400PM = model_value_dict["SPDN2400"];
-                vm.DN2700PM = model_value_dict["SPDN2700"];
-                vm.Pump21PM = model_value_dict["SPPump21"];
-                vm.Pump22PM = model_value_dict["SPPump22"];
-                vm.Pump23PM = model_value_dict["SPPump23"];
-                vm.Pump24PM = model_value_dict["SPPump24"];
-                vm.Pump25PM = model_value_dict["SPPump25"];
-                vm.Pump26PM = model_value_dict["SPPump26"];
-                vm.Pump27PM = model_value_dict["SPPump27"];
-
-
-                vm.JD1FM = model_value_dict["SFJD1"];
-                vm.JD2FM = model_value_dict["SFJD2"];
-                vm.JD3FM = model_value_dict["SFJD3"];
-
-                vm.DN2400FM = model_value_dict["SFDN2400"];
-                vm.DN2700FM = model_value_dict["SFDN2700"];
-                vm.Pump21FM = model_value_dict["SFPump21"];
-                vm.Pump22FM = model_value_dict["SFPump22"];
-                vm.Pump23FM = model_value_dict["SFPump23"];
-                vm.Pump24FM = model_value_dict["SFPump24"];
-                vm.Pump25FM = model_value_dict["SFPump25"];
-                vm.Pump26FM = model_value_dict["SFPump26"];
-                vm.Pump27FM = model_value_dict["SFPump27"];
-
-                vm.Pump11M = pump_pattern_custom_dict["Pump11"];
-                vm.Pump12M = pump_pattern_custom_dict["Pump12"];
-                vm.Pump13M = pump_pattern_custom_dict["Pump13"];
-                vm.Pump14M = pump_pattern_custom_dict["Pump14"];
-                vm.Pump15M = pump_pattern_custom_dict["Pump15"];
-                vm.Pump16M = pump_pattern_custom_dict["Pump16"];
-                vm.Pump17M = pump_pattern_custom_dict["Pump17"];
-                vm.Pump18M = pump_pattern_custom_dict["Pump18"];
-
-                vm.Pump21M = pump_pattern_custom_dict["Pump21"];
-                vm.Pump22M = pump_pattern_custom_dict["Pump22"];
-                vm.Pump23M = pump_pattern_custom_dict["Pump23"];
-                vm.Pump24M = pump_pattern_custom_dict["Pump24"];
-                vm.Pump25M = pump_pattern_custom_dict["Pump25"];
-                vm.Pump26M = pump_pattern_custom_dict["Pump26"];
-                vm.Pump27M = pump_pattern_custom_dict["Pump27"];
-
-                vm.Set();
             }
 
-            this.scadaScheduleViewModelBindingSource.DataSource = _scada_vm_list;
-            this.scadaScheduleViewModelBindingSource.ResetBindings(false);
-            this.bandedGridView1.BestFitColumns(); 
-            WaitHelper.HideWaitForm();
 
         }
 
-        /// <summary>
-        /// 妯″瀷楠岃瘉
-        /// </summary>  
-        public static List<Model.HydraulicModelRecord> Verify(
-            long verify_id,
-            DateTime verify_time,
-            string verify_file_path,
-            Dictionary<string, string> flow_id_mapping_dict,
-            Dictionary<string, string> pressure_id_mapping_dict,
-            Dictionary<string, float[]> pattern_dict,
-            Dictionary<string, double> scada_dict)
+        private void bandedGridView2_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
         {
-            var hydraulic_record_list = new List<Model.HydraulicModelRecord>();
-            var err = EpanetMethods.ENopen(verify_file_path, "", "");
-            if (err != 0)
+            if (e.CellValue != null)
             {
-                return default;
-            }
-            err = EpanetMethods.ENopenH();
-            if (err != 0)
-            {
-                return default;
-            }
 
-            var model_id_build = new StringBuilder(31);
-            var pattern_init = true;
-            foreach (var pattern in pattern_dict)
-            {
-                var pattern_id = pattern.Key;
-                var pattern_factor_array = pattern.Value;
-                var pattern_factor_array_count = pattern_factor_array.Length == 0 ? 1 : pattern_factor_array.Length;
-                err = EpanetMethods.ENgetpatternindex(pattern_id, out int pattern_index);
-
-                if (err != ErrorCode.Ok)
+                if (e.Column == this.colJD1PDiff || e.Column == this.colJD2PDiff || e.Column == this.colJD3PDiff)
                 {
-                    pattern_init = false;
-                    continue;
-                }
-                err = EpanetMethods.ENsetpattern(pattern_index, pattern_factor_array, pattern_factor_array_count);
-                if (err != ErrorCode.Ok)
-                {
-                    pattern_init = false;
-                    continue;
-                }
-            }
 
-            if (!pattern_init)
-            {
-                return default;
-            }
-
-            EpanetMethods.ENinitH(0);
-            EpanetMethods.ENrunH(out _);
-            EpanetMethods.ENgetcount(CountType.Link, out int link_count);
-            EpanetMethods.ENgetcount(CountType.Node, out int node_count);
-
-            for (int link_index = 1; link_index <= link_count; link_index++)
-            {
-                if (EpanetMethods.ENgetlinkid(link_index, model_id_build) != ErrorCode.Ok)
-                    continue;
-                var model_id = model_id_build.ToString();
-
-                if (flow_id_mapping_dict.ContainsKey(model_id))
-                {
-                    var scada_id = flow_id_mapping_dict[model_id];
-                    var scada_value = scada_dict[scada_id];
-                    EpanetMethods.ENgetlinkvalue(link_index, LinkValue.Flow, out float model_value);
-                    model_value = Math.Abs(model_value);
-
-                    var record = new IStation.Model.HydraulicModelRecord
+                    var cell_value = e.CellValue.ToString() ?? string.Empty;
+                    if (double.TryParse(cell_value, out double value))
                     {
-                        VerificationID = verify_id,
-                        Time = verify_time,
-                        ModelId = model_id,
-                        ScadaId = scada_id,
-                        ValueType = IStation.eValueType.Flow,
-                        ModelValue = (double)model_value,
-                        ScadaValue = scada_value
-                    };
-                    record.DifferenceValue = record.ModelValue - record.ScadaValue;
-                    hydraulic_record_list.Add(record);
+                        if (Math.Abs(value) > 0.5)
+                        {
+                            e.Appearance.ForeColor = Color.Red;
+                        }
+                    }
+
                 }
-
-                EpanetMethods.ENgetlinktype(link_index, out LinkType linkType);
-                if (linkType == LinkType.Pump)
+                else if
+                    (
+                    e.Column == this.colPump11Diff ||
+                    e.Column == this.colPump12Diff ||
+                    e.Column == this.colPump13Diff ||
+                    e.Column == this.colPump14Diff ||
+                    e.Column == this.colPump15Diff ||
+                    e.Column == this.colPump16Diff ||
+                    e.Column == this.colPump17Diff ||
+                    e.Column == this.colPump18Diff
+                    )
                 {
-                    EpanetMethods.ENgetlinkvalue(link_index, LinkValue.HeadLoss, out float val);
-                }
-            }
 
-            for (int node_index = 1; node_index <= node_count; node_index++)
-            {
-                if (EpanetMethods.ENgetnodeid(node_index, model_id_build) != ErrorCode.Ok)
-                    continue;
-                var model_id = model_id_build.ToString();
-
-                if (pressure_id_mapping_dict.ContainsKey(model_id))
-                {
-                    var scada_id = pressure_id_mapping_dict[model_id];
-                    var scada_value = scada_dict[scada_id];
-
-                    EpanetMethods.ENgetnodevalue(node_index, NodeValue.Head, out float model_value);
-
-                    var record = new IStation.Model.HydraulicModelRecord
+                    var cell_value = e.CellValue.ToString() ?? string.Empty;
+                    if (double.TryParse(cell_value, out double value))
                     {
-                        VerificationID = verify_id,
-                        Time = verify_time,
-                        ModelId = model_id,
-                        ScadaId = scada_id,
-                        ValueType = IStation.eValueType.Head,
-                        ModelValue = (double)model_value,
-                        ScadaValue = scada_value
-                    };
-                    record.DifferenceValue = record.ModelValue - record.ScadaValue;
-                    hydraulic_record_list.Add(record);
+                        if (value > 0)
+                        {
+                            e.Appearance.ForeColor = Color.Red;
+                        }
+                        else
+                        {
+                            e.Appearance.ForeColor = Color.Green;
+                        }
+                    }
+                }
+                else if
+                      (
+                      e.Column == this.colTotalPowerDiff1
+                       )
+                {
+
+                    var cell_value = e.CellValue.ToString() ?? string.Empty;
+                    if (double.TryParse(cell_value, out double value))
+                    {
+                        if (value > 0)
+                        {
+                            e.Appearance.ForeColor = Color.Red;
+                        }
+                        else
+                        {
+                            e.Appearance.ForeColor = Color.Green;
+                        }
+                    }
                 }
             }
-
-            EpanetMethods.ENcloseH();
-            return hydraulic_record_list;
         }
 
 
+        #endregion
 
     }
 }

--
Gitblit v1.9.3