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
index 835add584..c74f48f5a 100644
--- 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
@@ -9,8 +9,10 @@ import com.opencsv.exceptions.CsvFieldAssignmentException;
import com.opencsv.exceptions.CsvRequiredFieldEmptyException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ru.clearing.classes.statics.data.misc.Session;
import ru.spcex.platform.enumeration.ReportBuilderType;
import ru.spcex.platform.enumeration.ReportKeys;
+import ru.spcex.platform.imdg.api.Imdg;
import java.io.File;
import java.io.FileWriter;
@@ -19,10 +21,11 @@ import java.io.Writer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.Locale;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* Класс для построения отчетов в формате CSV
@@ -139,6 +142,16 @@ public abstract class CSVReportBuilder
{
return filename;
}
+ protected List getSessionIdsForCurrentDate(Imdg sessionImdg) {
+ Collection sessionForCurrentDay = sessionImdg.getCollectionObjectsByFieldValues(
+ Map.of(
+ "clearingDate", LocalDate.now()
+ )
+ );
+ Set sessionIds = sessionForCurrentDay.stream().map(Session::getId).collect(Collectors.toSet());
+ return sessionIds.stream().toList();
+ }
+
static class CustomStrategy extends ColumnPositionMappingStrategy {
@Override
public String[] generateHeader(T bean) throws CsvRequiredFieldEmptyException {
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
index 44cc8b3da..fb40d6946 100644
--- 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
@@ -3,6 +3,7 @@ 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.clearing.classes.statics.data.misc.Session;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
import ru.spcex.clearing.reports.reports.bean.ExecutedDealReport;
@@ -21,6 +22,7 @@ import java.util.Map;
public abstract class ExecutedDealReportBuilderCommon extends CSVReportBuilder
{
protected final DateTimeFormatter fileNameDateTimeFormatter = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS");
protected final Imdg executionFondImdg;
+ protected final Imdg sessionImdg;
private final Imdg companyImdg;
private final Imdg sTradesImdg;
@@ -32,6 +34,7 @@ public abstract class ExecutedDealReportBuilderCommon extends CSVReportBuilde
public ExecutedDealReportBuilderCommon(ImdgProvider imdgProvider) {
this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
+ this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
this.sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
}
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
index 625915547..31f8eadd7 100644
--- 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
@@ -9,6 +9,7 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.LocalDate;
import java.util.Collection;
+import java.util.List;
@Component
public class ExecutedDealReportBuilder_INFTYPE_1 extends ExecutedDealReportBuilderCommon {
@@ -30,9 +31,11 @@ public class ExecutedDealReportBuilder_INFTYPE_1 extends ExecutedDealReportBuild
@Override
protected Collection getExecutionFondsForReport(SessionIdParam params) {
ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder();
+ List sessionIds = params.getSessionId();
+ if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg);
return executionFondImdg.getCollectionObjectsByPredicate(
pb.and(
- pb.in("sessionId", params.getSessionId().toArray(new Long[0])),
+ pb.in("sessionId", sessionIds.toArray(new Long[0])),
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
index 176120811..04a0a7b4b 100644
--- 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
@@ -9,6 +9,7 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.LocalDate;
import java.util.Collection;
+import java.util.List;
@Component
public class ExecutedDealReportBuilder_INFTYPE_2 extends ExecutedDealReportBuilderCommon {
@@ -30,9 +31,11 @@ public class ExecutedDealReportBuilder_INFTYPE_2 extends ExecutedDealReportBuild
@Override
protected Collection getExecutionFondsForReport(SessionIdParam params) {
ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder();
+ List sessionIds = params.getSessionId();
+ if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg);
return executionFondImdg.getCollectionObjectsByPredicate(
pb.and(
- pb.in("sessionId", params.getSessionId().toArray(new Long[0])),
+ pb.in("sessionId",sessionIds.toArray(new Long[0])),
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/UnfulfilledDealReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bp/UnfulfilledDealReportBuilder.java
index 213ab2068..d97e80dc8 100644
--- 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
@@ -4,6 +4,7 @@ import org.springframework.stereotype.Component;
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.clearing.classes.statics.data.misc.Session;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
import ru.spcex.clearing.reports.reports.SessionIdParam;
@@ -27,11 +28,13 @@ public class UnfulfilledDealReportBuilder extends CSVReportBuilder executionFondImdg;
private final Imdg companyImdg;
private final Imdg sTradesImdg;
+ private final Imdg sessionImdg;
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);
+ sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
}
private List rows = null;
@@ -64,8 +67,10 @@ public class UnfulfilledDealReportBuilder extends CSVReportBuilder sessionIds = params.getSessionId();
+ if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg);
ImdgPredicate predicate = pb.and(
- pb.in("sessionId", params.getSessionId().toArray(new Long[0])),
+ pb.in("sessionId", sessionIds.toArray(new Long[0])),
pb.equals("coverageStatus", Allowed.DENIED.getKey())
);
Collection executionFonds = executionFondImdg.getCollectionObjectsByPredicate(predicate);
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashNettoReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashNettoReportBuilder.java
index aa4a8a5e5..2856e5c9b 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashNettoReportBuilder.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepCashNettoReportBuilder.java
@@ -63,8 +63,10 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder sessionIds = params.getSessionId();
+ if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg);
ImdgPredicate finalPredicate = pb.and(
- pb.in("sessionId", params.getSessionId().toArray(new Long[0])),
+ pb.in("sessionId", sessionIds.toArray(new Long[0])),
pb.equals("clearingDate", nowDate),
pb.sql(sql),
pb.or(
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java
index 019704419..23ad27518 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ks/KSRepDepoNettoReportBuilder.java
@@ -62,9 +62,11 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder sessionIds = params.getSessionId();
+ if (sessionIds == null || sessionIds.isEmpty()) sessionIds = getSessionIdsForCurrentDate(sessionImdg);
String sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.TS_T, RegistryTradingParams.OS_T).build();
ImdgPredicate finalPredicate = pb.and(
- pb.in("sessionId", params.getSessionId().toArray(new Long[0])),
+ pb.in("sessionId", sessionIds.toArray(new Long[0])),
pb.equals("clearingDate", nowDate),
pb.sql(sql),
pb.equals("accountType", AccountType.Depo.getKey()),
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java
index b022b223c..380683ee5 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java
@@ -37,7 +37,6 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
import ru.spcex.platform.utils.validation.IValidator;
import java.io.File;
-import java.time.LocalDate;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -239,8 +238,6 @@ public class ReportService extends QueueConsumer implements InitializingBean {
List sessionIds = null;
if (userRequest.getRequestPayload().getSessionId() != null) {
sessionIds = List.of(userRequest.getRequestPayload().getSessionId());
- } else {
- sessionIds = getSessionIdsForDate(LocalDate.now());
}
Map outFiles = createReportsForTask(sessionIds, reportBuildersForGREP.values());
@@ -261,8 +258,6 @@ public class ReportService extends QueueConsumer implements InitializingBean {
List sessionIds = null;
if (userRequest.getRequestPayload().getSessionId() != null) {
sessionIds = List.of(userRequest.getRequestPayload().getSessionId());
- } else {
- sessionIds = getSessionIdsForDate(LocalDate.now());
}
Map outFiles = createReportsForTask(sessionIds, reportBuildersForGRET.values());
@@ -301,8 +296,6 @@ public class ReportService extends QueueConsumer implements InitializingBean {
List sessionIds = null;
if (userRequest.getRequestPayload().getSessionId() != null) {
sessionIds = List.of(userRequest.getRequestPayload().getSessionId());
- } else {
- sessionIds = getSessionIdsForDate(LocalDate.now());
}
Map outFiles = createReportsForTask(sessionIds, reportBuildersForGREF.values());
@@ -380,16 +373,6 @@ public class ReportService extends QueueConsumer implements InitializingBean {
}
}
- private List getSessionIdsForDate(LocalDate date) {
- Collection sessionForCurrentDay = sessionImdg.getCollectionObjectsByFieldValues(
- Map.of(
- "clearingDate", date
- )
- );
- Set sessionIds = sessionForCurrentDay.stream().map(Session::getId).collect(Collectors.toSet());
- return sessionIds.stream().toList();
- }
-
private void sendFilesToSftp(Collection files) {
for (File file : files) {
reportsSftpGateway.sendToSftp(file);