ProductionTracing : saving StepRecord and updating ReferenceRecord. ver. 3.1.1847

This commit is contained in:
Milan Hanajik 2022-01-10 08:09:55 +01:00
parent a6ba6e26b2
commit eea94d1d9f
3 changed files with 57 additions and 21 deletions

View File

@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
[assembly: AssemblyVersion("3.1.1846.0")]
[assembly: AssemblyFileVersion("3.1.1846.0")]
[assembly: AssemblyVersion("3.1.1847.0")]
[assembly: AssemblyFileVersion("3.1.1847.0")]

View File

@ -630,11 +630,52 @@ namespace TBF.Rig.Output.DB.ProductionTracing
/// <param name="wm">Watermeter entity</param>
void SaveSingleWM2DB(ISession session, OrderInfo order, Results.Entities.WaterMeter wm, Process workflow, Workstep workstep)
{
//session.SaveOrUpdate(new ReferenceRecord(order, workflow, workstep,
// wm.SerialNr,
// GlobalData.CurrentUser.UserName,
// workplace,
// wm.Passed ? 0 : 1));
IList<ReferenceRecord> existingRecords = session.QueryOver<ReferenceRecord>()
.Where(x => (x.Code1 == wm.SerialNr))
.List();
ReferenceRecord refRecord = null;
if (existingRecords.Count > 1)
{
/// Unexpected error
throw new Exception("Unexpected error when saving production tracing records");
}
else if (existingRecords.Count == 1)
{
/// TODO: Check if the selected worflow is the same as in the found record
refRecord = existingRecords[0];
refRecord.POName = (order != null) ? order.POName : null;
refRecord.Workflow = (workflow != null) ? workflow.Name : null;
refRecord.Code2 = wm.SerialNrAux;
refRecord.Code3 = wm.CompleteSerialNr;
refRecord.Code4 = wm.RadioAddress;
}
else
{
refRecord = new ReferenceRecord((order != null) ? order.POName : null,
(workflow != null) ? workflow.Name : null,
wm.SerialNr, /// PcbNumber (iPERL) or ghousing S/N (620/640)
wm.SerialNrAux, /// Flowtube S/N (iPERL) or eRegister number (640) or empty
wm.CompleteSerialNr, /// Complete assigned S/N
wm.RadioAddress); /// Radio address (iPERL and 640)
}
StepRecord stepRecord = new StepRecord(refRecord,
"Test",
(TBF.Rig.Sequences.ProcessData.BenchInfo != null) ? TBF.Rig.Sequences.ProcessData.BenchInfo.TestBenchName : "TestBench",
Common.GlobalData.GetCurrentUserName());
if (refRecord.StepRecords == null)
{
refRecord.StepRecords = new List<StepRecord> { stepRecord };
}
else
{
refRecord.StepRecords.Add(stepRecord);
}
session.SaveOrUpdate(refRecord);
session.SaveOrUpdate(stepRecord);
}
}
}

View File

@ -127,8 +127,6 @@ namespace TBF.Rig.TestMethods.S640Communication
/// Production tracing support
///
IList<ReferenceRecord> refRecords;
IList<Record> records;
System.Windows.Forms.Timer timer;
@ -202,7 +200,6 @@ namespace TBF.Rig.TestMethods.S640Communication
ckbIndex = new int[UIBoxesCount]; /// Initialized by ShuffleTextBoxes() ... to be used in the future in case of test benches with two lines
refRecords = new List<ReferenceRecord>();
records = new List<Record>();
}
/// <summary>
@ -294,14 +291,15 @@ namespace TBF.Rig.TestMethods.S640Communication
{
for (int i = 0; i < lineSize; i++)
{
labels[dest] = labels[l * lineSize + l * gap + i];
checkBoxes[dest] = checkBoxes[l * lineSize + l * gap + i];
pictures[dest] = pictures[l * lineSize + l * gap + i];
eRegisterNumbers[dest] = eRegisterNumbers[l * lineSize + l * gap + i];
radioAddresses[dest] = radioAddresses[l * lineSize + l * gap + i];
serialNumbers[dest] = serialNumbers[l * lineSize + l * gap + i];
assignedSNs[dest] = assignedSNs[l * lineSize + l * gap + i];
labels [dest] = labels [l * lineSize + l * gap + i];
checkBoxes [dest] = checkBoxes [l * lineSize + l * gap + i];
pictures [dest] = pictures [l * lineSize + l * gap + i];
eRegisterNumbers [dest] = eRegisterNumbers [l * lineSize + l * gap + i];
radioAddresses [dest] = radioAddresses [l * lineSize + l * gap + i];
serialNumbers [dest] = serialNumbers [l * lineSize + l * gap + i];
assignedSNs [dest] = assignedSNs [l * lineSize + l * gap + i];
assignedRadioAddresses[dest] = assignedRadioAddresses[l * lineSize + l * gap + i];
ckbIndex[l * lineSize + l * gap + i] = dest;
dest++;
}
@ -474,7 +472,6 @@ namespace TBF.Rig.TestMethods.S640Communication
var order = ProcessData.OrderInfo as OrderInfo;
ISession session = ProcessData.TracingDB.SessionFactory.OpenSession();
refRecords = ProcessData.TracingDB.ReadRefRecords(session, order, ProcessData.TracingDB.DefaultOrder, ProcessData.Workflow);
records = ProcessData.TracingDB.ReadRecords(session, order, ProcessData.TracingDB.DefaultOrder, ProcessData.Workflow);
session.Close();
}
@ -520,10 +517,8 @@ namespace TBF.Rig.TestMethods.S640Communication
radioAddresses[i].Text = optoHeads[i].RadioAddress.ToString();
/// Find the housing number in the tracing DDB
Record rec;
ReferenceRecord refRec;
if ((rec = records.FirstOrDefault(x => x.Code == pcbNumber)) != null &&
(refRec = refRecords.FirstOrDefault(x => x.Id == rec.ReferenceRecord.Id)) != null)
if ((refRec = refRecords.FirstOrDefault(x => x.Code2 == pcbNumber)) != null)
{
serialNumbers[i].Text = refRec.Code1;
}