From ef187881b2abd8d8fd8b78106de290d08639f4b1 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 15 Jun 2023 18:19:01 +0300 Subject: [PATCH] dbf-importer SDf57Table unixtime Ext_date --- clearing-parent/dbf-importer/pom.xml | 21 ++++++ .../logic/data/tables/SDf57Table.java | 5 +- .../logic/data/tables/SDf57TableTest.java | 61 ++++++++++++++++++ .../resources/sdf/DF-57_S_PRC2306141135_1.dbf | Bin 0 -> 12948 bytes 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57TableTest.java create mode 100644 clearing-parent/dbf-importer/src/test/resources/sdf/DF-57_S_PRC2306141135_1.dbf diff --git a/clearing-parent/dbf-importer/pom.xml b/clearing-parent/dbf-importer/pom.xml index 0460db432..dbc694821 100644 --- a/clearing-parent/dbf-importer/pom.xml +++ b/clearing-parent/dbf-importer/pom.xml @@ -70,6 +70,27 @@ ru.spcex.platform platform-enum + + + + + + + + + org.junit.jupiter + junit-jupiter + test + + + org.mockito + mockito-core + + + org.assertj + assertj-core + test + diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57Table.java index dbf1976e5..fc570342c 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57Table.java @@ -43,7 +43,10 @@ public class SDf57Table extends AbstractTable { result.setRbanknam5((String) entity[16]); result.setOp_type((String) entity[17]); result.setPay_date((String) entity[18]); - result.setExt_date((String) entity[19]); + BigDecimal unixTime19 = (BigDecimal) entity[19]; + if (unixTime19 != null) { + result.setExt_date(unixTime19.toString()); // unix time + } result.setPay_val((String) entity[20]); result.setSum_deb((String) entity[21]); result.setSclientn1((String) entity[22]); diff --git a/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57TableTest.java b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57TableTest.java new file mode 100644 index 000000000..f764aa1ef --- /dev/null +++ b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57TableTest.java @@ -0,0 +1,61 @@ +package ru.spcex.clearing.dbf.importer.logic.data.tables; + +import com.linuxense.javadbf.DBFReader; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult; +import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; +import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; +import ru.spcex.platform.utils.log.ExceptionUtils; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.nio.file.Path; + + +class SDf57TableTest { + +// @Test + void getEntity() throws IOException { + SDf57Table tableReader = new SDf57Table(); + + ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer = null; + ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter = null; + HazelcastClientParams hazelcastClientParams = Mockito.mock(HazelcastClientParams.class); + HazelcastService hcSvs = new HazelcastService(taskExecutorHazelcastClientInitializer, taskExecutorIdGeneratorAwaiter,hazelcastClientParams ); + tableReader.setHazelcastService(hcSvs); + + //tableReader.bootMap(); + + // ImportToDB + + byte[] fileData = Files.readAllBytes(Path.of("src/test/resources/sdf/DF-57_S_PRC2306141135_1.dbf")); + + tableReader.setFilename("DF-57_S_PRC2306141135_1.dbf"); + tableReader.setFileId(123L); + tableReader.bootMap(); // IMDGDistributedNames.Map_SDf57 + reader(fileData, tableReader); + } + + void reader(byte[] source, AbstractTable table) throws IOException { +// byte[] source = resultContainer.getDbfSource(); + Charset sourceCharset = Charset.forName("cp866"); //settings.getCommon().getEncodingSource()); + + try (InputStream is = new ByteArrayInputStream(source); + DBFReader dbfReader = new DBFReader(is, sourceCharset)) { + for (int i = 0; i < dbfReader.getRecordCount(); i++) { + Object[] entity = dbfReader.nextRecord(); + if (entity == null) { +// log.warn("record index {} null", i); + continue; + } + table.injectEntity(table.getEntity(entity)); + } + } + + } +} \ No newline at end of file diff --git a/clearing-parent/dbf-importer/src/test/resources/sdf/DF-57_S_PRC2306141135_1.dbf b/clearing-parent/dbf-importer/src/test/resources/sdf/DF-57_S_PRC2306141135_1.dbf new file mode 100644 index 0000000000000000000000000000000000000000..e9a7b6cdb4cde81be4bd00dbb4f5736db8101918 GIT binary patch literal 12948 zcmeI2y^hmB6h;GCAwUE{!Ea>=LG77IHjb#g6Ciu{5?gY5W zHw$o+?^%GGe6IrB&w1x>?|wM`d*b*@C*S7)H~D@BxXE|Df6@;g-{iYXaFcKQ z@$Tuzz^Q!5p8%)w&6jm({hT=dsw(vC-j=@s{>Sq(NK!kpbfmJONRmXtL%{>b5Et$9 zs2w5M$3^=*ZbwKmT(r-Vc7#NvxJnXXB8P`CM#4k5!sty!+@pwl6mgGYEOwgg#Z6N& zkxpnyhL-W1GM-b$bIN#5>Ex7nW61dBm+{N591--TN)+j*v9XHFQjRQzR#ZH@aESL@4G`vQoH|Pz9F~ zn&^CPmQu!F-zdXeO4bUO5~|=*LKB_OjZzxIUyk7&_+J7%&0I=W2$vG7;8H>pozIO@ vQj>iyB|