ProcessDataStandardFormat

run.json
descriptions.json
Infineon.Mesa.PDF.Text.Stripper 4.8.0.2
MSTEST0037
This commit is contained in:
2025-03-03 11:42:17 -07:00
parent 959bf66fa9
commit 4d41e545b3
12 changed files with 283 additions and 177 deletions

View File

@ -1,24 +1,26 @@
namespace Adaptation.FileHandlers.TIBCO.Transport;
#nullable enable
public class Input
{
public string Area { get; }
public string EquipmentType { get; }
public string MID { get; }
public string Slot { get; }
public string MesEntity { get; }
public string Recipe { get; }
public string Sequence { get; }
public string? Area { get; }
public string? EquipmentType { get; }
public string? MID { get; }
public string? Slot { get; }
public string? MesEntity { get; }
public string? Recipe { get; }
public string? Sequence { get; }
[System.Text.Json.Serialization.JsonConstructor]
public Input(string area,
string equipmentType,
string mid,
string slot,
string mesEntity,
string recipe,
string sequence)
public Input(string? area,
string? equipmentType,
string? mid,
string? slot,
string? mesEntity,
string? recipe,
string? sequence)
{
Area = area;
@ -30,7 +32,7 @@ public class Input
Sequence = sequence;
}
internal Input(Input input, string mid)
internal Input(Input input, string? mid)
{
Area = input.Area;
EquipmentType = input.EquipmentType;

View File

@ -174,7 +174,7 @@ public partial class Job
private static bool IsInvalid(int? rdsNumber) => rdsNumber is null or < 100000 or > 100000000;
private static (string?, string?) GetReactorAndRDS(string text, string formattedText, string[] segments)
private static (string?, string?) GetReactorAndRDS(string? text, string formattedText, string[] segments)
{
string? rds;
string? reactor;
@ -243,10 +243,13 @@ public partial class Job
string? reactor;
string? employee;
int? reactorNumber;
string[] segments = input.MID.Split(new char[] { '-' });
// bool hasRDS = Regex.IsMatch(input.MID, "[-]?([QP][0-9]{4,}|[0-9]{5,})[-]?");
string formattedText = Regex.Replace(input.MID, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
(reactor, rds) = GetReactorAndRDS(input.MID, formattedText, segments);
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
if (mid.Length > 2 && mid[0] == '1' && (mid[1] == 'T' || mid[1] == 't'))
mid = mid.Substring(2);
mid = Regex.Replace(mid, @"[\\,\/,\:,\*,\?,\"",\<,\>,\|]", "_").Split('\r')[0].Split('\n')[0];
string[] segments = mid.Split(new char[] { '-' });
// bool hasRDS = Regex.IsMatch(mid, "[-]?([QP][0-9]{4,}|[0-9]{5,})[-]?");
(reactor, rds) = GetReactorAndRDS(input.MID, mid, segments);
if (string.IsNullOrEmpty(rds))
rdsNumber = 0;
else
@ -381,8 +384,9 @@ public partial class Job
WorkOrder workOrder;
Task<Stream> streamTask;
Task<HttpResponseMessage> httpResponseMessageTask;
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
JsonSerializerOptions jsonSerializerOptions = new() { PropertyNameCaseInsensitive = true };
int? reactor = !int.TryParse(input.MID.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
int? reactor = mid.Length < 2 || !int.TryParse(mid.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
httpResponseMessageTask = httpClient.GetAsync($"{httpClient.BaseAddress}/reactors/{reactor}");
httpResponseMessageTask.Wait();
if (httpResponseMessageTask.Result.StatusCode != System.Net.HttpStatusCode.OK)
@ -450,7 +454,8 @@ public partial class Job
int? rds;
long sequence = 0;
WorkOrder workOrder;
int? reactor = !int.TryParse(input.MID.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
string mid = string.IsNullOrEmpty(input.MID) ? string.Empty : input.MID;
int? reactor = mid.Length < 2 || !int.TryParse(mid.Substring(0, 2), out int reactorNumber) ? null : reactorNumber;
bool parsed = !string.IsNullOrEmpty(input.Sequence) && long.TryParse(input.Sequence, out sequence);
List<string> files;
if (!parsed || string.IsNullOrEmpty(input.MID))
@ -505,80 +510,85 @@ public partial class Job
private static string GetCommandText(int? rds, int? workOrderNumber, int? workOrderCassette, int? slot, int? reactor)
{ // cSpell:disable
StringBuilder result = new();
_ = result.Append(" select ").
Append(" rr.rds_no ").
Append(" , rr.reactor ").
Append(" , rr.ps_no ").
Append(" , rr.load_lock_side ").
Append(" , rr.reactor_type ").
Append(" , rr.recipe_name ").
Append(" , rr.recipe_no ").
Append(" , rr.spec_type ").
Append(" , ( ").
Append(" select max(wm.zone) ").
Append(" from lsl2sql.dbo.wm_out_slot wm ").
Append(" where wm.wo_no = rr.wo_no ").
Append(" and wm.rds = rr.rds_no ").
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' ').
Append(" ) zone ").
Append(" from lsl2sql.dbo.react_run rr ").
Append(" where rr.rds_no = ").Append(rds is null ? -1 : rds.Value).Append(' ').
Append(" union all ").
Append(" select ").
Append(" rr.rds_no ").
Append(" , rr.reactor ").
Append(" , rr.ps_no ").
Append(" , rr.load_lock_side ").
Append(" , rr.reactor_type ").
Append(" , rr.recipe_name ").
Append(" , rr.recipe_no ").
Append(" , rr.spec_type ").
Append(" , ( ").
Append(" select max(wm.zone) ").
Append(" from lsl2sql.dbo.wm_out_slot wm ").
Append(" where wm.wo_no = rr.wo_no ").
Append(" and wm.rds = rr.rds_no ").
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' ').
Append(" ) zone ").
Append(" from lsl2sql.dbo.react_run rr ").
Append(" where rr.rds_no = ( ").
Append(" select max(wm.rds) ").
Append(" from lsl2sql.dbo.wm_out_slot wm ").
Append(" where wm.wo_no = ").Append(workOrderNumber is null ? -1 : workOrderNumber.Value).Append(' ').
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' ').
Append(" ) ").
Append(" union all ").
Append(" select ").
Append(" rr.rds_no ").
Append(" , rr.reactor ").
Append(" , rr.ps_no ").
Append(" , rr.load_lock_side ").
Append(" , rr.reactor_type ").
Append(" , rr.recipe_name ").
Append(" , rr.recipe_no ").
Append(" , rr.spec_type ").
Append(" , ( ").
Append(" select max(wm.zone) ").
Append(" from lsl2sql.dbo.wm_out_slot wm ").
Append(" where wm.wo_no = rr.wo_no ").
Append(" and wm.rds = rr.rds_no ").
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
Append(" and wm.slot_no = ").Append(slot is null ? -1 : slot.Value).Append(' ').
Append(" ) zone ").
Append(" from lsl2sql.dbo.react_run rr ").
Append(" where rr.rds_no = ( ").
Append(" select max(qa.rds_no) ").
Append(" from lsl2sql.dbo.react_run qa ").
Append(" where qa.load_sig != '' ").
Append(" and qa.load_sig_dtm > '2023-05-01 00:00:00.000' ").
Append(" and qa.reactor = ").Append(reactor is null ? -1 : reactor.Value).Append(' ').
Append(" ) ").
Append(" for json path ");
return result.ToString();
List<string> results = new();
int rdsValue = rds is null ? -1 : rds.Value;
int slotValue = slot is null ? -1 : slot.Value;
int reactorValue = reactor is null ? -1 : reactor.Value;
int workOrderNumberValue = workOrderNumber is null ? -1 : workOrderNumber.Value;
int workOrderCassetteValue = workOrderCassette is null ? -1 : workOrderCassette.Value;
results.Add(" select ");
results.Add(" rr.rds_no ");
results.Add(" , rr.reactor ");
results.Add(" , rr.ps_no ");
results.Add(" , rr.load_lock_side ");
results.Add(" , rr.reactor_type ");
results.Add(" , rr.recipe_name ");
results.Add(" , rr.recipe_no ");
results.Add(" , rr.spec_type ");
results.Add(" , ( ");
results.Add(" select max(wm.zone) ");
results.Add(" from lsl2sql.dbo.wm_out_slot wm ");
results.Add(" where wm.wo_no = rr.wo_no ");
results.Add(" and wm.rds = rr.rds_no ");
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
results.Add($" and wm.slot_no = {slotValue}");
results.Add(" ) zone ");
results.Add(" from lsl2sql.dbo.react_run rr ");
results.Add($" where rr.rds_no = {rdsValue}");
results.Add(" union all ");
results.Add(" select ");
results.Add(" rr.rds_no ");
results.Add(" , rr.reactor ");
results.Add(" , rr.ps_no ");
results.Add(" , rr.load_lock_side ");
results.Add(" , rr.reactor_type ");
results.Add(" , rr.recipe_name ");
results.Add(" , rr.recipe_no ");
results.Add(" , rr.spec_type ");
results.Add(" , ( ");
results.Add(" select max(wm.zone) ");
results.Add(" from lsl2sql.dbo.wm_out_slot wm ");
results.Add(" where wm.wo_no = rr.wo_no ");
results.Add(" and wm.rds = rr.rds_no ");
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
results.Add($" and wm.slot_no = {slotValue}");
results.Add(" ) zone ");
results.Add(" from lsl2sql.dbo.react_run rr ");
results.Add(" where rr.rds_no = ( ");
results.Add(" select max(wm.rds) ");
results.Add(" from lsl2sql.dbo.wm_out_slot wm ");
results.Add($" where wm.wo_no = {workOrderNumberValue}");
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
results.Add($" and wm.slot_no = {slotValue}");
results.Add(" ) ");
results.Add(" union all ");
results.Add(" select ");
results.Add(" rr.rds_no ");
results.Add(" , rr.reactor ");
results.Add(" , rr.ps_no ");
results.Add(" , rr.load_lock_side ");
results.Add(" , rr.reactor_type ");
results.Add(" , rr.recipe_name ");
results.Add(" , rr.recipe_no ");
results.Add(" , rr.spec_type ");
results.Add(" , ( ");
results.Add(" select max(wm.zone) ");
results.Add(" from lsl2sql.dbo.wm_out_slot wm ");
results.Add(" where wm.wo_no = rr.wo_no ");
results.Add(" and wm.rds = rr.rds_no ");
results.Add($" and wm.in_cass_no = {workOrderCassetteValue}");
results.Add($" and wm.slot_no = {slotValue}");
results.Add(" ) zone ");
results.Add(" from lsl2sql.dbo.react_run rr ");
results.Add(" where rr.rds_no = ( ");
results.Add(" select max(qa.rds_no) ");
results.Add(" from lsl2sql.dbo.react_run qa ");
results.Add(" where qa.load_sig != '' ");
results.Add(" and qa.load_sig_dtm > '2023-05-01 00:00:00.000' ");
results.Add($" and qa.reactor = {reactorValue}");
results.Add(" ) ");
results.Add(" for json path ");
return string.Join(Environment.NewLine, results);
} // cSpell:restore
private static CommonB Get(string lsl2SQLConnectionString, string layer, string psn, int? reactorNumber, int? slotNumber, int? workOrderNumber, int? workOrderCassette, string zone)