account list tags added

This commit is contained in:
Ivan Nikolaev-Axenov 2024-08-12 13:03:17 +03:00
parent 0d0c5530f2
commit 865d0674a0
36 changed files with 1125 additions and 55 deletions

View file

@ -6,7 +6,6 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import ru.spcex.clearing.xml.importer.config.settings.ImportXMLServiceSettings;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
@Configuration

View file

@ -4,7 +4,8 @@ import java.io.File;
import java.util.UUID;
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.accountlist.firmdoctags.AbstractFirmDocTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.DocumentTag;
public class ResultContainer {
private UUID uuid;
@ -12,6 +13,7 @@ public class ResultContainer {
private File xmlFile;
private StageResult lastStageStatus;
private DocumentTag documentTag;
private AbstractFirmDocTag firmDocTag;
public ResultContainer(ETable xmlTable, File xmlFile) {
this.xmlTable = xmlTable;
@ -58,4 +60,24 @@ public class ResultContainer {
public void setDocumentTag(DocumentTag documentTag) {
this.documentTag = documentTag;
}
public AbstractFirmDocTag getFirmDocTag() {
return firmDocTag;
}
public void setFirmDocTag(AbstractFirmDocTag firmDocTag) {
this.firmDocTag = firmDocTag;
}
@Override
public String toString() {
return "ResultContainer{" +
"uuid=" + uuid +
", xmlTable=" + xmlTable +
", xmlFile=" + xmlFile +
", lastStageStatus=" + lastStageStatus +
", documentTag=" + documentTag +
", firmDocTag=" + firmDocTag +
'}';
}
}

View file

@ -1,26 +1,42 @@
package ru.spcex.clearing.xml.importer.logic.data.enums;
import java.util.regex.Pattern;
public enum ETable {
DF_01("DF-01"),
DF_04("DF-04"),
DF_06("DF-06"),
DF_52("DF-52"),
DF_55("DF-55"),
DF_57("DF-57");
DF_01("DF-01", Pattern.compile("DF-01.*"), FileType.SDF),
DF_04("DF-04", Pattern.compile("DF-04.*"), FileType.SDF),
DF_06("DF-06", Pattern.compile("DF-06.*"), FileType.SDF),
DF_52("DF-52", Pattern.compile("DF-52.*"), FileType.SDF),
DF_55("DF-55", Pattern.compile("DF-55.*"), FileType.SDF),
DF_57("DF-57", Pattern.compile("DF-57.*"), FileType.SDF),
RUBLE_FIRMDOC("RUBLE_FIRMDOC", Pattern.compile(".*_ACCOUNT_LIST_.*_RUB_.*"), FileType.ACCOUNT_LIST),
FOREIGN_CURRENCY_FIRMDOC("FOREIGN_CURRENCY_FIRMDOC", Pattern.compile(".*_ACCOUNT_LIST_.*_((?!RUB).)*_.*"), FileType.ACCOUNT_LIST),
RUBLE_DEBITING_FIRMDOC("RUBLE_DEBITING_FIRMDOC", Pattern.compile(".*_ACCOUNT_OUT_.*"), FileType.ACCOUNT_LIST),
FOREIGN_CURRENCY_DEBITING_FIRMDOC("FOREIGN_CURRENCY_DEBITING_FIRMDOC", Pattern.compile(".*_ACCOUNT_OUT_.*"), FileType.ACCOUNT_LIST);
private final String prefix;
private final Pattern pattern;
private final FileType fileType;
ETable(String prefix, Pattern pattern, FileType fileType) {
this.prefix = prefix;
this.pattern = pattern;
this.fileType = fileType;
}
public String getPrefix() {
return prefix;
}
private final String prefix;
ETable(String prefix) {
this.prefix = prefix;
public FileType getFileType() {
return fileType;
}
public static ETable getTableForFilename(String filename) {
for (ETable table : ETable.values()) {
if (table.fileForThisTable(filename)) return table;
if (table.pattern.matcher(filename).matches()) {
return table;
}
}
return null;
}
@ -32,8 +48,4 @@ public enum ETable {
}
return null;
}
public boolean fileForThisTable(String filename) {
return filename != null && filename.startsWith(prefix);
}
}

View file

@ -0,0 +1,6 @@
package ru.spcex.clearing.xml.importer.logic.data.enums;
public enum FileType {
SDF,
ACCOUNT_LIST
}

View file

@ -0,0 +1,120 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.accounttags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class ForeignCurrencyAccountTag {
private final String currency;
private final String beneficiaryName;
private final String beneficiarySwift;
private final String location;
private final String accountNumber;
private final String bankTitle;
private final String bankLocation;
private final String bankSwift;
private final String bankAccountNumber;
private final String intermediaryBankTitle1;
private final String intermediaryBankLocation1;
private final String intermediaryBankSwift1;
private final String intermediaryBankAccountNumber1;
private final String intermediaryBankTitle2;
private final String intermediaryBankLocation2;
private final String intermediaryBankSwift2;
private final String intermediaryBankAccountNumber2;
private final String reason;
@JsonCreator
public ForeignCurrencyAccountTag(@JacksonXmlProperty(isAttribute = true, localName = "CURRENCY")
String currency,
@JacksonXmlProperty(isAttribute = true, localName = "BENEFICIARY_NAME")
String beneficiaryName,
@JacksonXmlProperty(isAttribute = true, localName = "BENEFICIARY_SWIFT")
String beneficiarySwift,
@JacksonXmlProperty(isAttribute = true, localName = "LOCATION")
String location,
@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT_NUMBER")
String accountNumber,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_TITLE")
String bankTitle,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_LOCATION")
String bankLocation,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_SWIFT")
String bankSwift,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_ACCOUNT_NUMBER")
String bankAccountNumber,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_TITLE_1")
String intermediaryBankTitle1,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_LOCATION_1")
String intermediaryBankLocation1,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_SWIFT_1")
String intermediaryBankSwift1,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_ACCOUNT_NUMBER_1")
String intermediaryBankAccountNumber1,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_TITLE_2")
String intermediaryBankTitle2,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_LOCATION_2")
String intermediaryBankLocation2,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_SWIFT_2")
String intermediaryBankSwift2,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_ACCOUNT_NUMBER_2")
String intermediaryBankAccountNumber2,
@JacksonXmlProperty(isAttribute = true, localName = "REASON")
String reason) {
this.currency = currency;
this.beneficiaryName = beneficiaryName;
this.beneficiarySwift = beneficiarySwift;
this.location = location;
this.accountNumber = accountNumber;
this.bankTitle = bankTitle;
this.bankLocation = bankLocation;
this.bankSwift = bankSwift;
this.bankAccountNumber = bankAccountNumber;
this.intermediaryBankTitle1 = intermediaryBankTitle1;
this.intermediaryBankLocation1 = intermediaryBankLocation1;
this.intermediaryBankSwift1 = intermediaryBankSwift1;
this.intermediaryBankAccountNumber1 = intermediaryBankAccountNumber1;
this.intermediaryBankTitle2 = intermediaryBankTitle2;
this.intermediaryBankLocation2 = intermediaryBankLocation2;
this.intermediaryBankSwift2 = intermediaryBankSwift2;
this.intermediaryBankAccountNumber2 = intermediaryBankAccountNumber2;
this.reason = reason;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ForeignCurrencyAccountTag that = (ForeignCurrencyAccountTag) o;
return Objects.equals(currency, that.currency) && Objects.equals(beneficiaryName, that.beneficiaryName) && Objects.equals(beneficiarySwift, that.beneficiarySwift) && Objects.equals(location, that.location) && Objects.equals(accountNumber, that.accountNumber) && Objects.equals(bankTitle, that.bankTitle) && Objects.equals(bankLocation, that.bankLocation) && Objects.equals(bankSwift, that.bankSwift) && Objects.equals(bankAccountNumber, that.bankAccountNumber) && Objects.equals(intermediaryBankTitle1, that.intermediaryBankTitle1) && Objects.equals(intermediaryBankLocation1, that.intermediaryBankLocation1) && Objects.equals(intermediaryBankSwift1, that.intermediaryBankSwift1) && Objects.equals(intermediaryBankAccountNumber1, that.intermediaryBankAccountNumber1) && Objects.equals(intermediaryBankTitle2, that.intermediaryBankTitle2) && Objects.equals(intermediaryBankLocation2, that.intermediaryBankLocation2) && Objects.equals(intermediaryBankSwift2, that.intermediaryBankSwift2) && Objects.equals(intermediaryBankAccountNumber2, that.intermediaryBankAccountNumber2) && Objects.equals(reason, that.reason);
}
@Override
public int hashCode() {
return Objects.hash(currency, beneficiaryName, beneficiarySwift, location, accountNumber, bankTitle, bankLocation, bankSwift, bankAccountNumber, intermediaryBankTitle1, intermediaryBankLocation1, intermediaryBankSwift1, intermediaryBankAccountNumber1, intermediaryBankTitle2, intermediaryBankLocation2, intermediaryBankSwift2, intermediaryBankAccountNumber2, reason);
}
@Override
public String toString() {
return "ForeignCurrencyAccountTag{" +
"currency='" + currency + '\'' +
", beneficiaryName='" + beneficiaryName + '\'' +
", beneficiarySwift='" + beneficiarySwift + '\'' +
", location='" + location + '\'' +
", accountNumber='" + accountNumber + '\'' +
", bankTitle='" + bankTitle + '\'' +
", bankLocation='" + bankLocation + '\'' +
", bankSwift='" + bankSwift + '\'' +
", bankAccountNumber='" + bankAccountNumber + '\'' +
", intermediaryBankTitle1='" + intermediaryBankTitle1 + '\'' +
", intermediaryBankLocation1='" + intermediaryBankLocation1 + '\'' +
", intermediaryBankSwift1='" + intermediaryBankSwift1 + '\'' +
", intermediaryBankAccountNumber1='" + intermediaryBankAccountNumber1 + '\'' +
", intermediaryBankTitle2='" + intermediaryBankTitle2 + '\'' +
", intermediaryBankLocation2='" + intermediaryBankLocation2 + '\'' +
", intermediaryBankSwift2='" + intermediaryBankSwift2 + '\'' +
", intermediaryBankAccountNumber2='" + intermediaryBankAccountNumber2 + '\'' +
", reason='" + reason + '\'' +
'}';
}
}

View file

@ -0,0 +1,80 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.accounttags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class ForeignCurrencyDebitingAccountTag {
private final String currency;
private final String beneficiarySwift;
private final String accountNumber;
private final String bankSwift;
private final String bankAccountNumber;
private final String intermediaryBankSwift1;
private final String intermediaryBankAccountNumber1;
private final String intermediaryBankSwift2;
private final String intermediaryBankAccountNumber2;
private final String reason;
@JsonCreator
public ForeignCurrencyDebitingAccountTag(@JacksonXmlProperty(isAttribute = true, localName = "CURRENCY")
String currency,
@JacksonXmlProperty(isAttribute = true, localName = "BENEFICIARY_SWIFT")
String beneficiarySwift,
@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT_NUMBER")
String accountNumber,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_SWIFT")
String bankSwift,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_ACCOUNT_NUMBER")
String bankAccountNumber,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_SWIFT_1")
String intermediaryBankSwift1,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_ACCOUNT_NUMBER_1")
String intermediaryBankAccountNumber1,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_SWIFT_2")
String intermediaryBankSwift2,
@JacksonXmlProperty(isAttribute = true, localName = "INTERMEDIARY_BANK_ACCOUNT_NUMBER_2")
String intermediaryBankAccountNumber2,
@JacksonXmlProperty(isAttribute = true, localName = "REASON")
String reason) {
this.currency = currency;
this.beneficiarySwift = beneficiarySwift;
this.accountNumber = accountNumber;
this.bankSwift = bankSwift;
this.bankAccountNumber = bankAccountNumber;
this.intermediaryBankSwift1 = intermediaryBankSwift1;
this.intermediaryBankAccountNumber1 = intermediaryBankAccountNumber1;
this.intermediaryBankSwift2 = intermediaryBankSwift2;
this.intermediaryBankAccountNumber2 = intermediaryBankAccountNumber2;
this.reason = reason;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ForeignCurrencyDebitingAccountTag that = (ForeignCurrencyDebitingAccountTag) o;
return Objects.equals(currency, that.currency) && Objects.equals(beneficiarySwift, that.beneficiarySwift) && Objects.equals(accountNumber, that.accountNumber) && Objects.equals(bankSwift, that.bankSwift) && Objects.equals(bankAccountNumber, that.bankAccountNumber) && Objects.equals(intermediaryBankSwift1, that.intermediaryBankSwift1) && Objects.equals(intermediaryBankAccountNumber1, that.intermediaryBankAccountNumber1) && Objects.equals(intermediaryBankSwift2, that.intermediaryBankSwift2) && Objects.equals(intermediaryBankAccountNumber2, that.intermediaryBankAccountNumber2) && Objects.equals(reason, that.reason);
}
@Override
public int hashCode() {
return Objects.hash(currency, beneficiarySwift, accountNumber, bankSwift, bankAccountNumber, intermediaryBankSwift1, intermediaryBankAccountNumber1, intermediaryBankSwift2, intermediaryBankAccountNumber2, reason);
}
@Override
public String toString() {
return "ForeignCurrencyDebitingAccountTag{" +
"currency='" + currency + '\'' +
", beneficiarySwift='" + beneficiarySwift + '\'' +
", accountNumber='" + accountNumber + '\'' +
", bankSwift='" + bankSwift + '\'' +
", bankAccountNumber='" + bankAccountNumber + '\'' +
", intermediaryBankSwift1='" + intermediaryBankSwift1 + '\'' +
", intermediaryBankAccountNumber1='" + intermediaryBankAccountNumber1 + '\'' +
", intermediaryBankSwift2='" + intermediaryBankSwift2 + '\'' +
", intermediaryBankAccountNumber2='" + intermediaryBankAccountNumber2 + '\'' +
", reason='" + reason + '\'' +
'}';
}
}

View file

@ -0,0 +1,109 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.accounttags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class RubleAccountTag {
private final String currency;
private final String beneficiaryName;
private final String beneficiaryAccount;
private final String kbk;
private final String oktmo;
private final String inn;
private final String kpp;
private final String accountNumber;
private final String bankTitle;
private final String bankLocation;
private final String bik;
private final String correspondentAccountNumber;
private final String reason;
private final String exclusionDate;
@JsonCreator
public RubleAccountTag(@JacksonXmlProperty(isAttribute = true, localName = "CURRENCY")
@JsonProperty(required = true)
String currency,
@JacksonXmlProperty(isAttribute = true, localName = "BENEFICIARY_NAME")
@JsonProperty(required = true)
String beneficiaryName,
@JacksonXmlProperty(isAttribute = true, localName = "BENEFICIARY_ACCOUNT")
String beneficiaryAccount,
@JacksonXmlProperty(isAttribute = true, localName = "KBK")
String kbk,
@JacksonXmlProperty(isAttribute = true, localName = "OKTMO")
String oktmo,
@JacksonXmlProperty(isAttribute = true, localName = "INN")
String inn,
@JacksonXmlProperty(isAttribute = true, localName = "KPP")
String kpp,
@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT_NUMBER")
@JsonProperty(required = true)
String accountNumber,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_TITLE")
@JsonProperty(required = true)
String bankTitle,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_LOCATION")
@JsonProperty(required = true)
String bankLocation,
@JacksonXmlProperty(isAttribute = true, localName = "BIK")
@JsonProperty(required = true)
String bik,
@JacksonXmlProperty(isAttribute = true, localName = "CORRESPONDENT_ACCOUNT_NUMBER")
@JsonProperty(required = true)
String correspondentAccountNumber,
@JacksonXmlProperty(isAttribute = true, localName = "REASON")
@JsonProperty(required = true)
String reason,
@JacksonXmlProperty(isAttribute = true, localName = "EXCLUSION_DATE")
String exclusionDate) {
this.currency = currency;
this.beneficiaryName = beneficiaryName;
this.beneficiaryAccount = beneficiaryAccount;
this.kbk = kbk;
this.oktmo = oktmo;
this.inn = inn;
this.kpp = kpp;
this.accountNumber = accountNumber;
this.bankTitle = bankTitle;
this.bankLocation = bankLocation;
this.bik = bik;
this.correspondentAccountNumber = correspondentAccountNumber;
this.reason = reason;
this.exclusionDate = exclusionDate;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RubleAccountTag that = (RubleAccountTag) o;
return Objects.equals(currency, that.currency) && Objects.equals(beneficiaryName, that.beneficiaryName) && Objects.equals(beneficiaryAccount, that.beneficiaryAccount) && Objects.equals(kbk, that.kbk) && Objects.equals(oktmo, that.oktmo) && Objects.equals(inn, that.inn) && Objects.equals(kpp, that.kpp) && Objects.equals(accountNumber, that.accountNumber) && Objects.equals(bankTitle, that.bankTitle) && Objects.equals(bankLocation, that.bankLocation) && Objects.equals(bik, that.bik) && Objects.equals(correspondentAccountNumber, that.correspondentAccountNumber) && Objects.equals(reason, that.reason) && Objects.equals(exclusionDate, that.exclusionDate);
}
@Override
public int hashCode() {
return Objects.hash(currency, beneficiaryName, beneficiaryAccount, kbk, oktmo, inn, kpp, accountNumber, bankTitle, bankLocation, bik, correspondentAccountNumber, reason, exclusionDate);
}
@Override
public String toString() {
return "AccountTag{" +
"currency='" + currency + '\'' +
", beneficiaryName='" + beneficiaryName + '\'' +
", beneficiaryAccount='" + beneficiaryAccount + '\'' +
", kbk='" + kbk + '\'' +
", oktmo='" + oktmo + '\'' +
", inn='" + inn + '\'' +
", kpp='" + kpp + '\'' +
", accountNumber='" + accountNumber + '\'' +
", bankTitle='" + bankTitle + '\'' +
", bankLocation='" + bankLocation + '\'' +
", bik='" + bik + '\'' +
", correspondentAccountNumber='" + correspondentAccountNumber + '\'' +
", reason='" + reason + '\'' +
", exclusionDate='" + exclusionDate + '\'' +
'}';
}
}

View file

@ -0,0 +1,60 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.accounttags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class RubleDebitingAccountTag {
private final String amount;
private final String currency;
private final String inn;
private final String beneficiaryAccountNumber;
private final String bik;
private final String bankCorrespondentAccountNumber;
@JsonCreator
public RubleDebitingAccountTag(@JacksonXmlProperty(isAttribute = true, localName = "AMOUNT")
String amount,
@JacksonXmlProperty(isAttribute = true, localName = "CURRENCY")
String currency,
@JacksonXmlProperty(isAttribute = true, localName = "INN")
String inn,
@JacksonXmlProperty(isAttribute = true, localName = "BENEFICIARY_ACCOUNT_NUMBER")
String beneficiaryAccountNumber,
@JacksonXmlProperty(isAttribute = true, localName = "BIK")
String bik,
@JacksonXmlProperty(isAttribute = true, localName = "BANK_CORRESPONDENT_ACCOUNT_NUMBER")
String bankCorrespondentAccountNumber) {
this.amount = amount;
this.currency = currency;
this.inn = inn;
this.beneficiaryAccountNumber = beneficiaryAccountNumber;
this.bik = bik;
this.bankCorrespondentAccountNumber = bankCorrespondentAccountNumber;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RubleDebitingAccountTag that = (RubleDebitingAccountTag) o;
return Objects.equals(amount, that.amount) && Objects.equals(currency, that.currency) && Objects.equals(inn, that.inn) && Objects.equals(beneficiaryAccountNumber, that.beneficiaryAccountNumber) && Objects.equals(bik, that.bik) && Objects.equals(bankCorrespondentAccountNumber, that.bankCorrespondentAccountNumber);
}
@Override
public int hashCode() {
return Objects.hash(amount, currency, inn, beneficiaryAccountNumber, bik, bankCorrespondentAccountNumber);
}
@Override
public String toString() {
return "RubleDebitingAccountTag{" +
"amount='" + amount + '\'' +
", currency='" + currency + '\'' +
", inn='" + inn + '\'' +
", beneficiaryAccountNumber='" + beneficiaryAccountNumber + '\'' +
", bik='" + bik + '\'' +
", bankCorrespondentAccountNumber='" + bankCorrespondentAccountNumber + '\'' +
'}';
}
}

View file

@ -0,0 +1,35 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.clienttags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class ClientTag {
private final String clientName;
@JsonCreator
public ClientTag(@JacksonXmlProperty(isAttribute = true, localName = "CLIENT_NAME")
String clientName) {
this.clientName = clientName;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ClientTag clientTag = (ClientTag) o;
return Objects.equals(clientName, clientTag.clientName);
}
@Override
public int hashCode() {
return Objects.hashCode(clientName);
}
@Override
public String toString() {
return "ClientTag{" +
"clientName='" + clientName + '\'' +
'}';
}
}

View file

@ -0,0 +1,40 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.clienttags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class ForeignCurrencyDebitingClientTag {
private final String clientName;
private final String debitingAmount;
@JsonCreator
public ForeignCurrencyDebitingClientTag(@JacksonXmlProperty(isAttribute = true, localName = "CLIENT_NAME")
String clientName,
@JacksonXmlProperty(isAttribute = true, localName = "DEBITING_AMOUNT")
String debitingAmount) {
this.clientName = clientName;
this.debitingAmount = debitingAmount;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ForeignCurrencyDebitingClientTag that = (ForeignCurrencyDebitingClientTag) o;
return Objects.equals(clientName, that.clientName) && Objects.equals(debitingAmount, that.debitingAmount);
}
@Override
public int hashCode() {
return Objects.hash(clientName, debitingAmount);
}
@Override
public String toString() {
return "ForeignCurrencyDebitingClientTag{" +
"clientName='" + clientName + '\'' +
", debitingAmount='" + debitingAmount + '\'' +
'}';
}
}

View file

@ -0,0 +1,63 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.documenttags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.Objects;
public class DocumentTag {
private final String author;
private final LocalTime time;
private final LocalDate date;
private final String name;
private final String documentId;
@JsonCreator
public DocumentTag(@JsonProperty(required = true)
@JacksonXmlProperty(isAttribute = true, localName = "AUTHOR")
String author,
@JsonProperty(required = true)
@JacksonXmlProperty(isAttribute = true, localName = "TIME")
LocalTime time,
@JsonProperty(required = true)
@JacksonXmlProperty(isAttribute = true, localName = "DATE")
LocalDate date,
@JsonProperty(required = true)
@JacksonXmlProperty(isAttribute = true, localName = "NAME")
String name,
@JsonProperty(required = true)
@JacksonXmlProperty(isAttribute = true, localName = "DOCUMENT_ID")
String documentId) {
this.author = author;
this.time = time;
this.date = date;
this.name = name;
this.documentId = documentId;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DocumentTag that = (DocumentTag) o;
return Objects.equals(author, that.author) && Objects.equals(time, that.time) && Objects.equals(date, that.date) && Objects.equals(name, that.name) && Objects.equals(documentId, that.documentId);
}
@Override
public int hashCode() {
return Objects.hash(author, time, date, name, documentId);
}
@Override
public String toString() {
return "DocumentTag{" +
"author='" + author + '\'' +
", time=" + time +
", date=" + date +
", name='" + name + '\'' +
", documentId='" + documentId + '\'' +
'}';
}
}

View file

@ -0,0 +1,41 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.documenttags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.time.LocalDate;
import java.util.Objects;
public class ForeignCurrencyDebitingDocumentTag {
private final String documentId;
private final LocalDate date;
@JsonCreator
public ForeignCurrencyDebitingDocumentTag(@JacksonXmlProperty(isAttribute = true, localName = "DOCUMENT_ID")
String documentId,
@JacksonXmlProperty(isAttribute = true, localName = "DATE")
LocalDate date) {
this.documentId = documentId;
this.date = date;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ForeignCurrencyDebitingDocumentTag that = (ForeignCurrencyDebitingDocumentTag) o;
return Objects.equals(documentId, that.documentId) && Objects.equals(date, that.date);
}
@Override
public int hashCode() {
return Objects.hash(documentId, date);
}
@Override
public String toString() {
return "ForeignCurrencyDebitingDocumentTag{" +
"documentId='" + documentId + '\'' +
", date=" + date +
'}';
}
}

View file

@ -0,0 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.firmdoctags;
public abstract class AbstractFirmDocTag {
}

View file

@ -0,0 +1,68 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.firmdoctags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import java.util.Objects;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.accounttags.ForeignCurrencyDebitingAccountTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.clienttags.ForeignCurrencyDebitingClientTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.documenttags.ForeignCurrencyDebitingDocumentTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.registratortags.DebitingRegistratorTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.respondtags.DebitingRespondTag;
@JacksonXmlRootElement(localName = "FIRM_DOC")
public class ForeignCurrencyDebitingFirmDocTag extends AbstractFirmDocTag {
private final ForeignCurrencyDebitingDocumentTag document;
private final DebitingRegistratorTag registrator;
private final ForeignCurrencyDebitingClientTag client;
private final ForeignCurrencyDebitingAccountTag account;
private final DebitingRespondTag respond;
@JsonCreator
public ForeignCurrencyDebitingFirmDocTag(@JacksonXmlProperty(localName = "DOCUMENT")
@JsonProperty(required = true)
ForeignCurrencyDebitingDocumentTag document,
@JacksonXmlProperty(localName = "REGISTRATOR")
@JsonProperty(required = true)
DebitingRegistratorTag registrator,
@JacksonXmlProperty(localName = "CLIENT")
@JsonProperty(required = true)
ForeignCurrencyDebitingClientTag client,
@JacksonXmlProperty(localName = "ACCOUNT")
@JsonProperty(required = true)
ForeignCurrencyDebitingAccountTag account,
@JacksonXmlProperty(localName = "RESPOND")
@JsonProperty(required = true)
DebitingRespondTag respond) {
this.document = document;
this.registrator = registrator;
this.client = client;
this.account = account;
this.respond = respond;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ForeignCurrencyDebitingFirmDocTag that = (ForeignCurrencyDebitingFirmDocTag) o;
return Objects.equals(document, that.document) && Objects.equals(registrator, that.registrator) && Objects.equals(client, that.client) && Objects.equals(account, that.account) && Objects.equals(respond, that.respond);
}
@Override
public int hashCode() {
return Objects.hash(document, registrator, client, account, respond);
}
@Override
public String toString() {
return "ForeignCurrencyDebitingFirmDocTag{" +
"document=" + document +
", registrator=" + registrator +
", client=" + client +
", account=" + account +
", respond=" + respond +
'}';
}
}

View file

@ -0,0 +1,68 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.firmdoctags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import java.util.Objects;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.accounttags.ForeignCurrencyAccountTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.clienttags.ClientTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.documenttags.DocumentTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.registratortags.RegistratorTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.respondtags.RespondTag;
@JacksonXmlRootElement(localName = "FIRM_DOC")
public class ForeignCurrencyFirmDocTag extends AbstractFirmDocTag {
private final DocumentTag document;
private final RegistratorTag registrator;
private final ClientTag client;
private final ForeignCurrencyAccountTag account;
private final RespondTag respond;
@JsonCreator
public ForeignCurrencyFirmDocTag(@JacksonXmlProperty(localName = "DOCUMENT")
@JsonProperty(required = true)
DocumentTag document,
@JacksonXmlProperty(localName = "REGISTRATOR")
@JsonProperty(required = true)
RegistratorTag registrator,
@JacksonXmlProperty(localName = "CLIENT")
@JsonProperty(required = true)
ClientTag client,
@JacksonXmlProperty(localName = "ACCOUNT")
@JsonProperty(required = true)
ForeignCurrencyAccountTag account,
@JacksonXmlProperty(localName = "RESPOND")
@JsonProperty(required = true)
RespondTag respond) {
this.document = document;
this.registrator = registrator;
this.client = client;
this.account = account;
this.respond = respond;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ForeignCurrencyFirmDocTag that = (ForeignCurrencyFirmDocTag) o;
return Objects.equals(document, that.document) && Objects.equals(registrator, that.registrator) && Objects.equals(client, that.client) && Objects.equals(account, that.account) && Objects.equals(respond, that.respond);
}
@Override
public int hashCode() {
return Objects.hash(document, registrator, client, account, respond);
}
@Override
public String toString() {
return "ForeignCurrencyFirmDocTag{" +
"document=" + document +
", registrator=" + registrator +
", client=" + client +
", account=" + account +
", respond=" + respond +
'}';
}
}

View file

@ -0,0 +1,68 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.firmdoctags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import java.util.Objects;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.clienttags.ClientTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.documenttags.DocumentTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.accounttags.RubleDebitingAccountTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.registratortags.DebitingRegistratorTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.respondtags.DebitingRespondTag;
@JacksonXmlRootElement(localName = "FIRM_DOC")
public class RubleDebitingFirmDocTag extends AbstractFirmDocTag {
private final DocumentTag document;
private final DebitingRegistratorTag registrator;
private final ClientTag client;
private final RubleDebitingAccountTag account;
private final DebitingRespondTag respond;
@JsonCreator
public RubleDebitingFirmDocTag(@JacksonXmlProperty(localName = "DOCUMENT")
@JsonProperty(required = true)
DocumentTag document,
@JacksonXmlProperty(localName = "REGISTRATOR")
@JsonProperty(required = true)
DebitingRegistratorTag registrator,
@JacksonXmlProperty(localName = "CLIENT")
@JsonProperty(required = true)
ClientTag client,
@JacksonXmlProperty(localName = "ACCOUNT")
@JsonProperty(required = true)
RubleDebitingAccountTag account,
@JacksonXmlProperty(localName = "RESPOND")
@JsonProperty(required = true)
DebitingRespondTag respond) {
this.document = document;
this.registrator = registrator;
this.client = client;
this.account = account;
this.respond = respond;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RubleDebitingFirmDocTag that = (RubleDebitingFirmDocTag) o;
return Objects.equals(document, that.document) && Objects.equals(registrator, that.registrator) && Objects.equals(client, that.client) && Objects.equals(account, that.account) && Objects.equals(respond, that.respond);
}
@Override
public int hashCode() {
return Objects.hash(document, registrator, client, account, respond);
}
@Override
public String toString() {
return "RubleDebitingFirmDocTag{" +
"document=" + document +
", registrator=" + registrator +
", client=" + client +
", account=" + account +
", respond=" + respond +
'}';
}
}

View file

@ -0,0 +1,68 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.firmdoctags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import java.util.Objects;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.accounttags.RubleAccountTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.clienttags.ClientTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.documenttags.DocumentTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.registratortags.RegistratorTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.respondtags.RespondTag;
@JacksonXmlRootElement(localName = "FIRM_DOC")
public class RubleFirmDocTag extends AbstractFirmDocTag {
private final DocumentTag document;
private final RegistratorTag registrator;
private final ClientTag client;
private final RubleAccountTag account;
private final RespondTag respond;
@JsonCreator
public RubleFirmDocTag(@JacksonXmlProperty(localName = "DOCUMENT")
@JsonProperty(required = true)
DocumentTag document,
@JacksonXmlProperty(localName = "REGISTRATOR")
@JsonProperty(required = true)
RegistratorTag registrator,
@JacksonXmlProperty(localName = "CLIENT")
@JsonProperty(required = true)
ClientTag client,
@JacksonXmlProperty(localName = "ACCOUNT")
@JsonProperty(required = true)
RubleAccountTag account,
@JacksonXmlProperty(localName = "RESPOND")
@JsonProperty(required = true)
RespondTag respond) {
this.document = document;
this.registrator = registrator;
this.client = client;
this.account = account;
this.respond = respond;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RubleFirmDocTag that = (RubleFirmDocTag) o;
return Objects.equals(document, that.document) && Objects.equals(registrator, that.registrator) && Objects.equals(client, that.client) && Objects.equals(account, that.account) && Objects.equals(respond, that.respond);
}
@Override
public int hashCode() {
return Objects.hash(document, registrator, client, account, respond);
}
@Override
public String toString() {
return "FirmDocTag{" +
"document=" + document +
", registrator=" + registrator +
", client=" + client +
", account=" + account +
", respond=" + respond +
'}';
}
}

View file

@ -0,0 +1,47 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.registratortags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class DebitingRegistratorTag {
private final String firmId;
private final String name;
private final String tkr;
@JsonCreator
public DebitingRegistratorTag(@JacksonXmlProperty(isAttribute = true, localName = "FIRMID")
String firmId,
@JacksonXmlProperty(isAttribute = true, localName = "NAME")
String name,
@JacksonXmlProperty(isAttribute = true, localName = "TKR")
@JsonProperty(required = true)
String tkr) {
this.firmId = firmId;
this.name = name;
this.tkr = tkr;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DebitingRegistratorTag that = (DebitingRegistratorTag) o;
return Objects.equals(firmId, that.firmId) && Objects.equals(name, that.name) && Objects.equals(tkr, that.tkr);
}
@Override
public int hashCode() {
return Objects.hash(firmId, name, tkr);
}
@Override
public String toString() {
return "DebitingRegistratorTag{" +
"firmId='" + firmId + '\'' +
", name='" + name + '\'' +
", tkr='" + tkr + '\'' +
'}';
}
}

View file

@ -0,0 +1,43 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.registratortags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class RegistratorTag {
private final String firmId;
private final String name;
@JsonCreator
public RegistratorTag(@JacksonXmlProperty(isAttribute = true, localName = "FIRMID")
@JsonProperty(required = true)
String firmId,
@JacksonXmlProperty(isAttribute = true, localName = "NAME")
@JsonProperty(required = true)
String name) {
this.firmId = firmId;
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RegistratorTag that = (RegistratorTag) o;
return Objects.equals(firmId, that.firmId) && Objects.equals(name, that.name);
}
@Override
public int hashCode() {
return Objects.hash(firmId, name);
}
@Override
public String toString() {
return "RegistratorTag{" +
"firmId='" + firmId + '\'' +
", name='" + name + '\'' +
'}';
}
}

View file

@ -0,0 +1,46 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.respondtags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.time.LocalDate;
import java.util.Objects;
public class DebitingRespondTag {
private final LocalDate date;
private final String respondResult;
private final String reason;
@JsonCreator
public DebitingRespondTag(@JacksonXmlProperty(isAttribute = true, localName = "DATE")
LocalDate date,
@JacksonXmlProperty(isAttribute = true, localName = "RESPOND_RESULT")
String respondResult,
@JacksonXmlProperty(isAttribute = true, localName = "REASON")
String reason) {
this.date = date;
this.respondResult = respondResult;
this.reason = reason;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DebitingRespondTag that = (DebitingRespondTag) o;
return Objects.equals(date, that.date) && Objects.equals(respondResult, that.respondResult) && Objects.equals(reason, that.reason);
}
@Override
public int hashCode() {
return Objects.hash(date, respondResult, reason);
}
@Override
public String toString() {
return "DebitingRespondTag{" +
"date=" + date +
", respondResult='" + respondResult + '\'' +
", reason='" + reason + '\'' +
'}';
}
}

View file

@ -0,0 +1,35 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.respondtags;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;
public class RespondTag {
private final String accountStatus;
@JsonCreator
public RespondTag(@JacksonXmlProperty(isAttribute = true, localName = "ACCOUNT_STATUS")
String accountStatus) {
this.accountStatus = accountStatus;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RespondTag that = (RespondTag) o;
return Objects.equals(accountStatus, that.accountStatus);
}
@Override
public int hashCode() {
return Objects.hashCode(accountStatus);
}
@Override
public String toString() {
return "RespondTag{" +
"accountStatus='" + accountStatus + '\'' +
'}';
}
}

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
@ -8,7 +8,7 @@ import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;
import java.util.Objects;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.ObjectTag;
import ru.spcex.platform.classes.base.SpcexObjectBase;
@JacksonXmlRootElement(localName = "DOCUMENT")

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import java.util.Objects;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

View file

@ -1,4 +1,4 @@
package ru.spcex.clearing.xml.importer.logic.data.tags.objects;
package ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;

View file

@ -38,16 +38,16 @@ public class ChangeDirOfFileStage {
File xmlFile = resultContainer.getXmlFile();
if (!srcDir.exists()) {
log.error("SettlementHouse_DocIn does not exists!");
log.error("Source directory does not exists!");
notifyWithCode(resultContainer, StageResult.ERROR);
return StageResult.ERROR;
}
if (!outDir.exists()) {
log.warn("ouput directory {} does not exists! Trying to made new!", outDir.getAbsolutePath());
log.warn("Output directory {} does not exists! Trying to create...", outDir.getAbsolutePath());
if (outDir.mkdir()) {
log.error("Made dir {} successfully!", outDir.getName());
log.error("Made directory {} successfully!", outDir.getName());
} else {
log.error("SettlementHouse_DocIn does not exists!");
log.error("Error raised while creating directory!");
notifyWithCode(resultContainer, StageResult.ERROR);
return StageResult.ERROR;
}

View file

@ -7,8 +7,8 @@ import ru.clearing.classes.statics.data.sdf.SDf57;
import ru.spcex.clearing.xml.importer.logic.data.ResultContainer;
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.clearing.xml.importer.logic.data.tags.sdf.DocumentTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.ObjectTag;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import ru.spcex.platform.enumeration.ObjectType;
import ru.spcex.platform.enumeration.Priority;
@ -28,6 +28,17 @@ public class ImportToDB {
public StageResult process(ResultContainer resultContainer) {
log.info("uuid {}. Stage: Import to DB", resultContainer.getUuid());
switch (resultContainer.getXmlTable().getFileType()) {
case SDF -> processSDf(resultContainer);
case ACCOUNT_LIST -> processAccountList(resultContainer);
}
log.info("uuid {}. Stage import to DB finished with status {}", resultContainer.getUuid(), StageResult.OK);
return StageResult.OK;
}
private void processSDf(ResultContainer resultContainer) {
ETable currTable = resultContainer.getXmlTable();
DocumentTag documentTag = resultContainer.getDocumentTag();
@ -53,8 +64,9 @@ public class ImportToDB {
}
kafkaMessenger.notifySystemIfNeeded(currTable, fileId);
kafkaMessenger.notifyUserAboutSuccessLoad(resultContainer);
}
log.info("uuid {}. Stage import to DB finished with status {}", resultContainer.getUuid(), StageResult.OK);
return StageResult.OK;
private void processAccountList(ResultContainer resultContainer) {
log.info("RESULT CONTAINER = {}", resultContainer);
}
}

View file

@ -8,7 +8,11 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import ru.spcex.clearing.xml.importer.logic.data.ResultContainer;
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.accountlist.firmdoctags.ForeignCurrencyDebitingFirmDocTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.firmdoctags.ForeignCurrencyFirmDocTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.firmdoctags.RubleDebitingFirmDocTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.accountlist.firmdoctags.RubleFirmDocTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.DocumentTag;
import ru.spcex.platform.utils.log.ExceptionUtils;
@Component
@ -26,7 +30,24 @@ public class ReadXMLFile {
public StageResult process(ResultContainer resultContainer) {
log.info("uuid {}. Stage: Reading XML file", resultContainer.getUuid());
try {
resultContainer.setDocumentTag(xmlMapper.readValue(resultContainer.getXmlFile(), DocumentTag.class));
switch (resultContainer.getXmlTable().getFileType()) {
case SDF ->
resultContainer.setDocumentTag(xmlMapper.readValue(resultContainer.getXmlFile(), DocumentTag.class));
case ACCOUNT_LIST -> resultContainer.setFirmDocTag(
switch (resultContainer.getXmlTable()) {
case RUBLE_FIRMDOC ->
xmlMapper.readValue(resultContainer.getXmlFile(), RubleFirmDocTag.class);
case RUBLE_DEBITING_FIRMDOC ->
xmlMapper.readValue(resultContainer.getXmlFile(), RubleDebitingFirmDocTag.class);
case FOREIGN_CURRENCY_FIRMDOC ->
xmlMapper.readValue(resultContainer.getXmlFile(), ForeignCurrencyFirmDocTag.class);
case FOREIGN_CURRENCY_DEBITING_FIRMDOC ->
xmlMapper.readValue(resultContainer.getXmlFile(), ForeignCurrencyDebitingFirmDocTag.class);
default ->
throw new IllegalStateException("Unexpected value: " + resultContainer.getXmlTable());
}
);
}
return StageResult.OK;
} catch (IOException e) {
log.error(ExceptionUtils.getStackTrace(e));

View file

@ -19,6 +19,7 @@ import ru.spcex.clearing.platform.messaging.serialization.LogFormatter;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.clearing.xml.importer.logic.data.ResultContainer;
import ru.spcex.clearing.xml.importer.logic.data.enums.ETable;
import ru.spcex.clearing.xml.importer.logic.data.enums.FileType;
import ru.spcex.clearing.xml.importer.logic.data.enums.StageResult;
import ru.spcex.platform.enumeration.ObjectType;
import ru.spcex.platform.enumeration.Priority;
@ -50,9 +51,11 @@ public class XmlImportKafkaMessenger implements InitializingBean {
* (обрабатывается, например, в balance-service, clearing-service)
*/
public void notifySystemIfNeeded(ETable table, Long groupId) {
Consumer<Long> messenger = messengers.get(table);
if (messenger != null) {
messenger.accept(groupId);
if (table.getFileType() != FileType.ACCOUNT_LIST) {
Consumer<Long> messenger = messengers.get(table);
if (messenger != null) {
messenger.accept(groupId);
}
}
}

View file

@ -39,14 +39,14 @@ import ru.spcex.clearing.xml.importer.config.settings.ImportXMLServiceSettings;
import ru.spcex.clearing.xml.importer.logic.data.ResultContainer;
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.ParentDocTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF01ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF04ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF06ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF52ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF55ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF57ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.DocumentTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.ParentDocTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF01ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF04ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF06ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF52ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF55ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF57ObjectTag;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;

View file

@ -20,13 +20,13 @@ import ru.spcex.clearing.xml.importer.config.settings.ImportXMLServiceSettings;
import ru.spcex.clearing.xml.importer.logic.data.ResultContainer;
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.DF01ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF04ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF06ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF52ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF55ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.objects.DF57ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.DocumentTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF01ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF04ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF06ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF52ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF55ObjectTag;
import ru.spcex.clearing.xml.importer.logic.data.tags.sdf.objects.DF57ObjectTag;
@SpringBootTest(classes = {
ReadXMLFile.class,