From 9f5c4e73475b0b5fef244fd468d02bacbf1dadd1 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Thu, 18 Jun 2020 10:50:44 +0200 Subject: [PATCH] ResultsBrowser: 1 WR13 IP addr.updated, 2 default DbType=MySql, 3 changes in progress. --- Results/DB.cs | 9 +- ResultsBrowser/CQCriteria.cs | 1 + .../Forms/CustomQuerySpecificationForm.cs | 9 +- ResultsBrowser/ResultsBrowserWnd.cs | 273 +++++++++++------- 4 files changed, 182 insertions(+), 110 deletions(-) diff --git a/Results/DB.cs b/Results/DB.cs index ecfea110c..3f7666bf6 100644 --- a/Results/DB.cs +++ b/Results/DB.cs @@ -66,13 +66,13 @@ namespace Results switch (dbType) { default: - case Users.Entities.DBType.SQLite: - cfg = cfg.Database(SQLiteConfiguration.Standard.UsingFile(connectionString)); - break; case Users.Entities.DBType.MySql: cfg = cfg.Database(MySQLConfiguration.Standard.ConnectionString(connectionString)); break; - } + case Users.Entities.DBType.SQLite: + cfg = cfg.Database(SQLiteConfiguration.Standard.UsingFile(connectionString)); + break; + } cfg = cfg.Mappings(m => m.FluentMappings.AddFromAssemblyOf()); @@ -311,6 +311,7 @@ namespace Results batch.TestRslts = session.QueryOver() .Where(x => (x.Batch.Id == batch.Id)) .List(); + batch.WaterMeters = session.QueryOver() .Where(x => (x.Batch.Id == batch.Id)) .List(); diff --git a/ResultsBrowser/CQCriteria.cs b/ResultsBrowser/CQCriteria.cs index cb30e2e46..11c15b95a 100644 --- a/ResultsBrowser/CQCriteria.cs +++ b/ResultsBrowser/CQCriteria.cs @@ -14,6 +14,7 @@ namespace ResultsBrowser ListOfSerialNumbers, WZTypeIdAndTimePeriod, ProducedWithinTimePeriod, + BenchAndBatchNr, Count, } diff --git a/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs b/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs index 72c3f2d06..932ccec0f 100644 --- a/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs +++ b/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs @@ -39,6 +39,7 @@ namespace ResultsBrowser.Forms //queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.ListOfSerialNumbers, "Všetky vodomery so sériovými číslami podľa zadaného zoznamu")); queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.WZTypeIdAndTimePeriod, "Všetky vodomery so zadaným WZTypeID vyrobené v zadanom časovom období")); queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.ProducedWithinTimePeriod, "Všetky vodomery vyrobené v zadanom časovom období")); + queryTypeComboBox.Items.Add(new CQSelectionItem(CQCriteria.BenchAndBatchNr, "Stanica a číslo dávky")); queryTypeComboBox.Text = "Všetky vodomery vyrobené v zadanom časovom období"; destinationFileTextBox.Text = string.Format("vysledky_hladania_{0:ddMMyyyy_HHmm}.csv", DateTime.Now); @@ -68,7 +69,8 @@ namespace ResultsBrowser.Forms /// Update UI elements visibility inputListGroupBox.Enabled = (CQCriteria == CQCriteria.ListOfOrders) || (CQCriteria == CQCriteria.ListOfPcbNumbers) || - (CQCriteria == CQCriteria.ListOfSerialNumbers); + (CQCriteria == CQCriteria.ListOfSerialNumbers) || + (CQCriteria == CQCriteria.BenchAndBatchNr); timePeriodGroupBox.Enabled = (CQCriteria == CQCriteria.WZTypeIdAndTimePeriod) || (CQCriteria == CQCriteria.ProducedWithinTimePeriod); @@ -78,6 +80,11 @@ namespace ResultsBrowser.Forms parameterGroupBox.Enabled = true; parameterNameLabel.Text = "WZ Type ID"; } + else if (CQCriteria == CQCriteria.BenchAndBatchNr) + { + parameterGroupBox.Enabled = true; + parameterNameLabel.Text = "Test bench number (e.g. 10 for WR10)"; + } else { parameterGroupBox.Enabled = false; diff --git a/ResultsBrowser/ResultsBrowserWnd.cs b/ResultsBrowser/ResultsBrowserWnd.cs index c0fdb5f4d..7c61613a0 100644 --- a/ResultsBrowser/ResultsBrowserWnd.cs +++ b/ResultsBrowser/ResultsBrowserWnd.cs @@ -28,8 +28,8 @@ namespace ResultsBrowser IList waterMeters; - DateTime timePeriodStart; - DateTime timePeriodEnd; + DateTime timePeriodStart; + DateTime timePeriodEnd; static IList tbfComponents; static IList tbfDevices; @@ -47,9 +47,9 @@ namespace ResultsBrowser tbfComponents = new List(); tbfDevices = new List(); - timePeriodStart = new DateTime(0); - timePeriodEnd = new DateTime(0); - } + timePeriodStart = new DateTime(0); + timePeriodEnd = new DateTime(0); + } private void ResultsBrowserWnd_Load(object sender, EventArgs e) { @@ -102,15 +102,15 @@ namespace ResultsBrowser checkBox6.Visible = !string.IsNullOrEmpty(checkBox6.Text); } - string BenchName() - { - return checkBox1.Checked ? Program.LocalSettings.Bench1 - : checkBox2.Checked ? Program.LocalSettings.Bench2 - : checkBox3.Checked ? Program.LocalSettings.Bench3 - : checkBox4.Checked ? Program.LocalSettings.Bench4 + string BenchName() + { + return checkBox1.Checked ? Program.LocalSettings.Bench1 + : checkBox2.Checked ? Program.LocalSettings.Bench2 + : checkBox3.Checked ? Program.LocalSettings.Bench3 + : checkBox4.Checked ? Program.LocalSettings.Bench4 : checkBox5.Checked ? Program.LocalSettings.Bench5 : Program.LocalSettings.Bench6; - } + } void Localize() { @@ -118,19 +118,19 @@ namespace ResultsBrowser resultsGroupBox.Text = Strings.Query_results; settingsBtn.Text = Strings.Settings; testBenchesGroupBox.Text = Strings.Test_benches; - - clearFiltersBtn.Text = Strings.Clear_filters; + + clearFiltersBtn.Text = Strings.Clear_filters; addFilterBtn.Text = Strings.Add_filter; - formatOfResultsBtn.Text = Strings.Format_of_results; - printerConfigBtn.Text = Strings.Configure_printer; - loadConfigBtn.Text = Strings.Load_filters; + formatOfResultsBtn.Text = Strings.Format_of_results; + printerConfigBtn.Text = Strings.Configure_printer; + loadConfigBtn.Text = Strings.Load_filters; saveConfigBtn.Text = Strings.Save_filters; - - executeQueryBtn.Text = Strings.Execute_query; + + executeQueryBtn.Text = Strings.Execute_query; exportQueryResultsBtn.Text = Strings.Export_query_results; printQueryResultsBtn.Text = Strings.Print_query_results; - - statisticsBtn.Text = Strings.Statistics; + + statisticsBtn.Text = Strings.Statistics; } private void settingsBtn_Click(object sender, EventArgs e) @@ -176,40 +176,40 @@ namespace ResultsBrowser } } - private void formatOfResultsBtn_Click(object sender, EventArgs e) - { - Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg(); - dlg.MetersKind = Config.Entities.MetersKind.Single; - dlg.SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(filtersConfig.ResultItems); + private void formatOfResultsBtn_Click(object sender, EventArgs e) + { + Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg(); + dlg.MetersKind = Config.Entities.MetersKind.Single; + dlg.SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(filtersConfig.ResultItems); - if (dlg.ShowDialog() == DialogResult.OK) - { - filtersConfig.ResultItems = Results.WMeterRsltItemSpec.ToStrArray(dlg.SelectedItems); - RedrawResults(); - } - } + if (dlg.ShowDialog() == DialogResult.OK) + { + filtersConfig.ResultItems = Results.WMeterRsltItemSpec.ToStrArray(dlg.SelectedItems); + RedrawResults(); + } + } - private void printerConfigBtn_Click(object sender, EventArgs e) - { - Forms.PrinterConfigDlg dlg = new Forms.PrinterConfigDlg - { - PrinterClass = filtersConfig.PrinterClass, - PrinterCfg = filtersConfig.PrinterCfg - }; + private void printerConfigBtn_Click(object sender, EventArgs e) + { + Forms.PrinterConfigDlg dlg = new Forms.PrinterConfigDlg + { + PrinterClass = filtersConfig.PrinterClass, + PrinterCfg = filtersConfig.PrinterCfg + }; - if (dlg.ShowDialog() == DialogResult.OK) - { - filtersConfig.PrinterClass = dlg.PrinterClass; - filtersConfig.PrinterCfg = dlg.PrinterCfg; - } - } + if (dlg.ShowDialog() == DialogResult.OK) + { + filtersConfig.PrinterClass = dlg.PrinterClass; + filtersConfig.PrinterCfg = dlg.PrinterCfg; + } + } private void loadConfigBtn_Click(object sender, EventArgs e) { - OpenFileDialog dlg = new OpenFileDialog(); - dlg.Filter = string.Format("{0} (*.qry)|*.qry|{1} (*.*)|*.*", Strings.Query_files, Strings.All_files); - if (dlg.ShowDialog() == DialogResult.OK) - { + OpenFileDialog dlg = new OpenFileDialog(); + dlg.Filter = string.Format("{0} (*.qry)|*.qry|{1} (*.*)|*.*", Strings.Query_files, Strings.All_files); + if (dlg.ShowDialog() == DialogResult.OK) + { LoadConfigFromFile(dlg.FileName); } } @@ -269,8 +269,8 @@ namespace ResultsBrowser private void executeQueryBtn_Click(object sender, EventArgs e) { - timePeriodStart = new DateTime(0); - timePeriodEnd = new DateTime(0); + timePeriodStart = new DateTime(0); + timePeriodEnd = new DateTime(0); try { @@ -291,11 +291,11 @@ namespace ResultsBrowser foreach (var filter in filters) { - if (filter is DateFilter) - { - timePeriodStart = (filter as DateFilter).From; - timePeriodEnd = (filter as DateFilter).To; - } + if (filter is DateFilter) + { + timePeriodStart = (filter as DateFilter).From; + timePeriodEnd = (filter as DateFilter).To; + } waterMeters2 = filter.ExecuteQuery(sessions, waterMeters); waterMeters = waterMeters2; } @@ -364,10 +364,10 @@ namespace ResultsBrowser if (dlg.ShowDialog() == DialogResult.OK) { - try - { - using (TextWriter writer = new StreamWriter(dlg.FileName, false, System.Text.Encoding.UTF8)) - { + try + { + using (TextWriter writer = new StreamWriter(dlg.FileName, false, System.Text.Encoding.UTF8)) + { for (int i = 0; i < items.Count; i++) { writer.Write(items[i].Caption); @@ -397,10 +397,10 @@ namespace ResultsBrowser } } } - catch (Exception exc) - { + catch (Exception exc) + { MessageBox.Show(exc.Message, Strings.Error_exporting_results, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } + } } } @@ -448,11 +448,11 @@ namespace ResultsBrowser IComponent component = printerFactory.GetComponent(printerCfg, tbfComponents); IResultsPrinter printer = component as IResultsPrinter; - if (printer== null) + if (printer == null) { MessageBox.Show(Strings.No_printer_defined); return; - } + } tbfComponents.Clear(); tbfDevices.Clear(); @@ -493,7 +493,7 @@ namespace ResultsBrowser { if (waterMeters == null || waterMeters.Count == 0) return; - IList items = Results.WMeterRsltItemSpec.FromStrArray(filtersConfig.ResultItems); + IList items = Results.WMeterRsltItemSpec.FromStrArray(filtersConfig.ResultItems); /// /// Statistics options @@ -529,24 +529,24 @@ namespace ResultsBrowser } - /// - /// Updates component factory - /// - /// Component class name - /// Reference to a factory - /// true when factory changed - IComponentFactory GetFactory(string className) - { - if (!string.IsNullOrEmpty(className)) - { - foreach (var fac in TbfComponents.Factories) - { - if (fac.ClassName == className) return fac; - } - } + /// + /// Updates component factory + /// + /// Component class name + /// Reference to a factory + /// true when factory changed + IComponentFactory GetFactory(string className) + { + if (!string.IsNullOrEmpty(className)) + { + foreach (var fac in TbfComponents.Factories) + { + if (fac.ClassName == className) return fac; + } + } - return null; - } + return null; + } private void customQueryButton_Click(object sender, EventArgs e) { @@ -639,7 +639,6 @@ namespace ResultsBrowser return; } - /// Add this test bench to the list of test benches if it was still missing if (!testBenches.Contains(testBenchId)) testBenches.Add(testBenchId); } @@ -734,20 +733,11 @@ namespace ResultsBrowser /// SUEZ specific switch (testId) { - case -2: - oraD.AdjErrA4 = error; - break; - case -1: - oraD.AdjErr = error; - break; - case 5: - oraD.Q3LrErr = error; - break; - case 10: - oraD.Q3RlErr = error; - break; - default: - break; + case -2: oraD.AdjErrA4 = error; break; + case -1: oraD.AdjErr = error; break; + case 5: oraD.Q3LrErr = error; break; + case 10: oraD.Q3RlErr = error; break; + default: break; } } dr.Close(); @@ -756,6 +746,78 @@ namespace ResultsBrowser oracleConnection.Close(); } + else if (dlg.CQCriteria == CQCriteria.BenchAndBatchNr) + { + switch (dlg.IntParameter) + { + case 10: Results.DB.ConnectionString = "SERVER=10.42.130.69; DATABASE=st-wr10-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 11: Results.DB.ConnectionString = "SERVER=10.42.129.27; DATABASE=st-wr11-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 13: Results.DB.ConnectionString = "SERVER=10.42.130.52; DATABASE=st-wr13-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 15: Results.DB.ConnectionString = "SERVER=10.42.130.71; DATABASE=st-wr15-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 14: Results.DB.ConnectionString = "SERVER=10.42.130.72; DATABASE=st-wr14-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 18: Results.DB.ConnectionString = "SERVER=10.42.130.165; DATABASE=st-wr18-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 19: Results.DB.ConnectionString = "SERVER=10.42.128.159; DATABASE=st-wr19-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 20: Results.DB.ConnectionString = "SERVER=10.42.130.76; DATABASE=st-wr20-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 21: Results.DB.ConnectionString = "SERVER=10.42.128.201; DATABASE=st-wr21-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + default: Results.DB.ConnectionString = string.Empty; break; + } + Results.DB.DbType = Users.Entities.DBType.MySql; + + string[] fields = dlg.InputList.Split(new char[] { ',' }); + int[] batchNrs = new int[fields.Length]; + int batchNr; + for (int i = 0; i < batchNrs.Length; i++) if (int.TryParse(fields[i], out batchNr)) batchNrs[i] = batchNr; + + IList waterMeters = new List(); + if (!string.IsNullOrEmpty(Results.DB.ConnectionString)) + { + ISession session = Results.DB.CreateSession(); + + for (int i = 0; i < batchNrs.Length; i++) + { + var batches = session.QueryOver() + .Where(x => (x.BatchNr == batchNrs[i])) + .List(); + if (batches.Count == 1) + { + var wms = session.QueryOver() + .Where(x => (x.Batch == batches[0])) + .List(); + foreach (var wm in wms) waterMeters.Add(wm); + } + } + } + + consoleTextBox.Text += "Collecting water meters\r\n"; + foreach (var waterMeter in waterMeters) + { + oracleConnection = new OracleConnection("Data Source=STARA01.WORLD;User Id=deltachef;Password=deltachef;"); + oracleConnection.Open(); + + OracleCommand cmd = new OracleCommand("select AUFTRAGSNUMMER, MAX_PRUEFINDEX, PREFIX, ZAEHLERNUMMER from VT_ZAEHLER_PD where VT_FERNUM = :1 AND ANBID = 4 order by ZAEHLERNUMMER", oracleConnection); + cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Varchar2, Value = waterMeter.SerialNr }); + + OracleDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + int i = 0; + string queryResult = dr.GetString(i++); + int maxPruefIx = dr.GetInt32(i++); + int testBenchId = maxPruefIx / 100; + maxPruefIx = maxPruefIx % 100; + string prefix = dr.GetString(i++); + int sn = dr.GetInt32(i++); + + if (sn == -1) continue; + + /// Create 'OraData' object and add it to 'oraDatas' list + oraDatas.Add(new OraData() { PO = queryResult, PcbNr = waterMeter.SerialNr, TestBenchId = testBenchId, MaxPruefIx = maxPruefIx, Prefix = prefix, SN = sn }); + + /// Add this test bench to the list of test benches if it was still missing + if (!testBenches.Contains(testBenchId)) testBenches.Add(testBenchId); + } + } + } else if (dlg.CQCriteria == CQCriteria.WZTypeIdAndTimePeriod) { } @@ -795,18 +857,19 @@ namespace ResultsBrowser /// Test bench databases switch (testBenchId) { - case 5: Results.DB.ConnectionString = "SERVER=10.42.130.69; DATABASE=st-wr10-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; - case 6: Results.DB.ConnectionString = "SERVER=10.42.129.27; DATABASE=st-wr11-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; - case 8: Results.DB.ConnectionString = "SERVER=10.42.128.61; DATABASE=st-wr13-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; - case 9: Results.DB.ConnectionString = "SERVER=10.42.130.71; DATABASE=st-wr15-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; - case 10: Results.DB.ConnectionString = "SERVER=10.42.130.72; DATABASE=st-wr14-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 5: Results.DB.ConnectionString = "SERVER=10.42.130.69; DATABASE=st-wr10-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 6: Results.DB.ConnectionString = "SERVER=10.42.129.27; DATABASE=st-wr11-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 8: Results.DB.ConnectionString = "SERVER=10.42.130.52; DATABASE=st-wr13-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 9: Results.DB.ConnectionString = "SERVER=10.42.130.71; DATABASE=st-wr15-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 10: Results.DB.ConnectionString = "SERVER=10.42.130.72; DATABASE=st-wr14-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; case 11: Results.DB.ConnectionString = "SERVER=10.42.130.165; DATABASE=st-wr18-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; case 12: Results.DB.ConnectionString = "SERVER=10.42.128.159; DATABASE=st-wr19-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; - case 13: Results.DB.ConnectionString = "SERVER=10.42.130.76; DATABASE=st-wr20-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 13: Results.DB.ConnectionString = "SERVER=10.42.130.76; DATABASE=st-wr20-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; case 14: Results.DB.ConnectionString = "SERVER=10.42.128.201; DATABASE=st-wr21-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; default: Results.DB.ConnectionString = string.Empty; break; } #endif + Results.DB.DbType = Users.Entities.DBType.MySql; if (!string.IsNullOrEmpty(Results.DB.ConnectionString)) { @@ -854,7 +917,7 @@ namespace ResultsBrowser consoleTextBox.Text += Environment.NewLine; if (session != null) session.Close(); - } + } } consoleTextBox.Text += "End reading additional data from MySQL\r\n";