diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/config/DBFImporterConfig.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/config/DBFImporterConfig.java index 43ca6d69a..5bdb8c60e 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/config/DBFImporterConfig.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/config/DBFImporterConfig.java @@ -7,11 +7,15 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable; +import ru.spcex.clearing.dbf.importer.logic.data.tables.*; import ru.spcex.clearing.dbf.importer.logic.stages.*; import ru.spcex.clearing.dbf.importer.properties.AProperties; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; @Configuration @EnableConfigurationProperties @@ -49,4 +53,16 @@ public class DBFImporterConfig { executor.initialize(); return executor; } + + @Bean("mapOfTable") + public Map getMapOfTables() { + Map map = new HashMap<>(); + map.put(ETable.DF_01, new SDf01Table()); + map.put(ETable.DF_09, new SDf09Table()); + map.put(ETable.DF_12, new SDf12Table()); + map.put(ETable.DF_16, new SDf16Table()); + return map; + } + + } diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/controller/DefaultController.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/controller/ImporterController.java similarity index 90% rename from clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/controller/DefaultController.java rename to clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/controller/ImporterController.java index f29f81bb4..a09fa31d9 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/controller/DefaultController.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/controller/ImporterController.java @@ -13,11 +13,11 @@ import org.springframework.web.bind.annotation.ResponseBody; import ru.spcex.clearing.dbf.importer.services.DBFImporterService; @Controller("/") -public class DefaultController implements InitializingBean { +public class ImporterController implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); private final DBFImporterService importerService; - public DefaultController(@Qualifier("dbfImporterService") DBFImporterService importerService) { + public ImporterController(@Qualifier("dbfImporterService") DBFImporterService importerService) { this.importerService = importerService; } diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/enums/ETable.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/enums/ETable.java index 4f4e962b5..ff802e79f 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/enums/ETable.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/enums/ETable.java @@ -2,18 +2,10 @@ package ru.spcex.clearing.dbf.importer.logic.data.enums; public enum ETable { DF_01("DF-01"), - DF_02("DF-02"), - DF_03("DF-03"), - DF_04("DF-04"), - DF_05("DF-05"), - DF_08("DF-08"), DF_09("DF-09"), - DF_10("DF-10"), - DF_11("DF-11"), DF_12("DF-12"), - DF_16("DF-16"), - DF_17("DF-17"), - DF_18("DF-18"); + DF_16("DF-16"); + private final String prefix; ETable(String prefix) { diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/AbstractTable.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/AbstractTable.java index 97fd9a495..0856ee31c 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/AbstractTable.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/AbstractTable.java @@ -11,6 +11,7 @@ public abstract class AbstractTable { protected HazelcastService hazelcastService; protected ImdgHazelcast map; protected String filename; + protected Long fileId; protected AbstractTable(String prefix, Class clazz, String nameOfMap) { this.prefix = prefix; @@ -18,6 +19,10 @@ public abstract class AbstractTable { this.nameOfMap = nameOfMap; } + public void setFileId(Long fileId) { + this.fileId = fileId; + } + public void setFilename(String filename) { this.filename = filename; } diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf01Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf01Table.java index 0f5738ede..217b976b1 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf01Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf01Table.java @@ -19,7 +19,6 @@ public class SDf01Table extends AbstractTable { @Override public SDf01 getEntity(Object[] entity) { SDf01 result = new SDf01(); - result.setCurr_code((String) entity[0]); result.setAccount((String) entity[1]); result.setRemainder((String) entity[2]); @@ -34,7 +33,7 @@ public class SDf01Table extends AbstractTable { result.setFile_type((String) entity[11]); result.setFileName(filename); result.setGenerationTime(Instant.now()); - result.setGenerationId(0L); + result.setGenerationId(fileId); return result; } diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf02Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf02Table.java deleted file mode 100644 index 9ddb14680..000000000 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf02Table.java +++ /dev/null @@ -1,47 +0,0 @@ -package ru.spcex.clearing.dbf.importer.logic.data.tables; - -import ru.clearing.classes.statics.data.sdf.SDf02; -import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.time.Instant; - -public class SDf02Table extends AbstractTable { - - private static final String PREFIX = ETable.DF_02.name(); - private static final Class CLAZZ = SDf02.class; - private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf02; - - public SDf02Table() { - super(PREFIX, CLAZZ, NAME_OF_HZ_MAP); - } - - @Override - public SDf02 getEntity(Object[] entity) { - SDf02 result = new SDf02(); - - result.setCurr_code((String) entity[0]); - result.setAccount((String) entity[1]); - result.setRemainder((String) entity[2]); - result.setDeal((String) entity[3]); - result.setAcc_code((String) entity[4]); - result.setDat((String) entity[5]); - result.setMarket((String) entity[6]); - result.setAcc_name((String) entity[7]); - result.setAcc_type((String) entity[8]); - result.setSumengage((String) entity[9]); - result.setSumunblock((String) entity[10]); - result.setFile_type((String) entity[11]); - result.setResult((String) entity[12]); - result.setGenerationTime(TimeUtil.strToInstant((String) entity[13])); - result.setGenerationId((Long) entity[14]); - result.setInSDf01Id((Long) entity[15]); - //result.setFileName(filename); - result.setGenerationTime(Instant.now()); - result.setGenerationId(0L); - return result; - } - -} - diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf08Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf08Table.java deleted file mode 100644 index 72a3ac169..000000000 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf08Table.java +++ /dev/null @@ -1,35 +0,0 @@ -package ru.spcex.clearing.dbf.importer.logic.data.tables; - -import ru.clearing.classes.statics.data.sdf.SDf08; -import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.time.Instant; - -public class SDf08Table extends AbstractTable { - - private static final String PREFIX = ETable.DF_08.name(); - private static final Class CLAZZ = SDf08.class; - private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf08; - - - public SDf08Table() { - super(PREFIX, CLAZZ, NAME_OF_HZ_MAP); - } - - @Override - public SDf08 getEntity(Object[] entity) { - SDf08 result = new SDf08(); - - result.setNumber((BigDecimal) entity[0]); - result.setDatetime(TimeUtil.strToInstant((String) entity[1])); - //result.setFileName(filename); - result.setGenerationTime(Instant.now()); - result.setGenerationId(0L); - return result; - } - - -} \ No newline at end of file diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java new file mode 100644 index 000000000..bb87117bb --- /dev/null +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java @@ -0,0 +1,35 @@ +package ru.spcex.clearing.dbf.importer.logic.data.tables; + +import ru.clearing.classes.statics.data.sdf.SDf09; +import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +import java.math.BigDecimal; +import java.time.Instant; + +public class SDf09Table extends AbstractTable { + + private static final String PREFIX = ETable.DF_09.name(); + private static final Class CLAZZ = SDf09.class; + private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf09; + + public SDf09Table() { + super(PREFIX, CLAZZ, NAME_OF_HZ_MAP); + } + + @Override + public SDf09 getEntity(Object[] entity) { + SDf09 result = new SDf09(); + + result.setAccount((String) entity[0]); + result.setSum((BigDecimal) entity[1]); + result.setMarket((String) entity[2]); + result.setType((String) entity[3]); + result.setNumber((BigDecimal) entity[4]); + result.setInn((BigDecimal) entity[5]); + result.setFileName(filename); + result.setGenerationTime(Instant.now()); + result.setGenerationId(fileId); + return result; + } +} \ No newline at end of file diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java index 81c4a74a4..0fec7223c 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java @@ -20,14 +20,12 @@ public class SDf12Table extends AbstractTable { @Override public SDf12 getEntity(Object[] entity) { SDf12 result = new SDf12(); - - result.setAccount((String) entity[0]); result.setDeal((String) entity[1]); result.setStatus((BigDecimal) entity[2]); result.setFileName(filename); result.setGenerationTime(Instant.now()); - result.setGenerationId(0L); + result.setGenerationId(fileId); return result; } } \ No newline at end of file diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf16Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf16Table.java index 611560b28..06a263f40 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf16Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf16Table.java @@ -21,8 +21,6 @@ public class SDf16Table extends AbstractTable { @Override public SDf16 getEntity(Object[] entity) { SDf16 result = new SDf16(); - - result.setDate(TimeUtil.strToInstant((String) entity[0])); result.setAccount((String) entity[1]); result.setSum((BigDecimal) entity[2]); @@ -34,7 +32,7 @@ public class SDf16Table extends AbstractTable { result.setNumber((BigDecimal) entity[8]); result.setFileName(filename); result.setGenerationTime(Instant.now()); - result.setGenerationId(0L); + result.setGenerationId(fileId); return result; } } \ No newline at end of file diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf18Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf18Table.java deleted file mode 100644 index ae5a35831..000000000 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf18Table.java +++ /dev/null @@ -1,34 +0,0 @@ -package ru.spcex.clearing.dbf.importer.logic.data.tables; - -import ru.clearing.classes.statics.data.sdf.SDf18; -import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; - -public class SDf18Table extends AbstractTable { - - private static final String PREFIX = ETable.DF_18.name(); - private static final Class CLAZZ = SDf18.class; - private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf18; - - public SDf18Table() { - super(PREFIX, CLAZZ, NAME_OF_HZ_MAP); - } - - @Override - public SDf18 getEntity(Object[] entity) { - SDf18 result = new SDf18(); - - result.setAccount((String) entity[0]); - result.setDeal((String) entity[1]); - result.setStatus((BigDecimal) entity[2]); - result.setResult((BigDecimal) entity[3]); - // result.setFileName(filename); - result.setGenerationTime(Instant.now()); - result.setGenerationId(0L); - result.setInSDf12Id((Long) entity[6]); - return result; - } -} \ No newline at end of file diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ImportToDB.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ImportToDB.java index 59a315a75..fce0faa4b 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ImportToDB.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ImportToDB.java @@ -14,8 +14,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; - -import static ru.spcex.clearing.dbf.importer.utils.Const.MAPPING_ENUM_TABLE_OBJECT_TABLE; +import java.util.Map; /** * Заливка проверенных данных в базу @@ -24,13 +23,13 @@ import static ru.spcex.clearing.dbf.importer.utils.Const.MAPPING_ENUM_TABLE_OBJE public class ImportToDB extends Stage { private final AProperties properties; private final HazelcastService hazelcastService; + private final Map mappingEnumTableObjectTable; public ImportToDB(@Qualifier("dbfImporterProperties") AProperties properties, - HazelcastService hazelcastService) { + HazelcastService hazelcastService, @Qualifier("mapOfTable") Map mappingEnumTableObjectTable) { this.properties = properties; this.hazelcastService = hazelcastService; - - + this.mappingEnumTableObjectTable = mappingEnumTableObjectTable; } @Override @@ -41,9 +40,10 @@ public class ImportToDB extends Stage { try (InputStream is = new ByteArrayInputStream(source); DBFReader dbfReader = new DBFReader(is, sourceCharset)) { - AbstractTable table = MAPPING_ENUM_TABLE_OBJECT_TABLE.get(currTable); + AbstractTable table = mappingEnumTableObjectTable.get(currTable); table.setHazelcastService(hazelcastService); table.setFilename(resultContainer.getDbfFile().getName()); + table.setFileId(hazelcastService.getImdgIdGenerator().nextId()); for (int i = 0; i < dbfReader.getRecordCount(); i++) { Object[] entity = dbfReader.nextRecord(); table.injectEntity(table.getEntity(entity)); diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/utils/Const.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/utils/Const.java deleted file mode 100644 index eab95cd12..000000000 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/utils/Const.java +++ /dev/null @@ -1,23 +0,0 @@ -package ru.spcex.clearing.dbf.importer.utils; - -import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable; -import ru.spcex.clearing.dbf.importer.logic.data.tables.*; - -import java.util.HashMap; -import java.util.Map; - -public class Const { - - public static final Map MAPPING_ENUM_TABLE_OBJECT_TABLE = new HashMap<>(); - - static { - MAPPING_ENUM_TABLE_OBJECT_TABLE.put(ETable.DF_01, new SDf01Table()); - MAPPING_ENUM_TABLE_OBJECT_TABLE.put(ETable.DF_02, new SDf02Table()); - MAPPING_ENUM_TABLE_OBJECT_TABLE.put(ETable.DF_08, new SDf08Table()); - MAPPING_ENUM_TABLE_OBJECT_TABLE.put(ETable.DF_12, new SDf12Table()); - MAPPING_ENUM_TABLE_OBJECT_TABLE.put(ETable.DF_16, new SDf16Table()); - MAPPING_ENUM_TABLE_OBJECT_TABLE.put(ETable.DF_18, new SDf18Table()); - } - - -}