MET08DDUPSP1TBI - v2.43.4 - MethodBaseName

This commit is contained in:
2022-08-08 16:27:23 -07:00
parent ee67aa5403
commit 90c44cffbb
35 changed files with 1131 additions and 238 deletions

View File

@ -16,6 +16,7 @@ internal partial class Main
private static object _IfxTransport;
private static string _CellInstanceName;
private static string _LSL2SQLConnectionString;
private static string _TibcoParameterSubjectPrefix;
private static FileConnectorConfiguration _FileConnectorConfiguration;
internal static void Initialize(ISMTP smtp, string cellInstanceName, FileConnectorConfiguration fileConnectorConfiguration, string lsl2SQLConnectionString)
@ -23,6 +24,7 @@ internal partial class Main
_SMTP = smtp;
_IfxTransport = null;
_CellInstanceName = cellInstanceName;
_TibcoParameterSubjectPrefix = string.Empty;
_LSL2SQLConnectionString = lsl2SQLConnectionString;
_FileConnectorConfiguration = fileConnectorConfiguration;
}
@ -37,6 +39,7 @@ internal partial class Main
}
if (setIfxTransport)
{
_TibcoParameterSubjectPrefix = tibcoParameterSubjectPrefix;
results.Add(string.Concat("IfxTransport Subject: ", tibcoParameterSubject));
IfxDoc ifxDoc = new();
ifxDoc.Add(IfxConst.SUBJECT_PREFIX, tibcoParameterSubjectPrefix);
@ -176,8 +179,8 @@ internal partial class Main
{ envelopeDocument.SaveAsXml(fileName); }
catch (Exception) { }
}
if (!subject.EndsWith("GETJOBS"))
throw new Exception();
if (!subject.Contains(_TibcoParameterSubjectPrefix))
throw new Exception("Invalid Subject");
mid = GetJobsMID(envelopeDocument);
Job job = new(_LSL2SQLConnectionString, mid);
if (job.IsAreaSi)

View File

@ -777,7 +777,7 @@ public class Description : IDescription, Shared.Properties.IDescription
MID = logistics.MID,
//
Date = processData.Date,
Employee = processData.Operator,
Employee = processData.Employee,
Lot = processData.Lot,
PSN = processData.PSN,
Reactor = processData.Reactor,

View File

@ -0,0 +1,21 @@
namespace Adaptation.FileHandlers.txt;
public class Descriptor
{
public string Employee { get; private set; }
public string Lot { get; private set; }
public string PSN { get; private set; }
public string RDS { get; private set; }
public string Reactor { get; private set; }
public Descriptor(string employee, string lot, string psn, string rds, string reactor)
{
Employee = employee;
Lot = lot;
PSN = psn;
RDS = rds;
Reactor = reactor;
}
}

View File

@ -105,8 +105,14 @@ public class FileRead : Shared.FileRead, IFileRead
IProcessData iProcessData = new ProcessData(this, _Logistics, results.Item4);
if (iProcessData is not ProcessData processData)
throw new Exception(string.Concat("A) No Data - ", dateTime.Ticks));
string mid = string.Concat(processData.Reactor, "-", processData.RDS, "-", processData.PSN);
mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
string mid;
if (!string.IsNullOrEmpty(processData.Employee) && string.IsNullOrEmpty(processData.Reactor) && string.IsNullOrEmpty(processData.RDS) && string.IsNullOrEmpty(processData.PSN))
mid = processData.Employee;
else
{
mid = string.Concat(processData.Reactor, "-", processData.RDS, "-", processData.PSN);
mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
}
SetFileParameterLotID(mid);
_Logistics.Update(mid, processData.Reactor);
if (!iProcessData.Details.Any())

View File

@ -24,14 +24,6 @@ public class ProcessData : IProcessData
public string JobID { get; set; }
public string MesEntity { get; set; }
public string Date { get; set; }
public string Lot { get; set; }
public string Operator { get; set; }
public string PSN { get; set; }
public string RDS { get; set; }
public string Reactor { get; set; }
public string Recipe { get; set; }
public string Session { get; set; }
public string UniqueID { get; set; }
public string DcnAllMax { get; set; }
public string DcnAllMean { get; set; }
public string DcnAllMin { get; set; }
@ -272,6 +264,14 @@ public class ProcessData : IProcessData
public string DwnSlipMean { get; set; }
public string DwnSlipMin { get; set; }
public string DwnSlipStdDev { get; set; }
public string Employee { get; set; }
public string Lot { get; set; }
public string PSN { get; set; }
public string RDS { get; set; }
public string Reactor { get; set; }
public string Recipe { get; set; }
public string Session { get; set; }
public string UniqueID { get; set; }
List<object> Shared.Properties.IProcessData.Details => _Details;
@ -457,12 +457,79 @@ public class ProcessData : IProcessData
}
}
private void ParseHeader(ILogistics logistics, List<WaferSummaryInfo> dcnTotals, List<WaferSummaryInfo> dwnTotals, List<WaferSummaryInfo> dnnTotals)
public static Descriptor GetDescriptor(string text)
{
_I = 0;
_Data = string.Empty;
string summaryReportText = File.ReadAllText(logistics.ReportFullPath);
if (!string.IsNullOrEmpty(summaryReportText))
Descriptor result;
string lot;
string rds;
string psn;
string reactor;
string employee;
const string defaultPSN = "0000";
const string defaultReactor = "00";
const string defaultRDS = "000000";
if (text.Length is 2 or 3)
{
lot = text;
employee = text;
rds = defaultRDS;
psn = defaultPSN;
reactor = defaultReactor;
}
else
{
// Remove illegal characters \/:*?"<>| found in the Lot.
lot = Regex.Replace(text, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
string[] segments = lot.Split('-');
if (segments.Length == 0)
reactor = defaultReactor;
else
reactor = segments[0];
if (segments.Length <= 1)
rds = defaultRDS;
else
rds = segments[1];
if (reactor.Length > 3)
{
rds = reactor;
reactor = defaultReactor;
}
if (segments.Length <= 2)
psn = defaultPSN;
else
psn = segments[2];
if (segments.Length <= 3)
employee = string.Empty;
else
employee = segments[3];
}
result = new(employee, lot, psn, rds, reactor);
return result;
}
private void Set(ILogistics logistics, string summaryReportText)
{
string lot;
string rds;
string psn;
string recipe;
string reactor;
string session;
string employee;
const string defaultPSN = "0000";
const string defaultReactor = "00";
const string defaultRDS = "000000";
if (string.IsNullOrEmpty(summaryReportText))
{
rds = defaultRDS;
psn = defaultPSN;
lot = string.Empty;
recipe = string.Empty;
session = string.Empty;
reactor = defaultReactor;
employee = string.Empty;
}
else
{
_Log.Debug("HeaderFile() - Beginning");
_I = 0;
@ -470,29 +537,38 @@ public class ProcessData : IProcessData
ScanPast("Long Wafer Summary");
_ = GetToEOL();
ScanPast("Session:");
string toEOL = GetToEOL(true);
string str = toEOL;
Recipe = toEOL;
Session = str;
recipe = GetToEOL(true);
session = recipe;
ScanPast("Lot ID:");
Lot = GetToEOL(true);
// Remove illegal characters \/:*?"<>| found in the Lot.
Lot = Regex.Replace(Lot, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
string[] segments = Lot.Split(new char[] { '-' });
_Log.Debug("HeaderFile() - Debug A");
if (segments.Length > 1)
{
Reactor = segments[0];
RDS = segments[1];
if (segments.Length > 2)
{
PSN = segments[2];
if (segments.Length > 3)
Operator = segments[3];
}
}
lot = GetToEOL(true);
Descriptor descriptor = GetDescriptor(lot);
lot = descriptor.Lot;
psn = descriptor.PSN;
rds = descriptor.RDS;
reactor = descriptor.Reactor;
employee = descriptor.Employee;
}
Lot = lot;
PSN = psn;
RDS = rds;
Recipe = recipe;
Reactor = reactor;
Session = session;
Employee = employee;
UniqueID = string.Format("{0}_{1}_{2}", logistics.JobID, lot, Path.GetFileNameWithoutExtension(logistics.ReportFullPath));
}
private void ParseHeader(ILogistics logistics, List<WaferSummaryInfo> dcnTotals, List<WaferSummaryInfo> dwnTotals, List<WaferSummaryInfo> dnnTotals)
{
_I = 0;
_Data = string.Empty;
string summaryReportText = File.ReadAllText(logistics.ReportFullPath);
Set(logistics, summaryReportText);
if (!string.IsNullOrEmpty(summaryReportText))
{
_Log.Debug("HeaderFile() - Debug B");
_I = 0;
string[] segments;
_Data = summaryReportText;
GetWaferSummaryInfo(dcnTotals, "DCN Totals");
ScanPast("Min");
@ -784,8 +860,6 @@ public class ProcessData : IProcessData
DnnBin8StdDev = segments[19];
}
}
//UniqueID = string.Format("{0}_{1}_Summary_{2}", logistics.JobID, Lot, Date);
UniqueID = string.Format("{0}_{1}_{2}", logistics.JobID, Lot, Path.GetFileNameWithoutExtension(logistics.ReportFullPath));
}
/// <summary>