From f6a60c023cc2571f33dc5ca5b2ad968b7c86783b Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 13 Jan 2023 18:46:56 +0300 Subject: [PATCH] =?UTF-8?q?dbf-export=20=D0=BF=D0=BE=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=83=20?= =?UTF-8?q?=D1=81=20IMDG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/stages/ExportFromHazelcast.java | 3 ++- .../dbf/exporter/services/DBFExportService.java | 15 ++++++++++++++- .../services/converters/S_DF08_Converter.java | 7 ++++--- .../services/converters/S_DF08_ConverterTest.java | 4 ++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java index c67363f54..a2bebeafc 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java @@ -100,7 +100,8 @@ public class ExportFromHazelcast extends Stage implements InitializingBean { writeOk = true; emptyMap = tableRows.isEmpty(); } catch (Exception e) { - log.error(String.format("uuid %s. Can't export table %s to file %s. Table was skipped.", resultContainer.getUuid(), table, dbfFile), e); + log.error(String.format("uuid %s. Can't export table %s (map %s) to file %s. Table was skipped.", + resultContainer.getUuid(), table, table.getHazelcastMapName(), dbfFile), e); return StageResult.ERROR; } finally { if (!writeOk || emptyMap) { diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/DBFExportService.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/DBFExportService.java index 53dc19b56..3371e1c72 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/DBFExportService.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/DBFExportService.java @@ -1,24 +1,37 @@ package ru.spcex.clearing.dbf.exporter.services; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import ru.spcex.clearing.dbf.exporter.logic.Processor; import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer; import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import java.util.Arrays; @Service("dbfExportService") public class DBFExportService { + Logger log = LoggerFactory.getLogger(getClass()); private final ThreadPoolTaskExecutor executor; private final Processor processor; + protected final ImdgProvider imdgProvider; public DBFExportService(@Qualifier("executor") ThreadPoolTaskExecutor executor, - @Qualifier("processor") Processor processor) { + @Qualifier("processor") Processor processor, + ImdgProvider imdgProvider) { this.executor = executor; this.processor = processor; + this.imdgProvider = imdgProvider; + log.debug("Check IMDG..."); + imdgProvider.waitAvailable(); + log.debug("IMDG ready..."); } public void run() { + log.debug("Do export for all: {}", Arrays.toString(Table.values())); for (Table tableForExport : Table.values()) { executor.submit(() -> processor.process(ResultContainer.createNewTask(tableForExport))); } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java index 06489e248..0166fbf06 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java @@ -7,6 +7,7 @@ import ru.clearing.classes.statics.data.sdf.SDf08; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.LinkedList; import java.util.List; @@ -17,7 +18,7 @@ public class S_DF08_Converter extends DFConverter { public Object[] toObjectArray(SDf08 entity) { List values = new LinkedList<>(); values.add(convertStrToLong(entity.getNumber())); - values.add(typeMatch(entity.getDatetime())); + values.add(typeMatch(convertStrToDate(entity.getDatetime()))); return values.toArray(Object[]::new); } @@ -40,9 +41,9 @@ public class S_DF08_Converter extends DFConverter { Object convertStrToDate(String s) { if (s == null) return null; if (s.matches("\\d{2}.\\d{2}.\\d{4}")) { - return typeMatch(LocalDate.parse(s, DATE_FMT)); + return LocalDate.parse(s, DATE_FMT).atStartOfDay(ZoneId.systemDefault()).toInstant(); } else { - return typeMatch(LocalDateTime.parse(s, DATE_TIME_FMT)); + return LocalDateTime.parse(s, DATE_TIME_FMT).atZone(ZoneId.systemDefault()).toInstant(); } } } diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_ConverterTest.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_ConverterTest.java index 91dace992..10de36001 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_ConverterTest.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_ConverterTest.java @@ -15,7 +15,7 @@ public class S_DF08_ConverterTest { public void testTestConvertStrToDate() { S_DF08_Converter converter = new S_DF08_Converter(); Assert.assertNull(converter.convertStrToDate(null)); - Assert.assertEquals("2022-12-29", converter.convertStrToDate("29.12.2022").toString()); - Assert.assertEquals("2023-01-13T15:32:01", converter.convertStrToDate("13.01.2023 15:32:01").toString()); + Assert.assertEquals("2022-12-29 00:00:00.0", converter.convertStrToDate("29.12.2022").toString()); + Assert.assertEquals("2023-01-13 15:32:01.0", converter.convertStrToDate("13.01.2023 15:32:01").toString()); } } \ No newline at end of file