reports-service рефакторинг, оптимизация IMDF API, мелкие правки ReportPA_IV (название файла).
This commit is contained in:
parent
4ffdf50b39
commit
1084a79a97
8 changed files with 34 additions and 25 deletions
|
|
@ -40,7 +40,7 @@ public class ReportPA_IV extends ReportWithPeriod {
|
|||
|
||||
@Override
|
||||
public String getReportName(LocalDateTime reportDateTime) {
|
||||
return "REPPA.BT12.2.IV.%s-%s.%s".formatted(
|
||||
return "REPPA.IV.%s-%s.%s".formatted(
|
||||
DATE_FORMATTER.format(startDate),
|
||||
DATE_FORMATTER.format(endDate),
|
||||
DATE_TIME_FORMATTER.format(reportDateTime)
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.services.collector;
|
|||
|
||||
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;
|
||||
|
|
@ -15,6 +16,7 @@ import java.time.LocalDate;
|
|||
import java.time.LocalTime;
|
||||
import java.util.Collection;
|
||||
|
||||
@Component
|
||||
public class ReportDOCIN_Collector extends SimpleReportCollector<ReportDOCIN> {
|
||||
protected final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.services.collector;
|
|||
|
||||
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;
|
||||
|
|
@ -15,6 +16,7 @@ import java.time.LocalDate;
|
|||
import java.time.LocalTime;
|
||||
import java.util.Collection;
|
||||
|
||||
@Component
|
||||
public class ReportDOCOUT_Collector extends SimpleReportCollector<ReportDOCOUT> {
|
||||
protected final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package ru.spcex.clearing.reports.services.collector;
|
||||
|
||||
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;
|
||||
|
|
@ -10,7 +11,6 @@ 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 ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuilderHazelcast;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
|
|
@ -18,6 +18,7 @@ import java.util.Collection;
|
|||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class ReportINACCNT_Collector extends ReportForClearingCodeCollector<ReportINACCNT> {
|
||||
private final Imdg<AccountBalance> accountBalanceImdg;
|
||||
private final Imdg<Company> companyImdg;
|
||||
|
|
@ -35,7 +36,7 @@ public class ReportINACCNT_Collector extends ReportForClearingCodeCollector<Repo
|
|||
|
||||
@Override
|
||||
public ReportINACCNT collectReportForClearingCode(String clearingCode) {
|
||||
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
|
||||
ImdgPredicateBuilder builder = companyImdg.predicateBuilder();
|
||||
|
||||
ImdgPredicate clearingCodePredicate = builder.equals("clearingCode", clearingCode);
|
||||
Collection<Company> companies = companyImdg.getCollectionObjectsByPredicate(clearingCodePredicate);
|
||||
|
|
@ -47,10 +48,8 @@ public class ReportINACCNT_Collector extends ReportForClearingCodeCollector<Repo
|
|||
builder.equals("accountType", AccountType.Clrn.getKey()),
|
||||
builder.equals("accountType", AccountType.Info.getKey())
|
||||
);
|
||||
ImdgPredicate companyIdPredicates = builder.equals("companyId", -1);
|
||||
for (Long companyId : companyIds) {
|
||||
companyIdPredicates = builder.or(companyIdPredicates, builder.equals("companyId", companyId));
|
||||
}
|
||||
ImdgPredicate companyIdPredicates = builder.in("companyId", companyIds.toArray(new Comparable[0]));
|
||||
|
||||
ImdgPredicate finalPredicate = builder.and(accountTypePredicate, companyIdPredicates);
|
||||
Collection<AccountBalance> accountBalances = accountBalanceImdg.getCollectionObjectsByPredicate(finalPredicate);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package ru.spcex.clearing.reports.services.collector;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
|
||||
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
|
@ -10,14 +11,15 @@ 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 ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuilderHazelcast;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class ReportPA_B_Collector extends ReportWithPeriodCollector<ReportPA_B> {
|
||||
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
|
|
@ -36,24 +38,23 @@ public class ReportPA_B_Collector extends ReportWithPeriodCollector<ReportPA_B>
|
|||
@Override
|
||||
public ReportPA_B collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
|
||||
|
||||
ImdgPredicate clearingMemberCategoryPredicate = builder.equals("clearingMemberCategory", ClearingMemberCategoryD.B.getKey());
|
||||
Collection<ClearingMemberCategory> clearingMemberCategories =
|
||||
clearingMemberCategoryImdg.getCollectionObjectsByPredicate(clearingMemberCategoryPredicate);
|
||||
clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of(
|
||||
"clearingMemberCategory", ClearingMemberCategoryD.B.getKey()
|
||||
));
|
||||
Set<Long> companyIds = clearingMemberCategories.stream()
|
||||
.map(ClearingMemberCategory::getCompanyId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
ImdgPredicateBuilder builder = liabilitiesClaimsAssetsImdg.predicateBuilder();
|
||||
ImdgPredicate refundDatePredicate = builder.and(
|
||||
builder.greatEqual("refundDate", toInstantStartDay(startDate)),
|
||||
builder.lessEqual("refundDate", toInstantStartDay(endDate))
|
||||
);
|
||||
ImdgPredicate companyIdPredicates = builder.equals("companyId", -1);
|
||||
for (Long companyId : companyIds) {
|
||||
companyIdPredicates = builder.or(companyIdPredicates, builder.equals("companyId", companyId));
|
||||
}
|
||||
ImdgPredicate companyIdPredicates = builder.in("companyId", companyIds.toArray(new Comparable[0]));
|
||||
ImdgPredicate finalPredicate = builder.and(refundDatePredicate, companyIdPredicates);
|
||||
|
||||
Collection<LiabilitiesClaimsAssets> liabilitiesClaimsAssets =
|
||||
liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
package ru.spcex.clearing.reports.services.collector;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
|
||||
import ru.clearing.classes.transaction.data.execution.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.services.ReportWithPeriodCollector;
|
||||
import ru.spcex.platform.enumeration.ClearingMemberCategoryD;
|
||||
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 ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuilderHazelcast;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
|
@ -18,6 +19,7 @@ import java.util.Collection;
|
|||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class ReportPA_IV_Collector extends ReportWithPeriodCollector<ReportPA_IV> {
|
||||
private final Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||
private final Imdg<ClearingStatusDictionary> clearingStatusDictionaryImdg;
|
||||
|
|
@ -41,26 +43,22 @@ public class ReportPA_IV_Collector extends ReportWithPeriodCollector<ReportPA_IV
|
|||
@Override
|
||||
public ReportPA_IV collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
ImdgPredicateBuilder builder = new ImdgPredicateBuilderHazelcast();
|
||||
|
||||
ImdgPredicate clearingMemberCategoryPredicate = builder.or(
|
||||
builder.equals("clearingMemberCategory", "I"),
|
||||
builder.equals("clearingMemberCategory", "V")
|
||||
String clearingMemberCategorySql = "clearingMemberCategory='%s' or clearingMemberCategory='%s'".formatted(
|
||||
ClearingMemberCategoryD.I.getKey(), ClearingMemberCategoryD.V.getKey()
|
||||
);
|
||||
Collection<ClearingMemberCategory> clearingMemberCategories =
|
||||
clearingMemberCategoryImdg.getCollectionObjectsByPredicate(clearingMemberCategoryPredicate);
|
||||
clearingMemberCategoryImdg.getCollectionObjectsBySQL(clearingMemberCategorySql);
|
||||
Set<Long> companyIds = clearingMemberCategories.stream()
|
||||
.map(ClearingMemberCategory::getCompanyId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
ImdgPredicateBuilder builder = liabilitiesClaimsAssetsImdg.predicateBuilder();
|
||||
ImdgPredicate refundDatePredicate = builder.and(
|
||||
builder.greatEqual("refundDate", toInstantStartDay(startDate)),
|
||||
builder.lessEqual("refundDate", toInstantStartDay(endDate))
|
||||
);
|
||||
ImdgPredicate companyIdPredicates = builder.equals("companyId", -1);
|
||||
for (Long companyId : companyIds) {
|
||||
companyIdPredicates = builder.or(companyIdPredicates, builder.equals("companyId", companyId));
|
||||
}
|
||||
ImdgPredicate companyIdPredicates = builder.in("companyId", companyIds.toArray(new Comparable[0]));
|
||||
ImdgPredicate finalPredicate = builder.and(refundDatePredicate, companyIdPredicates);
|
||||
Collection<LiabilitiesClaimsAssets> liabilitiesClaimsAssets =
|
||||
liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(finalPredicate);
|
||||
|
|
|
|||
|
|
@ -38,6 +38,11 @@ public class ImdgPredicateBuilderHazelcast implements ImdgPredicateBuilder {
|
|||
return new ImdgPredicateHazelcast(Predicates.lessThan(key, cmpValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate in(String key, Comparable[] values) {
|
||||
return new ImdgPredicateHazelcast(Predicates.in(key, values));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate not(ImdgPredicate param) {
|
||||
ImdgPredicateHazelcast paramMy = (ImdgPredicateHazelcast) param;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ public interface ImdgPredicateBuilder {
|
|||
ImdgPredicate greater(String key, Comparable value);
|
||||
ImdgPredicate less(String key, Comparable value);
|
||||
|
||||
ImdgPredicate in(String key, Comparable... values);
|
||||
|
||||
ImdgPredicate not(ImdgPredicate param);
|
||||
ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB);
|
||||
ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB, ImdgPredicate paramC);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue