dbf-export поправил работу с IMDG
This commit is contained in:
parent
5b529484a5
commit
f6a60c023c
4 changed files with 22 additions and 7 deletions
|
|
@ -100,7 +100,8 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
|
||||||
writeOk = true;
|
writeOk = true;
|
||||||
emptyMap = tableRows.isEmpty();
|
emptyMap = tableRows.isEmpty();
|
||||||
} catch (Exception e) {
|
} 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;
|
return StageResult.ERROR;
|
||||||
} finally {
|
} finally {
|
||||||
if (!writeOk || emptyMap) {
|
if (!writeOk || emptyMap) {
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,37 @@
|
||||||
package ru.spcex.clearing.dbf.exporter.services;
|
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.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.spcex.clearing.dbf.exporter.logic.Processor;
|
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.ResultContainer;
|
||||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
||||||
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
@Service("dbfExportService")
|
@Service("dbfExportService")
|
||||||
public class DBFExportService {
|
public class DBFExportService {
|
||||||
|
Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final ThreadPoolTaskExecutor executor;
|
private final ThreadPoolTaskExecutor executor;
|
||||||
private final Processor processor;
|
private final Processor processor;
|
||||||
|
protected final ImdgProvider imdgProvider;
|
||||||
|
|
||||||
public DBFExportService(@Qualifier("executor") ThreadPoolTaskExecutor executor,
|
public DBFExportService(@Qualifier("executor") ThreadPoolTaskExecutor executor,
|
||||||
@Qualifier("processor") Processor processor) {
|
@Qualifier("processor") Processor processor,
|
||||||
|
ImdgProvider imdgProvider) {
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
this.processor = processor;
|
this.processor = processor;
|
||||||
|
this.imdgProvider = imdgProvider;
|
||||||
|
log.debug("Check IMDG...");
|
||||||
|
imdgProvider.waitAvailable();
|
||||||
|
log.debug("IMDG ready...");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
|
log.debug("Do export for all: {}", Arrays.toString(Table.values()));
|
||||||
for (Table tableForExport : Table.values()) {
|
for (Table tableForExport : Table.values()) {
|
||||||
executor.submit(() -> processor.process(ResultContainer.createNewTask(tableForExport)));
|
executor.submit(() -> processor.process(ResultContainer.createNewTask(tableForExport)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import ru.clearing.classes.statics.data.sdf.SDf08;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -17,7 +18,7 @@ public class S_DF08_Converter extends DFConverter<SDf08> {
|
||||||
public Object[] toObjectArray(SDf08 entity) {
|
public Object[] toObjectArray(SDf08 entity) {
|
||||||
List<Object> values = new LinkedList<>();
|
List<Object> values = new LinkedList<>();
|
||||||
values.add(convertStrToLong(entity.getNumber()));
|
values.add(convertStrToLong(entity.getNumber()));
|
||||||
values.add(typeMatch(entity.getDatetime()));
|
values.add(typeMatch(convertStrToDate(entity.getDatetime())));
|
||||||
return values.toArray(Object[]::new);
|
return values.toArray(Object[]::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -40,9 +41,9 @@ public class S_DF08_Converter extends DFConverter<SDf08> {
|
||||||
Object convertStrToDate(String s) {
|
Object convertStrToDate(String s) {
|
||||||
if (s == null) return null;
|
if (s == null) return null;
|
||||||
if (s.matches("\\d{2}.\\d{2}.\\d{4}")) {
|
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 {
|
} else {
|
||||||
return typeMatch(LocalDateTime.parse(s, DATE_TIME_FMT));
|
return LocalDateTime.parse(s, DATE_TIME_FMT).atZone(ZoneId.systemDefault()).toInstant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ public class S_DF08_ConverterTest {
|
||||||
public void testTestConvertStrToDate() {
|
public void testTestConvertStrToDate() {
|
||||||
S_DF08_Converter converter = new S_DF08_Converter();
|
S_DF08_Converter converter = new S_DF08_Converter();
|
||||||
Assert.assertNull(converter.convertStrToDate(null));
|
Assert.assertNull(converter.convertStrToDate(null));
|
||||||
Assert.assertEquals("2022-12-29", converter.convertStrToDate("29.12.2022").toString());
|
Assert.assertEquals("2022-12-29 00:00:00.0", converter.convertStrToDate("29.12.2022").toString());
|
||||||
Assert.assertEquals("2023-01-13T15:32:01", converter.convertStrToDate("13.01.2023 15:32:01").toString());
|
Assert.assertEquals("2023-01-13 15:32:01.0", converter.convertStrToDate("13.01.2023 15:32:01").toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Reference in a new issue