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