168 lines
5.8 KiB
Markdown
168 lines
5.8 KiB
Markdown
# Warehouse Operational Flow
|
|
|
|
Questo diagramma descrive il flusso operativo integrato tra:
|
|
|
|
- layout di magazzino;
|
|
- gestione picking list;
|
|
- movimentazione fisica dei pallet;
|
|
- viste SQL e stored procedure coinvolte;
|
|
- aggiornamento dell'interfaccia dopo ogni operazione.
|
|
|
|
## Vista d'insieme
|
|
|
|
```{mermaid}
|
|
flowchart TD
|
|
UI["Operatore su interfaccia"] --> LAY["Gestione Layout"]
|
|
UI --> PL["Gestione Picking List"]
|
|
|
|
subgraph Layout["Flusso Layout"]
|
|
LAY --> LC1["Caricamento corsie e metadati layout"]
|
|
LC1 --> LC2["vViewMappaturaDescrizioneCorsia"]
|
|
LC1 --> LC3["vViewMappaturaPosizCorsia"]
|
|
LC1 --> LC4["MagLayout"]
|
|
LC1 --> LC5["Celle / Magazzini"]
|
|
LC2 --> GRID["Rendering griglia scaffale"]
|
|
LC3 --> GRID
|
|
LC4 --> GRID
|
|
LC5 --> GRID
|
|
GRID --> LX["Click su cella / ricerca UDC / menu contestuale"]
|
|
end
|
|
|
|
subgraph Picking["Flusso Picking List"]
|
|
PL --> PC1["Caricamento elenco documenti"]
|
|
PC1 --> PV1["XMag_ViewPackingList"]
|
|
PV1 --> PGRID["Griglia documenti aggregata"]
|
|
PGRID --> PSEL["Selezione documento"]
|
|
PSEL --> PV2["vViewPackingListRestante"]
|
|
PV2 --> PDET["Griglia dettaglio documento"]
|
|
PDET --> PACT["Prenota / S-prenota / consultazione"]
|
|
end
|
|
|
|
subgraph Mov["Movimentazione pallet"]
|
|
LX --> MOVE{"Operazione fisica?"}
|
|
MOVE -->|Carico o spostamento| SP1["sp_xMagGestioneMagazziniPallet"]
|
|
MOVE -->|Scarico pallet| SP1
|
|
PACT -->|Prenota o s-prenota| SP2["sp_xExePackingListPallet"]
|
|
SP1 --> M1["Aggiorna movimenti MagazziniPallet"]
|
|
SP1 --> M2["Aggiorna cella destinazione / origine"]
|
|
SP1 --> M3["Controlla prenotazione automatica"]
|
|
M3 --> SP3["sp_ControllaPrenotazionePackingListPalletNew"]
|
|
SP3 --> SP4["sp_xExePackingListPalletPrenota"]
|
|
SP2 --> M4["Aggiorna Celle.IDStato"]
|
|
SP2 --> M5["Scrive LogPackingList"]
|
|
SP4 --> M4
|
|
end
|
|
|
|
subgraph Views["Ricostruzione contesto"]
|
|
M1 --> GV["XMag_GiacenzaPallet"]
|
|
M2 --> CV["Celle"]
|
|
GV --> XP["XMag_ViewPackingList"]
|
|
GV --> TP["vXTracciaProdotti"]
|
|
CV --> XP
|
|
XP --> RL1["Stato documento / pallet / ubicazione"]
|
|
TP --> RL2["Articolo / lotto / descrizione"]
|
|
end
|
|
|
|
RL1 --> LREF["Refresh Layout / Picking List"]
|
|
RL2 --> LREF
|
|
LREF --> GRID
|
|
LREF --> PGRID
|
|
LREF --> PDET
|
|
```
|
|
|
|
## Flusso del layout
|
|
|
|
```{mermaid}
|
|
flowchart TD
|
|
A["Apertura Gestione Layout"] --> B["Legge mappatura corsie"]
|
|
B --> B1["vViewMappaturaDescrizioneCorsia"]
|
|
B --> B2["vViewMappaturaPosizCorsia"]
|
|
B --> B3["MagLayout"]
|
|
B --> B4["Celle / Magazzini"]
|
|
B1 --> C["Costruisce geometria scaffale"]
|
|
B2 --> C
|
|
B3 --> C
|
|
B4 --> C
|
|
C --> D["Query giacenza pallet per corsia"]
|
|
D --> E["Colora celle: vuota / piena / multipla"]
|
|
E --> F["Mostra UDC piu recente nella cella"]
|
|
F --> G{"Interazione utente"}
|
|
G -->|Ricerca UDC| H["Evidenzia cella in blu"]
|
|
G -->|Tasto destro su cella rossa| I["Menu contestuale"]
|
|
I --> J["Dialog scarico / analisi multi UDC"]
|
|
J --> K["Movimentazione fisica pallet"]
|
|
K --> L["Refresh layout"]
|
|
```
|
|
|
|
## Flusso della picking list
|
|
|
|
```{mermaid}
|
|
flowchart TD
|
|
A["Apertura Gestione Picking List"] --> B["Query aggregata documenti"]
|
|
B --> C["XMag_ViewPackingList"]
|
|
C --> D["Una riga per documento"]
|
|
D --> E["Utente seleziona il documento"]
|
|
E --> F["Query dettaglio documento"]
|
|
F --> G["vViewPackingListRestante"]
|
|
G --> H["Mostra pallet ancora rilevanti per il documento"]
|
|
H --> I{"Azione utente"}
|
|
I -->|Prenota o s-prenota| J["sp_xExePackingListPallet"]
|
|
I -->|Consulta dettaglio| H
|
|
J --> K["Aggiorna IDStato delle celle del documento"]
|
|
K --> L["LogPackingList"]
|
|
K --> M["Refresh lista documenti"]
|
|
K --> N["Refresh dettaglio documento"]
|
|
```
|
|
|
|
## Flusso della movimentazione pallet
|
|
|
|
```{mermaid}
|
|
flowchart TD
|
|
A["Utente legge barcode pallet e cella"] --> B["sp_xMagGestioneMagazziniPallet"]
|
|
B --> C{"Il pallet esiste gia in giacenza?"}
|
|
C -->|No| D["Inserisce movimento V sulla nuova cella"]
|
|
C -->|Si| E["Inserisce movimento P sulla vecchia cella"]
|
|
E --> F["Inserisce movimento V sulla nuova cella"]
|
|
D --> G["Aggiorna ricostruzione giacenza"]
|
|
F --> G
|
|
G --> H["XMag_GiacenzaPallet"]
|
|
H --> I["XMag_ViewPackingList"]
|
|
H --> J["vXTracciaProdotti"]
|
|
I --> K["Ubicazione e stato documento"]
|
|
J --> L["Dati articolo e lotto"]
|
|
K --> M["Refresh interfaccia"]
|
|
L --> M
|
|
```
|
|
|
|
## Significato delle viste e delle stored procedure
|
|
|
|
- `XMag_ViewPackingList`:
|
|
ricostruisce il collegamento tra pallet, documento, ubicazione e stato
|
|
logistico. E' la vista principale per la schermata picking list.
|
|
- `vViewPackingListRestante`:
|
|
mostra il dettaglio operativo del documento, cioe' le righe ancora visibili
|
|
e ordinate per ubicazione.
|
|
- `vXTracciaProdotti`:
|
|
arricchisce il pallet con lotto, codice articolo e descrizione.
|
|
- `sp_xMagGestioneMagazziniPallet`:
|
|
esegue il movimento fisico del pallet nel magazzino.
|
|
- `sp_xExePackingListPallet`:
|
|
fa il toggle di prenotazione delle celle coinvolte in una picking list.
|
|
- `sp_xExePackingListPalletPrenota`:
|
|
forza la prenotazione a `IDStato = 1`.
|
|
- `sp_ControllaPrenotazionePackingListPalletNew`:
|
|
controlla se, dopo una movimentazione fisica, debba essere riapplicata una
|
|
prenotazione automatica sulle celle coinvolte.
|
|
|
|
## Lettura pratica del sistema
|
|
|
|
- Il layout risponde alla domanda:
|
|
"dove sono i pallet e come sono distribuiti nello scaffale?"
|
|
- La picking list risponde alla domanda:
|
|
"quali pallet fanno parte di un documento e quali celle sono prenotate?"
|
|
- La movimentazione pallet risponde alla domanda:
|
|
"cosa succede nel tracciato quando un pallet viene caricato, spostato o
|
|
scaricato?"
|
|
- Le viste vengono rilette dopo l'operazione per riportare la UI in uno stato
|
|
coerente con il database.
|