Vai al contenuto

Modello Dati

Panoramica

Il modello dati di SGV GE.CO comprende 239 entita JPA definite nel modulo MLib (com.mdatasystem.entities.*). La persistence unit GeCo.All in persistence.xml elenca esplicitamente ogni entita (non usa auto-discovery).

Il database principale e PostgreSQL. OtticoService usa MongoDB per lo storage di documenti scansionati.

Convenzioni di Naming

Le entita seguono una convenzione a prefisso che identifica il dominio:

Prefisso Tipo Descrizione Conteggio
Vv Dati operativi Tabelle principali: verbali, notifiche, pagamenti, ricorsi, anagrafiche, veicoli ~111
Vf Dati di riferimento Tabelle lookup/master data: comuni, province, violazioni, leggi, tipi documento ~87
Vp Parametri Tabelle di configurazione: template, parametri servizi, scheduler, PagoPA ~31
Vg Globali Tabelle multi-tenant/globali: database, clienti, parametri GeCo ~8
Vs Impostazioni Tabelle settings: parametri inizializzazione, stampanti ~2

Le tabelle database usano il formato snake_case: vv_verbale, vf_comune, ecc. Gli ID usano sequence PostgreSQL: VV_VERBALE_ID_SEQ.

Entita Principali per Dominio

Verbali (Ciclo di Vita del Verbale)

erDiagram
    VvVerbale ||--o{ VvInfrazione : contiene
    VvVerbale ||--o{ VvFigura : coinvolge
    VvVerbale ||--o{ VvNotifica : genera
    VvVerbale ||--o{ VvPagamento : riceve
    VvVerbale ||--o{ VvRicorso : subisce
    VvVerbale ||--o{ VvDocumento : allega
    VvVerbale ||--o| VvSequestro : dispone
    VvFigura ||--|| VvAnagrafica : riferisce
    VvFigura ||--o| VvVeicolo : guida
    VvVerbale ||--o{ VvPunti : decurta
    VvNotifica ||--o{ VvDettaglioNotificaPnd : dettaglio_pnd
Entita Tabella DB Descrizione
VvVerbale vv_verbale Verbale/contravvenzione (entita principale)
VvInfrazione vv_infrazione Dettaglio infrazione/violazione contestata
VvFigura vv_figura Soggetti coinvolti (conducente, proprietario, testimone)
VvAnagrafica vv_anagrafica Dati personali (nome, cognome, CF, residenza)
VvVeicolo vv_veicolo Dati veicolo (targa, marca, modello)
VvPreverbale vv_preverbale Pre-verbale (bozza prima della formalizzazione)
VvBlocchetto vv_blocchetto Blocchetto/libro verbali
VvDettBlocchetto vv_dett_blocchetto Dettaglio blocchetto

Notifiche

Entita Tabella DB Descrizione
VvNotifica vv_notifica Notificazione del verbale
VvNotifDepend vv_notif_depend Dipendenze tra notifiche
VvDettaglioNotificaPnd vv_dettaglio_notifica_pnd Dettagli notifica PND
VvInfoDestinatarioPnd vv_info_destinatario_pnd Info destinatario PND
VvDocumentoAllegatoPnd vv_documento_allegato_pnd Allegati PND
VvAttoOpponibilePnd vv_atto_opponibile_pnd Atti opponibili PND

Pagamenti

Entita Tabella DB Descrizione
VvPagamento vv_pagamento Pagamento sanzione
VvRateizzazione vv_rateizzazione Piano di rateizzazione
VvRata vv_rata Singola rata
VvRataPag vv_rata_pag Collegamento rata-pagamento
VvCauzione vv_cauzione Deposito cauzionale
VvPagamentoPnd vv_pagamento_pnd Pagamento tramite PND

Ricorsi

Entita Tabella DB Descrizione
VvRicorso vv_ricorso Ricorso (Giudice di Pace o Prefetto)
VvEsitoRicorso vv_esito_ricorso Esito del ricorso
VvRicoEsito vv_rico_esito Collegamento ricorso-esito
VvControded vv_controded Contro-deduzioni
VvInfraRico vv_infra_rico Collegamento infrazione-ricorso

Punti Patente e MCTC

Entita Tabella DB Descrizione
VvPunti vv_punti Decurtazione punti patente
VvPuntiStato vv_punti_stato Stato comunicazione punti
VvIntProvvMctc vv_int_provv_mctc Integrazione provvedimenti MCTC
VvMsgMctc vv_msg_mctc Messaggi MCTC
VvTrasmRicezPatpunti vv_trasm_ricez_patpunti Trasmissione/ricezione punti

Sequestri e Fermi

Entita Tabella DB Descrizione
VvSequestro vv_sequestro Sequestro/fermo amministrativo veicolo
VvCustode vv_custode Custode del veicolo sequestrato
VvRimF vv_rim_f Rimedio/provvedimento classe F

Elaborazione Ottica

Entita Tabella DB Descrizione
VvOttico vv_ottico Documento ottico (scansionato)
VvOtticoTmp vv_ottico_tmp Documento ottico temporaneo
VvProtocolloOttico vv_protocollo_ottico Protocollo documento ottico

Tabelle di Riferimento Principali (Vf)

Entita Descrizione
VfComune Elenco comuni italiani
VfProvincia Province
VfRegione Regioni
VfNazione Nazioni
VfViolazione Codici violazione CdS
VfLegge Riferimenti normativi
VfTipoVeicolo Tipologie veicolo
VfTipoDocumento Tipi documento identita
VfMezzoNotifica Metodi di notifica
VfAutorita Organi accertatori
VfGiudicePace Giudici di pace competenti
VfImportiViol Importi sanzioni per violazione
VfPuntiViol Punti patente per violazione
VfModalPag Modalita di pagamento

Tabelle di Configurazione (Vp)

Entita Descrizione
VpParInit Parametri globali di inizializzazione
VpTemplate Template documenti (verbali, notifiche, PDF)
VpWsPar Parametri web service
VpParNotifica Configurazione notifiche
VpReport / VpReportPar Definizioni e parametri report
VpTaskScheduler Configurazione task Quartz
VpParPagopa Parametri integrazione PagoPA
VpParServizioPND Parametri servizio PND
VpContatore Contatori automatici (numerazione verbali)
VpParRateizzazione Parametri piani di rateizzazione

Tabelle Globali Multi-Tenant (Vg)

Entita Descrizione
VgDb Configurazione database per tenant
VgCliente Anagrafica cliente/comune
VgParGeco Parametri globali GeCo
VgParMail Configurazione email
VgTablet Registro dispositivi tablet
VgOperatoreGs Operatori globali

Note Tecniche

  • JPA Provider: EclipseLink 2.5.1 per MLib, Hibernate ORM per REST (Quarkus)
  • Persistence Unit: GeCo.All con lista esplicita di 239 entita in persistence.xml
  • JNDI Datasource: java:jboss/PostgresDSPoolGenerale
  • Aggiungere nuove entita: Richiede registrazione manuale in persistence.xml
  • Sequence ID: Ogni entita usa una sequence PostgreSQL dedicata (es. VV_VERBALE_ID_SEQ)