SelectedProcedure stored in ProcessData, used in DataEntry.iPERL and S620, S640Comm cleaned, IOrderInfo, I640Cfg, OrderManagement v.3.0.6, etc.
This commit is contained in:
@@ -75,7 +75,8 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
||||
Results.Entities.Batch batch;
|
||||
|
||||
|
||||
ISessionFactory sessionFactory; /// Factory to create database sessions that is initialized in the constructor
|
||||
public ISessionFactory SessionFactory; /// Factory to create database sessions that is initialized in the constructor
|
||||
|
||||
IList<SharedDatabase.Entities.Process> processes;
|
||||
Dictionary<int, SharedDatabase.Entities.Process> processDictionary;
|
||||
Dictionary<int, IList<SharedDatabase.Entities.Workstep>> workstepsDictionary;
|
||||
@@ -125,7 +126,7 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
||||
///
|
||||
/// Session factory is used to create database sessions
|
||||
///
|
||||
sessionFactory = FluentNHibernate.Cfg.Fluently.Configure()
|
||||
SessionFactory = FluentNHibernate.Cfg.Fluently.Configure()
|
||||
.Database(FluentNHibernate.Cfg.Db.MySQLConfiguration.Standard.ConnectionString(tracingCfg.ConnStr))
|
||||
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Process>())
|
||||
.ExposeConfiguration(SharedDatabase.TracingDB.BuildSchema)
|
||||
@@ -146,7 +147,7 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
||||
///
|
||||
/// Register this test bench in the tracing DB for approx. 2 weeks
|
||||
///
|
||||
ISession session = sessionFactory.OpenSession();
|
||||
ISession session = SessionFactory.OpenSession();
|
||||
|
||||
#if !DEBUG
|
||||
/// Only a release version registers a workplace
|
||||
@@ -160,7 +161,7 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
||||
#endif
|
||||
session.Flush();
|
||||
session.Close();
|
||||
SharedDatabase.TracingDB.SessionFactory = sessionFactory;
|
||||
SharedDatabase.TracingDB.SessionFactory = SessionFactory;
|
||||
if (session != null) session.Dispose();
|
||||
|
||||
currentWorkflow = null;
|
||||
@@ -178,7 +179,7 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
||||
{
|
||||
if (tracingCfg.DebugLevel == DebugMode.Simulate) return;
|
||||
|
||||
using (ISession session = sessionFactory.OpenSession())
|
||||
using (ISession session = SessionFactory.OpenSession())
|
||||
{
|
||||
SharedDatabase.TracingDB.UnregisterWorkplaceObsolete(session, workplace);
|
||||
session.Flush();
|
||||
@@ -187,6 +188,69 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
||||
public void StopDevice2() {}
|
||||
|
||||
|
||||
public IList<OrderInfo> ReadOrders(ISession session)
|
||||
{
|
||||
try
|
||||
{
|
||||
session = SessionFactory.OpenSession();
|
||||
var result = session.QueryOver<OrderInfo>()
|
||||
.Where(x => (x.POState == (sbyte)OrderState.New || x.POState == (sbyte)OrderState.Active))
|
||||
.List<OrderInfo>();
|
||||
return result;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
log.ErrorFormat("Cannot read orders from the tracing DB: {0}", exc.Message);
|
||||
return new List<OrderInfo>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Read reference records belonging to specified order
|
||||
/// </summary>
|
||||
/// <param name="session">DB sesson</param>
|
||||
/// <param name="order">Order</param>
|
||||
/// <returns>List of reference records-s</returns>
|
||||
public IList<ReferenceRecord> ReadRefRecords(ISession session, OrderInfo order)
|
||||
{
|
||||
try
|
||||
{
|
||||
return session.QueryOver<ReferenceRecord>()
|
||||
.Where(x => (x.POrder == order))
|
||||
.List();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
log.ErrorFormat("Cannot read orders from the tracing DB: {0}", exc.Message);
|
||||
return new List<ReferenceRecord>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Read records belonging to specified order
|
||||
/// </summary>
|
||||
/// <param name="session">DB sesson</param>
|
||||
/// <param name="order">Order</param>
|
||||
/// <returns>List of records</returns>
|
||||
public IList<Record> ReadRecords(ISession session, OrderInfo order)
|
||||
{
|
||||
try
|
||||
{
|
||||
return session.QueryOver<Record>()
|
||||
.JoinQueryOver<ReferenceRecord>(rec => rec.ReferenceRecord)
|
||||
.Where(rr => rr.POrder.Id == order.Id)
|
||||
.List<Record>();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
log.ErrorFormat("Cannot read orders from the tracing DB: {0}", exc.Message);
|
||||
return new List<Record>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Reads information on start of a cycle, Events: Event.InfoRead
|
||||
/// </summary>
|
||||
@@ -349,7 +413,7 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
||||
if (sampleWM != null)
|
||||
{
|
||||
bool isAtLeastOneNOK = false;
|
||||
using (ISession session = sessionFactory.OpenSession())
|
||||
using (ISession session = SessionFactory.OpenSession())
|
||||
{
|
||||
var cOrders = session.QueryOver<OrderInfo>()
|
||||
.Where(x => x.POName == sampleWM.PurchaseOrder)
|
||||
@@ -518,7 +582,7 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
||||
///
|
||||
try
|
||||
{
|
||||
session = sessionFactory.OpenSession();
|
||||
session = SessionFactory.OpenSession();
|
||||
transaction = session.BeginTransaction();
|
||||
|
||||
var cOrders = session.QueryOver<OrderInfo>()
|
||||
|
||||
@@ -1546,7 +1546,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
/// </summary>
|
||||
/// <param name="connection">Oracle DB connection</param>
|
||||
/// <returns>List of active purchase orders</returns>
|
||||
public IList<OrderDetails> ReadOrderNumbers()
|
||||
public IList<OrderDetails> ReadOrders()
|
||||
{
|
||||
OracleConnection connection = ProductionDB;
|
||||
|
||||
@@ -1588,18 +1588,18 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
int znrlaenge = dr.GetInt32(i++);
|
||||
string modul_param; try { modul_param = dr.GetString(i++); } catch { modul_param = string.Empty; }
|
||||
|
||||
orders.Add(new OrderDetails { AuftragsNummer = auftragsnummer,
|
||||
VariantenCode = variantencode,
|
||||
EsrsteZaehlerNr = erste_zaehlernr,
|
||||
Prefix = prefix,
|
||||
Suffix = suffix,
|
||||
orders.Add(new OrderDetails { POName = auftragsnummer,
|
||||
VariantCode = variantencode,
|
||||
SNFirst = erste_zaehlernr,
|
||||
SNPrefix = prefix,
|
||||
SNSuffix = suffix,
|
||||
Zaehlwerk = zaehlwerk,
|
||||
Created = erfasst_am,
|
||||
DueDate = sollende,
|
||||
TargetPcsCount = sollstueck,
|
||||
PiecesCount = sollstueck,
|
||||
Remark = zusatztext,
|
||||
SNLength = znrlaenge,
|
||||
ModuleParameter = modul_param });
|
||||
SNDigitsCount = znrlaenge,
|
||||
ModuleParam = modul_param });
|
||||
}
|
||||
dr.Close();
|
||||
}
|
||||
@@ -1615,10 +1615,10 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
}
|
||||
else
|
||||
{
|
||||
orders = new List<OrderDetails> ()
|
||||
orders = new List<OrderDetails>()
|
||||
{
|
||||
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" },
|
||||
new OrderDetails { POName = "1234567", SNFirst = 1, PiecesCount = 100, SNPrefix = "Pre", SNSuffix = "Suf", VariantCode = "abeceda" },
|
||||
new OrderDetails { POName = "2345678", SNFirst = 1, PiecesCount = 200, SNPrefix = "Pfx", SNSuffix = "Sfx", VariantCode = "zjedla_deda" },
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1631,7 +1631,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
/// </summary>
|
||||
/// <param name="connection">Oracle DB connection</param>
|
||||
/// <returns>List of active purchase orders</returns>
|
||||
public bool ReadOrderDetails(ref OrderDetails auftrag)
|
||||
public bool ReadOrderDetails(ref OrderDetails order)
|
||||
{
|
||||
if (dbCfg.DebugLevel == DebugMode.Normal)
|
||||
{
|
||||
@@ -1643,12 +1643,12 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
|
||||
|
||||
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.Varchar2, Value = order.POName });
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = ProducerAnbid });
|
||||
OracleDataReader dr = cmd.ExecuteReader();
|
||||
if (dr.Read())
|
||||
{
|
||||
try { auftrag.CurrentPcsCount = dr.GetInt32(0); } catch { auftrag.CurrentPcsCount = 0; }
|
||||
try { order.CurrentPcsCount = dr.GetInt32(0); } catch { order.CurrentPcsCount = 0; }
|
||||
}
|
||||
dr.Close();
|
||||
|
||||
@@ -1657,20 +1657,20 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
" 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.Varchar2, Value = order.POName });
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = ProducerAnbid });
|
||||
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++);
|
||||
order.SNFirst = dr.GetInt32(i++);
|
||||
order.LastSerialNr = dr.GetInt32(i++);
|
||||
order.CurrentSN = dr.GetInt32(i++);
|
||||
order.RAFirst = dr.GetInt32(i++);
|
||||
order.LastRadioAddress = dr.GetInt32(i++);
|
||||
try { order.RAPrefix = dr.GetString(i++); } catch { order.RAPrefix = string.Empty; }
|
||||
try { order.RASuffix = dr.GetString(i++); } catch { order.RASuffix = string.Empty; }
|
||||
order.CurrentRA = dr.GetInt32(i++);
|
||||
}
|
||||
dr.Close();
|
||||
|
||||
@@ -1681,7 +1681,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
catch (Exception exc)
|
||||
{
|
||||
log.ErrorFormat("ERROR: Oracle DB query SELECT ... FROM vt_auft_zaehlernr_pd WHERE auftragsnummer={0} failed: {1}",
|
||||
auftrag.AuftragsNummer, exc.Message);
|
||||
order.POName, exc.Message);
|
||||
if (connection != null) connection.Close();
|
||||
return false;
|
||||
}
|
||||
@@ -1711,16 +1711,16 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
|
||||
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.Varchar2, Value = auftrag.POName });
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = ProducerAnbid });
|
||||
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 = auftrag.CurrentSN });
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = auftrag.CurrentRA });
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = auftrag.POName });
|
||||
cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = ProducerAnbid });
|
||||
updatedRows = Math.Min(cmd.ExecuteNonQuery(), updatedRows);
|
||||
|
||||
@@ -1731,7 +1731,7 @@ namespace TBF.Rig.Output.DB.SensusOracle
|
||||
catch (Exception exc)
|
||||
{
|
||||
log.ErrorFormat("ERROR: Oracle DB query SELECT ... FROM vt_auft_zaehlernr_pd WHERE auftragsnummer={0} failed: {1}",
|
||||
auftrag.AuftragsNummer, exc.Message);
|
||||
auftrag.POName, exc.Message);
|
||||
if (connection != null) connection.Close();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -5,49 +5,48 @@ using System;
|
||||
|
||||
namespace TBF.Rig.Output.DB.SensusOracle
|
||||
{
|
||||
public class OrderDetails
|
||||
public class OrderDetails : Common.IOrderInfo
|
||||
{
|
||||
///
|
||||
/// Fixed
|
||||
///
|
||||
public string AuftragsNummer; /// Production order
|
||||
public string VariantenCode; /// Spec
|
||||
public int EsrsteZaehlerNr; /// First S/N
|
||||
public string Prefix; /// S/N prefix
|
||||
public string Suffix; /// S/N suffix
|
||||
public int Zaehlwerk; /// SAP number of the counter
|
||||
public string POName { get; set; } /// Production order
|
||||
public string VariantCode { get; set; } /// Spec
|
||||
public string ModuleParam { get; set; }
|
||||
public int PiecesCount { get; set; } /// Target pieces count
|
||||
public string SNPrefix { get; set; } /// S/N prefix
|
||||
public int SNFirst { get; set; } /// First S/N
|
||||
public int SNDigitsCount { get; set; }
|
||||
public string SNSuffix { get; set; } /// S/N suffix
|
||||
public string RAPrefix { get; set; }
|
||||
public int RAFirst { get; set; }
|
||||
public string RASuffix { get; set; }
|
||||
public string Remark { get; set; }
|
||||
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 Zaehlwerk; /// SAP number of the counter
|
||||
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 int CurrentPcsCount { get; set; }
|
||||
public int CurrentSN { get; set; }
|
||||
public int CurrentRA { get; set; }
|
||||
|
||||
public OrderDetails()
|
||||
{
|
||||
Prefix = string.Empty;
|
||||
Suffix = string.Empty;
|
||||
SNPrefix = string.Empty;
|
||||
SNSuffix = string.Empty;
|
||||
Remark = string.Empty;
|
||||
ModuleParameter = string.Empty;
|
||||
RadioAddressPrefix = string.Empty;
|
||||
RadioAddressSuffix = string.Empty;
|
||||
ModuleParam = string.Empty;
|
||||
RAPrefix = string.Empty;
|
||||
RASuffix = string.Empty;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("{0} [{1}] {2}", AuftragsNummer, TargetPcsCount, VariantenCode);
|
||||
return string.Format("{0} [{1}] {2}", POName, PiecesCount, VariantCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user