SensusOracle : Automatic WZ_TYPE_ID assignment and creation OK, ver. 3.1.1815
This commit is contained in:
@@ -2,7 +2,14 @@
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using log4net;
|
||||
#if MANAGED
|
||||
using Oracle.ManagedDataAccess.Client;
|
||||
#else
|
||||
using Oracle.DataAccess.Client;
|
||||
#endif
|
||||
using Common;
|
||||
|
||||
namespace TBF.Rig.Output.DB.SensusOracle
|
||||
@@ -49,8 +56,8 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
Pruefungsnr = pruefungsnr,
|
||||
Q_soll = (float)Units.ConvertTo(Unit.lph, isQ3orQ4 ? tr.Qto() : tr.Qfrom()),
|
||||
Pruefzeit = (float)tr.TargetTime(),
|
||||
Posfehlerkalt = (float)tr.ErrLimHi(),
|
||||
Negfehlerkalt = (float)tr.ErrLimLo(),
|
||||
Posfehlerkalt = (float)(tr.ErrLimHi() - tr.ErrLimMargin()),
|
||||
Negfehlerkalt = (float)(tr.ErrLimLo() + tr.ErrLimMargin()),
|
||||
Posfehlerwarm = 0,
|
||||
Negfehlerwarm = 0,
|
||||
Pruefbereichmin = isQ3orQ4 ? 90 : 100,
|
||||
@@ -100,11 +107,86 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
return rslt;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
/// <summary>
|
||||
/// Insert a record to VT_PRUEFPUNKT_SOLL_SD
|
||||
/// </summary>
|
||||
/// <param name="conn">Oracle connection</param>
|
||||
/// <param name="record">Record to be written</param>
|
||||
/// <param name="aktiv">WM type Id</param>
|
||||
/// <param name="aktiv">WM type revision</param>
|
||||
/// <returns>List of VtWztypSd records</returns>
|
||||
public void Write(OracleConnection conn, VtPruefpunktSollSd record, int id_wztyp, int rev_wztyp)
|
||||
{
|
||||
return string.Format("{0} {1} {2}l/h time={3}s Elo={4}% Ehi={5}% Rlo={6} Rhi={7}",
|
||||
Pruefungsnr, Qbezeichnung, Q_soll, Pruefzeit,
|
||||
Negfehlerkalt, Posfehlerkalt, Pruefbereichmin, Pruefbereichmax);
|
||||
var cmd = new OracleCommand("INSERT INTO vt_pruefpunkt_soll_sd(anbid, id_wztyp, rev_wztyp, pruefungsnr, q_soll, pruefzeit," +
|
||||
" posfehlerkalt, negfehlerkalt, posfehlerwarm, negfehlerwarm, pruefbereichmin, pruefbereichmax," +
|
||||
" qbezeichnung, mindruck, fkorrektur, maxdruck) " +
|
||||
"VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16)", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Database.ProducerAnbid }); /// :1
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = id_wztyp }); /// :2
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = rev_wztyp }); /// :3
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Pruefungsnr }); /// :4
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Q_soll }); /// :5
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Pruefzeit }); /// :6
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Posfehlerkalt }); /// :7
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Negfehlerkalt }); /// :8
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Posfehlerwarm }); /// :9
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Negfehlerwarm }); /// :10
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Pruefbereichmin }); /// :11
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Pruefbereichmax }); /// :12
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = Qbezeichnung }); /// :13
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Mindruck }); /// :14
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Fkorrektur }); /// :15
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Single, Value = Maxdruck }); /// :16
|
||||
///
|
||||
var rowsUpdated = cmd.ExecuteNonQuery();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get VT_PRUEFPUNKT_SOLL_SD content
|
||||
/// </summary>
|
||||
/// <param name="conn">Oracle connection</param>
|
||||
/// <param name="aktiv">WM type Id</param>
|
||||
/// <param name="aktiv">WM type revision</param>
|
||||
/// <returns>List of VtWztypSd records</returns>
|
||||
public static IList<VtPruefpunktSollSd> Read(OracleConnection conn, int id_wztyp, int rev_wztyp)
|
||||
{
|
||||
var cmd = new OracleCommand("SELECT pruefungsnr, q_soll, pruefzeit, posfehlerkalt, negfehlerkalt," +
|
||||
" posfehlerwarm, negfehlerwarm, pruefbereichmin, pruefbereichmax," +
|
||||
" qbezeichnung, mindruck, fkorrektur, maxdruck " +
|
||||
"FROM vt_pruefpunkt_soll_sd " +
|
||||
"WHERE anbid=:1 AND id_wztyp=:2 AND rev_wztyp=:3 ORDER BY pruefungsnr DESC", conn);
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Database.ProducerAnbid }); /// :1
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = id_wztyp }); /// :2
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = rev_wztyp }); /// :3
|
||||
///
|
||||
var dr = cmd.ExecuteReader();
|
||||
var list = new List<VtPruefpunktSollSd>();
|
||||
while (dr.Read())
|
||||
{
|
||||
var tst = new VtPruefpunktSollSd();
|
||||
|
||||
int i = 0;
|
||||
try { tst.Pruefungsnr = dr.GetInt32(i++); } catch { tst.Pruefungsnr = 0; }
|
||||
try { tst.Q_soll = dr.GetFloat(i++); } catch { tst.Q_soll = 0; }
|
||||
try { tst.Pruefzeit = dr.GetFloat(i++); } catch { tst.Pruefzeit = 0; }
|
||||
try { tst.Posfehlerkalt = dr.GetFloat(i++); } catch { tst.Posfehlerkalt = 0; }
|
||||
try { tst.Negfehlerkalt = dr.GetFloat(i++); } catch { tst.Negfehlerkalt = 0; }
|
||||
try { tst.Posfehlerwarm = dr.GetFloat(i++); } catch { tst.Posfehlerwarm = 0; }
|
||||
try { tst.Negfehlerwarm = dr.GetFloat(i++); } catch { tst.Negfehlerwarm = 0; }
|
||||
try { tst.Pruefbereichmin = dr.GetInt32(i++); } catch { tst.Pruefbereichmin = 0; }
|
||||
try { tst.Pruefbereichmax = dr.GetInt32(i++); } catch { tst.Pruefbereichmax = 0; }
|
||||
try { tst.Qbezeichnung = dr.GetString(i++); } catch { tst.Qbezeichnung = string.Empty; }
|
||||
try { tst.Mindruck = dr.GetFloat(i++); } catch { tst.Mindruck = 0; }
|
||||
try { tst.Fkorrektur = dr.GetFloat(i++); } catch { tst.Fkorrektur = 0; }
|
||||
try { tst.Maxdruck = dr.GetFloat(i++); } catch { tst.Maxdruck = 0; }
|
||||
|
||||
if (tst.Pruefungsnr >= 0)
|
||||
list.Add(tst);
|
||||
else
|
||||
list.Insert(0, tst);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -133,5 +215,12 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
((t1.Maxdruck == 0 && t2.Maxdruck == 0) || 2 * Math.Abs(t1.Maxdruck - t2.Maxdruck) / (t1.Maxdruck + t2.Maxdruck) < 0.001) &&
|
||||
t1.Fkorrektur == t2.Fkorrektur;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("{0} {1} {2}l/h time={3}s Elo={4}% Ehi={5}% Rlo={6} Rhi={7}",
|
||||
Pruefungsnr, Qbezeichnung, Q_soll, Pruefzeit,
|
||||
Negfehlerkalt, Posfehlerkalt, Pruefbereichmin, Pruefbereichmax);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user