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
- Apzvalga
- Duomenu modelis
- Verslo logika
- Web/UI sluoksnis
- Integracijos ir priklausomybes
- Klasifikatoriai
- Migracijos pastabos
1. Apzvalga
GII modulis valdo gamintoju ir importuotoju registracija sesti produktu srautuose:
| Kodas | Pavadinimas | Specifika |
|---|---|---|
| AL | Alyvos | Alyvu rusys (CL113), veiklos budai |
| TP | Transporto priemones | Transporto klases (CL114) |
| EEI | Elektros ir elektronine iranga | Kategorijos (CL109), buitine/nebuitine, prekes zenklai |
| BA | Baterijos ir akumuliatoriai | Rusys (CL126), chemine sudetis (CL127), sena/nauja reguliacija |
| AG | Apmokestinamieji gaminiai | Gaminiu tipai (CL110) |
| PA | Pakuotes | Medziagos (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 atmesta2. 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).
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| createDate | Date | DATE | Audito laikas |
| modifiedDate | Date | DATE | Audito laikas |
| organizationId | long | LONG | FK -> Liferay Organization |
| orgPavadinimas | String | VARCHAR(512) | Organizacijos pavadinimas (denormalizuotas, v1.2.1) |
| orgCountry | long | LONG | FK -> KlasifikatoriausReiksme (salis) |
| orgCode | String | VARCHAR(75) | Organizacijos kodas (v1.2.1) |
| orgSavivaldybe | long | LONG | FK -> KlasifikatoriausReiksme (savivaldybe) |
| automatinisFormavimas | boolean | BOOLEAN | Auto-formavimo flag (v1.2.2) |
| automatinioFormavimoPradzia | Date | DATE | Auto-formavimo pradzia (v1.2.2) |
| rysioDuomenys | long | LONG | FK -> GPAIS_RysioDuomenys |
| verslaLiudijantisDokumentas | long | LONG | FK -> GII_VerslaLiudijantisDokumentas |
Finders: findByOrganization(organizationId) -> vienas irasas Index: IX_B336F399 on organizationId
GaminiuSrautoRegistracijaEntity
Lentele: GII_GaminiuSrautoRegistracijaPaskirtis: Srauto registracijos busena (vienas per srauta per registracija).
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| registracija | long | LONG | FK -> GII_GiiRegistracija |
| srautas | String | VARCHAR(75) | Enum: AL/TP/EEI/BA/AG/PA |
| busena | int | INTEGER | 1=REGISTRUOTAS, 2=NEREGISTRUOTAS |
| registracijosData | Date | DATE | Registracijos data |
| pradetaTiektiRinkaiNuo | Date | DATE | Pradeta tiekti rinkai nuo |
| isregistravimoData | Date | DATE | Isregistravimo data |
| isregistravimoPriezastis | long | LONG | FK -> CL120 |
| isregistravimoPastaba | String | VARCHAR(2000) | Isregistravimo pastaba |
| koregavimoData | Date | DATE | Koregavimo data |
| ispejimuSkaicius | long | LONG | Ispejimu skaicius (v1.2.0) |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
| registracijosNr | String | VARCHAR(150) | Registracijos numeris (v1.2.4) |
| baNaujaReg | boolean | BOOLEAN | BA naujos reguliacijos flag (v1.2.5) |
Finders:
findByRegistracija(registracija)-> kolekcijafindByRegistracijaSrautas(registracija, srautas)-> kolekcijafindByRegistracijaBusena(registracija, busena)-> kolekcija
GiiInformacijaEntity
Lentele: GII_GiiInformacijaPaskirtis: Hub esybe, jungianti produktu srauto detales. Turi TIK id lauka.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
AlyvaEntity
Lentele: GII_AlyvaPaskirtis: Alyvu srauto duomenys.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
| rusis | long | LONG | FK -> CL113 (AlyvuRusis) |
| gaminysArPakuote | long | LONG | FK -> GII_GaminysArPakuote |
Finder: findByGiiInformacija(giiInformacija) -> kolekcija
TransportoPriemoneEntity
Lentele: GII_TransportoPriemonePaskirtis: Transporto priemoniu srauto duomenys.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
| klase | long | LONG | FK -> CL114 (TPKlases) |
| gaminysArPakuote | long | LONG | FK -> GII_GaminysArPakuote |
Finder: findByGiiInformacija(giiInformacija) -> kolekcija
ElektrosIrElektronineIrangaEntity
Lentele: GII_ElektrosIrElektronineIrangaPaskirtis: EEI srauto duomenys.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
| buitine | boolean | BOOLEAN | Ar buitine iranga |
| prekesZenklai | String | VARCHAR(2000) | Prekes zenklai |
| planas | String | VARCHAR(75) | Planuojamas kiekis |
| kategorija | long | LONG | FK -> CL109 (EEIKategorijos) |
| gaminysArPakuote | long | LONG | FK -> GII_GaminysArPakuote |
Finder: findByGiiInformacija(giiInformacija) -> kolekcija
BaterijaArAkumuliatoriusEntity
Lentele: GII_BaterijaArAkumuliatoriusPaskirtis: Bateriju/akumuliatoriu srauto duomenys.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
| baterija | boolean | BOOLEAN | Ar baterija (vs akumuliatorius) |
| imontuota | boolean | BOOLEAN | Ar imontuota |
| prekesZenklai | String | VARCHAR(2000) | Prekes zenklai |
| rusis | long | LONG | FK -> CL126 (BaterijuRusys: NE/PE/AU/MT/ET) |
| chemineSudetis | long | LONG | FK -> CL127 (BaterijuChemineSudetis: PB/LI/NI) |
| gaminysArPakuote | long | LONG | FK -> GII_GaminysArPakuote |
| baNaujaReg | boolean | BOOLEAN | Naujos reguliacijos flag (v1.2.5) |
Finders:
findByGiiInformacija(giiInformacija)-> kolekcijafindByGiiInformacijaNauja(giiInformacija, baNaujaReg)-> kolekcija
ApmokestinamisGaminysEntity
Lentele: GII_ApmokestinamisGaminysPaskirtis: Apmokestinamu gaminiu srauto duomenys.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
| tipas | long | LONG | FK -> CL110 (ApmokestinamujuGaminiuTipas) |
| gaminysArPakuote | long | LONG | FK -> GII_GaminysArPakuote |
Finder: findByGiiInformacija(giiInformacija) -> kolekcija
PakuoteEntity
Lentele: GII_PakuotePaskirtis: Pakuociu srauto duomenys.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
| vienkartine | boolean | BOOLEAN | Ar vienkartine |
| uzstatine | boolean | BOOLEAN | Ar uzstatine |
| medziaga | long | LONG | FK -> CL111 (PakuociuRusysPagalMedziaga) |
| gaminysArPakuote | long | LONG | FK -> GII_GaminysArPakuote |
Finder: findByGiiInformacija(giiInformacija) -> kolekcija
GaminysArPakuoteEntity
Lentele: GII_GaminysArPakuotePaskirtis: Produkto/pakuotes platinimo kanalu flags. Naudoja visos 6 srauto esybes.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| sunaudojimasSavoReikmems | boolean | BOOLEAN | Sunaudojimas savo reikmems |
| isvezimasPerTreciuosiusAsmenis | boolean | BOOLEAN | Isvezimas per treciuosius |
| isvezimas | boolean | BOOLEAN | Tiesioginis isvezimas |
| mazmenine | boolean | BOOLEAN | Mazmenine prekyba |
| didmenine | boolean | BOOLEAN | Didmenine prekyba |
| nuotoline | boolean | BOOLEAN | Nuotoline prekyba |
AtsakomybesBudasEntity
Lentele: GII_AtsakomybesBudasPaskirtis: Atsakomybes budas per srauta ir veiklos tipa.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
| srautas | String | VARCHAR(75) | Enum: AL/TP/EEI/BA/AG/PA |
| veikla | String | VARCHAR(75) | Enum: LR/SR/VU/DA/NBLR/NBSR |
| tipas | String | VARCHAR(75) | Enum: IN/KO/MM |
| nuo | Date | DATE | Galioja nuo |
| iki | Date | DATE | Galioja iki |
| dokumentas | String | VARCHAR(75) | Dokumento nuoroda |
| licenzijuotaOrganizacija | long | LONG | FK -> Liferay Organization |
Finders:
findByGiiInformacija(giiInformacija)-> kolekcijafindBySrautas(giiInformacija, srautas)-> kolekcijafindByVeikla(giiInformacija, srautas, veikla)-> kolekcija
VerslaLiudijantisDokumentasEntity
Lentele: GII_VerslaLiudijantisDokumentasPaskirtis: Versla liudijantis dokumentas (pvz., verslo licencija).
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| tipas | long | LONG | FK -> CL129 (FAVeiklos) |
| numeris | String | VARCHAR(75) | Dokumento numeris |
GiiAtstovasEntity
Lentele: GII_GiiAtstovasPaskirtis: GII igaliotasis atstovas (per srauta).
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| giiinformacijaentityid | long | LONG | FK -> GII_GiiInformacija (v1.2.6) |
| fizinis | boolean | BOOLEAN | Ar fizinis asmuo |
| kodas | String | VARCHAR(75) | Atstovo kodas |
| pavadinimas | String | VARCHAR(512) | Pavadinimas (FA: "vardas<-->pavarde") |
| rysioDuomenys | long | LONG | FK -> GPAIS_RysioDuomenys (v1.1.0) |
| adresasEntity | long | LONG | FK -> GPAIS_Adresas (v1.2.5) |
| srautas | String | VARCHAR(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.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK, taip pat FK -> GPAIS_Dokumentas |
| koregavimas | boolean | BOOLEAN | Ar tai koregavimas |
| rysioDuomenys | long | LONG | FK -> GPAIS_RysioDuomenys |
| verslaLiudijantisDokumentas | long | LONG | FK -> GII_VerslaLiudijantisDokumentas |
| giiInformacija | long | LONG | FK -> GII_GiiInformacija |
GaminiuSrautoRegistracijosPrasymasEntity
Lentele: GII_GaminiuSrautoRegistracijosPrasymasPaskirtis: Srauto registracijos prasymo detale.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| prasymas | long | LONG | FK -> GII_GiiRegistracijosPrasymas |
| srautas | String | VARCHAR(75) | Enum: AL/TP/EEI/BA/AG/PA |
| nuo | Date | DATE | Registracija nuo |
| komentaras | String | VARCHAR(2000) | Komentaras |
| baNaujaReg | boolean | BOOLEAN | BA naujos reg. flag (v1.2.5) |
| sutikimoPozymis | boolean | BOOLEAN | Sutikimo pozymis (v1.2.7) |
Finders:
findByPrasymas(prasymas)-> kolekcijafindByPrasymasSrautas(prasymas, srautas)-> vienasfindByPrasymasBaNaujaReg(prasymas, baNaujaReg)-> kolekcija
GiiRegistracijosNutraukimoPrasymasEntity
Lentele: GII_GiiRegistracijosNutraukimoPrasymasPaskirtis: Nutraukimo prasymo dokumentas. PK = FK -> GPAIS_Dokumentas.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK, taip pat FK -> GPAIS_Dokumentas |
GaminiuSrautoRegistracijosNutraukimoPrasymasEntity
Lentele: GII_GaminiuSrautoRegistracijosNutraukimoPrasymasPaskirtis: Srauto nutraukimo prasymo detale.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| prasymas | long | LONG | FK -> GII_GiiRegistracijosNutraukimoPrasymas |
| srautas | String | VARCHAR(75) | Enum: AL/TP/EEI/BA/AG/PA |
| nuo | Date | DATE | Nutraukimas nuo |
| komentaras | String | VARCHAR(2000) | Komentaras |
Finder: findByPrasymasSrautas(prasymas, srautas) -> vienas
GiiRegistracijosPrasymoPriedasEntity
Lentele: GII_GiiRegistracijosPrasymoPriedasPaskirtis: Prasymo priedas/dokumentas.
| Laukas | Tipas | SQL | Pastabos |
|---|---|---|---|
| id | long | LONG | PK |
| prasymas | long | LONG | FK -> GII_GiiRegistracijosPrasymas |
| tipas | long | LONG | FK -> CL134 (GiisDokumentoPriedoTipas) |
| nuo | Date | DATE | Galioja nuo |
| iki | Date | DATE | Galioja iki |
| file | long | LONG | FK -> GPAIS_File |
Finder: findByPrasymas(prasymas) -> kolekcija
Legacy: GII_GiiRegistracijaIgaliotasAtstovas
Tik SQL, ne service.xml. Pakeista GiiAtstovasEntity po v1.2.6.
| Laukas | SQL | Pastabos |
|---|---|---|
| id_ | LONG | PK |
| giiInformacija | LONG | FK -> GII_GiiInformacija |
| kodas | VARCHAR(75) | Atstovo kodas |
| pavadinimas | VARCHAR(75) | Pavadinimas |
| tipas | VARCHAR(75) | Tipas |
| adresasEntityId | LONG | FK -> GPAIS_Adresas |
| rysioDuomenysEntityId | LONG | FK -> GPAIS_RysioDuomenys |
2.3. Isorines esybes (is gpais-utils-entity)
| Esybe | Lentelé | Naudojimas GII |
|---|---|---|
| GPAIS_RysioDuomenys | Kontaktiniai duomenys | Registracijos kontaktai, atstovo kontaktai |
| GPAIS_Dokumentas | Bazinis dokumentas | PK prasymu esybems (1:1) |
| GPAIS_DokumentoBusena | Dokumento busena | Busenos sekimas |
| GPAIS_KlasifikatoriausReiksme | Klasifikatoriu reiksmes | Visi lookup'ai (CL109-CL166) |
| GPAIS_Adresas | Adreso duomenys | Atstovo adresas |
| GPAIS_File | Failu saugykla | Prasymo priedai |
3. Verslo logika
3.1. Pagrindiniai servisai
GiiRegistracijaEntityLocalServiceImpl (~1616 eiluciu)
Centrinis GII servisas. Valdo registracijas, sinchronizacija su vidiniu portalu, pranesimu siuntima.
| Metodas | Paskirtis |
|---|---|
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.
| Metodas | Paskirtis |
|---|---|
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=PATEIKTASGiiRegistracijosNutraukimoPrasymasEntityLocalServiceImpl (~196 eiluciu)
Nutraukimo prasymu valdymas.
| Metodas | Paskirtis |
|---|---|
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.
| Metodas | Paskirtis |
|---|---|
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
| # | Taisykle | Detales |
|---|---|---|
| 1 | Submit guard | Tik vienas laukiantis prasymas (registracijos ARBA nutraukimo) per organizacija |
| 2 | Kolektyvines atsakomybes validacija | Tikrinama ar GIIORG modulyje egzistuoja galiojantis pavedimas pasirinktai licencijuotai organizacijai |
| 3 | Dokumento busenu lifecycle | RUOSIAMAS (draft) -> PATEIKTAS (submitted) -> PRIIMTAS (accepted) / NEPRIIMTAS (rejected) |
| 4 | Sync po priemimo | Po dokumento priemimo -- nedelsiant sinchronizuojami duomenys is vidinio portalo |
| 5 | Pranesimu sistema | Email pranesimai: registracijos pakeitimai, ispejimai (pirmi/pakartotiniai) |
| 6 | BA dvieju reguliaciju sistema | Baterijos turi sena/nauja formata (baNaujaReg flag), atskiri krovimo/saugojimo keliai |
| 7 | EEI buitine/nebuitine split | EEI atsakomybe suskaidyta i 4 kategorijas: buitine prekyba, buitine savo reikmems, nebuitine prekyba, nebuitine savo reikmems |
| 8 | PA 4 atsakomybes kategorijos | Daugkartines, vienkartines uzstatines, vienkartines neuzstatines prekyba, vienkartines neuzstatines savo reikmems |
| 9 | Isregistravimo validacija | Pries nutraukiant srauta -- tikrinama ar nera nebaigtu apskaitos dokumentu (MetineAtaskaita, Zurnalas) |
| 10 | Isvezimo apribojimas | Isvezimo veiklos neberodomas registracijoms nuo 2026-01-01 |
| 11 | MM terminas | Mokescio mokejimo atsakomybe galima tik iki 2026-01-01 |
| 12 | Automatinis formavimas | Registracijos su automatinisFormavimas=true apdorojamos scheduled job'ais |
4. Web/UI sluoksnis
4.1. Portletai
| Portletas | Kontekstas | Puslapis | Paskirtis |
|---|---|---|---|
| GpaisGiiPortlet | Privatus (autentifikuotas) | /gii-register | Pagrindinis registracijos portalas |
| GpaisGiisPortlet | Viesas | /viesi-savado-duomenys | Viesasis 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 informacija4.4. AJAX endpoint'ai (Resource Commands)
| Endpoint | Paskirtis |
|---|---|
/gii/fetch/asmensAdresas | GR (Gyventoju Registras) asmens adresas pagal asmens koda |
/gii/fetch/imonesJarData | JAR (Juridiniu Asmenu Registras) imones pavadinimas + adresas |
/gii/fetch/organizationInfo | Organizacijos info + pavedimo duomenys BA licencijavimui |
/gii/background/subjectGetDataFromJAR | Async background task: atnaujinti subjekto duomenis is JAR |
/gii/registracijos/validate/isregistravimas | Serverine validacija: ar galima nutraukti srauto registracija |
4.5. Teisiu valdymas
| Role | Paskirtis |
|---|---|
GII_REG_INFORMACIJA_READ | Gali matyti registracijos informacija |
GII_REG_REGISTRACIJA_EDIT | Gali kurti/redaguoti registracijas, perziureti istorija, nutraukti |
GII_REG_TABAKAS_EDIT | Gali pasiekti tabako moduli |
Papildomi tikrinimai:
- Organizacijos savininkai/adminai turi pilna prieiga prie visu srautu
- Dokumentai filtruojami pagal pasirinkta organizacija (nera cross-org priegos)
canSubmitflag 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
| Servisas | Sistema | Protokolas | Paskirtis |
|---|---|---|---|
GiiRegistracijaExchangeService | GPAIS Vidinis Portalas (/Giis) | HTTP GET + JAXB XML | Sinchronizuoti registracijos duomenis |
SubjektasExchange.getSubjectsByGiis() | GPAIS Vidinis Portalas | HTTP | Gauti subjektus su GII pakeitimais |
DokumentasExchangeService.submitDokumentas() | GPAIS Vidinis Portalas | HTTP | Pateikti registracijos/nutraukimo prasymus |
GrService | Gyventoju Registras | HTTP | Asmens adreso paieska pagal asmens koda |
JarService | Juridiniu Asmenu Registras | HTTP | Imones 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)
| Modulis | Ka naudoja |
|---|---|
| gpais-utils-entity | DokumentasEntity, KlasifikatoriausReiksmeEntity, RysioDuomenysEntity, AdresasEntity, FileEntity, BackgroundTaskEntity |
| gpais-utils-exchange | GiiRegistracijaExchangeService, SubjektasExchange, DokumentasExchangeService, GrService, JarService |
| gpais-utils-common | DateUtil, GpaisOrganizationUtil, IdUtil, EmailSendUtil, AjaxResponse, JAXB beans |
| gpais-giiorg | PavedimasEntity, PavedimoDavejasEntity, BaPavedimasEntity, LicencijaEntity |
| gpais-apskaita | UserGroupRoleSrautasEntity, MetineAtaskaitaEntity, ZurnalasEntity (isregistravimo validacijai) |
| gpais-messages | ZinuteEntity, ZinuteTemplate (praneismu siuntimas) |
5.4. Priklausomybes NUO GII (kas naudoja GII)
| Modulis | Apimtis | Ka naudoja |
|---|---|---|
| gpais-apskaita | ~40+ importu, ~30 failu | GiiRegistracijaEntity, GaminiuSrautoRegistracijaEntity, AtsakomybesBudasEntity -- SUNKIAUSIAS vartotojas |
| gpais-atvr | 7 failai | GiiRegistracijaEntityLocalService -- registracijos busenos tikrinimas |
| gpais-giiorg | 5 failai | GiiRegistracijaEntityLocalService -- registracijos duomenu gavimas |
| gpais-vvs | 4 failai | GiiRegistracijaEntityLocalService, GaminiuSrautoRegistracijaEntity |
| gpais-audit-event | 18 listener'iu | Visu 18 GII esybiu ModelListener'iai |
| gpais-organization | 1 failas | GiiRegistracijaEntity -- reagavimas i organizacijos pakeitimus |
| gpais-rtk | 0 | Nepriklauso 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
| Kodas | Klase | Paskirtis |
|---|---|---|
| CL109 | EEIKategorijos | EEI irangos kategorijos |
| CL110 | ApmokestinamujuGaminiuTipas | Apmokestinamu gaminiu tipai |
| CL111 | PakuociuRusysPagalMedziaga | Pakuociu medziagos |
| CL113 | AlyvuRusis | Alyvu rusys |
| CL114 | TPKlases | Transporto priemoniu klases |
| CL120 | GiiRegistracijosNutraukimoPriezastis | Nutraukimo priezastys |
| CL126 | BaterijuRusys | Bateriju rusys (NE/PE/AU/MT/ET) |
| CL127 | BaterijuChemineSudetis | Bateriju chemine sudetis (PB/LI/NI) |
| CL129 | FAVeiklos | FA veiklos tipai (versla liudijantis dok.) |
| CL130 | PakuociuRusys | Pakuociu rusys |
| CL134 | GiisDokumentoPriedoTipas | Dokumento priedu tipai |
| CL166 | VienkartiniaiPlastikiniaiGaminiai | Vienkartiniai plastikiniai gaminiai |
6.2. Enum'ai (saugomi kaip string kodai)
| Enum | Reiksmes | Kontekstas |
|---|---|---|
GaminiuSrautas | AL, TP, EEI, BA, AG, PA | Produktu srautas |
GiiDokumentoTipas | GIIPR, GIINPR | Dokumento tipas |
AtsakomybesBudoTipas | IN, KO, MM | Atsakomybes budas |
VeiklosTipas | LR, SR, VU, DA, NBLR, NBSR | Veiklos tipas |
RegistracijosBusena | 1 (REGISTRUOTAS), 2 (NEREGISTRUOTAS) | Busena (int) |
6.3. Veiklos tipai detaliau
| Kodas | Pavadinimas | Naudojamas srautuose |
|---|---|---|
| LR | Prekyba (Lietuvos rinkai) | AL, TP, EEI, BA, AG |
| SR | Savo reikmems | AL, TP, EEI, BA, AG |
| VU | Vienkartines uzstatines | PA |
| DA | Daugkartines | PA |
| NBLR | Nebuitines prekyba | EEI |
| NBSR | Nebuitines savo reikmems | EEI |
7. Migracijos pastabos
7.1. ID generavimas
- Nera sekvenciu
sequences.sqlfaile (tuscias) - ID generuojami per Liferay
IdUtil.nextId()(counter service) - Isimtis: Registracijos numeriai naudoja PostgreSQL sekvencijas
{srautasId}_registracijosNr_seq
7.2. PK = FK pattern
GiiRegistracijosPrasymasEntityirGiiRegistracijosNutraukimoPrasymasEntityturiidkaip PK ir kartu FK ->GPAIS_Dokumentas(1:1 rysys)
7.3. GiiInformacijaEntity hub pattern
- Turi TIK
idlauka - 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
baNaujaRegflag - 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
pavadinimaslauke su separatoriumi"<-->" - Naujoje sistemoje verta atsidalinti i atskirus laukus
7.9. Schema versiju istorija
| Versija | Pakeitimai |
|---|---|
| 1.1.0 | Prideta rysioDuomenys prie GiiAtstovas |
| 1.2.0 | Prideta ispejimuSkaicius prie GaminiuSrautoRegistracija |
| 1.2.1 | Denormalizuoti org. laukai prie GiiRegistracija |
| 1.2.2 | Automatinio formavimo laukai prie GiiRegistracija |
| 1.2.3 | Klasifikatoriu duomenu atnaujinimai (zakomentinta) |
| 1.2.4 | Prideta registracijosNr prie GaminiuSrautoRegistracija |
| 1.2.5 | Prideta adresasEntity prie GiiAtstovas, baNaujaReg keliose esybese |
| 1.2.6 | Atjungtas GiiAtstovas nuo 1:1 su GiiInformacija, pridetas srautas |
| 1.2.7 | Prideta sutikimoPozymis prie GaminiuSrautoRegistracijosPrasymas |