diff --git a/pom.xml b/pom.xml index 0da3b13..9ffe5b1 100644 --- a/pom.xml +++ b/pom.xml @@ -40,15 +40,19 @@ - org.mariadb.jdbc - mariadb-java-client - runtime + com.h2database + h2 org.springframework.boot spring-boot-starter-test test + + com.example + batchprocessing + 0.0.1-SNAPSHOT + diff --git a/src/main/java/de/avatic/taricdb/batch/ImporterConfiguration.java b/src/main/java/de/avatic/taricdb/batch/ImporterConfiguration.java new file mode 100644 index 0000000..16d7514 --- /dev/null +++ b/src/main/java/de/avatic/taricdb/batch/ImporterConfiguration.java @@ -0,0 +1,8 @@ +package de.avatic.taricdb.batch; + +import org.springframework.context.annotation.Configuration; + +@Configuration +public class ImporterConfiguration { + +} diff --git a/src/main/java/de/avatic/taricdb/batch/processors/ExtractZipItemProcessor.java b/src/main/java/de/avatic/taricdb/batch/processors/ExtractZipItemProcessor.java new file mode 100644 index 0000000..89f5d49 --- /dev/null +++ b/src/main/java/de/avatic/taricdb/batch/processors/ExtractZipItemProcessor.java @@ -0,0 +1,16 @@ +package de.avatic.taricdb.batch.processors; + +import java.io.File; +import java.util.List; + +import org.springframework.batch.item.ItemProcessor; + +public class ExtractZipItemProcessor implements ItemProcessor> { + + @Override + public List process(File item) throws Exception { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/main/java/de/avatic/taricdb/batch/processors/FootnoteItemProcessor.java b/src/main/java/de/avatic/taricdb/batch/processors/FootnoteItemProcessor.java new file mode 100644 index 0000000..31d0bc8 --- /dev/null +++ b/src/main/java/de/avatic/taricdb/batch/processors/FootnoteItemProcessor.java @@ -0,0 +1,5 @@ +package de.avatic.taricdb.batch.processors; + +public class FootnoteItemProcessor { + +} diff --git a/src/main/java/de/avatic/taricdb/model/UploadFile.java b/src/main/java/de/avatic/taricdb/model/UploadFile.java new file mode 100644 index 0000000..a4b5879 --- /dev/null +++ b/src/main/java/de/avatic/taricdb/model/UploadFile.java @@ -0,0 +1,11 @@ +package de.avatic.taricdb.model; + + + +public class UploadFile { + + int id; + + UploadFileType type; + +} diff --git a/src/main/java/de/avatic/taricdb/model/UploadFileType.java b/src/main/java/de/avatic/taricdb/model/UploadFileType.java new file mode 100644 index 0000000..d185ffd --- /dev/null +++ b/src/main/java/de/avatic/taricdb/model/UploadFileType.java @@ -0,0 +1,26 @@ +package de.avatic.taricdb.model; + +public enum UploadFileType { + ZIP("null"), + DUTIES("Duties Import 01-99.xlsx"), + BUSINESS_CODE("TARIC Business codes.xlsx"), + GEO_COMPOSITION("Geographical areas composition.xlsx"), + GEO("Geographical areas descriptions.xlsx"), + LEGAL_BASES("Legal bases.xlsx"), + MEASURE_CONDITIONS("Measure conditions.xlsx"), + MEASURE_EXCLUSIONS("Measure exclusions.xlsx"), + MEASURE_FOOTNOTES("Measure footnotes.xlsx"), + NOMENCLATURE_DE("Nomenclature DE.xlsx"), + NOMENCLATURE_FR("Nomenclature FR.xlsx"), + NOMENCLATURE_EN("Nomenclature EN.xlsx"), + DECLARABLE_CODES("Declarable codes.xlsx"), + ADDITIONAL_CODES("Additional codes descriptions.xlsx"), + BOX_44("Box 44 codes of the SAD.xlsx"), + FOOTNOTES("Footnotes descriptions.xlsx"), + NOMENCLATURE_FOOTNOTES("Nomenclature footnotes.xlsx"); + + UploadFileType(String fileName) { + + } + +} diff --git a/src/main/java/de/avatic/taricdb/repository/UploadFileRepository.java b/src/main/java/de/avatic/taricdb/repository/UploadFileRepository.java new file mode 100644 index 0000000..caa7238 --- /dev/null +++ b/src/main/java/de/avatic/taricdb/repository/UploadFileRepository.java @@ -0,0 +1,5 @@ +package de.avatic.taricdb.repository; + +public class UploadFileRepository { + +} diff --git a/src/main/java/de/avatic/taricdb/service/UploadService.java b/src/main/java/de/avatic/taricdb/service/UploadService.java new file mode 100644 index 0000000..af878c0 --- /dev/null +++ b/src/main/java/de/avatic/taricdb/service/UploadService.java @@ -0,0 +1,8 @@ +package de.avatic.taricdb.service; + +import org.springframework.stereotype.Component; + +@Component +public class UploadService { + +} diff --git a/src/main/java/de/avatic/taricdb/web/UploadController.java b/src/main/java/de/avatic/taricdb/web/UploadController.java new file mode 100644 index 0000000..af22d4d --- /dev/null +++ b/src/main/java/de/avatic/taricdb/web/UploadController.java @@ -0,0 +1,15 @@ +package de.avatic.taricdb.web; + +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class UploadController { + + + @PostMapping + public void startConversion() { + + } + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 55528b2..b8761f1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,2 @@ spring.application.name=taricdb +spring.batch.job.enabled= false \ No newline at end of file diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index a892e16..a686437 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -1,3 +1,15 @@ +-- upload tables +create table if not exists "upload_file" +( + id INT NOT NULL PRIMARY KEY, + file_name TEXT, + file_type ENUM("zip", "duties", "business_codes", "geo_composition", "geo", "legal_bases", "measure_conditions", "measure_exclusions", + "measure_footnotes", "nomenclature_de", "nomenclature_en", , "nomenclature_fr", "declarable_codes", "additional_codes", "box44", + "footnotes", "nomenclature_footnotes") + blob LONGBLOB + parent_zip INT +); + -- meta tables, like units and certificates create table if not exists "legal_base" ( @@ -110,6 +122,12 @@ create table if not exists "nomenclature" is_leaf_start_date DATE, parent_id INT -- TODO: for each child do: alter table nomenclature add constraint parent_nomenclature foreign key (parent_id) references nomenclature(id) on delete set null; ); +create table if not exists "nomenclature_footnote" +( + id INT NOT NULL PRIMARY KEY, + FOREIGN KEY (footnote_id) REFERENCES footnote(id), + FOREIGN KEY (nomenclature_id) REFERENCES nomenclature(id) +); create table if not exists "additional_code" ( id INT NOT NULL PRIMARY KEY,