xml-importer xml file processing minor changes
This commit is contained in:
parent
702cfacad1
commit
0106d58569
9 changed files with 41 additions and 99 deletions
|
|
@ -1,7 +1,5 @@
|
|||
package ru.spcex.clearing.xml.importer.config;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import com.ctc.wstx.stax.WstxInputFactory;
|
||||
import com.ctc.wstx.stax.WstxOutputFactory;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
|
|
@ -9,6 +7,8 @@ import com.fasterxml.jackson.dataformat.xml.XmlFactory;
|
|||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.xml.stream.XMLInputFactory;
|
||||
import javax.xml.stream.XMLOutputFactory;
|
||||
import org.slf4j.Logger;
|
||||
|
|
@ -20,9 +20,15 @@ import org.springframework.context.annotation.ComponentScan;
|
|||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf01;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf04;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf06;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf52;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf55;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf57;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.xml.importer.config.settings.ImportXMLServiceSettings;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
|
||||
|
|
@ -58,14 +64,14 @@ public class XMLImporterConfig {
|
|||
}
|
||||
|
||||
@Bean("mapOfTable")
|
||||
public Map<String, Imdg<?>> getMapOfTables() {
|
||||
Map<String, Imdg<?>> map = new HashMap<>();
|
||||
map.put(ETable.DF_01.name(), hazelcastService.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class));
|
||||
map.put(ETable.DF_04.name(), hazelcastService.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class));
|
||||
map.put(ETable.DF_06.name(), hazelcastService.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class));
|
||||
map.put(ETable.DF_52.name(), hazelcastService.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class));
|
||||
map.put(ETable.DF_55.name(), hazelcastService.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class));
|
||||
map.put(ETable.DF_57.name(), hazelcastService.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class));
|
||||
public Map<ETable, Imdg<? extends SpcexObjectBase>> getMapOfTables() {
|
||||
Map<ETable, Imdg<? extends SpcexObjectBase>> map = new HashMap<>();
|
||||
map.put(ETable.DF_01, hazelcastService.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class));
|
||||
map.put(ETable.DF_04, hazelcastService.getImdg(IMDGDistributedNames.Map_SDf04, SDf04.class));
|
||||
map.put(ETable.DF_06, hazelcastService.getImdg(IMDGDistributedNames.Map_SDf06, SDf06.class));
|
||||
map.put(ETable.DF_52, hazelcastService.getImdg(IMDGDistributedNames.Map_SDf52, SDf52.class));
|
||||
map.put(ETable.DF_55, hazelcastService.getImdg(IMDGDistributedNames.Map_SDf55, SDf55.class));
|
||||
map.put(ETable.DF_57, hazelcastService.getImdg(IMDGDistributedNames.Map_SDf57, SDf57.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,17 +2,13 @@ package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf01;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
||||
|
||||
public class DF01ObjectTag extends ObjectTag<SDf01> {
|
||||
private static final String PREFIX = ETable.DF_01.name();
|
||||
private static final Class<SDf01> CLAZZ = SDf01.class;
|
||||
private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf01;
|
||||
private static final ETable PREFIX = ETable.DF_01;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "CURR_CODE")
|
||||
private String currCode;
|
||||
|
|
@ -52,7 +48,7 @@ public class DF01ObjectTag extends ObjectTag<SDf01> {
|
|||
private String fileType;
|
||||
|
||||
public DF01ObjectTag() {
|
||||
super(PREFIX, CLAZZ, NAME_OF_HZ_MAP);
|
||||
super(PREFIX);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -71,9 +67,6 @@ public class DF01ObjectTag extends ObjectTag<SDf01> {
|
|||
result.setSumengage(this.getSumengage());
|
||||
result.setSumunblock(this.getSumunblock());
|
||||
result.setFile_type(this.getFileType());
|
||||
result.setFileName(filename);
|
||||
result.setGenerationTime(Instant.now());
|
||||
result.setGenerationId(fileId);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,17 +2,13 @@ package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf04;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
||||
|
||||
public class DF04ObjectTag extends ObjectTag<SDf04> {
|
||||
private static final String PREFIX = ETable.DF_04.name();
|
||||
private static final Class<SDf04> CLAZZ = SDf04.class;
|
||||
private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf04;
|
||||
private static final ETable PREFIX = ETable.DF_04;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "SEG_TYPE")
|
||||
private String segType;
|
||||
|
|
@ -63,7 +59,7 @@ public class DF04ObjectTag extends ObjectTag<SDf04> {
|
|||
private String impResult;
|
||||
|
||||
public DF04ObjectTag() {
|
||||
super(PREFIX, CLAZZ, NAME_OF_HZ_MAP);
|
||||
super(PREFIX);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -91,9 +87,6 @@ public class DF04ObjectTag extends ObjectTag<SDf04> {
|
|||
result.setSum_deb(this.getSumDeb());
|
||||
result.setSpecif_1(this.getSpecif1());
|
||||
result.setImp_result(this.getImpResult());
|
||||
result.setFile_name(filename);
|
||||
result.setGenerationTime(Instant.now());
|
||||
result.setGenerationId(fileId);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,17 +3,13 @@ package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
|
|||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf06;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
||||
|
||||
public class DF06ObjectTag extends ObjectTag<SDf06> {
|
||||
private static final String PREFIX = ETable.DF_06.name();
|
||||
private static final Class<SDf06> CLAZZ = SDf06.class;
|
||||
private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf06;
|
||||
private static final ETable PREFIX = ETable.DF_06;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT")
|
||||
private String account;
|
||||
|
|
@ -56,7 +52,7 @@ public class DF06ObjectTag extends ObjectTag<SDf06> {
|
|||
private String payVal;
|
||||
|
||||
public DF06ObjectTag() {
|
||||
super(PREFIX, CLAZZ, NAME_OF_HZ_MAP);
|
||||
super(PREFIX);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -76,9 +72,6 @@ public class DF06ObjectTag extends ObjectTag<SDf06> {
|
|||
result.setDoc_Num(this.getDocNum());
|
||||
result.setDoc_Date(this.getDocDate().toString());
|
||||
result.setPay_val(this.getPayVal());
|
||||
result.setFileName(filename);
|
||||
result.setGenerationTime(Instant.now());
|
||||
result.setGenerationId(fileId);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,17 +2,13 @@ package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf52;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
||||
|
||||
public class DF52ObjectTag extends ObjectTag<SDf52> {
|
||||
private static final String PREFIX = ETable.DF_52.name();
|
||||
private static final Class<SDf52> CLAZZ = SDf52.class;
|
||||
private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf52;
|
||||
private static final ETable PREFIX = ETable.DF_52;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT")
|
||||
private String account;
|
||||
|
|
@ -34,7 +30,7 @@ public class DF52ObjectTag extends ObjectTag<SDf52> {
|
|||
private String accType;
|
||||
|
||||
public DF52ObjectTag() {
|
||||
super(PREFIX, CLAZZ, NAME_OF_HZ_MAP);
|
||||
super(PREFIX);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -47,9 +43,6 @@ public class DF52ObjectTag extends ObjectTag<SDf52> {
|
|||
result.setDate(this.getDate().toString());
|
||||
result.setAcc_type(this.getAccType());
|
||||
result.setStatus(this.getStatus());
|
||||
result.setFileName(filename);
|
||||
result.setGenerationTime(Instant.now());
|
||||
result.setGenerationId(fileId);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,17 +2,13 @@ package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf55;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
||||
|
||||
public class DF55ObjectTag extends ObjectTag<SDf55> {
|
||||
private static final String PREFIX = ETable.DF_55.name();
|
||||
private static final Class<SDf55> CLAZZ = SDf55.class;
|
||||
private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf55;
|
||||
private static final ETable PREFIX = ETable.DF_55;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "SEG_TYPE")
|
||||
private String segType;
|
||||
|
|
@ -125,7 +121,7 @@ public class DF55ObjectTag extends ObjectTag<SDf55> {
|
|||
private String swiftInt;
|
||||
|
||||
public DF55ObjectTag() {
|
||||
super(PREFIX, CLAZZ, NAME_OF_HZ_MAP);
|
||||
super(PREFIX);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -177,9 +173,6 @@ public class DF55ObjectTag extends ObjectTag<SDf55> {
|
|||
result.setValue_date(this.getValueDate().toString());
|
||||
result.setSwift_ben(this.getSwiftBen());
|
||||
result.setSwift_int(this.getSwiftInt());
|
||||
result.setFileName(filename);
|
||||
result.setGenerationTime(Instant.now());
|
||||
result.setGenerationId(fileId);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,17 +2,13 @@ package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf57;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
||||
|
||||
public class DF57ObjectTag extends ObjectTag<SDf57> {
|
||||
private static final String PREFIX = ETable.DF_57.name();
|
||||
private static final Class<SDf57> CLAZZ = SDf57.class;
|
||||
private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf57;
|
||||
private static final ETable PREFIX = ETable.DF_57;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "ID")
|
||||
private Long id;
|
||||
|
|
@ -118,7 +114,7 @@ public class DF57ObjectTag extends ObjectTag<SDf57> {
|
|||
private String ktOut;
|
||||
|
||||
public DF57ObjectTag() {
|
||||
super(PREFIX, CLAZZ, NAME_OF_HZ_MAP);
|
||||
super(PREFIX);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -168,9 +164,6 @@ public class DF57ObjectTag extends ObjectTag<SDf57> {
|
|||
result.setKt_in(this.getKtIn());
|
||||
result.setDt_out(this.getDtOut());
|
||||
result.setKt_out(this.getKtOut());
|
||||
result.setFileName(filename);
|
||||
result.setGenerationTime(Instant.now());
|
||||
result.setGenerationId(fileId);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
||||
|
|
@ -15,50 +16,26 @@ import ru.spcex.platform.imdg.api.Imdg;
|
|||
@JsonSubTypes.Type(DF57ObjectTag.class)
|
||||
})
|
||||
public abstract class ObjectTag<T1 extends SpcexObjectBase> {
|
||||
private final String prefix;
|
||||
private final Class<T1> clazz;
|
||||
private final String nameOfMap;
|
||||
// protected HazelcastService hazelcastService;
|
||||
private final ETable prefix;
|
||||
|
||||
protected String filename;
|
||||
protected Long fileId;
|
||||
|
||||
public ObjectTag(String prefix, Class<T1> clazz, String nameOfMap) {
|
||||
public ObjectTag(ETable prefix) {
|
||||
this.prefix = prefix;
|
||||
this.clazz = clazz;
|
||||
this.nameOfMap = nameOfMap;
|
||||
}
|
||||
|
||||
public abstract T1 getSDfEntity();
|
||||
|
||||
public String getPrefix() {
|
||||
public ETable getPrefix() {
|
||||
return prefix;
|
||||
}
|
||||
|
||||
public void insertEntity(Imdg<?> map) {
|
||||
public void insertEntity(Imdg<T1> map) {
|
||||
T1 obj = getSDfEntity();
|
||||
if (checkOnExisting(obj)) {
|
||||
// map.insert(obj);
|
||||
map.insert(obj);
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean checkOnExisting(T1 obj){
|
||||
protected boolean checkOnExisting(T1 obj) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getFilename() {
|
||||
return filename;
|
||||
}
|
||||
|
||||
public void setFilename(String filename) {
|
||||
this.filename = filename;
|
||||
}
|
||||
|
||||
public Long getFileId() {
|
||||
return fileId;
|
||||
}
|
||||
|
||||
public void setFileId(Long fileId) {
|
||||
this.fileId = fileId;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package ru.spcex.clearing.xml.importer.logic.steps;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
|
|
@ -13,6 +13,7 @@ import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
|
|||
import ru.spcex.clearing.xml.importer.logic.data.enums.StageResult;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.tags.DocumentTag;
|
||||
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.ObjectTag;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
|
@ -23,12 +24,12 @@ public class ImportToDB {
|
|||
private final XmlMapper xmlMapper;
|
||||
private final HazelcastService hazelcastService;
|
||||
private final XmlImportKafkaMessenger kafkaMessenger;
|
||||
private final Map<String, Imdg<?>> mapOfTable;
|
||||
private final Map<ETable, Imdg<?>> mapOfTable;
|
||||
|
||||
public ImportToDB(@Qualifier("xmlMapper") XmlMapper xmlMapper,
|
||||
HazelcastService hazelcastService,
|
||||
XmlImportKafkaMessenger kafkaMessenger,
|
||||
@Qualifier("mapOfTable") Map<String, Imdg<?>> mapOfTable) {
|
||||
@Qualifier("mapOfTable") Map<ETable, Imdg<?>> mapOfTable) {
|
||||
this.xmlMapper = xmlMapper;
|
||||
this.hazelcastService = hazelcastService;
|
||||
this.kafkaMessenger = kafkaMessenger;
|
||||
|
|
@ -52,8 +53,8 @@ public class ImportToDB {
|
|||
|
||||
String fileName = resultContainer.getXmlFile().getName();
|
||||
Long fileId = hazelcastService.getImdgIdGenerator().nextId();
|
||||
for (ObjectTag<?> o : documentTag.getObjects()) {
|
||||
Imdg<?> imdgMap = mapOfTable.get(o.getPrefix());
|
||||
for (ObjectTag o : documentTag.getObjects()) {
|
||||
Imdg<? extends SpcexObjectBase> imdgMap = mapOfTable.get(o.getPrefix());
|
||||
o.insertEntity(imdgMap);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue