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
|
sotto-assiemi/parti che contengono (`RisolviAlberoComponenti`), copiandoli anch'essi
|
||||||
in `raw/`.
|
in `raw/`.
|
||||||
5. **Verifica completezza e STEP** — "Verifica completezza assiemi" (ricorsivo sui
|
5. **Verifica completezza e STEP** — "Verifica completezza assiemi" (ricorsivo sui
|
||||||
percorsi originali in indice, non su `raw/`) e "Crea cartella step_finali": unisce i
|
percorsi originali in indice, non su `raw/`) e "Crea cartella step_finali": solo per i
|
||||||
codici della distinta con quelli risolti in fase 4 (`_componentiRisolti`), cerca in
|
codici della distinta importata dal CSV (non i sotto-componenti di fase 4, che servono
|
||||||
`step/` il file `<codice>.stp` di ciascuno, lo copia in `step_finali/` se lo trova
|
solo a completare `raw/`) cerca in `step/` il file `<codice>.stp`, lo copia in
|
||||||
e mostra l'esito (creato/mancante) in `ReportStepForm`.
|
`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
|
- **Indexer.cs** — logica di scansione del disco e scrittura/aggiornamento del DB
|
||||||
SQLite (`Indexer.ScanAsync`). Cammina tutte le cartelle di primo livello trovate sotto
|
SQLite (`Indexer.ScanAsync`). Cammina tutte le cartelle di primo livello trovate sotto
|
||||||
la radice (scoperte dinamicamente con `Directory.GetDirectories`, non un elenco fisso)
|
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 List<(string Componente, string Descrizione)>? _righeCorrenti;
|
||||||
private Dictionary<string, List<string>>? _ultimaVerifica;
|
private Dictionary<string, List<string>>? _ultimaVerifica;
|
||||||
private string? _ultimaCartellaRaw;
|
private string? _ultimaCartellaRaw;
|
||||||
private List<(string Codice, string Tipo, string Percorso)>? _componentiRisolti;
|
|
||||||
|
|
||||||
public Form1()
|
public Form1()
|
||||||
{
|
{
|
||||||
@@ -476,7 +475,6 @@ public partial class Form1 : Form
|
|||||||
_gridRaw.Rows.Clear();
|
_gridRaw.Rows.Clear();
|
||||||
_ultimaCartellaRaw = null;
|
_ultimaCartellaRaw = null;
|
||||||
_ultimaVerifica = null;
|
_ultimaVerifica = null;
|
||||||
_componentiRisolti = null;
|
|
||||||
|
|
||||||
ImpostaStatoImport($"CSV generato ({righe.Count} righe): {csv}", Color.DarkGreen);
|
ImpostaStatoImport($"CSV generato ({righe.Count} righe): {csv}", Color.DarkGreen);
|
||||||
}
|
}
|
||||||
@@ -565,11 +563,9 @@ public partial class Form1 : Form
|
|||||||
foreach (var r in _righeCorrenti)
|
foreach (var r in _righeCorrenti)
|
||||||
descrizioni[r.Componente] = r.Descrizione;
|
descrizioni[r.Componente] = r.Descrizione;
|
||||||
|
|
||||||
// Il confronto include sia i componenti della distinta sia i sotto-componenti scoperti
|
// Solo i componenti della distinta importata dal CSV: i sotto-componenti trovati in
|
||||||
// ricorsivamente in fase 4 (_componentiRisolti): un assieme può avere lo STEP fatto solo
|
// fase 4 (_componentiRisolti) servono a completare "raw", non entrano nello STEP finale.
|
||||||
// per i suoi pezzi, non per l'assieme intero, o viceversa.
|
|
||||||
var tuttiICodici = _righeCorrenti.Select(r => r.Componente)
|
var tuttiICodici = _righeCorrenti.Select(r => r.Componente)
|
||||||
.Concat((_componentiRisolti ?? Enumerable.Empty<(string Codice, string Tipo, string Percorso)>()).Select(c => c.Codice))
|
|
||||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
@@ -751,7 +747,6 @@ public partial class Form1 : Form
|
|||||||
progressForm.ShowDialog(this);
|
progressForm.ShowDialog(this);
|
||||||
|
|
||||||
var (trovati, codiciNonTrovati) = await task;
|
var (trovati, codiciNonTrovati) = await task;
|
||||||
_componentiRisolti = trovati;
|
|
||||||
|
|
||||||
int numPrt = trovati.Count(r => r.Tipo == "prt");
|
int numPrt = trovati.Count(r => r.Tipo == "prt");
|
||||||
int numAsm = trovati.Count(r => r.Tipo == "asm");
|
int numAsm = trovati.Count(r => r.Tipo == "asm");
|
||||||
|
|||||||
Reference in new issue
Block a user