Remove the step_finali copy/report feature
Not needed anymore: the app no longer copies matched .stp files from step/ into a separate step_finali/ folder, or reports which distinta codes are still missing a STEP. Removed the "Crea cartella step_finali" button, GeneraReportStep, and ReportStepForm/EsitoStep. Phase 5 keeps "Verifica completezza assiemi" and the drag&drop .asm list (still how files get sent to Creo Distributed Batch); renamed from "Verifica completezza e STEP" to "Verifica completezza" since it's no longer about STEP output. PulisciRawEStep now only clears raw/ and step/. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
13798ad47c
commit
379deec986
5 files changed
+37
-217
No files matched your search
+13
-104
@@ -9,7 +9,6 @@ public partial class Form1 : Form
|
||||
private readonly Button _btnAggiorna = new();
|
||||
private readonly Button _btnCreaRaw = new();
|
||||
private readonly Button _btnTrovaPrt = new();
|
||||
private readonly Button _btnReport = new();
|
||||
private readonly Button _btnVerifica = new();
|
||||
private readonly Button _btnCompletezza = new();
|
||||
private readonly ListView _lstAnteprimaAsm = new();
|
||||
@@ -32,7 +31,7 @@ public partial class Form1 : Form
|
||||
"2. Importa Distinta Base",
|
||||
"3. Crea cartella raw",
|
||||
"4. Trova componenti referenziati",
|
||||
"5. Verifica completezza e STEP",
|
||||
"5. Verifica completezza",
|
||||
};
|
||||
private readonly Panel[] _panelFasi = new Panel[NomiFasi.Length];
|
||||
private readonly Panel _faseContainer = new() { Dock = DockStyle.Fill };
|
||||
@@ -282,9 +281,10 @@ public partial class Form1 : Form
|
||||
AutoSize = true,
|
||||
ForeColor = SystemColors.GrayText,
|
||||
Margin = new Padding(0, 20, 0, 4),
|
||||
Text = "Cartella di lavoro: qui vengono scritti il CSV della distinta e le "
|
||||
+ "cartelle 'raw', 'step' e 'step_finali'. Proposta automaticamente "
|
||||
+ "(ricordata da un avvio all'altro), modificabile con 'Cambia cartella...'.",
|
||||
Text = "Cartella di lavoro: qui vengono scritti il CSV della distinta e la "
|
||||
+ "cartella 'raw' (gli STEP esportati con Creo vanno invece in 'step', "
|
||||
+ "dentro la stessa cartella). Proposta automaticamente (ricordata da un "
|
||||
+ "avvio all'altro), modificabile con 'Cambia cartella...'.",
|
||||
};
|
||||
contenuto.Controls.Add(lblIstruzioniCartella);
|
||||
|
||||
@@ -530,35 +530,9 @@ public partial class Form1 : Form
|
||||
};
|
||||
top.Controls.Add(lblAnteprimaAsm);
|
||||
|
||||
var bottom = new TableLayoutPanel
|
||||
{
|
||||
Dock = DockStyle.Bottom,
|
||||
AutoSize = true,
|
||||
AutoSizeMode = AutoSizeMode.GrowAndShrink,
|
||||
ColumnCount = 1,
|
||||
};
|
||||
bottom.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100));
|
||||
|
||||
var lblIstruzioniStep = new Label
|
||||
{
|
||||
Dock = DockStyle.Top,
|
||||
AutoSize = true,
|
||||
ForeColor = SystemColors.GrayText,
|
||||
Margin = new Padding(12, 0, 0, 8),
|
||||
Text = "Dopo aver esportato gli STEP con Creo, premi qui per confrontare i componenti "
|
||||
+ "della distinta (e i sotto-componenti trovati in fase 4) con i file .stp presenti "
|
||||
+ "in 'step', copiare quelli trovati in 'step_finali' e vedere quali mancano ancora.",
|
||||
};
|
||||
bottom.Controls.Add(lblIstruzioniStep);
|
||||
|
||||
_btnReport.Text = "Crea cartella step_finali";
|
||||
UiStile.Secondario(_btnReport);
|
||||
_btnReport.Click += (_, _) => GeneraReportStep();
|
||||
bottom.Controls.Add(_btnReport);
|
||||
|
||||
// Dock=Fill invece di una Size fissa: la lista occupa tutto lo spazio verticale
|
||||
// rimasto tra le istruzioni sopra e sotto, così si vedono più file .asm senza scroll
|
||||
// anche a finestra ingrandita, invece dei ~160px fissi di prima.
|
||||
// rimasto sotto le istruzioni, così si vedono più file .asm senza scroll anche a
|
||||
// finestra ingrandita, invece dei ~160px fissi di prima.
|
||||
_lstAnteprimaAsm.View = View.LargeIcon;
|
||||
_lstAnteprimaAsm.MultiSelect = true;
|
||||
_lstAnteprimaAsm.LargeImageList = new ImageList { ImageSize = new Size(32, 32) };
|
||||
@@ -575,7 +549,6 @@ public partial class Form1 : Form
|
||||
};
|
||||
|
||||
panel.Controls.Add(_lstAnteprimaAsm);
|
||||
panel.Controls.Add(bottom);
|
||||
panel.Controls.Add(top);
|
||||
return panel;
|
||||
}
|
||||
@@ -675,82 +648,18 @@ public partial class Form1 : Form
|
||||
AggiornaStatoAvanti();
|
||||
}
|
||||
|
||||
/// <summary>Confronta i componenti della distinta importata con i file .stp presenti nella
|
||||
/// cartella "step" (esportati manualmente con Creo Distributed Batch), per dire quali sono
|
||||
/// già stati realizzati e quali mancano ancora.</summary>
|
||||
private void GeneraReportStep()
|
||||
{
|
||||
if (_righeCorrenti is null)
|
||||
return;
|
||||
|
||||
string radice = _cartellaLavoro!;
|
||||
var cartellaStep = Path.Combine(radice, "step");
|
||||
if (!Directory.Exists(cartellaStep))
|
||||
{
|
||||
ImpostaStatoImport($"Cartella 'step' non trovata in {cartellaStep}.", Color.DarkRed);
|
||||
return;
|
||||
}
|
||||
|
||||
var descrizioni = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
foreach (var r in _righeCorrenti)
|
||||
descrizioni[r.Componente] = r.Descrizione;
|
||||
|
||||
// Solo i componenti della distinta importata dal CSV: i sotto-componenti trovati in
|
||||
// fase 4 (_componentiRisolti) servono a completare "raw", non entrano nello STEP finale.
|
||||
var tuttiICodici = _righeCorrenti.Select(r => r.Componente)
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.ToList();
|
||||
|
||||
// Per i codici senza STEP, distingue "il CAD c'è ma lo STEP non è stato esportato" da
|
||||
// "il componente non è nemmeno nell'indice CAD" (riusa la verifica già fatta in fase 2/3
|
||||
// se disponibile, altrimenti la rifà).
|
||||
var cadTrovati = _ultimaVerifica ?? TrovaPercorsiCad(tuttiICodici);
|
||||
|
||||
var cartellaStepFinali = Path.Combine(radice, "step_finali");
|
||||
Directory.CreateDirectory(cartellaStepFinali);
|
||||
|
||||
var righeReport = new List<(string Componente, string Descrizione, EsitoStep Esito)>();
|
||||
foreach (var codice in tuttiICodici)
|
||||
{
|
||||
var percorsoStp = Path.Combine(cartellaStep, codice + ".stp");
|
||||
EsitoStep esito;
|
||||
if (File.Exists(percorsoStp))
|
||||
{
|
||||
File.Copy(percorsoStp, Path.Combine(cartellaStepFinali, codice + ".stp"), overwrite: true);
|
||||
esito = EsitoStep.Creato;
|
||||
}
|
||||
else
|
||||
{
|
||||
esito = cadTrovati.ContainsKey(codice) ? EsitoStep.StepMancante : EsitoStep.ComponenteNonTrovato;
|
||||
}
|
||||
righeReport.Add((codice, descrizioni.GetValueOrDefault(codice, ""), esito));
|
||||
}
|
||||
int creati = righeReport.Count(r => r.Esito == EsitoStep.Creato);
|
||||
int stepMancanti = righeReport.Count(r => r.Esito == EsitoStep.StepMancante);
|
||||
int nonTrovati = righeReport.Count(r => r.Esito == EsitoStep.ComponenteNonTrovato);
|
||||
|
||||
ImpostaStatoImport(
|
||||
$"STEP finali: {creati} copiati, {stepMancanti} da esportare (CAD presente), "
|
||||
+ $"{nonTrovati} componenti non nell'indice, su {righeReport.Count} totali. "
|
||||
+ $"Cartella: {cartellaStepFinali}.",
|
||||
Color.DarkGreen);
|
||||
|
||||
using var dialog = new ReportStepForm(righeReport, cartellaStepFinali);
|
||||
dialog.ShowDialog(this);
|
||||
}
|
||||
|
||||
/// <summary>Svuota in un colpo solo le cartelle "raw", "step" e "step_finali" nella cartella
|
||||
/// di lavoro, previa un'unica conferma. Non tocca l'indice CAD: solo le copie locali
|
||||
/// generate dalla pipeline.</summary>
|
||||
/// <summary>Svuota in un colpo solo le cartelle "raw" e "step" nella cartella di lavoro,
|
||||
/// previa un'unica conferma. Non tocca l'indice CAD: solo le copie locali generate dalla
|
||||
/// pipeline.</summary>
|
||||
private void PulisciRawEStep()
|
||||
{
|
||||
string radice = _cartellaLavoro!;
|
||||
var cartelle = new[] { Path.Combine(radice, "raw"), Path.Combine(radice, "step"), Path.Combine(radice, "step_finali") }
|
||||
var cartelle = new[] { Path.Combine(radice, "raw"), Path.Combine(radice, "step") }
|
||||
.Where(Directory.Exists)
|
||||
.ToList();
|
||||
if (cartelle.Count == 0)
|
||||
{
|
||||
ImpostaStatoImport($"Nessuna cartella 'raw', 'step' o 'step_finali' trovata in {radice}.", Color.DarkRed);
|
||||
ImpostaStatoImport($"Nessuna cartella 'raw' o 'step' trovata in {radice}.", Color.DarkRed);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1081,7 +990,7 @@ public partial class Form1 : Form
|
||||
{
|
||||
using var dialog = new FolderBrowserDialog
|
||||
{
|
||||
Description = "Seleziona la cartella di lavoro (CSV, raw, step, step_finali)",
|
||||
Description = "Seleziona la cartella di lavoro (CSV, raw, step)",
|
||||
SelectedPath = _cartellaLavoro ?? string.Empty,
|
||||
};
|
||||
if (dialog.ShowDialog(this) != DialogResult.OK)
|
||||
|
||||
Reference in new issue
Block a user