Refactor ProcessDataStandardFormat and add unit tests for v2.61.1

- Updated GetPDSFText method to accept nullable logisticsText parameter.
- Removed unused TryGetPropertyIndex method from ProcessDataStandardFormat.
- Introduced new unit tests for CreateSelfDescription and Extract functionalities in version 2.61.1.
- Implemented logging and file handling in the test classes to ensure proper setup and teardown.
This commit is contained in:
2025-12-02 08:32:55 -07:00
parent 127a24b77e
commit 8ee374b2a8
7 changed files with 739 additions and 306 deletions

View File

@ -719,23 +719,90 @@ public partial class Job
private static string GetCommandText(CommonB commonB, string jobNames)
{ // cSpell:disable
List<string> results = new();
results.Add(" select count(distinct(se.f_sgrp)) count_se_sgrp ");
results.Add(" from [spcepiworld].[dbo].[sgrp_ext] se ");
results.Add(" join [spcepiworld].[dbo].[prcs_dat] pr ");
results.Add(" on se.f_prcs = pr.f_prcs ");
results.Add(" join [spcepiworld].[dbo].[job_dat] jd ");
results.Add(" on se.f_job = jd.f_job ");
results.Add(" join [spcepiworld].[dbo].[part_lot] pl ");
results.Add(" on se.f_lot = pl.f_lot ");
results.Add(" join [spcepiworld].[dbo].[part_dat] pd ");
results.Add(" on se.f_part = pd.f_part ");
results.Add(" join [spcepiworld].[dbo].[test_dat] td ");
results.Add(" on se.f_test = td.f_test ");
results.Add(" where se.f_flag = 0 ");
results.Add($" and pl.f_name = '{commonB.RDSNumber}' ");
results.Add($" and pr.f_name = '{commonB.ReactorNumber}' ");
results.Add($" and pd.f_name = '{commonB.PSN}' ");
results.Add($" and jd.f_name in ({jobNames}) ");
results.Add(" select count(1) ");
results.Add(" from ( ");
results.Add(" select [sid] ");
results.Add(" , [lot] ");
results.Add(" , [process] ");
results.Add(" , [part] ");
results.Add(" , [job] ");
results.Add(" , ( ");
results.Add(" select min(concat( ");
results.Add(" case when sd.f_dsgp = 1729787380 /* CDE SetupFile */ ");
results.Add(" then ds.f_name ");
results.Add(" else '' ");
results.Add(" end, ");
results.Add(" case when sd.f_dsgp = 1657296864 /* CDE Pattern */ ");
results.Add(" then ds.f_name ");
results.Add(" else '' ");
results.Add(" end, ");
results.Add(" case when sd.f_dsgp = 1655312695 /* BioRad, BioRad Stratus, CDE, SP1, TBI and Tencor - Recipe */ ");
results.Add(" then ds.f_name ");
results.Add(" else '' ");
results.Add(" end)) ");
results.Add(" from [spcepiworld].[dbo].[sgrp_dsc] sd ");
results.Add(" join [spcepiworld].[dbo].[desc_dat] ds ");
results.Add(" on sd.f_desc = ds.f_desc ");
results.Add(" where [sid] = sd.f_sgrp ");
results.Add(" and sd.f_dsgp in (1729787380, 1657296864, 1655312695) ");
results.Add(" ) [min recipe] ");
results.Add(" , ( ");
results.Add(" select max(concat( ");
results.Add(" case when sd.f_dsgp = 1729787380 /* CDE SetupFile */ ");
results.Add(" then ds.f_name ");
results.Add(" else '' ");
results.Add(" end, ");
results.Add(" case when sd.f_dsgp = 1657296864 /* CDE Pattern */ ");
results.Add(" then ds.f_name ");
results.Add(" else '' ");
results.Add(" end, ");
results.Add(" case when sd.f_dsgp = 1655312695 /* BioRad, BioRad Stratus, CDE, SP1, TBI and Tencor - Recipe */ ");
results.Add(" then ds.f_name ");
results.Add(" else '' ");
results.Add(" end)) ");
results.Add(" from [spcepiworld].[dbo].[sgrp_dsc] sd ");
results.Add(" join [spcepiworld].[dbo].[desc_dat] ds ");
results.Add(" on sd.f_desc = ds.f_desc ");
results.Add(" where [sid] = sd.f_sgrp ");
results.Add(" and sd.f_dsgp in (1729787380, 1657296864, 1655312695) ");
results.Add(" ) [max recipe] ");
results.Add(" from ( ");
results.Add(" select se.f_sgrp [sid] ");
results.Add(" , pl.f_name [lot] ");
results.Add(" , pr.f_name [process] ");
results.Add(" , pd.f_name [part] ");
results.Add(" , jd.f_name [job] ");
results.Add(" from [spcepiworld].[dbo].[sgrp_ext] se ");
results.Add(" join [spcepiworld].[dbo].[prcs_dat] pr ");
results.Add(" on se.f_prcs = pr.f_prcs ");
results.Add(" join [spcepiworld].[dbo].[job_dat] jd ");
results.Add(" on se.f_job = jd.f_job ");
results.Add(" join [spcepiworld].[dbo].[part_lot] pl ");
results.Add(" on se.f_lot = pl.f_lot ");
results.Add(" join [spcepiworld].[dbo].[part_dat] pd ");
results.Add(" on se.f_part = pd.f_part ");
results.Add(" join [spcepiworld].[dbo].[test_dat] td ");
results.Add(" on se.f_test = td.f_test ");
results.Add(" where se.f_flag = 0 ");
results.Add($" and pl.f_name = '{commonB.RDSNumber}' ");
results.Add($" and pr.f_name = '{commonB.ReactorNumber}' ");
results.Add($" and pd.f_name = '{commonB.PSN}' ");
results.Add($" and jd.f_name in ({jobNames}) ");
results.Add(" group by se.f_sgrp ");
results.Add(" , se.f_sgtm ");
results.Add(" , pl.f_name ");
results.Add(" , pr.f_name ");
results.Add(" , pd.f_name ");
results.Add(" , jd.f_name ");
results.Add(" ) iq ");
results.Add(" ) iq ");
results.Add(" group by [lot] ");
results.Add(" , [process] ");
results.Add(" , [part] ");
results.Add(" , [job] ");
results.Add(" , [min recipe] ");
results.Add(" , [max recipe] ");
results.Add(" ; ");
return string.Join(Environment.NewLine, results);
} // cSpell:restore