Refactor file handling classes: rename MoveAllFiles to MoveMapFiles, add MoveTextFiles, and update logistics sequence handling across various FileRead implementations.

Bug fix for recipe to session

Add one to run count
This commit is contained in:
2025-11-24 11:10:18 -07:00
parent 8c0380b6bf
commit 127a24b77e
14 changed files with 240 additions and 70 deletions

View File

@ -611,11 +611,12 @@ public class WSRequest
Details.Add(detail);
}
Date = logistics.DateTimeFromSequence.ToString();
UniqueID = $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}";
string uniqueId = Logistics.GetUniqueId(logistics);
UniqueID = uniqueId;
for (int i = 0; i < Details.Count; i++)
{
Details[i].HeaderUniqueID = UniqueID;
Details[i].UniqueID = $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}_Item-{i + 1}";
Details[i].UniqueID = $"{uniqueId}_Item-{i + 1}";
}
}
@ -624,7 +625,7 @@ public class WSRequest
/// </summary>
/// <param name="sourceFile">source file to be converted to PDF</param>
/// <returns></returns>
private static string ConvertSourceFileToPdf(string ghostPCLFileName, string sourceFile)
public static string ConvertSourceFileToPdf(string ghostPCLFileName, string sourceFile)
{
string result = Path.ChangeExtension(sourceFile, ".pdf");
if (!File.Exists(result))
@ -661,29 +662,48 @@ public class WSRequest
internal static void PostOpenInsightMetrologyViewerAttachments(IFileRead fileRead, Logistics logistics, string openInsightMetrologyViewerAPI, string ghostPCLFileName, List<txt.Description> descriptions, string matchDirectory, WS.Results results, string headerIdDirectory)
#pragma warning restore IDE0060
{
string extension;
List<string> attachmentFiles = new();
string uniqueId = Logistics.GetUniqueId(logistics);
string[] summaryFiles = Directory.GetFiles(matchDirectory, "*.txt", SearchOption.TopDirectoryOnly);
if (summaryFiles.Length != 1)
throw new Exception($"Invalid source file count for <{results.HeaderId}>!");
string[] prnFiles = Directory.GetFiles(matchDirectory, "WaferMap*.prn", SearchOption.TopDirectoryOnly);
List<string> pdfFiles = new();
foreach (string prnFile in prnFiles.OrderBy(l => l))
pdfFiles.Add(ConvertSourceFileToPdf(ghostPCLFileName, prnFile));
if (pdfFiles.Count == 0 || pdfFiles.Count != descriptions.Count)
throw new Exception("Invalid *.pdf file count!");
string[] xpsFiles = Directory.GetFiles(matchDirectory, "*.xps", SearchOption.TopDirectoryOnly);
if (xpsFiles.Length > 0)
{
extension = ".xps";
foreach (string xpsFile in xpsFiles.OrderBy(l => l))
attachmentFiles.Add(xpsFile);
if (attachmentFiles.Count == 0 || attachmentFiles.Count != descriptions.Count)
throw new Exception("Invalid *.pdf file count!");
}
else
{
string pdfFile;
extension = ".pdf";
string[] prnFiles = Directory.GetFiles(matchDirectory, "WaferMap*.prn", SearchOption.TopDirectoryOnly);
foreach (string prnFile in prnFiles.OrderBy(l => l))
{
pdfFile = ConvertSourceFileToPdf(ghostPCLFileName, prnFile);
attachmentFiles.Add(pdfFile);
}
if (attachmentFiles.Count == 0 || attachmentFiles.Count != descriptions.Count)
throw new Exception("Invalid *.pdf file count!");
}
List<WS.Attachment> dataAttachments = new();
List<WS.Attachment> headerAttachments = new()
{
new WS.Attachment(results, headerIdDirectory, $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}", "Data.txt", summaryFiles[0])
new WS.Attachment(results, headerIdDirectory, uniqueId, "Data.txt", summaryFiles[0])
};
int count;
if (pdfFiles.Count < descriptions.Count)
count = pdfFiles.Count;
if (attachmentFiles.Count < descriptions.Count)
count = attachmentFiles.Count;
else
count = descriptions.Count;
for (int i = 0; i < count; i++)
{
if (!string.IsNullOrEmpty(pdfFiles[i]))
dataAttachments.Add(new WS.Attachment(results, headerIdDirectory, $"{logistics.JobID}_{logistics.MID}_{logistics.DateTimeFromSequence:yyyyMMddHHmmssffff}_Item-{i + 1}", "Image.pdf", pdfFiles[i]));
if (!string.IsNullOrEmpty(attachmentFiles[i]))
dataAttachments.Add(new WS.Attachment(results, headerIdDirectory, $"{uniqueId}_Item-{i + 1}", $"Image{extension}", attachmentFiles[i]));
}
if (dataAttachments.Count == 0 || dataAttachments.Count != descriptions.Count)
throw new Exception($"Invalid attachment count! {dataAttachments.Count} != {descriptions.Count}");