akulikov 2023-12-07 18:52:46 +03:00
parent 2a81e33b78
commit 49b3191a63
5 changed files with 19 additions and 6 deletions

View file

@ -89,6 +89,7 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial
} }
private ImdgPredicate getPredicateForRegistries(Long companyId) { private ImdgPredicate getPredicateForRegistries(Long companyId) {
Instant now = Instant.now().truncatedTo(ChronoUnit.DAYS);
ImdgPredicateBuilder pb = registryHistoryMap.predicateBuilder(); ImdgPredicateBuilder pb = registryHistoryMap.predicateBuilder();
RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AS_T); RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AS_T);
ImdgPredicate registryPredicate; ImdgPredicate registryPredicate;
@ -102,11 +103,11 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial
} }
ImdgPredicate finalPredicate = pb.and( ImdgPredicate finalPredicate = pb.and(
registryPredicate, registryPredicate,
pb.equals("object.diffBalance", 0), pb.zero("object.diffBalance"),
pb.notNull("object.tradingClearingRegistry"), pb.notNull("object.tradingClearingRegistry"),
pb.and( pb.and(
pb.greatEqual("eventTime", Instant.now().truncatedTo(ChronoUnit.DAYS)), pb.greatEqual("eventTime", now),
pb.less("eventTime", Instant.now().plus(1, ChronoUnit.DAYS)) pb.less("eventTime", now.plus(1, ChronoUnit.DAYS))
) )
); );

View file

@ -98,6 +98,7 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia
} }
protected ImdgPredicate getSqlForRegistryHistory(Long companyId) { protected ImdgPredicate getSqlForRegistryHistory(Long companyId) {
Instant now = Instant.now().truncatedTo(ChronoUnit.DAYS);
ImdgPredicateBuilder pb = registryHistoryMap.predicateBuilder(); ImdgPredicateBuilder pb = registryHistoryMap.predicateBuilder();
RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM_T); RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM_T);
ImdgPredicate registryPredicate; ImdgPredicate registryPredicate;
@ -111,11 +112,11 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia
} }
ImdgPredicate finalPredicate = pb.and( ImdgPredicate finalPredicate = pb.and(
registryPredicate, registryPredicate,
pb.equals("object.diffBalance", 0), pb.zero("object.diffBalance"),
pb.notNull("object.tradingClearingRegistry"), pb.notNull("object.tradingClearingRegistry"),
pb.and( pb.and(
pb.greatEqual("eventTime", Instant.now().truncatedTo(ChronoUnit.DAYS)), pb.greatEqual("eventTime", now),
pb.less("eventTime", Instant.now().plus(1, ChronoUnit.DAYS)) pb.less("eventTime", now.plus(1, ChronoUnit.DAYS))
) )
); );

View file

@ -112,4 +112,9 @@ public class ImdgPredicateBuilderHazelcast implements ImdgPredicateBuilder {
public ImdgPredicate alwaysFalse() { public ImdgPredicate alwaysFalse() {
return new ImdgPredicateHazelcast(Predicates.alwaysFalse()); return new ImdgPredicateHazelcast(Predicates.alwaysFalse());
} }
@Override
public ImdgPredicate zero(String key) {
return new ImdgPredicateHazelcast(Predicates.between(key, -0.000000000001, 0.000000000001));
}
} }

View file

@ -22,4 +22,5 @@ public interface ImdgPredicateBuilder {
ImdgPredicate alwaysTrue(); ImdgPredicate alwaysTrue();
ImdgPredicate alwaysFalse(); ImdgPredicate alwaysFalse();
ImdgPredicate zero(String key);
} }

View file

@ -105,6 +105,11 @@ public class ImdgPredicateBuilderSqlMock implements ImdgPredicateBuilder {
return sql("false"); return sql("false");
} }
@Override
public ImdgPredicate zero(String key) {
return sql(key + " > -0.0000000000001 and " + key + " < 0.0000000000001");
}
static class SimpleSQLPredicate implements ImdgPredicate { static class SimpleSQLPredicate implements ImdgPredicate {
protected String sql; protected String sql;