reports-service, classes for reports (not complete)

This commit is contained in:
akulikov 2022-09-02 18:03:27 +03:00
parent 2fc1528da3
commit fd031f9bd2
20 changed files with 1044 additions and 48 deletions

View file

@ -16,6 +16,6 @@ public class ReportsServiceApplication {
System.exit(-1);
}
ReportsService reportsService = new ReportsService();
reportsService.writeXML(null);
reportsService.writeXML();
}
}

View file

@ -0,0 +1,85 @@
package ru.spcex.clearing.reports_service.reports;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamConverter;
import ru.spcex.clearing.reports_service.xml_test.FormattedLocalDateConverter;
import java.time.LocalDate;
/**
* Общая шапка (атрибуты) для всех отчетов
*/
public class AbstractReport {
@XStreamAsAttribute
@XStreamAlias("version")
private String version;
@XStreamAsAttribute
@XStreamAlias("code")
private String code;
@XStreamAsAttribute
@XStreamAlias("name")
private String name;
@XStreamAsAttribute
@XStreamAlias("startDate")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private LocalDate startDate;
@XStreamAsAttribute
@XStreamAlias("endDate")
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private LocalDate endDate;
public AbstractReport(String version, String code, String name, LocalDate startDate, LocalDate endDate) {
this.version = version;
this.code = code;
this.name = name;
this.startDate = startDate;
this.endDate = endDate;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public LocalDate getStartDate() {
return startDate;
}
public void setStartDate(LocalDate startDate) {
this.startDate = startDate;
}
public LocalDate getEndDate() {
return endDate;
}
public void setEndDate(LocalDate endDate) {
this.endDate = endDate;
}
}

View file

@ -0,0 +1,66 @@
package ru.spcex.clearing.reports_service.reports.bt_17_1;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@XStreamAlias("report")
public class ReportBR_0420315_P1 extends AbstractReport {
@XStreamAlias("rows")
private final List<Info_0420315_P1> rows = new ArrayList<>();
public ReportBR_0420315_P1(LocalDate startDate,
LocalDate endDate) {
super("0.0.1",
"0420315",
"Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период",
startDate,
endDate);
}
public List<Info_0420315_P1> getRows() {
return rows;
}
@XStreamAlias("row")
public static class Info_0420315_P1 {
@XStreamAlias("company_id")
@XStreamAsAttribute
private String companyId;
@XStreamAlias("company_fullName")
@XStreamAsAttribute
private String companyFullName;
@XStreamAlias("listing_market")
@XStreamAsAttribute
private String listingMarket;
@XStreamAlias("contract_qty")
@XStreamAsAttribute
private String contractQty;
@XStreamAlias("liabilities_amount")
@XStreamAsAttribute
private String liabilitiesAmount;
public Info_0420315_P1(String companyId,
String companyFullName,
String listingMarket,
String contractQty,
String liabilitiesAmount) {
this.companyId = companyId;
this.companyFullName = companyFullName;
this.listingMarket = listingMarket;
this.contractQty = contractQty;
this.liabilitiesAmount = liabilitiesAmount;
}
}
}

View file

@ -0,0 +1,63 @@
package ru.spcex.clearing.reports_service.reports.bt_17_1;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420315_P2 extends AbstractReport {
@XStreamAlias("total")
private final Info_0420315_P2 total;
public ReportBR_0420315_P2(LocalDate startDate, LocalDate endDate, String contractQty, String liabilitiesAmount) {
super("0.0.1",
"0420315",
"Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период",
startDate,
endDate);
total = new Info_0420315_P2(contractQty, liabilitiesAmount);
}
public Info_0420315_P2 getTotal() {
return total;
}
public static class Info_0420315_P2 {
@XStreamAlias("contract_qty")
@XStreamAsAttribute
private String contractQty;
@XStreamAlias("liabilities_amount")
@XStreamAsAttribute
private String liabilitiesAmount;
public Info_0420315_P2(String contractQty, String liabilitiesAmount) {
this.contractQty = contractQty;
this.liabilitiesAmount = liabilitiesAmount;
}
public String getContractQty() {
return contractQty;
}
public void setContractQty(String contractQty) {
this.contractQty = contractQty;
}
public String getLiabilitiesAmount() {
return liabilitiesAmount;
}
public void setLiabilitiesAmount(String liabilitiesAmount) {
this.liabilitiesAmount = liabilitiesAmount;
}
}
}

View file

@ -0,0 +1,83 @@
package ru.spcex.clearing.reports_service.reports.bt_17_2;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@XStreamAlias("report")
public class ReportBR_0420317 extends AbstractReport {
@XStreamAlias("rows")
private final List<Info_0420317> rows = new ArrayList<>();
public ReportBR_0420317(LocalDate startDate, LocalDate endDate) {
super("0.0.1",
"0420317",
"Сведения о предоставлении, прекращении, приостановке," +
" возобновлении допуска к клиринговому обслуживанию",
startDate,
endDate);
}
public List<Info_0420317> getRows() {
return rows;
}
@XStreamAlias("row")
public static class Info_0420317 {
@XStreamAsAttribute
@XStreamAlias("relation_supplierId")
private String relationSupplierId;
@XStreamAsAttribute
@XStreamAlias("relation_serviceId")
private String relationServiceId;
@XStreamAsAttribute
@XStreamAlias("relation_serviceStatus")
private String relationServiceStatus;
@XStreamAsAttribute
@XStreamAlias("relation_updatedAt")
private String relationUpdatedAt;
@XStreamAsAttribute
@XStreamAlias("company_fullName")
private String companyFullName;
@XStreamAsAttribute
@XStreamAlias("companySymbol_code")
private String companySymbolCode;
@XStreamAsAttribute
@XStreamAlias("companyInfo_countryCode")
private String companyInfoCountryCode;
@XStreamAsAttribute
@XStreamAlias("relation_comment")
private String relationComment;
public Info_0420317(String relationSupplierId,
String relationServiceId,
String relationServiceStatus,
String relationUpdatedAt,
String companyFullName,
String companySymbolCode,
String companyInfoCountryCode,
String relationComment) {
this.relationSupplierId = relationSupplierId;
this.relationServiceId = relationServiceId;
this.relationServiceStatus = relationServiceStatus;
this.relationUpdatedAt = relationUpdatedAt;
this.companyFullName = companyFullName;
this.companySymbolCode = companySymbolCode;
this.companyInfoCountryCode = companyInfoCountryCode;
this.relationComment = relationComment;
}
}
}

View file

@ -0,0 +1,112 @@
package ru.spcex.clearing.reports_service.reports.bt_17_3;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@XStreamAlias("report")
public class ReportBR_0420318 extends AbstractReport {
@XStreamAlias("rows")
private final List<Info_0420318> rows = new ArrayList<>();
public ReportBR_0420318(LocalDate startDate, LocalDate endDate) {
super("0.0.3",
"0420318",
"Сведения о неисполненных обязательствах",
startDate,
endDate);
}
public List<Info_0420318> getRows() {
return rows;
}
@XStreamAlias("row")
public static class Info_0420318 {
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_fullName")
private String liabilitiesClaimsAssetsFullName;
@XStreamAsAttribute
@XStreamAlias("CompanySymbols_code")
private String companySymbolsCode;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_countryCode")
private String liabilitiesClaimsAssetsCountryCode;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_settlementDate")
private String liabilitiesClaimsAssetsSettlementDate;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_accountType")
private String liabilitiesClaimsAssetsAccountType;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_Contract")
private String liabilitiesClaimsAssetsContract;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsMoney_currencyCode")
private String liabilitiesClaimsMoneyCurrencyCode;
@XStreamAsAttribute
@XStreamAlias("liabilitiesAmount_amount")
private String liabilitiesAmountAmount;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsMoney_name")
private String liabilitiesClaimsMoneyName;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_liabilities")
private String liabilitiesClaimsAssetsLiabilities;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_comment")
private String liabilitiesClaimsAssetsComment;
@XStreamAsAttribute
@XStreamAlias("companySymbol_value")
private String companySymbolValue;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_fullNames")
private String liabilitiesClaimsAssetsFullNames;
public Info_0420318(String liabilitiesClaimsAssetsFullName,
String companySymbolsCode,
String liabilitiesClaimsAssetsCountryCode,
String liabilitiesClaimsAssetsSettlementDate,
String liabilitiesClaimsAssetsAccountType,
String liabilitiesClaimsAssetsContract,
String liabilitiesClaimsMoneyCurrencyCode,
String liabilitiesAmountAmount,
String liabilitiesClaimsMoneyName,
String liabilitiesClaimsAssetsLiabilities,
String liabilitiesClaimsAssetsComment,
String companySymbolValue,
String liabilitiesClaimsAssetsFullNames) {
this.liabilitiesClaimsAssetsFullName = liabilitiesClaimsAssetsFullName;
this.companySymbolsCode = companySymbolsCode;
this.liabilitiesClaimsAssetsCountryCode = liabilitiesClaimsAssetsCountryCode;
this.liabilitiesClaimsAssetsSettlementDate = liabilitiesClaimsAssetsSettlementDate;
this.liabilitiesClaimsAssetsAccountType = liabilitiesClaimsAssetsAccountType;
this.liabilitiesClaimsAssetsContract = liabilitiesClaimsAssetsContract;
this.liabilitiesClaimsMoneyCurrencyCode = liabilitiesClaimsMoneyCurrencyCode;
this.liabilitiesAmountAmount = liabilitiesAmountAmount;
this.liabilitiesClaimsMoneyName = liabilitiesClaimsMoneyName;
this.liabilitiesClaimsAssetsLiabilities = liabilitiesClaimsAssetsLiabilities;
this.liabilitiesClaimsAssetsComment = liabilitiesClaimsAssetsComment;
this.companySymbolValue = companySymbolValue;
this.liabilitiesClaimsAssetsFullNames = liabilitiesClaimsAssetsFullNames;
}
}
}

View file

@ -0,0 +1,82 @@
package ru.spcex.clearing.reports_service.reports.bt_17_4;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@XStreamAlias("report")
public class ReportBR_0420314_P1 extends AbstractReport {
@XStreamAlias("rows")
private final List<Info_0420314_P1> rows = new ArrayList<>();
public ReportBR_0420314_P1(LocalDate startDate, LocalDate endDate) {
super("0.0.1",
"0420314",
"Сведения об УК и операциях, проведенных по торговым счетам",
startDate,
endDate);
}
public List<Info_0420314_P1> getRows() {
return rows;
}
@XStreamAlias("partOne")
public static class Info_0420314_P1 {
@XStreamAsAttribute
@XStreamAlias("paymentInstruction_senderId")
private String paymentInstructionSenderId;
@XStreamAsAttribute
@XStreamAlias("profileDocument_id")
private String profileDocumentId;
@XStreamAsAttribute
@XStreamAlias("company_fullName")
private String companyFullName;
@XStreamAsAttribute
@XStreamAlias("companySymbol_code")
private String companySymbolCode;
@XStreamAsAttribute
@XStreamAlias("companySymbol_value")
private String companySymbolValue;
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory_clearingMemberCategory")
private String clearingMemberCategoryClearingMemberCategory;
@XStreamAsAttribute
@XStreamAlias("profileDocument_documentTypeAndValidFromDate")
private String profileDocumentDocumentTypeAndValidFromDate;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity")
private String liabilitiesClaimsAssetsLiabilitiesQuantity;
public Info_0420314_P1(String paymentInstructionSenderId,
String profileDocumentId,
String companyFullName,
String companySymbolCode,
String companySymbolValue,
String clearingMemberCategoryClearingMemberCategory,
String profileDocumentDocumentTypeAndValidFromDate,
String liabilitiesClaimsAssetsLiabilitiesQuantity) {
this.paymentInstructionSenderId = paymentInstructionSenderId;
this.profileDocumentId = profileDocumentId;
this.companyFullName = companyFullName;
this.companySymbolCode = companySymbolCode;
this.companySymbolValue = companySymbolValue;
this.clearingMemberCategoryClearingMemberCategory = clearingMemberCategoryClearingMemberCategory;
this.profileDocumentDocumentTypeAndValidFromDate = profileDocumentDocumentTypeAndValidFromDate;
this.liabilitiesClaimsAssetsLiabilitiesQuantity = liabilitiesClaimsAssetsLiabilitiesQuantity;
}
}
}

View file

@ -0,0 +1,71 @@
package ru.spcex.clearing.reports_service.reports.bt_17_4;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@XStreamAlias("report")
public class ReportBR_0420314_P2 extends AbstractReport {
@XStreamAlias("rows")
private final List<Info_0420314_P2> rows = new ArrayList<>();
public ReportBR_0420314_P2(LocalDate startDate, LocalDate endDate) {
super("0.0.1",
"0420314",
"Сведения об УК и операциях, проведенных по торговым счетам",
startDate,
endDate);
}
public List<Info_0420314_P2> getRows() {
return rows;
}
@XStreamAlias("partTwo")
public static class Info_0420314_P2 {
@XStreamAsAttribute
@XStreamAlias("paymentInstruction_senderId")
private String paymentInstructionSenderId;
@XStreamAsAttribute
@XStreamAlias("profileDocument_id")
private String profileDocumentId;
@XStreamAsAttribute
@XStreamAlias("accountBalance_openBalanceAmount")
private String accountBalanceOpenBalanceAmount;
@XStreamAsAttribute
@XStreamAlias("paymentInstruction_creditLeg_amount")
private String paymentInstructionCreditLegAmount;
@XStreamAsAttribute
@XStreamAlias("paymentInstruction_debitLeg_amount")
private String paymentInstructionDebitLegAmount;
@XStreamAsAttribute
@XStreamAlias("accountBalance_closeBalanceAmount")
private String accountBalanceCloseBalanceAmount;
public Info_0420314_P2(String paymentInstructionSenderId,
String profileDocumentId,
String accountBalanceOpenBalanceAmount,
String paymentInstructionCreditLegAmount,
String paymentInstructionDebitLegAmount,
String accountBalanceCloseBalanceAmount) {
this.paymentInstructionSenderId = paymentInstructionSenderId;
this.profileDocumentId = profileDocumentId;
this.accountBalanceOpenBalanceAmount = accountBalanceOpenBalanceAmount;
this.paymentInstructionCreditLegAmount = paymentInstructionCreditLegAmount;
this.paymentInstructionDebitLegAmount = paymentInstructionDebitLegAmount;
this.accountBalanceCloseBalanceAmount = accountBalanceCloseBalanceAmount;
}
}
}

View file

@ -0,0 +1,77 @@
package ru.spcex.clearing.reports_service.reports.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P1 extends AbstractReport {
@XStreamAlias("partOne")
private final Info_0420312_P1 partOne;
public ReportBR_0420312_P1(LocalDate startDate,
LocalDate endDate,
String liabilitiesClaimsAssetsCompanyId,
String liabilitiesClaimsAssetsFullName,
String companySymbolCode,
String companySymbolValue,
String companyInfoCountryCode,
String clearingMemberCategoryClearingMemberCategory) {
super("0.0.5",
"0420312",
"Сведения о клиринговом обеспечении",
startDate,
endDate);
partOne = new Info_0420312_P1(liabilitiesClaimsAssetsCompanyId,
liabilitiesClaimsAssetsFullName,
companySymbolCode,
companySymbolValue,
companyInfoCountryCode,
clearingMemberCategoryClearingMemberCategory);
}
public static class Info_0420312_P1 {
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_companyId")
private String liabilitiesClaimsAssetsCompanyId;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_fullName")
private String liabilitiesClaimsAssetsFullName;
@XStreamAsAttribute
@XStreamAlias("companySymbol_code")
private String companySymbolCode;
@XStreamAsAttribute
@XStreamAlias("companySymbol_value")
private String companySymbolValue;
@XStreamAsAttribute
@XStreamAlias("companyInfo_countryCode")
private String companyInfoCountryCode;
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory_clearingMemberCategory")
private String clearingMemberCategoryClearingMemberCategory;
public Info_0420312_P1(String liabilitiesClaimsAssetsCompanyId,
String liabilitiesClaimsAssetsFullName,
String companySymbolCode,
String companySymbolValue,
String companyInfoCountryCode,
String clearingMemberCategoryClearingMemberCategory) {
this.liabilitiesClaimsAssetsCompanyId = liabilitiesClaimsAssetsCompanyId;
this.liabilitiesClaimsAssetsFullName = liabilitiesClaimsAssetsFullName;
this.companySymbolCode = companySymbolCode;
this.companySymbolValue = companySymbolValue;
this.companyInfoCountryCode = companyInfoCountryCode;
this.clearingMemberCategoryClearingMemberCategory = clearingMemberCategoryClearingMemberCategory;
}
}
}

View file

@ -0,0 +1,59 @@
package ru.spcex.clearing.reports_service.reports.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P10 extends AbstractReport {
@XStreamAlias("partThree")
private final Info_0420312_P10 partTen;
public ReportBR_0420312_P10(LocalDate startDate,
LocalDate endDate,
String currencyId,
String liabilitiesClaimsAssetsCompanyId,
String liabilitiesClaimsMoneyCurrencyCode,
String liabilitiesClaimsAssetsLiabilities) {
super("0.0.5",
"0420312",
"Сведения о клиринговом обеспечении",
startDate,
endDate);
partTen = new Info_0420312_P10(currencyId,
liabilitiesClaimsAssetsCompanyId,
liabilitiesClaimsMoneyCurrencyCode,
liabilitiesClaimsAssetsLiabilities);
}
public static class Info_0420312_P10 {
@XStreamAsAttribute
@XStreamAlias("currency_id")
private String currencyId;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_companyId")
private String liabilitiesClaimsAssetsCompanyId;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsMoney_currencyCode")
private String liabilitiesClaimsMoneyCurrencyCode;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_liabilities")
private String liabilitiesClaimsAssetsLiabilities;
public Info_0420312_P10(String currencyId,
String liabilitiesClaimsAssetsCompanyId,
String liabilitiesClaimsMoneyCurrencyCode,
String liabilitiesClaimsAssetsLiabilities) {
this.currencyId = currencyId;
this.liabilitiesClaimsAssetsCompanyId = liabilitiesClaimsAssetsCompanyId;
this.liabilitiesClaimsMoneyCurrencyCode = liabilitiesClaimsMoneyCurrencyCode;
this.liabilitiesClaimsAssetsLiabilities = liabilitiesClaimsAssetsLiabilities;
}
}
}

View file

@ -0,0 +1,43 @@
package ru.spcex.clearing.reports_service.reports.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P2 extends AbstractReport {
@XStreamAlias("partTwo")
private final Info_0420312_P2 partTwo;
public ReportBR_0420312_P2(LocalDate startDate,
LocalDate endDate,
String liabilitiesClaimsAssetsCompanyId,
String liabilitiesClaimsAssetsLiabilities) {
super("0.0.5",
"0420312",
"Сведения о клиринговом обеспечении",
startDate,
endDate);
partTwo = new Info_0420312_P2(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities);
}
public static class Info_0420312_P2 {
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_companyId")
private String liabilitiesClaimsAssetsCompanyId;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_liabilities")
private String liabilitiesClaimsAssetsLiabilities;
public Info_0420312_P2(String liabilitiesClaimsAssetsCompanyId,
String liabilitiesClaimsAssetsLiabilities) {
this.liabilitiesClaimsAssetsCompanyId = liabilitiesClaimsAssetsCompanyId;
this.liabilitiesClaimsAssetsLiabilities = liabilitiesClaimsAssetsLiabilities;
}
}
}

View file

@ -0,0 +1,44 @@
package ru.spcex.clearing.reports_service.reports.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P3 extends AbstractReport {
@XStreamAlias("partThree")
private final Info_0420312_P3 partThree;
public ReportBR_0420312_P3(LocalDate startDate,
LocalDate endDate,
String liabilitiesClaimsAssetsCompanyId,
String liabilitiesClaimsAssetsLiabilities) {
super("0.0.5",
"0420312",
"Сведения о клиринговом обеспечении",
startDate,
endDate);
partThree = new Info_0420312_P3(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities);
}
public static class Info_0420312_P3 {
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_companyId")
private String liabilitiesClaimsAssetsCompanyId;
@XStreamAsAttribute
@XStreamAlias("liabilitiesClaimsAssets_fullName")
private String liabilitiesClaimsAssetsLiabilities;
public Info_0420312_P3(String liabilitiesClaimsAssetsCompanyId,
String liabilitiesClaimsAssetsLiabilities) {
this.liabilitiesClaimsAssetsCompanyId = liabilitiesClaimsAssetsCompanyId;
this.liabilitiesClaimsAssetsLiabilities = liabilitiesClaimsAssetsLiabilities;
}
}
}

View file

@ -0,0 +1,36 @@
package ru.spcex.clearing.reports_service.reports.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P4 extends AbstractReport {
@XStreamAlias("partThree")
private final Info_0420312_P4 partFour;
public ReportBR_0420312_P4(LocalDate startDate,
LocalDate endDate,
String liabilitiesAmount) {
super("0.0.5",
"0420312",
"Сведения о клиринговом обеспечении",
startDate,
endDate);
partFour = new Info_0420312_P4(liabilitiesAmount);
}
public static class Info_0420312_P4 {
@XStreamAsAttribute
@XStreamAlias("liabilities_amount")
private String liabilitiesAmount;
public Info_0420312_P4(String liabilitiesAmount) {
this.liabilitiesAmount = liabilitiesAmount;
}
}
}

View file

@ -0,0 +1,35 @@
package ru.spcex.clearing.reports_service.reports.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P5 extends AbstractReport {
@XStreamAlias("partThree")
private final Info_0420312_P5 partFive;
public ReportBR_0420312_P5(LocalDate startDate,
LocalDate endDate,
String liabilitiesAmount) {
super("0.0.5",
"0420312",
"Сведения о клиринговом обеспечении",
startDate,
endDate);
partFive = new Info_0420312_P5(liabilitiesAmount);
}
public static class Info_0420312_P5 {
@XStreamAsAttribute
@XStreamAlias("liabilities_amount")
private String liabilitiesAmount;
public Info_0420312_P5(String liabilitiesAmount) {
this.liabilitiesAmount = liabilitiesAmount;
}
}
}

View file

@ -0,0 +1,35 @@
package ru.spcex.clearing.reports_service.reports.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P6 extends AbstractReport {
@XStreamAlias("partThree")
private final Info_0420312_P6 partSix;
public ReportBR_0420312_P6(LocalDate startDate,
LocalDate endDate,
String liabilitiesAmount) {
super("0.0.5",
"0420312",
"Сведения о клиринговом обеспечении",
startDate,
endDate);
partSix = new Info_0420312_P6(liabilitiesAmount);
}
public static class Info_0420312_P6 {
@XStreamAsAttribute
@XStreamAlias("liabilities_amount")
private String liabilitiesAmount;
public Info_0420312_P6(String liabilitiesAmount) {
this.liabilitiesAmount = liabilitiesAmount;
}
}
}

View file

@ -0,0 +1,35 @@
package ru.spcex.clearing.reports_service.reports.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import ru.spcex.clearing.reports_service.reports.AbstractReport;
import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P8 extends AbstractReport {
@XStreamAlias("partThree")
private final Info_0420312_P8 partEight;
public ReportBR_0420312_P8(LocalDate startDate,
LocalDate endDate,
String liabilitiesAmount) {
super("0.0.5",
"0420312",
"Сведения о клиринговом обеспечении",
startDate,
endDate);
partEight = new Info_0420312_P8(liabilitiesAmount);
}
public static class Info_0420312_P8 {
@XStreamAsAttribute
@XStreamAlias("liabilities_amount")
private String liabilitiesAmount;
public Info_0420312_P8(String liabilitiesAmount) {
this.liabilitiesAmount = liabilitiesAmount;
}
}
}

View file

@ -1,24 +1,89 @@
package ru.spcex.clearing.reports_service.services;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.AbstractDriver;
import ru.spcex.clearing.reports_service.xml_test.ChildElementForWrite;
import ru.spcex.clearing.reports_service.xml_test.CustomLocalDateConverter;
import ru.spcex.clearing.reports_service.xml_test.RootElementForWrite;
import com.thoughtworks.xstream.io.naming.NoNameCoder;
import com.thoughtworks.xstream.io.xml.XppDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.clearing.reports_service.reports.bt_17_1.ReportBR_0420315_P1;
import ru.spcex.clearing.reports_service.reports.bt_17_1.ReportBR_0420315_P2;
import ru.spcex.clearing.reports_service.reports.bt_17_2.ReportBR_0420317;
import ru.spcex.clearing.reports_service.reports.bt_17_3.ReportBR_0420318;
import ru.spcex.clearing.reports_service.reports.bt_17_4.ReportBR_0420314_P1;
import java.time.LocalDate;
public class ReportsService {
public void writeXML(AbstractDriver driver) {
XStream xStream = driver == null ? new XStream() : new XStream(driver);
private final Logger log = LoggerFactory.getLogger(getClass());
// достаточно только для рутового объекта вызвать обработку аннотаций
xStream.processAnnotations(RootElementForWrite.class);
xStream.registerConverter(new CustomLocalDateConverter(), -100);
public void writeXML() {
XStream xStream = new XStream(new XppDriver(new NoNameCoder()));
xStream.processAnnotations(ReportBR_0420315_P1.class);
xStream.processAnnotations(ReportBR_0420315_P2.class);
xStream.processAnnotations(ReportBR_0420317.class);
xStream.processAnnotations(ReportBR_0420318.class);
xStream.processAnnotations(ReportBR_0420314_P1.class);
ReportBR_0420315_P1 reportBR_0420315_p1 = new ReportBR_0420315_P1(LocalDate.now(), LocalDate.now());
ReportBR_0420315_P1.Info_0420315_P1 info_0420315_p1 = new ReportBR_0420315_P1.Info_0420315_P1("companyId",
"companyFullName",
"listingMarket",
"contractorQty",
"liabilitiesAmount");
reportBR_0420315_p1.getRows().add(info_0420315_p1);
log.info("ReportBR_0420315_P1:\n{}\n", xStream.toXML(reportBR_0420315_p1));
ReportBR_0420315_P2 reportBR_0420315_p2 = new ReportBR_0420315_P2(LocalDate.now(),
LocalDate.now(),
"contractorQty",
"liabilitiesAmount");
log.info("ReportBR_0420315_P2:\n{}\n", xStream.toXML(reportBR_0420315_p2));
ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(LocalDate.now(), LocalDate.now());
ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317("relationSupplierId",
"relationServiceId",
"relationServiceStatus",
"relationUpdatedAt",
"companyFullName",
"companySymbolCode",
"companyInfoCountryCode",
"relationComment");
reportBR_0420317.getRows().add(info_0420317);
log.info("ReportBR_0420317:\n{}\n", xStream.toXML(reportBR_0420317));
ReportBR_0420318 reportBR_0420318 = new ReportBR_0420318(LocalDate.now(), LocalDate.now());
ReportBR_0420318.Info_0420318 info_0420318 = new ReportBR_0420318.Info_0420318(
"liabilitiesClaimsAssetsFullName",
"companySymbolsCode",
"liabilitiesClaimsAssetsCountryCode",
"liabilitiesClaimsAssetsSettlementDate",
"liabilitiesClaimsAssetsAccountType",
"liabilitiesClaimsAssetsContract",
"liabilitiesClaimsMoneyCurrencyCode",
"liabilitiesAmountAmount",
"liabilitiesClaimsMoneyName",
"liabilitiesClaimsAssetsLiabilities",
"liabilitiesClaimsAssetsComment",
"companySymbolValue",
"liabilitiesClaimsAssetsFullNames");
reportBR_0420318.getRows().add(info_0420318);
log.info("ReportBR_0420318:\n{}\n", xStream.toXML(reportBR_0420318));
ReportBR_0420314_P1 reportBR_0420314P1 = new ReportBR_0420314_P1(LocalDate.now(), LocalDate.now());
ReportBR_0420314_P1.Info_0420314_P1 info_0420314P1 = new ReportBR_0420314_P1.Info_0420314_P1(
"paymentInstructionSenderId",
"profileDocumentId",
"companyFullName",
"companySymbolCode",
"companySymbolValue",
"clearingMemberCategoryClearingMemberCategory",
"profileDocumentDocumentTypeAndValidFromDate",
"liabilitiesClaimsAssetsLiabilitiesQuantity"
);
reportBR_0420314P1.getRows().add(info_0420314P1);
log.info("ReportBR_0420314:\n{}\n", xStream.toXML(reportBR_0420314P1));
RootElementForWrite elementForWrite = new RootElementForWrite();
elementForWrite.getTestList().add(new ChildElementForWrite());
elementForWrite.getTestList().add(new ChildElementForWrite());
String dataXml = xStream.toXML(elementForWrite);
System.out.println(dataXml);
}
}

View file

@ -1,32 +0,0 @@
package ru.spcex.clearing.reports_service.xml_test;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
import com.thoughtworks.xstream.converters.UnmarshallingContext;
import com.thoughtworks.xstream.io.HierarchicalStreamReader;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
// самый большой минус работы с датами: если у какой то даты отличается формат, для нее нужен кастомный конвертер
public class CustomLocalDateConverter implements Converter {
private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
@Override
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
LocalDate date = (LocalDate) source;
writer.setValue(formatter.format(date));
writer.addAttribute("formatted", "true");
}
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
// not implemented (not used)
return null;
}
@Override
public boolean canConvert(Class type) {
return LocalDate.class.isAssignableFrom(type);
}
}

View file

@ -0,0 +1,37 @@
package ru.spcex.clearing.reports_service.xml_test;
import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Objects;
public class FormattedLocalDateConverter extends AbstractSingleValueConverter {
private final String DEFAULT_PATTERN = "dd.MM.yyyy";
private final DateTimeFormatter formatter;
public FormattedLocalDateConverter() {
formatter = DateTimeFormatter.ofPattern(DEFAULT_PATTERN);
}
public FormattedLocalDateConverter(String pattern) {
formatter = DateTimeFormatter.ofPattern(Objects.requireNonNullElse(pattern, DEFAULT_PATTERN));
}
@Override
public boolean canConvert(Class type) {
return LocalDate.class.isAssignableFrom(type);
}
@Override
public Object fromString(String str) {
// not implemented (not used)
return null;
}
@Override
public String toString(Object obj) {
LocalDate date = (LocalDate) obj;
return date != null ? formatter.format(date) : "";
}
}

View file

@ -29,7 +29,7 @@ public class RootElementForWrite {
private LocalDate testLocalDateDefault = LocalDate.now();
@XStreamConverter(CustomLocalDateConverter.class)
@XStreamConverter(FormattedLocalDateConverter.class)
private LocalDate testLocalDateCustom = LocalDate.now();
private LocalDateTime testLocalDateTime = LocalDateTime.now();