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;
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -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)));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<SDf08> {
|
|||
public Object[] toObjectArray(SDf08 entity) {
|
||||
List<Object> 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<SDf08> {
|
|||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue