Removed save-open-insight-file to use process-data-standard-format instead
Removed last logic
This commit is contained in:
		| @ -8,6 +8,7 @@ using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Text.Json; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.IQSSi; | ||||
| @ -109,6 +110,59 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     private static Tuple<string, string> GetLines(Logistics logistics, List<txt.Description> descriptions) | ||||
|     { | ||||
|         StringBuilder result = new(); | ||||
|         char del = '\t'; | ||||
|         txt.Description x = descriptions[0]; | ||||
|         _ = result.Append(x.DcnLpdMin).Append(del).    // 001 -  | ||||
|             Append(x.DcnLpdMax).Append(del).       // 002 -  | ||||
|             Append(x.DcnLpdMean).Append(del).      // 003 - DCN LPD | ||||
|             Append(x.DcnAreaCountMin).Append(del). // 004 -  | ||||
|             Append(x.DcnAreaCountMax).Append(del). // 005 -  | ||||
|             Append(x.DcnAreaCountMean).Append(del).// 006 - DCN Area | ||||
|             Append(x.DcnAreaMin).Append(del).      // 007 -  | ||||
|             Append(x.DcnAreaMax).Append(del).      // 008 -  | ||||
|             Append(x.Date).Append(del).            // 009 -  | ||||
|             Append(x.DcnHazeAvgMean).Append(del).  // 010 - Haze Average | ||||
|             Append(string.Empty).Append(del).              // 011 -  | ||||
|             Append(string.Empty).Append(del).              // 012 -  | ||||
|             Append(string.Empty).Append(del).              // 013 -  | ||||
|             Append(string.Empty).Append(del).              // 014 -  | ||||
|             Append(string.Empty).Append(del).              // 015 -  | ||||
|             Append(string.Empty).Append(del).              // 016 -  | ||||
|             Append(string.Empty).Append(del).              // 017 -  | ||||
|             Append(string.Empty).Append(del).              // 018 -  | ||||
|             Append(string.Empty).Append(del).              // 019 -  | ||||
|             Append(string.Empty).Append(del).              // 020 -  | ||||
|             Append(string.Empty).Append(del).              // 021 -  | ||||
|             Append(string.Empty).Append(del).              // 022 -  | ||||
|             Append(string.Empty).Append(del).              // 023 -  | ||||
|             Append(string.Empty).Append(del).              // 024 -  | ||||
|             Append(string.Empty).Append(del).              // 025 -  | ||||
|             Append(string.Empty).Append(del).              // 026 -  | ||||
|             Append(string.Empty).Append(del).              // 027 -  | ||||
|             Append(x.RDS).Append(del).             // 028 - Lot | ||||
|             Append(x.Reactor).Append(del).         // 029 - Process | ||||
|             Append(x.Recipe).Append(del).          // 030 - Part | ||||
|             Append(x.DcnScrMean).Append(del).      // 031 - Scratch Count | ||||
|             Append(string.Empty).Append(del).              // 032 -  | ||||
|             Append(string.Empty).Append(del).              // 033 -  | ||||
|             Append(string.Empty).Append(del).              // 034 -  | ||||
|             Append(x.DcnMicroScrMean).Append(del). // 035 - Scratch Length | ||||
|             Append(string.Empty).Append(del).              // 036 -  | ||||
|             Append(string.Empty).Append(del).              // 037 -  | ||||
|             Append(string.Empty).Append(del).              // 038 -  | ||||
|             Append(x.DcnAllMean).Append(del).      // 039 - Average Sum of Defects | ||||
|             Append(x.DcnAllMax).Append(del).       // 040 - Max Sum of defects | ||||
|             Append(x.DcnAllMin).Append(del).       // 041 - Min Sum of Defects | ||||
|             Append(string.Empty).Append(del).              // 042 -  | ||||
|             Append(logistics.MesEntity).Append(del).                 // 043 -  | ||||
|             Append(x.DcnAreaMean).Append(del).     // 044 - DCN MM2 | ||||
|             AppendLine(); | ||||
|         return new Tuple<string, string>(result.ToString(), x.Date); | ||||
|     } | ||||
|  | ||||
|     private void SaveIQSFile(string reportFullPath, DateTime dateTime, List<txt.Description> descriptions, Test[] tests) | ||||
|     { | ||||
|         if (tests.Length == 0) | ||||
| @ -116,7 +170,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         else | ||||
|         { | ||||
|             bool isDummyRun = false; | ||||
|             Tuple<string, string> lines = OpenInsight.FileRead.GetLines(_Logistics, descriptions); | ||||
|             Tuple<string, string> lines = GetLines(_Logistics, descriptions); | ||||
|             string check = lines.Item1.Replace(lines.Item2, "$Date$"); | ||||
|             ScopeInfo scopeInfo = new(tests[0], _IQSFile); | ||||
|             List<(Shared.Properties.IScopeInfo, string)> collection = new(); | ||||
|  | ||||
| @ -268,7 +268,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private static ReadOnlyCollection<Pre> GetPreCollection(int numberLength, string parentDirectory, ReadOnlyCollection<string> matchingFiles, bool _) | ||||
|     private static ReadOnlyCollection<Pre> GetPreCollection(int numberLength, string parentDirectory, ReadOnlyCollection<string> matchingFiles) | ||||
|     { | ||||
|         List<Pre> results = new(); | ||||
|         Pre pre; | ||||
| @ -366,10 +366,7 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|             { CreatePointerFile(numberLength, parentParentDirectory, matchingFiles); } | ||||
|             catch (Exception) { } | ||||
|         } | ||||
|         JsonElement[] jsonElements = ProcessDataStandardFormat.GetArray(processDataStandardFormat); | ||||
|         List<txt.Description> descriptions = txt.ProcessData.GetDescriptions(jsonElements); | ||||
|         bool mesEntityMatchesProcess = descriptions.Count > 0 && descriptions[0].MesEntity == descriptions[0].Reactor; | ||||
|         ReadOnlyCollection<Pre> preCollection = GetPreCollection(numberLength, parentParentDirectory, matchingFiles, mesEntityMatchesProcess); | ||||
|         ReadOnlyCollection<Pre> preCollection = GetPreCollection(numberLength, parentParentDirectory, matchingFiles); | ||||
|         ReadOnlyCollection<PreWith> preWithCollection = GetPreWithCollection(preCollection); | ||||
|         MoveCollection(dateTime, processDataStandardFormat, preWithCollection); | ||||
|         return results; | ||||
|  | ||||
| @ -9,7 +9,6 @@ using System.Collections.Generic; | ||||
| using System.Globalization; | ||||
| using System.IO; | ||||
| using System.Linq; | ||||
| using System.Text; | ||||
| using System.Text.Json; | ||||
|  | ||||
| namespace Adaptation.FileHandlers.OpenInsight; | ||||
| @ -17,9 +16,7 @@ namespace Adaptation.FileHandlers.OpenInsight; | ||||
| public class FileRead : Shared.FileRead, IFileRead | ||||
| { | ||||
|  | ||||
|     private string _LastLines; | ||||
|     private readonly string _IqsConnectionString; | ||||
|     private readonly string _OpenInsightFilePattern; | ||||
|     private readonly string _OpenInsightApiECDirectory; | ||||
|  | ||||
|     public FileRead(ISMTP smtp, Dictionary<string, string> fileParameter, string cellInstanceName, int? connectionCount, string cellInstanceConnectionName, FileConnectorConfiguration fileConnectorConfiguration, string equipmentTypeName, string parameterizedModelObjectDefinitionType, IList<ModelObjectParameterDefinition> modelObjectParameters, string equipmentDictionaryName, Dictionary<string, List<long>> dummyRuns, Dictionary<long, List<WS.Results>> staticRuns, bool useCyclicalForDescription, bool isEAFHosted) : | ||||
| @ -34,10 +31,8 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         if (!_IsDuplicator) | ||||
|             throw new Exception(cellInstanceConnectionName); | ||||
|         _LastLines = string.Empty; | ||||
|         _IqsConnectionString = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "IQS.ConnectionString"); | ||||
|         _OpenInsightApiECDirectory = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "API.EC.Directory"); | ||||
|         _OpenInsightFilePattern = GetPropertyValue(cellInstanceConnectionName, modelObjectParameters, "OpenInsight.FilePattern"); | ||||
|     } | ||||
|  | ||||
|     void IFileRead.Move(Tuple<string, Test[], JsonElement[], List<FileInfo>> extractResults, Exception exception) | ||||
| @ -115,61 +110,9 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|         return results; | ||||
|     } | ||||
|  | ||||
|     internal static Tuple<string, string> GetLines(Logistics logistics, List<txt.Description> descriptions) | ||||
|     { | ||||
|         StringBuilder result = new(); | ||||
|         char del = '\t'; | ||||
|         txt.Description x = descriptions[0]; | ||||
|         _ = result.Append(x.DcnLpdMin).Append(del).    // 001 -  | ||||
|             Append(x.DcnLpdMax).Append(del).       // 002 -  | ||||
|             Append(x.DcnLpdMean).Append(del).      // 003 - DCN LPD | ||||
|             Append(x.DcnAreaCountMin).Append(del). // 004 -  | ||||
|             Append(x.DcnAreaCountMax).Append(del). // 005 -  | ||||
|             Append(x.DcnAreaCountMean).Append(del).// 006 - DCN Area | ||||
|             Append(x.DcnAreaMin).Append(del).      // 007 -  | ||||
|             Append(x.DcnAreaMax).Append(del).      // 008 -  | ||||
|             Append(x.Date).Append(del).            // 009 -  | ||||
|             Append(x.DcnHazeAvgMean).Append(del).  // 010 - Haze Average | ||||
|             Append(string.Empty).Append(del).              // 011 -  | ||||
|             Append(string.Empty).Append(del).              // 012 -  | ||||
|             Append(string.Empty).Append(del).              // 013 -  | ||||
|             Append(string.Empty).Append(del).              // 014 -  | ||||
|             Append(string.Empty).Append(del).              // 015 -  | ||||
|             Append(string.Empty).Append(del).              // 016 -  | ||||
|             Append(string.Empty).Append(del).              // 017 -  | ||||
|             Append(string.Empty).Append(del).              // 018 -  | ||||
|             Append(string.Empty).Append(del).              // 019 -  | ||||
|             Append(string.Empty).Append(del).              // 020 -  | ||||
|             Append(string.Empty).Append(del).              // 021 -  | ||||
|             Append(string.Empty).Append(del).              // 022 -  | ||||
|             Append(string.Empty).Append(del).              // 023 -  | ||||
|             Append(string.Empty).Append(del).              // 024 -  | ||||
|             Append(string.Empty).Append(del).              // 025 -  | ||||
|             Append(string.Empty).Append(del).              // 026 -  | ||||
|             Append(string.Empty).Append(del).              // 027 -  | ||||
|             Append(x.RDS).Append(del).             // 028 - Lot | ||||
|             Append(x.Reactor).Append(del).         // 029 - Process | ||||
|             Append(x.Recipe).Append(del).          // 030 - Part | ||||
|             Append(x.DcnScrMean).Append(del).      // 031 - Scratch Count | ||||
|             Append(string.Empty).Append(del).              // 032 -  | ||||
|             Append(string.Empty).Append(del).              // 033 -  | ||||
|             Append(string.Empty).Append(del).              // 034 -  | ||||
|             Append(x.DcnMicroScrMean).Append(del). // 035 - Scratch Length | ||||
|             Append(string.Empty).Append(del).              // 036 -  | ||||
|             Append(string.Empty).Append(del).              // 037 -  | ||||
|             Append(string.Empty).Append(del).              // 038 -  | ||||
|             Append(x.DcnAllMean).Append(del).      // 039 - Average Sum of Defects | ||||
|             Append(x.DcnAllMax).Append(del).       // 040 - Max Sum of defects | ||||
|             Append(x.DcnAllMin).Append(del).       // 041 - Min Sum of Defects | ||||
|             Append(string.Empty).Append(del).              // 042 -  | ||||
|             Append(logistics.MesEntity).Append(del).                 // 043 -  | ||||
|             Append(x.DcnAreaMean).Append(del).     // 044 - DCN MM2 | ||||
|             AppendLine(); | ||||
|         return new Tuple<string, string>(result.ToString(), x.Date); | ||||
|     } | ||||
|  | ||||
|     private void SaveOpenInsightFile(string reportFullPath, DateTime dateTime, ProcessDataStandardFormat processDataStandardFormat, List<txt.Description> descriptions, Test[] tests) | ||||
|     { | ||||
|         string duplicateFile; | ||||
|         bool isDummyRun = false; | ||||
|         List<(Shared.Properties.IScopeInfo, string)> collection = new(); | ||||
|         string duplicateDirectory = Path.Combine(_FileConnectorConfiguration.SourceFileLocation, _CellInstanceName); | ||||
| @ -185,35 +128,36 @@ public class FileRead : Shared.FileRead, IFileRead | ||||
|             if (!Directory.Exists(duplicateDirectory)) | ||||
|                 _ = Directory.CreateDirectory(duplicateDirectory); | ||||
|         } | ||||
|         string duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); | ||||
|         if (descriptions.Count == 0 || tests.Length == 0) | ||||
|             _LastLines = string.Empty; | ||||
|             duplicateFile = Path.Combine(duplicateDirectory, Path.GetFileName(reportFullPath)); | ||||
|         else | ||||
|         { | ||||
|             Tuple<string, string> lines = GetLines(_Logistics, descriptions); | ||||
|             string check = lines.Item1.Replace(lines.Item2, "$Date$"); | ||||
|             bool save = string.IsNullOrEmpty(_LastLines) || check != _LastLines; | ||||
|             if (save && !string.IsNullOrEmpty(check)) | ||||
|             long? subgroupId; | ||||
|             string fileName = Path.GetFileName(reportFullPath); | ||||
|             long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks; | ||||
|             long preWait = _FileConnectorConfiguration?.FileHandleWaitTime is null ? dateTime.AddMilliseconds(1234).Ticks : dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks; | ||||
|             if (string.IsNullOrEmpty(descriptions[0].Reactor) || string.IsNullOrEmpty(descriptions[0].PSN)) | ||||
|                 subgroupId = null; | ||||
|             else | ||||
|                 (subgroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait); | ||||
|             if (_StaticRuns.TryGetValue(_Logistics.Sequence, out List<WS.Results> wsResults)) | ||||
|             { | ||||
|                 long? subgroupId; | ||||
|                 _LastLines = check; | ||||
|                 long breakAfter = dateTime.AddSeconds(_BreakAfterSeconds).Ticks; | ||||
|                 long preWait = _FileConnectorConfiguration?.FileHandleWaitTime is null ? dateTime.AddMilliseconds(1234).Ticks : dateTime.AddMilliseconds(_FileConnectorConfiguration.FileHandleWaitTime.Value).Ticks; | ||||
|                 if (string.IsNullOrEmpty(descriptions[0].Reactor) || string.IsNullOrEmpty(descriptions[0].PSN)) | ||||
|                     subgroupId = null; | ||||
|                 else | ||||
|                     (subgroupId, int? _, string _) = FromIQS.GetCommandText(_IqsConnectionString, _Logistics, descriptions[0], breakAfter, preWait); | ||||
|                 if (subgroupId is null) | ||||
|                     collection.Add(new(new ScopeInfo(tests[0], _OpenInsightFilePattern), lines.Item1)); | ||||
|                 else | ||||
|                     collection.Add(new(new ScopeInfo(tests[0], $"{subgroupId.Value} {_OpenInsightFilePattern}"), lines.Item1)); | ||||
|                 string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); | ||||
|                 FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, processDataStandardFormat, descriptions.First(), lines.Item1, subgroupId, weekOfYear); | ||||
|                 if (wsResults is null || wsResults.Count != 1) | ||||
|                     throw new NullReferenceException($"{nameof(wsResults)} {wsResults?.Count} != 1 {_Logistics.Sequence}!"); | ||||
|                 lock (_StaticRuns) | ||||
|                     wsResults[0] = WS.Results.Get(wsResults[0], subgroupId); | ||||
|             } | ||||
|             if (!Directory.Exists(duplicateDirectory)) | ||||
|                 _ = Directory.CreateDirectory(duplicateDirectory); | ||||
|             if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|                 WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile); | ||||
|             if (!fileName.StartsWith("Viewer")) | ||||
|                 duplicateFile = Path.Combine(duplicateDirectory, $"{subgroupId} {fileName}".TrimStart()); | ||||
|             else | ||||
|                 duplicateFile = Path.Combine(duplicateDirectory, $"{$"Viewer {subgroupId}".TrimEnd()} {fileName.Replace("Viewer", string.Empty)}"); | ||||
|             string weekOfYear = _Calendar.GetWeekOfYear(_Logistics.DateTimeFromSequence, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00"); | ||||
|             FromIQS.Save(_OpenInsightApiECDirectory, _Logistics, reportFullPath, processDataStandardFormat, descriptions.First(), subgroupId, weekOfYear); | ||||
|         } | ||||
|         if (_IsEAFHosted && _FileConnectorConfiguration.FileScanningIntervalInSeconds > 0) | ||||
|         { | ||||
|             File.Copy(reportFullPath, duplicateFile, overwrite: true); | ||||
|             WaitForFileConsumption(dateTime, descriptions, isDummyRun, successDirectory, duplicateDirectory, collection, duplicateFile); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -376,7 +376,7 @@ public class FromIQS | ||||
|         return result; | ||||
|     } | ||||
|  | ||||
|     internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, ProcessDataStandardFormat processDataStandardFormat, txt.Description description, string lines, long? subGroupId, string weekOfYear) | ||||
|     internal static void Save(string openInsightApiECDirectory, Logistics logistics, string reportFullPath, ProcessDataStandardFormat processDataStandardFormat, txt.Description description, long? subGroupId, string weekOfYear) | ||||
|     { | ||||
|         string checkFile; | ||||
|         string fileName = Path.GetFileName(reportFullPath); | ||||
| @ -390,15 +390,9 @@ public class FromIQS | ||||
|         checkFile = Path.Combine(ecDirectory, fileName); | ||||
|         if (ecExists && !File.Exists(checkFile)) | ||||
|             File.Copy(reportFullPath, checkFile); | ||||
|         checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.txt"); | ||||
|         if (ecExists && !File.Exists(checkFile)) | ||||
|             File.WriteAllText(checkFile, lines); | ||||
|         checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.json"); | ||||
|         if (ecExists && !File.Exists(checkFile)) | ||||
|             File.WriteAllText(checkFile, json); | ||||
|         checkFile = Path.Combine(ecDirectory, $"{logistics.DateTimeFromSequence.Ticks}.lbl"); | ||||
|         if (ecExists && !File.Exists(checkFile)) | ||||
|             File.WriteAllText(checkFile, processDataStandardFormat.Body[processDataStandardFormat.Body.Count - 1]); | ||||
|     } | ||||
|  | ||||
|     private static string GetCommandText(string[] iqsCopyValues) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user