added data format conversion, work with sftp fixed

This commit is contained in:
Ivan Nikolaev-Axenov 2024-06-20 11:37:09 +03:00
parent f026bc95d2
commit 00c87829a3
29 changed files with 190 additions and 181 deletions

View file

@ -24,7 +24,7 @@ public class DF02ObjectTag extends ObjectTag<SDf02> {
private String accCode; private String accCode;
@JacksonXmlProperty(isAttribute = true, localName = "DAT") @JacksonXmlProperty(isAttribute = true, localName = "DAT")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate dat; private LocalDate dat;
@JacksonXmlProperty(isAttribute = true, localName = "MARKET") @JacksonXmlProperty(isAttribute = true, localName = "MARKET")

View file

@ -50,7 +50,7 @@ public class DF03ObjectTag extends ObjectTag<SDf03> {
private String rbanknam5; private String rbanknam5;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE") @JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate payDate; private LocalDate payDate;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL") @JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL")

View file

@ -14,7 +14,7 @@ public class DF05ObjectTag extends ObjectTag<SDf05> {
private BigDecimal tp; private BigDecimal tp;
@JacksonXmlProperty(isAttribute = true, localName = "DT") @JacksonXmlProperty(isAttribute = true, localName = "DT")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate dt; private LocalDate dt;
@JacksonXmlProperty(isAttribute = true, localName = "TM") @JacksonXmlProperty(isAttribute = true, localName = "TM")

View file

@ -43,7 +43,7 @@ public class DF07ObjectTag extends ObjectTag<SDf07> {
private String docNum; private String docNum;
@JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE") @JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate docDate; private LocalDate docDate;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL") @JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL")

View file

@ -18,7 +18,7 @@ public class DF53ObjectTag extends ObjectTag<SDf53> {
private String deal; private String deal;
@JacksonXmlProperty(isAttribute = true, localName = "DATE") @JacksonXmlProperty(isAttribute = true, localName = "DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate date; private LocalDate date;
@JacksonXmlProperty(isAttribute = true, localName = "STATUS") @JacksonXmlProperty(isAttribute = true, localName = "STATUS")

View file

@ -62,7 +62,7 @@ public class DF54ObjectTag extends ObjectTag<SDf54> {
private String opOrder; private String opOrder;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE") @JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate payDate; private LocalDate payDate;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL") @JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL")
@ -120,11 +120,11 @@ public class DF54ObjectTag extends ObjectTag<SDf54> {
private String docNum; private String docNum;
@JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE") @JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate docDate; private LocalDate docDate;
@JacksonXmlProperty(isAttribute = true, localName = "VALUE_DATE") @JacksonXmlProperty(isAttribute = true, localName = "VALUE_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate valueDate; private LocalDate valueDate;
@JacksonXmlProperty(isAttribute = true, localName = "SWIFT_BEN") @JacksonXmlProperty(isAttribute = true, localName = "SWIFT_BEN")

View file

@ -74,11 +74,6 @@ public class ExportFromHazelcast {
Imdg<? extends SpcexObjectBase> map = imdgProvider.getImdg(table.getHazelcastMapName(), table.getEntityClass()); Imdg<? extends SpcexObjectBase> map = imdgProvider.getImdg(table.getHazelcastMapName(), table.getEntityClass());
String path = null;
//todo: rewrite currency logic
String currency = ruCurrency;
boolean emptyMap;
Collection<? extends SpcexObjectBase> tableRows; Collection<? extends SpcexObjectBase> tableRows;
if (resultContainer.getGroupId() != null) { if (resultContainer.getGroupId() != null) {
Map<String, Long> queryParams = Map.of("generationId", resultContainer.getGroupId()); Map<String, Long> queryParams = Map.of("generationId", resultContainer.getGroupId());
@ -102,7 +97,9 @@ public class ExportFromHazelcast {
documentTag.setObjects(addObjectTags(tableRows, table)); documentTag.setObjects(addObjectTags(tableRows, table));
resultContainer.setDocumentTag(documentTag); resultContainer.setDocumentTag(documentTag);
emptyMap = tableRows.isEmpty(); boolean emptyMap = tableRows.isEmpty();
String path;
String currency = ruCurrency; //todo: rewrite currency logic
if (CurrencyCode.isRub(currency)) { if (CurrencyCode.isRub(currency)) {
path = settings.getStore().getOutPayValDir().get(ruCurrency); path = settings.getStore().getOutPayValDir().get(ruCurrency);
} else { } else {

View file

@ -1,7 +1,5 @@
package ru.spcex.clearing.xml.exporter.logic.stages; package ru.spcex.clearing.xml.exporter.logic.stages;
import static ru.spcex.clearing.xml.exporter.logic.data.tags.objects.ObjectTag.ruCurrency;
import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import java.io.File; import java.io.File;
import java.util.Objects; import java.util.Objects;
@ -9,22 +7,17 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import ru.spcex.clearing.xml.exporter.config.settings.ExportXMLServiceSettings;
import ru.spcex.clearing.xml.exporter.logic.data.ResultContainer; import ru.spcex.clearing.xml.exporter.logic.data.ResultContainer;
import ru.spcex.clearing.xml.exporter.logic.data.enums.StageResult; import ru.spcex.clearing.xml.exporter.logic.data.enums.StageResult;
import ru.spcex.clearing.xml.exporter.logic.data.enums.Table; import ru.spcex.clearing.xml.exporter.logic.data.enums.Table;
import ru.spcex.clearing.xml.exporter.logic.data.tags.DocumentTag; import ru.spcex.clearing.xml.exporter.logic.data.tags.DocumentTag;
import ru.spcex.platform.enumeration.CurrencyCode;
@Component @Component
public class WriteXMLFile { public class WriteXMLFile {
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
private final ExportXMLServiceSettings settings;
private final XmlMapper xmlMapper; private final XmlMapper xmlMapper;
public WriteXMLFile(ExportXMLServiceSettings settings, public WriteXMLFile(@Qualifier("xmlMapper") XmlMapper xmlMapper) {
@Qualifier("xmlMapper") XmlMapper xmlMapper) {
this.settings = settings;
this.xmlMapper = xmlMapper; this.xmlMapper = xmlMapper;
} }
@ -32,26 +25,12 @@ public class WriteXMLFile {
log.info("uuid {}. Stage: {}", resultContainer.getUuid(), this.getClass().getSimpleName()); log.info("uuid {}. Stage: {}", resultContainer.getUuid(), this.getClass().getSimpleName());
Table table = Objects.requireNonNull(resultContainer.getTableForExport()); Table table = Objects.requireNonNull(resultContainer.getTableForExport());
File xmlFile = Objects.requireNonNull(resultContainer.getFileForExport()); File xmlFile = Objects.requireNonNull(resultContainer.getFileForExport());
//todo: rewrite currency logic
String currency = ruCurrency;
DocumentTag documentTag = Objects.requireNonNull(resultContainer.getDocumentTag()); DocumentTag documentTag = Objects.requireNonNull(resultContainer.getDocumentTag());
String path;
if (CurrencyCode.isRub(currency)) {
path = settings.getStore().getOutPayValDir().get(ruCurrency);
} else {
path = settings.getStore().getOutPayValDir().get(currency);
}
log.info("DOCUMENT TAG = {}", documentTag); log.info("DOCUMENT TAG = {}", documentTag);
try { try {
if (path == null) {
throw new Exception("Get unknown currency=" + currency + ", need will be adding settings like 'export-xml-service.store.out-pay-val-dir.RUB=/RUB' and restart app");
}
xmlMapper.writeValue(xmlFile, documentTag); xmlMapper.writeValue(xmlFile, documentTag);
log.info("settings.getStore().getOutPayValDir().get(ruCurrency): {}", settings.getStore().getOutPayValDir().get(ruCurrency));
log.info("settings.getStore().getOutPayValDir().get(currency): {}", settings.getStore().getOutPayValDir().get(currency));
} catch (Exception e) { } catch (Exception e) {
log.error(String.format("uuid %s. Can't export table %s (map %s) to file %s. Table was skipped.", log.error(String.format("uuid %s. Can't export table %s (map %s) to file %s. Table was skipped.",
resultContainer.getUuid(), table, table.getHazelcastMapName(), xmlFile), e); resultContainer.getUuid(), table, table.getHazelcastMapName(), xmlFile), e);

View file

@ -3,6 +3,7 @@ package ru.spcex.clearing.xml.exporter.logic.stages;
import java.io.File; import java.io.File;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@ -246,7 +247,7 @@ class ExportFromHazelcastTest {
void process_shouldExportSDf51ToObjectTag() { void process_shouldExportSDf51ToObjectTag() {
SDf51 expectedSDf51 = new SDf51(); SDf51 expectedSDf51 = new SDf51();
expectedSDf51.setNumber("1234"); expectedSDf51.setNumber("1234");
expectedSDf51.setDatetime("1718794935"); expectedSDf51.setDatetime("1718785193000");
Imdg<SDf51> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf51, SDf51.class); Imdg<SDf51> imdg = hazelcastService.getImdg(IMDGDistributedNames.Map_SDf51, SDf51.class);
imdg.insert(expectedSDf51); imdg.insert(expectedSDf51);
@ -260,10 +261,8 @@ class ExportFromHazelcastTest {
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK); Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF51"); Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF51");
Assertions.assertThat(actualObjectTag.getNumber()).isEqualTo(expectedSDf51.getNumber()); Assertions.assertThat(actualObjectTag.getNumber()).isEqualTo(expectedSDf51.getNumber());
// Assertions.assertThat(Long.toString(actualObjectTag.getDatetime().atZone(ZoneId.systemDefault()).toEpochSecond())).isEqualTo(expectedSDf51.getDatetime()); Assertions.assertThat(actualObjectTag.getUnixtime()).isEqualTo(Long.parseLong(expectedSDf51.getDatetime()));
// Assertions.assertThat(actualObjectTag.getUnixtime()).isEqualTo(actualObjectTag.getDatetime() Assertions.assertThat(actualObjectTag.getDatetime()).isEqualTo(Instant.ofEpochMilli(Long.parseLong(expectedSDf51.getDatetime())).atZone(ZoneId.systemDefault()).toLocalDateTime());
// .atZone(ZoneId.systemDefault())
// .toEpochSecond());
} }
@Test @Test
@ -380,8 +379,8 @@ class ExportFromHazelcastTest {
void process_shouldExportSDf56ToObjectTag() { void process_shouldExportSDf56ToObjectTag() {
SDf56 expectedSDf56 = new SDf56(); SDf56 expectedSDf56 = new SDf56();
expectedSDf56.setNumber("test1"); expectedSDf56.setNumber("test1");
expectedSDf56.setStart_datetime("1718794935"); expectedSDf56.setStart_datetime("1718785193000");
expectedSDf56.setEnd_datetime("1718795935"); expectedSDf56.setEnd_datetime("1718875193000");
expectedSDf56.setAccount("test4"); expectedSDf56.setAccount("test4");
expectedSDf56.setDeal("test5"); expectedSDf56.setDeal("test5");
@ -397,15 +396,11 @@ class ExportFromHazelcastTest {
Assertions.assertThat(stageResult).isEqualTo(StageResult.OK); Assertions.assertThat(stageResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF56"); Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo("DF56");
Assertions.assertThat(actualObjectTag.getNumber()).isEqualTo(expectedSDf56.getNumber()); Assertions.assertThat(actualObjectTag.getNumber()).isEqualTo(expectedSDf56.getNumber());
// Assertions.assertThat(Long.toString(actualObjectTag.getStartDatetime().atZone(ZoneId.systemDefault()).toEpochSecond())).isEqualTo(expectedSDf56.getStart_datetime()); Assertions.assertThat(actualObjectTag.getStartUnixtime()).isEqualTo(Long.valueOf(expectedSDf56.getStart_datetime()));
// Assertions.assertThat(Long.toString(actualObjectTag.getEndDatetime().atZone(ZoneId.systemDefault()).toEpochSecond())).isEqualTo(expectedSDf56.getEnd_datetime()); Assertions.assertThat(actualObjectTag.getEndUnixtime()).isEqualTo(Long.valueOf(expectedSDf56.getEnd_datetime()));
Assertions.assertThat(actualObjectTag.getStartDatetime()).isEqualTo(Instant.ofEpochMilli(Long.parseLong(expectedSDf56.getStart_datetime())).atZone(ZoneId.systemDefault()).toLocalDateTime());
Assertions.assertThat(actualObjectTag.getEndDatetime()).isEqualTo(Instant.ofEpochMilli(Long.parseLong(expectedSDf56.getEnd_datetime())).atZone(ZoneId.systemDefault()).toLocalDateTime());
Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedSDf56.getAccount()); Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedSDf56.getAccount());
Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedSDf56.getDeal()); Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedSDf56.getDeal());
// Assertions.assertThat(actualObjectTag.getStartUnixtime()).isEqualTo(actualObjectTag.getStartDatetime()
// .atZone(ZoneId.systemDefault())
// .toEpochSecond());
// Assertions.assertThat(actualObjectTag.getEndUnixtime()).isEqualTo(actualObjectTag.getEndDatetime()
// .atZone(ZoneId.systemDefault())
// .toEpochSecond());
} }
} }

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF02" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER=""> <DOCUMENT MESSAGEID="" MESSAGETYPE="DF02" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT CURR_CODE="test1" ACCOUNT="test2" REMAINDER="test3" DEAL="test4" ACC_CODE="test5" DAT="14.03.24" MARKET="test6" ACC_NAME="test7" ACC_TYPE="test8" SUMENGAGE="test9" SUMUNBLOK="test10" FILE_TYPE="test11"/> <OBJECT CURR_CODE="test1" ACCOUNT="test2" REMAINDER="test3" DEAL="test4" ACC_CODE="test5" DAT="2024-03-14" MARKET="test6" ACC_NAME="test7" ACC_TYPE="test8" SUMENGAGE="test9" SUMUNBLOK="test10" FILE_TYPE="test11"/>
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF03" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER=""> <DOCUMENT MESSAGEID="" MESSAGETYPE="DF03" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT SEG_TYPE="test1" DOC_TYPE="test2" DOCNM_REF="test3" DOCNMPREV="test4" C_ACC_DEB="test5" SBANKNAM="test6" C_ACC_CRED="test7" RBANKNAM="test8" PAY_DATE="14.03.24" PAY_VAL="test9" SUM_DEB="test10" SPECIF_1="test11" IMP_RESULT="test12"/> <OBJECT SEG_TYPE="test1" DOC_TYPE="test2" DOCNM_REF="test3" DOCNMPREV="test4" C_ACC_DEB="test5" SBANKNAM="test6" C_ACC_CRED="test7" RBANKNAM="test8" PAY_DATE="2024-03-14" PAY_VAL="test9" SUM_DEB="test10" SPECIF_1="test11" IMP_RESULT="test12"/>
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF05" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER=""> <DOCUMENT MESSAGEID="" MESSAGETYPE="DF05" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT TP="10" DT="14.03.24" TM="09:22:12" PR="test2"/> <OBJECT TP="10" DT="2024-03-14" TM="09:22:12" PR="test2"/>
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF07" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER=""> <DOCUMENT MESSAGEID="" MESSAGETYPE="DF07" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT ACCOUNT="test1" SUM="10" MARKET="test3" TYPE="test4" DEAL="test5" CLIENTN="test6" INN="test7" BIC="test8" SPEC="test9" NUMBER="2" DOC_NUM="test11" DOC_DATE="14.03.24" PAY_VAL="test12"/> <OBJECT ACCOUNT="test1" SUM="10" MARKET="test3" TYPE="test4" DEAL="test5" CLIENTN="test6" INN="test7" BIC="test8" SPEC="test9" NUMBER="2" DOC_NUM="test11" DOC_DATE="2024-03-14" PAY_VAL="test12"/>
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF53" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER=""> <DOCUMENT MESSAGEID="" MESSAGETYPE="DF53" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT ACCOUNT="test1" ACC_NAME="test2" DEAL="test3" DATE="14.03.24" STATUS="1" ACC_TYPE="test4" RESULT="test5"/> <OBJECT ACCOUNT="test1" ACC_NAME="test2" DEAL="test3" DATE="2024-03-14" STATUS="1" ACC_TYPE="test4" RESULT="test5"/>
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="" MESSAGETYPE="DF54" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER=""> <DOCUMENT MESSAGEID="" MESSAGETYPE="DF54" MESSAGENAME="" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT SEG_TYPE="test1" DOC_TYPE="test2" DOCNM_REF="test3" DOCNMPREV="test4" SBANKCODE="test5" C_ACC_DEB="test6" SBANKNAM="test7" RBANKCODE="test8" C_ACC_CRED="test9" RBANKNAM="test10" OP_TYPE="test11" OP_ORDER="test12" PAY_DATE="14.03.24" PAY_VAL="test13" SUM_DEB="test14" SCLIENTN="test15" INN_DEB="test16" KPP_DEB="test17" ACC_DEB="test18" RCLIENTN="test19" INN_CRED="test20" KPP_CRED="test21" ACC_KR_1="test22" SPECIF_1="test23" SEND_TYPE="test24" DOC_RESULT="test25" DOC_NUM="test26" DOC_DATE="15.03.24" VALUE_DATE="16.03.24" SWIFT_BEN="test27" SWIFT_INT="test28"/> <OBJECT SEG_TYPE="test1" DOC_TYPE="test2" DOCNM_REF="test3" DOCNMPREV="test4" SBANKCODE="test5" C_ACC_DEB="test6" SBANKNAM="test7" RBANKCODE="test8" C_ACC_CRED="test9" RBANKNAM="test10" OP_TYPE="test11" OP_ORDER="test12" PAY_DATE="2024-03-14" PAY_VAL="test13" SUM_DEB="test14" SCLIENTN="test15" INN_DEB="test16" KPP_DEB="test17" ACC_DEB="test18" RCLIENTN="test19" INN_CRED="test20" KPP_CRED="test21" ACC_KR_1="test22" SPECIF_1="test23" SEND_TYPE="test24" DOC_RESULT="test25" DOC_NUM="test26" DOC_DATE="2024-03-15" VALUE_DATE="2024-03-16" SWIFT_BEN="test27" SWIFT_INT="test28"/>
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -5,8 +5,6 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Objects; import java.util.Objects;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.sdf.SDf01; import ru.clearing.classes.statics.data.sdf.SDf01;
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable; import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
@ -30,7 +28,7 @@ public class DF01ObjectTag extends ObjectTag<SDf01> {
private String accCode; private String accCode;
@JacksonXmlProperty(isAttribute = true, localName = "DAT") @JacksonXmlProperty(isAttribute = true, localName = "DAT")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate dat; private LocalDate dat;
@JacksonXmlProperty(isAttribute = true, localName = "MARKET") @JacksonXmlProperty(isAttribute = true, localName = "MARKET")
@ -72,8 +70,6 @@ public class DF01ObjectTag extends ObjectTag<SDf01> {
result.setSumunblock(this.getSumunblock()); result.setSumunblock(this.getSumunblock());
result.setFile_type(this.getFileType()); result.setFile_type(this.getFileType());
System.out.println(result.getDat());
return result; return result;
} }

View file

@ -45,7 +45,7 @@ public class DF04ObjectTag extends ObjectTag<SDf04> {
private String rbanknam5; private String rbanknam5;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE") @JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate payDate; private LocalDate payDate;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL") @JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL")

View file

@ -47,7 +47,7 @@ public class DF06ObjectTag extends ObjectTag<SDf06> {
private String docNum; private String docNum;
@JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE") @JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate docDate; private LocalDate docDate;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL") @JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL")

View file

@ -22,7 +22,7 @@ public class DF52ObjectTag extends ObjectTag<SDf52> {
private String deal; private String deal;
@JacksonXmlProperty(isAttribute = true, localName = "DATE") @JacksonXmlProperty(isAttribute = true, localName = "DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate date; private LocalDate date;
@JacksonXmlProperty(isAttribute = true, localName = "STATUS") @JacksonXmlProperty(isAttribute = true, localName = "STATUS")

View file

@ -57,7 +57,7 @@ public class DF55ObjectTag extends ObjectTag<SDf55> {
private String opOrder; private String opOrder;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE") @JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate payDate; private LocalDate payDate;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL") @JacksonXmlProperty(isAttribute = true, localName = "PAY_VAL")
@ -109,11 +109,11 @@ public class DF55ObjectTag extends ObjectTag<SDf55> {
private String docNum; private String docNum;
@JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE") @JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate docDate; private LocalDate docDate;
@JacksonXmlProperty(isAttribute = true, localName = "VALUE_DATE") @JacksonXmlProperty(isAttribute = true, localName = "VALUE_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate valueDate; private LocalDate valueDate;
@JacksonXmlProperty(isAttribute = true, localName = "SWIFT_BEN") @JacksonXmlProperty(isAttribute = true, localName = "SWIFT_BEN")

View file

@ -51,7 +51,7 @@ public class DF57ObjectTag extends ObjectTag<SDf57> {
private String opType; private String opType;
@JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE") @JacksonXmlProperty(isAttribute = true, localName = "PAY_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate payDate; private LocalDate payDate;
@JacksonXmlProperty(isAttribute = true, localName = "EXT_DATE") @JacksonXmlProperty(isAttribute = true, localName = "EXT_DATE")
@ -100,7 +100,7 @@ public class DF57ObjectTag extends ObjectTag<SDf57> {
private String docNum; private String docNum;
@JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE") @JacksonXmlProperty(isAttribute = true, localName = "DOC_DATE")
@JsonFormat(pattern = "dd.MM.yy") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate docDate; private LocalDate docDate;
@JacksonXmlProperty(isAttribute = true, localName = "DT_IN") @JacksonXmlProperty(isAttribute = true, localName = "DT_IN")

View file

@ -61,7 +61,7 @@ public class XMLImporterService {
public void processTable(ETable specificTable) { public void processTable(ETable specificTable) {
log.info("adding import task {}", specificTable == null ? "without specific table" : specificTable); log.info("adding import task {}", specificTable == null ? "without specific table" : specificTable);
//fileChecker.checkAndLoadSFTP(); fileChecker.checkAndLoadSFTP();
executorService.execute(() -> { executorService.execute(() -> {
Map<ETable, List<File>> newFiles = null; Map<ETable, List<File>> newFiles = null;
try { try {

View file

@ -63,29 +63,26 @@ class ReadXMLFileTest {
expectedObjectTag.setDat(LocalDate.parse("2024-03-14")); expectedObjectTag.setDat(LocalDate.parse("2024-03-14"));
expectedObjectTag.setMarket("q"); expectedObjectTag.setMarket("q");
expectedObjectTag.setAccName("test7"); expectedObjectTag.setAccName("test7");
expectedObjectTag.setAccType("test8"); expectedObjectTag.setAccType("t8");
expectedObjectTag.setSumengage("test9"); expectedObjectTag.setSumengage("test9");
expectedObjectTag.setSumunblock("test10"); expectedObjectTag.setSumunblock("test10");
expectedObjectTag.setFileType("test11"); expectedObjectTag.setFileType("1");
ParentDocTag expectedParentDocTag = new ParentDocTag(); DF01ObjectTag actualObjectTag = (DF01ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
expectedParentDocTag.setParentId("");
DocumentTag expectedDocumentTag = new DocumentTag();
expectedDocumentTag.setMessageId("qq");
expectedDocumentTag.setMessageType("DF01");
expectedDocumentTag.setMessageName("ww");
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
expectedDocumentTag.setSender("БИСКВИТ");
expectedDocumentTag.setReceiver("");
expectedDocumentTag.setParentDoc(expectedParentDocTag);
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
Assertions.assertThat(processResult).isEqualTo(StageResult.OK); Assertions.assertThat(processResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualResultContainer.getDocumentTag()) Assertions.assertThat(actualObjectTag.getCurrCode()).isEqualTo(expectedObjectTag.getCurrCode());
.usingRecursiveComparison() Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedObjectTag.getAccount());
.isEqualTo(expectedDocumentTag); Assertions.assertThat(actualObjectTag.getRemainder()).isEqualTo(expectedObjectTag.getRemainder());
Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedObjectTag.getDeal());
Assertions.assertThat(actualObjectTag.getAccCode()).isEqualTo(expectedObjectTag.getAccCode());
Assertions.assertThat(actualObjectTag.getDat()).isEqualTo(expectedObjectTag.getDat());
Assertions.assertThat(actualObjectTag.getMarket()).isEqualTo(expectedObjectTag.getMarket());
Assertions.assertThat(actualObjectTag.getAccName()).isEqualTo(expectedObjectTag.getAccName());
Assertions.assertThat(actualObjectTag.getAccType()).isEqualTo(expectedObjectTag.getAccType());
Assertions.assertThat(actualObjectTag.getSumengage()).isEqualTo(expectedObjectTag.getSumengage());
Assertions.assertThat(actualObjectTag.getSumunblock()).isEqualTo(expectedObjectTag.getSumunblock());
Assertions.assertThat(actualObjectTag.getFileType()).isEqualTo(expectedObjectTag.getFileType());
} }
@Test @Test
@ -98,7 +95,7 @@ class ReadXMLFileTest {
StageResult processResult = readXMLFile.process(actualResultContainer); StageResult processResult = readXMLFile.process(actualResultContainer);
DF04ObjectTag expectedObjectTag = new DF04ObjectTag(); DF04ObjectTag expectedObjectTag = new DF04ObjectTag();
expectedObjectTag.setSegType("test1"); expectedObjectTag.setSegType("1");
expectedObjectTag.setDocType("test2"); expectedObjectTag.setDocType("test2");
expectedObjectTag.setDocnmRef("test3"); expectedObjectTag.setDocnmRef("test3");
expectedObjectTag.setDocnmprev("test4"); expectedObjectTag.setDocnmprev("test4");
@ -110,26 +107,24 @@ class ReadXMLFileTest {
expectedObjectTag.setPayVal("test9"); expectedObjectTag.setPayVal("test9");
expectedObjectTag.setSumDeb("test10"); expectedObjectTag.setSumDeb("test10");
expectedObjectTag.setSpecif1("test11"); expectedObjectTag.setSpecif1("test11");
expectedObjectTag.setImpResult("test12"); expectedObjectTag.setImpResult("t12");
ParentDocTag expectedParentDocTag = new ParentDocTag(); DF04ObjectTag actualObjectTag = (DF04ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
expectedParentDocTag.setParentId("");
DocumentTag expectedDocumentTag = new DocumentTag();
expectedDocumentTag.setMessageId("qq");
expectedDocumentTag.setMessageType("DF04");
expectedDocumentTag.setMessageName("ww");
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
expectedDocumentTag.setSender("БИСКВИТ");
expectedDocumentTag.setReceiver("");
expectedDocumentTag.setParentDoc(expectedParentDocTag);
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
Assertions.assertThat(processResult).isEqualTo(StageResult.OK); Assertions.assertThat(processResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualResultContainer.getDocumentTag()) Assertions.assertThat(actualObjectTag.getSegType()).isEqualTo(expectedObjectTag.getSegType());
.usingRecursiveComparison() Assertions.assertThat(actualObjectTag.getDocType()).isEqualTo(expectedObjectTag.getDocType());
.isEqualTo(expectedDocumentTag); Assertions.assertThat(actualObjectTag.getDocnmRef()).isEqualTo(expectedObjectTag.getDocnmRef());
Assertions.assertThat(actualObjectTag.getDocnmprev()).isEqualTo(expectedObjectTag.getDocnmprev());
Assertions.assertThat(actualObjectTag.getcAccDeb()).isEqualTo(expectedObjectTag.getcAccDeb());
Assertions.assertThat(actualObjectTag.getSbanknam1()).isEqualTo(expectedObjectTag.getSbanknam1());
Assertions.assertThat(actualObjectTag.getcAccCred()).isEqualTo(expectedObjectTag.getcAccCred());
Assertions.assertThat(actualObjectTag.getRbanknam1()).isEqualTo(expectedObjectTag.getRbanknam1());
Assertions.assertThat(actualObjectTag.getPayDate()).isEqualTo(expectedObjectTag.getPayDate());
Assertions.assertThat(actualObjectTag.getPayVal()).isEqualTo(expectedObjectTag.getPayVal());
Assertions.assertThat(actualObjectTag.getSumDeb()).isEqualTo(expectedObjectTag.getSumDeb());
Assertions.assertThat(actualObjectTag.getSpecif1()).isEqualTo(expectedObjectTag.getSpecif1());
Assertions.assertThat(actualObjectTag.getImpResult()).isEqualTo(expectedObjectTag.getImpResult());
} }
@Test @Test
@ -144,7 +139,7 @@ class ReadXMLFileTest {
DF06ObjectTag expectedObjectTag = new DF06ObjectTag(); DF06ObjectTag expectedObjectTag = new DF06ObjectTag();
expectedObjectTag.setAccount("test1"); expectedObjectTag.setAccount("test1");
expectedObjectTag.setSum(new BigDecimal(BigInteger.TEN)); expectedObjectTag.setSum(new BigDecimal(BigInteger.TEN));
expectedObjectTag.setMarket("test3"); expectedObjectTag.setMarket("q");
expectedObjectTag.setType("test4"); expectedObjectTag.setType("test4");
expectedObjectTag.setDeal("test5"); expectedObjectTag.setDeal("test5");
expectedObjectTag.setClientN("test6"); expectedObjectTag.setClientN("test6");
@ -152,28 +147,26 @@ class ReadXMLFileTest {
expectedObjectTag.setBic("test8"); expectedObjectTag.setBic("test8");
expectedObjectTag.setSpec("test9"); expectedObjectTag.setSpec("test9");
expectedObjectTag.setNumber(new BigDecimal(BigInteger.TWO)); expectedObjectTag.setNumber(new BigDecimal(BigInteger.TWO));
expectedObjectTag.setDocNum("test11"); expectedObjectTag.setDocNum("t11");
expectedObjectTag.setDocDate(LocalDate.parse("2024-03-14")); expectedObjectTag.setDocDate(LocalDate.parse("2024-03-14"));
expectedObjectTag.setPayVal("test12"); expectedObjectTag.setPayVal("test12");
ParentDocTag expectedParentDocTag = new ParentDocTag(); DF06ObjectTag actualObjectTag = (DF06ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
expectedParentDocTag.setParentId("");
DocumentTag expectedDocumentTag = new DocumentTag();
expectedDocumentTag.setMessageId("qq");
expectedDocumentTag.setMessageType("DF06");
expectedDocumentTag.setMessageName("ww");
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
expectedDocumentTag.setSender("БИСКВИТ");
expectedDocumentTag.setReceiver("");
expectedDocumentTag.setParentDoc(expectedParentDocTag);
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
Assertions.assertThat(processResult).isEqualTo(StageResult.OK); Assertions.assertThat(processResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualResultContainer.getDocumentTag()) Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedObjectTag.getAccount());
.usingRecursiveComparison() Assertions.assertThat(actualObjectTag.getSum()).isEqualTo(expectedObjectTag.getSum());
.isEqualTo(expectedDocumentTag); Assertions.assertThat(actualObjectTag.getMarket()).isEqualTo(expectedObjectTag.getMarket());
Assertions.assertThat(actualObjectTag.getType()).isEqualTo(expectedObjectTag.getType());
Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedObjectTag.getDeal());
Assertions.assertThat(actualObjectTag.getClientN()).isEqualTo(expectedObjectTag.getClientN());
Assertions.assertThat(actualObjectTag.getInn()).isEqualTo(expectedObjectTag.getInn());
Assertions.assertThat(actualObjectTag.getBic()).isEqualTo(expectedObjectTag.getBic());
Assertions.assertThat(actualObjectTag.getSpec()).isEqualTo(expectedObjectTag.getSpec());
Assertions.assertThat(actualObjectTag.getNumber()).isEqualTo(expectedObjectTag.getNumber());
Assertions.assertThat(actualObjectTag.getDocNum()).isEqualTo(expectedObjectTag.getDocNum());
Assertions.assertThat(actualObjectTag.getDocDate()).isEqualTo(expectedObjectTag.getDocDate());
Assertions.assertThat(actualObjectTag.getPayVal()).isEqualTo(expectedObjectTag.getPayVal());
} }
@Test @Test
@ -188,29 +181,20 @@ class ReadXMLFileTest {
DF52ObjectTag expectedObjectTag = new DF52ObjectTag(); DF52ObjectTag expectedObjectTag = new DF52ObjectTag();
expectedObjectTag.setAccount("test1"); expectedObjectTag.setAccount("test1");
expectedObjectTag.setAccName("test2"); expectedObjectTag.setAccName("test2");
expectedObjectTag.setDeal("test3"); expectedObjectTag.setDeal("tes3");
expectedObjectTag.setDate(LocalDate.parse("2024-03-14")); expectedObjectTag.setDate(LocalDate.parse("2024-03-14"));
expectedObjectTag.setAccType("test5"); expectedObjectTag.setAccType("t5");
expectedObjectTag.setStatus(1L); expectedObjectTag.setStatus(1L);
ParentDocTag expectedParentDocTag = new ParentDocTag(); DF52ObjectTag actualObjectTag = (DF52ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
expectedParentDocTag.setParentId("");
DocumentTag expectedDocumentTag = new DocumentTag();
expectedDocumentTag.setMessageId("qq");
expectedDocumentTag.setMessageType("DF52");
expectedDocumentTag.setMessageName("ww");
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
expectedDocumentTag.setSender("БИСКВИТ");
expectedDocumentTag.setReceiver("");
expectedDocumentTag.setParentDoc(expectedParentDocTag);
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
Assertions.assertThat(processResult).isEqualTo(StageResult.OK); Assertions.assertThat(processResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualResultContainer.getDocumentTag()) Assertions.assertThat(actualObjectTag.getAccount()).isEqualTo(expectedObjectTag.getAccount());
.usingRecursiveComparison() Assertions.assertThat(actualObjectTag.getAccName()).isEqualTo(expectedObjectTag.getAccName());
.isEqualTo(expectedDocumentTag); Assertions.assertThat(actualObjectTag.getDeal()).isEqualTo(expectedObjectTag.getDeal());
Assertions.assertThat(actualObjectTag.getDate()).isEqualTo(expectedObjectTag.getDate());
Assertions.assertThat(actualObjectTag.getAccType()).isEqualTo(expectedObjectTag.getAccType());
Assertions.assertThat(actualObjectTag.getStatus()).isEqualTo(expectedObjectTag.getStatus());
} }
@Test @Test
@ -223,7 +207,7 @@ class ReadXMLFileTest {
StageResult processResult = readXMLFile.process(actualResultContainer); StageResult processResult = readXMLFile.process(actualResultContainer);
DF55ObjectTag expectedObjectTag = new DF55ObjectTag(); DF55ObjectTag expectedObjectTag = new DF55ObjectTag();
expectedObjectTag.setSegType("test1"); expectedObjectTag.setSegType("1");
expectedObjectTag.setDocType("test2"); expectedObjectTag.setDocType("test2");
expectedObjectTag.setDocnmRef("test3"); expectedObjectTag.setDocnmRef("test3");
expectedObjectTag.setDocnmprev("test4"); expectedObjectTag.setDocnmprev("test4");
@ -233,8 +217,8 @@ class ReadXMLFileTest {
expectedObjectTag.setRbankcode("test8"); expectedObjectTag.setRbankcode("test8");
expectedObjectTag.setcAccCred("test9"); expectedObjectTag.setcAccCred("test9");
expectedObjectTag.setRbanknam1("test10"); expectedObjectTag.setRbanknam1("test10");
expectedObjectTag.setOpType("test11"); expectedObjectTag.setOpType("11");
expectedObjectTag.setOpOrder("test12"); expectedObjectTag.setOpOrder("2");
expectedObjectTag.setPayDate(LocalDate.parse("2024-03-14")); expectedObjectTag.setPayDate(LocalDate.parse("2024-03-14"));
expectedObjectTag.setPayVal("test13"); expectedObjectTag.setPayVal("test13");
expectedObjectTag.setSumDeb("test14"); expectedObjectTag.setSumDeb("test14");
@ -248,31 +232,47 @@ class ReadXMLFileTest {
expectedObjectTag.setAccKr1("test22"); expectedObjectTag.setAccKr1("test22");
expectedObjectTag.setSpecif1("test23"); expectedObjectTag.setSpecif1("test23");
expectedObjectTag.setSendType("test24"); expectedObjectTag.setSendType("test24");
expectedObjectTag.setDocResult("test25"); expectedObjectTag.setDocResult("25");
expectedObjectTag.setDocNum("test26"); expectedObjectTag.setDocNum("t26");
expectedObjectTag.setDocDate(LocalDate.parse("2024-03-15")); expectedObjectTag.setDocDate(LocalDate.parse("2024-03-15"));
expectedObjectTag.setValueDate(LocalDate.parse("2024-03-16")); expectedObjectTag.setValueDate(LocalDate.parse("2024-03-16"));
expectedObjectTag.setSwiftBen("test27"); expectedObjectTag.setSwiftBen("test27");
expectedObjectTag.setSwiftInt("test28"); expectedObjectTag.setSwiftInt("test28");
ParentDocTag expectedParentDocTag = new ParentDocTag(); DF55ObjectTag actualObjectTag = (DF55ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
expectedParentDocTag.setParentId("");
DocumentTag expectedDocumentTag = new DocumentTag();
expectedDocumentTag.setMessageId("qq");
expectedDocumentTag.setMessageType("DF55");
expectedDocumentTag.setMessageName("ww");
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
expectedDocumentTag.setSender("БИСКВИТ");
expectedDocumentTag.setReceiver("");
expectedDocumentTag.setParentDoc(expectedParentDocTag);
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
Assertions.assertThat(processResult).isEqualTo(StageResult.OK); Assertions.assertThat(processResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualResultContainer.getDocumentTag()) Assertions.assertThat(actualObjectTag.getSegType()).isEqualTo(expectedObjectTag.getSegType());
.usingRecursiveComparison() Assertions.assertThat(actualObjectTag.getDocType()).isEqualTo(expectedObjectTag.getDocType());
.isEqualTo(expectedDocumentTag); Assertions.assertThat(actualObjectTag.getDocnmRef()).isEqualTo(expectedObjectTag.getDocnmRef());
Assertions.assertThat(actualObjectTag.getDocnmprev()).isEqualTo(expectedObjectTag.getDocnmprev());
Assertions.assertThat(actualObjectTag.getSbankcode()).isEqualTo(expectedObjectTag.getSbankcode());
Assertions.assertThat(actualObjectTag.getcAccDeb()).isEqualTo(expectedObjectTag.getcAccDeb());
Assertions.assertThat(actualObjectTag.getSbanknam1()).isEqualTo(expectedObjectTag.getSbanknam1());
Assertions.assertThat(actualObjectTag.getRbankcode()).isEqualTo(expectedObjectTag.getRbankcode());
Assertions.assertThat(actualObjectTag.getcAccCred()).isEqualTo(expectedObjectTag.getcAccCred());
Assertions.assertThat(actualObjectTag.getRbanknam1()).isEqualTo(expectedObjectTag.getRbanknam1());
Assertions.assertThat(actualObjectTag.getOpType()).isEqualTo(expectedObjectTag.getOpType());
Assertions.assertThat(actualObjectTag.getOpOrder()).isEqualTo(expectedObjectTag.getOpOrder());
Assertions.assertThat(actualObjectTag.getPayDate()).isEqualTo(expectedObjectTag.getPayDate());
Assertions.assertThat(actualObjectTag.getPayVal()).isEqualTo(expectedObjectTag.getPayVal());
Assertions.assertThat(actualObjectTag.getSumDeb()).isEqualTo(expectedObjectTag.getSumDeb());
Assertions.assertThat(actualObjectTag.getSclientn1()).isEqualTo(expectedObjectTag.getSclientn1());
Assertions.assertThat(actualObjectTag.getInnDeb()).isEqualTo(expectedObjectTag.getInnDeb());
Assertions.assertThat(actualObjectTag.getKppDeb()).isEqualTo(expectedObjectTag.getKppDeb());
Assertions.assertThat(actualObjectTag.getAccDeb()).isEqualTo(expectedObjectTag.getAccDeb());
Assertions.assertThat(actualObjectTag.getRclientn1()).isEqualTo(expectedObjectTag.getRclientn1());
Assertions.assertThat(actualObjectTag.getInnCred()).isEqualTo(expectedObjectTag.getInnCred());
Assertions.assertThat(actualObjectTag.getKppCred()).isEqualTo(expectedObjectTag.getKppCred());
Assertions.assertThat(actualObjectTag.getAccKr1()).isEqualTo(expectedObjectTag.getAccKr1());
Assertions.assertThat(actualObjectTag.getSpecif1()).isEqualTo(expectedObjectTag.getSpecif1());
Assertions.assertThat(actualObjectTag.getSendType()).isEqualTo(expectedObjectTag.getSendType());
Assertions.assertThat(actualObjectTag.getDocResult()).isEqualTo(expectedObjectTag.getDocResult());
Assertions.assertThat(actualObjectTag.getDocNum()).isEqualTo(expectedObjectTag.getDocNum());
Assertions.assertThat(actualObjectTag.getDocDate()).isEqualTo(expectedObjectTag.getDocDate());
Assertions.assertThat(actualObjectTag.getValueDate()).isEqualTo(expectedObjectTag.getValueDate());
Assertions.assertThat(actualObjectTag.getSwiftBen()).isEqualTo(expectedObjectTag.getSwiftBen());
Assertions.assertThat(actualObjectTag.getSwiftInt()).isEqualTo(expectedObjectTag.getSwiftInt());
} }
@Test @Test
@ -315,23 +315,65 @@ class ReadXMLFileTest {
expectedObjectTag.setDtOut("test25"); expectedObjectTag.setDtOut("test25");
expectedObjectTag.setKtOut("test26"); expectedObjectTag.setKtOut("test26");
ParentDocTag expectedParentDocTag = new ParentDocTag(); DF57ObjectTag actualObjectTag = (DF57ObjectTag) actualResultContainer.getDocumentTag().getObjects().get(0);
expectedParentDocTag.setParentId("");
Assertions.assertThat(processResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualObjectTag.getId()).isEqualTo(expectedObjectTag.getId());
Assertions.assertThat(actualObjectTag.getDealDeb()).isEqualTo(expectedObjectTag.getDealDeb());
Assertions.assertThat(actualObjectTag.getDealCred()).isEqualTo(expectedObjectTag.getDealCred());
Assertions.assertThat(actualObjectTag.getSbankcode()).isEqualTo(expectedObjectTag.getSbankcode());
Assertions.assertThat(actualObjectTag.getcAccDeb()).isEqualTo(expectedObjectTag.getcAccDeb());
Assertions.assertThat(actualObjectTag.getSbanknam1()).isEqualTo(expectedObjectTag.getSbanknam1());
Assertions.assertThat(actualObjectTag.getRbankcode()).isEqualTo(expectedObjectTag.getRbankcode());
Assertions.assertThat(actualObjectTag.getcAccCred()).isEqualTo(expectedObjectTag.getcAccCred());
Assertions.assertThat(actualObjectTag.getRbanknam1()).isEqualTo(expectedObjectTag.getRbanknam1());
Assertions.assertThat(actualObjectTag.getOpType()).isEqualTo(expectedObjectTag.getOpType());
Assertions.assertThat(actualObjectTag.getPayDate()).isEqualTo(expectedObjectTag.getPayDate());
Assertions.assertThat(actualObjectTag.getExtDate()).isEqualTo(expectedObjectTag.getExtDate());
Assertions.assertThat(actualObjectTag.getPayVal()).isEqualTo(expectedObjectTag.getPayVal());
Assertions.assertThat(actualObjectTag.getSumDeb()).isEqualTo(expectedObjectTag.getSumDeb());
Assertions.assertThat(actualObjectTag.getSclientn1()).isEqualTo(expectedObjectTag.getSclientn1());
Assertions.assertThat(actualObjectTag.getInnDeb()).isEqualTo(expectedObjectTag.getInnDeb());
Assertions.assertThat(actualObjectTag.getKppDeb()).isEqualTo(expectedObjectTag.getKppDeb());
Assertions.assertThat(actualObjectTag.getAccDeb()).isEqualTo(expectedObjectTag.getAccDeb());
Assertions.assertThat(actualObjectTag.getRclientn1()).isEqualTo(expectedObjectTag.getRclientn1());
Assertions.assertThat(actualObjectTag.getInnCred()).isEqualTo(expectedObjectTag.getInnCred());
Assertions.assertThat(actualObjectTag.getKppCred()).isEqualTo(expectedObjectTag.getKppCred());
Assertions.assertThat(actualObjectTag.getAccKr()).isEqualTo(expectedObjectTag.getAccKr());
Assertions.assertThat(actualObjectTag.getSpecif()).isEqualTo(expectedObjectTag.getSpecif());
Assertions.assertThat(actualObjectTag.getDocNum()).isEqualTo(expectedObjectTag.getDocNum());
Assertions.assertThat(actualObjectTag.getDocDate()).isEqualTo(expectedObjectTag.getDocDate());
Assertions.assertThat(actualObjectTag.getDtIn()).isEqualTo(expectedObjectTag.getDtIn());
Assertions.assertThat(actualObjectTag.getKtIn()).isEqualTo(expectedObjectTag.getKtIn());
Assertions.assertThat(actualObjectTag.getDtOut()).isEqualTo(expectedObjectTag.getDtOut());
Assertions.assertThat(actualObjectTag.getKtOut()).isEqualTo(expectedObjectTag.getKtOut());
}
@Test
void process_shouldReadSDf01XMLFileAndTestHeaders() {
ResultContainer actualResultContainer = new ResultContainer(ETable.DF_01,
new File(Objects.requireNonNull(getClass()
.getClassLoader()
.getResource("xml/DF-01_S_PRC1604240915_1.xml")).getFile()));
StageResult processResult = readXMLFile.process(actualResultContainer);
DocumentTag expectedDocumentTag = new DocumentTag(); DocumentTag expectedDocumentTag = new DocumentTag();
expectedDocumentTag.setMessageId("qq"); expectedDocumentTag.setMessageId("qq");
expectedDocumentTag.setMessageType("DF57"); expectedDocumentTag.setMessageType("DF01");
expectedDocumentTag.setMessageName("ww"); expectedDocumentTag.setMessageName("ww");
expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14")); expectedDocumentTag.setMessageDate(LocalDate.parse("2024-03-14"));
expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31")); expectedDocumentTag.setMessageTime(LocalTime.parse("09:15:31"));
expectedDocumentTag.setSender("БИСКВИТ"); expectedDocumentTag.setSender("БИСКВИТ");
expectedDocumentTag.setReceiver(""); expectedDocumentTag.setReceiver("");
expectedDocumentTag.setParentDoc(expectedParentDocTag);
expectedDocumentTag.setObjects(List.of(expectedObjectTag));
Assertions.assertThat(processResult).isEqualTo(StageResult.OK); Assertions.assertThat(processResult).isEqualTo(StageResult.OK);
Assertions.assertThat(actualResultContainer.getDocumentTag()) Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageId()).isEqualTo(expectedDocumentTag.getMessageId());
.usingRecursiveComparison() Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageType()).isEqualTo(expectedDocumentTag.getMessageType());
.isEqualTo(expectedDocumentTag); Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageName()).isEqualTo(expectedDocumentTag.getMessageName());
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageDate()).isEqualTo(expectedDocumentTag.getMessageDate());
Assertions.assertThat(actualResultContainer.getDocumentTag().getMessageTime()).isEqualTo(expectedDocumentTag.getMessageTime());
Assertions.assertThat(actualResultContainer.getDocumentTag().getSender()).isEqualTo(expectedDocumentTag.getSender());
Assertions.assertThat(actualResultContainer.getDocumentTag().getReceiver()).isEqualTo(expectedDocumentTag.getReceiver());
} }
} }

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="qq" MESSAGETYPE="DF01" MESSAGENAME="ww" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="БИСКВИТ" RECEIVER=""> <DOCUMENT MESSAGEID="qq" MESSAGETYPE="DF01" MESSAGENAME="ww" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="БИСКВИТ" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT CURR_CODE="test1" ACCOUNT="test2" REMAINDER="test3" DEAL="test4" ACC_CODE="test5" DAT="14.03.24" MARKET="q" ACC_NAME="test7" ACC_TYPE="t8" SUMENGAGE="test9" SUMUNBLOK="test10" FILE_TYPE="1" /> <OBJECT CURR_CODE="test1" ACCOUNT="test2" REMAINDER="test3" DEAL="test4" ACC_CODE="test5" DAT="2024-03-14" MARKET="q" ACC_NAME="test7" ACC_TYPE="t8" SUMENGAGE="test9" SUMUNBLOK="test10" FILE_TYPE="1" />
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="qq" MESSAGETYPE="DF04" MESSAGENAME="ww" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="БИСКВИТ" RECEIVER=""> <DOCUMENT MESSAGEID="qq" MESSAGETYPE="DF04" MESSAGENAME="ww" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="БИСКВИТ" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT SEG_TYPE="1" DOC_TYPE="test2" DOCNM_REF="test3" DOCNMPREV="test4" C_ACC_DEB="test5" SBANKNAM="test6" C_ACC_CRED="test7" RBANKNAM="test8" PAY_DATE="14.03.24" PAY_VAL="test9" SUM_DEB="test10" SPECIF_1="test11" IMP_RESULT="t12" /> <OBJECT SEG_TYPE="1" DOC_TYPE="test2" DOCNM_REF="test3" DOCNMPREV="test4" C_ACC_DEB="test5" SBANKNAM="test6" C_ACC_CRED="test7" RBANKNAM="test8" PAY_DATE="2024-03-14" PAY_VAL="test9" SUM_DEB="test10" SPECIF_1="test11" IMP_RESULT="t12" />
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="qq" MESSAGETYPE="DF06" MESSAGENAME="ww" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="БИСКВИТ" RECEIVER=""> <DOCUMENT MESSAGEID="qq" MESSAGETYPE="DF06" MESSAGENAME="ww" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="БИСКВИТ" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT ACCOUNT="test1" SUM="10" MARKET="q" TYPE="test4" DEAL="test5" CLIENTN="test6" INN="test7" BIC="test8" SPEC="test9" NUMBER="2" DOC_NUM="t11" DOC_DATE="14.03.24" PAY_VAL="test12" /> <OBJECT ACCOUNT="test1" SUM="10" MARKET="q" TYPE="test4" DEAL="test5" CLIENTN="test6" INN="test7" BIC="test8" SPEC="test9" NUMBER="2" DOC_NUM="t11" DOC_DATE="2024-03-14" PAY_VAL="test12" />
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -2,6 +2,6 @@
<DOCUMENT MESSAGEID="qq" MESSAGETYPE="DF52" MESSAGENAME="ww" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="БИСКВИТ" RECEIVER=""> <DOCUMENT MESSAGEID="qq" MESSAGETYPE="DF52" MESSAGENAME="ww" MESSAGEDATE="2024-03-14" MESSAGETIME="09:15:31" SENDER="БИСКВИТ" RECEIVER="">
<PARENTDOC PARENTID=""/> <PARENTDOC PARENTID=""/>
<OBJECTS> <OBJECTS>
<OBJECT ACCOUNT="test1" ACC_NAME="test2" DEAL="tes3" DATE="14.03.24" STATUS="1" ACC_TYPE="t5" /> <OBJECT ACCOUNT="test1" ACC_NAME="test2" DEAL="tes3" DATE="2024-03-14" STATUS="1" ACC_TYPE="t5" />
</OBJECTS> </OBJECTS>
</DOCUMENT> </DOCUMENT>

View file

@ -15,7 +15,7 @@
RBANKNAM="test10" RBANKNAM="test10"
OP_TYPE="11" OP_TYPE="11"
OP_ORDER="2" OP_ORDER="2"
PAY_DATE="14.03.24" PAY_DATE="2024-03-14"
PAY_VAL="test13" PAY_VAL="test13"
SUM_DEB="test14" SUM_DEB="test14"
SCLIENTN="test15" SCLIENTN="test15"
@ -30,8 +30,8 @@
SEND_TYPE="test24" SEND_TYPE="test24"
DOC_RESULT="25" DOC_RESULT="25"
DOC_NUM="t26" DOC_NUM="t26"
DOC_DATE="15.03.24" DOC_DATE="2024-03-15"
VALUE_DATE="16.03.24" VALUE_DATE="2024-03-16"
SWIFT_BEN="test27" SWIFT_BEN="test27"
SWIFT_INT="test28" SWIFT_INT="test28"
/> />

View file

@ -14,7 +14,7 @@
C_ACC_CRED="test8" C_ACC_CRED="test8"
RBANKNAM="test9" RBANKNAM="test9"
OP_TYPE="test10" OP_TYPE="test10"
PAY_DATE="15.03.24" PAY_DATE="2024-03-15"
EXT_DATE="111" EXT_DATE="111"
PAY_VAL="test11" PAY_VAL="test11"
SUM_DEB="test12" SUM_DEB="test12"
@ -28,7 +28,7 @@
ACC_KR="test20" ACC_KR="test20"
SPECIF="test21" SPECIF="test21"
DOC_NUM="test22" DOC_NUM="test22"
DOC_DATE="16.03.24" DOC_DATE="2024-03-16"
DT_IN="test23" DT_IN="test23"
KT_IN="test24" KT_IN="test24"
DT_OUT="test25" DT_OUT="test25"