imdg, reports-service правки IMDG, правки выборки отчётов
This commit is contained in:
parent
220239de6e
commit
55e0dc1c87
12 changed files with 145 additions and 57 deletions
|
|
@ -30,7 +30,7 @@ public class ReportsServiceApplication {
|
|||
log.info("Run generate report.");
|
||||
Map<String, ReportDataCollector> allReports = context.getBeansOfType(ReportDataCollector.class);
|
||||
log.info("Report types: {}", allReports);
|
||||
for (ReportDataCollector collector:allReports.values()) {
|
||||
for (ReportDataCollector collector : allReports.values()) {
|
||||
log.info("Make report {}", collector);
|
||||
XMLReportBuilder xmlReportBuilder = new XMLReportBuilder(collector.getReportClass());
|
||||
LocalDate date2 = LocalDate.now();
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package ru.spcex.clearing.reports.services;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
import ru.spcex.platform.utils.time.TimeUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
|
|
@ -21,6 +22,7 @@ public abstract class ReportDataCollector<T extends AbstractReport> {
|
|||
|
||||
/**
|
||||
* T extends ReportWithPeriod
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
abstract public T collectReportWithPeriod(LocalDate startDate, LocalDate endDate);
|
||||
|
|
@ -41,6 +43,13 @@ public abstract class ReportDataCollector<T extends AbstractReport> {
|
|||
}
|
||||
}
|
||||
|
||||
protected Instant toInstantStartDay(LocalDate date) {
|
||||
return date.atStartOfDay(TimeUtil.zone).toInstant();
|
||||
}
|
||||
protected Instant toInstantEndDay(LocalDate date) {
|
||||
return date.plusDays(1).atStartOfDay(TimeUtil.zone).minusSeconds(1).toInstant();
|
||||
}
|
||||
|
||||
protected String toString(Long val) {
|
||||
if (val == null) return null;
|
||||
return val.toString();
|
||||
|
|
@ -61,8 +70,8 @@ public abstract class ReportDataCollector<T extends AbstractReport> {
|
|||
return DATE_FORMATTER.format(date);
|
||||
}
|
||||
|
||||
protected String formatToIMDGInstant(LocalDate date) {
|
||||
LocalDateTime ldt = date.atStartOfDay();
|
||||
return DATE_TIME_FORMATTER.format(ldt);
|
||||
}
|
||||
// protected String formatToIMDGInstant(LocalDate date) {
|
||||
// LocalDateTime ldt = date.atStartOfDay();
|
||||
// return DATE_TIME_FORMATTER.format(ldt);
|
||||
// }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,13 +60,11 @@ public class Bt17_1_P1_collector extends ReportDataCollector<ReportBR_0420315_P1
|
|||
// String ql = String.format("'%s' <= refundDate and refundDate <= '%s' and clearingStatus=%s",
|
||||
// formatToIMDGInstant(startDate), formatToIMDGInstant(endDate), allowClearingStatusId);
|
||||
// Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql);
|
||||
//todo refactoring IMDG API, TimeUtil
|
||||
ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder();
|
||||
Instant dateTimeLo = startDate.atStartOfDay(TimeUtil.zone).toInstant();
|
||||
Instant dateTimeHi = endDate.plusDays(1).atStartOfDay(TimeUtil.zone).minusSeconds(1).toInstant();
|
||||
|
||||
ImdgPredicate p=pb.and(pb.and(pb.greatEqual("refundDate", dateTimeLo),
|
||||
pb.lessEqual("refundDate", dateTimeHi)),
|
||||
ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder();
|
||||
Instant dateTimeLo = toInstantStartDay(startDate);
|
||||
Instant dateTimeHi = toInstantStartDay(endDate);
|
||||
ImdgPredicate p = pb.and(pb.greatEqual("refundDate", dateTimeLo), pb.lessEqual("refundDate", dateTimeHi),
|
||||
pb.equals("clearingStatus", allowClearingStatusId));
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p);
|
||||
return liabilities;
|
||||
|
|
|
|||
|
|
@ -9,9 +9,11 @@ import ru.spcex.clearing.reports.reports.bt_17_1.ReportBR_0420315_P2;
|
|||
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||
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.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
|
|
@ -23,11 +25,22 @@ public class Bt17_1_P2_collector extends ReportDataCollector<ReportBR_0420315_P2
|
|||
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||
}
|
||||
|
||||
Collection<LiabilitiesClaimsAssets> searchLiabilitiesClaimsAssets(LocalDate startDate, LocalDate endDate) {
|
||||
// String ql = String.format("'%s' <= refundDate and refundDate <= '%s'", formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
|
||||
// Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql);
|
||||
|
||||
ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder();
|
||||
Instant dateTimeLo = toInstantStartDay(startDate);
|
||||
Instant dateTimeHi = toInstantStartDay(endDate);
|
||||
ImdgPredicate p = pb.and(pb.greatEqual("refundDate", dateTimeLo), pb.lessEqual("refundDate", dateTimeHi));
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p);
|
||||
return liabilities;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportBR_0420315_P2 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
String ql = String.format("'%s' <= refundDate and refundDate <= '%s'", formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql);
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||
|
||||
long contractorQty;
|
||||
double liabilitiesAmount = 0;
|
||||
|
|
|
|||
|
|
@ -11,10 +11,11 @@ import ru.spcex.clearing.reports.services.ReportDataCollector;
|
|||
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.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
@Component
|
||||
|
|
@ -30,13 +31,24 @@ public class Bt17_2_collector extends ReportDataCollector<ReportBR_0420317> {
|
|||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
}
|
||||
|
||||
Collection<Relation> searchRelation(LocalDate startDate, LocalDate endDate, String service) {
|
||||
// String ql = String.format("'%s' <= updated and updated <= '%s' and service='MKR'", startDate, endDate);
|
||||
// Collection<Relation> relations = relationImdg.getCollectionObjectsBySQL(ql);
|
||||
|
||||
ImdgPredicateBuilder pb = relationImdg.predicateBuilder();
|
||||
Instant dateTimeLo = toInstantStartDay(startDate);
|
||||
Instant dateTimeHi = toInstantStartDay(endDate);
|
||||
ImdgPredicate p = pb.and(pb.greatEqual("updated", dateTimeLo), pb.lessEqual("updated", dateTimeHi),
|
||||
pb.equals("service", service));
|
||||
Collection<Relation> relations = relationImdg.getCollectionObjectsByPredicate(p);
|
||||
return relations;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportBR_0420317 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
|
||||
String ql = String.format("'%s' <= updated and updated <= '%s' and service='MKR'", formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
|
||||
// todo обговорить про updatedAt updated, todo enum MKR
|
||||
Collection<Relation> relations = relationImdg.getCollectionObjectsBySQL(ql);
|
||||
Collection<Relation> relations = searchRelation(startDate, endDate, "MKR");
|
||||
|
||||
ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(startDate, endDate, "BR");
|
||||
for (Relation relation: relations) {
|
||||
|
|
|
|||
|
|
@ -4,17 +4,18 @@ 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.relation.Relation;
|
||||
import ru.clearing.classes.statics.data.generated.ClearingMemberCategory;
|
||||
import ru.clearing.classes.transaction.data.execution.LiabilitiesClaimsAssets;
|
||||
import ru.clearing.platform.dictionary.CountryCodeDictionary;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.reports.bt_17_5.ReportBR_0420312_P1;
|
||||
import ru.spcex.clearing.reports.services.ReportDataCollector;
|
||||
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.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
|
@ -23,9 +24,7 @@ import java.util.Map;
|
|||
@Component
|
||||
public class Bt17_5_P1_collector extends ReportDataCollector<ReportBR_0420312_P1> {
|
||||
private Imdg<Company> companyImdg;
|
||||
// private Imdg<Relation> relationImdg;
|
||||
private Imdg<CompanySymbols> companySymbolsImdg;
|
||||
private Imdg<CountryCodeDictionary> countryCodeDictionaryImdg;
|
||||
private Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||
|
||||
|
|
@ -33,10 +32,8 @@ public class Bt17_5_P1_collector extends ReportDataCollector<ReportBR_0420312_P1
|
|||
public Bt17_5_P1_collector(ImdgProvider imdgProvider) {
|
||||
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
|
||||
// relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class);
|
||||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
||||
countryCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CountryCodeDictionary, CountryCodeDictionary.class);
|
||||
}
|
||||
|
||||
protected CompanySymbols findSymbol(DocumentTypes docType, Long companyId) {
|
||||
|
|
@ -47,20 +44,34 @@ public class Bt17_5_P1_collector extends ReportDataCollector<ReportBR_0420312_P1
|
|||
return companySymbol;
|
||||
}
|
||||
|
||||
Collection<LiabilitiesClaimsAssets> searchLiabilitiesClaimsAssets(LocalDate startDate, LocalDate endDate) {
|
||||
// String ql = String.format("'%s' <= refundDate and refundDate <= '%s'", formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
|
||||
// Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql);
|
||||
|
||||
ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder();
|
||||
Instant dateTimeLo = toInstantStartDay(startDate);
|
||||
Instant dateTimeHi = toInstantStartDay(endDate);
|
||||
ImdgPredicate p = pb.and(pb.greatEqual("refundDate", dateTimeLo), pb.lessEqual("refundDate", dateTimeHi));
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p);
|
||||
return liabilities;
|
||||
}
|
||||
|
||||
@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");
|
||||
// todo обговорить про updatedAt updated, todo enum MKR
|
||||
|
||||
String ql = String.format("'%s' <= refundDate and refundDate <= '%s'",
|
||||
formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql);
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
|
||||
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(liabilities, LiabilitiesClaimsAssets::getCompanyId);
|
||||
|
||||
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> 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));
|
||||
|
|
|
|||
|
|
@ -14,8 +14,11 @@ 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 ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.utils.time.TimeUtil;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
|
@ -50,6 +53,19 @@ public class Repbr0420314_P1_bt_17_4_collector extends ReportDataCollector<Repor
|
|||
return companySymbol;
|
||||
}
|
||||
|
||||
Collection<LiabilitiesClaimsAssets> searchLiabilitiesClaimsAssets(LocalDate startDate, LocalDate endDate, Long allowClearingStatusId) {
|
||||
// String ql = String.format("'%s' <= refundDate and refundDate <= '%s' and clearingStatus=%s",
|
||||
// formatToIMDGInstant(startDate), formatToIMDGInstant(endDate), allowClearingStatusId);
|
||||
// Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql);
|
||||
|
||||
ImdgPredicateBuilder pb = liabilitiesClaimsAssetsImdg.predicateBuilder();
|
||||
Instant dateTimeLo = toInstantStartDay(startDate);
|
||||
Instant dateTimeHi = toInstantStartDay(endDate);
|
||||
ImdgPredicate p = pb.and(pb.greatEqual("refundDate", dateTimeLo), pb.lessEqual("refundDate", dateTimeHi),
|
||||
pb.equals("clearingStatus", allowClearingStatusId));
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsByPredicate(p);
|
||||
return liabilities;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportBR_0420314_P1 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
|
|
@ -60,13 +76,15 @@ public class Repbr0420314_P1_bt_17_4_collector extends ReportDataCollector<Repor
|
|||
);
|
||||
final Long allowClearingStatusId = MapUtil.getDictionaryIdByCode(clearingStatusDictionaryImdg, ALLOW_CLEARING_STATUS); // "OK"
|
||||
|
||||
String ql = String.format("'%s' <= refundDate and refundDate <= '%s' and clearingStatus=%s",
|
||||
formatToIMDGInstant(startDate), formatToIMDGInstant(endDate), allowClearingStatusId);
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = liabilitiesClaimsAssetsImdg.getCollectionObjectsBySQL(ql);
|
||||
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(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<ClearingMemberCategory> cmcLst = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of("companyId", companyId));
|
||||
// boolean checkCategory = cmcLst.stream().anyMatch(cmc -> ALLOW_CLEARING_MEMBER_CATEGORY.contains(cmc.getClearingMemberCategory()));
|
||||
// if (!checkCategory) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,10 @@ 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.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
|
@ -39,6 +42,19 @@ public class Repbr0420314_P2_bt_17_4_collector extends ReportDataCollector<Repor
|
|||
profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
|
||||
}
|
||||
|
||||
Collection<PaymentInstruction> searchPaymentInstruction(LocalDate startDate, LocalDate endDate) {
|
||||
// String ql = String.format("'%s' <= created and created <= '%s'",
|
||||
// formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
|
||||
// Collection<PaymentInstruction> paymentInstructionsAll = paymentInstructionImdg.getCollectionObjectsBySQL(ql);
|
||||
|
||||
ImdgPredicateBuilder pb = paymentInstructionImdg.predicateBuilder();
|
||||
Instant dateTimeLo = toInstantStartDay(startDate);
|
||||
Instant dateTimeHi = toInstantStartDay(endDate);
|
||||
ImdgPredicate p = pb.and(pb.greatEqual("created", dateTimeLo), pb.lessEqual("created", dateTimeHi));
|
||||
Collection<PaymentInstruction> paymentInstructionsAll = paymentInstructionImdg.getCollectionObjectsByPredicate(p);
|
||||
return paymentInstructionsAll;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportBR_0420314_P2 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||
validateDateRange(startDate, endDate);
|
||||
|
|
@ -47,9 +63,7 @@ public class Repbr0420314_P2_bt_17_4_collector extends ReportDataCollector<Repor
|
|||
"", "BR"
|
||||
);
|
||||
|
||||
String ql = String.format("'%s' <= created and created <= '%s'",
|
||||
formatToIMDGInstant(startDate), formatToIMDGInstant(endDate));
|
||||
Collection<PaymentInstruction> paymentInstructionsAll = paymentInstructionImdg.getCollectionObjectsBySQL(ql);
|
||||
Collection<PaymentInstruction> paymentInstructionsAll = searchPaymentInstruction(startDate, endDate);
|
||||
|
||||
Map<Long, List<PaymentInstruction>> companyIdPyPaymtInstruction =
|
||||
MapUtil.indexList(paymentInstructionsAll, PaymentInstruction::getSenderId);
|
||||
|
|
|
|||
|
|
@ -205,6 +205,6 @@ public class ImdgHazelcast<T extends SpcexObjectBase> implements Imdg<T> {
|
|||
|
||||
@Override
|
||||
public ImdgPredicateBuilder predicateBuilder() {
|
||||
return new ImdgPredicateBuilderHazelcast(this);
|
||||
return ImdgPredicateBuilderHazelcast.instance();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,63 +3,74 @@ package ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate;
|
|||
import com.hazelcast.query.Predicates;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast;
|
||||
|
||||
public class ImdgPredicateBuilderHazelcast implements ImdgPredicateBuilder {
|
||||
protected final ImdgHazelcast imdg;
|
||||
protected static final ImdgPredicateBuilderHazelcast instance = new ImdgPredicateBuilderHazelcast();
|
||||
|
||||
public ImdgPredicateBuilderHazelcast(ImdgHazelcast imdg) {
|
||||
this.imdg = imdg;
|
||||
public static ImdgPredicateBuilderHazelcast instance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ImdgPredicate equals(String key, Object value) {
|
||||
Comparable cmpValue = (Comparable) value;
|
||||
return new ImdgPredicateHazelcast(this, Predicates.equal(key, cmpValue));
|
||||
return new ImdgPredicateHazelcast(Predicates.equal(key, cmpValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate greatEqual(String key, Comparable cmpValue) {
|
||||
return new ImdgPredicateHazelcast(this, Predicates.greaterEqual(key, cmpValue));
|
||||
return new ImdgPredicateHazelcast(Predicates.greaterEqual(key, cmpValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate lessEqual(String key, Comparable cmpValue) {
|
||||
return new ImdgPredicateHazelcast(this, Predicates.lessEqual(key, cmpValue));
|
||||
return new ImdgPredicateHazelcast(Predicates.lessEqual(key, cmpValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate greater(String key, Comparable cmpValue) {
|
||||
return new ImdgPredicateHazelcast(this, Predicates.greaterThan(key, cmpValue));
|
||||
return new ImdgPredicateHazelcast(Predicates.greaterThan(key, cmpValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate less(String key, Comparable cmpValue) {
|
||||
return new ImdgPredicateHazelcast(this, Predicates.lessThan(key, cmpValue));
|
||||
return new ImdgPredicateHazelcast(Predicates.lessThan(key, cmpValue));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate not(ImdgPredicate param) {
|
||||
ImdgPredicateHazelcast paramMy = (ImdgPredicateHazelcast) param;
|
||||
assert this == paramMy.builder;
|
||||
return new ImdgPredicateHazelcast(this, Predicates.not(paramMy.hazelcastPredicate));
|
||||
return new ImdgPredicateHazelcast(Predicates.not(paramMy.hazelcastPredicate));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB) {
|
||||
ImdgPredicateHazelcast paramAMy = (ImdgPredicateHazelcast) paramA;
|
||||
assert this == paramAMy.builder;
|
||||
ImdgPredicateHazelcast paramBMy = (ImdgPredicateHazelcast) paramB;
|
||||
assert this == paramBMy.builder;
|
||||
return new ImdgPredicateHazelcast(this, Predicates.and(paramAMy.hazelcastPredicate, paramBMy.hazelcastPredicate));
|
||||
return new ImdgPredicateHazelcast(Predicates.and(paramAMy.hazelcastPredicate, paramBMy.hazelcastPredicate));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB, ImdgPredicate paramC) {
|
||||
ImdgPredicateHazelcast paramAMy = (ImdgPredicateHazelcast) paramA;
|
||||
ImdgPredicateHazelcast paramBMy = (ImdgPredicateHazelcast) paramB;
|
||||
ImdgPredicateHazelcast paramCMy = (ImdgPredicateHazelcast) paramB;
|
||||
return new ImdgPredicateHazelcast(Predicates.and(paramAMy.hazelcastPredicate, paramBMy.hazelcastPredicate, paramCMy.hazelcastPredicate));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate or(ImdgPredicate paramA, ImdgPredicate paramB) {
|
||||
ImdgPredicateHazelcast paramAMy = (ImdgPredicateHazelcast) paramA;
|
||||
assert this == paramAMy.builder;
|
||||
ImdgPredicateHazelcast paramBMy = (ImdgPredicateHazelcast) paramB;
|
||||
assert this == paramBMy.builder;
|
||||
return new ImdgPredicateHazelcast(this, Predicates.or(paramAMy.hazelcastPredicate, paramBMy.hazelcastPredicate));
|
||||
return new ImdgPredicateHazelcast(Predicates.or(paramAMy.hazelcastPredicate, paramBMy.hazelcastPredicate));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImdgPredicate or(ImdgPredicate paramA, ImdgPredicate paramB, ImdgPredicate paramC) {
|
||||
ImdgPredicateHazelcast paramAMy = (ImdgPredicateHazelcast) paramA;
|
||||
ImdgPredicateHazelcast paramBMy = (ImdgPredicateHazelcast) paramB;
|
||||
ImdgPredicateHazelcast paramCMy = (ImdgPredicateHazelcast) paramC;
|
||||
return new ImdgPredicateHazelcast(Predicates.or(paramAMy.hazelcastPredicate, paramBMy.hazelcastPredicate, paramCMy.hazelcastPredicate));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@ package ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate;
|
|||
import com.hazelcast.query.Predicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class ImdgPredicateHazelcast implements ImdgPredicate {
|
||||
protected final ImdgPredicateBuilderHazelcast builder;
|
||||
protected final Predicate hazelcastPredicate;
|
||||
|
||||
protected ImdgPredicateHazelcast(ImdgPredicateBuilderHazelcast builder, Predicate hazelcastPredicate) {
|
||||
assert hazelcastPredicate != null;
|
||||
this.builder = builder;
|
||||
protected ImdgPredicateHazelcast(Predicate hazelcastPredicate) {
|
||||
Objects.requireNonNull(hazelcastPredicate);
|
||||
this.hazelcastPredicate = hazelcastPredicate;
|
||||
}
|
||||
|
||||
|
|
@ -19,6 +19,6 @@ public class ImdgPredicateHazelcast implements ImdgPredicate {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ImdgPredicateHazelcast{" + hazelcastPredicate + '}';
|
||||
return hazelcastPredicate.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,5 +9,7 @@ public interface ImdgPredicateBuilder {
|
|||
|
||||
ImdgPredicate not(ImdgPredicate param);
|
||||
ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB);
|
||||
ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB, ImdgPredicate paramC);
|
||||
ImdgPredicate or(ImdgPredicate paramA, ImdgPredicate paramB);
|
||||
ImdgPredicate or(ImdgPredicate paramA, ImdgPredicate paramB, ImdgPredicate paramC);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue