diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionCommon.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionCommon.java
new file mode 100644
index 000000000..00793129d
--- /dev/null
+++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionCommon.java
@@ -0,0 +1,191 @@
+package ru.clearing.classes.statics.data.execution;
+
+import ru.clearing.classes.objects.BusinessObject;
+
+import java.math.BigDecimal;
+import java.time.Instant;
+import java.time.LocalDate;
+
+public abstract class ExecutionCommon extends BusinessObject {
+ protected Long exchangeExecutionId;
+ protected Instant exchangeExecutionTime;
+ protected LocalDate tradingDate;
+ protected Long tradingClearingRegistryId;
+ protected String market;
+ protected BigDecimal price;
+ protected BigDecimal lots;
+ protected BigDecimal quantity;
+ protected BigDecimal interestAmount;
+ protected String side;
+ protected String settlementCurrency;
+ protected Long companyId;
+ protected Long duration;
+ protected String securityFullName;
+ protected String securitySymbol;
+ protected Long securityId;
+ protected Long counterPartyId;
+ protected String coverageStatus;
+ protected Long sessionId;
+ protected LocalDate clearingDate;
+
+ public LocalDate getClearingDate() {
+ return clearingDate;
+ }
+
+ public void setClearingDate(LocalDate value) {
+ this.clearingDate = value;
+ }
+
+ public Long getExchangeExecutionId() {
+ return exchangeExecutionId;
+ }
+
+ public void setExchangeExecutionId(Long value) {
+ this.exchangeExecutionId = value;
+ }
+
+ public String getSide() {
+ return side;
+ }
+
+ public void setSide(String value) {
+ this.side = value;
+ }
+
+ public String getMarket() {
+ return market;
+ }
+
+ public void setMarket(String value) {
+ this.market = value;
+ }
+
+ public LocalDate getTradingDate() {
+ return tradingDate;
+ }
+
+ public void setTradingDate(LocalDate value) {
+ this.tradingDate = value;
+ }
+
+ public String getSecuritySymbol() {
+ return securitySymbol;
+ }
+
+ public void setSecuritySymbol(String value) {
+ this.securitySymbol = value;
+ }
+
+ public Long getSecurityId() {
+ return securityId;
+ }
+
+ public void setSecurityId(Long value) {
+ this.securityId = value;
+ }
+
+ public BigDecimal getInterestAmount() {
+ return interestAmount;
+ }
+
+ public void setInterestAmount(BigDecimal value) {
+ this.interestAmount = value;
+ }
+
+ public BigDecimal getPrice() {
+ return price;
+ }
+
+ public void setPrice(BigDecimal value) {
+ this.price = value;
+ }
+
+ public BigDecimal getLots() {
+ return lots;
+ }
+
+ public void setLots(BigDecimal value) {
+ this.lots = value;
+ }
+
+ public BigDecimal getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(BigDecimal value) {
+ this.quantity = value;
+ }
+
+ public Instant getExchangeExecutionTime() {
+ return exchangeExecutionTime;
+ }
+
+ public void setExchangeExecutionTime(Instant value) {
+ this.exchangeExecutionTime = value;
+ }
+
+ public Long getDuration() {
+ return duration;
+ }
+
+ public void setDuration(Long value) {
+ this.duration = value;
+ }
+
+ public Long getTradingClearingRegistryId() {
+ return tradingClearingRegistryId;
+ }
+
+ public void setTradingClearingRegistryId(Long value) {
+ this.tradingClearingRegistryId = value;
+ }
+
+ public Long getCompanyId() {
+ return companyId;
+ }
+
+ public void setCompanyId(Long value) {
+ this.companyId = value;
+ }
+
+ public Long getCounterPartyId() {
+ return counterPartyId;
+ }
+
+ public void setCounterPartyId(Long value) {
+ this.counterPartyId = value;
+ }
+
+ public String getSecurityFullName() {
+ return securityFullName;
+ }
+
+ public void setSecurityFullName(String value) {
+ this.securityFullName = value;
+ }
+
+ public String getSettlementCurrency() {
+ return settlementCurrency;
+ }
+
+ public void setSettlementCurrency(String value) {
+ this.settlementCurrency = value;
+ }
+
+ public String getCoverageStatus() {
+ return coverageStatus;
+ }
+
+ public void setCoverageStatus(String value) {
+ this.coverageStatus = value;
+ }
+
+ public Long getSessionId() {
+ return sessionId;
+ }
+
+ public void setSessionId(Long value) {
+ this.sessionId = value;
+ }
+
+}
diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDeposit.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDeposit.java
index 5327b6ca6..3883d4507 100644
--- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDeposit.java
+++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDeposit.java
@@ -1,104 +1,20 @@
package ru.clearing.classes.statics.data.execution;
-import ru.clearing.classes.objects.BusinessObject;
-import ru.spcex.platform.classes.base.interfaces.IExecution;
+import ru.clearing.classes.ConstSerializable;
import java.math.BigDecimal;
-import java.time.Instant;
import java.time.LocalDate;
-public class ExecutionDeposit extends BusinessObject implements IExecution {
- private Long exchangeExecutionId;
- private Instant exchangeExecutionTime;
- private LocalDate tradingDate;
- private Long tradingClearingRegistryId;
- private String market;
- private BigDecimal price;
- private BigDecimal lots;
- private BigDecimal quantity;
+public class ExecutionDeposit extends ExecutionCommon {
+ private static final long serialVersionUID = ConstSerializable.serialVersionUID;
+
private BigDecimal firstLegAmount;
private BigDecimal secondLegAmount;
- private BigDecimal interestAmount;
- private String side;
- private String settlementCurrency;
- private Long companyId;
- private Long duration;
private LocalDate firstLegSettlementDate;
private LocalDate secondLegSettlementDate;
private String firstLegSettlementCode;
private String secondLegSettlementCode;
- private String securityFullName;
- private String securitySymbol;
- private Long securityId;
private String contract;
- private Long counterPartyId;
- private String coverageStatus;
- private Long sessionId;
- private LocalDate clearingDate;
-
- public Long getExchangeExecutionId() {
- return exchangeExecutionId;
- }
-
- public void setExchangeExecutionId(Long exchangeExecutionId) {
- this.exchangeExecutionId = exchangeExecutionId;
- }
-
- public Instant getExchangeExecutionTime() {
- return exchangeExecutionTime;
- }
-
- public void setExchangeExecutionTime(Instant exchangeExecutionTime) {
- this.exchangeExecutionTime = exchangeExecutionTime;
- }
-
- public LocalDate getTradingDate() {
- return tradingDate;
- }
-
- public void setTradingDate(LocalDate tradingDate) {
- this.tradingDate = tradingDate;
- }
-
- public Long getTradingClearingRegistryId() {
- return tradingClearingRegistryId;
- }
-
- public void setTradingClearingRegistryId(Long tradingClearingRegistryId) {
- this.tradingClearingRegistryId = tradingClearingRegistryId;
- }
-
- public String getMarket() {
- return market;
- }
-
- public void setMarket(String market) {
- this.market = market;
- }
-
- public BigDecimal getPrice() {
- return price;
- }
-
- public void setPrice(BigDecimal price) {
- this.price = price;
- }
-
- public BigDecimal getLots() {
- return lots;
- }
-
- public void setLots(BigDecimal lots) {
- this.lots = lots;
- }
-
- public BigDecimal getQuantity() {
- return quantity;
- }
-
- public void setQuantity(BigDecimal quantity) {
- this.quantity = quantity;
- }
public BigDecimal getFirstLegAmount() {
return firstLegAmount;
@@ -116,46 +32,6 @@ public class ExecutionDeposit extends BusinessObject implements IExecution {
this.secondLegAmount = secondLegAmount;
}
- public BigDecimal getInterestAmount() {
- return interestAmount;
- }
-
- public void setInterestAmount(BigDecimal interestAmount) {
- this.interestAmount = interestAmount;
- }
-
- public String getSide() {
- return side;
- }
-
- public void setSide(String side) {
- this.side = side;
- }
-
- public String getSettlementCurrency() {
- return settlementCurrency;
- }
-
- public void setSettlementCurrency(String settlementCurrency) {
- this.settlementCurrency = settlementCurrency;
- }
-
- public Long getCompanyId() {
- return companyId;
- }
-
- public void setCompanyId(Long companyId) {
- this.companyId = companyId;
- }
-
- public Long getDuration() {
- return duration;
- }
-
- public void setDuration(Long duration) {
- this.duration = duration;
- }
-
public LocalDate getFirstLegSettlementDate() {
return firstLegSettlementDate;
}
@@ -188,30 +64,6 @@ public class ExecutionDeposit extends BusinessObject implements IExecution {
this.secondLegSettlementCode = secondLegSettlementCode;
}
- public String getSecurityFullName() {
- return securityFullName;
- }
-
- public void setSecurityFullName(String securityFullName) {
- this.securityFullName = securityFullName;
- }
-
- public String getSecuritySymbol() {
- return securitySymbol;
- }
-
- public void setSecuritySymbol(String securitySymbol) {
- this.securitySymbol = securitySymbol;
- }
-
- public Long getSecurityId() {
- return securityId;
- }
-
- public void setSecurityId(Long securityId) {
- this.securityId = securityId;
- }
-
public String getContract() {
return contract;
}
@@ -219,36 +71,4 @@ public class ExecutionDeposit extends BusinessObject implements IExecution {
public void setContract(String contract) {
this.contract = contract;
}
-
- public Long getCounterPartyId() {
- return counterPartyId;
- }
-
- public void setCounterPartyId(Long counterPartyId) {
- this.counterPartyId = counterPartyId;
- }
-
- public String getCoverageStatus() {
- return coverageStatus;
- }
-
- public void setCoverageStatus(String coverageStatus) {
- this.coverageStatus = coverageStatus;
- }
-
- public Long getSessionId() {
- return sessionId;
- }
-
- public void setSessionId(Long sessionId) {
- this.sessionId = sessionId;
- }
-
- public LocalDate getClearingDate() {
- return clearingDate;
- }
-
- public void setClearingDate(LocalDate clearingDate) {
- this.clearingDate = clearingDate;
- }
}
diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java
index 44d95e590..26057ad8c 100644
--- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java
+++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java
@@ -2,7 +2,6 @@ package ru.clearing.classes.statics.data.execution;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessObject;
-import ru.spcex.platform.classes.base.interfaces.IExecution;
import java.math.BigDecimal;
import java.time.Instant;
@@ -13,252 +12,70 @@ import java.time.LocalDate;
*
* DB table: EXECUTION_FOND
**/
-public class ExecutionFond extends BusinessObject implements IExecution {
+public class ExecutionFond extends ExecutionCommon {
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
- private LocalDate clearingDate;
- private Long exchangeExecutionId;
- private String side;
- private String market;
- private LocalDate tradingDate;
- private String securitySymbol;
- private Long securityId;
- private BigDecimal interestAmount;
private Long exchangeOrderId;
- private BigDecimal price;
private BigDecimal settlementAmount;
- private BigDecimal lots;
- private BigDecimal quantity;
- private Instant exchangeExecutionTime;
- private Long duration;
- private Long tradingClearingRegistryId;
private String comment;
private Long clientCodeId;
private String settlementCode;
- private Long companyId;
- private Long counterPartyId;
- private String securityFullName;
private LocalDate settlementDate;
- private String settlementCurrency;
private Instant exchangeExecutionMicroseconds;
- private String coverageStatus;
- private Long sessionId;
-
-
- public LocalDate getClearingDate() {
- return clearingDate;
- }
-
- public void setClearingDate(LocalDate value) {
- this.clearingDate = value;
- }
-
- public Long getExchangeExecutionId() {
- return exchangeExecutionId;
- }
-
- public void setExchangeExecutionId(Long value) {
- this.exchangeExecutionId = value;
- }
-
- public String getSide() {
- return side;
- }
-
- public void setSide(String value) {
- this.side = value;
- }
-
- public String getMarket() {
- return market;
- }
-
- public void setMarket(String value) {
- this.market = value;
- }
-
- public LocalDate getTradingDate() {
- return tradingDate;
- }
-
- public void setTradingDate(LocalDate value) {
- this.tradingDate = value;
- }
-
- public String getSecuritySymbol() {
- return securitySymbol;
- }
-
- public void setSecuritySymbol(String value) {
- this.securitySymbol = value;
- }
-
- public Long getSecurityId() {
- return securityId;
- }
-
- public void setSecurityId(Long value) {
- this.securityId = value;
- }
-
- public BigDecimal getInterestAmount() {
- return interestAmount;
- }
-
- public void setInterestAmount(BigDecimal value) {
- this.interestAmount = value;
- }
public Long getExchangeOrderId() {
return exchangeOrderId;
}
- public void setExchangeOrderId(Long value) {
- this.exchangeOrderId = value;
- }
-
- public BigDecimal getPrice() {
- return price;
- }
-
- public void setPrice(BigDecimal value) {
- this.price = value;
+ public void setExchangeOrderId(Long exchangeOrderId) {
+ this.exchangeOrderId = exchangeOrderId;
}
public BigDecimal getSettlementAmount() {
return settlementAmount;
}
- public void setSettlementAmount(BigDecimal value) {
- this.settlementAmount = value;
- }
-
- public BigDecimal getLots() {
- return lots;
- }
-
- public void setLots(BigDecimal value) {
- this.lots = value;
- }
-
- public BigDecimal getQuantity() {
- return quantity;
- }
-
- public void setQuantity(BigDecimal value) {
- this.quantity = value;
- }
-
- public Instant getExchangeExecutionTime() {
- return exchangeExecutionTime;
- }
-
- public void setExchangeExecutionTime(Instant value) {
- this.exchangeExecutionTime = value;
- }
-
- public Long getDuration() {
- return duration;
- }
-
- public void setDuration(Long value) {
- this.duration = value;
- }
-
- public Long getTradingClearingRegistryId() {
- return tradingClearingRegistryId;
- }
-
- public void setTradingClearingRegistryId(Long value) {
- this.tradingClearingRegistryId = value;
+ public void setSettlementAmount(BigDecimal settlementAmount) {
+ this.settlementAmount = settlementAmount;
}
public String getComment() {
return comment;
}
- public void setComment(String value) {
- this.comment = value;
+ public void setComment(String comment) {
+ this.comment = comment;
}
public Long getClientCodeId() {
return clientCodeId;
}
- public void setClientCodeId(Long value) {
- this.clientCodeId = value;
+ public void setClientCodeId(Long clientCodeId) {
+ this.clientCodeId = clientCodeId;
}
public String getSettlementCode() {
return settlementCode;
}
- public void setSettlementCode(String value) {
- this.settlementCode = value;
- }
-
- public Long getCompanyId() {
- return companyId;
- }
-
- public void setCompanyId(Long value) {
- this.companyId = value;
- }
-
- public Long getCounterPartyId() {
- return counterPartyId;
- }
-
- public void setCounterPartyId(Long value) {
- this.counterPartyId = value;
- }
-
- public String getSecurityFullName() {
- return securityFullName;
- }
-
- public void setSecurityFullName(String value) {
- this.securityFullName = value;
+ public void setSettlementCode(String settlementCode) {
+ this.settlementCode = settlementCode;
}
public LocalDate getSettlementDate() {
return settlementDate;
}
- public void setSettlementDate(LocalDate value) {
- this.settlementDate = value;
- }
-
- public String getSettlementCurrency() {
- return settlementCurrency;
- }
-
- public void setSettlementCurrency(String value) {
- this.settlementCurrency = value;
+ public void setSettlementDate(LocalDate settlementDate) {
+ this.settlementDate = settlementDate;
}
public Instant getExchangeExecutionMicroseconds() {
return exchangeExecutionMicroseconds;
}
- public void setExchangeExecutionMicroseconds(Instant value) {
- this.exchangeExecutionMicroseconds = value;
+ public void setExchangeExecutionMicroseconds(Instant exchangeExecutionMicroseconds) {
+ this.exchangeExecutionMicroseconds = exchangeExecutionMicroseconds;
}
-
- public String getCoverageStatus() {
- return coverageStatus;
- }
-
- public void setCoverageStatus(String value) {
- this.coverageStatus = value;
- }
-
- public Long getSessionId() {
- return sessionId;
- }
-
- public void setSessionId(Long value) {
- this.sessionId = value;
- }
-
}
\ No newline at end of file
diff --git a/clearing-parent/reports-service/pom.xml b/clearing-parent/reports-service/pom.xml
index 969ee84ed..a5e83d1ba 100644
--- a/clearing-parent/reports-service/pom.xml
+++ b/clearing-parent/reports-service/pom.xml
@@ -40,17 +40,27 @@
jackson-dataformat-xml
+
com.thoughtworks.xstream
xstream
1.4.19
+
+
org.apache.poi
poi-ooxml
5.1.0
+
+
+ com.opencsv
+ opencsv
+ 5.5.2
+
+
ru.spcex.clearing
@@ -83,6 +93,24 @@
mockito-core
test
+
+ ru.spcex.clearing
+ security-util
+
+
+ ru.spcex.clearing
+ clearing-validation
+
+
+ ru.spcex.clearing
+ test-clearing
+ test
+
+
+ org.springframework.boot
+ spring-boot-test
+ test
+
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 627e9bbf1..06efcbe60 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
@@ -1,8 +1,5 @@
package ru.spcex.clearing.reports;
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.naming.NoNameCoder;
-import com.thoughtworks.xstream.io.xml.XppDriver;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -10,11 +7,8 @@ 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.reports.bt_16_5.ReportINACCNT;
import ru.spcex.clearing.reports.services.QCommandExecutor;
import ru.spcex.clearing.reports.services.ReportsServiceCommand;
-import ru.spcex.clearing.reports.services.collector.ReportINACCNT_Collector;
-import ru.spcex.platform.imdg.api.ImdgProvider;
@SpringBootApplication
public class ReportsServiceApplication {
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/BeanConfiguration.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/BeanConfiguration.java
new file mode 100644
index 000000000..c0730ce66
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/BeanConfiguration.java
@@ -0,0 +1,33 @@
+package ru.spcex.clearing.reports.config;
+
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Scope;
+import ru.spcex.clearing.reports.errors.ReportError;
+import ru.spcex.clearing.util.security.UserRoleVerification;
+import ru.spcex.clearing.util.services.IMDGMessageResolver;
+import ru.spcex.clearing.util.services.RequestHelper;
+import ru.spcex.platform.enumeration.UserRole;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+import ru.spcex.platform.utils.enumeration.IMessageResolver;
+
+@Configuration
+public class BeanConfiguration {
+ @Bean
+ public IMessageResolver messageResolver(ImdgProvider imdgProvider) {
+ return new IMDGMessageResolver(imdgProvider);
+ }
+
+ @Bean
+ @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+ public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) {
+ return new UserRoleVerification(imdgProvider, messageResolver, UserRole.Admin, ReportError.UserVerifyDenial);
+ }
+
+ @Bean
+ @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+ public RequestHelper requestHelper(IMessageResolver messageResolver) {
+ return new RequestHelper(messageResolver, ReportError.InternalError);
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java
new file mode 100644
index 000000000..b88e8fd6f
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportBuildersConfig.java
@@ -0,0 +1,54 @@
+package ru.spcex.clearing.reports.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import ru.spcex.clearing.reports.reports.*;
+import ru.spcex.clearing.reports.reports.bp.*;
+import ru.spcex.platform.enumeration.ReportType;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Configuration
+public class ReportBuildersConfig {
+ @Bean("reportBuildersWithoutParams")
+ public Map>> reportBuildersWithoutParams(ImdgProvider imdgProvider) {
+ Map>> resultMap = new HashMap<>();
+ resultMap.put(ReportType.SUMMARY_LIABILITIES_CLAIMS, List.of(new SummaryLiabilitiesClaimsReportBuilder(imdgProvider)));
+ resultMap.put(ReportType.SUMMARY_MONEY_CHANGE, List.of(new SummaryMoneyChangeReportBuilder(imdgProvider)));
+ return resultMap;
+ }
+
+ @Bean("reportBuildersWithSessionIdParam")
+ public Map>> reportBuildersWithSessionIdParam(ImdgProvider imdgProvider) {
+ Map>> resultMap = new HashMap<>();
+ resultMap.put(ReportType.OPERATIONAL_LIABILITIES_CLAIMS, List.of(new OperationalLiabilitiesClaimsReportBuilder(imdgProvider)));
+ resultMap.put(ReportType.OPERATIONAL_MONEY_CHANGE, List.of(new OperationalMoneyChangeReportBuilder(imdgProvider)));
+ resultMap.put(ReportType.EXECUTED_DEAL_REPORT,
+ List.of(
+ new ExecutedDealReportBuilder_INFTYPE_1(imdgProvider),
+ new ExecutedDealReportBuilder_INFTYPE_2(imdgProvider),
+ new ExecutedDealReportBuilder_INFTYPE_3(imdgProvider),
+ new ExecutedDealReportBuilder_INFTYPE_4(imdgProvider)
+ )
+ );
+ resultMap.put(ReportType.UNFULFILLED_DEAL_REPORT, List.of(new UnfulfilledDealReportBuilder(imdgProvider)));
+ return resultMap;
+ }
+
+ @Bean("reportBuildersWithSessionIdListParam")
+ public Map>> reportBuildersWithSessionIdListParams(ImdgProvider imdgProvider) {
+ Map>> resultMap = new HashMap<>();
+ resultMap.put(ReportType.PERIOD_LIABILITIES_CLAIMS, List.of(new PeriodLiabilitiesClaimsReportBuilder(imdgProvider)));
+ return resultMap;
+ }
+
+ @Bean("reportBuildersWithPeriodParams")
+ public Map>> reportBuildersWithPeriodParams(ImdgProvider imdgProvider) {
+ Map>> resultMap = new HashMap<>();
+ resultMap.put(ReportType.PERIOD_MONEY_CHANGE, List.of(new PeriodMoneyChangeReportBuilder(imdgProvider)));
+ return resultMap;
+ }
+}
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 8352482f0..c8d0d3ad3 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
@@ -18,7 +18,7 @@ import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams;
public class ReportsServiceSettings {
private HazelcastClientParams hazelcast;
private KafkaConsumerSettings kafkaConsumer;
-// private KafkaProducerSettings kafkaProducer;
+ private KafkaProducerSettings kafkaProducer;
private String reportModuleOut;
public HazelcastClientParams getHazelcast() {
@@ -37,13 +37,13 @@ public class ReportsServiceSettings {
this.kafkaConsumer = kafkaConsumer;
}
-// public KafkaProducerSettings getKafkaProducer() {
-// return kafkaProducer;
-// }
-//
-// public void setKafkaProducer(KafkaProducerSettings kafkaProducer) {
-// this.kafkaProducer = kafkaProducer;
-// }
+ public KafkaProducerSettings getKafkaProducer() {
+ return kafkaProducer;
+ }
+
+ public void setKafkaProducer(KafkaProducerSettings kafkaProducer) {
+ this.kafkaProducer = kafkaProducer;
+ }
public String getReportModuleOut() {
return reportModuleOut;
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
new file mode 100644
index 000000000..f01155eaf
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java
@@ -0,0 +1,149 @@
+package ru.spcex.clearing.reports.config.validation;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import ru.clearing.classes.statics.data.company.Company;
+import ru.spcex.clearing.imdg.IMDGDistributedNames;
+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.errors.ReportError;
+import ru.spcex.clearing.validation.common.ValidationHelper;
+import ru.spcex.clearing.validation.common.rules.EndDtAfterStartDtRule;
+import ru.spcex.clearing.validation.common.rules.EnumPresentRule;
+import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
+import ru.spcex.platform.classes.base.SpcexObjectBase;
+import ru.spcex.platform.enumeration.ReportType;
+import ru.spcex.platform.imdg.api.Imdg;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+import ru.spcex.platform.imdg.validation.ImdgValidationContext;
+import ru.spcex.platform.utils.enumeration.IEnumKey;
+import ru.spcex.platform.utils.enumeration.IMessageResolver;
+import ru.spcex.platform.utils.validation.IValidator;
+import ru.spcex.platform.utils.validation.ValidatorImpl;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+
+@Configuration
+public class ValidationConfig {
+
+ @Bean("imdgForValidation")
+ public Map> imdgForValidation(ImdgProvider imdgProvider) {
+ final Map> imdg = new HashMap<>();
+ BiConsumer> addImdg = (s, aClass) -> imdg.put(s, imdgProvider.getImdg(s, aClass));
+
+ addImdg.accept(IMDGDistributedNames.Map_Company, Company.class);
+
+ return imdg;
+ }
+
+ @Bean("validationHelper")
+ public ValidationHelper validationHelper(IMessageResolver messageResolver) {
+ return new ValidationHelper(messageResolver);
+ }
+
+ @Bean("reportRequestValidator")
+ public Function reportRequestValidator(
+ Map> imdgForValidation
+ ) {
+ return reportRequest -> {
+ ImdgValidationContext context = new ImdgValidationContext<>();
+ context.setValidatedObject(reportRequest);
+ return new ValidatorImpl<>(context,
+ EnumPresentRule.instance("reportId",
+ ReportRequest::getReportId,
+ new IEnumKey[]{
+ ReportType.SUMMARY_LIABILITIES_CLAIMS,
+ ReportType.SUMMARY_MONEY_CHANGE
+ },
+ ReportError.WrongFieldValue,
+ ReportError.RequiredFieldEmpty)
+ );
+ };
+ }
+
+ @Bean("reportRequestWithSessionIdValidator")
+ public Function reportRequestWithSessionIdValidator(
+ Map> imdgForValidation
+ ) {
+ return reportRequestWithSessionId -> {
+ ImdgValidationContext context = new ImdgValidationContext<>();
+ context.setValidatedObject(reportRequestWithSessionId);
+ return new ValidatorImpl<>(context,
+ EnumPresentRule.instance("reportId",
+ ReportRequestWithSessionId::getReportId,
+ new IEnumKey[]{
+ ReportType.OPERATIONAL_LIABILITIES_CLAIMS,
+ ReportType.OPERATIONAL_MONEY_CHANGE,
+ ReportType.EXECUTED_DEAL_REPORT,
+ ReportType.UNFULFILLED_DEAL_REPORT
+ },
+ ReportError.WrongFieldValue,
+ ReportError.RequiredFieldEmpty),
+ FieldRequiredRule.instance("sessionId",
+ ReportRequestWithSessionId::getSessionId,
+ ReportError.RequiredFieldEmpty,
+ sessionId -> sessionId > 0 ? null : ReportError.WrongFieldValue)
+ );
+ };
+ }
+
+ @Bean("reportRequestWithSessionIdListValidator")
+ public Function reportRequestWithSessionIdListValidator(
+ Map> imdgForValidation
+ ) {
+ return reportRequestWithSessionIdList -> {
+ ImdgValidationContext context = new ImdgValidationContext<>();
+ context.setValidatedObject(reportRequestWithSessionIdList);
+ return new ValidatorImpl<>(context,
+ EnumPresentRule.instance("reportId",
+ ReportRequestWithSessionIdList::getReportId,
+ new IEnumKey[]{
+ ReportType.PERIOD_LIABILITIES_CLAIMS
+ },
+ ReportError.WrongFieldValue,
+ ReportError.RequiredFieldEmpty),
+ FieldRequiredRule.instance("sessionIdList",
+ ReportRequestWithSessionIdList::getSessionIdList,
+ ReportError.RequiredFieldEmpty,
+ sessionIdList -> {
+ if (sessionIdList == null || sessionIdList.isEmpty())
+ return ReportError.WrongFieldValue;
+ return null;
+ })
+ );
+ };
+ }
+
+ @Bean("reportRequestWithPeriodValidator")
+ public Function reportRequestWithPeriodValidator(
+ Map> imdgForValidation
+ ) {
+ return reportRequestWithPeriod -> {
+ ImdgValidationContext context = new ImdgValidationContext<>();
+ context.setValidatedObject(reportRequestWithPeriod);
+ return new ValidatorImpl<>(context,
+ EnumPresentRule.instance("reportId",
+ ReportRequestWithPeriod::getReportId,
+ new IEnumKey[]{
+ ReportType.PERIOD_MONEY_CHANGE,
+ },
+ ReportError.WrongFieldValue,
+ ReportError.RequiredFieldEmpty),
+ EndDtAfterStartDtRule.instance("endDate", "startDate",
+ ReportRequestWithPeriod::getEndDate,
+ ReportRequestWithPeriod::getStartDate,
+ ReportError.RequiredFieldEmpty,
+ ReportError.WrongFieldValue)
+ );
+ };
+ }
+
+}
+
+
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/errors/ReportError.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/errors/ReportError.java
new file mode 100644
index 000000000..de9ba1fb1
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/errors/ReportError.java
@@ -0,0 +1,22 @@
+package ru.spcex.clearing.reports.errors;
+
+import ru.spcex.platform.utils.enumeration.IErrorEnumId;
+
+public enum ReportError implements IErrorEnumId {
+ InternalError(4000L),
+ UserVerifyDenial(4001L),
+ RequiredFieldEmpty(4002L),
+ WrongFieldValue(4004L),
+ ;
+
+ private final Long id;
+
+ ReportError(Long id) {
+ this.id = id;
+ }
+
+ @Override
+ public Long getId() {
+ return id;
+ }
+}
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
index 27c7072af..c8b56a13e 100644
--- 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
@@ -10,6 +10,7 @@ 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");
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java
new file mode 100644
index 000000000..aa1c830fb
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/CSVReportBuilder.java
@@ -0,0 +1,114 @@
+package ru.spcex.clearing.reports.reports;
+
+import com.opencsv.CSVWriterBuilder;
+import com.opencsv.ICSVWriter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import ru.spcex.platform.enumeration.ReportType;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * Класс для построения отчетов в формате CSV
+ *
+ * @param тип параметров, используемых при построении отчета
+ */
+public abstract class CSVReportBuilder
{
+ protected static final Logger log = LoggerFactory.getLogger(CSVReportBuilder.class);
+
+ protected DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
+ protected DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss");
+ protected DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
+
+ /**
+ * Метод получения заголовков для CSV отчета
+ */
+ protected abstract String[] getHeaders();
+
+ /**
+ * Возвращает списком значения CSV отчета. Каждый элемент списка - строка, элемент массива внутри списка - столбец.
+ */
+ protected abstract List getLines();
+
+ /**
+ * Название отчета, используется для формирования имени отчета (без указания формата)
+ *
+ * @param params Параметры формирования отчета
+ */
+ protected abstract String getReportFilename(P params);
+
+ /**
+ * Тип отчета по {@link ReportType}
+ */
+ public abstract ReportType getReportType();
+
+ /**
+ * Формирование отчета на основе параметров
+ *
+ * @param params Параметры формирования отчета
+ */
+ protected abstract void collect(P params);
+
+ /**
+ * Создает CSVWriter. Если требуется изменить параметры выходного CSV файла, этот метод следует переопределить.
+ *
+ * @param file Файл отчета
+ * @return Созданный CSVWriter
+ *
+ * todo check it
+ */
+ protected ICSVWriter createCsvWriter(File file) throws IOException {
+ Writer writer = new FileWriter(file);
+ CSVWriterBuilder csvWriterBuilder = new CSVWriterBuilder(writer)
+ .withLineEnd("\n")
+ .withSeparator(',')
+ .withQuoteChar('\"');
+ return csvWriterBuilder.build();
+ }
+
+ public File createReport(P params, File outFolder) {
+ assert outFolder != null && outFolder.isDirectory();
+
+ File reportFile = new File(outFolder, normalizeFilenameForOS(getReportFilename(params) + ".csv"));
+
+ collect(params);
+ String[] headers = getHeaders();
+ List lines = getLines();
+
+ assert headers != null;
+ assert lines != null;
+
+ try (ICSVWriter csvWriter = createCsvWriter(reportFile)) {
+ csvWriter.writeNext(headers, false);
+ csvWriter.writeAll(lines, true);
+ } catch (IOException e) {
+ log.error("Can't create report", e);
+ return null;
+ }
+
+ return reportFile;
+ }
+
+ protected String normalizeFilenameForOS(String filename) {
+ if (System.getProperty("os.name").toLowerCase().contains("windows"))
+ return filename.replace(":", "_");
+ return filename;
+ }
+
+ public void setDateFormatter(DateTimeFormatter dateFormatter) {
+ this.dateFormatter = dateFormatter;
+ }
+
+ public void setDateTimeFormatter(DateTimeFormatter dateTimeFormatter) {
+ this.dateTimeFormatter = dateTimeFormatter;
+ }
+
+ public void setTimeFormatter(DateTimeFormatter timeFormatter) {
+ this.timeFormatter = timeFormatter;
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/EmptyParams.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/EmptyParams.java
new file mode 100644
index 000000000..c344fc1d2
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/EmptyParams.java
@@ -0,0 +1,7 @@
+package ru.spcex.clearing.reports.reports;
+
+/**
+ * Класс для формирования отчета без параметров
+ */
+public class EmptyParams {
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PeriodParams.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PeriodParams.java
new file mode 100644
index 000000000..4d30c335a
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/PeriodParams.java
@@ -0,0 +1,27 @@
+package ru.spcex.clearing.reports.reports;
+
+import java.time.LocalDate;
+
+/**
+ * Параметры для формирования отчета на период
+ */
+public class PeriodParams {
+ private LocalDate startDate;
+ private LocalDate endDate;
+
+ public LocalDate getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(LocalDate startDate) {
+ this.startDate = startDate;
+ }
+
+ public LocalDate getEndDate() {
+ return endDate;
+ }
+
+ public void setEndDate(LocalDate endDate) {
+ this.endDate = endDate;
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java
index a235a2a83..1d66b3ebc 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportId.java
@@ -5,6 +5,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
/**
* Идентификаторы отчётов
*/
+@Deprecated
public enum ReportId implements IEnumKey {
PA_B("REPPA.B"), PA_IV("REPPA.IV"),
@@ -22,8 +23,18 @@ public enum ReportId implements IEnumKey {
BR_0420312_P1("REPBR.0420312_р1-1"), BR_0420312_P2("REPBR.0420312_р1-2"), BR_0420312_P3("REPBR.0420312_р1-3"), BR_0420312_P4("REPBR.0420312_р1-4"),
BR_0420312_P5("REPBR.0420312_р1-5"), BR_0420312_P6("REPBR.0420312_р1-6"), BR_0420312_P7("REPBR.0420312_р1-7"), BR_0420312_P8("REPBR.0420312_р3-1"),
- BR_0420312_P9("REPBR.0420312_р3-2"), BR_0420312_P10("REPBR.0420312_р3-3");
+ BR_0420312_P9("REPBR.0420312_р3-2"), BR_0420312_P10("REPBR.0420312_р3-3"),
+ OPERATIONAL_LIABILITIES_CLAIMS("operational_liabilities_claims"),
+ OPERATIONAL_MONEY_CHANGE("operational_money_change"),
+ SUMMARY_LIABILITIES_CLAIMS("summary_liabilities_claims"),
+ SUMMARY_L_MONEY_CHANGE("summary_lmoney_change"),
+ PERIOD_LIABILITIES_CLAIMS("period_liabilities_claims"),
+ PERIOD_MONEY_CHANGE("period_money_change"),
+ EXECUTED_DEAL_REPORT("executed_deal_report"),
+ UNFULFILLED_DEAL_REPORT("unfulfilled_deal_report"),
+
+ ;
private final String key;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java
index e86e5007c..051362750 100644
--- 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
@@ -5,6 +5,7 @@ import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import java.time.LocalDate;
+@Deprecated
public abstract class ReportWithClearingStatus extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("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
index 2895b8b4b..e7e6d7376 100644
--- 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
@@ -2,24 +2,23 @@ package ru.spcex.clearing.reports.reports;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
-import com.thoughtworks.xstream.annotations.XStreamConverter;
-import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
import java.time.LocalDate;
/**
* Шапка для отчётов, содержащих startDate и endDate
*/
+@Deprecated
public abstract class ReportWithPeriod extends AbstractReport {
@XStreamAsAttribute
@XStreamAlias("startDate")
- @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
+// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
protected LocalDate startDate;
@XStreamAsAttribute
@XStreamAlias("endDate")
- @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
+// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
protected LocalDate endDate;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/SessionIdListParams.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/SessionIdListParams.java
new file mode 100644
index 000000000..2b198bf17
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/SessionIdListParams.java
@@ -0,0 +1,18 @@
+package ru.spcex.clearing.reports.reports;
+
+import java.util.List;
+
+/**
+ * Параметры для формирования отчета по списку SessionId
+ */
+public class SessionIdListParams {
+ private List sessionIdList;
+
+ public List getSessionIdList() {
+ return sessionIdList;
+ }
+
+ public void setSessionIdList(List sessionIdList) {
+ this.sessionIdList = sessionIdList;
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/SessionIdParam.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/SessionIdParam.java
new file mode 100644
index 000000000..e2a529e6b
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/SessionIdParam.java
@@ -0,0 +1,16 @@
+package ru.spcex.clearing.reports.reports;
+
+/**
+ * Параметры для формирования отчета по SessionId
+ */
+public class SessionIdParam {
+ private Long sessionId;
+
+ public Long getSessionId() {
+ return sessionId;
+ }
+
+ public void setSessionId(Long sessionId) {
+ this.sessionId = sessionId;
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilderCommon.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilderCommon.java
new file mode 100644
index 000000000..3affaeedb
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilderCommon.java
@@ -0,0 +1,99 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.company.Company;
+import ru.clearing.classes.statics.data.execution.ExecutionFond;
+import ru.clearing.classes.statics.data.misc.STrades;
+import ru.spcex.clearing.imdg.IMDGDistributedNames;
+import ru.spcex.clearing.reports.reports.CSVReportBuilder;
+import ru.spcex.platform.enumeration.ReportType;
+import ru.spcex.platform.enumeration.WorkflowStatus;
+import ru.spcex.platform.imdg.api.Imdg;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+public abstract class ExecutedDealReportBuilderCommon extends CSVReportBuilder {
+ protected final DateTimeFormatter fileNameDateTimeFormatter = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS");
+ protected final Imdg executionFondImdg;
+ private final Imdg companyImdg;
+ private final Imdg sTradesImdg;
+
+ private final String[] headers = {
+ "id", "securityId", "tradeNo", "tradeDate", "tradeTime",
+ "settleDate", "settleCode", "price", "quanity", "value"
+ };
+ private List lines = null;
+
+ public ExecutedDealReportBuilderCommon(ImdgProvider imdgProvider) {
+ this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
+ this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
+ this.sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
+ }
+
+ @Override
+ public String[] getHeaders() {
+ return headers;
+ }
+
+ @Override
+ protected List getLines() {
+ return lines;
+ }
+
+ @Override
+ public ReportType getReportType() {
+ return ReportType.EXECUTED_DEAL_REPORT;
+ }
+
+ protected abstract Collection getExecutionFondsForReport(T params);
+
+ @Override
+ protected void collect(T params) {
+ Collection executionFonds = getExecutionFondsForReport(params);
+
+ lines = new ArrayList<>(executionFonds.size());
+ for (ExecutionFond executionFond : executionFonds) {
+ Company company = companyImdg.getSingleObjectByID(executionFond.getCompanyId());
+ if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) continue;
+ STrades sTrade = sTradesImdg.getSingleObjectByFieldValues(
+ Map.of(
+ "tradeNum", executionFond.getExchangeExecutionId(),
+ "operation", executionFond.getSide()
+ )
+ );
+
+ String id = String.valueOf(executionFond.getId());
+ String securityId = String.valueOf(executionFond.getSecurityId());
+ String tradeNo = String.valueOf(executionFond.getExchangeExecutionId());
+ String tradeDate = dateFormatter.format(executionFond.getTradingDate());
+ String tradeTime = dateFormatter.format(LocalDate.ofInstant(executionFond.getCreated(), ZoneId.systemDefault()));
+ String settleDate = dateFormatter.format(executionFond.getSettlementDate());
+ String settleCode = sTrade != null ? sTrade.getSettleCode() : "";
+ String quantity = String.valueOf(executionFond.getQuantity());
+ String value = String.valueOf(executionFond.getSettlementAmount());
+ String price = String.valueOf(executionFond.getSettlementAmount().divide(executionFond.getQuantity(), RoundingMode.HALF_UP));
+
+ int valueIdx = 0;
+ String[] line = new String[getHeaders().length];
+ line[valueIdx++] = id;
+ line[valueIdx++] = securityId;
+ line[valueIdx++] = tradeNo;
+ line[valueIdx++] = tradeDate;
+ line[valueIdx++] = tradeTime;
+ line[valueIdx++] = settleDate;
+ line[valueIdx++] = settleCode;
+ line[valueIdx++] = price;
+ line[valueIdx++] = quantity;
+ line[valueIdx++] = value;
+ lines.add(line);
+ }
+ }
+
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java
new file mode 100644
index 000000000..065ff9f5e
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_1.java
@@ -0,0 +1,34 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.execution.ExecutionFond;
+import ru.spcex.clearing.reports.reports.SessionIdParam;
+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;
+
+public class ExecutedDealReportBuilder_INFTYPE_1 extends ExecutedDealReportBuilderCommon {
+
+ public ExecutedDealReportBuilder_INFTYPE_1(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected String getReportFilename(SessionIdParam params) {
+ return "KS_BR_PFX64_INFTYPE_1_%s".formatted(fileNameDateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ protected Collection getExecutionFondsForReport(SessionIdParam params) {
+ ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder();
+ return executionFondImdg.getCollectionObjectsByPredicate(
+ pb.and(
+ pb.equals("sessionId", params.getSessionId()),
+ pb.less("tradingDate", LocalDate.now()),
+ pb.equals("settlementDate", LocalDate.now())
+ )
+ );
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java
new file mode 100644
index 000000000..72fadba5e
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_2.java
@@ -0,0 +1,34 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.execution.ExecutionFond;
+import ru.spcex.clearing.reports.reports.SessionIdParam;
+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;
+
+public class ExecutedDealReportBuilder_INFTYPE_2 extends ExecutedDealReportBuilderCommon {
+
+ public ExecutedDealReportBuilder_INFTYPE_2(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected String getReportFilename(SessionIdParam params) {
+ return "KS_BR_PFX64_INFTYPE_2_%s".formatted(fileNameDateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ protected Collection getExecutionFondsForReport(SessionIdParam params) {
+ ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder();
+ return executionFondImdg.getCollectionObjectsByPredicate(
+ pb.and(
+ pb.equals("sessionId", params.getSessionId()),
+ pb.equals("tradingDate", LocalDate.now()),
+ pb.equals("settlementDate", LocalDate.now())
+ )
+ );
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java
new file mode 100644
index 000000000..0e3c8e934
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_3.java
@@ -0,0 +1,28 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.execution.ExecutionFond;
+import ru.spcex.clearing.reports.reports.SessionIdParam;
+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;
+
+public class ExecutedDealReportBuilder_INFTYPE_3 extends ExecutedDealReportBuilderCommon {
+
+ public ExecutedDealReportBuilder_INFTYPE_3(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected String getReportFilename(SessionIdParam params) {
+ return "KS_BR_PFX64_INFTYPE_3_%s".formatted(fileNameDateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ protected Collection getExecutionFondsForReport(SessionIdParam params) {
+ ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder();
+ return executionFondImdg.getCollectionObjectsByPredicate(pb.greater("settlementDate", LocalDate.now()));
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_4.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_4.java
new file mode 100644
index 000000000..1135aab9f
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/ExecutedDealReportBuilder_INFTYPE_4.java
@@ -0,0 +1,34 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.execution.ExecutionFond;
+import ru.spcex.clearing.reports.reports.SessionIdParam;
+import ru.spcex.platform.enumeration.Allowed;
+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;
+
+public class ExecutedDealReportBuilder_INFTYPE_4 extends ExecutedDealReportBuilderCommon {
+
+ public ExecutedDealReportBuilder_INFTYPE_4(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected String getReportFilename(SessionIdParam params) {
+ return "KS_BR_PFX64_INFTYPE_4_%s".formatted(fileNameDateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ protected Collection getExecutionFondsForReport(SessionIdParam params) {
+ ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder();
+ return executionFondImdg.getCollectionObjectsByPredicate(
+ pb.and(
+ pb.equals("coverageStatus", Allowed.DENIED.getKey()),
+ pb.equals("settlementDate", LocalDate.now())
+ )
+ );
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/LiabilitiesClaimsReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/LiabilitiesClaimsReportBuilder.java
new file mode 100644
index 000000000..8c505c261
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/LiabilitiesClaimsReportBuilder.java
@@ -0,0 +1,257 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.company.Company;
+import ru.clearing.classes.statics.data.execution.ExecutionCommon;
+import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
+import ru.clearing.classes.statics.data.execution.ExecutionFond;
+import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
+import ru.clearing.classes.statics.data.misc.Listing;
+import ru.clearing.classes.statics.data.registry.Registry;
+import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
+import ru.spcex.clearing.imdg.IMDGDistributedNames;
+import ru.spcex.clearing.reports.reports.CSVReportBuilder;
+import ru.spcex.platform.enumeration.Allowed;
+import ru.spcex.platform.enumeration.Market;
+import ru.spcex.platform.enumeration.Side;
+import ru.spcex.platform.enumeration.WorkflowStatus;
+import ru.spcex.platform.imdg.api.Imdg;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+// todo check typo
+public abstract class LiabilitiesClaimsReportBuilder extends CSVReportBuilder
{
+ protected final Imdg executionFondImdg;
+ protected final Imdg executionDepositImdg;
+ protected final Imdg companyImdg;
+ protected final Imdg registryImdg;
+ protected final Imdg listingImdg;
+ protected final Imdg fixedIncomeSecurityImdg;
+ protected final Imdg tradingClearingRegistryImdg;
+
+ protected final String[] headers = {
+ "id", "doc_date", "doc_time", "doc_name", "doc_type", "clearingHouse", "firmId", "firName", "session_id",
+ "clearing_date", "clearing_time", "trdAccId", "account", "depo_account", "currency", "tr_id", "securityId",
+ "tr_buySell", "tr_date", "tr_execDate", "exec_status", "repaym_date", "tr_price", "nominal", "lot_value",
+ "tr_lot", "tr_quantity", "tr_value", "tr_accruedint", "accruedint", "tr_clrComm", "tr_exhComm", "cash_liability",
+ "depo_liability", "cash_netto", "depo_netto"
+ };
+ protected List lines = null;
+
+ public LiabilitiesClaimsReportBuilder(ImdgProvider imdgProvider) {
+ this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
+ this.executionDepositImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class);
+ this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
+ this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
+ this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
+ this.fixedIncomeSecurityImdg = imdgProvider.getImdg(
+ IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class
+ );
+ this.tradingClearingRegistryImdg = imdgProvider.getImdg(
+ IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class
+ );
+ }
+
+ @Override
+ public String[] getHeaders() {
+ return headers;
+ }
+
+ @Override
+ protected List getLines() {
+ return lines;
+ }
+
+ protected abstract Collection getExecutionFondsForReport(P params);
+
+ protected abstract Collection getExecutionDepositsForReport(P params);
+
+ @Override
+ protected void collect(P params) {
+ Collection executionFonds = getExecutionFondsForReport(params);
+ Collection executionDeposits = getExecutionDepositsForReport(params);
+
+ List executions = new ArrayList<>(executionFonds.size() + executionDeposits.size());
+ executions.addAll(executionFonds);
+ executions.addAll(executionDeposits);
+
+ Company clearingHouseCompany = companyImdg.getSingleObjectByID(1L);
+ String clearingHouse = clearingHouseCompany.getFullName();
+
+ LocalDate nowDate = LocalDate.now();
+ LocalTime nowTime = LocalTime.now();
+
+ lines = new ArrayList<>(executions.size());
+ for (ExecutionCommon execution : executions) {
+ Company company = companyImdg.getSingleObjectByID(execution.getCompanyId());
+ if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) continue;
+
+ Registry registry = registryImdg.getSingleObjectByFieldValues(Map.of("companyId", execution.getCompanyId()));
+ Collection registriesForSessionId = registryImdg.getCollectionObjectsByFieldValues(
+ Map.of("sessionId", execution.getSessionId())
+ );
+ Listing listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", execution.getSecurityId()));
+ FixedIncomeSecurity fixedIncomeSecurity = fixedIncomeSecurityImdg.getSingleObjectByFieldValues(
+ Map.of("securityId", execution.getSecurityId())
+ );
+ TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(
+ execution.getTradingClearingRegistryId()
+ );
+
+ String id = String.valueOf(execution.getId());
+ String docDate = dateFormatter.format(nowDate);
+ String docTime = timeFormatter.format(nowTime);
+ String docName = "Отчет об обязательствах/требованиях Участника клиринга";
+ String docType = "KS_FIRMID_LIABILITIES";
+ String firmId = String.valueOf(execution.getCompanyId());
+ String firName = company.getFullName();
+ String sessionId = String.valueOf(execution.getSessionId());
+ String clearingDate = dateFormatter.format(execution.getClearingDate());
+ String clearingTime = dateFormatter.format(execution.getClearingDate());
+ String trdAccId = registry.getTradingClearingRegistry();
+ String account = String.valueOf(tradingClearingRegistry.getMoneyAccountId());
+ String depoAccount = String.valueOf(tradingClearingRegistry.getDepoAccountId());
+ String currency = execution.getSettlementCurrency();
+ String trId = String.valueOf(execution.getExchangeExecutionId());
+ String securityId = String.valueOf(execution.getSecurityId());
+
+ String trBuySell = "";
+ if (Side.BUY.equalsByKey(execution.getSide()))
+ trBuySell = "B";
+ else if (Side.SELL.equalsByKey(execution.getSide()))
+ trBuySell = "S";
+ String trDate = dateFormatter.format(execution.getTradingDate());
+
+ String trExecDate = "";
+ String execStatus = "";
+ String repaymDate = "";
+ String trPrice = "";
+ String nominal = "";
+ String trQuantity = "";
+ String trValue = "";
+ String trAccruedInt = "";
+ String accruedInt = "";
+ String cashLiability = "";
+ String depoLiability = "";
+ if (execution instanceof ExecutionDeposit executionDeposit) {
+ trExecDate = dateFormatter.format(executionDeposit.getSecondLegSettlementDate());
+ if (Market.mkrs.equalsByKey(execution.getMarket())) {
+
+ String coverageStatus = executionDeposit.getCoverageStatus();
+ if (Allowed.ALLOWED.equalsByKey(coverageStatus)) execStatus = "Y";
+ else if (Allowed.DENIED.equalsByKey(coverageStatus)) execStatus = "N";
+ else execStatus = "W";
+
+ repaymDate = dateFormatter.format(executionDeposit.getSecondLegSettlementDate());
+ trPrice = String.valueOf(executionDeposit.getPrice());
+ trValue = String.valueOf(executionDeposit.getFirstLegAmount());
+ cashLiability = String.valueOf(executionDeposit.getFirstLegAmount());
+ }
+ } else if (execution instanceof ExecutionFond executionFond) {
+ trExecDate = dateFormatter.format(executionFond.getSettlementDate());
+ if (Market.fond.equalsByKey(execution.getMarket())) {
+ trPrice = String.valueOf(
+ executionFond.getSettlementAmount().divide(executionFond.getQuantity(), RoundingMode.HALF_UP)
+ );
+ trQuantity = String.valueOf(executionFond.getQuantity());
+ nominal = String.valueOf(fixedIncomeSecurity.getNominalValue());
+ trValue = String.valueOf(executionFond.getSettlementAmount());
+ trAccruedInt = String.valueOf(fixedIncomeSecurity.getCoupon());
+ accruedInt = String.valueOf(
+ fixedIncomeSecurity.getCoupon().divide(executionFond.getQuantity(), RoundingMode.HALF_UP)
+ );
+ cashLiability = String.valueOf(executionFond.getSettlementAmount());
+ depoLiability = String.valueOf(executionFond.getQuantity());
+ }
+ }
+
+ String lotValue = String.valueOf(listing.getLotSize());
+ String trLot = String.valueOf(execution.getLots());
+ String trClrComm = "";
+ String trExhComm = "";
+
+ Registry tm_tRegistry = null;
+ Registry om_tRegistry = null;
+ Registry ts_tRegistry = null;
+ Registry os_tRegistry = null;
+ for (Registry currRegistry : registriesForSessionId) {
+ String registryCode = currRegistry.getRegistryCode();
+ if (registryCode.endsWith("T")) {
+ if (registryCode.startsWith("TM")) {
+ if (tm_tRegistry != null && tm_tRegistry.getUpdated().isAfter(currRegistry.getUpdated())) continue;
+ tm_tRegistry = currRegistry;
+ }
+ if (registryCode.startsWith("OM")) {
+ if (om_tRegistry != null && om_tRegistry.getUpdated().isAfter(currRegistry.getUpdated())) continue;
+ om_tRegistry = currRegistry;
+ }
+ if (registryCode.startsWith("TS")) {
+ if (ts_tRegistry != null && ts_tRegistry.getUpdated().isAfter(currRegistry.getUpdated())) continue;
+ ts_tRegistry = currRegistry;
+ }
+ if (registryCode.startsWith("OS")) {
+ if (os_tRegistry != null && os_tRegistry.getUpdated().isAfter(currRegistry.getUpdated())) continue;
+ os_tRegistry = currRegistry;
+ }
+ }
+ }
+ String cashNetto = "";
+ if (tm_tRegistry != null && om_tRegistry != null) {
+ cashNetto = String.valueOf(tm_tRegistry.getBalance().subtract(om_tRegistry.getBalance()));
+ }
+
+ String depoNetto = "";
+ if (ts_tRegistry != null && os_tRegistry != null) {
+ depoNetto = String.valueOf(ts_tRegistry.getBalance().subtract(os_tRegistry.getBalance()));
+ }
+
+
+ int valueIdx = 0;
+ String[] line = new String[getHeaders().length];
+ line[valueIdx++] = id;
+ line[valueIdx++] = docDate;
+ line[valueIdx++] = docTime;
+ line[valueIdx++] = docName;
+ line[valueIdx++] = docType;
+ line[valueIdx++] = clearingHouse;
+ line[valueIdx++] = firmId;
+ line[valueIdx++] = firName;
+ line[valueIdx++] = sessionId;
+ line[valueIdx++] = clearingDate;
+ line[valueIdx++] = clearingTime;
+ line[valueIdx++] = trdAccId;
+ line[valueIdx++] = account;
+ line[valueIdx++] = depoAccount;
+ line[valueIdx++] = currency;
+ line[valueIdx++] = trId;
+ line[valueIdx++] = securityId;
+ line[valueIdx++] = trBuySell;
+ line[valueIdx++] = trDate;
+ line[valueIdx++] = trExecDate;
+ line[valueIdx++] = execStatus;
+ line[valueIdx++] = repaymDate;
+ line[valueIdx++] = trPrice;
+ line[valueIdx++] = nominal;
+ line[valueIdx++] = lotValue;
+ line[valueIdx++] = trLot;
+ line[valueIdx++] = trQuantity;
+ line[valueIdx++] = trValue;
+ line[valueIdx++] = trAccruedInt;
+ line[valueIdx++] = accruedInt;
+ line[valueIdx++] = trClrComm;
+ line[valueIdx++] = trExhComm;
+ line[valueIdx++] = cashLiability;
+ line[valueIdx++] = depoLiability;
+ line[valueIdx++] = cashNetto;
+ line[valueIdx] = depoNetto;
+ lines.add(line);
+ }
+ }
+
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/MoneyChangeReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/MoneyChangeReportBuilder.java
new file mode 100644
index 000000000..b72a2a004
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/MoneyChangeReportBuilder.java
@@ -0,0 +1,131 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.company.Company;
+import ru.clearing.classes.statics.data.misc.Listing;
+import ru.clearing.classes.statics.data.payment.PaymentInstruction;
+import ru.clearing.classes.statics.data.registry.Registry;
+import ru.clearing.classes.statics.data.statement.Statement;
+import ru.spcex.clearing.imdg.IMDGDistributedNames;
+import ru.spcex.clearing.reports.reports.CSVReportBuilder;
+import ru.spcex.platform.enumeration.InOutDirection;
+import ru.spcex.platform.enumeration.WorkflowStatus;
+import ru.spcex.platform.imdg.api.Imdg;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+public abstract class MoneyChangeReportBuilder extends CSVReportBuilder
{
+ protected final Imdg registryImdg;
+ protected final Imdg companyImdg;
+ protected final Imdg listingImdg;
+ protected final Imdg statementImdg;
+ protected final Imdg paymentInstructionImdg;
+ protected final String[] headers = {
+ "id", "doc_date", "doc_time", "doc_name", "doc_type", "clearingHouse", "firmId", "firName", "trdAccId",
+ "account", "currency", "registry_code", "registry_name", "open_balance", "change_balance", "add_withdraw",
+ "close_balance", "remarks", "add_sum", "add_time", "withdraw_sum", "withdraw_time"
+ };
+
+ protected List lines = null;
+
+ public MoneyChangeReportBuilder(ImdgProvider imdgProvider) {
+ this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
+ this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
+ this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
+ this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
+ this.paymentInstructionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class);
+ }
+
+ @Override
+ public String[] getHeaders() {
+ return headers;
+ }
+
+ @Override
+ protected List getLines() {
+ return lines;
+ }
+
+ protected abstract Collection getRegistryForReport(P param);
+
+ @Override
+ protected void collect(P params) {
+ Collection registries = getRegistryForReport(params);
+
+ Company clearingHouseCompany = companyImdg.getSingleObjectByID(1L);
+ String clearingHouse = clearingHouseCompany.getFullName();
+
+ LocalDate nowDate = LocalDate.now();
+ LocalTime nowTime = LocalTime.now();
+ lines = new ArrayList<>(registries.size());
+ for (Registry registry : registries) {
+ Company company = companyImdg.getSingleObjectByID(registry.getCompanyId());
+ if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) continue;
+
+ Listing listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", registry.getSecurityId()));
+ Statement statement = statementImdg.getSingleObjectByFieldValues(Map.of("addresseeId", registry.getCompanyId()));
+ PaymentInstruction paymentInstruction = paymentInstructionImdg.getSingleObjectByFieldValues(
+ Map.of(
+ "id", registry.getPaymentId(),
+ "creditLeg_direction", InOutDirection.out.getKey()
+ )
+ );
+
+ String id = String.valueOf(registry.getId());
+ String docDate = dateFormatter.format(nowDate);
+ String docTime = timeFormatter.format(nowTime);
+ String docName = "Отчет об изменении суммы денежных средств и (или) количества иного имущества Участника клиринга";
+ String docType = "KS_FIRMID_ASSETS";
+ String firmId = String.valueOf(registry.getCompanyId());
+ String firName = company.getFullName();
+ String trdAccId = registry.getTradingClearingRegistry();
+ String account = String.valueOf(registry.getAccountId());
+ String currency = listing.getTradingCurrency();
+ String registryCode = String.valueOf(registry.getId());
+ String registryName = registry.getRegistryCode();
+ String openBalance = String.valueOf(registry.getOpenBalance());
+ String changeBalance = String.valueOf(registry.getCloseBalance().subtract(registry.getOpenBalance()));
+ String addWithdraw = String.valueOf(registry.getCredit().subtract(registry.getDebit()));
+ String closeBalance = String.valueOf(registry.getCloseBalance());
+ String remarks = "";
+ String addSum = String.valueOf(registry.getCredit());
+ String addTime = dateTimeFormatter.format(LocalDateTime.ofInstant(statement.getCreated(), ZoneId.systemDefault()));
+ String withdrawSum = String.valueOf(registry.getDebit());
+ String withdrawTime = dateTimeFormatter.format(LocalDateTime.ofInstant(paymentInstruction.getPaymentDate(), ZoneId.systemDefault()));
+
+ int valueIdx = 0;
+ String[] line = new String[getHeaders().length];
+ line[valueIdx++] = id;
+ line[valueIdx++] = docDate;
+ line[valueIdx++] = docTime;
+ line[valueIdx++] = docName;
+ line[valueIdx++] = docType;
+ line[valueIdx++] = clearingHouse;
+ line[valueIdx++] = firmId;
+ line[valueIdx++] = firName;
+ line[valueIdx++] = trdAccId;
+ line[valueIdx++] = account;
+ line[valueIdx++] = currency;
+ line[valueIdx++] = registryCode;
+ line[valueIdx++] = registryName;
+ line[valueIdx++] = openBalance;
+ line[valueIdx++] = changeBalance;
+ line[valueIdx++] = addWithdraw;
+ line[valueIdx++] = closeBalance;
+ line[valueIdx++] = remarks;
+ line[valueIdx++] = addSum;
+ line[valueIdx++] = addTime;
+ line[valueIdx++] = withdrawSum;
+ line[valueIdx++] = withdrawTime;
+ lines.add(line);
+ }
+ }
+
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalLiabilitiesClaimsReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalLiabilitiesClaimsReportBuilder.java
new file mode 100644
index 000000000..dd7e6f9d5
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalLiabilitiesClaimsReportBuilder.java
@@ -0,0 +1,43 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
+import ru.clearing.classes.statics.data.execution.ExecutionFond;
+import ru.spcex.clearing.reports.reports.SessionIdParam;
+import ru.spcex.platform.enumeration.ReportType;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+
+import java.time.LocalDateTime;
+import java.util.Collection;
+import java.util.Map;
+
+public class OperationalLiabilitiesClaimsReportBuilder extends LiabilitiesClaimsReportBuilder {
+ public OperationalLiabilitiesClaimsReportBuilder(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected Collection getExecutionFondsForReport(SessionIdParam params) {
+ return executionFondImdg.getCollectionObjectsByFieldValues(
+ Map.of("sessionId", params.getSessionId())
+ );
+ }
+
+ @Override
+ protected Collection getExecutionDepositsForReport(SessionIdParam params) {
+ return executionDepositImdg.getCollectionObjectsByFieldValues(
+ Map.of("sessionId", params.getSessionId())
+ );
+ }
+
+ @Override
+ protected String getReportFilename(SessionIdParam params) {
+ return "operational_liabilities_claims.%s".formatted(
+ dateTimeFormatter.format(LocalDateTime.now())
+ );
+ }
+
+ @Override
+ public ReportType getReportType() {
+ return ReportType.OPERATIONAL_LIABILITIES_CLAIMS;
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalMoneyChangeReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalMoneyChangeReportBuilder.java
new file mode 100644
index 000000000..24a1283d6
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/OperationalMoneyChangeReportBuilder.java
@@ -0,0 +1,33 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.registry.Registry;
+import ru.spcex.clearing.reports.reports.SessionIdParam;
+import ru.spcex.platform.enumeration.ReportType;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+
+import java.time.LocalDateTime;
+import java.util.Collection;
+import java.util.Map;
+
+public class OperationalMoneyChangeReportBuilder extends MoneyChangeReportBuilder {
+ public OperationalMoneyChangeReportBuilder(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected Collection getRegistryForReport(SessionIdParam param) {
+ return registryImdg.getCollectionObjectsByFieldValues(
+ Map.of("sessionId", param.getSessionId())
+ );
+ }
+
+ @Override
+ protected String getReportFilename(SessionIdParam params) {
+ return "operational_money_change.%s".formatted(dateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ public ReportType getReportType() {
+ return ReportType.OPERATIONAL_MONEY_CHANGE;
+ }
+}
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
new file mode 100644
index 000000000..4d5532b07
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodLiabilitiesClaimsReportBuilder.java
@@ -0,0 +1,44 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
+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 java.time.LocalDateTime;
+import java.util.Collection;
+import java.util.Collections;
+
+public class PeriodLiabilitiesClaimsReportBuilder extends LiabilitiesClaimsReportBuilder {
+
+ public PeriodLiabilitiesClaimsReportBuilder(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected String getReportFilename(SessionIdListParams params) {
+ return "period_liabilities_claims.%s".formatted(dateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ public ReportType getReportType() {
+ return ReportType.PERIOD_LIABILITIES_CLAIMS;
+ }
+
+ @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]))
+ );
+ }
+
+ @Override
+ protected Collection getExecutionDepositsForReport(SessionIdListParams params) {
+ if (params.getSessionIdList() == null || params.getSessionIdList().isEmpty()) return Collections.emptyList();
+ return executionDepositImdg.getCollectionObjectsByPredicate(
+ executionDepositImdg.predicateBuilder().in("sessionId", params.getSessionIdList().toArray(new Long[0]))
+ );
+ }
+}
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
new file mode 100644
index 000000000..6e35c0cab
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/PeriodMoneyChangeReportBuilder.java
@@ -0,0 +1,43 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.registry.Registry;
+import ru.spcex.clearing.reports.reports.PeriodParams;
+import ru.spcex.platform.enumeration.ReportType;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
+
+import java.time.LocalDateTime;
+import java.util.Collection;
+
+public class PeriodMoneyChangeReportBuilder extends MoneyChangeReportBuilder {
+
+ public PeriodMoneyChangeReportBuilder(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected Collection getRegistryForReport(PeriodParams params) {
+ ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
+ return registryImdg.getCollectionObjectsByPredicate(
+ pb.and(
+ pb.greatEqual("clearingDate", params.getStartDate()),
+ pb.lessEqual("clearingDate", params.getEndDate())
+ )
+ );
+ }
+
+ @Override
+ public String getReportFilename(PeriodParams params) {
+ return "period_money_change.%s-%s.%s".formatted(
+ dateFormatter.format(params.getStartDate()),
+ dateFormatter.format(params.getEndDate()),
+ dateTimeFormatter.format(LocalDateTime.now())
+ );
+ }
+
+ @Override
+ public ReportType getReportType() {
+ return ReportType.PERIOD_MONEY_CHANGE;
+ }
+
+}
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
new file mode 100644
index 000000000..50de7bac2
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryLiabilitiesClaimsReportBuilder.java
@@ -0,0 +1,36 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
+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 java.time.LocalDateTime;
+import java.util.Collection;
+
+public class SummaryLiabilitiesClaimsReportBuilder extends LiabilitiesClaimsReportBuilder {
+ public SummaryLiabilitiesClaimsReportBuilder(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected Collection getExecutionFondsForReport(EmptyParams params) {
+ return executionFondImdg.getAllValues();
+ }
+
+ @Override
+ protected Collection getExecutionDepositsForReport(EmptyParams params) {
+ return executionDepositImdg.getAllValues();
+ }
+
+ @Override
+ protected String getReportFilename(EmptyParams params) {
+ return "summary_money_change.%s".formatted(dateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ public ReportType getReportType() {
+ return ReportType.SUMMARY_LIABILITIES_CLAIMS;
+ }
+}
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
new file mode 100644
index 000000000..a636c5911
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/SummaryMoneyChangeReportBuilder.java
@@ -0,0 +1,31 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+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 java.time.LocalDateTime;
+import java.util.Collection;
+
+public class SummaryMoneyChangeReportBuilder extends MoneyChangeReportBuilder {
+ public SummaryMoneyChangeReportBuilder(ImdgProvider imdgProvider) {
+ super(imdgProvider);
+ }
+
+ @Override
+ protected Collection getRegistryForReport(EmptyParams param) {
+ return registryImdg.getAllValues();
+ }
+
+ @Override
+ protected String getReportFilename(EmptyParams params) {
+ return "summary_money_change.%s".formatted(dateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ public ReportType getReportType() {
+ return ReportType.SUMMARY_MONEY_CHANGE;
+ }
+
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReportBuilder.java
new file mode 100644
index 000000000..249b53211
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReportBuilder.java
@@ -0,0 +1,95 @@
+package ru.spcex.clearing.reports.reports.bp;
+
+import ru.clearing.classes.statics.data.company.Company;
+import ru.clearing.classes.statics.data.execution.ExecutionFond;
+import ru.clearing.classes.statics.data.misc.STrades;
+import ru.spcex.clearing.imdg.IMDGDistributedNames;
+import ru.spcex.clearing.reports.reports.CSVReportBuilder;
+import ru.spcex.clearing.reports.reports.SessionIdParam;
+import ru.spcex.platform.enumeration.Allowed;
+import ru.spcex.platform.enumeration.ReportType;
+import ru.spcex.platform.enumeration.WorkflowStatus;
+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.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+public class UnfulfilledDealReportBuilder extends CSVReportBuilder {
+ private final Imdg executionFondImdg;
+ private final Imdg companyImdg;
+ private final Imdg sTradesImdg;
+ private final String[] headers = {
+ "id", "securityId", "tradeNo", "tradeDate", "settleCode"
+ };
+ private List lines = null;
+
+ public UnfulfilledDealReportBuilder(ImdgProvider imdgProvider) {
+ executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
+ companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
+ sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
+ }
+
+ @Override
+ public String[] getHeaders() {
+ return headers;
+ }
+
+ @Override
+ protected List getLines() {
+ return lines;
+ }
+
+ @Override
+ protected String getReportFilename(SessionIdParam params) {
+ return "unfulfilled_deal_report.%s".formatted(dateTimeFormatter.format(LocalDateTime.now()));
+ }
+
+ @Override
+ public ReportType getReportType() {
+ return ReportType.UNFULFILLED_DEAL_REPORT;
+ }
+
+ @Override
+ protected void collect(SessionIdParam params) {
+ ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder();
+ ImdgPredicate predicate = pb.and(
+ pb.equals("sessionId", params.getSessionId()),
+ pb.equals("coverageStatus", Allowed.DENIED.getKey())
+ );
+ Collection executionFonds = executionFondImdg.getCollectionObjectsByPredicate(predicate);
+
+ lines = new ArrayList<>(executionFonds.size());
+ for (ExecutionFond executionFond : executionFonds) {
+ Company company = companyImdg.getSingleObjectByID(executionFond.getCompanyId());
+ if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) continue;
+ STrades sTrade = sTradesImdg.getSingleObjectByFieldValues(
+ Map.of(
+ "settleCode", executionFond.getSettlementCode(),
+ "operation", executionFond.getSide()
+ )
+ );
+
+ String id = String.valueOf(executionFond.getId());
+ String securityId = String.valueOf(executionFond.getSecurityId());
+ String tradeNo = String.valueOf(executionFond.getExchangeExecutionId());
+ String tradeDate = dateFormatter.format(executionFond.getTradingDate());
+ String settleCode = sTrade != null ? sTrade.getClassCode() : null;
+
+ int valueIdx = 0;
+ String[] line = new String[getHeaders().length];
+ line[valueIdx++] = id;
+ line[valueIdx++] = securityId;
+ line[valueIdx++] = tradeNo;
+ line[valueIdx++] = tradeDate;
+ line[valueIdx++] = settleCode;
+ lines.add(line);
+ }
+ }
+
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 98%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_B.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_12_2/ReportPA_B.java
index 1f3c7ae98..d638fbf44 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_12_2;
+package ru.spcex.clearing.reports.reports.bt.bt_12_2;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("netPositionBank")
+@Deprecated
public class ReportPA_B extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 98%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_12_2/ReportPA_IV.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_12_2/ReportPA_IV.java
index 12d124dc7..a989f5a03 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_12_2;
+package ru.spcex.clearing.reports.reports.bt.bt_12_2;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("netPositionInitiator")
+@Deprecated
public class ReportPA_IV extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/ReportDOCIN.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCIN.java
similarity index 87%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/ReportDOCIN.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCIN.java
index 3b8a7171b..c10a38e33 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/ReportDOCIN.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCIN.java
@@ -1,12 +1,9 @@
-package ru.spcex.clearing.reports.reports.bt_13;
+package ru.spcex.clearing.reports.reports.bt.bt_13;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
-import com.thoughtworks.xstream.annotations.XStreamConverter;
import ru.spcex.clearing.reports.reports.AbstractReport;
import ru.spcex.clearing.reports.reports.ReportId;
-import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
-import ru.spcex.clearing.reports.xml_test.FormattedLocalTimeConverter;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -15,13 +12,14 @@ 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"})
+// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private final LocalDate date;
/**
@@ -29,7 +27,7 @@ public class ReportDOCIN extends AbstractReport {
*/
@XStreamAsAttribute
@XStreamAlias("time")
- @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"})
+// @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"})
private final LocalTime time;
@XStreamAlias("rows")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/ReportDOCOUT.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCOUT.java
similarity index 87%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/ReportDOCOUT.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCOUT.java
index 05f22cc48..be4037989 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_13/ReportDOCOUT.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_13/ReportDOCOUT.java
@@ -1,12 +1,9 @@
-package ru.spcex.clearing.reports.reports.bt_13;
+package ru.spcex.clearing.reports.reports.bt.bt_13;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
-import com.thoughtworks.xstream.annotations.XStreamConverter;
import ru.spcex.clearing.reports.reports.AbstractReport;
import ru.spcex.clearing.reports.reports.ReportId;
-import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
-import ru.spcex.clearing.reports.xml_test.FormattedLocalTimeConverter;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -15,13 +12,14 @@ 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"})
+// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private final LocalDate date;
/**
@@ -29,7 +27,7 @@ public class ReportDOCOUT extends AbstractReport {
*/
@XStreamAsAttribute
@XStreamAlias("time")
- @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"})
+// @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"})
private final LocalTime time;
@XStreamAlias("rows")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_16_5/ReportINACCNT.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_16_5/ReportINACCNT.java
similarity index 86%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_16_5/ReportINACCNT.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_16_5/ReportINACCNT.java
index 3b1221020..32d9cad93 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_16_5/ReportINACCNT.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_16_5/ReportINACCNT.java
@@ -1,12 +1,9 @@
-package ru.spcex.clearing.reports.reports.bt_16_5;
+package ru.spcex.clearing.reports.reports.bt.bt_16_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
-import com.thoughtworks.xstream.annotations.XStreamConverter;
import ru.spcex.clearing.reports.reports.AbstractReport;
import ru.spcex.clearing.reports.reports.ReportId;
-import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
-import ru.spcex.clearing.reports.xml_test.FormattedLocalTimeConverter;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -15,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("accountBalanceInfo")
+@Deprecated
public class ReportINACCNT extends AbstractReport {
@XStreamAsAttribute
@XStreamAlias("clearingMemberCategory")
@@ -25,7 +23,7 @@ public class ReportINACCNT extends AbstractReport {
*/
@XStreamAsAttribute
@XStreamAlias("date")
- @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
+// @XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
private final LocalDate date;
/**
@@ -33,7 +31,7 @@ public class ReportINACCNT extends AbstractReport {
*/
@XStreamAsAttribute
@XStreamAlias("time")
- @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"})
+// @XStreamConverter(value = FormattedLocalTimeConverter.class, strings = {"HH:mm:ss"})
private final LocalTime time;
@XStreamAlias("rows")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P1.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_1/ReportBR_0420315_P1.java
index 67aafde5b..bd317a145 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_1;
+package ru.spcex.clearing.reports.reports.bt.bt_17_1;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -14,6 +14,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearedLiabilities")
+@Deprecated
public class ReportBR_0420315_P1 extends ReportWithClearingStatus {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P2.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_1/ReportBR_0420315_P2.java
index 7520ed7f0..dd013a1ff 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_1;
+package ru.spcex.clearing.reports.reports.bt.bt_17_1;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -10,6 +10,7 @@ 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;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_2/ReportBR_0420317.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_2/ReportBR_0420317.java
index 94009f5c6..167b889de 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_2;
+package ru.spcex.clearing.reports.reports.bt.bt_17_2;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingServiceStatus")
+@Deprecated
public class ReportBR_0420317 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_3/ReportBR_0420318.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_3/ReportBR_0420318.java
index e42c06933..0a4d1529c 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_3;
+package ru.spcex.clearing.reports.reports.bt.bt_17_3;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -13,6 +13,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("unfundedLiabilities")
+@Deprecated
public class ReportBR_0420318 extends ReportWithClearingStatus {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P1.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_4/ReportBR_0420314_P1.java
index a72ecca3b..55fede8b5 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_4;
+package ru.spcex.clearing.reports.reports.bt.bt_17_4;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("accountTransactionLiabilities")
+@Deprecated
public class ReportBR_0420314_P1 extends ReportWithClearingStatus {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P2.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_4/ReportBR_0420314_P2.java
index f4019dfdd..1feed5112 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_4;
+package ru.spcex.clearing.reports.reports.bt.bt_17_4;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -11,6 +11,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("accountTransactionTurnover")
+@Deprecated
public class ReportBR_0420314_P2 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P1.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P1.java
index 03e5cbc05..3e6492797 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -11,6 +11,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage1")
+@Deprecated
public class ReportBR_0420312_P1 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P10.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P10.java
index 08a428309..32ad2e543 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage10")
+@Deprecated
public class ReportBR_0420312_P10 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P2.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P2.java
index 22706fb9d..6e0043854 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage2")
+@Deprecated
public class ReportBR_0420312_P2 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P3.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P3.java
index 4b78a1b87..79ec3df44 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage3")
+@Deprecated
public class ReportBR_0420312_P3 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P4.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P4.java
index d7aa87a9f..e8350d3b7 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage4")
+@Deprecated
public class ReportBR_0420312_P4 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P5.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P5.java
index 9132d81db..5579eaf22 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage5")
+@Deprecated
public class ReportBR_0420312_P5 extends ReportWithPeriod {
@XStreamAsAttribute
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P6.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P6.java
index 00a273649..7f8220da6 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage6")
+@Deprecated
public class ReportBR_0420312_P6 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P7.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P7.java
index c35b4230c..fa809a07e 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage7")
+@Deprecated
public class ReportBR_0420312_P7 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P8.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P8.java
index eff2fb7a7..51d6c3345 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage8")
+@Deprecated
public class ReportBR_0420312_P8 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P9.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt/bt_17_5/ReportBR_0420312_P9.java
index 92c5e7f68..24e899539 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.reports.bt_17_5;
+package ru.spcex.clearing.reports.reports.bt.bt_17_5;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
@XStreamAlias("clearingCoverage9")
+@Deprecated
public class ReportBR_0420312_P9 extends ReportWithPeriod {
@XStreamAsAttribute
@XStreamAlias("destination")
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
new file mode 100644
index 000000000..2718a3053
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java
@@ -0,0 +1,237 @@
+package ru.spcex.clearing.reports.services;
+
+import org.apache.kafka.clients.consumer.Consumer;
+import org.apache.kafka.clients.producer.Producer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Service;
+import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
+import ru.spcex.clearing.platform.messaging.domain.Consts;
+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.service.QueueConsumer;
+import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
+import ru.spcex.clearing.reports.config.element.ReportsServiceSettings;
+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.utils.enumeration.IEnumKey;
+import ru.spcex.platform.utils.validation.IValidator;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+@Service
+public class ReportService extends QueueConsumer implements InitializingBean {
+ private final Logger log = LoggerFactory.getLogger(getClass());
+ private final UserRoleVerification userRoleVerification;
+ private final ValidationHelper validationHelper;
+ private final Function reportRequestValidator;
+ private final Function reportRequestWithSessionIdValidator;
+ private final Function reportRequestWithSessionIdListValidator;
+ private final Function reportRequestWithPeriodValidator;
+ private final Map>> reportBuildersWithoutParams;
+ private final Map>> reportBuildersWithSessionIdParam;
+ private final Map>> reportBuildersWithSessionIdListParam;
+ private final Map>> reportBuildersWithPeriodParams;
+
+ private final File outFolder;
+
+ public ReportService(Consumer kafkaQueue,
+ Producer kafkaResponseQueue,
+ UserRoleVerification userRoleVerification,
+ ValidationHelper validationHelper,
+ ReportsServiceSettings reportsServiceSettings,
+ @Qualifier("reportBuildersWithoutParams")
+ Map>> reportBuildersWithoutParams,
+ @Qualifier("reportBuildersWithSessionIdParam")
+ Map>> reportBuildersWithSessionIdParam,
+ @Qualifier("reportBuildersWithSessionIdListParam")
+ Map>> reportBuildersWithSessionIdListParam,
+ @Qualifier("reportBuildersWithPeriodParams")
+ Map>> reportBuildersWithPeriodParams,
+ @Qualifier("reportRequestValidator")
+ Function reportRequestValidator,
+ @Qualifier("reportRequestWithSessionIdValidator")
+ Function reportRequestWithSessionIdValidator,
+ @Qualifier("reportRequestWithSessionIdListValidator")
+ Function reportRequestWithSessionIdListValidator,
+ @Qualifier("reportRequestWithPeriodValidator")
+ Function reportRequestWithPeriodValidator) {
+ super(kafkaQueue, kafkaResponseQueue);
+ this.userRoleVerification = userRoleVerification;
+ this.validationHelper = validationHelper;
+ this.reportRequestValidator = reportRequestValidator;
+ this.reportRequestWithSessionIdValidator = reportRequestWithSessionIdValidator;
+ this.reportRequestWithSessionIdListValidator = reportRequestWithSessionIdListValidator;
+ this.reportRequestWithPeriodValidator = reportRequestWithPeriodValidator;
+ this.reportBuildersWithoutParams = reportBuildersWithoutParams;
+ this.reportBuildersWithSessionIdParam = reportBuildersWithSessionIdParam;
+ this.reportBuildersWithSessionIdListParam = reportBuildersWithSessionIdListParam;
+ this.reportBuildersWithPeriodParams = reportBuildersWithPeriodParams;
+ this.outFolder = new File(reportsServiceSettings.getReportModuleOut());
+ assert outFolder.isDirectory();
+ }
+
+ @Override
+ public void afterPropertiesSet() throws Exception {
+ callback(ReportRequest.class)
+ .setFunction(this::createReport)
+ .forDestination(Consts.CREATE_REPORT, callbacks::put);
+ callback(ReportRequestWithSessionId.class)
+ .setFunction(this::createReportForSessionId)
+ .forDestination(Consts.CREATE_REPORT_FOR_SESSION_ID, callbacks::put);
+ callback(ReportRequestWithSessionIdList.class)
+ .setFunction(this::createReportForSessionIdList)
+ .forDestination(Consts.CREATE_REPORT_FOR_SESSION_ID_LIST, callbacks::put);
+ callback(ReportRequestWithPeriod.class)
+ .setFunction(this::createReportForPeriod)
+ .forDestination(Consts.CREATE_REPORT_FOR_PERIOD, callbacks::put);
+ init();
+ }
+
+ public RequestInfoUpdate createReport(BaseRequest userRequest) {
+ log.debug("ReportRequest received");
+ RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
+ if (requestInfoUpdate != null) return null;
+
+ requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, reportRequestValidator);
+ if (requestInfoUpdate != null) return null;
+
+ ReportRequest req = userRequest.getRequestPayload();
+ log.debug("Create report type {}...", req.getReportId());
+
+ List> builders = reportBuildersWithoutParams.get(
+ IEnumKey.getEnumByKey(ReportType.class, req.getReportId())
+ );
+ List outFilenames = new ArrayList<>();
+ for (CSVReportBuilder builder : builders) {
+ File outFile = builder.createReport(new EmptyParams(), outFolder);
+ if (outFile == null) continue;
+ outFilenames.add(outFile.getAbsolutePath());
+ }
+
+ int outFilesCnt = outFilenames.size();
+ if (outFilesCnt == 0) {
+ log.error("Create report {} failed, see log", req.getReportId());
+ } else if (outFilesCnt < builders.size()) {
+ log.error("Create some error for {} failed, see log", req.getReportId());
+ } else {
+ log.debug("Reports {} successfully created. Output files: {}", req.getReportId(), String.join(", ", outFilenames));
+ }
+ return null;
+ }
+
+ public RequestInfoUpdate createReportForSessionId(BaseRequest userRequest) {
+ log.debug("ReportRequestWithSessionId received");
+ RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
+ if (requestInfoUpdate != null) return null;
+
+ requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, reportRequestWithSessionIdValidator);
+ if (requestInfoUpdate != null) return null;
+
+ ReportRequestWithSessionId req = userRequest.getRequestPayload();
+ log.debug("Create report type {}...", req.getReportId());
+
+ List> builders = reportBuildersWithSessionIdParam.get(
+ IEnumKey.getEnumByKey(ReportType.class, req.getReportId())
+ );
+ List outFilenames = new ArrayList<>();
+ for (CSVReportBuilder builder : builders) {
+ SessionIdParam sessionIdParam = new SessionIdParam();
+ sessionIdParam.setSessionId(req.getSessionId());
+ File outFile = builder.createReport(sessionIdParam, outFolder);
+ if (outFile == null) continue;
+ outFilenames.add(outFile.getAbsolutePath());
+ }
+
+ int outFilesCnt = outFilenames.size();
+ if (outFilesCnt == 0) {
+ log.error("Create report {} failed, see log", req.getReportId());
+ } else if (outFilesCnt < builders.size()) {
+ log.error("Create some error for {} failed, see log", req.getReportId());
+ } else {
+ log.debug("Reports {} successfully created. Output files: {}", req.getReportId(), String.join(", ", outFilenames));
+ }
+ return null;
+ }
+
+ public RequestInfoUpdate createReportForSessionIdList(BaseRequest userRequest) {
+ log.debug("ReportRequestWithSessionIdList received");
+ RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
+ if (requestInfoUpdate != null) return null;
+
+ requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, reportRequestWithSessionIdListValidator);
+ if (requestInfoUpdate != null) return null;
+
+ ReportRequestWithSessionIdList req = userRequest.getRequestPayload();
+ log.debug("Create report type {}...", req.getReportId());
+
+ List> builders = reportBuildersWithSessionIdListParam.get(
+ IEnumKey.getEnumByKey(ReportType.class, req.getReportId())
+ );
+ List outFilenames = new ArrayList<>();
+ for (CSVReportBuilder builder : builders) {
+ SessionIdListParams sessionIdListParams = new SessionIdListParams();
+ sessionIdListParams.setSessionIdList(req.getSessionIdList());
+ File outFile = builder.createReport(sessionIdListParams, outFolder);
+ if (outFile == null) continue;
+ outFilenames.add(outFile.getAbsolutePath());
+ }
+
+ int outFilesCnt = outFilenames.size();
+ if (outFilesCnt == 0) {
+ log.error("Create report {} failed, see log", req.getReportId());
+ } else if (outFilesCnt < builders.size()) {
+ log.error("Create some error for {} failed, see log", req.getReportId());
+ } else {
+ log.debug("Reports {} successfully created. Output files: {}", req.getReportId(), String.join(", ", outFilenames));
+ }
+ return null;
+ }
+
+ public RequestInfoUpdate createReportForPeriod(BaseRequest userRequest) {
+ log.debug("ReportRequestWithPeriod received");
+ RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
+ if (requestInfoUpdate != null) return null;
+
+ requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, reportRequestWithPeriodValidator);
+ if (requestInfoUpdate != null) return null;
+
+ ReportRequestWithPeriod req = userRequest.getRequestPayload();
+ log.debug("Create report type {}...", req.getReportId());
+
+ List> builders = reportBuildersWithPeriodParams.get(
+ IEnumKey.getEnumByKey(ReportType.class, req.getReportId())
+ );
+ List outFilenames = new ArrayList<>();
+ for (CSVReportBuilder builder : builders) {
+ PeriodParams periodParams = new PeriodParams();
+ periodParams.setStartDate(req.getStartDate());
+ periodParams.setEndDate(req.getEndDate());
+ File outFile = builder.createReport(periodParams, outFolder);
+ if (outFile == null) continue;
+ outFilenames.add(outFile.getAbsolutePath());
+ }
+
+ int outFilesCnt = outFilenames.size();
+ if (outFilesCnt == 0) {
+ log.error("Create report {} failed, see log", req.getReportId());
+ } else if (outFilesCnt < builders.size()) {
+ log.error("Create some error for {} failed, see log", req.getReportId());
+ } else {
+ log.debug("Reports {} successfully created. Output files: {}", req.getReportId(), String.join(", ", outFilenames));
+ }
+ return null;
+ }
+
+
+}
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
index dcde34308..04e9c6e79 100644
--- 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
@@ -5,6 +5,7 @@ import ru.spcex.clearing.reports.reports.AbstractReport;
import java.io.File;
import java.io.IOException;
+@Deprecated
public abstract class FileReportBuilder {
protected final Class extends AbstractReport> reportClass;
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
index 2dd5e8546..baafed9b4 100644
--- 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
@@ -12,6 +12,7 @@ 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;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_B_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_12_2/ReportPA_B_Collector.java
index 22f76e2b2..89d132aaf 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,10 +1,10 @@
-package ru.spcex.clearing.reports.services.collector;
+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_12_2.ReportPA_B;
+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;
@@ -20,6 +20,7 @@ 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;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
similarity index 97%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportPA_IV_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_12_2/ReportPA_IV_Collector.java
index c7620a313..b14a4978e 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,11 +1,11 @@
-package ru.spcex.clearing.reports.services.collector;
+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_12_2.ReportPA_IV;
+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;
@@ -20,6 +20,7 @@ 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;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCIN_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCIN_Collector.java
similarity index 95%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCIN_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCIN_Collector.java
index d0f6a9723..4376a8adf 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCIN_Collector.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCIN_Collector.java
@@ -1,11 +1,11 @@
-package ru.spcex.clearing.reports.services.collector;
+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_13.ReportDOCIN;
+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;
@@ -17,6 +17,7 @@ import java.time.LocalTime;
import java.util.Collection;
@Component
+@Deprecated
public class ReportDOCIN_Collector extends SimpleReportCollector {
protected final Logger log = LoggerFactory.getLogger(getClass());
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCOUT_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCOUT_Collector.java
similarity index 95%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCOUT_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCOUT_Collector.java
index 012000faf..3e613a82d 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportDOCOUT_Collector.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_13/ReportDOCOUT_Collector.java
@@ -1,11 +1,11 @@
-package ru.spcex.clearing.reports.services.collector;
+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_13.ReportDOCOUT;
+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;
@@ -17,6 +17,7 @@ import java.time.LocalTime;
import java.util.Collection;
@Component
+@Deprecated
public class ReportDOCOUT_Collector extends SimpleReportCollector {
protected final Logger log = LoggerFactory.getLogger(getClass());
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportINACCNT_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_16_5/ReportINACCNT_Collector.java
similarity index 95%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportINACCNT_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_16_5/ReportINACCNT_Collector.java
index 8ec532b53..ef8f26a24 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportINACCNT_Collector.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_16_5/ReportINACCNT_Collector.java
@@ -1,10 +1,10 @@
-package ru.spcex.clearing.reports.services.collector;
+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_16_5.ReportINACCNT;
+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;
@@ -19,6 +19,7 @@ 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;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420315_P1_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_1/ReportBR_0420315_P1_Collector.java
index 3f4f9f381..6acb0fb0b 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,16 +1,17 @@
-package ru.spcex.clearing.reports.services.collector;
+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.Company;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
-import ru.clearing.classes.statics.data.misc.Listing;
+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_17_1.ReportBR_0420315_P1;
+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;
@@ -22,6 +23,7 @@ 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());
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
similarity index 92%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420315_P2_collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_1/ReportBR_0420315_P2_collector.java
index 648f69cd0..9085d5c76 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,56 +1,57 @@
-package ru.spcex.clearing.reports.services.collector;
-
-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_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
-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;
- }
-}
+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/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420317_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_2/ReportBR_0420317_Collector.java
index c0d7748b0..383fe89f4 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,4 +1,4 @@
-package ru.spcex.clearing.reports.services.collector;
+package ru.spcex.clearing.reports.services.collector.bt.bt_17_2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -6,7 +6,7 @@ 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_17_2.ReportBR_0420317;
+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;
@@ -20,6 +20,7 @@ import java.util.Collection;
import java.util.Map;
@Component
+@Deprecated
public class ReportBR_0420317_Collector extends ReportWithPeriodCollector {
private Imdg companyImdg;
private Imdg relationImdg;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
similarity index 96%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420318_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_3/ReportBR_0420318_Collector.java
index fa512d506..2ef561446 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,15 +1,16 @@
-package ru.spcex.clearing.reports.services.collector;
+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.company.ClearingMemberCategory;
-import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney;
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_17_3.ReportBR_0420318;
+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;
@@ -22,6 +23,7 @@ import java.util.List;
import java.util.Map;
@Component
+@Deprecated
public class ReportBR_0420318_Collector extends ReportWithPeriodCollector {
private Imdg liabilitiesClaimsAssetsImdg;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
similarity index 95%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P1_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_4/ReportBR_0420314_P1_Collector.java
index 75e0d3f0c..bf4022354 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,99 +1,101 @@
-package ru.spcex.clearing.reports.services.collector;
-
-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.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_17_4.ReportBR_0420314_P1;
-import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
-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
-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;
- }
-}
+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/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
similarity index 95%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_4/ReportBR_0420314_P2_Collector.java
index c49781d95..14ce6e0bf 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,129 +1,131 @@
-package ru.spcex.clearing.reports.services.collector;
-
-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_17_4.ReportBR_0420314_P2;
-import ru.spcex.clearing.reports.services.ReportWithPeriodCollector;
-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
-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;
- }
-}
+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/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
similarity index 91%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P10_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P10_Collector.java
index 553afb7df..c2c39feb3 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,48 +1,49 @@
-package ru.spcex.clearing.reports.services.collector;
-
-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_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
-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;
- }
-}
+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/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
similarity index 95%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P1_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P1_Collector.java
index 2daa9d14c..a71ff3df7 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,83 +1,85 @@
-package ru.spcex.clearing.reports.services.collector;
-
-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.ClearingMemberCategory;
-import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets;
-import ru.spcex.clearing.imdg.IMDGDistributedNames;
-import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P1;
-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 java.time.LocalDate;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-@Component
-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;
- }
-}
+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/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
similarity index 92%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P2_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P2_Collector.java
index 80a98b782..dbae68ea5 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,61 +1,63 @@
-package ru.spcex.clearing.reports.services.collector;
-
-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_17_5.ReportBR_0420312_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.List;
-import java.util.Map;
-import java.util.Objects;
-
-@Component
-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;
- }
-}
+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/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
similarity index 92%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P3_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P3_Collector.java
index afbd0b0a5..64a0256c5 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,11 +1,12 @@
-package ru.spcex.clearing.reports.services.collector;
+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_17_5.ReportBR_0420312_P3;
+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;
@@ -17,6 +18,7 @@ import java.util.Map;
import java.util.Objects;
@Component
+@Deprecated
public class ReportBR_0420312_P3_Collector extends ReportWithPeriodCollector {
private Imdg liabilitiesClaimsAssetsImdg;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
similarity index 91%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P4_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P4_Collector.java
index c80af2543..9a16262ef 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,48 +1,49 @@
-package ru.spcex.clearing.reports.services.collector;
-
-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_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
-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;
- }
-}
+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/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
similarity index 91%
rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420312_P5_Collector.java
rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/bt/bt_17_5/ReportBR_0420312_P5_Collector.java
index c309da1fe..5d247cdce 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/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
@@ -1,48 +1,49 @@
-package ru.spcex.clearing.reports.services.collector;
-
-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_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
-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