diff --git a/clearing-parent/reports-service/docs/report.BR для разработчиков.docx b/clearing-parent/reports-service/docs/report.BR для разработчиков.docx deleted file mode 100644 index 3e4c567ac..000000000 Binary files a/clearing-parent/reports-service/docs/report.BR для разработчиков.docx and /dev/null differ diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java index 06efcbe60..0492bb849 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java @@ -6,34 +6,16 @@ import org.slf4j.LoggerFactory; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.context.ConfigurableApplicationContext; -import ru.spcex.clearing.reports.config.ReportCmdParser; -import ru.spcex.clearing.reports.services.QCommandExecutor; -import ru.spcex.clearing.reports.services.ReportsServiceCommand; @SpringBootApplication public class ReportsServiceApplication { public static void main(String[] args) { try { - ReportCmdParser cmdArgs = new ReportCmdParser(args); - SpringApplicationBuilder builder = new SpringApplicationBuilder(ReportsServiceApplication.class); ConfigurableApplicationContext context = builder.run(args); Logger log = LoggerFactory.getLogger(ReportsServiceApplication.class); - if (cmdArgs.isConsole()) { - log.info("Console mode"); - try { - ReportsServiceCommand reportCommand = context.getBean(ReportsServiceCommand.class); - reportCommand.writeAllXML(); - } finally { - log.info("Shutdown application after work"); - context.close(); - } - } else { - log.info("Service mode"); - QCommandExecutor queueListener = context.getBean(QCommandExecutor.class); - log.trace("QCommandExecutor: {}", queueListener); - } + } catch (Throwable e) { LoggerFactory.getLogger(ReportsServiceApplication.class).error("Report-service start failed: {} -> {}", e.getClass().getSimpleName(), ExceptionUtils.getStackTrace(e)); System.exit(-1); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportCmdParser.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportCmdParser.java deleted file mode 100644 index 62bc96299..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportCmdParser.java +++ /dev/null @@ -1,43 +0,0 @@ -package ru.spcex.clearing.reports.config; - -/** - * Параметры запуска командной строки. - * - * @see ru.spcex.clearing.reports.config.element.ReportsServiceSettings - */ -public class ReportCmdParser { - protected static final String ARG_CONSOLE = "--console"; - protected static final String ARG_SERVICE = "--service"; - protected boolean console; - protected boolean service; - - public ReportCmdParser(String[] args) { - for (String arg : args) { - if (ARG_CONSOLE.equals(arg)) console = true; - if (ARG_SERVICE.equals(arg)) service = true; - } - } - - public boolean isConsole() { - return console; - } - - public boolean isService() { - return service; - } - - @Override - public String toString() { - return "ReportCmdParser{console=" + console + ", service=" + service + '}'; - } -} - -/* -Вариант парсинга сложных выражений: - - commons-cli - commons-cli - 1.4 - -но сейчас достаточно один параметр проверять - */ \ No newline at end of file diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/element/ReportsServiceSettings.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/element/ReportsServiceSettings.java index c8d0d3ad3..365eafeb8 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/element/ReportsServiceSettings.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/element/ReportsServiceSettings.java @@ -7,11 +7,6 @@ import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; -/** - * Параметр запуска: XMLReportBuilder - * --spring.config.location=E:/MFD_GIT_REPO/clearing/clearing-parent/reports-service/src/main/resources - * - */ @Component @PropertySource("file:${spring.config.location}/application.properties") @ConfigurationProperties("reports-service") diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java index 5295a3da6..650fa6668 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java @@ -9,6 +9,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequest; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithPeriod; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionIdList; +import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.reports.errors.ReportError; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.clearing.validation.common.rules.EndDtAfterStartDtRule; @@ -144,6 +145,25 @@ public class ValidationConfig { }; } + // todo оставил бин валидатора на будущее, если в дальнейшем придется проверять запрос. в текущей версии, по факту, + // запрос не проверяется: в случае если sessionId не указан отчеты не строятся + @Bean("reportRequestGREP") + public Function reportRequestGREPValidator( + Map> imdgForValidation + ) { + return launcherCommandRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(launcherCommandRequest); + return new ValidatorImpl<>(context, + FieldRequiredRule.instance( + "sessionId", + LauncherCommandRequest::getSessionId, + ReportError.RequiredFieldEmpty, + false) + ); + }; + } + } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/DOCXService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/DOCXService.java similarity index 90% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/DOCXService.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/DOCXService.java index 67cd092ea..7bcd951f5 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/DOCXService.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/DOCXService.java @@ -1,10 +1,13 @@ -package ru.spcex.clearing.reports.services; +package ru.spcex.clearing.reports.notifications; import org.apache.poi.xwpf.usermodel.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.*; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; import java.net.URL; import java.util.LinkedList; import java.util.List; @@ -16,26 +19,26 @@ import java.util.regex.PatternSyntaxException; import java.util.stream.Collectors; /** + * todo Пока неизвестно нужны ли будут ещё эти уведомления, поэтому весь связанный код переместил в один пакет + *

* Сервис для работы с DOCX файлами * Читает шаблон .docx и во всех текстовых элементах меняет переданные ключи на соответствующие им значения * Пример ключа по умолчанию: ${ключ} - * + *

* При использовании нового шаблона, необходимо отредактировать docx документ так, чтобы ключ содержался в одном * элементе. Для этого нужно вырезать ключ и в это же место вставить его как текст, без форматирования. Если нужно, * идентификатору потом можно установить стиль, который будет применён к вставляемой строке. */ public class DOCXService { private final Logger log = LoggerFactory.getLogger(getClass()); - /** - * При инициализации сохраняет все имеющиеся ключи (ищет по маске keyPattern), найденные в текстовых элементах документа - */ - private List keyPositions = new LinkedList<>(); - /** * Паттерн поиска ключей в файле по умолчанию */ private final Pattern DEFAULT_KEY_PATTERN = Pattern.compile("\\$\\{.*?}"); - + /** + * При инициализации сохраняет все имеющиеся ключи (ищет по маске keyPattern), найденные в текстовых элементах документа + */ + private List keyPositions = new LinkedList<>(); /** * Паттерн поиска ключей в файле */ @@ -56,7 +59,7 @@ public class DOCXService { */ public boolean init(URL templateFile, String keyPattern) { initialized = false; - if (templateFile == null /*|| !templateFile.exists() || !templateFile.isFile()*/) { + if (templateFile == null) { log.warn("Invalid templateFile {}", templateFile); return false; } @@ -82,10 +85,9 @@ public class DOCXService { * valuesMap. * * @param outputFile Выходной файл. Должен быть либо файлом (будет перезаписан), либо отсутствовать - * @param valuesMap Мапа значений. В файле шаблона будут искаться ключи этой мапы и заменяться на соответствующие значения. - * @param checkKeys True - строгий режим, где будет проверено наличие всех ключей из файла в valuesMap. - * False - мягкий режим, отсутствующие ключи будут пропущены - * + * @param valuesMap Мапа значений. В файле шаблона будут искаться ключи этой мапы и заменяться на соответствующие значения. + * @param checkKeys True - строгий режим, где будет проверено наличие всех ключей из файла в valuesMap. + * False - мягкий режим, отсутствующие ключи будут пропущены * @return true - если вставка прошла успешно */ public boolean insertValues(File outputFile, @@ -110,7 +112,7 @@ public class DOCXService { } } - try (InputStream inputStream = templateFile.openStream(); //new FileInputStream(templateFile); + try (InputStream inputStream = templateFile.openStream(); OutputStream outputStream = new FileOutputStream(outputFile)) { XWPFDocument doc = new XWPFDocument(inputStream); @@ -127,7 +129,7 @@ public class DOCXService { boolean checkOk = checkIntersection(valuesMap, notPresentInMap); if (!checkOk) { log.error("Can't insert values in file {}. Keys not in map: {}.", - templateFile.toExternalForm()/*templateFile.getAbsolutePath()*/, + templateFile.toExternalForm(), String.join(", ", notPresentInMap)); return false; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java index 9773f4a1e..16053a381 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java @@ -3,7 +3,6 @@ package ru.spcex.clearing.reports.notifications; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.spcex.clearing.reports.exceptions.ConfigException; -import ru.spcex.clearing.reports.services.DOCXService; import java.io.File; import java.net.URL; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java deleted file mode 100644 index c8b56a13e..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java +++ /dev/null @@ -1,48 +0,0 @@ -package ru.spcex.clearing.reports.reports; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import com.thoughtworks.xstream.annotations.XStreamOmitField; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; - -/** - * Общая шапка (атрибуты) для всех отчетов - */ -@Deprecated -public abstract class AbstractReport { - protected static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy"); - protected static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss"); - - @XStreamOmitField - protected ReportId reportId; - - @XStreamAsAttribute - @XStreamAlias("version") - protected String version; - - @XStreamAsAttribute - @XStreamAlias("code") - protected String code; - - @XStreamAsAttribute - @XStreamAlias("name") - protected String name; - - public AbstractReport(ReportId reportId, - String version, - String code, - String name) { - this.reportId = reportId; - this.version = version; - this.code = code; - this.name = name; - } - - abstract public String getReportName(LocalDateTime reportDateTime); - - public ReportId getReportId() { - return reportId; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/Destination.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/Destination.java deleted file mode 100644 index da4f82002..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/Destination.java +++ /dev/null @@ -1,23 +0,0 @@ -package ru.spcex.clearing.reports.reports; - -import ru.spcex.platform.utils.enumeration.IEnumKey; - -public enum Destination implements IEnumKey { - BR("BR"), _1C("1C"); - - private final String key; - - Destination(String key) { - this.key = key; - } - - @Override - public String getKey() { - return this.key; - } - - @Override - public boolean equalsByKey(String key) { - return IEnumKey.super.equalsByKey(key); - } -} 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 deleted file mode 100644 index 1d66b3ebc..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java +++ /dev/null @@ -1,49 +0,0 @@ -package ru.spcex.clearing.reports.reports; - -import ru.spcex.platform.utils.enumeration.IEnumKey; - -/** - * Идентификаторы отчётов - */ -@Deprecated -public enum ReportId implements IEnumKey { - PA_B("REPPA.B"), PA_IV("REPPA.IV"), - - BT13_11("DOCIN"), BT13_12("DOCOUT"), - - BT16_5("INACCNT"), - - BR_0420315_P1("REPBR.0420315.P1"), BR_0420315_P2("REPBR.0420315.P2"), - - BR_0420317("REPBR.0420317"), - - BR_0420318("REPBR.0420318"), - - BR_0420314_P1("REPBR.0420314.P1"), BR_0420314_P2("REPBR.0420314.P2"), - - 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"), - - 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; - - ReportId(String key) { - this.key = key; - } - - @Override - public String getKey() { - return key; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java deleted file mode 100644 index 051362750..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.spcex.clearing.reports.reports; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; - -import java.time.LocalDate; - -@Deprecated -public abstract class ReportWithClearingStatus extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("clearingStatus") - protected String clearingStatus; - - public ReportWithClearingStatus(ReportId reportId, - String version, - String code, - String name, - LocalDate startDate, - LocalDate endDate, - String clearingStatus) { - super(reportId, version, code, name, startDate, endDate); - this.clearingStatus = clearingStatus; - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithPeriod.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithPeriod.java deleted file mode 100644 index e7e6d7376..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithPeriod.java +++ /dev/null @@ -1,35 +0,0 @@ -package ru.spcex.clearing.reports.reports; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; - -import java.time.LocalDate; - -/** - * Шапка для отчётов, содержащих startDate и endDate - */ -@Deprecated -public abstract class ReportWithPeriod extends AbstractReport { - - @XStreamAsAttribute - @XStreamAlias("startDate") -// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"}) - protected LocalDate startDate; - - @XStreamAsAttribute - @XStreamAlias("endDate") -// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"}) - protected LocalDate endDate; - - - public ReportWithPeriod(ReportId reportId, - String version, - String code, - String name, - LocalDate startDate, - LocalDate endDate) { - super(reportId, version, code, name); - this.startDate = startDate; - this.endDate = endDate; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaimsReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaimsReportBuilder.java index 4d5532b07..de8e639ea 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaimsReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaimsReportBuilder.java @@ -5,7 +5,10 @@ import ru.clearing.classes.statics.data.execution.ExecutionFond; import ru.spcex.clearing.reports.reports.SessionIdListParams; import ru.spcex.platform.enumeration.ReportType; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Collection; import java.util.Collections; @@ -29,9 +32,14 @@ public class PeriodLiabilitiesClaimsReportBuilder extends LiabilitiesClaimsRepor @Override protected Collection getExecutionFondsForReport(SessionIdListParams params) { if (params.getSessionIdList() == null || params.getSessionIdList().isEmpty()) return Collections.emptyList(); - return executionFondImdg.getCollectionObjectsByPredicate( - executionFondImdg.predicateBuilder().in("sessionId", params.getSessionIdList().toArray(new Long[0])) + ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder(); + // todo OR - временное решение. В изначальном плане была передача списка id сессий, но теперь нужно делать на текущий день + // пока не определятся, что именно им нужно - остается OR, в дальнейшем предикат будет правиться + ImdgPredicate predicate = pb.or( + pb.in("sessionId", params.getSessionIdList().toArray(new Long[0])), + pb.equals("clearingDate", LocalDate.now()) ); + return executionFondImdg.getCollectionObjectsByPredicate(predicate); } @Override diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChangeReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChangeReportBuilder.java index 6e35c0cab..d4a4b2886 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChangeReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChangeReportBuilder.java @@ -8,6 +8,7 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import java.time.LocalDateTime; import java.util.Collection; +import java.util.stream.Collectors; public class PeriodMoneyChangeReportBuilder extends MoneyChangeReportBuilder { @@ -18,12 +19,16 @@ public class PeriodMoneyChangeReportBuilder extends MoneyChangeReportBuilder getRegistryForReport(PeriodParams params) { ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); - return registryImdg.getCollectionObjectsByPredicate( + Collection registries = registryImdg.getCollectionObjectsByPredicate( pb.and( pb.greatEqual("clearingDate", params.getStartDate()), pb.lessEqual("clearingDate", params.getEndDate()) ) ); + registries = registries.stream() + .filter(registry -> registry.getRegistryCode().startsWith("AM")) + .collect(Collectors.toList()); + return registries; } @Override diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReportBuilder.java index 50de7bac2..448b3e34e 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReportBuilder.java @@ -5,7 +5,9 @@ import ru.clearing.classes.statics.data.execution.ExecutionFond; import ru.spcex.clearing.reports.reports.EmptyParams; import ru.spcex.platform.enumeration.ReportType; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Collection; @@ -16,12 +18,18 @@ public class SummaryLiabilitiesClaimsReportBuilder extends LiabilitiesClaimsRepo @Override protected Collection getExecutionFondsForReport(EmptyParams params) { - return executionFondImdg.getAllValues(); + // todo Временное решение. В изначальном плане была передача списка id сессий, но теперь нужно делать на текущий день + // пока не определятся, что именно им нужно - остается OR, в дальнейшем предикат будет правиться + ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder(); + return executionFondImdg.getCollectionObjectsByPredicate(pb.equals("clearingDate", LocalDate.now())); } @Override protected Collection getExecutionDepositsForReport(EmptyParams params) { - return executionDepositImdg.getAllValues(); + // todo Временное решение. В изначальном плане была передача списка id сессий, но теперь нужно делать на текущий день + // пока не определятся, что именно им нужно - остается OR, в дальнейшем предикат будет правиться + ImdgPredicateBuilder pb = executionDepositImdg.predicateBuilder(); + return executionDepositImdg.getCollectionObjectsByPredicate(pb.equals("clearingDate", LocalDate.now())); } @Override diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryMoneyChangeReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryMoneyChangeReportBuilder.java index a636c5911..2cf12fc9f 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryMoneyChangeReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryMoneyChangeReportBuilder.java @@ -4,9 +4,12 @@ import ru.clearing.classes.statics.data.registry.Registry; import ru.spcex.clearing.reports.reports.EmptyParams; import ru.spcex.platform.enumeration.ReportType; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Collection; +import java.util.stream.Collectors; public class SummaryMoneyChangeReportBuilder extends MoneyChangeReportBuilder { public SummaryMoneyChangeReportBuilder(ImdgProvider imdgProvider) { @@ -15,7 +18,20 @@ public class SummaryMoneyChangeReportBuilder extends MoneyChangeReportBuilder getRegistryForReport(EmptyParams param) { - return registryImdg.getAllValues(); + // todo отсечение по периоду - временный код, пока не решили как передавать в GREP период. + // по изначальной задумке в summary отчет должны включаться все записи. + ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); + LocalDate now = LocalDate.now(); + Collection registries = registryImdg.getCollectionObjectsByPredicate( + pb.and( + pb.greatEqual("clearingDate", now), + pb.lessEqual("clearingDate", now) + ) + ); + registries = registries.stream() + .filter(registry -> registry.getRegistryCode().startsWith("AM")) + .collect(Collectors.toList()); + return registries; } @Override diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_12_2/ReportPA_B.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_12_2/ReportPA_B.java deleted file mode 100644 index d638fbf44..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_12_2/ReportPA_B.java +++ /dev/null @@ -1,80 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_12_2; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; -import ru.spcex.platform.enumeration.ClearingCategory; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("netPositionBank") -@Deprecated -public class ReportPA_B extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("clearingMemberCategory") - private String clearingMemberCategory; - - @XStreamAlias("rows") - private List rows = new ArrayList<>(); - - @XStreamAlias("total") - private Total total; - - public ReportPA_B(LocalDate startDate, - LocalDate endDate) { - super(ReportId.PA_B, - "0.0.1", - "BT12.2", - "Отчет по нетто-позиции участника клиринга в секции МКР (Уполномоченный банк)", - startDate, - endDate); - this.clearingMemberCategory = ClearingCategory.B.getKey(); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPPA.B.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public void setTotal(Total total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - @XStreamAlias("total") - public record Total(@XStreamAsAttribute @XStreamAlias("claimsAmount") String claimsAmount, - @XStreamAsAttribute @XStreamAlias("liabilitiesAmount") String liabilitiesAmount, - @XStreamAsAttribute @XStreamAlias("paymentAmount") String paymentAmount) { - } - - - @XStreamAlias("row") - public record Info_PA_B( - @XStreamAsAttribute @XStreamAlias("id") String id, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName, - @XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_settlementDate") String liabilitiesClaimsAssetsSettlementDate, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundDate") String liabilitiesClaimsAssetsRefundDate, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_tradingDate") String liabilitiesClaimsAssetsTradingDate, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_contract") String liabilitiesClaimsAssetsContract, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity, - @XStreamAsAttribute @XStreamAlias("chargeCommission") String chargeCommission, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity") String liabilitiesClaimsAssetsClaimsQuantity, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundPaymentId") String liabilitiesClaimsAssetsRefundPaymentId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_clearingStatus") String liabilitiesClaimsAssetsClearingStatus, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_comment") String liabilitiesClaimsAssetsComment - ) { - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_12_2/ReportPA_IV.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_12_2/ReportPA_IV.java deleted file mode 100644 index a989f5a03..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_12_2/ReportPA_IV.java +++ /dev/null @@ -1,83 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_12_2; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; -import ru.spcex.platform.enumeration.ClearingCategory; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("netPositionInitiator") -@Deprecated -public class ReportPA_IV extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("clearingMemberCategory") - private String clearingMemberCategory; - - @XStreamAlias("rows") - private List rows = new ArrayList<>(); - - @XStreamAlias("total") - private Total total; - - - public ReportPA_IV(LocalDate startDate, - LocalDate endDate) { - super(ReportId.PA_IV, - "0.0.1", - "BT2", - "Отчет по нетто-позиции участника клиринга в секции МКР (Вкладчик)", - startDate, - endDate); - this.clearingMemberCategory = "%s,%s".formatted( - ClearingCategory.I.getKey(), - ClearingCategory.V.getKey() - ); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPPA.IV.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public void setTotal(Total total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - @XStreamAlias("total") - public record Total(@XStreamAsAttribute @XStreamAlias("claimsAmount") String claimsAmount, - @XStreamAsAttribute @XStreamAlias("liabilitiesAmount") String liabilitiesAmount, - @XStreamAsAttribute @XStreamAlias("paymentAmount") String paymentAmount) { - } - - @XStreamAlias("row") - public record Info_PA_IV( - @XStreamAsAttribute @XStreamAlias("id") String id, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName, - @XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_settlementDate") String liabilitiesClaimsAssetsSettlementDate, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundDate") String liabilitiesClaimsAssetsRefundDate, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_tradingDate") String liabilitiesClaimsAssetsTradingDate, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_contract") String liabilitiesClaimsAssetsContract, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity, - @XStreamAsAttribute @XStreamAlias("chargeCommission") String chargeCommission, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_ClaimsQuantity") String liabilitiesClaimsAssetsClaimsQuantity, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_refundPaymentId") String liabilitiesClaimsAssetsRefundPaymentId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_clearingStatus") String liabilitiesClaimsAssetsClearingStatus, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_comment") String liabilitiesClaimsAssetsComment - ) { - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCIN.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCIN.java deleted file mode 100644 index c10a38e33..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCIN.java +++ /dev/null @@ -1,75 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_13; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.AbstractReport; -import ru.spcex.clearing.reports.reports.ReportId; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("incomingDocuments") -@Deprecated -public class ReportDOCIN extends AbstractReport { - /** - * Дата в формате: dd.MM.yyyy - */ - @XStreamAsAttribute - @XStreamAlias("date") -// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"}) - private final LocalDate date; - - /** - * Время в формате: hh:mm:ss - */ - @XStreamAsAttribute - @XStreamAlias("time") -// @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"}) - private final LocalTime time; - - @XStreamAlias("rows") - private List rows = new ArrayList<>(); - - public ReportDOCIN(LocalDate date, - LocalTime time) { - super(ReportId.BT13_11, - "0.0.1", - "BT 13.11", - "Журнал Входящих документов"); - this.date = date; - this.time = time; - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "DOCIN.%s".formatted( - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - @XStreamAlias("row") - public record Info_DOCIN( - @XStreamAsAttribute @XStreamAlias("id") String id, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_registrationDate") String inDocumentJournalRegistrationDate, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_registrationTime") String inDocumentJournalRegistrationTime, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_registrationNumber") String inDocumentJournalRegistrationNumber, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_documentName") String inDocumentJournalDocumentName, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_sender") String inDocumentJournalSender, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_quantity") String inDocumentJournalQuantity, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_clearingCode") String inDocumentJournalClearingCode, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_courierType") String inDocumentJournalCourierType, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_emailDate") String inDocumentJournal_emailDate, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_Amount") String inDocumentJournalAmount, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_dossierNumber") String inDocumentJournalDossierNumber, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_Comment") String inDocumentJournalComment, - @XStreamAsAttribute @XStreamAlias("inDocumentJournal_receiptDate") String inDocumentJournalReceiptDate - ) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCOUT.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCOUT.java deleted file mode 100644 index be4037989..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCOUT.java +++ /dev/null @@ -1,74 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_13; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.AbstractReport; -import ru.spcex.clearing.reports.reports.ReportId; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("incomingDocuments") -@Deprecated -public class ReportDOCOUT extends AbstractReport { - /** - * Дата в формате: dd.MM.yyyy - */ - @XStreamAsAttribute - @XStreamAlias("date") -// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"}) - private final LocalDate date; - - /** - * Время в формате: hh:mm:ss - */ - @XStreamAsAttribute - @XStreamAlias("time") -// @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"}) - private final LocalTime time; - - @XStreamAlias("rows") - private List rows = new ArrayList<>(); - - public ReportDOCOUT(LocalDate date, - LocalTime time) { - super(ReportId.BT13_12, - "0.0.1", - "BT 13.12", - "Журнал Исходящих документов"); - this.date = date; - this.time = time; - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "DOCOUT.%s".formatted( - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - @XStreamAlias("row") - public record Info_DOCOUT( - @XStreamAsAttribute @XStreamAlias("id") String id, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_registrationDate") String outDocumentJournalRegistrationDate, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_registrationTime") String outDocumentJournalRegistrationTime, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_registrationNumber") String outDocumentJournalRegistrationNumber, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_documentName") String outDocumentJournalDocumentName, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_addressee") String outDocumentJournalAddressee, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_quantity") String outDocumentJournalQuantity, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_clearingCode") String outDocumentJournalClearingCode, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_courierType") String outDocumentJournalCourierType, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_emailDate") String outDocumentJournal_emailDate, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_Amount") String outDocumentJournalAmount, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_dossierNumber") String outDocumentJournalDossierNumber, - @XStreamAsAttribute @XStreamAlias("outDocumentJournal_postDate") String outDocumentJournalPostDate - ) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_16_5/ReportINACCNT.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_16_5/ReportINACCNT.java deleted file mode 100644 index 32d9cad93..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_16_5/ReportINACCNT.java +++ /dev/null @@ -1,72 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_16_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.AbstractReport; -import ru.spcex.clearing.reports.reports.ReportId; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("accountBalanceInfo") -@Deprecated -public class ReportINACCNT extends AbstractReport { - @XStreamAsAttribute - @XStreamAlias("clearingMemberCategory") - private final String companyClearingCode; - - /** - * Дата в формате: dd.MM.yyyy - */ - @XStreamAsAttribute - @XStreamAlias("date") -// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"}) - private final LocalDate date; - - /** - * Время в формате: hh:mm:ss - */ - @XStreamAsAttribute - @XStreamAlias("time") -// @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"}) - private final LocalTime time; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportINACCNT(String companyClearingCode, LocalDate date, LocalTime time) { - super(ReportId.BT16_5, - "0.0.1", - "BT16.5", - "Отчет о денежных средствах на счете внутреннего учета (клиринговом регистре) Участника клиринга"); - this.companyClearingCode = companyClearingCode; - this.date = date; - this.time = time; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "INACCNT.%s.%s".formatted( - companyClearingCode, - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public List getRows() { - return rows; - } - - @XStreamAlias("row") - public record Info_INACCNT(@XStreamAsAttribute @XStreamAlias("id") String id, - @XStreamAsAttribute @XStreamAlias("company_fullName") String companyFullName, - @XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode, - @XStreamAsAttribute @XStreamAlias("accountBalance_account") String accountBalanceAccount, - @XStreamAsAttribute @XStreamAlias("accountBalance_openAccount") String accountBalanceOpenAccount, - @XStreamAsAttribute @XStreamAlias("accountBalance_debitAccount") String accountBalanceDebitAccount, - @XStreamAsAttribute @XStreamAlias("accountBalance_creditAccount") String accountBalanceCreditAccount, - @XStreamAsAttribute @XStreamAlias("accountBalance_closeAccount") String accountBalanceCloseAccount) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_1/ReportBR_0420315_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_1/ReportBR_0420315_P1.java deleted file mode 100644 index bd317a145..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_1/ReportBR_0420315_P1.java +++ /dev/null @@ -1,66 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_1; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithClearingStatus; -import ru.spcex.platform.enumeration.ClearingCategory; -import ru.spcex.platform.enumeration.ClearingStatus; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearedLiabilities") -@Deprecated -public class ReportBR_0420315_P1 extends ReportWithClearingStatus { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAsAttribute - @XStreamAlias("clearingMemberCategory") - private String clearingMemberCategory; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420315_P1(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420315_P1, - "0.0.1", - "0420315", - "Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период, часть 1", - startDate, - endDate, - ClearingStatus.OK.getKey()); - this.destination = Destination.BR.getKey(); - this.clearingMemberCategory = "%s,%s".formatted( - ClearingCategory.I.getKey(), - ClearingCategory.V.getKey() - ); - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420315.P1.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - @XStreamAlias("row") - public record Info_0420315_P1(@XStreamAlias("company_id") @XStreamAsAttribute String companyId, - @XStreamAlias("company_fullName") @XStreamAsAttribute String companyFullName, - @XStreamAlias("listing_market") @XStreamAsAttribute String listingMarket, - @XStreamAlias("contract_qty") @XStreamAsAttribute String contractQty, - @XStreamAlias("liabilities_amount") @XStreamAsAttribute String liabilitiesAmount) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_1/ReportBR_0420315_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_1/ReportBR_0420315_P2.java deleted file mode 100644 index dd013a1ff..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_1/ReportBR_0420315_P2.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_1; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; - -@XStreamAlias("clearedLiabilitiesTotal") -@Deprecated -public class ReportBR_0420315_P2 extends ReportWithPeriod { - @XStreamAlias("rows") - private Info_0420315_P2 rows; - - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - public ReportBR_0420315_P2(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420315_P2, - "0.0.1", - "0420315", - "Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период, часть 2", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420315.P2.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public Info_0420315_P2 getRows() { - return rows; - } - - public void setRows(Info_0420315_P2 rows) { - this.rows = rows; - } - - public record Info_0420315_P2(@XStreamAlias("contract_qty") @XStreamAsAttribute String contractQty, - @XStreamAlias("liabilities_amount") @XStreamAsAttribute String liabilitiesAmount) { - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_2/ReportBR_0420317.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_2/ReportBR_0420317.java deleted file mode 100644 index 167b889de..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_2/ReportBR_0420317.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_2; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingServiceStatus") -@Deprecated -public class ReportBR_0420317 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420317(LocalDate startDate, LocalDate endDate) { - super(ReportId.BR_0420317, - "0.0.1", - "0420317", - "Сведения о предоставлении, прекращении, приостановке," + - " возобновлении допуска к клиринговому обслуживанию", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420317.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - @XStreamAlias("row") - public record Info_0420317( - @XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode, - @XStreamAsAttribute @XStreamAlias("relation_supplierId") String relationSupplierId, - @XStreamAsAttribute @XStreamAlias("relation_serviceId") String relationServiceId, - @XStreamAsAttribute @XStreamAlias("relation_serviceStatus") String relationServiceStatus, - @XStreamAsAttribute @XStreamAlias("relation_updatedAt") String relationUpdatedAt, - @XStreamAsAttribute @XStreamAlias("company_fullName") String companyFullName, - @XStreamAsAttribute @XStreamAlias("companySymbol_code") String companySymbolCode, - @XStreamAsAttribute @XStreamAlias("companyInfo_countryCode") String companyInfoCountryCode, - @XStreamAsAttribute @XStreamAlias("relation_comment") String relationComment) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_3/ReportBR_0420318.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_3/ReportBR_0420318.java deleted file mode 100644 index 0a4d1529c..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_3/ReportBR_0420318.java +++ /dev/null @@ -1,64 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_3; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithClearingStatus; -import ru.spcex.platform.enumeration.ClearingStatus; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("unfundedLiabilities") -@Deprecated -public class ReportBR_0420318 extends ReportWithClearingStatus { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420318(LocalDate startDate, LocalDate endDate) { - super(ReportId.BR_0420318, - "0.0.1", - "0420318", - "Сведения о неисполненных обязательствах", - startDate, - endDate, - ClearingStatus.FAIL.getKey()); - this.destination = Destination.BR.getKey(); - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420318.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - @XStreamAlias("row") - public record Info_0420318( - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName, - @XStreamAsAttribute @XStreamAlias("companySymbols_code") String companySymbolsCode, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_countryCode") String liabilitiesClaimsAssetsCountryCode, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_settlementDate") String liabilitiesClaimsAssetsSettlementDate, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_Contract") String liabilitiesClaimsAssetsContract, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsMoney_currencyCode") String liabilitiesClaimsMoneyCurrencyCode, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsMoney_name") String liabilitiesClaimsMoneyName, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilities") String liabilitiesClaimsAssetsLiabilities, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_comment") String liabilitiesClaimsAssetsComment, - @XStreamAsAttribute @XStreamAlias("companySymbol_value") String companySymbolValue, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullNames") String liabilitiesClaimsAssetsFullNames) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_4/ReportBR_0420314_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_4/ReportBR_0420314_P1.java deleted file mode 100644 index 55fede8b5..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_4/ReportBR_0420314_P1.java +++ /dev/null @@ -1,60 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_4; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithClearingStatus; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("accountTransactionLiabilities") -@Deprecated -public class ReportBR_0420314_P1 extends ReportWithClearingStatus { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420314_P1(LocalDate startDate, LocalDate endDate, String clearingStatus, String destination) { - super(ReportId.BR_0420314_P1, - "0.0.1", - "0420314", - "Сведения об УК и операциях, проведенных по торговым счетам, часть 1", - startDate, - endDate, - clearingStatus); - this.destination = Destination.BR.getKey(); - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420314.P1.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - @XStreamAlias("partOne") - public record Info_0420314_P1( - @XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode, - @XStreamAsAttribute @XStreamAlias("profileDocument_id") String profileDocumentId, - @XStreamAsAttribute @XStreamAlias("company_fullName") String companyFullName, - @XStreamAsAttribute @XStreamAlias("companySymbol_code") String companySymbolCode, - @XStreamAsAttribute @XStreamAlias("companySymbol_value") String companySymbolValue, - @XStreamAsAttribute @XStreamAlias("clearingMemberCategory_clearingMemberCategory") String clearingMemberCategoryClearingMemberCategory, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_contract") String liabilitiesClaimsAssets_contract, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_tradingDate") String liabilitiesClaimsAssets_tradingDate, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_4/ReportBR_0420314_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_4/ReportBR_0420314_P2.java deleted file mode 100644 index 1feed5112..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_4/ReportBR_0420314_P2.java +++ /dev/null @@ -1,61 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_4; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("accountTransactionTurnover") -@Deprecated -public class ReportBR_0420314_P2 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAsAttribute - @XStreamAlias("transactionStatus") - protected String transactionStatus; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420314_P2(LocalDate startDate, LocalDate endDate, String transactionStatus, String destination) { - super(ReportId.BR_0420314_P2, - "0.0.1", - "0420314", - "Сведения об УК и операциях, проведенных по торговым счетам, часть 2", - startDate, - endDate); - this.transactionStatus = transactionStatus; - this.destination = destination; - } - - public List getRows() { - return rows; - } - - - @XStreamAlias("partTwo") - public record Info_0420314_P2( - @XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode, - @XStreamAsAttribute @XStreamAlias("profileDocument_id") String profileDocumentId, - @XStreamAsAttribute @XStreamAlias("accountBalance_openBalanceAmount") String accountBalanceOpenBalanceAmount, - @XStreamAsAttribute @XStreamAlias("paymentInstruction_creditLeg_amount") String paymentInstructionCreditLegAmount, - @XStreamAsAttribute @XStreamAlias("paymentInstruction_debitLeg_amount") String paymentInstructionDebitLegAmount, - @XStreamAsAttribute @XStreamAlias("accountBalance_closeBalanceAmount") String accountBalanceCloseBalanceAmount) { - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420314.P2.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P1.java deleted file mode 100644 index 3e6492797..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P1.java +++ /dev/null @@ -1,59 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage1") -@Deprecated -public class ReportBR_0420312_P1 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P1(LocalDate startDate, - LocalDate endDate, - String destination) { - super(ReportId.BR_0420312_P1, - "0.0.1", - "0420312", - "Сведения о клиринговом обеспечении, часть 1", - startDate, - endDate); - this.destination = destination; - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р1-1.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - @XStreamAlias("row") - public record Info_0420312_P1( - @XStreamAsAttribute @XStreamAlias("company_clearingCode") String companyClearingCode, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_companyId") String liabilitiesClaimsAssetsCompanyId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName, - @XStreamAsAttribute @XStreamAlias("companySymbol_code") String companySymbolCode, - @XStreamAsAttribute @XStreamAlias("companySymbol_value") String companySymbolValue, - @XStreamAsAttribute @XStreamAlias("companyInfo_countryCode") String companyInfoCountryCode, - @XStreamAsAttribute @XStreamAlias("clearingMemberCategory_clearingMemberCategory") String clearingMemberCategoryClearingMemberCategory) { - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P10.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P10.java deleted file mode 100644 index 32ad2e543..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P10.java +++ /dev/null @@ -1,52 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage10") -@Deprecated -public class ReportBR_0420312_P10 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P10(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420312_P10, - "0.0.5", - "0420312", - "Сведения о клиринговом обеспечении, часть 10", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - public List getRows() { - return rows; - } - - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р3-3.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public record Info_0420312_P10( - @XStreamAsAttribute @XStreamAlias("liabilities_amount") String liabilitiesAmount) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P2.java deleted file mode 100644 index 6e0043854..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P2.java +++ /dev/null @@ -1,55 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage2") -@Deprecated -public class ReportBR_0420312_P2 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P2(LocalDate startDate, - LocalDate endDate, - String destination) { - super(ReportId.BR_0420312_P2, - "0.0.1", - "0420312", - "Сведения о клиринговом обеспечении, часть 2", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р1-2.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public List getRows() { - return rows; - } - - @XStreamAlias("row") - public record Info_0420312_P2( - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_companyId") String liabilitiesClaimsAssetsCompanyId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilities") String liabilitiesClaimsAssetsLiabilities) { - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P3.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P3.java deleted file mode 100644 index 79ec3df44..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P3.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage3") -@Deprecated -public class ReportBR_0420312_P3 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P3(LocalDate startDate, - LocalDate endDate, - String destination) { - super(ReportId.BR_0420312_P3, - "0.0.5", - "0420312", - "Сведения о клиринговом обеспечении, часть 3", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р1-3.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public List getRows() { - return rows; - } - - @XStreamAlias("row") - public record Info_0420312_P3( - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_companyId") String liabilitiesClaimsAssetsCompanyId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilities") String liabilitiesClaimsAssetsLiabilities) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P4.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P4.java deleted file mode 100644 index e8350d3b7..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P4.java +++ /dev/null @@ -1,52 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage4") -@Deprecated -public class ReportBR_0420312_P4 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P4(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420312_P4, - "0.0.5", - "0420312", - "Сведения о клиринговом обеспечении, часть 4", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р1-4.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public List getRows() { - return rows; - } - - @XStreamAlias("row") - public record Info_0420312_P4( - @XStreamAsAttribute @XStreamAlias("liabilities_amount") String liabilitiesAmount) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P5.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P5.java deleted file mode 100644 index 5579eaf22..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P5.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage5") -@Deprecated -public class ReportBR_0420312_P5 extends ReportWithPeriod { - - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P5(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420312_P5, - "0.0.5", - "0420312", - "Сведения о клиринговом обеспечении, часть 5", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р1-5.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public List getRows() { - return rows; - } - - - @XStreamAlias("row") - public record Info_0420312_P5( - @XStreamAsAttribute @XStreamAlias("liabilities_amount") String liabilitiesAmount) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P6.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P6.java deleted file mode 100644 index 7f8220da6..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P6.java +++ /dev/null @@ -1,52 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage6") -@Deprecated -public class ReportBR_0420312_P6 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P6(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420312_P6, - "0.0.5", - "0420312", - "Сведения о клиринговом обеспечении, часть 6", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р1-6.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public List getRows() { - return rows; - } - - @XStreamAlias("row") - public record Info_0420312_P6( - @XStreamAsAttribute @XStreamAlias("liabilities_amount") String liabilitiesAmount) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P7.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P7.java deleted file mode 100644 index fa809a07e..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P7.java +++ /dev/null @@ -1,52 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage7") -@Deprecated -public class ReportBR_0420312_P7 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P7(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420312_P7, - "0.0.5", - "0420312", - "Сведения о клиринговом обеспечении, часть 7", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р1-7.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public List getRows() { - return rows; - } - - @XStreamAlias("row") - public record Info_0420312_P7( - @XStreamAsAttribute @XStreamAlias("liabilities_amount") String liabilitiesAmount) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P8.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P8.java deleted file mode 100644 index 51d6c3345..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P8.java +++ /dev/null @@ -1,59 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage8") -@Deprecated -public class ReportBR_0420312_P8 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P8(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420312_P8, - "0.0.5", - "0420312", - "Сведения о клиринговом обеспечении, часть 8", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р3-1.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - @XStreamAlias("row") - public record Info_0420312_P8( - @XStreamAsAttribute @XStreamAlias("currency_id") String currencyId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_companyId") String liabilitiesClaimsAssetsCompanyId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_fullName") String liabilitiesClaimsAssetsFullName, - @XStreamAsAttribute @XStreamAlias("companySymbol_code") String companySymbolCode, - @XStreamAsAttribute @XStreamAlias("companySymbol_value") String companySymbolValue, - @XStreamAsAttribute @XStreamAlias("companyInfo_countryCode") String companyInfoCountryCode, - @XStreamAsAttribute @XStreamAlias("clearingMemberCategory_clearingMemberCategory") String clearingMemberCategoryClearingMemberCategory - ) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P9.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P9.java deleted file mode 100644 index 24e899539..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P9.java +++ /dev/null @@ -1,55 +0,0 @@ -package ru.spcex.clearing.reports.reports.bt.bt_17_5; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamAsAttribute; -import ru.spcex.clearing.reports.reports.Destination; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.clearing.reports.reports.ReportWithPeriod; - -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -@XStreamAlias("clearingCoverage9") -@Deprecated -public class ReportBR_0420312_P9 extends ReportWithPeriod { - @XStreamAsAttribute - @XStreamAlias("destination") - private String destination; - - @XStreamAlias("rows") - private final List rows = new ArrayList<>(); - - public ReportBR_0420312_P9(LocalDate startDate, - LocalDate endDate) { - super(ReportId.BR_0420312_P9, - "0.0.5", - "0420312", - "Сведения о клиринговом обеспечении, часть 9", - startDate, - endDate); - this.destination = Destination.BR.getKey(); - } - - public List getRows() { - return rows; - } - - @Override - public String getReportName(LocalDateTime reportDateTime) { - return "REPBR.0420312_р3-2.%s-%s.%s".formatted( - DATE_FORMATTER.format(startDate), - DATE_FORMATTER.format(endDate), - DATE_TIME_FORMATTER.format(reportDateTime) - ); - } - - public record Info_0420312_P9( - @XStreamAsAttribute @XStreamAlias("currency_id") String currencyId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_companyId") String liabilitiesClaimsAssetsCompanyId, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsMoney_currencyCode") String liabilitiesClaimsMoneyCurrencyCode, - @XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilities") String liabilitiesClaimsAssetsLiabilities - ) { - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/AbstractReportCollector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/AbstractReportCollector.java deleted file mode 100644 index 8c79bf7df..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/AbstractReportCollector.java +++ /dev/null @@ -1,102 +0,0 @@ -package ru.spcex.clearing.reports.services; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import ru.spcex.clearing.reports.reports.AbstractReport; -import ru.spcex.clearing.reports.reports.ReportId; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.time.Instant; -import java.time.LocalDate; -import java.time.LocalTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; -import java.util.Locale; - -@Deprecated -public abstract class AbstractReportCollector { - public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy"); - public static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss"); - public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss"); - protected final Logger log = LoggerFactory.getLogger(getClass()); - - abstract public Class getReportClass(); - - public ReportId getReportId() { - Class theClass = getReportClass(); - Constructor[] constructors = theClass.getConstructors(); // getConstructors - public, getDeclaredConstructors - all - Constructor useConstructor = null; - for (int i = 0; i < constructors.length; i++) { - if (useConstructor == null || useConstructor.getParameterCount() > constructors[i].getParameterCount()) { - useConstructor = constructors[i]; - } - } - Object[] cArg = new Object[useConstructor.getParameterCount()]; // all null - try { - T object = useConstructor.newInstance(cArg); - ReportId theId = object.getReportId(); - return theId; - } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { - throw new RuntimeException("Can not found ReportId from class " + theClass.getName(), e); - } - } - - protected void validateDateRange(LocalDate startDate, LocalDate endDate) throws IllegalArgumentException { - if (startDate.isAfter(endDate)) { - throw new IllegalArgumentException("startDate(" + startDate + ") > endDate(" + endDate + ")"); - } - } - - protected Instant toInstantStartDay(LocalDate date) { - return date.atStartOfDay(TimeUtil.zone).toInstant(); - } - protected Instant toInstantEndDay(LocalDate date) { - return date.plusDays(1).atStartOfDay(TimeUtil.zone).minusSeconds(1).toInstant(); - } - - protected String toString(String str) { - if (str == null) return ""; - return str; - } - - protected String toString(Long val) { - if (val == null) return ""; - return val.toString(); - } - - /** - * Обеспечивает точность 2 знака после запятой - */ - protected String toString(Double val) { - if (val == null) return ""; - return String.format(Locale.US, "%.2f", val); - } - - /** - * Обеспечивает точность 2 знака после запятой - */ - protected String toString(BigDecimal val) { - if (val == null) return ""; - return val.setScale(2, RoundingMode.HALF_UP).toString(); - } - - protected String toString(Instant val) { - if (val == null) return ""; - return DATE_TIME_FORMATTER.format(val.atZone(ZoneId.systemDefault())); - } - - protected String toString(LocalDate date) { - if (date == null) return ""; - return DATE_FORMATTER.format(date); - } - - protected String toString(LocalTime date) { - if (date == null) return ""; - return TIME_FORMATTER.format(date); - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/QCommandExecutor.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/QCommandExecutor.java deleted file mode 100644 index 95436a786..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/QCommandExecutor.java +++ /dev/null @@ -1,87 +0,0 @@ -package ru.spcex.clearing.reports.services; - -import org.apache.commons.lang3.StringUtils; -import org.apache.kafka.clients.consumer.Consumer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Service; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.clearing.reports.config.element.ReportsServiceSettings; -import ru.spcex.platform.enumeration.Task; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.utils.log.ExceptionUtils; - -import java.io.IOException; -import java.time.LocalDate; - -import static ru.spcex.clearing.reports.services.ReportsServiceCommand.QUEUE_RUN_DAILY_REPORT_COMMAND; -import static ru.spcex.clearing.reports.services.ReportsServiceCommand.QUEUE_RUN_REPORT_COMMAND; - -@Service -@Lazy // требуется получать экземпляр сервиса явно, когда надо его запустить -public class QCommandExecutor extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - ReportsServiceCommand reportsServiceCommand; - ReportsServiceSettings config; - - public QCommandExecutor(Consumer kafkaQueue, ImdgProvider imdgProvider, - ReportsServiceCommand reportsServiceCommand, - ReportsServiceSettings config) { - super(kafkaQueue); - this.reportsServiceCommand = reportsServiceCommand; - this.config = config; - } - - @Override - public void afterPropertiesSet() { - log.info("Init queue listener {}", getClass().getSimpleName()); - callback(LauncherCommandRequest.class) - .setConsumer(this::newReportWithPeriod) - .forDestination(Task.createReport_GREP.topic(), callbacks::put); - init(); - } - - private void newReportWithPeriod(BaseRequest reportRequest) { - LauncherCommandRequest request = reportRequest.getRequestPayload(); - log.info("newReportWithPeriod request received: {}", request); - final String taskName = QUEUE_RUN_REPORT_COMMAND; //request.getTaskName(); - -// if (StringUtils.isBlank(request.getReportId())) -// throw new IllegalStateException("ReportID is empty"); -// LocalDate startDate = request.getStartDate(); -// LocalDate endDate = request.getEndDate(); - LocalDate startDate = null; - LocalDate endDate = null; - if (startDate == null && endDate == null) { - endDate = LocalDate.now(); - startDate = LocalDate.of(endDate.getYear(), endDate.getMonth(), 1); - log.debug("No date present, use default: {} - {}", startDate, endDate); - } - if (startDate == null || endDate == null) - throw new IllegalStateException("StartDate or EndDate is null"); - if (startDate.isAfter(endDate)) - throw new IllegalStateException("StartDate > EndDate"); - - try { - if (QUEUE_RUN_REPORT_COMMAND.equals(taskName) - || QUEUE_RUN_DAILY_REPORT_COMMAND.equals(taskName)) { - log.info("Generate all report by command {}", taskName); - reportsServiceCommand.generateReportAll(taskName, startDate, endDate); - } else { - log.info("Generate single report by command {}", taskName); - reportsServiceCommand.generateReportById(taskName, startDate, endDate); - } - - log.debug("successfully processed"); - } catch (IOException e) { - log.error("Error create report {}: {}", taskName, ExceptionUtils.getStackTrace(e)); - } - } - - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportForClearingCodeCollector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportForClearingCodeCollector.java deleted file mode 100644 index 6926ce635..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportForClearingCodeCollector.java +++ /dev/null @@ -1,10 +0,0 @@ -package ru.spcex.clearing.reports.services; - -import ru.spcex.clearing.reports.reports.AbstractReport; - -public abstract class ReportForClearingCodeCollector extends AbstractReportCollector { - /** - * Подготовка отчета по clearingCode - */ - abstract public T collectReportForClearingCode(String clearingCode); -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java index 2718a3053..3dac2987a 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java @@ -13,6 +13,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequest; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithPeriod; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId; import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionIdList; +import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.reports.config.element.ReportsServiceSettings; @@ -20,11 +21,14 @@ import ru.spcex.clearing.reports.reports.*; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.ReportType; +import ru.spcex.platform.enumeration.Task; import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.validation.IValidator; import java.io.File; +import java.time.LocalDate; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.function.Function; @@ -38,6 +42,7 @@ public class ReportService extends QueueConsumer implements InitializingBean { private final Function reportRequestWithSessionIdValidator; private final Function reportRequestWithSessionIdListValidator; private final Function reportRequestWithPeriodValidator; + private final Function reportRequestGREPValidator; private final Map>> reportBuildersWithoutParams; private final Map>> reportBuildersWithSessionIdParam; private final Map>> reportBuildersWithSessionIdListParam; @@ -65,7 +70,9 @@ public class ReportService extends QueueConsumer implements InitializingBean { @Qualifier("reportRequestWithSessionIdListValidator") Function reportRequestWithSessionIdListValidator, @Qualifier("reportRequestWithPeriodValidator") - Function reportRequestWithPeriodValidator) { + Function reportRequestWithPeriodValidator, + @Qualifier("reportRequestGREP") + Function reportRequestGREPValidator) { super(kafkaQueue, kafkaResponseQueue); this.userRoleVerification = userRoleVerification; this.validationHelper = validationHelper; @@ -77,6 +84,7 @@ public class ReportService extends QueueConsumer implements InitializingBean { this.reportBuildersWithSessionIdParam = reportBuildersWithSessionIdParam; this.reportBuildersWithSessionIdListParam = reportBuildersWithSessionIdListParam; this.reportBuildersWithPeriodParams = reportBuildersWithPeriodParams; + this.reportRequestGREPValidator = reportRequestGREPValidator; this.outFolder = new File(reportsServiceSettings.getReportModuleOut()); assert outFolder.isDirectory(); } @@ -95,6 +103,9 @@ public class ReportService extends QueueConsumer implements InitializingBean { callback(ReportRequestWithPeriod.class) .setFunction(this::createReportForPeriod) .forDestination(Consts.CREATE_REPORT_FOR_PERIOD, callbacks::put); + callback(LauncherCommandRequest.class) + .setFunction(this::createReportForGREP) + .forDestination(Task.createReport_GREP.topic(), callbacks::put); init(); } @@ -233,5 +244,93 @@ public class ReportService extends QueueConsumer implements InitializingBean { return null; } + public RequestInfoUpdate createReportForGREP(BaseRequest userRequest) { + log.debug("ReportRequestWithPeriod received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return null; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, reportRequestGREPValidator); + if (requestInfoUpdate != null) return null; + + Long sessionId = userRequest.getRequestPayload().getSessionId(); + + int cntErrors = 0; + List outFilenames = new ArrayList<>(); + + Collection>> buildersWithoutParams = reportBuildersWithoutParams.values(); + for (List> builderList : buildersWithoutParams) { + for (CSVReportBuilder builder : builderList) { + File outFile = builder.createReport(new EmptyParams(), outFolder); + if (outFile == null) { + log.warn("Something wrong, report type: {}", builder.getReportType().getKey()); + cntErrors++; + continue; + } + outFilenames.add(outFile.getAbsolutePath()); + } + } + + if (sessionId != null) { + + Collection>> buildersWithSessionIdParam = reportBuildersWithSessionIdParam.values(); + for (List> builderList : buildersWithSessionIdParam) { + for (CSVReportBuilder builder : builderList) { + if ( + builder.getReportType() == ReportType.OPERATIONAL_MONEY_CHANGE || + builder.getReportType() == ReportType.OPERATIONAL_LIABILITIES_CLAIMS + ) { + continue; + } + SessionIdParam sessionIdParam = new SessionIdParam(); + sessionIdParam.setSessionId(sessionId); + File outFile = builder.createReport(sessionIdParam, outFolder); + if (outFile == null) { + log.warn("Something wrong, report type: {}", builder.getReportType().getKey()); + cntErrors++; + continue; + } + outFilenames.add(outFile.getAbsolutePath()); + } + } + + Collection>> buildersWithSessionIdListParam = reportBuildersWithSessionIdListParam.values(); + for (List> builderList : buildersWithSessionIdListParam) { + for (CSVReportBuilder builder : builderList) { + SessionIdListParams sessionIdListParams = new SessionIdListParams(); + sessionIdListParams.setSessionIdList(List.of(sessionId)); + File outFile = builder.createReport(sessionIdListParams, outFolder); + if (outFile == null) { + log.warn("Something wrong, report type: {}", builder.getReportType().getKey()); + cntErrors++; + continue; + } + outFilenames.add(outFile.getAbsolutePath()); + } + } + + } + + LocalDate now = LocalDate.now(); + Collection>> buildersWithPeriodParams = reportBuildersWithPeriodParams.values(); + for (List> builderList : buildersWithPeriodParams) { + for (CSVReportBuilder builder : builderList) { + PeriodParams periodParams = new PeriodParams(); + periodParams.setStartDate(now); + periodParams.setEndDate(now); + File outFile = builder.createReport(periodParams, outFolder); + if (outFile == null) { + log.warn("Something wrong, report type: {}", builder.getReportType().getKey()); + cntErrors++; + continue; + } + outFilenames.add(outFile.getAbsolutePath()); + } + } + + if (cntErrors == 0) log.debug("All reports successfully created. Output files: {}", String.join(", ", outFilenames)); + else log.debug("Some reports ({}) create failed. Output files: {}", cntErrors, String.join(", ", outFilenames)); + + return null; + } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportWithPeriodCollector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportWithPeriodCollector.java deleted file mode 100644 index 607d35ede..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportWithPeriodCollector.java +++ /dev/null @@ -1,42 +0,0 @@ -package ru.spcex.clearing.reports.services; - -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.reports.reports.AbstractReport; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; - -import java.time.Instant; -import java.time.LocalDate; -import java.util.Collection; - -@Deprecated -public abstract class ReportWithPeriodCollector extends AbstractReportCollector { - /** - * Подготовка отчета на период startDate..endDate - */ - abstract public T collectReportWithPeriod(LocalDate startDate, LocalDate endDate); - - protected Collection searchLiabilitiesClaimsAssets(Imdg liabilitiesClaimsAssetsImdg, - LocalDate startDate, - LocalDate endDate) { - ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder(); -// Instant dateTimeLo = toInstantStartDay(startDate); -// Instant dateTimeHi = toInstantEndDay(endDate); - ImdgPredicate p = pb.and(pb.greatEqual("refundDate", startDate), pb.lessEqual("refundDate", endDate)); - Collection liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p); - return liabilities; - } - - protected Collection searchLiabilitiesClaimsAssets(Imdg liabilitiesClaimsAssetsImdg, - LocalDate startDate, LocalDate endDate, - Long allowClearingStatusId) { - ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder(); -// Instant dateTimeLo = toInstantStartDay(startDate); -// Instant dateTimeHi = toInstantEndDay(endDate); - ImdgPredicate p = pb.and(pb.greatEqual("refundDate", startDate), pb.lessEqual("refundDate", endDate), - pb.equals("clearingStatus", allowClearingStatusId)); - Collection liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p); - return liabilities; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsService.java deleted file mode 100644 index 1339fcdb2..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsService.java +++ /dev/null @@ -1,320 +0,0 @@ -//package ru.spcex.clearing.reports.services; -// -//import com.thoughtworks.xstream.XStream; -//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.reports.bt_12_2.ReportPA_BT2_B; -//import ru.spcex.clearing.reports.reports.bt_12_2.ReportPA_BT2_IV; -//import ru.spcex.clearing.reports.reports.bt_13.ReportDOCIN; -////import ru.spcex.clearing.reports.reports.bt_13.Report_BT13_12; -//import ru.spcex.clearing.reports.reports.bt_16_5.Report_BT16_5; -//import ru.spcex.clearing.reports.reports.bt_17_1.ReportBR_0420315_P1; -//import ru.spcex.clearing.reports.reports.bt_17_1.ReportBR_0420315_P2; -//import ru.spcex.clearing.reports.reports.bt_17_2.ReportBR_0420317; -//import ru.spcex.clearing.reports.reports.bt_17_3.ReportBR_0420318; -//import ru.spcex.clearing.reports.reports.bt_17_4.ReportBR_0420314_P1; -//import ru.spcex.clearing.reports.reports.bt_17_4.ReportBR_0420314_P2; -//import ru.spcex.clearing.reports.reports.bt_17_5.*; -// -//import java.time.LocalDate; -//import java.time.LocalTime; -// -//@Deprecated -//public class ReportsService { -// private final Logger log = LoggerFactory.getLogger(getClass()); -// -// 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); -// xStream.processAnnotations(ReportBR_0420314_P2.class); -// xStream.processAnnotations(ReportBR_0420312_P1.class); -// xStream.processAnnotations(ReportBR_0420312_P2.class); -// xStream.processAnnotations(ReportBR_0420312_P3.class); -// xStream.processAnnotations(ReportBR_0420312_P4.class); -// xStream.processAnnotations(ReportBR_0420312_P5.class); -// xStream.processAnnotations(ReportBR_0420312_P6.class); -// xStream.processAnnotations(ReportBR_0420312_P7.class); -// xStream.processAnnotations(ReportBR_0420312_P8.class); -// xStream.processAnnotations(ReportBR_0420312_P9.class); -// xStream.processAnnotations(ReportBR_0420312_P10.class); -// xStream.processAnnotations(ReportPA_BT2_IV.class); -// xStream.processAnnotations(ReportPA_BT2_B.class); -// xStream.processAnnotations(Report_BT16_5.class); -// xStream.processAnnotations(ReportDOCIN.class); -//// xStream.processAnnotations(Report_BT13_12.class); -// -// -// -// /* ========= БТ 17.1 ========== */ -// // todo see ReportDataCollector -// 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(), -//// "BR", -//// "contractorQty", -//// "liabilitiesAmount"); -//// log.info("ReportBR_0420315_P2:\n{}\n", xStream.toXML(reportBR_0420315_p2)); -// -// -// -// /* ========= БТ 17.2 ========== */ -// ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(LocalDate.now(), LocalDate.now()); -// ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317("companyClearingCode", -// "relationSupplierId", -// "relationServiceId", -// "relationServiceStatus", -// "relationUpdatedAt", -// "companyFullName", -// "companySymbolCode", -// "companyInfoCountryCode", -// "relationComment"); -// reportBR_0420317.getRows().add(info_0420317); -// log.info("ReportBR_0420317:\n{}\n", xStream.toXML(reportBR_0420317)); -// -// -// -// /* ========= БТ 17.3 ========== */ -// 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)); -// -// -// -// /* ========= БТ 17.4 ========== */ -// ReportBR_0420314_P1 reportBR_0420314P1 = new ReportBR_0420314_P1(LocalDate.now(), LocalDate.now(), "clearingStatus", "BR"); -// ReportBR_0420314_P1.Info_0420314_P1 info_0420314P1 = new ReportBR_0420314_P1.Info_0420314_P1("companyClearingCode", -// "paymentInstructionSenderId", -// "profileDocumentId", -// "companyFullName", -// "companySymbolCode", -// "companySymbolValue", -// "clearingMemberCategoryClearingMemberCategory", -//// LocalDate.of(2022,11,10), -// "liabilitiesClaimsAssetsLiabilitiesQuantity" -// ); -// reportBR_0420314P1.getRows().add(info_0420314P1); -// log.info("ReportBR_0420314_P1:\n{}\n", xStream.toXML(reportBR_0420314P1)); -// -// -// -// ReportBR_0420314_P2 reportBR_0420314P2 = new ReportBR_0420314_P2(LocalDate.now(), LocalDate.now(), "transactionStatus", "BR"); -// ReportBR_0420314_P2.Info_0420314_P2 info_0420314P2 = new ReportBR_0420314_P2.Info_0420314_P2("companyClearingCode", -// "profileDocumentId", -// "accountBalanceOpenBalanceAmt", -// "paymentInstructionCreditLegAmount", -// "paymentInstructionDebitLegAmount", -// "accountBalanceCloseBalanceAmount" -// ); -// reportBR_0420314P2.getRows().add(info_0420314P2); -// log.info("ReportBR_0420314_P2:\n{}\n", xStream.toXML(reportBR_0420314P2)); -// -// -//// -//// /* ========= БТ 17.5 ========== */ -//// ReportBR_0420312_P1 reportBR_0420312P1 = new ReportBR_0420312_P1(LocalDate.now(), -//// LocalDate.now(), -//// "companyClearingCode", -//// "BR", -//// "liabilitesClaimsAssetsCompanyId", -//// "liabilitesClaimsAssetsFullName", -//// "companySymbolCode", -//// "companySymbolValue", -//// "companyInfoCountryCode", -//// "clearingMemberCategory"); -//// log.info("ReportBR_0420312_P1:\n{}\n", xStream.toXML(reportBR_0420312P1)); -//// -//// ReportBR_0420312_P2 reportBR_0420312P2 = new ReportBR_0420312_P2(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "liabilitiesClaimsAssetsCompanyId", -//// "liabilitiesClaimsAssetsLiabilities"); -//// log.info("ReportBR_0420312_P2:\n{}\n", xStream.toXML(reportBR_0420312P2)); -//// -//// ReportBR_0420312_P3 reportBR_0420312P3 = new ReportBR_0420312_P3(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "liabilitiesClaimsAssetsCompanyId", -//// "liabilitiesClaimsAssetsLiabilities"); -//// log.info("ReportBR_0420312_P3:\n{}\n", xStream.toXML(reportBR_0420312P3)); -//// -//// ReportBR_0420312_P4 reportBR_0420312P4 = new ReportBR_0420312_P4(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "liabilitiesAmount"); -//// log.info("ReportBR_0420312_P4:\n{}\n", xStream.toXML(reportBR_0420312P4)); -//// -//// ReportBR_0420312_P5 reportBR_0420312P5 = new ReportBR_0420312_P5(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "liabilitiesAmount"); -//// log.info("ReportBR_0420312_P5:\n{}\n", xStream.toXML(reportBR_0420312P5)); -//// -//// ReportBR_0420312_P6 reportBR_0420312P6 = new ReportBR_0420312_P6(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "liabilitiesAmount"); -//// log.info("ReportBR_0420312_P6:\n{}\n", xStream.toXML(reportBR_0420312P6)); -//// -//// ReportBR_0420312_P7 reportBR_0420312P7 = new ReportBR_0420312_P7(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "liabilitiesAmount"); -//// log.info("ReportBR_0420312_P7:\n{}\n", xStream.toXML(reportBR_0420312P7)); -//// -//// ReportBR_0420312_P8 reportBR_0420312P8 = new ReportBR_0420312_P8(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "currencyId", -//// "liabilitiesClaimsAssetsCompanyId", -//// "liabilitiesClaimsAssetsFullName", -//// "companySymbolCode", -//// "companySymbolValue", -//// "companyInfoCountryCode", -//// "clearingMemberCategory"); -//// log.info("ReportBR_0420312_P8:\n{}\n", xStream.toXML(reportBR_0420312P8)); -//// -//// ReportBR_0420312_P9 reportBR_0420312P9 = new ReportBR_0420312_P9(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "currencyId", -//// "liabilitiesClaimsAssetsCompanyId", -//// "liabilitiesClaimsMoneyCurrencyCode", -//// "liabilitiesClaimsAssetsLiabilities"); -//// log.info("ReportBR_0420312_P9:\n{}\n", xStream.toXML(reportBR_0420312P9)); -//// -//// ReportBR_0420312_P10 reportBR_0420312P10 = new ReportBR_0420312_P10(LocalDate.now(), -//// LocalDate.now(), -//// "BR", -//// "liabilitiesAmount"); -//// log.info("ReportBR_0420312_P10:\n{}\n", xStream.toXML(reportBR_0420312P10)); -//// -// -// -// /* ========= БТ 12.2 ========== */ -//// ReportPA_BT2_IV reportPA_bt2_iv = new ReportPA_BT2_IV(LocalDate.now(), -//// LocalDate.now(), -//// "clearingMemberCategory", -//// "liabilitiesClaimsAssetsFullName", -//// "companyClearingCode", -//// "liabilitiesClaimsAssetsSettlementDate", -//// "liabilitiesClaimsAssetsRefundDate", -//// "liabilitiesClaimsAssetsTradingDate", -//// "liabilitiesClaimsAssetsContract", -//// "liabilitiesClaimsAssetsLiabilitiesQuantity", -//// "chargeCommission", -//// "liabilitiesClaimsAssetsClaimsQuantity", -//// "liabilitiesClaimsAssetsRefundPaymentId", -//// "liabilitiesClaimsAssetsClearingStatus", -//// "liabilitiesClaimsAssetsComment", -//// "claimsAmount", -//// "liabilitiesAmount", -//// "paymentAmount"); -//// log.info("ReportPA_BT2_IV:\n{}\n", xStream.toXML(reportPA_bt2_iv)); -// -//// ReportPA_BT2_B reportPA_bt2_b = new ReportPA_BT2_B(LocalDate.now(), -//// LocalDate.now(), -//// "clearingMemberCategory", -//// "liabilitiesClaimsAssetsFullName", -//// "companyClearingCode", -//// "liabilitiesClaimsAssetsSettlementDate", -//// "liabilitiesClaimsAssetsRefundDate", -//// "liabilitiesClaimsAssetsTradingDate", -//// "liabilitiesClaimsAssetsContract", -//// "liabilitiesClaimsAssetsLiabilitiesQuantity", -//// "chargeCommission", -//// "liabilitiesClaimsAssetsClaimsQuantity", -//// "liabilitiesClaimsAssetsRefundPaymentId", -//// "liabilitiesClaimsAssetsClearingStatus", -//// "liabilitiesClaimsAssetsComment", -//// "claimsAmount", -//// "liabilitiesAmount", -//// "paymentAmount"); -//// log.info("ReportPA_BT2_B:\n{}\n", xStream.toXML(reportPA_bt2_b)); -// -// -// -// /* ========= БТ 13 ========== */ -//// ReportDOCIN report_bt13_11 = new ReportDOCIN(LocalDate.now(), -//// LocalTime.now(), -//// "inDocumentJournalRegistrationDate", -//// "inDocumentJournalRegistrationTime", -//// "inDocumentJournalRegistrationNumber", -//// "inDocumentJournalDocumentName" , -//// "inDocumentJournalSender", -//// "inDocumentJournalQuality", -//// "inDocumentJournalClearingCode", -//// "inDocumentJournalCourierType", -//// "inDocumentJournalEmailDate", -//// "inDocumentJournalAmount", -//// "inDocumentJournalDossierNumber", -//// "inDocumentJournalComment", -//// "inDocumentJournalReceiptDate"); -//// log.info("Report_BT13_11:\n{}\n", xStream.toXML(report_bt13_11)); -// -// Report_BT13_12 report_bt13_12 = new Report_BT13_12(LocalDate.now(), -// LocalTime.now(), -// "outDocumentJournalRegistrationDate", -// "outDocumentJournalRegistrationTime", -// "outDocumentJournalRegistrationNumber", -// "outDocumentJournalDocumentName" , -// "outDocumentJournalAddress", -// "outDocumentJournalQuality", -// "outDocumentJournalClearingCode", -// "outDocumentJournalCourierType", -// "outDocumentJournalEmailDate", -// "outDocumentJournalAmount", -// "outDocumentJournalDossierNumber", -// "outDocumentJournalPostDate"); -// log.info("Report_BT13_12:\n{}\n", xStream.toXML(report_bt13_12)); -// -// -// -// /* ========= БТ 16.5 ========== */ -// Report_BT16_5 report_bt16_5 = new Report_BT16_5(LocalDate.now(), -// LocalTime.now(), -// "clearingHouse", -// "companyClearingCode", -// "companyFullName", -// "accountBalanceAccount", -// "accountBalanceOpenAmount", -// "accountBalanceDebitAmount", -// "accountBalanceCreditAmount", -// "accountBalanceCloseAmount"); -// log.info("Report_BT16_5:\n{}\n", xStream.toXML(report_bt16_5)); -// -// -// -// } -//} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsServiceCommand.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsServiceCommand.java deleted file mode 100644 index a9244df38..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsServiceCommand.java +++ /dev/null @@ -1,270 +0,0 @@ -package ru.spcex.clearing.reports.services; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.lang.Nullable; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.misc.Session; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithPeriod; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionIdList; -import ru.spcex.clearing.reports.config.ReportBuildersConfig; -import ru.spcex.clearing.reports.config.element.ReportsServiceSettings; -import ru.spcex.clearing.reports.reports.*; -import ru.spcex.clearing.reports.services.builders.XMLReportBuilder; -import ru.spcex.platform.enumeration.ReportType; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.utils.enumeration.IEnumKey; -import ru.spcex.platform.utils.log.ExceptionUtils; - -import java.io.File; -import java.io.IOException; -import java.time.LocalDate; -import java.util.*; - -/** - * Исполняет создание отчётов. - * - * @see QCommandExecutor - */ -@Service -public class ReportsServiceCommand implements InitializingBean { - public static final String QUEUE_RUN_REPORT_COMMAND = "GREP"; // см. Task.createReport - public static final String QUEUE_RUN_DAILY_REPORT_COMMAND = QUEUE_RUN_REPORT_COMMAND; // дневные тоже по команде GREP запускать с остальными. - - private final Logger log = LoggerFactory.getLogger(getClass()); - - protected ReportsServiceSettings settings; - protected ImdgProvider imdg; - - @Deprecated - protected List allPeriodReports; // Spring services - @Deprecated - protected List allSimpleReports; - @Deprecated - private final Map collectorForReportById; - - // new format report: - ReportService newReportService; // by ReportBuildersConfig - Map>> reportBuildersWithoutParams; - Map>> reportBuildersWithSessionIdParam; - Map>> reportBuildersWithSessionIdListParam; - Map>> reportBuildersWithPeriodParams; - - - @Autowired - public ReportsServiceCommand(ImdgProvider imdg, - List allPeriodReports, - List allSimpleReports, - @Qualifier("reportBuildersWithoutParams") Map>> reportBuildersWithoutParams, - @Qualifier("reportBuildersWithSessionIdParam") Map>> reportBuildersWithSessionIdParam, - @Qualifier("reportBuildersWithSessionIdListParam") Map>> reportBuildersWithSessionIdListParam, - @Qualifier("reportBuildersWithPeriodParams") Map>> reportBuildersWithPeriodParams, - - ReportService reportService, - ReportsServiceSettings settings) { - this.imdg = imdg; - this.settings = settings; - - this.newReportService = reportService; - this.reportBuildersWithoutParams = reportBuildersWithoutParams; - this.reportBuildersWithSessionIdParam = reportBuildersWithSessionIdParam; - this.reportBuildersWithSessionIdListParam = reportBuildersWithSessionIdListParam; - this.reportBuildersWithPeriodParams = reportBuildersWithPeriodParams; - - this.allSimpleReports = allSimpleReports; - this.allPeriodReports = allPeriodReports; // allReports = context.getBeansOfType(ReportDataCollector.class); - this.collectorForReportById = new HashMap<>(); - for (ReportWithPeriodCollector collector : allPeriodReports) { - ReportId rId = collector.getReportId(); - collectorForReportById.put(rId, collector); - String idStr = rId == null ? null : rId.getKey(); - log.info("Register collector service {} (period report id \"{}\")for generate {}", collector, idStr, collector.getReportClass().getSimpleName()); - } - assert allPeriodReports.size() == collectorForReportById.size(); - for (SimpleReportCollector collector : allSimpleReports) { - ReportId rId = collector.getReportId(); - collectorForReportById.put(rId, collector); - String idStr = rId == null ? null : rId.getKey(); - log.info("Register collector service {} (simple report id \"{}\")for generate {}", collector, idStr, collector.getReportClass().getSimpleName()); - } - - } - - @Override - public void afterPropertiesSet() { - log.info("Wait IMDG..."); - imdg.waitAvailable(); - log.info("Report generator ready."); - } - - public void generateReportAll(@Nullable String reportGroup, LocalDate startDate, LocalDate endDate) throws IOException { - // new reports: - { - HashSet reported=new HashSet<>(); - for (ReportType rType : reportBuildersWithoutParams.keySet()) { - if (reported.contains(rType)) continue; - reported.add(rType); - log.info("Make report {}", rType); - try { - BaseRequest request = new BaseRequest<>(); - request.setRequestPayload(new ReportRequest()); - request.getRequestPayload().setReportId(rType.getKey()); - newReportService.createReport(request); - } catch (Exception e) { - log.error("Error make report {}: {}", rType, ExceptionUtils.getStackTrace(e)); - } - } - Imdg sessionImdg = imdg.getImdg(IMDGDistributedNames.Map_Session, Session.class); - Long sessionId = sessionImdg.aggregateLongMax("id", sessionImdg.predicateBuilder().greatEqual("id", 0L)); // max, always true - log.info("For all report sessionId={}", sessionId); - for (ReportType rType : reportBuildersWithSessionIdParam.keySet()) { - if (reported.contains(rType)) continue; - reported.add(rType); - log.info("Make report {}, session {}", rType, sessionId); - try { - BaseRequest request = new BaseRequest<>(); - request.setRequestPayload(new ReportRequestWithSessionId()); - request.getRequestPayload().setReportId(rType.getKey()); - request.getRequestPayload().setSessionId(sessionId); - newReportService.createReportForSessionId(request); - } catch (Exception e) { - log.error("Error make report {}: {}", rType, ExceptionUtils.getStackTrace(e)); - } - } - for (ReportType rType : reportBuildersWithSessionIdListParam.keySet()) { - if (reported.contains(rType)) continue; - reported.add(rType); - log.info("Make report {}, sessions {}", rType, sessionId); - try { - BaseRequest request = new BaseRequest<>(); - request.setRequestPayload(new ReportRequestWithSessionIdList()); - request.getRequestPayload().setReportId(rType.getKey()); - request.getRequestPayload().setSessionIdList(Arrays.asList(sessionId)); - newReportService.createReportForSessionIdList(request); - } catch (Exception e) { - log.error("Error make report {}: {}", rType, ExceptionUtils.getStackTrace(e)); - } - } - for (ReportType rType : reportBuildersWithPeriodParams.keySet()) { - if (reported.contains(rType)) continue; - reported.add(rType); - LocalDate d1=LocalDate.now().minusDays(1); - LocalDate d2=LocalDate.now().minusDays(1); - log.info("Make report {} period {} - {}", rType, d1, d2); - try { - BaseRequest request = new BaseRequest<>(); - request.setRequestPayload(new ReportRequestWithPeriod()); - request.getRequestPayload().setReportId(rType.getKey()); - request.getRequestPayload().setStartDate(d1); - request.getRequestPayload().setStartDate(d2); - newReportService.createReportForPeriod(request); - } catch (Exception e) { - log.error("Error make report {}: {}", rType, ExceptionUtils.getStackTrace(e)); - } - } - - } - - log.info(" Old format report..."); - // deprecated code: - for (ReportWithPeriodCollector reportDataCollector : allPeriodReports) { - if (reportGroup == null || QUEUE_RUN_REPORT_COMMAND.equals(reportGroup)) { - try { - makeSingleReport(reportDataCollector, startDate, endDate); - } catch (Exception e) { - log.error("Error generate report of type {}: {}", reportDataCollector, ExceptionUtils.getStackTrace(e)); - } - } - } - for (SimpleReportCollector reportDataCollector : allSimpleReports) { - if (reportGroup == null || QUEUE_RUN_DAILY_REPORT_COMMAND.equals(reportGroup)) { - try { - makeSingleReport(reportDataCollector); - } catch (Exception e) { - log.error("Error generate report of type {}: {}", reportDataCollector, ExceptionUtils.getStackTrace(e)); - } - } - } - } - - public void generateReportById(String reportIdStr, LocalDate startDate, LocalDate endDate) throws IOException { - ReportId reportId = parseReportId(reportIdStr); - AbstractReportCollector reportDataCollector = collectorForReportById.get(reportId); - if (reportDataCollector == null) - throw new IllegalStateException("Collector for ReportID " + reportId + " not implemented yet"); - - if (reportDataCollector instanceof ReportWithPeriodCollector) { - makeSingleReport((ReportWithPeriodCollector) reportDataCollector, startDate, endDate); - } else if (reportDataCollector instanceof SimpleReportCollector) { - makeSingleReport((SimpleReportCollector) reportDataCollector); - } else { - throw new IllegalArgumentException("Uncknown report class: " + reportDataCollector.getClass().getName()); - } - } - - - ReportId parseReportId(String reportStr) { - ReportId id = IEnumKey.getEnumByKey(ReportId.class, reportStr); - if (id == null) { - log.trace("Can not find ReportId by name: {}", reportStr); - id = ReportId.valueOf(reportStr); - } - return id; - } - - protected void makeSingleReport(ReportWithPeriodCollector reportDataCollector, LocalDate startDate, LocalDate endDate) throws IOException { - log.debug("Generate report by collector {} - {}", reportDataCollector.getClass().getSimpleName(), reportDataCollector.getReportClass().getSimpleName()); - File outPath = new File(settings.getReportModuleOut()); - XMLReportBuilder reportBuilder = new XMLReportBuilder(reportDataCollector.getReportClass(), outPath); - AbstractReport report = reportDataCollector.collectReportWithPeriod(startDate, endDate); - if (report == null) { - throw new NullPointerException("reportDataCollector " + reportDataCollector + " return null"); - } - File reportFile = reportBuilder.createReport(report); - if (reportFile != null) { - log.debug("New report file done: \"{}\"", reportFile); - } - } - - protected void makeSingleReport(SimpleReportCollector reportDataCollector) throws IOException { - log.debug("Generate report by collector {} - {}", reportDataCollector.getClass().getSimpleName(), reportDataCollector.getReportClass().getSimpleName()); - File outPath = new File(settings.getReportModuleOut()); - XMLReportBuilder reportBuilder = new XMLReportBuilder(reportDataCollector.getReportClass(), outPath); - AbstractReport report = reportDataCollector.collectReport(); - File reportFile = reportBuilder.createReport(report); - if (reportFile != null) { - log.debug("New report file done: \"{}\"", reportFile); - } - } - - - public void writeAllXML() throws IOException { - log.info("Report types with data range: {}", allPeriodReports); - for (ReportWithPeriodCollector collector : allPeriodReports) { - log.info("Make report {}", collector); - LocalDate date2 = LocalDate.now(); - LocalDate date1 = LocalDate.of(date2.getYear(), date2.getMonth(), 1);//date2.minusMonths(1); - makeSingleReport(collector, date1, date2); - } - log.info("Report types: {}", allSimpleReports); - for (SimpleReportCollector collector : allSimpleReports) { - log.info("Make report {}", collector); - LocalDate date2 = LocalDate.now(); - makeSingleReport(collector); - } - log.info("All done"); - } - - public void writeAllDocx() { - log.info("TODO write docx"); // todo write docx - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/SimpleReportCollector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/SimpleReportCollector.java deleted file mode 100644 index c25db9cd2..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/SimpleReportCollector.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.spcex.clearing.reports.services; - -import ru.spcex.clearing.reports.reports.AbstractReport; - -@Deprecated -public abstract class SimpleReportCollector extends AbstractReportCollector { - /** - * Подготовка отчета (без входных параметров) - */ - abstract public T collectReport(); -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/FileReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/FileReportBuilder.java deleted file mode 100644 index 04e9c6e79..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/FileReportBuilder.java +++ /dev/null @@ -1,22 +0,0 @@ -package ru.spcex.clearing.reports.services.builders; - -import ru.spcex.clearing.reports.reports.AbstractReport; - -import java.io.File; -import java.io.IOException; - -@Deprecated -public abstract class FileReportBuilder { - protected final Class reportClass; - - protected FileReportBuilder(Class reportClass) { - this.reportClass = reportClass; - } - - protected String makeFileName(String reportName, String extension) { - if (System.getProperty("os.name").toLowerCase().contains("windows")) reportName = reportName.replace(":", "_"); - return reportName + extension; - } - - public abstract File createReport(AbstractReport report) throws IOException; -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/XMLReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/XMLReportBuilder.java deleted file mode 100644 index baafed9b4..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/builders/XMLReportBuilder.java +++ /dev/null @@ -1,46 +0,0 @@ -package ru.spcex.clearing.reports.services.builders; - -import com.thoughtworks.xstream.XStream; -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.reports.AbstractReport; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.time.LocalDateTime; - -@Deprecated -public class XMLReportBuilder extends FileReportBuilder { - private final Logger log = LoggerFactory.getLogger(getClass()); - protected final XStream xStream; - protected final File outFolder; - - public XMLReportBuilder(Class reportClass, File outFolder) { - super(reportClass); - this.xStream = new XStream(new XppDriver(new NoNameCoder())); - xStream.processAnnotations(reportClass); - this.outFolder = outFolder; - } - - @Override - public File createReport(AbstractReport report) throws IOException { - String reportName = report.getReportName(LocalDateTime.now()); - String reportFileName = makeFileName(reportName, ".xml"); - - File reportFile = new File(outFolder, reportFileName); - if (reportFile.exists()) { - if (reportFile.isFile()) { - log.warn("Файл {} существует и будет перезаписан", reportFileName); - boolean deleteOk = reportFile.delete(); - if (!deleteOk) throw new IOException("Не удалось удалить файл " + reportFileName); - } else throw new IOException(reportFileName + " существует, но не является файлом"); - } - try (FileOutputStream fos = new FileOutputStream(reportFile)) { - xStream.toXML(report, fos); - } - return reportFile; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/MapUtil.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/MapUtil.java deleted file mode 100644 index 621868c9b..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/MapUtil.java +++ /dev/null @@ -1,55 +0,0 @@ -package ru.spcex.clearing.reports.services.collector; - -import org.apache.commons.lang3.StringUtils; -import ru.clearing.platform.dictionary.AbstractDictionary; -import ru.spcex.platform.classes.base.interfaces.WithId; -import ru.spcex.platform.imdg.api.Imdg; - -import java.util.*; -import java.util.function.Function; - -public class MapUtil { - - public static String joinMultiString(Collection from, Function stringFieldExtractor) { - ArrayList strToJoin = new ArrayList<>(from.size()); - for (V obj : from) { - String v = stringFieldExtractor.apply(obj); - if (v != null) { - strToJoin.add(v); - } - } - return StringUtils.join(strToJoin, ","); - } - - public static Map index(Collection from, Function indexFieldExtractor) { - Map index = new HashMap<>(); - for (V obj : from) { - K key = indexFieldExtractor.apply(obj); - V exist = index.put(key, obj); - if (exist != null) { - throw new IllegalStateException(String.format("%s with id=%s,%s has duplicate key=\"%s\"", - exist.getClass().getSimpleName(), exist.getId(), obj.getId(), key - )); - } - } - return index; - } - - public static Map> indexList(Collection from, Function indexFieldExtractor) { - Map> index = new HashMap<>(); - for (V obj : from) { - K key = indexFieldExtractor.apply(obj); - List lst = index.computeIfAbsent(key, (_key_) -> new ArrayList<>()); - lst.add(obj); - } - return index; - } - - public static Long getDictionaryIdByCode(Imdg dImdg, String code) { - TD dictItem = dImdg.getSingleObjectByFieldValues(Map.of("code", code)); - if (dictItem == null) { - throw new IllegalStateException(dImdg.getMapName() + " with code=\"" + code + "\" not fount"); - } - return dictItem.getId(); - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_12_2/ReportPA_B_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_12_2/ReportPA_B_Collector.java deleted file mode 100644 index 89d132aaf..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_12_2/ReportPA_B_Collector.java +++ /dev/null @@ -1,105 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_12_2; - -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.ClearingMemberCategory; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_12_2.ReportPA_B; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.enumeration.ClearingCategory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -@Component -@Deprecated -public class ReportPA_B_Collector extends ReportWithPeriodCollector { - private final Imdg liabilitiesClaimsAssetsImdg; - private final Imdg clearingMemberCategoryImdg; - - public ReportPA_B_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_LiabilitiesClaimsAssets, - LiabilitiesClaimsAssets.class - ); - clearingMemberCategoryImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_ClearingMemberCategory, - ClearingMemberCategory.class - ); - } - - @Override - public ReportPA_B collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - Collection clearingMemberCategories = - clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of( - "clearingMemberCategory", ClearingCategory.B.getKey() - )); - Set companyIds = clearingMemberCategories.stream() - .map(ClearingMemberCategory::getCompanyId) - .collect(Collectors.toSet()); - - ImdgPredicateBuilder builder = liabilitiesClaimsAssetsImdg.predicateBuilder(); - ImdgPredicate refundDatePredicate = builder.and( - builder.greatEqual("refundDate", (startDate)), - builder.lessEqual("refundDate", (endDate)) - ); - ImdgPredicate companyIdPredicates = builder.in("companyId", companyIds.toArray(new Comparable[0])); - ImdgPredicate finalPredicate = builder.and(refundDatePredicate, companyIdPredicates); - - Collection liabilitiesClaimsAssets = - liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate); - - ReportPA_B report = new ReportPA_B(startDate, endDate); - BigDecimal claimsAmount = BigDecimal.ZERO; - BigDecimal liabilitiesAmount = BigDecimal.ZERO; - BigDecimal paymentAmount = BigDecimal.ZERO; - for (LiabilitiesClaimsAssets liabilitiesClaimsAsset : liabilitiesClaimsAssets) { - ReportPA_B.Info_PA_B infoPAB = new ReportPA_B.Info_PA_B( - toString(liabilitiesClaimsAsset.getId()), - toString(liabilitiesClaimsAsset.getFullName()), - toString(liabilitiesClaimsAsset.getClearingCode()), - toString(liabilitiesClaimsAsset.getSettlementDate()), - toString(liabilitiesClaimsAsset.getRefundDate()), - toString(liabilitiesClaimsAsset.getTradingDate()), - toString(liabilitiesClaimsAsset.getContract()), - toString(liabilitiesClaimsAsset.getLiabilitiesQuantity()), - "", - toString(liabilitiesClaimsAsset.getClaimsQuantity()), - toString(liabilitiesClaimsAsset.getRefundPaymentId()), - toString(liabilitiesClaimsAsset.getClearingStatus()), - toString(liabilitiesClaimsAsset.getComment()) - ); - report.getRows().add(infoPAB); - if (liabilitiesClaimsAsset.getClaimsQuantity() != null) { - claimsAmount = claimsAmount.add(liabilitiesClaimsAsset.getClaimsQuantity()); - paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getClaimsQuantity()); - } - if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null) { - liabilitiesAmount = liabilitiesAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity()); - paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity().negate()); - } - } - ReportPA_B.Total total = new ReportPA_B.Total( - toString(claimsAmount), - toString(liabilitiesAmount), - toString(paymentAmount)); - report.setTotal(total); - - return report; - } - - @Override - public Class getReportClass() { - return ReportPA_B.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_12_2/ReportPA_IV_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_12_2/ReportPA_IV_Collector.java deleted file mode 100644 index b14a4978e..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_12_2/ReportPA_IV_Collector.java +++ /dev/null @@ -1,109 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_12_2; - -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.ClearingMemberCategory; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.clearing.platform.dictionary.ClearingStatusDictionary; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_12_2.ReportPA_IV; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.enumeration.ClearingCategory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Set; -import java.util.stream.Collectors; - -@Component -@Deprecated -public class ReportPA_IV_Collector extends ReportWithPeriodCollector { - private final Imdg liabilitiesClaimsAssetsImdg; - private final Imdg clearingStatusDictionaryImdg; - private final Imdg clearingMemberCategoryImdg; - - public ReportPA_IV_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_LiabilitiesClaimsAssets, - LiabilitiesClaimsAssets.class - ); - clearingStatusDictionaryImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_ClearingStatusDictionary, - ClearingStatusDictionary.class - ); - clearingMemberCategoryImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_ClearingMemberCategory, - ClearingMemberCategory.class - ); - } - - @Override - public ReportPA_IV collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - String clearingMemberCategorySql = "clearingMemberCategory='%s' or clearingMemberCategory='%s'".formatted( - ClearingCategory.I.getKey(), ClearingCategory.V.getKey() - ); - Collection clearingMemberCategories = - clearingMemberCategoryImdg.getCollectionObjectsBySQL(clearingMemberCategorySql); - Set companyIds = clearingMemberCategories.stream() - .map(ClearingMemberCategory::getCompanyId) - .collect(Collectors.toSet()); - - ImdgPredicateBuilder builder = liabilitiesClaimsAssetsImdg.predicateBuilder(); - ImdgPredicate refundDatePredicate = builder.and( - builder.greatEqual("refundDate", (startDate)), - builder.lessEqual("refundDate", (endDate)) - ); - ImdgPredicate companyIdPredicates = builder.in("companyId", companyIds.toArray(new Comparable[0])); - ImdgPredicate finalPredicate = builder.and(refundDatePredicate, companyIdPredicates); - Collection liabilitiesClaimsAssets = - liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate); - - ReportPA_IV report = new ReportPA_IV(startDate, endDate); - BigDecimal claimsAmount = BigDecimal.ZERO; - BigDecimal liabilitiesAmount = BigDecimal.ZERO; - BigDecimal paymentAmount = BigDecimal.ZERO; - for (LiabilitiesClaimsAssets liabilitiesClaimsAsset : liabilitiesClaimsAssets) { - ReportPA_IV.Info_PA_IV row = new ReportPA_IV.Info_PA_IV( - toString(liabilitiesClaimsAsset.getId()), - toString(liabilitiesClaimsAsset.getFullName()), - toString(liabilitiesClaimsAsset.getClearingCode()), - toString(liabilitiesClaimsAsset.getSettlementDate()), - toString(liabilitiesClaimsAsset.getRefundDate()), - toString(liabilitiesClaimsAsset.getTradingDate()), - toString(liabilitiesClaimsAsset.getContract()), - toString(liabilitiesClaimsAsset.getLiabilitiesQuantity()), - "", - toString(liabilitiesClaimsAsset.getClaimsQuantity()), - toString(liabilitiesClaimsAsset.getRefundPaymentId()), - toString(liabilitiesClaimsAsset.getClearingStatus()), - toString(liabilitiesClaimsAsset.getComment())); - report.getRows().add(row); - if (liabilitiesClaimsAsset.getClaimsQuantity() != null) { - claimsAmount = claimsAmount.add(liabilitiesClaimsAsset.getClaimsQuantity()); - paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getClaimsQuantity()); - } - if (liabilitiesClaimsAsset.getLiabilitiesQuantity() != null) { - liabilitiesAmount = liabilitiesAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity()); - paymentAmount = paymentAmount.add(liabilitiesClaimsAsset.getLiabilitiesQuantity().negate()); - } - } - ReportPA_IV.Total total = new ReportPA_IV.Total( - toString(claimsAmount), - toString(liabilitiesAmount), - toString(paymentAmount)); - report.setTotal(total); - - return report; - } - - @Override - public Class getReportClass() { - return ReportPA_IV.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCIN_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCIN_Collector.java deleted file mode 100644 index 4376a8adf..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCIN_Collector.java +++ /dev/null @@ -1,66 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_13; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.journal.InDocumentJournal; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_13.ReportDOCIN; -import ru.spcex.clearing.reports.services.SimpleReportCollector; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; - -import java.time.LocalDate; -import java.time.LocalTime; -import java.util.Collection; - -@Component -@Deprecated -public class ReportDOCIN_Collector extends SimpleReportCollector { - protected final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg inDocumentJournalImdg; - - public ReportDOCIN_Collector(ImdgProvider imdgProvider) { - this.inDocumentJournalImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_InDocumentJournal, - InDocumentJournal.class - ); - } - - @Override - public ReportDOCIN collectReport() { - LocalDate currentDate = LocalDate.now(); - ImdgPredicateBuilder pb = inDocumentJournalImdg.predicateBuilder(); - ImdgPredicate p = pb.equals("registrationDate", currentDate); - Collection inDocumentsJournal = inDocumentJournalImdg.getCollectionObjectsByPredicate(p); - ReportDOCIN reportDOCIN = new ReportDOCIN(LocalDate.now(), LocalTime.now()); - for (InDocumentJournal inDocumentJournal : inDocumentsJournal) { - ReportDOCIN.Info_DOCIN infoDOCIN = new ReportDOCIN.Info_DOCIN( - toString(inDocumentJournal.getId()), - toString(inDocumentJournal.getRegistrationDate()), - toString(inDocumentJournal.getRegistrationTime()), - toString(inDocumentJournal.getRegistrationNumber()), - toString(inDocumentJournal.getDocumentName()), - toString(inDocumentJournal.getSender()), - toString(inDocumentJournal.getQuantity()), - toString(inDocumentJournal.getClearingCode()), - toString(inDocumentJournal.getCourierType()), - toString(inDocumentJournal.getEmailDate()), - toString(inDocumentJournal.getAmount()), - toString(inDocumentJournal.getDossierNumber()), - toString(inDocumentJournal.getComment()), - toString(inDocumentJournal.getReceiptDate())); - reportDOCIN.getRows().add(infoDOCIN); - } - return reportDOCIN; - } - - @Override - public Class getReportClass() { - return ReportDOCIN.class; - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCOUT_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCOUT_Collector.java deleted file mode 100644 index 3e613a82d..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCOUT_Collector.java +++ /dev/null @@ -1,65 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_13; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.journal.OutDocumentJournal; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_13.ReportDOCOUT; -import ru.spcex.clearing.reports.services.SimpleReportCollector; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; - -import java.time.LocalDate; -import java.time.LocalTime; -import java.util.Collection; - -@Component -@Deprecated -public class ReportDOCOUT_Collector extends SimpleReportCollector { - protected final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg inDocumentJournalImdg; - - public ReportDOCOUT_Collector(ImdgProvider imdgProvider) { - this.inDocumentJournalImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_OutDocumentJournal, - OutDocumentJournal.class - ); - } - - @Override - public ReportDOCOUT collectReport() { - LocalDate currentDate = LocalDate.now(); - ImdgPredicateBuilder pb = inDocumentJournalImdg.predicateBuilder(); - ImdgPredicate p = pb.equals("registrationDate", currentDate); - Collection outDocumentsJournal = inDocumentJournalImdg.getCollectionObjectsByPredicate(p); - ReportDOCOUT reportDOCOUT = new ReportDOCOUT(LocalDate.now(), LocalTime.now()); - for (OutDocumentJournal outDocumentJournal : outDocumentsJournal) { - ReportDOCOUT.Info_DOCOUT infoDOCOUT = new ReportDOCOUT.Info_DOCOUT( - toString(outDocumentJournal.getId()), - toString(outDocumentJournal.getRegistrationDate()), - toString(outDocumentJournal.getRegistrationTime()), - toString(outDocumentJournal.getRegistrationNumber()), - toString(outDocumentJournal.getDocumentName()), - toString(outDocumentJournal.getAddressee()), - toString(outDocumentJournal.getQuantity()), - toString(outDocumentJournal.getClearingCode()), - toString(outDocumentJournal.getCourierType()), - toString(outDocumentJournal.getEmailDate()), - toString(outDocumentJournal.getAmount()), - toString(outDocumentJournal.getDossierNumber()), - toString(outDocumentJournal.getPostDate())); - reportDOCOUT.getRows().add(infoDOCOUT); - } - return reportDOCOUT; - } - - @Override - public Class getReportClass() { - return ReportDOCOUT.class; - } - -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_16_5/ReportINACCNT_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_16_5/ReportINACCNT_Collector.java deleted file mode 100644 index ef8f26a24..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_16_5/ReportINACCNT_Collector.java +++ /dev/null @@ -1,78 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_16_5; - -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.clearing.classes.statics.data.company.Company; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_16_5.ReportINACCNT; -import ru.spcex.clearing.reports.services.ReportForClearingCodeCollector; -import ru.spcex.platform.enumeration.AccountType; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; - -import java.time.LocalDate; -import java.time.LocalTime; -import java.util.Collection; -import java.util.Set; -import java.util.stream.Collectors; - -@Component -@Deprecated -public class ReportINACCNT_Collector extends ReportForClearingCodeCollector { - private final Imdg accountBalanceImdg; - private final Imdg companyImdg; - - public ReportINACCNT_Collector(ImdgProvider imdgProvider) { - accountBalanceImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_AccountBalance, - AccountBalance.class - ); - companyImdg = imdgProvider.getImdg( - IMDGDistributedNames.Map_Company, - Company.class - ); - } - - @Override - public ReportINACCNT collectReportForClearingCode(String clearingCode) { - ImdgPredicateBuilder builder = companyImdg.predicateBuilder(); - - ImdgPredicate clearingCodePredicate = builder.equals("clearingCode", clearingCode); - Collection companies = companyImdg.getCollectionObjectsByPredicate(clearingCodePredicate); - Set companyIds = companies.stream() - .map(Company::getId) - .collect(Collectors.toSet()); - - ImdgPredicate accountTypePredicate = builder.or( - builder.equals("accountType", AccountType.Clrn.getKey()), - builder.equals("accountType", AccountType.Info.getKey()) - ); - ImdgPredicate companyIdPredicates = builder.in("companyId", companyIds.toArray(new Comparable[0])); - - ImdgPredicate finalPredicate = builder.and(accountTypePredicate, companyIdPredicates); - Collection accountBalances = accountBalanceImdg.getCollectionObjectsByPredicate(finalPredicate); - - ReportINACCNT reportINACCNT = new ReportINACCNT(clearingCode, LocalDate.now(), LocalTime.now()); - for (AccountBalance accountBalance : accountBalances) { - ReportINACCNT.Info_INACCNT infoReport = new ReportINACCNT.Info_INACCNT( - toString(accountBalance.getId()), - toString(accountBalance.getFullName()), - toString(clearingCode), - toString(accountBalance.getAccount()), - toString(accountBalance.getOpenBalanceAmount()), - toString(accountBalance.getDebitAmount()), - toString(accountBalance.getCreditAmount()), - toString(accountBalance.getCloseBalanceAmount())); - reportINACCNT.getRows().add(infoReport); - } - - return reportINACCNT; - } - - @Override - public Class getReportClass() { - return ReportINACCNT.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_1/ReportBR_0420315_P1_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_1/ReportBR_0420315_P1_Collector.java deleted file mode 100644 index 6acb0fb0b..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_1/ReportBR_0420315_P1_Collector.java +++ /dev/null @@ -1,125 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_1; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.ClearingMemberCategory; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.clearing.classes.statics.data.misc.Listing; -import ru.clearing.platform.dictionary.ClearingStatusDictionary; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_1.ReportBR_0420315_P1; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.enumeration.ClearingCategory; -import ru.spcex.platform.enumeration.ClearingStatus; -import ru.spcex.platform.enumeration.Market; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.*; - -@Component -@Deprecated -public class ReportBR_0420315_P1_Collector extends ReportWithPeriodCollector { - protected static final List ALLOW_CLEARING_MEMBER_CATEGORY = Arrays.asList(ClearingCategory.I.getKey(), ClearingCategory.V.getKey()); - - private Imdg companyImdg; - private Imdg liabilitiesClaimsAssetsImdg; - private Imdg clearingMemberCategoryImdg; - private Imdg clearingStatusDictionaryImdg; - private Imdg

listingImdg; - - @Autowired - public ReportBR_0420315_P1_Collector(ImdgProvider imdgProvider) { - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); - clearingStatusDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingStatusDictionary, ClearingStatusDictionary.class); - listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class); - } - - /** - * @param onMarket Market.mkrs.getKey() - * @param securityId liability.getSecurityId() - * @return - */ - protected Listing findListing(Market onMarket, Long securityId) { - Map qParam = new HashMap<>(); - qParam.put("market", onMarket.getKey()); - qParam.put("securityId", securityId); - return listingImdg.getSingleObjectByFieldValues(qParam); - } - - @Override - public ReportBR_0420315_P1 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - ReportBR_0420315_P1 reportBR_0420315_p1 = new ReportBR_0420315_P1(startDate, endDate); - final Long allowClearingStatusId = MapUtil.getDictionaryIdByCode(clearingStatusDictionaryImdg, ClearingStatus.OK.getKey()); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate, allowClearingStatusId); - - Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); - company_for: - for (Map.Entry> companyEntry : indexByCompany.entrySet()) { - final Long companyId = companyEntry.getKey(); - List liabilitiesOfCompany = companyEntry.getValue(); - Company company = companyImdg.getSingleObjectByID(companyId); - if (company != null) { - Collection cmcLst = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of("companyId", companyId)); - boolean checkCategory = cmcLst.stream() - .anyMatch(cmc -> ALLOW_CLEARING_MEMBER_CATEGORY.contains(cmc.getClearingMemberCategory())); - if (!checkCategory) { - // фильтруются <> I, V - log.trace("Filtered company[{}] ClearingMemberCategory no match: {}", - companyId, cmcLst); - continue company_for; - } - - HashSet onMarket = new HashSet<>(); - - long contractorQty; - BigDecimal liabilitiesAmount = BigDecimal.ZERO; - { - HashSet collectedContract = new HashSet<>(); - HashSet onMarketSecurity = new HashSet<>(); - for (LiabilitiesClaimsAssets lContract : liabilitiesOfCompany) { - if (!onMarketSecurity.contains(lContract.getSecurityId())) { - Listing listing = findListing(Market.mkrs, lContract.getSecurityId()); - if (listing != null) { - onMarket.add(listing.getMarket()); - } - onMarketSecurity.add(lContract.getSecurityId()); - } - if (lContract.getLiabilitiesQuantity() != null && StringUtils.isNotEmpty(lContract.getContract())) { - collectedContract.add(lContract.getContract()); - liabilitiesAmount = liabilitiesAmount.add(lContract.getLiabilitiesQuantity()); - } - } - contractorQty = collectedContract.size(); - } - String onMarketString = StringUtils.join(onMarket, ","); - if (onMarket.size() != 1) { // Сейчас по коду ожидается один listing.market="MKRS" но потом могут быть несколько - log.warn("Market for companyId[{}]: {}", companyId, onMarketString); - } - ReportBR_0420315_P1.Info_0420315_P1 info_0420315_p1 = new ReportBR_0420315_P1.Info_0420315_P1( - company.getId().toString(), - toString(company.getFullName()), - onMarketString, - toString(contractorQty), - toString(liabilitiesAmount)); - reportBR_0420315_p1.getRows().add(info_0420315_p1); - } - } - - return reportBR_0420315_p1; - } - - @Override - public Class getReportClass() { - return ReportBR_0420315_P1.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_1/ReportBR_0420315_P2_collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_1/ReportBR_0420315_P2_collector.java deleted file mode 100644 index 9085d5c76..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_1/ReportBR_0420315_P2_collector.java +++ /dev/null @@ -1,57 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_1; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_1.ReportBR_0420315_P2; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.HashSet; - -@Component -@Deprecated -public class ReportBR_0420315_P2_collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420315_P2_collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - @Override - public ReportBR_0420315_P2 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - - long liabilitiesAmount; - BigDecimal contractorQty = BigDecimal.ZERO; - { - HashSet collectedToSumm = new HashSet<>(); - for (LiabilitiesClaimsAssets lContract : liabilities) { - if (lContract.getLiabilitiesQuantity() != null && StringUtils.isNotEmpty(lContract.getContract())) { - collectedToSumm.add(lContract.getContract()); - contractorQty = contractorQty.add(lContract.getLiabilitiesQuantity()); - } - } - liabilitiesAmount = collectedToSumm.size(); - } - - ReportBR_0420315_P2 reportBR_0420315_p2 = new ReportBR_0420315_P2(startDate, endDate); - reportBR_0420315_p2.setRows(new ReportBR_0420315_P2.Info_0420315_P2(toString(contractorQty), - toString(liabilitiesAmount))); - - return reportBR_0420315_p2; - } - - @Override - public Class getReportClass() { - return ReportBR_0420315_P2.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_2/ReportBR_0420317_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_2/ReportBR_0420317_Collector.java deleted file mode 100644 index 383fe89f4..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_2/ReportBR_0420317_Collector.java +++ /dev/null @@ -1,83 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_2; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.clearing.classes.statics.data.company.relation.Relation; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_2.ReportBR_0420317; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.enumeration.DocumentTypes; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; - -import java.time.Instant; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Map; - -@Component -@Deprecated -public class ReportBR_0420317_Collector extends ReportWithPeriodCollector { - private Imdg companyImdg; - private Imdg relationImdg; - private Imdg companySymbolsImdg; - - @Autowired - public ReportBR_0420317_Collector(ImdgProvider imdgProvider) { - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); - companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - } - - Collection searchRelation(LocalDate startDate, LocalDate endDate, String service) { - ImdgPredicateBuilder pb = relationImdg.predicateBuilder(); - Instant dateTimeLo = toInstantStartDay(startDate); - Instant dateTimeHi = toInstantEndDay(endDate); - ImdgPredicate p = pb.and(pb.greatEqual("updated", dateTimeLo), pb.lessEqual("updated", dateTimeHi), - pb.equals("service", service)); - Collection relations = relationImdg.getCollectionObjectsByPredicate(p); - return relations; - } - - @Override - public ReportBR_0420317 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - Collection relations = searchRelation(startDate, endDate, "MKR"); - - ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(startDate, endDate); - for (Relation relation: relations) { - Company company = relation.getConsumerId() == null ? null : companyImdg.getSingleObjectByID(relation.getConsumerId()); - if (company == null) { - log.warn("Company.id={} not found for relation.id={}", relation.getConsumerId(), relation.getId()); - continue; - } - CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( - "companySymbol", DocumentTypes.inn.getKey(),// ИНН или TIN участника клиринга - "companyId", company.getId() - )); - ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317( - toString(company.getClearingCode()), - toString(toString(relation.getSupplierId())), - toString(relation.getService()), - toString(relation.getServiceStatus()), - toString(relation.getUpdated()), - toString(company.getFullName()), - companySymbol == null ? "" : toString(companySymbol.getCompanySymbolValue()), - toString(company.getProfile().getCountryCode()), - toString(relation.getComment())); - reportBR_0420317.getRows().add(info_0420317); - } - - return reportBR_0420317; - } - - @Override - public Class getReportClass() { - return ReportBR_0420317.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_3/ReportBR_0420318_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_3/ReportBR_0420318_Collector.java deleted file mode 100644 index 2ef561446..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_3/ReportBR_0420318_Collector.java +++ /dev/null @@ -1,117 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_3; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.ClearingMemberCategory; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_3.ReportBR_0420318; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.enumeration.ClearingCategory; -import ru.spcex.platform.enumeration.DocumentTypes; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -@Component -@Deprecated -public class ReportBR_0420318_Collector extends ReportWithPeriodCollector { - - private Imdg liabilitiesClaimsAssetsImdg; - private Imdg liabilitiesClaimsMoneyImdg; - - private Imdg companyImdg; - private Imdg companySymbolsImdg; - private Imdg clearingMemberCategoryImdg; - - @Autowired - public ReportBR_0420318_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - liabilitiesClaimsMoneyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, LiabilitiesClaimsMoney.class); - clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - } - - protected CompanySymbols findSymbol(DocumentTypes docType, Long companyId) { - CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( - "companySymbol", docType.getKey(), - "companyId", companyId - )); - return companySymbol; - } - - @Override - public ReportBR_0420318 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - Collection allLiabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - - ReportBR_0420318 reportBR_0420318 = new ReportBR_0420318(startDate, endDate); - - Map> indexByCompany = MapUtil.indexList(allLiabilities, LiabilitiesClaimsAssets::getCompanyId); - - for (Map.Entry> liabilitiesByCompanyE : indexByCompany.entrySet()) { - final Long companyId = liabilitiesByCompanyE.getKey(); - final List liabilitiesByCompany = liabilitiesByCompanyE.getValue(); - - Company company = companyImdg.getSingleObjectByID(companyId); - CompanySymbols companySymbolINN = findSymbol(DocumentTypes.inn, company.getId()); - - Collection cmcLst = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of("companyId", companyId)); - - boolean checkCategoryB = cmcLst.stream().anyMatch(cmc -> ClearingCategory.B.equalsByKey(cmc.getClearingMemberCategory())); - boolean checkCategoryIV = cmcLst.stream().anyMatch(cmc -> ClearingCategory.I.equalsByKey(cmc.getClearingMemberCategory()) || ClearingCategory.V.equalsByKey(cmc.getClearingMemberCategory())); - - for (LiabilitiesClaimsAssets liability : liabilitiesByCompany) { - final String currencyCode = liability.getCurrency(); - - LocalDate liabilitiesClaimsAssets_settlementDate = null; - if (checkCategoryB) { - liabilitiesClaimsAssets_settlementDate = liability.getRefundDate(); - } - if (checkCategoryIV) { - liabilitiesClaimsAssets_settlementDate = liability.getSettlementDate(); - } - - BigDecimal liabilitiesClaimsAssets_liabilitiesQuantity = liability.getLiabilitiesQuantity(); - - LiabilitiesClaimsMoney liabilitiesClaimsMoney = liabilitiesClaimsMoneyImdg.getSingleObjectByFieldValues(Map.of("currency", currencyCode)); - - BigDecimal liabilitiesCount = liability.getClaimsQuantity(); - - ReportBR_0420318.Info_0420318 info_0420318 = new ReportBR_0420318.Info_0420318( - toString(liability.getFullName()), - toString(companySymbolINN == null ? null : companySymbolINN.getCompanySymbolValue()), - toString(company.getProfile().getCountryCode()), - toString(liabilitiesClaimsAssets_settlementDate), - toString(liability.getContract()), - toString(currencyCode), - toString(liabilitiesClaimsAssets_liabilitiesQuantity), - liabilitiesClaimsMoney == null ? "" : toString(liabilitiesClaimsMoney.getFullName()), - toString(liabilitiesCount), - toString(liability.getComment()), - companySymbolINN == null ? "" : toString(companySymbolINN.getCompanySymbolValue()), - toString(liability.getFullName()) - ); - reportBR_0420318.getRows().add(info_0420318); - } - } - - - return reportBR_0420318; - } - - @Override - public Class getReportClass() { - return ReportBR_0420318.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_4/ReportBR_0420314_P1_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_4/ReportBR_0420314_P1_Collector.java deleted file mode 100644 index bf4022354..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_4/ReportBR_0420314_P1_Collector.java +++ /dev/null @@ -1,101 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_4; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.ClearingMemberCategory; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.clearing.platform.dictionary.ClearingStatusDictionary; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_4.ReportBR_0420314_P1; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.enumeration.ClearingStatus; -import ru.spcex.platform.enumeration.DocumentTypes; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.time.LocalDate; -import java.util.Collection; -import java.util.Map; - -/** - * accountTransactionLiabilities - */ -@Component -@Deprecated -public class ReportBR_0420314_P1_Collector extends ReportWithPeriodCollector { - private Imdg companyImdg; - private Imdg companySymbolsImdg; - private Imdg clearingMemberCategoryImdg; - private Imdg liabilitiesClaimsAssetsImdg; - private Imdg clearingStatusDictionaryImdg; - - protected static final String ALLOW_CLEARING_STATUS = ClearingStatus.OK.getKey(); - - @Autowired - public ReportBR_0420314_P1_Collector(ImdgProvider imdgProvider) { - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); - clearingStatusDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingStatusDictionary, ClearingStatusDictionary.class); - } - - protected CompanySymbols findSymbol(DocumentTypes docType, Long companyId) { - CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( - "companySymbol", docType.getKey(), - "companyId", companyId - )); - return companySymbol; - } - - - @Override - public ReportBR_0420314_P1 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - ReportBR_0420314_P1 reportBR_0420312P1 = new ReportBR_0420314_P1(startDate, endDate, "BR", - ALLOW_CLEARING_STATUS //clearingStatus.getCode() "OK" - ); - final Long allowClearingStatusId = MapUtil.getDictionaryIdByCode(clearingStatusDictionaryImdg, ALLOW_CLEARING_STATUS); // "OK" - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate, allowClearingStatusId); - - for (LiabilitiesClaimsAssets liability: liabilities) { - final Long companyId = liability.getCompanyId(); - Company company = companyImdg.getSingleObjectByID(companyId); - if (company == null) { - log.warn("Company not found by LiabilitiesClaimsAssets.CompanyId={}", companyId); - continue; - } - Collection cmcLst = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of("companyId", companyId)); - String cleanMemberCategories = MapUtil.joinMultiString(cmcLst, ClearingMemberCategory::getClearingMemberCategory); - - CompanySymbols companySymbolCntr = findSymbol(DocumentTypes.cntr, company.getId()); - CompanySymbols companySymbolINN = findSymbol(DocumentTypes.inn, company.getId()); - CompanySymbols companySymbolOGRN = findSymbol(DocumentTypes.ogrn, company.getId()); - - ReportBR_0420314_P1.Info_0420314_P1 info_0420314P1 = new ReportBR_0420314_P1.Info_0420314_P1( - toString(company.getClearingCode()), - toString(companySymbolCntr == null? null : companySymbolCntr.getId()), - toString(company.getFullName()), - toString(companySymbolINN == null ? null : companySymbolINN.getCompanySymbolValue()), - toString(companySymbolOGRN == null? null : companySymbolOGRN.getCompanySymbolValue()), - toString(cleanMemberCategories), // может быть несколько, тогда через запятую перечислить - toString(liability.getRefundPaymentId()), - toString(liability.getTradingDate()), - toString(liability.getLiabilitiesQuantity()) - ); - reportBR_0420312P1.getRows().add(info_0420314P1); - } - - return reportBR_0420312P1; - } - - @Override - public Class getReportClass() { - return ReportBR_0420314_P1.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_4/ReportBR_0420314_P2_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_4/ReportBR_0420314_P2_Collector.java deleted file mode 100644 index 14ce6e0bf..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_4/ReportBR_0420314_P2_Collector.java +++ /dev/null @@ -1,131 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_4; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.payment.PaymentInstruction; -import ru.clearing.classes.statics.data.profile.ProfileDocument; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_4.ReportBR_0420314_P2; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.enumeration.AccountType; -import ru.spcex.platform.enumeration.DocumentTypes; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -/** - * accountTransactionLiabilities - */ -@Component -@Deprecated -public class ReportBR_0420314_P2_Collector extends ReportWithPeriodCollector { - private Imdg companyImdg; - private Imdg paymentInstructionImdg; - private Imdg accountBalanceImdg; - private Imdg profileDocumentImdg; - - @Autowired - public ReportBR_0420314_P2_Collector(ImdgProvider imdgProvider) { - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - paymentInstructionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class); - accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); - profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); - } - - Collection searchPaymentInstruction(LocalDate startDate, LocalDate endDate) { - ImdgPredicateBuilder pb = paymentInstructionImdg.predicateBuilder(); - Instant dateTimeLo = toInstantStartDay(startDate); - Instant dateTimeHi = toInstantEndDay(endDate); - ImdgPredicate p = pb.and(pb.greatEqual("created", dateTimeLo), pb.lessEqual("created", dateTimeHi)); - Collection paymentInstructionsAll = paymentInstructionImdg.getCollectionObjectsByPredicate(p); - return paymentInstructionsAll; - } - - @Override - public ReportBR_0420314_P2 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - ReportBR_0420314_P2 reportBR_0420312P2 = new ReportBR_0420314_P2(startDate, endDate, - "", "BR" - ); - - Collection paymentInstructionsAll = searchPaymentInstruction(startDate, endDate); - - Map> companyIdPyPaymtInstruction = - MapUtil.indexList(paymentInstructionsAll, PaymentInstruction::getSenderId); - - for (Map.Entry> entry : companyIdPyPaymtInstruction.entrySet()) { - final Long companyId = entry.getKey(); - List paymentInstructionsByCompany = entry.getValue(); - Company company = companyImdg.getSingleObjectByID(companyId); - if (company == null) { - log.warn("Company not found, id={}", companyId); - continue; - } - ProfileDocument profileDocumentCntr = profileDocumentImdg.getSingleObjectByFieldValues(Map.of( - "companyId", companyId, - "documentType", DocumentTypes.cntr.getKey() - )); - AccountBalance accountBalance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of( - "accountType", AccountType.Clrn.getKey(), - "companyId", companyId - )); - - String documentTypeStr = null; - if (profileDocumentCntr != null) { - documentTypeStr = profileDocumentCntr.getNumber(); - if (profileDocumentCntr.getValidFromDate() != null) { - if (StringUtils.isEmpty(documentTypeStr)) { - documentTypeStr = ""; - } else { - documentTypeStr += " "; - } - documentTypeStr += toString(profileDocumentCntr.getValidFromDate()); - } - } - - BigDecimal paymentInstruction_creditLeg_amount = paymentInstructionsByCompany.stream() - .map(PaymentInstruction::getCreditLeg_amount) - .filter(Objects::nonNull) - .reduce(BigDecimal::add) - .orElse(BigDecimal.ZERO); - BigDecimal paymentInstructiont_debitLeg_amount = paymentInstructionsByCompany.stream() - .map(PaymentInstruction::getDebitLeg_amount) - .filter(Objects::nonNull) - .reduce(BigDecimal::add) - .orElse(BigDecimal.ZERO); - - - ReportBR_0420314_P2.Info_0420314_P2 info_0420314P2 = new ReportBR_0420314_P2.Info_0420314_P2( - toString(company.getClearingCode()), - toString(documentTypeStr), - toString(accountBalance == null ? null : accountBalance.getOpenBalanceAmount()), - toString(paymentInstruction_creditLeg_amount), - toString(paymentInstructiont_debitLeg_amount), - toString(accountBalance == null ? null : accountBalance.getCloseBalanceAmount()) - ); - - reportBR_0420312P2.getRows().add(info_0420314P2); - } - - return reportBR_0420312P2; - } - - @Override - public Class getReportClass() { - return ReportBR_0420314_P2.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P10_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P10_Collector.java deleted file mode 100644 index c2c39feb3..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P10_Collector.java +++ /dev/null @@ -1,49 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P10; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Objects; - -@Component -@Deprecated -public class ReportBR_0420312_P10_Collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P10_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - @Override - public ReportBR_0420312_P10 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - - BigDecimal liabilitiesQuantitySum = liabilities.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - - ReportBR_0420312_P10 reportBR_0420312P10 = new ReportBR_0420312_P10(startDate, endDate); - ReportBR_0420312_P10.Info_0420312_P10 reportInfo = new ReportBR_0420312_P10.Info_0420312_P10(toString(liabilitiesQuantitySum)); - reportBR_0420312P10.getRows().add(reportInfo); - - return reportBR_0420312P10; - } - - @Override - public Class getReportClass() { - return ReportBR_0420312_P10.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P1_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P1_Collector.java deleted file mode 100644 index a71ff3df7..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P1_Collector.java +++ /dev/null @@ -1,85 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.ClearingMemberCategory; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P1; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.enumeration.DocumentTypes; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -@Component -@Deprecated -public class ReportBR_0420312_P1_Collector extends ReportWithPeriodCollector { - private final Imdg companyImdg; - private final Imdg companySymbolsImdg; - private final Imdg clearingMemberCategoryImdg; - private final Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P1_Collector(ImdgProvider imdgProvider) { - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); - } - - protected CompanySymbols findSymbol(DocumentTypes docType, Long companyId) { - CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( - "companySymbol", docType.getKey(), - "companyId", companyId - )); - return companySymbol; - } - - @Override - public ReportBR_0420312_P1 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - ReportBR_0420312_P1 reportBR_0420312P1 = new ReportBR_0420312_P1(startDate, endDate, "BR"); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); - - for (Map.Entry> companyEntry : indexByCompany.entrySet()) { - final Long companyId = companyEntry.getKey(); - Company company = companyImdg.getSingleObjectByID(companyId); - if (company == null) { - log.warn("Company not found by LiabilitiesClaimsAssets.CompanyId={}", companyId); - continue; - } - CompanySymbols companySymbolINN = findSymbol(DocumentTypes.inn, company.getId()); - CompanySymbols companySymbolOGRN = findSymbol(DocumentTypes.ogrn, company.getId()); - ClearingMemberCategory cmc = clearingMemberCategoryImdg.getSingleObjectByFieldValues(Map.of("companyId", companyId)); - String clearingMemberCategory = cmc == null ? null : cmc.getClearingMemberCategory(); - ReportBR_0420312_P1.Info_0420312_P1 info_0420312_p1 = new ReportBR_0420312_P1.Info_0420312_P1( - toString(company.getClearingCode()), - toString(companyId), - toString(company.getFullName()), - companySymbolINN == null ? null : toString(companySymbolINN.getCompanySymbolValue()), - companySymbolOGRN == null ? null : toString(companySymbolOGRN.getCompanySymbolValue()), - toString(company.getProfile().getCountryCode()), - toString(clearingMemberCategory)); - reportBR_0420312P1.getRows().add(info_0420312_p1); - } - - return reportBR_0420312P1; - } - - - @Override - public Class getReportClass() { - return ReportBR_0420312_P1.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P2_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P2_Collector.java deleted file mode 100644 index dbae68ea5..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P2_Collector.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P2; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -@Component -@Deprecated -public class ReportBR_0420312_P2_Collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P2_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - @Override - public ReportBR_0420312_P2 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - ReportBR_0420312_P2 reportBR_0420312P1 = new ReportBR_0420312_P2(startDate, endDate, "BR"); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); - - for (Map.Entry> companyEntry : indexByCompany.entrySet()) { - final Long companyId = companyEntry.getKey(); - List companyLiabilities=companyEntry.getValue(); - - BigDecimal liabilitiesQuantitySum = companyLiabilities.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - - ReportBR_0420312_P2.Info_0420312_P2 info_0420312_p2 = new ReportBR_0420312_P2.Info_0420312_P2( - toString(companyId), - toString(liabilitiesQuantitySum) - ); - reportBR_0420312P1.getRows().add(info_0420312_p2); - } - - return reportBR_0420312P1; - } - - - @Override - public Class getReportClass() { - return ReportBR_0420312_P2.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P3_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P3_Collector.java deleted file mode 100644 index 64a0256c5..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P3_Collector.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P3; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -@Component -@Deprecated -public class ReportBR_0420312_P3_Collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P3_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - @Override - public ReportBR_0420312_P3 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - ReportBR_0420312_P3 reportBR_0420312P1 = new ReportBR_0420312_P3(startDate, endDate, "BR"); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); - - for (Map.Entry> companyEntry : indexByCompany.entrySet()) { - final Long companyId = companyEntry.getKey(); - List companyLiabilities=companyEntry.getValue(); - - BigDecimal liabilitiesQuantitySum = companyLiabilities.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - - // расчёт похож на ReportBR_0420312_P2 - ReportBR_0420312_P3.Info_0420312_P3 info_0420312_p3 = new ReportBR_0420312_P3.Info_0420312_P3( - toString(companyId), - toString(liabilitiesQuantitySum) - ); - reportBR_0420312P1.getRows().add(info_0420312_p3); - } - - return reportBR_0420312P1; - } - - @Override - public Class getReportClass() { - return ReportBR_0420312_P3.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P4_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P4_Collector.java deleted file mode 100644 index 9a16262ef..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P4_Collector.java +++ /dev/null @@ -1,49 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P4; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Objects; - -@Component -@Deprecated -public class ReportBR_0420312_P4_Collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P4_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - @Override - public ReportBR_0420312_P4 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - - BigDecimal liabilitiesQuantitySum = liabilities.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - - ReportBR_0420312_P4 reportBR_0420312P4 = new ReportBR_0420312_P4(startDate, endDate); - ReportBR_0420312_P4.Info_0420312_P4 reportInfo = new ReportBR_0420312_P4.Info_0420312_P4(toString(liabilitiesQuantitySum)); - reportBR_0420312P4.getRows().add(reportInfo); - - return reportBR_0420312P4; - } - - @Override - public Class getReportClass() { - return ReportBR_0420312_P4.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P5_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P5_Collector.java deleted file mode 100644 index 5d247cdce..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P5_Collector.java +++ /dev/null @@ -1,49 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P5; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Objects; - -@Component -@Deprecated -public class ReportBR_0420312_P5_Collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P5_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - @Override - public ReportBR_0420312_P5 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - - BigDecimal liabilitiesQuantitySum = liabilities.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - - ReportBR_0420312_P5 reportBR_0420312P5 = new ReportBR_0420312_P5(startDate, endDate); - ReportBR_0420312_P5.Info_0420312_P5 reportInfo = new ReportBR_0420312_P5.Info_0420312_P5(toString(liabilitiesQuantitySum)); - reportBR_0420312P5.getRows().add(reportInfo); - - return reportBR_0420312P5; - } - - @Override - public Class getReportClass() { - return ReportBR_0420312_P5.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P6_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P6_Collector.java deleted file mode 100644 index 0a38c56d8..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P6_Collector.java +++ /dev/null @@ -1,49 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P6; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Objects; - -@Component -@Deprecated -public class ReportBR_0420312_P6_Collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P6_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - @Override - public ReportBR_0420312_P6 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - - BigDecimal liabilitiesQuantitySum = liabilities.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - - ReportBR_0420312_P6 reportBR_0420312P5 = new ReportBR_0420312_P6(startDate, endDate); - ReportBR_0420312_P6.Info_0420312_P6 reportInfo = new ReportBR_0420312_P6.Info_0420312_P6(toString(liabilitiesQuantitySum)); - reportBR_0420312P5.getRows().add(reportInfo); - - return reportBR_0420312P5; - } - - @Override - public Class getReportClass() { - return ReportBR_0420312_P6.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P7_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P7_Collector.java deleted file mode 100644 index b4bea17d7..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P7_Collector.java +++ /dev/null @@ -1,49 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P7; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Objects; - -@Component -@Deprecated -public class ReportBR_0420312_P7_Collector extends ReportWithPeriodCollector { - private Imdg liabilitiesClaimsAssetsImdg; - - @Autowired - public ReportBR_0420312_P7_Collector(ImdgProvider imdgProvider) { - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - } - - @Override - public ReportBR_0420312_P7 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - - BigDecimal liabilitiesQuantitySum = liabilities.stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - - ReportBR_0420312_P7 reportBR_0420312P5 = new ReportBR_0420312_P7(startDate, endDate); - ReportBR_0420312_P7.Info_0420312_P7 reportInfo = new ReportBR_0420312_P7.Info_0420312_P7(toString(liabilitiesQuantitySum)); - reportBR_0420312P5.getRows().add(reportInfo); - - return reportBR_0420312P5; - } - - @Override - public Class getReportClass() { - return ReportBR_0420312_P7.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P8_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P8_Collector.java deleted file mode 100644 index 82fd2e196..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P8_Collector.java +++ /dev/null @@ -1,100 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.ClearingMemberCategory; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.clearing.platform.dictionary.CurrencyCodeDictionary; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P8; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.enumeration.DocumentTypes; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -@Component -@Deprecated -public class ReportBR_0420312_P8_Collector extends ReportWithPeriodCollector { - private Imdg companyImdg; - private Imdg companySymbolsImdg; - private Imdg clearingMemberCategoryImdg; - private Imdg liabilitiesClaimsAssetsImdg; - private Imdg currencyCodeDictionaryImdg; - - @Autowired - public ReportBR_0420312_P8_Collector(ImdgProvider imdgProvider) { - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); - currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); - } - - protected CompanySymbols findSymbol(DocumentTypes docType, Long companyId) { - CompanySymbols companySymbol = companySymbolsImdg.getSingleObjectByFieldValues(Map.of( - "companySymbol", docType.getKey(), - "companyId", companyId - )); - return companySymbol; - } - - @Override - public ReportBR_0420312_P8 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - ReportBR_0420312_P8 reportBR_0420312P8 = new ReportBR_0420312_P8(startDate, endDate); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); - - for (Map.Entry> companyEntry : indexByCompany.entrySet()) { - final Long companyId = companyEntry.getKey(); - Company company = companyImdg.getSingleObjectByID(companyId); - if (company == null) { - log.warn("Company not found by LiabilitiesClaimsAssets.CompanyId={}", companyId); - continue; - } - CompanySymbols companySymbolINN = findSymbol(DocumentTypes.inn, company.getId()); - CompanySymbols companySymbolOGRN = findSymbol(DocumentTypes.ogrn, company.getId()); - ClearingMemberCategory cmc = clearingMemberCategoryImdg.getSingleObjectByFieldValues(Map.of("companyId", companyId)); - String clearingMemberCategory = cmc == null ? null : cmc.getClearingMemberCategory(); - - - List companyLiabilities = companyEntry.getValue(); - Map> indexByCurrency = MapUtil.indexList(companyLiabilities, LiabilitiesClaimsAssets::getCurrency); - for (Map.Entry> currencyEntry : indexByCurrency.entrySet()) { - String currencyCode = currencyEntry.getKey(); - Long currencyId = MapUtil.getDictionaryIdByCode(currencyCodeDictionaryImdg, currencyCode); - if (currencyId == null) { - log.warn("No currency found for code \"{}\"", currencyEntry.getKey()); - } - ReportBR_0420312_P8.Info_0420312_P8 info_0420312_p8 = new ReportBR_0420312_P8.Info_0420312_P8( - toString(currencyId), - toString(companyId), - toString(company.getFullName()), - companySymbolINN == null ? null : toString(companySymbolINN.getCompanySymbolValue()), - companySymbolOGRN == null ? null : toString(companySymbolOGRN.getCompanySymbolValue()), - toString(company.getProfile().getCountryCode()), - toString(clearingMemberCategory) - ); - reportBR_0420312P8.getRows().add(info_0420312_p8); - } - } - - return reportBR_0420312P8; - } - - - @Override - public Class getReportClass() { - return ReportBR_0420312_P8.class; - } -} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P9_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P9_Collector.java deleted file mode 100644 index a9dcb279d..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P9_Collector.java +++ /dev/null @@ -1,82 +0,0 @@ -package ru.spcex.clearing.reports.services.collector.bt.bt_17_5; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.clearing.platform.dictionary.CurrencyCodeDictionary; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.reports.reports.bt.bt_17_5.ReportBR_0420312_P9; -import ru.spcex.clearing.reports.services.ReportWithPeriodCollector; -import ru.spcex.clearing.reports.services.collector.MapUtil; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -@Component -@Deprecated -public class ReportBR_0420312_P9_Collector extends ReportWithPeriodCollector { - private Imdg companyImdg; - private Imdg liabilitiesClaimsAssetsImdg; - private Imdg currencyCodeDictionaryImdg; - - @Autowired - public ReportBR_0420312_P9_Collector(ImdgProvider imdgProvider) { - companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class); - currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); - } - - @Override - public ReportBR_0420312_P9 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) { - validateDateRange(startDate, endDate); - - ReportBR_0420312_P9 reportBR_0420312P9 = new ReportBR_0420312_P9(startDate, endDate); - - Collection liabilities = searchLiabilitiesClaimsAssets(liabilitiesClaimsAssetsImdg, startDate, endDate); - Map> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId); - - for (Map.Entry> companyEntry : indexByCompany.entrySet()) { - final Long companyId = companyEntry.getKey(); - Company company = companyImdg.getSingleObjectByID(companyId); - if (company == null) { - log.warn("Company not found by LiabilitiesClaimsAssets.CompanyId={}", companyId); - continue; - } - List companyLiabilities = companyEntry.getValue(); - Map> indexByCurrency = MapUtil.indexList(companyLiabilities, LiabilitiesClaimsAssets::getCurrency); - for (Map.Entry> currencyEntry : indexByCurrency.entrySet()) { - String currencyCode = currencyEntry.getKey(); - Long currencyId = MapUtil.getDictionaryIdByCode(currencyCodeDictionaryImdg, currencyCode); - if (currencyId == null) { - log.warn("No currency found for code \"{}\"", currencyEntry.getKey()); - } - BigDecimal sumOfLiabilities = currencyEntry.getValue().stream() - .map(LiabilitiesClaimsAssets::getLiabilitiesQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal::add) - .orElse(BigDecimal.ZERO); - ReportBR_0420312_P9.Info_0420312_P9 info_0420312_p9 = new ReportBR_0420312_P9.Info_0420312_P9( - toString(currencyId), - toString(companyId), - toString(currencyCode), - toString(sumOfLiabilities) - ); - reportBR_0420312P9.getRows().add(info_0420312_p9); - } - } - - return reportBR_0420312P9; - } - - @Override - public Class getReportClass() { - return ReportBR_0420312_P9.class; - } -} diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/AbstractReportCollectorTest.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/AbstractReportCollectorTest.java index 275a02798..9cf088939 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/AbstractReportCollectorTest.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/AbstractReportCollectorTest.java @@ -1,7 +1,6 @@ package ru.spcex.clearing.reports.services; import org.junit.jupiter.api.Test; -import ru.spcex.clearing.reports.reports.AbstractReport; import java.math.BigDecimal; import java.time.Instant; diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java index 2cfff9e9d..de0a45094 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java @@ -1,6 +1,7 @@ package ru.spcex.clearing.reports.services; import org.junit.jupiter.api.Test; +import ru.spcex.clearing.reports.notifications.DOCXService; import java.io.File; import java.util.HashMap;