SensusOracle.Database synchronized with 2.26/27, TestBenchGroupId, idBenutzer, ver. 3.1.1800

This commit is contained in:
Milan Hanajik
2021-11-08 09:17:00 +01:00
parent 339d79595d
commit 5996fda348
16 changed files with 338 additions and 180 deletions
+240 -154
View File
@@ -235,9 +235,10 @@ namespace TBF.Rig.Output.DB.SensusOracle
cmd = new OracleCommand("SELECT pruefungsnr, q_soll, pruefzeit, posfehlerkalt, negfehlerkalt, pruefbereichmin, pruefbereichmax, qbezeichnung " +
"FROM vt_pruefpunkt_soll_sd " +
"WHERE anbid=4 AND id_wztyp=:1 AND rev_wztyp=:2", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeId }); ///:1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); ///:2
"WHERE anbid=:1 AND id_wztyp=:2 AND rev_wztyp=:3", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); ///:1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeId }); ///:2
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); ///:3
///
dr = cmd.ExecuteReader();
while (dr.Read())
@@ -373,7 +374,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
{
log.WarnFormat("{0} : Run() : currentOp = {1}", Name, currentOpState);
#if ORACLE_DB
if (WriteResultsToDB(SelectedDB, batch, false) == Retv.Error) anyError = true;
if (WriteResultsToDB(SelectedDB, batch, WMKind, false) == Retv.Error) anyError = true;
#endif
}
opCompleted = true;
@@ -700,7 +701,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
}
public Retv WriteResultsToDB(OracleConnection conn, Results.Entities.Batch batch, bool safeMode)
public Retv WriteResultsToDB(OracleConnection conn, Results.Entities.Batch batch, WMKind wmKind, bool safeMode)
{
OracleTransaction transaction;
@@ -722,7 +723,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
SaveBatchData(conn, batch);
foreach (var wMtr in batch.WaterMeters)
{
if (WMKind == WMKind.iPERL)
if (wmKind == WMKind.iPERL)
{
if ((wMtr.ErrorFlags & ((int)ErrorFlagMask.E26 | (int)ErrorFlagMask.E27 | (int)ErrorFlagMask.E28)) == 0)
{
@@ -730,7 +731,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
SaveIperlToDB(conn, wMtr, safeMode);
}
}
else if (WMKind == WMKind.Mechanical)
else if (wmKind == WMKind.Mechanical)
{
SaveMechanicalMeterToDB(conn, wMtr, safeMode);
}
@@ -862,7 +863,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"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 = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + b.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + 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 });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision });
@@ -907,7 +908,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"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 = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + b.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + b.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.BatchNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = testInfo.PruefungsNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = Units.ConvertTo(Unit.l, tr.VolumeCTV) });
@@ -939,7 +940,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"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 = 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_Pruefstand", OracleDbType.Int32); parm.Value = dbCfg.TestBenchGroupId + 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
///
@@ -967,12 +968,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} ...)", Anbid_Producer, 18000 + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
log.InfoFormat("VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, dbCfg.TestBenchGroupId + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
#endif
}
else
{
log.WarnFormat("SIM: VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, 18000 + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
log.WarnFormat("SIM: VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, dbCfg.TestBenchGroupId + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist);
}
}
}
@@ -1021,7 +1022,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
void SaveOrUpdateIperl(OracleConnection conn, Results.Entities.WaterMeter wm, int max_Pruefindex, int hydr_Pruefung)
{
int sekundaere_Adr = wm.Passed ? 1 : 0;
int idBenutzer = 6; // = wm.Batch.UserNumber;
int idBenutzer = (Anbid_Producer == 4) ? 6 : 365; /// TODO: wm.Batch.UserNumber;
if (dbCfg.DebugLevel == DebugMode.Normal)
{
@@ -1091,7 +1092,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 = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + wm.Batch.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + 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 });
#if IPERL
@@ -1228,65 +1229,80 @@ namespace TBF.Rig.Output.DB.SensusOracle
void SaveOrUpdateMechanicalMeter(OracleConnection conn, Results.Entities.WaterMeter wm, int max_Pruefindex, int hydr_Pruefung)
{
int idBenutzer = 6; // = wm.Batch.UserNumber;
int idBenutzer = (Anbid_Producer == 4) ? 6 : 365; /// TODO: wm.Batch.UserNumber;
string vt_identnummer = wm.SerialNr.Length > 8 ? wm.SerialNr.Substring(0, 8) : wm.SerialNr;
if (dbCfg.DebugLevel == DebugMode.Normal)
{
//OracleCommand cmd = new OracleCommand("UPDATE vt_zaehler_pd " +
// "SET max_pruefindex=:3, vt_identnummer=:4, auftragsnummer=:5, vt_baugruppen_nr=:6, mbus_adr=:7, liegenschafts_nr=:8," +
// " sekundaere_adr=:9, hydr_pruefung=:10, mark_date=:11, baujahr=:12, eich_jahr=:13, umkarton_nr=:14," +
// " palette_nr=:15, zaehlernummer=:16, prefix=:17, suffix=:18, z_nr_komplett=:19, id_benutzer=:20," +
// " albatrosid=:21, vt_modul_snr=:22 " +
// "WHERE vt_fernum = :1 AND anbid = :2", conn);
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
"SET max_pruefindex=:3, vt_identnummer=:4, auftragsnummer=:5, vt_baugruppen_nr=:6, mbus_adr=:7, liegenschafts_nr=:8," +
" sekundaere_adr=:9, hydr_pruefung=:10, baujahr=:11, eich_jahr=:12, umkarton_nr=:13," +
" palette_nr=:14, zaehlernummer=:15, prefix=:16, suffix=:17, z_nr_komplett=:18, id_benutzer=:19," +
" albatrosid=:20, vt_modul_snr=:21 " +
"WHERE vt_fernum = :1 AND anbid = :2", conn);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); /// 1
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// 2
///
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// 3 max_pruefindex
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = vt_identnummer }); /// 4 vt_identnummer
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// 5 auftragsnummer
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNrAux }); /// 6 vt_baugruppen_nr = PCB number of 640 meter
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 7 mbus_adr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 8 liegenschafts_nr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// 9 sekundaere_adr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// 10
//cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// 11
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// 12
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 13 umkarton_nr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 14 palette_nr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// 15
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// 16
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// 17
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// 18
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// 19
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.OriRadioAddress }); /// 20 albatrosid = original radio address
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.RadioAddress }); /// 21 vt_modul_snr = new radio address
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," +
" 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(vt_fernum, max_pruefindex, vt_identnummer, auftragsnummer, vt_baugruppen_nr," +
" 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, albatrosid, vt_modul_snr) " +
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22)", 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.Varchar2, Value = wm.SerialNr }); /// :3
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// :4
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :5 MBUS_ADR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :6 LIEGENSCHAFTS_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :7 Sekundaere_Adr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// :8
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime }); /// :9
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :10
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// :11
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :12 UMKARTON_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// :13 PALETTE_NR
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// :14
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 = Anbid_Producer }); /// :18
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// :19
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNr }); /// 1 vt_fernum
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = max_Pruefindex }); /// 2 max_pruefindex
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = vt_identnummer }); /// 3 vt_identnummer
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.PurchaseOrder }); /// 4 auftragsnummer
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.SerialNrAux }); /// 5 vt_baugruppen_nr = PCB number of 640 meter
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 6 mbus_adr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 7 liegenschafts_nr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// 8 sekundaere_adr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = hydr_Pruefung }); /// 9
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = wm.Batch.EndTime }); /// 10
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// 11
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = YearOfManufacture }); /// 12
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 13 umkarton_nr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 0 }); /// 14 palette_nr
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wm.AssignedSerialNr }); /// 15
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Prefix }); /// 16
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.Suffix }); /// 17
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.CompleteSerialNr }); /// 18
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); /// 19
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = idBenutzer }); /// 20
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.OriRadioAddress }); /// 21 albatrosid = original radio address
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = wm.RadioAddress }); /// 22 vt_modul_snr = new radio address
insertedRows = cmd.ExecuteNonQuery();
@@ -1320,7 +1336,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 = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 18000 + wm.Batch.TestBenchId });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + 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 });
#if IPERL
@@ -1404,7 +1420,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 = Anbid_Producer }); /// :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
@@ -1437,12 +1453,12 @@ namespace TBF.Rig.Output.DB.SensusOracle
/// </summary>
/// <param name="connection">Oracle DB connection</param>
/// <returns>List of active purchase orders</returns>
public IList<Auftrag> ReadOrderNumbersFromOracle()
public IList<OrderDetails> ReadOrderNumbers()
{
OracleConnection connection = ProductionDB;
/// Read a list of valid order numbers from Oracle
IList<Auftrag> orders = new List<Auftrag>();
IList<OrderDetails> orders = new List<OrderDetails>();
if (dbCfg.DebugLevel == DebugMode.Normal)
{
@@ -1450,97 +1466,50 @@ namespace TBF.Rig.Output.DB.SensusOracle
{
connection.Open();
/// STATUS='NEU'
OracleCommand cmd = new OracleCommand("SELECT auftragsnummer, sollstueck, variantencode, erste_zaehlernr, " +
"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 = Anbid_Producer });
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
foreach (string status in new string[] { "NEU", "AKTIV" })
{
string order = dr.GetString(0);
/// STATUS='NEU'
OracleCommand cmd = new OracleCommand("SELECT auftragsnummer, variantencode, erste_zaehlernr, prefix, suffix, " +
"zaehlwerk, erfasst_am, sollende, sollstueck, zusatztext, znrlaenge, modul_param " +
"FROM vt_auftrag_pd " +
"WHERE produktion_anbid=:1 AND status=:2 AND produktion_usestate=0", connection);
int sollStueck; try { sollStueck = dr.GetInt32(1); }
catch { sollStueck = 0; }
string variantenCode; try { variantenCode = dr.GetString(2); }
catch { variantenCode = string.Empty; }
int esrsteZaehlerNr; try { esrsteZaehlerNr = dr.GetInt32(3); }
catch { esrsteZaehlerNr = 1; }
//string prefix; try { prefix = dr.GetString (4); } catch { prefix = string.Empty; }
//string suffix; try { suffix = dr.GetString (5); } catch { suffix = string.Empty; }
int zaehlwerk; try { zaehlwerk = dr.GetInt32(6); }
catch { zaehlwerk = 0; }
DateTime created; try { created = dr.GetDateTime(7); }
catch { created = DateTime.Now; }
DateTime dueDate; try { dueDate = dr.GetDateTime(8); }
catch { dueDate = DateTime.Now; }
//string remark; try { remark = dr.GetString (9); } catch { remark = string.Empty; }
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = status });
var ai = new Auftrag
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
AuftragsNummer = order,
SollStueck = sollStueck,
VariantenCode = variantenCode,
EsrsteZaehlerNr = esrsteZaehlerNr,
//Prefix = prefix,
//Suffix = suffix,
Zaehlwerk = zaehlwerk,
Created = created,
DueDate = dueDate,
//Remark = remark,
};
int i = 0;
string auftragsnummer = dr.GetString(i++);
string variantencode; try { variantencode = dr.GetString(i++); } catch { variantencode = string.Empty; }
int erste_zaehlernr; try { erste_zaehlernr = dr.GetInt32(i++); } catch { erste_zaehlernr = 1; }
string prefix; try { prefix = dr.GetString(i++); } catch { prefix = string.Empty; }
string suffix; try { suffix = dr.GetString(i++); } catch { suffix = string.Empty; }
int zaehlwerk; try { zaehlwerk = dr.GetInt32(i++); } catch { zaehlwerk = 0; }
DateTime erfasst_am; try { erfasst_am = dr.GetDateTime(i++); } catch { erfasst_am = DateTime.Now; }
DateTime sollende; try { sollende = dr.GetDateTime(i++); } catch { sollende = DateTime.Now; }
int sollstueck = dr.GetInt32(i++);
string zusatztext; try { zusatztext = dr.GetString (i++); } catch { zusatztext = string.Empty; }
int znrlaenge = dr.GetInt32(i++);
string modul_param; try { modul_param = dr.GetString(i++); } catch { modul_param = string.Empty; }
orders.Add(ai);
orders.Add(new OrderDetails { AuftragsNummer = auftragsnummer,
VariantenCode = variantencode,
EsrsteZaehlerNr = erste_zaehlernr,
Prefix = prefix,
Suffix = suffix,
Zaehlwerk = zaehlwerk,
Created = erfasst_am,
DueDate = sollende,
TargetPcsCount = sollstueck,
Remark = zusatztext,
SNLength = znrlaenge,
ModuleParameter = modul_param });
}
dr.Close();
}
dr.Close();
/// STATUS='AKTIV'
cmd = new OracleCommand("SELECT auftragsnummer, sollstueck, variantencode, erste_zaehlernr, " +
"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 = Anbid_Producer });
dr = cmd.ExecuteReader();
while (dr.Read())
{
string order = dr.GetString(0);
int sollStueck; try { sollStueck = dr.GetInt32(1); }
catch { sollStueck = 0; }
string variantenCode; try { variantenCode = dr.GetString(2); }
catch { variantenCode = string.Empty; }
int esrsteZaehlerNr; try { esrsteZaehlerNr = dr.GetInt32(3); }
catch { esrsteZaehlerNr = 1; }
//string prefix; try { prefix = dr.GetString (4); } catch { prefix = string.Empty; }
//string suffix; try { suffix = dr.GetString (5); } catch { suffix = string.Empty; }
int zaehlwerk; try { zaehlwerk = dr.GetInt32(6); }
catch { zaehlwerk = 0; }
DateTime created; try { created = dr.GetDateTime(7); }
catch { created = DateTime.Now; }
DateTime dueDate; try { dueDate = dr.GetDateTime(8); }
catch { dueDate = DateTime.Now; }
//string remark; try { remark = dr.GetString (9); } catch { remark = string.Empty; }
var ai = new Auftrag
{
AuftragsNummer = order,
SollStueck = sollStueck,
VariantenCode = variantenCode,
EsrsteZaehlerNr = esrsteZaehlerNr,
//Prefix = prefix,
//Suffix = suffix,
Zaehlwerk = zaehlwerk,
Created = created,
DueDate = dueDate,
//Remark = remark,
};
orders.Add(ai);
}
dr.Close();
log.InfoFormat("Oracle DB query SELECT auftragsnummer, sollstueck FROM vt_auftrag_pd WHERE ... successful. {0} order numbers read", orders.Count);
}
@@ -1553,14 +1522,131 @@ namespace TBF.Rig.Output.DB.SensusOracle
}
else
{
orders = new List<Auftrag> ()
orders = new List<OrderDetails> ()
{
new Auftrag { AuftragsNummer = "1234567", EsrsteZaehlerNr = 1, SollStueck = 100, Prefix = "Pre", Suffix = "Suf", VariantenCode = "abeceda" },
new Auftrag { AuftragsNummer = "2345678", EsrsteZaehlerNr = 1, SollStueck = 200, Prefix = "Pfx", Suffix = "Sfx", VariantenCode = "zjedla_deda" },
new OrderDetails { AuftragsNummer = "1234567", EsrsteZaehlerNr = 1, TargetPcsCount = 100, Prefix = "Pre", Suffix = "Suf", VariantenCode = "abeceda" },
new OrderDetails { AuftragsNummer = "2345678", EsrsteZaehlerNr = 1, TargetPcsCount = 200, Prefix = "Pfx", Suffix = "Sfx", VariantenCode = "zjedla_deda" },
};
}
return orders;
}
/// <summary>
/// Read a list of valid purchase orders.
/// </summary>
/// <param name="connection">Oracle DB connection</param>
/// <returns>List of active purchase orders</returns>
public bool ReadOrderDetails(ref OrderDetails auftrag)
{
if (dbCfg.DebugLevel == DebugMode.Normal)
{
OracleConnection connection = ProductionDB;
try
{
connection.Open();
OracleCommand cmd = new OracleCommand("SELECT iststueck FROM vt_auftrag_pd WHERE auftragsnummer=:1 AND anbid=:2", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
OracleDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
try { auftrag.CurrentPcsCount = dr.GetInt32(0); } catch { auftrag.CurrentPcsCount = 0; }
}
dr.Close();
cmd = new OracleCommand("SELECT erste_nummer, ltz_nummer, akt_nummer, erste_adresse, ltz_adresse," +
" prefix_adresse, suffix_adresse, akt_adresse " +
"FROM vt_auft_zaehlernr_pd " +
"WHERE auftragsnummer=:1 AND anbid=:2", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
dr = cmd.ExecuteReader();
if (dr.Read())
{
int i = 0;
auftrag.FirstSerialNr = dr.GetInt32(i++);
auftrag.LastSerialNr = dr.GetInt32(i++);
auftrag.CurrentSerialNr = dr.GetInt32(i++);
auftrag.FirstRadioAddress = dr.GetInt32(i++);
auftrag.LastRadioAddress = dr.GetInt32(i++);
try { auftrag.RadioAddressPrefix = dr.GetString(i++); } catch { auftrag.RadioAddressPrefix = string.Empty; }
try { auftrag.RadioAddressSuffix = dr.GetString(i++); } catch { auftrag.RadioAddressSuffix = string.Empty; }
auftrag.CurrentRadioAddress = dr.GetInt32(i++);
}
dr.Close();
connection.Close();
return true;
}
catch (Exception exc)
{
log.ErrorFormat("ERROR: Oracle DB query SELECT ... FROM vt_auft_zaehlernr_pd WHERE auftragsnummer={0} failed: {1}",
auftrag.AuftragsNummer, exc.Message);
if (connection != null) connection.Close();
return false;
}
}
else
{
return false;
}
}
/// <summary>
/// Read a list of valid purchase orders.
/// </summary>
/// <param name="connection">Oracle DB connection</param>
/// <returns>List of active purchase orders</returns>
public int UpdateOrderDetails(OrderDetails auftrag)
{
if (dbCfg.DebugLevel == DebugMode.Normal)
{
OracleConnection connection = ProductionDB;
try
{
connection.Open();
OracleCommand cmd = new OracleCommand("UPDATE vt_auftrag_pd SET iststueck=:1 WHERE auftragsnummer=:2 AND anbid=:3", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentPcsCount });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
int updatedRows = cmd.ExecuteNonQuery();
cmd = new OracleCommand("UPDATE vt_auft_zaehlernr_pd SET akt_nummer=:1, akt_adresse=:2 " +
"WHERE auftragsnummer=:3 AND anbid=:4", connection);
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentSerialNr });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentRadioAddress });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.AuftragsNummer });
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer });
updatedRows = Math.Min(cmd.ExecuteNonQuery(), updatedRows);
connection.Close();
return updatedRows;
}
catch (Exception exc)
{
log.ErrorFormat("ERROR: Oracle DB query SELECT ... FROM vt_auft_zaehlernr_pd WHERE auftragsnummer={0} failed: {1}",
auftrag.AuftragsNummer, exc.Message);
if (connection != null) connection.Close();
return 0;
}
}
else
{
return 0;
}
}
}
}
+14 -2
View File
@@ -34,6 +34,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
public string TestUserId;
public string TestPassword;
public int ProducerId;
public int TestBenchGroupId;
/// <summary> Procedure parameters </summary>
[XmlIgnore]
@@ -70,6 +71,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
TestUserId = "deltachef";
TestPassword = "deltachef";
ProducerId = 4;
TestBenchGroupId = 18000;
}
string[] paramNames = new string[]
@@ -84,6 +86,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
"Test DB User ID",
"Test DB Password",
"Producer ID",
"Test bench group ID",
};
public string ParamName(int i) { return paramNames[i]; }
public int ParamsCount() { return paramNames.Length; }
@@ -107,12 +110,15 @@ namespace TBF.Rig.Output.DB.SensusOracle
case 7: return TestUserId;
case 8: return AkaPwd;
case 9: return ProducerId.ToString();
case 10: return TestBenchGroupId.ToString();
default:
return string.Format("{0}: Production={1} Quality={2} Test={3}",
return string.Format("{0}: Production={1} Quality={2} Test={3} anbid={4} group={5}",
Name,
string.IsNullOrEmpty(ProductionDataSource) ? string.Empty : ProductionDataSource,
string.IsNullOrEmpty(QualityDataSource) ? string.Empty : QualityDataSource,
string.IsNullOrEmpty(TestDataSource) ? string.Empty : TestDataSource);
string.IsNullOrEmpty(TestDataSource) ? string.Empty : TestDataSource,
ProducerId,
TestBenchGroupId);
}
}
@@ -157,6 +163,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
return CfgUpdateFlags.None;
}
case 9: ProducerId = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 10: TestBenchGroupId = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
default:
return CfgUpdateFlags.None;
}
@@ -182,6 +189,9 @@ namespace TBF.Rig.Output.DB.SensusOracle
case 9:
if (int.TryParse(str, out idummy) && idummy > 0 && idummy <= 9) return true;
break;
case 10:
if (int.TryParse(str, out idummy) && idummy > 0 && (idummy % 100) == 0) return true;
break;
default:
message = "Invalid index";
return false;
@@ -202,6 +212,8 @@ namespace TBF.Rig.Output.DB.SensusOracle
prms.TestDataSource = this.TestDataSource;
prms.TestUserId = this.TestUserId;
prms.TestPassword = this.TestPassword;
prms.ProducerId = this.ProducerId;
prms.TestBenchGroupId = this.TestBenchGroupId;
}
public IParamsProvider Clone()
@@ -5,10 +5,12 @@ using System;
namespace TBF.Rig.Output.DB.SensusOracle
{
public class Auftrag
public class OrderDetails
{
///
/// Fixed
///
public string AuftragsNummer; /// Production order
public int SollStueck; /// Targer pieces count
public string VariantenCode; /// Spec
public int EsrsteZaehlerNr; /// First S/N
public string Prefix; /// S/N prefix
@@ -16,18 +18,36 @@ namespace TBF.Rig.Output.DB.SensusOracle
public int Zaehlwerk; /// SAP number of the counter
public DateTime Created;
public DateTime DueDate;
public int TargetPcsCount; /// Target pieces count
public string Remark;
public int SNLength;
public string ModuleParameter;
public int FirstSerialNr;
public int LastSerialNr;
public int FirstRadioAddress;
public int LastRadioAddress;
public string RadioAddressPrefix;
public string RadioAddressSuffix;
///
/// Incremented
///
public int CurrentPcsCount;
public int CurrentSerialNr;
public int CurrentRadioAddress;
public Auftrag()
public OrderDetails()
{
Prefix = string.Empty;
Suffix = string.Empty;
Remark = string.Empty;
ModuleParameter = string.Empty;
RadioAddressPrefix = string.Empty;
RadioAddressSuffix = string.Empty;
}
public override string ToString()
{
return string.Format("{0} [{1}] {2}", AuftragsNummer, SollStueck, VariantenCode);
return string.Format("{0} [{1}] {2}", AuftragsNummer, TargetPcsCount, VariantenCode);
}
}
}
@@ -18,6 +18,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
{
private static readonly ILog log = LogManager.GetLogger(typeof(ProcedureParams));
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0];
public override XmlSerializer GetSerializer() { return Serializer; }