classes for cls-283

This commit is contained in:
akulikov 2023-05-10 19:58:18 +03:00
parent 18b8e6d81f
commit eed1e94f07
10 changed files with 398 additions and 1 deletions

View file

@ -40,17 +40,27 @@
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<!-- XML -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.19</version>
</dependency>
<!-- DOC -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.1.0</version>
</dependency>
<!-- CSV -->
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.2</version>
</dependency>
<!-- IMDG clearing system -->
<dependency>
<groupId>ru.spcex.clearing</groupId>

View file

@ -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;

View file

@ -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) {
}
}

View file

@ -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) {
}
}

View file

@ -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) {
}
}

View file

@ -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) {
}
}

View file

@ -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) {
}
}

View file

@ -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) {
}
}

View file

@ -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) {
}
}

View file

@ -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) {
}
}