Limit step_finali to the BOM's own components
Sub-components discovered recursively in phase 4 exist only to complete raw/, not to define what final STEP files are expected - including them made step_finali report unrelated sub-parts as missing/created. Also drops the now-unused _componentiRisolti field. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
338a7327a0
commit
1f6cb2da00
2 files changed
+6
-11
No files matched your search
@@ -59,10 +59,10 @@ entrambi rimossi: ora l'unico programma è questo, con GUI e indicizzazione inte
|
||||
sotto-assiemi/parti che contengono (`RisolviAlberoComponenti`), copiandoli anch'essi
|
||||
in `raw/`.
|
||||
5. **Verifica completezza e STEP** — "Verifica completezza assiemi" (ricorsivo sui
|
||||
percorsi originali in indice, non su `raw/`) e "Crea cartella step_finali": unisce i
|
||||
codici della distinta con quelli risolti in fase 4 (`_componentiRisolti`), cerca in
|
||||
`step/` il file `<codice>.stp` di ciascuno, lo copia in `step_finali/` se lo trova
|
||||
e mostra l'esito (creato/mancante) in `ReportStepForm`.
|
||||
percorsi originali in indice, non su `raw/`) e "Crea cartella step_finali": solo per i
|
||||
codici della distinta importata dal CSV (non i sotto-componenti di fase 4, che servono
|
||||
solo a completare `raw/`) cerca in `step/` il file `<codice>.stp`, lo copia in
|
||||
`step_finali/` se lo trova e mostra l'esito (creato/mancante) in `ReportStepForm`.
|
||||
- **Indexer.cs** — logica di scansione del disco e scrittura/aggiornamento del DB
|
||||
SQLite (`Indexer.ScanAsync`). Cammina tutte le cartelle di primo livello trovate sotto
|
||||
la radice (scoperte dinamicamente con `Directory.GetDirectories`, non un elenco fisso)
|
||||
|
||||
@@ -46,7 +46,6 @@ public partial class Form1 : Form
|
||||
private List<(string Componente, string Descrizione)>? _righeCorrenti;
|
||||
private Dictionary<string, List<string>>? _ultimaVerifica;
|
||||
private string? _ultimaCartellaRaw;
|
||||
private List<(string Codice, string Tipo, string Percorso)>? _componentiRisolti;
|
||||
|
||||
public Form1()
|
||||
{
|
||||
@@ -476,7 +475,6 @@ public partial class Form1 : Form
|
||||
_gridRaw.Rows.Clear();
|
||||
_ultimaCartellaRaw = null;
|
||||
_ultimaVerifica = null;
|
||||
_componentiRisolti = null;
|
||||
|
||||
ImpostaStatoImport($"CSV generato ({righe.Count} righe): {csv}", Color.DarkGreen);
|
||||
}
|
||||
@@ -565,11 +563,9 @@ public partial class Form1 : Form
|
||||
foreach (var r in _righeCorrenti)
|
||||
descrizioni[r.Componente] = r.Descrizione;
|
||||
|
||||
// Il confronto include sia i componenti della distinta sia i sotto-componenti scoperti
|
||||
// ricorsivamente in fase 4 (_componentiRisolti): un assieme può avere lo STEP fatto solo
|
||||
// per i suoi pezzi, non per l'assieme intero, o viceversa.
|
||||
// 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)
|
||||
.Concat((_componentiRisolti ?? Enumerable.Empty<(string Codice, string Tipo, string Percorso)>()).Select(c => c.Codice))
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.ToList();
|
||||
|
||||
@@ -751,7 +747,6 @@ public partial class Form1 : Form
|
||||
progressForm.ShowDialog(this);
|
||||
|
||||
var (trovati, codiciNonTrovati) = await task;
|
||||
_componentiRisolti = trovati;
|
||||
|
||||
int numPrt = trovati.Count(r => r.Tipo == "prt");
|
||||
int numAsm = trovati.Count(r => r.Tipo == "asm");
|
||||
|
||||
Reference in new issue
Block a user