From 49b3191a636e15ed46433a60154d5eb3df0f169a Mon Sep 17 00:00:00 2001 From: akulikov Date: Thu, 7 Dec 2023 18:52:46 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-599 --- .../registry/service/DepoBalanceRegisterService.java | 7 ++++--- .../registry/service/MoneyBalanceRegisterService.java | 7 ++++--- .../adapter/predicate/ImdgPredicateBuilderHazelcast.java | 5 +++++ .../platform/imdg/api/predicate/ImdgPredicateBuilder.java | 1 + .../api/predicate/sql/ImdgPredicateBuilderSqlMock.java | 5 +++++ 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java index 3fe7327ca..ff7d241ed 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java @@ -89,6 +89,7 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial } private ImdgPredicate getPredicateForRegistries(Long companyId) { + Instant now = Instant.now().truncatedTo(ChronoUnit.DAYS); ImdgPredicateBuilder pb = registryHistoryMap.predicateBuilder(); RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AS_T); ImdgPredicate registryPredicate; @@ -102,11 +103,11 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial } ImdgPredicate finalPredicate = pb.and( registryPredicate, - pb.equals("object.diffBalance", 0), + pb.zero("object.diffBalance"), pb.notNull("object.tradingClearingRegistry"), pb.and( - pb.greatEqual("eventTime", Instant.now().truncatedTo(ChronoUnit.DAYS)), - pb.less("eventTime", Instant.now().plus(1, ChronoUnit.DAYS)) + pb.greatEqual("eventTime", now), + pb.less("eventTime", now.plus(1, ChronoUnit.DAYS)) ) ); diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java index 281bd1720..3abac632a 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java @@ -98,6 +98,7 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia } protected ImdgPredicate getSqlForRegistryHistory(Long companyId) { + Instant now = Instant.now().truncatedTo(ChronoUnit.DAYS); ImdgPredicateBuilder pb = registryHistoryMap.predicateBuilder(); RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM_T); ImdgPredicate registryPredicate; @@ -111,11 +112,11 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia } ImdgPredicate finalPredicate = pb.and( registryPredicate, - pb.equals("object.diffBalance", 0), + pb.zero("object.diffBalance"), pb.notNull("object.tradingClearingRegistry"), pb.and( - pb.greatEqual("eventTime", Instant.now().truncatedTo(ChronoUnit.DAYS)), - pb.less("eventTime", Instant.now().plus(1, ChronoUnit.DAYS)) + pb.greatEqual("eventTime", now), + pb.less("eventTime", now.plus(1, ChronoUnit.DAYS)) ) ); diff --git a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/predicate/ImdgPredicateBuilderHazelcast.java b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/predicate/ImdgPredicateBuilderHazelcast.java index fef559a7f..e9561482d 100644 --- a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/predicate/ImdgPredicateBuilderHazelcast.java +++ b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/predicate/ImdgPredicateBuilderHazelcast.java @@ -112,4 +112,9 @@ public class ImdgPredicateBuilderHazelcast implements ImdgPredicateBuilder { public ImdgPredicate alwaysFalse() { return new ImdgPredicateHazelcast(Predicates.alwaysFalse()); } + + @Override + public ImdgPredicate zero(String key) { + return new ImdgPredicateHazelcast(Predicates.between(key, -0.000000000001, 0.000000000001)); + } } diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/ImdgPredicateBuilder.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/ImdgPredicateBuilder.java index bee080b38..89ff18c0a 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/ImdgPredicateBuilder.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/ImdgPredicateBuilder.java @@ -22,4 +22,5 @@ public interface ImdgPredicateBuilder { ImdgPredicate alwaysTrue(); ImdgPredicate alwaysFalse(); + ImdgPredicate zero(String key); } diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/sql/ImdgPredicateBuilderSqlMock.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/sql/ImdgPredicateBuilderSqlMock.java index 5f7d50716..925e62e91 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/sql/ImdgPredicateBuilderSqlMock.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/sql/ImdgPredicateBuilderSqlMock.java @@ -105,6 +105,11 @@ public class ImdgPredicateBuilderSqlMock implements ImdgPredicateBuilder { return sql("false"); } + @Override + public ImdgPredicate zero(String key) { + return sql(key + " > -0.0000000000001 and " + key + " < 0.0000000000001"); + } + static class SimpleSQLPredicate implements ImdgPredicate { protected String sql;