From eed1e94f07854e7842aaf7f8348c596087ec1727 Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 10 May 2023 19:58:18 +0300 Subject: [PATCH] classes for cls-283 --- clearing-parent/reports-service/pom.xml | 10 ++++ .../clearing/reports/reports/ReportId.java | 13 ++++- .../reports/bp/ExecutedDealReport.java | 40 ++++++++++++++ .../OperationalLiabilitiesClaimsReport.java | 53 +++++++++++++++++++ .../bp/OperationalMoneyChangeReport.java | 49 +++++++++++++++++ .../reports/bp/PeriodLiabilitiesClaims.java | 51 ++++++++++++++++++ .../reports/reports/bp/PeriodMoneyChange.java | 46 ++++++++++++++++ .../bp/SummaryLiabilitiesClaimsReport.java | 52 ++++++++++++++++++ .../reports/bp/SummarylMoneyChange.java | 46 ++++++++++++++++ .../reports/bp/UnfulfilledDealReport.java | 39 ++++++++++++++ 10 files changed, 398 insertions(+), 1 deletion(-) create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReport.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalLiabilitiesClaimsReport.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalMoneyChangeReport.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaims.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChange.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReport.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummarylMoneyChange.java create mode 100644 clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReport.java diff --git a/clearing-parent/reports-service/pom.xml b/clearing-parent/reports-service/pom.xml index 969ee84ed..4c4ff1026 100644 --- a/clearing-parent/reports-service/pom.xml +++ b/clearing-parent/reports-service/pom.xml @@ -40,17 +40,27 @@ jackson-dataformat-xml + com.thoughtworks.xstream xstream 1.4.19 + + org.apache.poi poi-ooxml 5.1.0 + + + com.opencsv + opencsv + 5.5.2 + + ru.spcex.clearing diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java index a235a2a83..00b21d565 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java @@ -5,6 +5,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey; /** * Идентификаторы отчётов */ +// todo create new ID public enum ReportId implements IEnumKey { PA_B("REPPA.B"), PA_IV("REPPA.IV"), @@ -22,8 +23,18 @@ public enum ReportId implements IEnumKey { BR_0420312_P1("REPBR.0420312_р1-1"), BR_0420312_P2("REPBR.0420312_р1-2"), BR_0420312_P3("REPBR.0420312_р1-3"), BR_0420312_P4("REPBR.0420312_р1-4"), BR_0420312_P5("REPBR.0420312_р1-5"), BR_0420312_P6("REPBR.0420312_р1-6"), BR_0420312_P7("REPBR.0420312_р1-7"), BR_0420312_P8("REPBR.0420312_р3-1"), - BR_0420312_P9("REPBR.0420312_р3-2"), BR_0420312_P10("REPBR.0420312_р3-3"); + BR_0420312_P9("REPBR.0420312_р3-2"), BR_0420312_P10("REPBR.0420312_р3-3"), + OPERATIONAL_LIABILITIES_CLAIMS("operational_liabilities_claims"), + OPERATIONAL_MONEY_CHANGE("operational_money_change"), + SUMMARY_LIABILITIES_CLAIMS("summary_liabilities_claims"), + SUMMARY_L_MONEY_CHANGE("summary_lmoney_change"), + PERIOD_LIABILITIES_CLAIMS("period_liabilities_claims"), + PERIOD_MONEY_CHANGE("period_money_change"), + EXECUTED_DEAL_REPORT("executed_deal_report"), + UNFULFILLED_DEAL_REPORT("unfulfilled_deal_report"), + + ; private final String key; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReport.java new file mode 100644 index 000000000..ab4b4faf2 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReport.java @@ -0,0 +1,40 @@ +package ru.spcex.clearing.reports.reports.bp; + +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +public class ExecutedDealReport extends ReportWithPeriod { + + private final String[] headers = { + "id", "securityId", "tradeNo", "tradeDate", "tradeTime", "settleDate", "settleCode", "price", "quanity", "value" + }; + + public ExecutedDealReport(LocalDate startDate, LocalDate endDate) { + super(ReportId.EXECUTED_DEAL_REPORT, + "0.0.1", + "BP", + "Реестр сделок, принятых на клиринг", + startDate, + endDate); + } + + @Override + public String getReportName(LocalDateTime reportDateTime) { + return "executed_deal_report.%s-%s.%s".formatted( + DATE_FORMATTER.format(startDate), + DATE_FORMATTER.format(endDate), + DATE_TIME_FORMATTER.format(reportDateTime) + ); + } + + public String[] getHeaders() { + return headers; + } + + public record InfoExecutedDeal(String id, String securityId, String tradeNo, String tradeDate, String tradeTime, + String settleDate, String settleCode, String price, String quanity, String value) { + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalLiabilitiesClaimsReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalLiabilitiesClaimsReport.java new file mode 100644 index 000000000..7953a2614 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalLiabilitiesClaimsReport.java @@ -0,0 +1,53 @@ +package ru.spcex.clearing.reports.reports.bp; + +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +// todo check typo +public class OperationalLiabilitiesClaimsReport extends ReportWithPeriod { + + private final String[] headers = { + "id", "doc_date", "doc_time", "doc_type", "clearingHouse", "firmId", "firName", "session_id", + "clearing_date", "clearing_time", "trdAccId", "account", "depo_account", "currency", "tr_id", "securityId", + "tr_buySell", "tr_date", "tr_execDate", "exec_status", "repaym_date", "tr_price", "nominal", "lot_value", + "tr_lot", "tr_quantity", "tr_value", "tr_accruedint", "accruedint", "tr_clrComm", "tr_exhComm", "cash_liability", + "depo_liability", "cash_netto", "depo_netto" + }; + + public OperationalLiabilitiesClaimsReport(LocalDate startDate, LocalDate endDate) { + super(ReportId.OPERATIONAL_LIABILITIES_CLAIMS, + "0.0.1", + "BP2", + "Операционный отчет. Отчет об обязательствах", + startDate, + endDate); + } + + @Override + public String getReportName(LocalDateTime reportDateTime) { + return "operational_liabilities_claims.%s-%s.%s".formatted( + DATE_FORMATTER.format(startDate), + DATE_FORMATTER.format(endDate), + DATE_TIME_FORMATTER.format(reportDateTime) + ); + } + + public String[] getHeaders() { + return headers; + } + + public record InfoOperationalLiabilitiesClaims(String id, String docDate, String docTime, String docName, + String docType, String clearingHouse, String firmId, String firName, + String sessionId, String clearingDate, String clearingTime, + String trdAccId, String account, String depoAccount, String currency, + String trId, String securityId, String trBuySell, String trDate, + String trExecDate, String execStatus, String repaymDate, String trPrice, + String nominal, String lotValue, String trLot, String trQuantity, + String trValue, String trAccruedInt, String accruedInt, String trClrComm, + String trExhComm, String cashLiability, String depoLiability, + String cashNetto, String depoNetto) { + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalMoneyChangeReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalMoneyChangeReport.java new file mode 100644 index 000000000..2f253b5b2 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalMoneyChangeReport.java @@ -0,0 +1,49 @@ +package ru.spcex.clearing.reports.reports.bp; + +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +public class OperationalMoneyChangeReport extends ReportWithPeriod { + + private final String[] headers = { + "id", "doc_date", "doc_time", "doc_name", "doc_type", "clearingHouse", "firmId", "firName", "trdAccId", + "account", "currency", "registry_code", "registry_name", "open_balance", "change_balance", "add_withdraw", + "close_balance", "remarks", "add_sum", "add_time", "withdraw_sum", "withdraw_time" + }; + + + public OperationalMoneyChangeReport(LocalDate startDate, LocalDate endDate) { + super(ReportId.OPERATIONAL_MONEY_CHANGE, + "0.0.1", + "BP3", + "Операционный отчет. Отчет о денежных средствах", + startDate, + endDate); + } + + @Override + public String getReportName(LocalDateTime reportDateTime) { + return "operational_money_change.%s-%s.%s".formatted( + DATE_FORMATTER.format(startDate), + DATE_FORMATTER.format(endDate), + DATE_TIME_FORMATTER.format(reportDateTime) + ); + } + + public String[] getHeaders() { + return headers; + } + + public record InfoOperationalMoneyChangeReport(String id, String docDate, String docTime, String docName, + String docType, String clearingHouse, String firmId, String firName, + String trdAccId, String account, String currency, String registryCode, + String registryName, String openBalance, String changeBalance, + String addWithdraw, String closeBalance, String remarks, String addSum, + String addTime, String withdrawSum, String withdrawTime) { + + } + +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaims.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaims.java new file mode 100644 index 000000000..5ed9d1367 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaims.java @@ -0,0 +1,51 @@ +package ru.spcex.clearing.reports.reports.bp; + +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +public class PeriodLiabilitiesClaims extends ReportWithPeriod { + + private final String[] headers = { + "id", "doc_date", "doc_time", "doc_name", "doc_type", "clearingHouse", "firmId", "firName", "session_id", + "clearing_date", "clearing_time", "trdAccId", "account", "depo_account", "currency", "tr_id", "securityId", + "tr_buySell", "tr_date", "tr_execDate", "exec_status", "repaym_date", "tr_price", "nominal", "lot_value", + "tr_lot", "tr_quantity", "tr_value", "tr_accruedint", "accruedint", "tr_clrComm", "tr_exhComm", + "cash_liability", "depo_liability", "cash_netto", "depo_netto" + }; + + public PeriodLiabilitiesClaims(LocalDate startDate, LocalDate endDate) { + super(ReportId.PERIOD_LIABILITIES_CLAIMS, + "0.0.1", + "BP", + "Отчет за период. Отчет об обязательствах", + startDate, + endDate); + } + + @Override + public String getReportName(LocalDateTime reportDateTime) { + return "period_liabilities_claims.%s-%s.%s".formatted( + DATE_FORMATTER.format(startDate), + DATE_FORMATTER.format(endDate), + DATE_TIME_FORMATTER.format(reportDateTime) + ); + } + + public String[] getHeaders() { + return headers; + } + + public record InfoPeriodLiabilitiesClaims(String id, String docDate, String docTime, String docName, + String docType, String clearingHouse, String firmId, String firName, + String sessionId, String clearingDate, String clearingTime, String trdAccId, + String account, String depoAccount, String currency, String trId, String securityId, + String trBuySell, String trDate, String trExecDate, String execStatus, + String repaymDate, String trPrice, String nominal, String lotValue, + String trLot, String trQuantity, String trValue, String trAccruedInt, + String accruedInt, String trClrComm, String trExhComm, String cashLiability, + String depoLiability, String cashNetto, String depoNetto) { + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChange.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChange.java new file mode 100644 index 000000000..999b3b903 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChange.java @@ -0,0 +1,46 @@ +package ru.spcex.clearing.reports.reports.bp; + +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +public class PeriodMoneyChange extends ReportWithPeriod { + + private final String[] headers = { + "id", "doc_date", "doc_time", "doc_name", "doc_type", "clearingHouse", "firmId", "firName", "trdAccId", + "account", "currency", "registry_code", "registry_name", "open_balance", "change_balance", "add_withdraw", + "close_balance", "remarks", "add_sum", "add_time", "withdraw_sum", "withdraw_time" + }; + + public PeriodMoneyChange(LocalDate startDate, LocalDate endDate) { + super(ReportId.PERIOD_MONEY_CHANGE, + "0.0.1", + "BP", + "Отчет за период. Отчет о денежных средствах", + startDate, + endDate); + } + + @Override + public String getReportName(LocalDateTime reportDateTime) { + return "period_money_change.%s-%s.%s".formatted( + DATE_FORMATTER.format(startDate), + DATE_FORMATTER.format(endDate), + DATE_TIME_FORMATTER.format(reportDateTime) + ); + } + + public String[] getHeaders() { + return headers; + } + + public record InfoPeriodMoneyChange(String id, String docDate, String docTime, String docName, String docType, + String clearingHouse, String firmId, String firName, String trdAccId, + String account, String currency, String registryCode, String registryName, + String openBalance, String changeBalance, String addWithdraw, + String closeBalance, String remarks, String addSum, String addTime, + String withdrawSum, String withdrawTime) { + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReport.java new file mode 100644 index 000000000..bcc9611c8 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReport.java @@ -0,0 +1,52 @@ +package ru.spcex.clearing.reports.reports.bp; + +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +// todo check typo +public class SummaryLiabilitiesClaimsReport extends ReportWithPeriod { + + private final String[] headers = { + "id", "doc_date", "doc_time", "doc_name", "doc_type", "clearingHouse", "firmId", "firName", "session_id", + "clearing_date", "clearing_time", "trdAccId", "account", "depo_account", "currency", "tr_id", "securityId", + "tr_buySell", "tr_date", "tr_execDate", "exec_status", "repaym_date", "tr_price", "nominal", "lot_value", + "tr_lot", "tr_quantity", "tr_value", "tr_accruedint", "accruedint", "tr_clrComm", "tr_exhComm", + "cash_liability", "depo_liability", "cash_netto", "depo_netto" + }; + + public SummaryLiabilitiesClaimsReport(LocalDate startDate, LocalDate endDate) { + super(ReportId.SUMMARY_LIABILITIES_CLAIMS, + "0.0.1", + "BP4", + "Сводный отчет. Отчет об обязательствах", + startDate, + endDate); + } + + @Override + public String getReportName(LocalDateTime reportDateTime) { + return "summary_liabilities_claims.%s-%s.%s".formatted( + DATE_FORMATTER.format(startDate), + DATE_FORMATTER.format(endDate), + DATE_TIME_FORMATTER.format(reportDateTime) + ); + } + + public String[] getHeaders() { + return headers; + } + + public record InfoSummaryLiabilitiesClaims(String id, String docDate, String docTime, String docName, + String docType, String clearingHouse, String firmId, String firName, + String sessionId, String clearingDate, String clearingTime, String trdAccId, + String account, String depoAccount, String currency, String trId, + String securityId, String trBuySell, String trDate, String trExecDate, + String execStatus, String repaymDate, String trPrice, String nominal, + String lotValue, String trLot, String trQuantity, String trValue, + String trAccruedInt, String accruedInt, String trClrComm, String trExhComm, + String cashLiability, String depoLiability, String cashNetto, String depoNetto) { + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummarylMoneyChange.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummarylMoneyChange.java new file mode 100644 index 000000000..d76496894 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummarylMoneyChange.java @@ -0,0 +1,46 @@ +package ru.spcex.clearing.reports.reports.bp; + +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +// todo check typo +public class SummarylMoneyChange extends ReportWithPeriod { + + private final String[] headers = { + "id", "doc_date", "doc_time", "doc_name", "doc_type", "clearingHouse", "firmId", "firName", "trdAccId", + "account", "currency", "registry_code", "registry_name", "open_balance", "change_balance", "add_withdraw", + "close_balance", "remarks", "add_sum", "add_time", "withdraw_sum", "withdraw_time", + }; + + public SummarylMoneyChange(LocalDate startDate, LocalDate endDate) { + super(ReportId.SUMMARY_L_MONEY_CHANGE, + "0.0.1", + "BP5", + "Сводный отчет. Отчет о денежных средствах", + startDate, + endDate); + } + + @Override + public String getReportName(LocalDateTime reportDateTime) { + return "summary_lmoney_change.%s-%s.%s".formatted( + DATE_FORMATTER.format(startDate), + DATE_FORMATTER.format(endDate), + DATE_TIME_FORMATTER.format(reportDateTime) + ); + } + + public String[] getHeaders() { + return headers; + } + + public record InfoSummarylMoneyChange(String id, String docDate, String docTime, String docName, String docType, + String clearingHouse, String firmId, String firName, String trdAccId, String account, + String currency, String registryCode, String registryName, String openBalance, + String changeBalance, String addWithdraw, String closeBalance, String remarks, + String addSum, String addTime, String withdrawSum, String withdrawTime) { + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReport.java new file mode 100644 index 000000000..8de76a447 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReport.java @@ -0,0 +1,39 @@ +package ru.spcex.clearing.reports.reports.bp; + +import ru.spcex.clearing.reports.reports.ReportId; +import ru.spcex.clearing.reports.reports.ReportWithPeriod; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +public class UnfulfilledDealReport extends ReportWithPeriod { + + private final String[] headers = { + "id", "securityId", "tradeNo", "tradeDate", "settleCode" + }; + + public UnfulfilledDealReport(LocalDate startDate, LocalDate endDate) { + super(ReportId.UNFULFILLED_DEAL_REPORT, + "0.0.1", + "BP", + "Реестр сделок, принятых на клиринг", + startDate, + endDate); + } + + @Override + public String getReportName(LocalDateTime reportDateTime) { + return "unfulfilled_deal_report.%s-%s.%s".formatted( + DATE_FORMATTER.format(startDate), + DATE_FORMATTER.format(endDate), + DATE_TIME_FORMATTER.format(reportDateTime) + ); + } + + public String[] getHeaders() { + return headers; + } + + public record InfoUnfulfilledDealReport(String id, String securityId, String tradeNo, String tradeDate, String settleCode) { + } +}