Skip to content

GII Modulio Analize

GII -- Gamintoju ir Importuotoju Informacine Sistema. Produktu srautu registracija aplinkos apsaugos tikslais.

Modulis: modules/gpais-gii/ (gpais-gii-api, gpais-gii-service, gpais-gii-web) Technologija: Liferay 7.0 Service Builder, Java 8, JSP/FreeMarker, PostgreSQL Schema versija: 1.0.0 -> 1.2.7 (10 versiju)


Turinys

  1. Apzvalga
  2. Duomenu modelis
  3. Verslo logika
  4. Web/UI sluoksnis
  5. Integracijos ir priklausomybes
  6. Klasifikatoriai
  7. Migracijos pastabos

1. Apzvalga

GII modulis valdo gamintoju ir importuotoju registracija sesti produktu srautuose:

KodasPavadinimasSpecifika
ALAlyvosAlyvu rusys (CL113), veiklos budai
TPTransporto priemonesTransporto klases (CL114)
EEIElektros ir elektronine irangaKategorijos (CL109), buitine/nebuitine, prekes zenklai
BABaterijos ir akumuliatoriaiRusys (CL126), chemine sudetis (CL127), sena/nauja reguliacija
AGApmokestinamieji gaminiaiGaminiu tipai (CL110)
PAPakuotesMedziagos (CL111), vienkartines/daugkartines, uzstatines

Pagrindinis srautas

Organizacija registruojasi GII savade
    -> Pasirenka produktu srautus (AL/TP/EEI/BA/AG/PA)
    -> Uzpildo kiekvieno srauto detales
    -> Pasirenka atsakomybes buda (individualiai/kolektyviai/mokestis)
    -> Pateikia prasyma
    -> Vidinis portalas priima/atmeta
    -> Registracija isregistruota arba atmesta

2. Duomenu modelis

Saltinis: gpais-gii-service/service.xmlEsybiu skaicius: 18 (17 aktyviu + 1 legacy)

2.1. Esybiu rysi schema

                    Liferay Organization
                           |
                   organizationId
                           |
                           v
               GiiRegistracijaEntity ------> GPAIS_RysioDuomenys
                    |            \
                    |             \------> VerslaLiudijantisDokumentasEntity --> CL129
                    |
           registracija (1:N)
                    |
                    v
     GaminiuSrautoRegistracijaEntity ------> GiiInformacijaEntity (hub)
         [per stream: AL/TP/EEI/BA/AG/PA]           |
                                            giiInformacija (1:N)
                                         __________|____________
                                        |    |    |    |    |   |
                                        v    v    v    v    v   v
                                   Alyva  TP  EEI  BA   AG  Pakuote
                                     |    |    |    |    |    |
                                     +----+----+----+----+----+
                                          gaminysArPakuote (FK)
                                                |
                                                v
                                      GaminysArPakuoteEntity
                                      (platinimo kanalu flags)

     GiiInformacijaEntity (hub)
            |
            +--- GiiAtstovasEntity (1:N, per srautas)
            |        \---> GPAIS_RysioDuomenys, GPAIS_Adresas
            |
            +--- AtsakomybesBudasEntity (1:N, per srautas+veikla)
                     \---> Liferay Organization (licencijuota org.)

     PRASYMU DOKUMENTAI (PK = GPAIS_Dokumentas.id):

     GiiRegistracijosPrasymasEntity (registracijos prasymas)
            |--- GaminiuSrautoRegistracijosPrasymasEntity (srauto detalé)
            |--- GiiRegistracijosPrasymoPriedasEntity (priedai --> GPAIS_File)
            |--- rysioDuomenys --> GPAIS_RysioDuomenys
            |--- verslaLiudijantisDokumentas --> VerslaLiudijantisDokumentasEntity
            \--- giiInformacija --> GiiInformacijaEntity

     GiiRegistracijosNutraukimoPrasymasEntity (nutraukimo prasymas)
            \--- GaminiuSrautoRegistracijosNutraukimoPrasymasEntity (srauto detalé)

2.2. Esybes detaliai

GiiRegistracijaEntity

Lentele: GII_GiiRegistracijaPaskirtis: Pagrindinis GII registracijos irasas organizacijai (1:1 su organizacija).

LaukasTipasSQLPastabos
idlongLONGPK
createDateDateDATEAudito laikas
modifiedDateDateDATEAudito laikas
organizationIdlongLONGFK -> Liferay Organization
orgPavadinimasStringVARCHAR(512)Organizacijos pavadinimas (denormalizuotas, v1.2.1)
orgCountrylongLONGFK -> KlasifikatoriausReiksme (salis)
orgCodeStringVARCHAR(75)Organizacijos kodas (v1.2.1)
orgSavivaldybelongLONGFK -> KlasifikatoriausReiksme (savivaldybe)
automatinisFormavimasbooleanBOOLEANAuto-formavimo flag (v1.2.2)
automatinioFormavimoPradziaDateDATEAuto-formavimo pradzia (v1.2.2)
rysioDuomenyslongLONGFK -> GPAIS_RysioDuomenys
verslaLiudijantisDokumentaslongLONGFK -> GII_VerslaLiudijantisDokumentas

Finders: findByOrganization(organizationId) -> vienas irasas Index: IX_B336F399 on organizationId


GaminiuSrautoRegistracijaEntity

Lentele: GII_GaminiuSrautoRegistracijaPaskirtis: Srauto registracijos busena (vienas per srauta per registracija).

LaukasTipasSQLPastabos
idlongLONGPK
registracijalongLONGFK -> GII_GiiRegistracija
srautasStringVARCHAR(75)Enum: AL/TP/EEI/BA/AG/PA
busenaintINTEGER1=REGISTRUOTAS, 2=NEREGISTRUOTAS
registracijosDataDateDATERegistracijos data
pradetaTiektiRinkaiNuoDateDATEPradeta tiekti rinkai nuo
isregistravimoDataDateDATEIsregistravimo data
isregistravimoPriezastislongLONGFK -> CL120
isregistravimoPastabaStringVARCHAR(2000)Isregistravimo pastaba
koregavimoDataDateDATEKoregavimo data
ispejimuSkaiciuslongLONGIspejimu skaicius (v1.2.0)
giiInformacijalongLONGFK -> GII_GiiInformacija
registracijosNrStringVARCHAR(150)Registracijos numeris (v1.2.4)
baNaujaRegbooleanBOOLEANBA naujos reguliacijos flag (v1.2.5)

Finders:

  • findByRegistracija(registracija) -> kolekcija
  • findByRegistracijaSrautas(registracija, srautas) -> kolekcija
  • findByRegistracijaBusena(registracija, busena) -> kolekcija

GiiInformacijaEntity

Lentele: GII_GiiInformacijaPaskirtis: Hub esybe, jungianti produktu srauto detales. Turi TIK id lauka.

LaukasTipasSQLPastabos
idlongLONGPK

AlyvaEntity

Lentele: GII_AlyvaPaskirtis: Alyvu srauto duomenys.

LaukasTipasSQLPastabos
idlongLONGPK
giiInformacijalongLONGFK -> GII_GiiInformacija
rusislongLONGFK -> CL113 (AlyvuRusis)
gaminysArPakuotelongLONGFK -> GII_GaminysArPakuote

Finder: findByGiiInformacija(giiInformacija) -> kolekcija


TransportoPriemoneEntity

Lentele: GII_TransportoPriemonePaskirtis: Transporto priemoniu srauto duomenys.

LaukasTipasSQLPastabos
idlongLONGPK
giiInformacijalongLONGFK -> GII_GiiInformacija
klaselongLONGFK -> CL114 (TPKlases)
gaminysArPakuotelongLONGFK -> GII_GaminysArPakuote

Finder: findByGiiInformacija(giiInformacija) -> kolekcija


ElektrosIrElektronineIrangaEntity

Lentele: GII_ElektrosIrElektronineIrangaPaskirtis: EEI srauto duomenys.

LaukasTipasSQLPastabos
idlongLONGPK
giiInformacijalongLONGFK -> GII_GiiInformacija
buitinebooleanBOOLEANAr buitine iranga
prekesZenklaiStringVARCHAR(2000)Prekes zenklai
planasStringVARCHAR(75)Planuojamas kiekis
kategorijalongLONGFK -> CL109 (EEIKategorijos)
gaminysArPakuotelongLONGFK -> GII_GaminysArPakuote

Finder: findByGiiInformacija(giiInformacija) -> kolekcija


BaterijaArAkumuliatoriusEntity

Lentele: GII_BaterijaArAkumuliatoriusPaskirtis: Bateriju/akumuliatoriu srauto duomenys.

LaukasTipasSQLPastabos
idlongLONGPK
giiInformacijalongLONGFK -> GII_GiiInformacija
baterijabooleanBOOLEANAr baterija (vs akumuliatorius)
imontuotabooleanBOOLEANAr imontuota
prekesZenklaiStringVARCHAR(2000)Prekes zenklai
rusislongLONGFK -> CL126 (BaterijuRusys: NE/PE/AU/MT/ET)
chemineSudetislongLONGFK -> CL127 (BaterijuChemineSudetis: PB/LI/NI)
gaminysArPakuotelongLONGFK -> GII_GaminysArPakuote
baNaujaRegbooleanBOOLEANNaujos reguliacijos flag (v1.2.5)

Finders:

  • findByGiiInformacija(giiInformacija) -> kolekcija
  • findByGiiInformacijaNauja(giiInformacija, baNaujaReg) -> kolekcija

ApmokestinamisGaminysEntity

Lentele: GII_ApmokestinamisGaminysPaskirtis: Apmokestinamu gaminiu srauto duomenys.

LaukasTipasSQLPastabos
idlongLONGPK
giiInformacijalongLONGFK -> GII_GiiInformacija
tipaslongLONGFK -> CL110 (ApmokestinamujuGaminiuTipas)
gaminysArPakuotelongLONGFK -> GII_GaminysArPakuote

Finder: findByGiiInformacija(giiInformacija) -> kolekcija


PakuoteEntity

Lentele: GII_PakuotePaskirtis: Pakuociu srauto duomenys.

LaukasTipasSQLPastabos
idlongLONGPK
giiInformacijalongLONGFK -> GII_GiiInformacija
vienkartinebooleanBOOLEANAr vienkartine
uzstatinebooleanBOOLEANAr uzstatine
medziagalongLONGFK -> CL111 (PakuociuRusysPagalMedziaga)
gaminysArPakuotelongLONGFK -> GII_GaminysArPakuote

Finder: findByGiiInformacija(giiInformacija) -> kolekcija


GaminysArPakuoteEntity

Lentele: GII_GaminysArPakuotePaskirtis: Produkto/pakuotes platinimo kanalu flags. Naudoja visos 6 srauto esybes.

LaukasTipasSQLPastabos
idlongLONGPK
sunaudojimasSavoReikmemsbooleanBOOLEANSunaudojimas savo reikmems
isvezimasPerTreciuosiusAsmenisbooleanBOOLEANIsvezimas per treciuosius
isvezimasbooleanBOOLEANTiesioginis isvezimas
mazmeninebooleanBOOLEANMazmenine prekyba
didmeninebooleanBOOLEANDidmenine prekyba
nuotolinebooleanBOOLEANNuotoline prekyba

AtsakomybesBudasEntity

Lentele: GII_AtsakomybesBudasPaskirtis: Atsakomybes budas per srauta ir veiklos tipa.

LaukasTipasSQLPastabos
idlongLONGPK
giiInformacijalongLONGFK -> GII_GiiInformacija
srautasStringVARCHAR(75)Enum: AL/TP/EEI/BA/AG/PA
veiklaStringVARCHAR(75)Enum: LR/SR/VU/DA/NBLR/NBSR
tipasStringVARCHAR(75)Enum: IN/KO/MM
nuoDateDATEGalioja nuo
ikiDateDATEGalioja iki
dokumentasStringVARCHAR(75)Dokumento nuoroda
licenzijuotaOrganizacijalongLONGFK -> Liferay Organization

Finders:

  • findByGiiInformacija(giiInformacija) -> kolekcija
  • findBySrautas(giiInformacija, srautas) -> kolekcija
  • findByVeikla(giiInformacija, srautas, veikla) -> kolekcija

VerslaLiudijantisDokumentasEntity

Lentele: GII_VerslaLiudijantisDokumentasPaskirtis: Versla liudijantis dokumentas (pvz., verslo licencija).

LaukasTipasSQLPastabos
idlongLONGPK
tipaslongLONGFK -> CL129 (FAVeiklos)
numerisStringVARCHAR(75)Dokumento numeris

GiiAtstovasEntity

Lentele: GII_GiiAtstovasPaskirtis: GII igaliotasis atstovas (per srauta).

LaukasTipasSQLPastabos
idlongLONGPK
giiinformacijaentityidlongLONGFK -> GII_GiiInformacija (v1.2.6)
fizinisbooleanBOOLEANAr fizinis asmuo
kodasStringVARCHAR(75)Atstovo kodas
pavadinimasStringVARCHAR(512)Pavadinimas (FA: "vardas<-->pavarde")
rysioDuomenyslongLONGFK -> GPAIS_RysioDuomenys (v1.1.0)
adresasEntitylongLONGFK -> GPAIS_Adresas (v1.2.5)
srautasStringVARCHAR(75)Enum: AL/TP/EEI/BA/AG/PA (v1.2.6)

Finder: findByGiiInformacijaSrautas(giiinformacijaentityid, srautas) -> vienas


GiiRegistracijosPrasymasEntity

Lentele: GII_GiiRegistracijosPrasymasPaskirtis: Registracijos prasymo dokumentas. PK = FK -> GPAIS_Dokumentas.

LaukasTipasSQLPastabos
idlongLONGPK, taip pat FK -> GPAIS_Dokumentas
koregavimasbooleanBOOLEANAr tai koregavimas
rysioDuomenyslongLONGFK -> GPAIS_RysioDuomenys
verslaLiudijantisDokumentaslongLONGFK -> GII_VerslaLiudijantisDokumentas
giiInformacijalongLONGFK -> GII_GiiInformacija

GaminiuSrautoRegistracijosPrasymasEntity

Lentele: GII_GaminiuSrautoRegistracijosPrasymasPaskirtis: Srauto registracijos prasymo detale.

LaukasTipasSQLPastabos
idlongLONGPK
prasymaslongLONGFK -> GII_GiiRegistracijosPrasymas
srautasStringVARCHAR(75)Enum: AL/TP/EEI/BA/AG/PA
nuoDateDATERegistracija nuo
komentarasStringVARCHAR(2000)Komentaras
baNaujaRegbooleanBOOLEANBA naujos reg. flag (v1.2.5)
sutikimoPozymisbooleanBOOLEANSutikimo pozymis (v1.2.7)

Finders:

  • findByPrasymas(prasymas) -> kolekcija
  • findByPrasymasSrautas(prasymas, srautas) -> vienas
  • findByPrasymasBaNaujaReg(prasymas, baNaujaReg) -> kolekcija

GiiRegistracijosNutraukimoPrasymasEntity

Lentele: GII_GiiRegistracijosNutraukimoPrasymasPaskirtis: Nutraukimo prasymo dokumentas. PK = FK -> GPAIS_Dokumentas.

LaukasTipasSQLPastabos
idlongLONGPK, taip pat FK -> GPAIS_Dokumentas

GaminiuSrautoRegistracijosNutraukimoPrasymasEntity

Lentele: GII_GaminiuSrautoRegistracijosNutraukimoPrasymasPaskirtis: Srauto nutraukimo prasymo detale.

LaukasTipasSQLPastabos
idlongLONGPK
prasymaslongLONGFK -> GII_GiiRegistracijosNutraukimoPrasymas
srautasStringVARCHAR(75)Enum: AL/TP/EEI/BA/AG/PA
nuoDateDATENutraukimas nuo
komentarasStringVARCHAR(2000)Komentaras

Finder: findByPrasymasSrautas(prasymas, srautas) -> vienas


GiiRegistracijosPrasymoPriedasEntity

Lentele: GII_GiiRegistracijosPrasymoPriedasPaskirtis: Prasymo priedas/dokumentas.

LaukasTipasSQLPastabos
idlongLONGPK
prasymaslongLONGFK -> GII_GiiRegistracijosPrasymas
tipaslongLONGFK -> CL134 (GiisDokumentoPriedoTipas)
nuoDateDATEGalioja nuo
ikiDateDATEGalioja iki
filelongLONGFK -> GPAIS_File

Finder: findByPrasymas(prasymas) -> kolekcija


Legacy: GII_GiiRegistracijaIgaliotasAtstovas

Tik SQL, ne service.xml. Pakeista GiiAtstovasEntity po v1.2.6.

LaukasSQLPastabos
id_LONGPK
giiInformacijaLONGFK -> GII_GiiInformacija
kodasVARCHAR(75)Atstovo kodas
pavadinimasVARCHAR(75)Pavadinimas
tipasVARCHAR(75)Tipas
adresasEntityIdLONGFK -> GPAIS_Adresas
rysioDuomenysEntityIdLONGFK -> GPAIS_RysioDuomenys

2.3. Isorines esybes (is gpais-utils-entity)

EsybeLenteléNaudojimas GII
GPAIS_RysioDuomenysKontaktiniai duomenysRegistracijos kontaktai, atstovo kontaktai
GPAIS_DokumentasBazinis dokumentasPK prasymu esybems (1:1)
GPAIS_DokumentoBusenaDokumento busenaBusenos sekimas
GPAIS_KlasifikatoriausReiksmeKlasifikatoriu reiksmesVisi lookup'ai (CL109-CL166)
GPAIS_AdresasAdreso duomenysAtstovo adresas
GPAIS_FileFailu saugyklaPrasymo priedai

3. Verslo logika

3.1. Pagrindiniai servisai

GiiRegistracijaEntityLocalServiceImpl (~1616 eiluciu)

Centrinis GII servisas. Valdo registracijas, sinchronizacija su vidiniu portalu, pranesimu siuntima.

MetodasPaskirtis
canSubmit(organizationId)Tikrina ar organizacija gali pateikti nauja prasyma (nera laukianciu)
isRegistered(organizationId)Ar turi bent viena REGISTRUOTAS srauta
getRegisteredGaminiuSrautai(orgId)Grazina registruotu srautu sarasa
retrieveGiiRegistracijaFromInternalPortal(orgId, subjektoId, ...)Sinchronizacija: parsiuncia registracijos duomenis is vidinio portalo per WS
updateGiiRegistracija(orgId, GiiRegistracija)Atnaujina registracija is vidinio portalo duomenu
notifyGiiAboutRegistrationChange()Siusto email'us kai srautu busenos pasikeicia
notifyGiiAboutIspejimai()Siunto ispejimus (pirmas ir pakartotiniai)
loadAktualiGiiRegistracija()Krovimo -- tik REGISTRUOTAS srautai
loadGiiRegistracija()Pilnas krovimas -- visi srautai
createRegistrationNo(srautas, registracijaId)Generuoja registracijos numeri: {srautasId}{orgType}{seq}
query(GiisFilter, start, end)Viesa registro paieska su filtrais
getAutomatinioFormavimoGiiRegistracijos()Automatiniam formavimui pazymetos registracijos

Registracijos numerio formatas:

{srautasKodas}{organizacijosTipas}{eilesNumeris}
  AL/TP/...     1=JA, 2=FA, 3=UZ    000001 (6 skaitm., UZ: 0001)

Naudoja PostgreSQL sekvencijas: {srautasId}_registracijosNr_seq


GiiRegistracijosPrasymasEntityLocalServiceImpl (~659 eiluciu)

Registracijos prasymu valdymas.

MetodasPaskirtis
loadGiiRegistracijosPrasymas(orgId)Uzkrauna DRAFT prasyma
deleteGiiRegistracijosPrasymas(orgId)Istrina draft'a su visais vaikais (kaskadinis)
validateKolektyviAtsakomybe(orgId, prasymas)Validacija: tikrina ar kolektyvinei atsakomybei egzistuoja pavedimas GIIORG modulyje
updateGiiRegistracijosPrasymas(orgId, prasymas)Issaugo/atnaujina prasyma (pre-validacija kolektyvines atsakomybes)
submitGiiRegistracijosPrasymas(orgId)Pateikimas: siusto i vidini portala, apdoroja atsakyma

Pateikimo srautas:

canSubmit() tikrinimas
    -> Turi buti tiksliai 1 DRAFT dokumentas
    -> Transformuoja org ID -> isorinius ID
    -> dokumentasExchangeService.submitDokumentas()
    -> Atsakymas:
        PRIIMTAS -> busena=PRIIMTAS, sync is vidinio portalo
        NEPRIIMTAS -> grazina klaidas vartotojui
        Kitas -> busena=PATEIKTAS

GiiRegistracijosNutraukimoPrasymasEntityLocalServiceImpl (~196 eiluciu)

Nutraukimo prasymu valdymas.

MetodasPaskirtis
submit(orgId, prasymas)Sukuria ir pateikia nutraukimo prasyma
load(dokumentas)Uzkrauna nutraukimo prasyma su srauto detalemis

GiiInformacijaEntityLocalServiceImpl (~1034 eiluciu)

Produktu informacijos hub'o valdymas. Valdo visus 6 srautus + atstovus + atsakomybes budus.

MetodasPaskirtis
createGiiInformacija(info)Sukuria nauja hub'a su visais srautais
updateGiiInformacija(id, info)Atnaujina (clear + recreate pattern)
deleteGiiInformacijaEntity(id)Kaskadinis istrinimas
loadGiiInformacija(id)Pilnas uzkrovimas su visais srautais

Atnaujinimo pattern: Kiekvienas srautas naudoja clear + recreate -- istrinami visi vaikai, tada sukuriami is naujo. Nera inkrementinio update.

Atsakomybes budai (AtsakomybesBudas):

  • IN (Individualiai) -- tvarko pats, su datu intervalu
  • KO (Kolektyviai) -- deleguoja licencijuotai organizacijai, su org. pasirinkimu + datu intervalu
  • MM (Mokescio mokejimas) -- moka aplinkos mokesti (tik BA, AG, PA; iki 2026-01-01)

Atstovas (GiiAtstovas):

  • Saugomas per (giiInformacija, srautas) -- vienas atstovas per srauta
  • FA asmuo: vardas+pavarde saugomi viename lauke su separatoriumi "<-->"
  • Turi kontaktinius duomenis (RysioDuomenys) ir adresa (AdresasEntity)

3.2. Verslo taisykles

#TaisykleDetales
1Submit guardTik vienas laukiantis prasymas (registracijos ARBA nutraukimo) per organizacija
2Kolektyvines atsakomybes validacijaTikrinama ar GIIORG modulyje egzistuoja galiojantis pavedimas pasirinktai licencijuotai organizacijai
3Dokumento busenu lifecycleRUOSIAMAS (draft) -> PATEIKTAS (submitted) -> PRIIMTAS (accepted) / NEPRIIMTAS (rejected)
4Sync po priemimoPo dokumento priemimo -- nedelsiant sinchronizuojami duomenys is vidinio portalo
5Pranesimu sistemaEmail pranesimai: registracijos pakeitimai, ispejimai (pirmi/pakartotiniai)
6BA dvieju reguliaciju sistemaBaterijos turi sena/nauja formata (baNaujaReg flag), atskiri krovimo/saugojimo keliai
7EEI buitine/nebuitine splitEEI atsakomybe suskaidyta i 4 kategorijas: buitine prekyba, buitine savo reikmems, nebuitine prekyba, nebuitine savo reikmems
8PA 4 atsakomybes kategorijosDaugkartines, vienkartines uzstatines, vienkartines neuzstatines prekyba, vienkartines neuzstatines savo reikmems
9Isregistravimo validacijaPries nutraukiant srauta -- tikrinama ar nera nebaigtu apskaitos dokumentu (MetineAtaskaita, Zurnalas)
10Isvezimo apribojimasIsvezimo veiklos neberodomas registracijoms nuo 2026-01-01
11MM terminasMokescio mokejimo atsakomybe galima tik iki 2026-01-01
12Automatinis formavimasRegistracijos su automatinisFormavimas=true apdorojamos scheduled job'ais

4. Web/UI sluoksnis

4.1. Portletai

PortletasKontekstasPuslapisPaskirtis
GpaisGiiPortletPrivatus (autentifikuotas)/gii-registerPagrindinis registracijos portalas
GpaisGiisPortletViesas/viesi-savado-duomenysViesasis GII registro perziurejimas

4.2. Navigacijos srautas (autentifikuotas)

Organizacijos pasirinkimas (butinas)
        |
        v
navigation.jsp (virsutines tabs)
        |
        +--[GII informacija] -> registracijosInformacija.jsp
        |       Rodo: subjekto rekvizitai, adresas, versla liudijantis dok., kontaktai
        |       Rodo: registruotus srautus kaip tabs (AL/TP/EEI/BA/AG/PA)
        |       Kiekvienas tab: registracijos busena, data, nr, srauto specifines detales
        |       Mygtukas: "Koreguoti duomenis GII savade" -> registracijosForma
        |
        +--[Registruotis/Koreguoti] -> registracijosForma.jsp
        |       1 sekcija: Subjekto info (auto-fill, read-only jei registruotas)
        |       2 sekcija: Kontaktiniai duomenys (asmuo, tel., faksas, email)
        |       3 sekcija: Versla liudijantis dokumentas (jei FA subjektas)
        |       4 sekcija: Srautu pasirinkimo checkboxes
        |       5 sekcija: Per-srauto formos (tabs):
        |           - Alyvos: alyvu rusys + veiklos budai + atsakomybe
        |           - TP: transporto klases + veikla + atsakomybe
        |           - EEI: kategorijos + buitine flag + prekes zenklai + dokumentai
        |           - BA (senas + naujas): tipai + sudetis + imontuota + prekes zenklai
        |           - AG: gaminiu tipai + veikla
        |           - PA: medziaga + vienkartine/daugkartine + uzstatine + GIO/USAD org.
        |       6 sekcija: Failu priedai (su tipu, datu intervalu)
        |       7 sekcija: Patvirtinimo checkbox
        |       Mygtukai: [Issaugoti] [Teikti prasyma] [Atsaukti]
        |
        +--[Nutraukti veikla] -> registracijosNutraukimoForma.jsp
        |       Srautu checkboxes (tik registruoti srautai enabled)
        |       Per srauta: nutraukimo data + priezasties tekstas
        |       Validacija: tikrina ar nera nebaigtu apskaitos dokumentu
        |       Mygtukas: [Teikti prasyma]
        |
        +--[Istorija] -> registracijosIstorija.jsp
        |       Puslapiuojama lentele: data, tipas (GIIPR/GIINPR), busena, komentarai
        |       Kiekviena eilute: [Perziureti] -> prasymoPerziura
        |
        +--[Prasymo perziura] -> registracijosPrasymoPerziura.jsp / registracijosNutraukimoPrasymoPerziura.jsp
        |       Read-only submitted prasymo perziura
        |       Rodo: dokumento meta, klaidas/ispejimus, srauto detales, priedus
        |       Mygtukas: [Ikelti i nauja prasyma] (klonuoti)
        |
        +--[Tabakas] -> isorine sistema (POST su sesijos auth)

4.3. Viesas portalas (viesinimas)

viesinimas/view.jsp
        |
        Filtru forma:
        |   - Kodas/Pavadinimas teksto paieska
        |   - Salies dropdown (su savivaldybes priklausomybe)
        |   - Srautu checkboxes (AL/PA/TP/EEI/AG/BA)
        |   - Per-srauto filtrai (datu intervalas, tipas/klase/kategorija, atsakomybe)
        |   - [Rodyti] mygtukas
        |
        Rezultatu lentele (AJAX):
        |   - Stulpeliai: Pavadinimas | AL | TP | EEI | BA | AG | PA (check/x ikonos)
        |   - [Perziureti] -> modalinis dialogas su pilna informacija

4.4. AJAX endpoint'ai (Resource Commands)

EndpointPaskirtis
/gii/fetch/asmensAdresasGR (Gyventoju Registras) asmens adresas pagal asmens koda
/gii/fetch/imonesJarDataJAR (Juridiniu Asmenu Registras) imones pavadinimas + adresas
/gii/fetch/organizationInfoOrganizacijos info + pavedimo duomenys BA licencijavimui
/gii/background/subjectGetDataFromJARAsync background task: atnaujinti subjekto duomenis is JAR
/gii/registracijos/validate/isregistravimasServerine validacija: ar galima nutraukti srauto registracija

4.5. Teisiu valdymas

RolePaskirtis
GII_REG_INFORMACIJA_READGali matyti registracijos informacija
GII_REG_REGISTRACIJA_EDITGali kurti/redaguoti registracijas, perziureti istorija, nutraukti
GII_REG_TABAKAS_EDITGali pasiekti tabako moduli

Papildomi tikrinimai:

  • Organizacijos savininkai/adminai turi pilna prieiga prie visu srautu
  • Dokumentai filtruojami pagal pasirinkta organizacija (nera cross-org priegos)
  • canSubmit flag kontroliuoja ar rodomi formos/redagavimo mygtukai

4.6. JavaScript

Visas JS yra inline JSP failuose (nera atskiru .js failu). Pagrindinis funkcionalumas:

  • Formos validacija: datu intervalai, checkbox grupes, failu dydis/formatai
  • Atsakomybes toggle: rodo/slepia atsakomybes sekcijas pagal checkbox busena
  • Auto-fields: dinaminis eiluciu pridejimas/salinimas (alyvu rusys, bateriju tipai)
  • AJAX save/submit/cancel: su klaidų apdorojimu ir redirect logika
  • Filtru toggle: srautu filtru rodymas/slepimas viešame portale
  • Priklausomi dropdown'ai: salis -> savivaldybe

5. Integracijos ir priklausomybes

5.1. Isorines sistemos

ServisasSistemaProtokolasPaskirtis
GiiRegistracijaExchangeServiceGPAIS Vidinis Portalas (/Giis)HTTP GET + JAXB XMLSinchronizuoti registracijos duomenis
SubjektasExchange.getSubjectsByGiis()GPAIS Vidinis PortalasHTTPGauti subjektus su GII pakeitimais
DokumentasExchangeService.submitDokumentas()GPAIS Vidinis PortalasHTTPPateikti registracijos/nutraukimo prasymus
GrServiceGyventoju RegistrasHTTPAsmens adreso paieska pagal asmens koda
JarServiceJuridiniu Asmenu RegistrasHTTPImones pavadinimo ir adreso paieska

Scheduled job: GiisUpdateSchedule (ID: "GiisAtnaujinimas", ranking: 20)

  • Periodiski kvieciama SubjektasExchange.getSubjectsByGiis(lastSuccessDate)
  • Kiekvienam pasikeitusiam subjektui: retrieveGiiRegistracijaFromInternalPortal()

5.2. JAXB Beans (XML mainai)

34 bean klases gpais-utils-entity-api/.../beans/gii/ apibrezia XML schema vidinio portalo mainams:

  • Top-level: AktualiGiiRegistracija, GiiRegistracija, GiiRegistracijosPasikeitimas
  • Srautai: AlyvuSrautas, TransportoPriemoniuSrautas, ElektrosIrElektroninesIrangosSrautas, BaterijuArAkumuliatoriuSrautas, ApmokestinamujuGaminiuSrautas, PakuociuSrautas
  • Produktai: Alyva, TransportoPriemone, ElektrosIrElektronineIranga, BaterijaArAkumuliatorius, ApmokestinamisGaminys, Pakuote
  • Palaikantys: AtsakomybesBudai, AtsakomybesBudas, Atstovas, GaminysArPakuote, VerslaLiudijantisDokumentas

5.3. Priklausomybes NUO GII (ka GII naudoja)

ModulisKa naudoja
gpais-utils-entityDokumentasEntity, KlasifikatoriausReiksmeEntity, RysioDuomenysEntity, AdresasEntity, FileEntity, BackgroundTaskEntity
gpais-utils-exchangeGiiRegistracijaExchangeService, SubjektasExchange, DokumentasExchangeService, GrService, JarService
gpais-utils-commonDateUtil, GpaisOrganizationUtil, IdUtil, EmailSendUtil, AjaxResponse, JAXB beans
gpais-giiorgPavedimasEntity, PavedimoDavejasEntity, BaPavedimasEntity, LicencijaEntity
gpais-apskaitaUserGroupRoleSrautasEntity, MetineAtaskaitaEntity, ZurnalasEntity (isregistravimo validacijai)
gpais-messagesZinuteEntity, ZinuteTemplate (praneismu siuntimas)

5.4. Priklausomybes NUO GII (kas naudoja GII)

ModulisApimtisKa naudoja
gpais-apskaita~40+ importu, ~30 failuGiiRegistracijaEntity, GaminiuSrautoRegistracijaEntity, AtsakomybesBudasEntity -- SUNKIAUSIAS vartotojas
gpais-atvr7 failaiGiiRegistracijaEntityLocalService -- registracijos busenos tikrinimas
gpais-giiorg5 failaiGiiRegistracijaEntityLocalService -- registracijos duomenu gavimas
gpais-vvs4 failaiGiiRegistracijaEntityLocalService, GaminiuSrautoRegistracijaEntity
gpais-audit-event18 listener'iuVisu 18 GII esybiu ModelListener'iai
gpais-organization1 failasGiiRegistracijaEntity -- reagavimas i organizacijos pakeitimus
gpais-rtk0Nepriklauso nuo GII

5.5. Priklausomybiu diagrama

                    +------------------------------+
                    |     Isorines sistemos        |
                    |  +--------+ +-----+ +-----+  |
                    |  |GPAIS   | | GR  | | JAR |  |
                    |  |Vidinis | |gyv. | |jur. |  |
                    |  |Portalas| |reg. | |reg. |  |
                    |  +---+----+ +--+--+ +--+--+  |
                    +------+--------+---------+----+
                           |        |         |
             +-------------+--------+---------+----------+
             | gpais-utils-exchange                       |
             |  GiiRegistracijaExchangeService            |
             |  SubjektasExchange  GrService  JarService  |
             |  DokumentasExchangeService                 |
             +-------------------+------------------------+
                                 |
    +--------------+        +----v-----------+       +-----------+
    | gpais-utils- |        |   gpais-gii    |       | gpais-    |
    | entity       |<-------| (GII Registr.) |------>| messages  |
    | Dokumentas   |        |                |       | Zinute    |
    | Klasifikat.  |        | 18 esybiu      |       | Templates |
    | RysioDuom.   |        | 8 servisai     |       +-----------+
    | Adresas      |        +--+--+--+--+----+
    | File         |           |  |  |  |
    +--------------+    +------+  |  |  +-------+
                        |         |  |          |
                  +-----v-+ +----v--v---+ +----v------+
                  |gpais-  | |gpais-     | |gpais-atvr |
                  |giiorg  | |apskaita   | |(7 failai) |
                  |(5 imp.)| |(SUNKIAUS. | +-----------+
                  |        | | ~30 failu)|
                  +--------+ +----------+

    Taip pat naudoja GII:
    +----------+  +-----------+  +---------------+
    |gpais-vvs |  |gpais-audit|  |gpais-organiz. |
    |(4 failai)|  |(18 listen)|  |(1 failas)     |
    +----------+  +-----------+  +---------------+

Svarbios pastabos:

  • Dvikrypte priklausomybe su apskaita -- GII-web importuoja apskaita-api (validacijai), o apskaita masyviai priklauso nuo GII. Coupling rizika.
  • Visos 18 GII esybiu audituojamos per ModelListener gpais-audit-event modulyje.

6. Klasifikatoriai

6.1. Klasifikatoriu tipai naudojami GII

KodasKlasePaskirtis
CL109EEIKategorijosEEI irangos kategorijos
CL110ApmokestinamujuGaminiuTipasApmokestinamu gaminiu tipai
CL111PakuociuRusysPagalMedziagaPakuociu medziagos
CL113AlyvuRusisAlyvu rusys
CL114TPKlasesTransporto priemoniu klases
CL120GiiRegistracijosNutraukimoPriezastisNutraukimo priezastys
CL126BaterijuRusysBateriju rusys (NE/PE/AU/MT/ET)
CL127BaterijuChemineSudetisBateriju chemine sudetis (PB/LI/NI)
CL129FAVeiklosFA veiklos tipai (versla liudijantis dok.)
CL130PakuociuRusysPakuociu rusys
CL134GiisDokumentoPriedoTipasDokumento priedu tipai
CL166VienkartiniaiPlastikiniaiGaminiaiVienkartiniai plastikiniai gaminiai

6.2. Enum'ai (saugomi kaip string kodai)

EnumReiksmesKontekstas
GaminiuSrautasAL, TP, EEI, BA, AG, PAProduktu srautas
GiiDokumentoTipasGIIPR, GIINPRDokumento tipas
AtsakomybesBudoTipasIN, KO, MMAtsakomybes budas
VeiklosTipasLR, SR, VU, DA, NBLR, NBSRVeiklos tipas
RegistracijosBusena1 (REGISTRUOTAS), 2 (NEREGISTRUOTAS)Busena (int)

6.3. Veiklos tipai detaliau

KodasPavadinimasNaudojamas srautuose
LRPrekyba (Lietuvos rinkai)AL, TP, EEI, BA, AG
SRSavo reikmemsAL, TP, EEI, BA, AG
VUVienkartines uzstatinesPA
DADaugkartinesPA
NBLRNebuitines prekybaEEI
NBSRNebuitines savo reikmemsEEI

7. Migracijos pastabos

7.1. ID generavimas

  • Nera sekvenciu sequences.sql faile (tuscias)
  • ID generuojami per Liferay IdUtil.nextId() (counter service)
  • Isimtis: Registracijos numeriai naudoja PostgreSQL sekvencijas {srautasId}_registracijosNr_seq

7.2. PK = FK pattern

  • GiiRegistracijosPrasymasEntity ir GiiRegistracijosNutraukimoPrasymasEntity turi id kaip PK ir kartu FK -> GPAIS_Dokumentas (1:1 rysys)

7.3. GiiInformacijaEntity hub pattern

  • Turi TIK id lauka
  • 6 srauto esybes + GiiAtstovasEntity + AtsakomybesBudasEntity -- visos referuoja i ji

7.4. Clear-and-recreate pattern

  • Visi srauto duomenys naudoja destructive update: istrinami visi vaikai, tada sukuriami is naujo
  • Reikia atkreipti demesi migracijos metu -- nebus stabilu ID per update'us

7.5. String enum'ai

  • GaminiuSrautas, VeiklosTipas, AtsakomybesBudoTipas -- VARCHAR(75) su 2-4 simboliu kodais
  • RegistracijosBusena -- INTEGER (1/2)

7.6. Denormalizuoti laukai

  • orgPavadinimas, orgCode, orgCountry, orgSavivaldybe -- prideti v1.2.1, nukopijuoti is Organization/Expando
  • Reikia spressti ar naujoje sistemoje normalizuoti ar palikti denormalizuotus

7.7. BA dvieju reguliaciju duomenys

  • Seni ir nauji bateriju duomenys saugomi toje pacioje lenteleje su baNaujaReg flag
  • Naujas formatas nuo 2025-08-18
  • Migracijos metu reiks isskirti arba palikti su flag

7.8. Atstovo vardo saugojimas

  • FA asmens vardas ir pavarde saugomi viename pavadinimas lauke su separatoriumi "<-->"
  • Naujoje sistemoje verta atsidalinti i atskirus laukus

7.9. Schema versiju istorija

VersijaPakeitimai
1.1.0Prideta rysioDuomenys prie GiiAtstovas
1.2.0Prideta ispejimuSkaicius prie GaminiuSrautoRegistracija
1.2.1Denormalizuoti org. laukai prie GiiRegistracija
1.2.2Automatinio formavimo laukai prie GiiRegistracija
1.2.3Klasifikatoriu duomenu atnaujinimai (zakomentinta)
1.2.4Prideta registracijosNr prie GaminiuSrautoRegistracija
1.2.5Prideta adresasEntity prie GiiAtstovas, baNaujaReg keliose esybese
1.2.6Atjungtas GiiAtstovas nuo 1:1 su GiiInformacija, pridetas srautas
1.2.7Prideta sutikimoPozymis prie GaminiuSrautoRegistracijosPrasymas