hotfix
This commit is contained in:
parent
0f891bb8f2
commit
8e78fec954
13 changed files with 69 additions and 165 deletions
|
|
@ -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<ETable, AbstractTable> getMapOfTables() {
|
||||
Map<ETable, AbstractTable> 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ public abstract class AbstractTable<T extends SpcexObjectBase> {
|
|||
protected HazelcastService hazelcastService;
|
||||
protected ImdgHazelcast<T> map;
|
||||
protected String filename;
|
||||
protected Long fileId;
|
||||
|
||||
protected AbstractTable(String prefix, Class<T> clazz, String nameOfMap) {
|
||||
this.prefix = prefix;
|
||||
|
|
@ -18,6 +19,10 @@ public abstract class AbstractTable<T extends SpcexObjectBase> {
|
|||
this.nameOfMap = nameOfMap;
|
||||
}
|
||||
|
||||
public void setFileId(Long fileId) {
|
||||
this.fileId = fileId;
|
||||
}
|
||||
|
||||
public void setFilename(String filename) {
|
||||
this.filename = filename;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ public class SDf01Table extends AbstractTable<SDf01> {
|
|||
@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<SDf01> {
|
|||
result.setFile_type((String) entity[11]);
|
||||
result.setFileName(filename);
|
||||
result.setGenerationTime(Instant.now());
|
||||
result.setGenerationId(0L);
|
||||
result.setGenerationId(fileId);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<SDf02> {
|
||||
|
||||
private static final String PREFIX = ETable.DF_02.name();
|
||||
private static final Class<SDf02> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -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<SDf08> {
|
||||
|
||||
private static final String PREFIX = ETable.DF_08.name();
|
||||
private static final Class<SDf08> 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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<SDf09> {
|
||||
|
||||
private static final String PREFIX = ETable.DF_09.name();
|
||||
private static final Class<SDf09> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -20,14 +20,12 @@ public class SDf12Table extends AbstractTable<SDf12> {
|
|||
@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;
|
||||
}
|
||||
}
|
||||
|
|
@ -21,8 +21,6 @@ public class SDf16Table extends AbstractTable<SDf16> {
|
|||
@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<SDf16> {
|
|||
result.setNumber((BigDecimal) entity[8]);
|
||||
result.setFileName(filename);
|
||||
result.setGenerationTime(Instant.now());
|
||||
result.setGenerationId(0L);
|
||||
result.setGenerationId(fileId);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<SDf18> {
|
||||
|
||||
private static final String PREFIX = ETable.DF_18.name();
|
||||
private static final Class<SDf18> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<ETable, AbstractTable> mappingEnumTableObjectTable;
|
||||
|
||||
public ImportToDB(@Qualifier("dbfImporterProperties") AProperties properties,
|
||||
HazelcastService hazelcastService) {
|
||||
HazelcastService hazelcastService, @Qualifier("mapOfTable") Map<ETable, AbstractTable> 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));
|
||||
|
|
|
|||
|
|
@ -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<ETable, AbstractTable> 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());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue