SensusOracle.Database : Insert/update of VT_ZAEHLER_PD modified, ResultsMI.DeleteFromOracleForm

This commit is contained in:
Milan Hanajik
2021-08-19 10:26:00 +02:00
parent 3a6b734aee
commit 3e674b972a
5 changed files with 899 additions and 125 deletions
+139 -125
View File
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2015-2020 Sensus Slovensko a.s.
/// Copyright (c) 2015-2021 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic;
@@ -94,9 +94,9 @@ namespace TBF.Rig.Output.DB.SensusOracle
/// </summary>
Results.Entities.Batch batch;
OracleConnection productionDB; /// Production Oracle DB connection
OracleConnection qualityDB; /// Quality Oracle DB connection
OracleConnection testDB; /// Test Oracle DB connection
public OracleConnection ProductionDB; /// Production Oracle DB connection
public OracleConnection QualityDB; /// Quality Oracle DB connection
public OracleConnection TestDB; /// Test Oracle DB connection
public OracleConnection SelectedDB
{
@@ -104,9 +104,9 @@ namespace TBF.Rig.Output.DB.SensusOracle
{
switch (DBUsed)
{
case DBUsed.Production: return productionDB;
case DBUsed.Quality: return qualityDB;
case DBUsed.Test: return testDB;
case DBUsed.Production: return ProductionDB;
case DBUsed.Quality: return QualityDB;
case DBUsed.Test: return TestDB;
default:
case DBUsed.None:
@@ -115,28 +115,25 @@ namespace TBF.Rig.Output.DB.SensusOracle
}
}
#if ORACLE_DB
IList<SensusTestInfo> oracleTestInfo; /// Raw incomplete test info from Oracle DB (or null)
SensusTestInfo[] completeTestInfo; /// Complete TBF test info obtained as the best match (never null when oracleTestInfo != null)
///
/// The following 3 variables are always updated together
///
int wmTypeId;
int wmTypeRevision;
string procedureSignature;
#endif
IList<SensusTestInfo> oracleTestInfo; /// Raw incomplete test info from Oracle DB (or null)
SensusTestInfo[] completeTestInfo; /// Complete TBF test info obtained as the best match (never null when oracleTestInfo != null)
public Database() {}
public Database() {}
public Database(Generic.IComponentCfg cfg)
: base(cfg)
{
dbCfg = cfg as DatabaseCfg;
log.Warn(this.ToString());
}
///
/// IDevice interface implementation
///
public override void Initialize()
{
currentOpState = OpState.None;
@@ -144,9 +141,9 @@ namespace TBF.Rig.Output.DB.SensusOracle
//productionDB = new OracleConnection("Data Source=STARA01.WORLD;User Id=deltachef;Password=deltachef;");
//qualityDB = new OracleConnection("Data Source=STARA01.WORLD;User Id=deltaqual;Password=test;");
//testDB = new OracleConnection("Data Source=STARA_TEST.WORLD;User Id=deltachef;Password=deltachef;");
productionDB = new OracleConnection(string.Format("Data Source={0};User Id={1};Password={2};", dbCfg.ProductionDataSource, dbCfg.ProductionUserId, dbCfg.ProductionPassword));
qualityDB = new OracleConnection(string.Format("Data Source={0};User Id={1};Password={2};", dbCfg.QualityDataSource, dbCfg.QualityUserId, dbCfg.QualityPassword));
testDB = new OracleConnection(string.Format("Data Source={0};User Id={1};Password={2};", dbCfg.TestDataSource, dbCfg.TestUserId, dbCfg.TestPassword));
ProductionDB = new OracleConnection(string.Format("Data Source={0};User Id={1};Password={2};", dbCfg.ProductionDataSource, dbCfg.ProductionUserId, dbCfg.ProductionPassword));
QualityDB = new OracleConnection(string.Format("Data Source={0};User Id={1};Password={2};", dbCfg.QualityDataSource, dbCfg.QualityUserId, dbCfg.QualityPassword));
TestDB = new OracleConnection(string.Format("Data Source={0};User Id={1};Password={2};", dbCfg.TestDataSource, dbCfg.TestUserId, dbCfg.TestPassword));
///
/// Do something with the database to see if the connection works well
@@ -156,24 +153,33 @@ namespace TBF.Rig.Output.DB.SensusOracle
SelectedDB.Open();
string rslt = "none";
OracleCommand cmd = new OracleCommand("SELECT standort FROM anbieter_sd WHERE anbid = :1", productionDB);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
OracleCommand cmd = new OracleCommand("SELECT standort FROM anbieter_sd WHERE anbid = :1", ProductionDB);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
OracleDataReader dr = cmd.ExecuteReader();
if (dr.Read()) rslt = dr.GetString(0);
dr.Close();
SelectedDB.Close();
log.FatalFormat("{0} initialized: {1}", Name, this);
}
else
{
log.FatalFormat("{0} simulated: {1}", Name, this);
}
}
///
public void RunDeviceBefore() {}
///
/// IDevice interface implementation
///
public void RunDeviceBefore() { }
public void RunDeviceAfter() {}
///
public void StopDevice()
{
if (testDB != null) testDB.Dispose();
if (qualityDB != null) qualityDB.Dispose();
if (productionDB != null) productionDB.Dispose();
if (TestDB != null) TestDB.Dispose();
if (QualityDB != null) QualityDB.Dispose();
if (ProductionDB != null) ProductionDB.Dispose();
}
public void StopDevice2() {}
@@ -207,7 +213,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
OracleCommand cmd = new OracleCommand("SELECT rev_wztyp, wztyp, metrolklasse, zulasszeichen, materialnr, qmax, aenderungsdatum, bemerkung " +
"FROM vt_wztyp_sd " +
"WHERE anbid=:1 AND id_wztyp=:2 AND aktiv=:3", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeId }); ///:1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 1 }); ///:2
///
@@ -529,7 +535,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"FROM vt_zaehler_pd " +
"WHERE vt_fernum = :1 AND anbid = :2", conn);
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
dr = cmd.ExecuteReader();
if (dr.Read())
{
@@ -563,7 +569,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"FROM vt_zaehler_pindex_pd " +
"WHERE vt_fernum = :1 AND anbid = :2", conn);
cmd.Parameters.Add(new OracleParameter { ParameterName = "1", OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
dr = cmd.ExecuteReader();
while (dr.Read())
{
@@ -587,7 +593,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"FROM vt_ip_zaehler_pindex_pd " +
"WHERE vt_fernum = :1 AND anbid = :2", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
dr = cmd.ExecuteReader();
while (dr.Read())
{
@@ -611,7 +617,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"WHERE vt_fernum = :1 AND pruefindex = :2 AND anbid = :3", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 100 * testBenchID + maxPruefindex });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
dr = cmd.ExecuteReader();
while (dr.Read())
@@ -758,7 +764,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
{
OracleCommand cmd = new OracleCommand("SELECT pruefindex FROM vt_zaehler_pindex_pd WHERE vt_fernum = :1 AND anbid = :2", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
using (OracleDataReader dr = cmd.ExecuteReader())
{
@@ -773,7 +779,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"WHERE vt_fernum = :1 AND anbid = :2", conn);
/// PCB number Producer ID
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
using (OracleDataReader dr = cmd.ExecuteReader())
{
@@ -855,7 +861,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
" druckentwaessern, spueldurchflussist, programmversion) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + b.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.WaterMeters[0].WaterMeterData.WMTypeId });
@@ -900,7 +906,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
" beginndruck_hinten, enddruck_vorne, enddruck_hinten, tvwz, ivwz, verwendeter_vz, beginngewicht, endgewicht) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22, :23)", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + b.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = testInfo.PruefungsNr });
@@ -932,7 +938,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
" tvwz, ivwz, verwendeter_vz, beginngewicht, endgewicht) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22, :23)", conn);
OracleParameter parm;
parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = dbCfg.ProducerId; cmd2.Parameters.Add(parm); ///:1
parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_Producer; cmd2.Parameters.Add(parm); ///:1
parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = 18000 + b.TestBenchId; cmd2.Parameters.Add(parm); ///:2
parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = b.BatchNr; cmd2.Parameters.Add(parm); ///:3
parm = new OracleParameter("PruefungsNr", OracleDbType.Int32); parm.Value = testInfo.PruefungsNrDB; cmd2.Parameters.Add(parm); ///:4
@@ -961,12 +967,12 @@ namespace TBF.Rig.Output.DB.SensusOracle
parm = new OracleParameter("EndGewicht", OracleDbType.Double); parm.Value = Units.ConvertTo(Unit.kg, tr.MassEnd); cmd2.Parameters.Add(parm); ///:23
///
cmd2.ExecuteNonQuery(); /// Returns nr. of updated rows
log.InfoFormat("VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", dbCfg.ProducerId, 18000 + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
log.InfoFormat("VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, 18000 + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
#endif
}
else
{
log.WarnFormat("SIM: VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", dbCfg.ProducerId, 18000 + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
log.WarnFormat("SIM: VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, 18000 + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
}
}
}
@@ -1017,13 +1023,29 @@ namespace TBF.Rig.Output.DB.SensusOracle
int sekundaere_Adr = wm.Passed ? 1 : 0;
int idBenutzer = 6; // = wm.Batch.UserNumber;
if (max_Pruefindex % 100 == 1)
{
if (dbCfg.DebugLevel == DebugMode.Normal)
{
OracleCommand cmd = new OracleCommand("INSERT INTO vt_zaehler_pd(auftragsnummer, vt_identnummer, vt_fernum, max_pruefindex," +
" zaehlernummer, sekundaere_adr, hydr_pruefung, id_benutzer, anbid, baujahr) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10)", conn);
if (dbCfg.DebugLevel == DebugMode.Normal)
{
OracleCommand cmd = new OracleCommand("UPDATE vt_zaehler_pd " +
"SET auftragsnummer=:1, vt_identnummer=:2, max_pruefindex=:3, hydr_pruefung=:4, id_benutzer=:5, baujahr=:6 " +
"WHERE vt_fernum = :7 AND anbid = :8", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "IPBATMXX" });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
int updatedRows = cmd.ExecuteNonQuery();
int insertedRows = 0;
if (updatedRows == 0)
{
cmd = new OracleCommand("INSERT INTO vt_zaehler_pd(auftragsnummer, vt_identnummer, vt_fernum, max_pruefindex," +
" zaehlernummer, sekundaere_adr, hydr_pruefung, id_benutzer, anbid, baujahr) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10)", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "IPBATMXX" });
@@ -1033,41 +1055,29 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = sekundaere_Adr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture });
cmd.ExecuteNonQuery();
log.InfoFormat("VT_ZAEHLER_PD inserted, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
insertedRows = cmd.ExecuteNonQuery();
if (insertedRows == 0)
{
throw new Exception(string.Format("Failed to insert or update VT_ZAEHLER_PD: PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex));
}
}
if (insertedRows > 0)
{
log.InfoFormat("VT_ZAEHLER_PD {0} row inserted, PcbNr={1}, pos={2}, maxPruefix={3}", insertedRows, wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
else
{
log.WarnFormat("SIM: VT_ZAEHLER_PD inserted, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
log.InfoFormat("VT_ZAEHLER_PD: {0} rows updated, PcbNr={1}, pos={2}, maxPruefix={3}", updatedRows, wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
}
else
{
if (dbCfg.DebugLevel == DebugMode.Normal)
{
OracleCommand cmd = new OracleCommand("UPDATE vt_zaehler_pd " +
"SET auftragsnummer=:1, vt_identnummer=:2, max_pruefindex=:3, hydr_pruefung=:4, id_benutzer=:5, baujahr=:6 " +
"WHERE vt_fernum = :7 AND anbid = :8", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "IPBATMXX" });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.ExecuteNonQuery();
log.InfoFormat("VT_ZAEHLER_PD updated, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
else
{
log.WarnFormat("SIM: VT_ZAEHLER_PD updated, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
else
{
log.WarnFormat("SIM: VT_ZAEHLER_PD inserted or updated, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
if (dbCfg.DebugLevel == DebugMode.Normal)
@@ -1080,7 +1090,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + wm.Batch.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.Batch.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung });
@@ -1158,7 +1168,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.Hz2CorrectionDone ? 1 : 0 });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = wm.Hz2Correction });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Math.Min(99.0, Math.Max(-99.0, wm.Diff2Hz8Hz)) });
@@ -1220,14 +1230,43 @@ namespace TBF.Rig.Output.DB.SensusOracle
{
int idBenutzer = 6; // = wm.Batch.UserNumber;
if (max_Pruefindex % 100 == 1)
if (dbCfg.DebugLevel == DebugMode.Normal)
{
if (dbCfg.DebugLevel == DebugMode.Normal)
OracleCommand cmd = new OracleCommand("UPDATE vt_zaehler_pd " +
"SET auftragsnummer=:1, vt_identnummer=:2, max_pruefindex=:3, mbus_adr=:4, liegenschafts_nr=:5," +
" sekundaere_adr=:6, hydr_pruefung=:7, mark_date=:8, baujahr=:9, eich_jahr=:10, umkarton_nr=:11," +
" palette_nr=:12, zaehlernummer=:13, prefix=:14, suffix=:15, z_nr_komplett=:16, id_benutzer=:17 " +
"WHERE vt_fernum = :18 AND anbid = :19", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// :1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "88888888" }); /// :2
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// :3
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :4 MBUS_ADR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :5 LIEGENSCHAFTS_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :6 Sekundaere_Adr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// :7
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime }); /// :8
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :9
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :10
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :11 UMKARTON_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :12 PALETTE_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// :13
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// :14
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// :15
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// :16
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// :17
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); /// :18
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// :19
int updatedRows = cmd.ExecuteNonQuery();
int insertedRows = 0;
if (updatedRows == 0)
{
OracleCommand cmd = new OracleCommand("INSERT INTO vt_zaehler_pd(auftragsnummer, vt_identnummer, vt_fernum, max_pruefindex," +
" mbus_adr, liegenschafts_nr, sekundaere_adr, hydr_pruefung, mark_date, baujahr, eich_jahr," +
" umkarton_nr, palette_nr, zaehlernummer, prefix, suffix, z_nr_komplett, anbid, id_benutzer) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19)", conn);
cmd = new OracleCommand("INSERT INTO vt_zaehler_pd(auftragsnummer, vt_identnummer, vt_fernum, max_pruefindex," +
" mbus_adr, liegenschafts_nr, sekundaere_adr, hydr_pruefung, mark_date, baujahr, eich_jahr," +
" umkarton_nr, palette_nr, zaehlernummer, prefix, suffix, z_nr_komplett, anbid, id_benutzer) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19)", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// :1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "88888888" }); /// :2
@@ -1246,54 +1285,29 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// :15
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// :16
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// :17
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId }); /// :18
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// :18
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// :19
cmd.ExecuteNonQuery();
log.InfoFormat("VT_ZAEHLER_PD inserted, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
insertedRows = cmd.ExecuteNonQuery();
if (insertedRows == 0)
{
throw new Exception(string.Format("Failed to insert or update VT_ZAEHLER_PD: PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex));
}
}
if (insertedRows > 0)
{
log.InfoFormat("VT_ZAEHLER_PD {0} row inserted, PcbNr={1}, pos={2}, maxPruefix={3}", insertedRows, wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
else
{
log.WarnFormat("SIM: VT_ZAEHLER_PD inserted, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
log.InfoFormat("VT_ZAEHLER_PD: {0} rows updated, PcbNr={1}, pos={2}, maxPruefix={3}", updatedRows, wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
}
else
{
if (dbCfg.DebugLevel == DebugMode.Normal)
{
OracleCommand cmd = new OracleCommand("UPDATE vt_zaehler_pd " +
"SET auftragsnummer=:1, vt_identnummer=:2, max_pruefindex=:3, mbus_adr=:4, liegenschafts_nr=:5," +
" sekundaere_adr=:6, hydr_pruefung=:7, mark_date=:8, baujahr=:9, eich_jahr=:10, umkarton_nr=:11," +
" palette_nr=:12, zaehlernummer=:13, prefix=:14, suffix=:15, z_nr_komplett=:16, id_benutzer=:17 " +
"WHERE vt_fernum = :18 AND anbid = :19", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// :1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = "88888888" }); /// :2
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// :3
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :4 MBUS_ADR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :5 LIEGENSCHAFTS_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :6 Sekundaere_Adr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// :7
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime }); /// :8
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :9
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :10
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :11 UMKARTON_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :12 PALETTE_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// :13
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// :14
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// :15
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// :16
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// :17
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); /// :18
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId }); /// :19
cmd.ExecuteNonQuery();
log.InfoFormat("VT_ZAEHLER_PD updated, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
else
{
log.WarnFormat("SIM: VT_ZAEHLER_PD updated, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
log.WarnFormat("SIM: VT_ZAEHLER_PD inserted or updated, PcbNr={0}, pos={1}, maxPruefix={2}", wm.SerialNr, wm.WMPosition, max_Pruefindex);
}
if (dbCfg.DebugLevel == DebugMode.Normal)
@@ -1305,7 +1319,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + wm.Batch.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.Batch.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung });
@@ -1390,7 +1404,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = mtr.WaterMeter.SerialNr }); /// :1 vt_fernum
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// :2 pruefindex
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = pruefungsNr }); /// :3 pruefungsnr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId }); /// :4 anbid
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// :4 anbid
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = mtr.WaterMeter.WaterMeterData.WMTypeId }); /// :5 id_wztyp
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); /// :6 rev_wztyp
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 1 }); /// :7 rev_wzpruefpunkt
@@ -1425,7 +1439,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
/// <returns>List of active purchase orders</returns>
public IList<Auftrag> ReadOrderNumbersFromOracle()
{
OracleConnection connection = productionDB;
OracleConnection connection = ProductionDB;
/// Read a list of valid order numbers from Oracle
IList<Auftrag> orders = new List<Auftrag>();
@@ -1441,7 +1455,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"prefix, suffix, zaehlwerk, erfasst_am, sollende, zusatztext " +
"FROM vt_auftrag_pd " +
"WHERE produktion_anbid=:1 AND status='NEU' AND produktion_usestate=0", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
@@ -1487,7 +1501,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"prefix, suffix, zaehlwerk, erfasst_am, sollende, zusatztext " +
"FROM vt_auftrag_pd " +
"WHERE produktion_anbid=:1 AND status='AKTIV' AND produktion_usestate=0", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.ProducerId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
dr = cmd.ExecuteReader();
while (dr.Read())