Period*ReportBuilder

This commit is contained in:
akulikov 2023-05-15 15:27:13 +03:00
parent 8d7c725a06
commit 4d9185088a
2 changed files with 39 additions and 25 deletions

View file

@ -0,0 +1,18 @@
package ru.spcex.clearing.reports.reports;
import java.util.List;
/**
* Параметры для формирования отчета по списку SessionId
*/
public class SessionIdListParams {
private List<Long> sessionIdList;
public List<Long> getSessionIdList() {
return sessionIdList;
}
public void setSessionIdList(List<Long> sessionIdList) {
this.sessionIdList = sessionIdList;
}
}

View file

@ -2,27 +2,23 @@ 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.PeriodParams;
import ru.spcex.clearing.reports.reports.SessionIdListParams;
import ru.spcex.platform.enumeration.ReportType;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.Instant;
import java.util.Collection;
import java.util.Collections;
public class PeriodLiabilitiesClaimsReportBuilder extends LiabilitiesClaimsReportBuilder<PeriodParams> {
public class PeriodLiabilitiesClaimsReportBuilder extends LiabilitiesClaimsReportBuilder<SessionIdListParams> {
public PeriodLiabilitiesClaimsReportBuilder(ImdgProvider imdgProvider) {
super(imdgProvider);
}
@Override
protected String getReportFilename(PeriodParams params) {
return "period_liabilities_claims.%s-%s.%s".formatted(
dateFormatter.format(params.getStartDate()),
dateFormatter.format(params.getEndDate()),
dateTimeFormatter.format(Instant.now())
);
protected String getReportFilename(SessionIdListParams params) {
return "period_liabilities_claims.%s".formatted(dateTimeFormatter.format(Instant.now()));
}
@Override
@ -31,24 +27,24 @@ public class PeriodLiabilitiesClaimsReportBuilder extends LiabilitiesClaimsRepor
}
@Override
protected Collection<ExecutionFond> getExecutionFondsForReport(PeriodParams params) {
ImdgPredicateBuilder pb = executionFondImdg.predicateBuilder();
return executionFondImdg.getCollectionObjectsByPredicate(
pb.and(
pb.greatEqual("clearingDate", params.getStartDate()),
pb.lessEqual("clearingDate", params.getEndDate())
)
);
protected Collection<ExecutionFond> getExecutionFondsForReport(SessionIdListParams params) {
if (params.getSessionIdList() == null || params.getSessionIdList().isEmpty()) return Collections.emptyList();
StringBuilder sql = new StringBuilder("sessionId in (");
for (Long sessionId : params.getSessionIdList()) {
sql.append(sessionId).append(",");
}
sql.append(")");
return executionFondImdg.getCollectionObjectsBySQL(sql.toString());
}
@Override
protected Collection<ExecutionDeposit> getExecutionDepositsForReport(PeriodParams params) {
ImdgPredicateBuilder pb = executionDepositImdg.predicateBuilder();
return executionDepositImdg.getCollectionObjectsByPredicate(
pb.and(
pb.greatEqual("clearingDate", params.getStartDate()),
pb.lessEqual("clearingDate", params.getEndDate())
)
);
protected Collection<ExecutionDeposit> getExecutionDepositsForReport(SessionIdListParams params) {
if (params.getSessionIdList() == null || params.getSessionIdList().isEmpty()) return Collections.emptyList();
StringBuilder sql = new StringBuilder("sessionId in (");
for (Long sessionId : params.getSessionIdList()) {
sql.append(sessionId).append(",");
}
sql.append(")");
return executionDepositImdg.getCollectionObjectsBySQL(sql.toString());
}
}