diff --git a/ResultsBrowser/CQCriteria.cs b/ResultsBrowser/CQCriteria.cs index 11c15b95a..9735bd637 100644 --- a/ResultsBrowser/CQCriteria.cs +++ b/ResultsBrowser/CQCriteria.cs @@ -15,6 +15,7 @@ namespace ResultsBrowser WZTypeIdAndTimePeriod, ProducedWithinTimePeriod, BenchAndBatchNr, + GetListOfUsedProcedures, Count, } diff --git a/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs b/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs index 7ad330645..bb3036680 100644 --- a/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs +++ b/ResultsBrowser/Forms/CustomQuerySpecificationForm.cs @@ -40,6 +40,7 @@ namespace ResultsBrowser.Forms 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.Items.Add(new CQSelectionItem(CQCriteria.GetListOfUsedProcedures, "Zoznam použitých procedúr")); queryTypeComboBox.Text = "Všetky vodomery vyrobené v zadanom časovom období"; destinationFileTextBox.Text = string.Format("vysledky_hladania_{0:ddMMyyyy_HHmm}.csv", DateTime.Now); @@ -73,7 +74,8 @@ namespace ResultsBrowser.Forms (CQCriteria == CQCriteria.BenchAndBatchNr); timePeriodGroupBox.Enabled = (CQCriteria == CQCriteria.WZTypeIdAndTimePeriod) || - (CQCriteria == CQCriteria.ProducedWithinTimePeriod); + (CQCriteria == CQCriteria.ProducedWithinTimePeriod) || + (CQCriteria == CQCriteria.GetListOfUsedProcedures); if (CQCriteria == CQCriteria.WZTypeIdAndTimePeriod) { diff --git a/ResultsBrowser/ResultsBrowserWnd.cs b/ResultsBrowser/ResultsBrowserWnd.cs index 15a5f3414..91bf72ed1 100644 --- a/ResultsBrowser/ResultsBrowserWnd.cs +++ b/ResultsBrowser/ResultsBrowserWnd.cs @@ -739,7 +739,7 @@ namespace ResultsBrowser double flow = dr.GetDouble(i++); /// Q_WZ double error = dr.GetDouble(i++); /// Q_FEHLER bool testPassed = (dr.GetInt32(i++) != 0); -#if true +#if false /// SUEZ specific switch (testId) { @@ -790,15 +790,15 @@ namespace ResultsBrowser case 13: Results.DB.ConnectionString = "SERVER=localhost; DATABASE=st-wr20-r; UID=root; PASSWORD=kraken; CharSet=utf8;"; break; case 14: Results.DB.ConnectionString = "SERVER=localhost; DATABASE=st-wr21-r; UID=root; PASSWORD=kraken; CharSet=utf8;"; break; #else - case 5: Results.DB.ConnectionString = "SERVER=10.42.130.69; DATABASE=st-wr10-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 5: Results.DB.ConnectionString = "SERVER=10.42.129.253; 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 8: Results.DB.ConnectionString = "SERVER=10.42.128.138; DATABASE=st-wr13-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 9: Results.DB.ConnectionString = "SERVER=10.42.130.97; DATABASE=st-wr15-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 10: Results.DB.ConnectionString = "SERVER=10.42.128.146; 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 14: Results.DB.ConnectionString = "SERVER=10.42.128.201; DATABASE=st-wr21-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 14: Results.DB.ConnectionString = "SERVER=10.42.128.150; DATABASE=st-wr21-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; #endif default: Results.DB.ConnectionString = string.Empty; break; } @@ -862,6 +862,11 @@ namespace ResultsBrowser else if (dlg.CQCriteria == CQCriteria.WZTypeIdAndTimePeriod) { } + else if (dlg.CQCriteria == CQCriteria.GetListOfUsedProcedures) + { + testBenches.Add(5); testBenches.Add(6); testBenches.Add(8); testBenches.Add(9); testBenches.Add(10); + testBenches.Add(11); testBenches.Add(12); testBenches.Add(13); testBenches.Add(14); + } else { MessageBox.Show("Query is not supported yet"); @@ -870,6 +875,7 @@ namespace ResultsBrowser consoleTextBox.Text += "Reading additional data from MySQL\r\n"; counter = 0; + IList usedProcedures = new List(); foreach (var testBenchId in testBenches) { if (testBenchId == 4 || (dlg.CQCriteria == CQCriteria.BenchAndBatchNr && testBenchId != dlg.IntParameter)) @@ -898,15 +904,15 @@ 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 5: Results.DB.ConnectionString = "SERVER=10.42.129.253; 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 8: Results.DB.ConnectionString = "SERVER=10.42.128.138; DATABASE=st-wr13-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 9: Results.DB.ConnectionString = "SERVER=10.42.130.97; DATABASE=st-wr15-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 10: Results.DB.ConnectionString = "SERVER=10.42.128.146; 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 14: Results.DB.ConnectionString = "SERVER=10.42.128.201; DATABASE=st-wr21-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; + case 14: Results.DB.ConnectionString = "SERVER=10.42.128.150; DATABASE=st-wr21-r; UID=vysledky; PASSWORD=GAqx76QUB6NbnpZP; CharSet=utf8;"; break; default: Results.DB.ConnectionString = string.Empty; break; } #endif @@ -916,39 +922,59 @@ namespace ResultsBrowser { ISession session = null; - foreach (var oraD in oraDatas) + if (dlg.CQCriteria == CQCriteria.GetListOfUsedProcedures) { + session = Results.DB.CreateSession(); + IList batches = session.QueryOver() + .Where(x => x.StartTime >= dlg.From) + .And(x => x.StartTime <= dlg.To) + .List(); - if (oraD.TestBenchId == testBenchId) + foreach (var b in batches) { - if (session == null) + if (!usedProcedures.Contains(b.ProcedureName)) { - /// The first water meter produced on this test bench => create a database session - session = Results.DB.CreateSession(); + usedProcedures.Add(b.ProcedureName); + consoleTextBox.Text += string.Format(" {0}{1}", b.ProcedureName, Environment.NewLine); } + } + } + else + { + foreach (var oraD in oraDatas) + { - consoleTextBox.Text += string.Format("{0} ", ++counter); - if (counter % 25 == 0) consoleTextBox.Text += "\r\n"; - - IList wms = session.QueryOver() - .Where(x => x.SerialNr == oraD.PcbNr) - .And(x => x.Passed) - .List(); - - if (wms.Count == 1) + if (oraD.TestBenchId == testBenchId) { - oraD.CalibFactor = (int)Math.Round(wms[0].CalibFactor); - oraD.CalibFactorLNA = (int)Math.Round(wms[0].CalibFactorLNA); - } - else - { - foreach (var wm in wms) + if (session == null) { - if (wm.Batch.BatchNr == oraD.BatchNr) + /// The first water meter produced on this test bench => create a database session + session = Results.DB.CreateSession(); + } + + consoleTextBox.Text += string.Format("{0} ", ++counter); + if (counter % 25 == 0) consoleTextBox.Text += "\r\n"; + + IList wms = session.QueryOver() + .Where(x => x.SerialNr == oraD.PcbNr) + .And(x => x.Passed) + .List(); + + if (wms.Count == 1) + { + oraD.CalibFactor = (int)Math.Round(wms[0].CalibFactor); + oraD.CalibFactorLNA = (int)Math.Round(wms[0].CalibFactorLNA); + } + else + { + foreach (var wm in wms) { - oraD.CalibFactor = (int)Math.Round(wm.CalibFactor); - oraD.CalibFactorLNA = (int)Math.Round(wm.CalibFactorLNA); - break; + if (wm.Batch.BatchNr == oraD.BatchNr) + { + oraD.CalibFactor = (int)Math.Round(wm.CalibFactor); + oraD.CalibFactorLNA = (int)Math.Round(wm.CalibFactorLNA); + break; + } } } } @@ -965,7 +991,8 @@ namespace ResultsBrowser consoleTextBox.Text += "CSV data begin\r\n"; using (TextWriter writer = new StreamWriter(dlg.DestinationFile)) { -#if true +#if false + /// SUEZ writer.WriteLine(string.Format("PO; prefix; S/N; PcbNr; Bench; Batch; Start; Start; End; End; Pos; AdjA0; AdjA4; Q3RL; Q3LR; Q2RL; Q2LR; Q2acRL; Q2acLR; Q1RL; Q1LR; CalF; CAlF_LNA; HP; Q2cRL; Q2cLR")); //Console.WriteLine(string.Format("s/n;PCB nr.;bench;batch;position;Err. at 640 l/h;Err. LNA at 640 l/h;Err. Q3 RL;Err. Q3 LR;Cal.f.;Cal.f.LNA;Q2 corr.f. RL;Q2 corr.f. LR")); foreach (var oraD in oraDatas) @@ -1003,6 +1030,7 @@ namespace ResultsBrowser /* 28 */ oraD.WMTypeRev)); } #else + /// DEWA writer.WriteLine(string.Format("PO; prefix; S/N; PcbNr; Bench; Batch; Start; Start; End; End; Pos; AdjA0; Q4; Q3; Q2Adj; Q2; Q1; CalF; HP; Q2cRL; Q2cLR")); //Console.WriteLine(string.Format("s/n;PCB nr.;bench;batch;position;Err. at 640 l/h;Err. LNA at 640 l/h;Err. Q3 RL;Err. Q3 LR;Cal.f.;Cal.f.LNA;Q2 corr.f. RL;Q2 corr.f. LR")); foreach (var oraD in oraDatas) diff --git a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs index de282a90f..117654b78 100644 --- a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs +++ b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs @@ -1359,25 +1359,28 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { OracleCommand cmd = new OracleCommand("INSERT INTO VT_PRUEFREIHE_IST_PD(" + "VT_Fernum, Pruefindex, PruefungsNr, ANBID, ID_WZTyp, Rev_WZTyp, Rev_WZPruefpunkt, " + + // :1 :2 :3 :4 :5 :6 :7 "Q_WZ, Q_Fehler, Q_Best, NIZ, AnfangZStand, EndZStand, " + + // :8 :9 :10 :11 :12 :13 "KorrErrQok, KorrErrQ, KorrQWz, TIZ, Vol_WZ_US, TempMittel_US)" + + // 0 :14 0 :15 0 0 " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, 0, :14, 0, :15, 0, 0)", conn); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = mtr.WaterMeter.SerialNr }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = pruefungsNr }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_StaraTura }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.WaterMeter.WaterMeterData.WMTypeId }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 1 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Q_wm_with_upper_bound }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100.0, Math.Max(-100.0, mtr.Error)) }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.Passed ? 1 : 0 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Max(-99999.999, Math.Min(mtr.VolumeStart, 99999.999)) }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Max(-99999.999, Math.Min(mtr.VolumeEnd, 99999.999)) }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100.0, Math.Max(-100.0, mtr.KorrErrQ)) }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100000, mtr.TestTime) }); + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = mtr.WaterMeter.SerialNr }); /// :1 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// :2 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = pruefungsNr }); /// :3 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_StaraTura }); /// :4 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.WaterMeter.WaterMeterData.WMTypeId }); /// :5 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); /// :6 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 1 }); /// :7 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Q_wm_with_upper_bound }); /// :8 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100.0, Math.Max(-100.0, mtr.Error)) }); /// :9 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.Passed ? 1 : 0 }); /// :10 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :11 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Max(-99999.999, Math.Min(mtr.VolumeStart, 99999.999)) }); /// :12 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Max(-99999.999, Math.Min(mtr.VolumeEnd, 99999.999)) }); /// :13 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100.0, Math.Max(-100.0, mtr.KorrErrQ)) }); /// :14 + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(100000, mtr.TestTime) }); /// :15 retv = cmd.ExecuteNonQuery(); log.DebugFormat("VT_PRUEFREIHE_IST_PD inserted, PcbNr={0}, pruefungsNr={1}, error={2}", mtr.WaterMeter.SerialNr, pruefungsNr, mtr.Error);