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 ff7d241ed..f97c4655d 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 @@ -91,14 +91,15 @@ 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); + RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AS_T) + .prefix("object"); ImdgPredicate registryPredicate; if (companyId == null) { - registryPredicate = pb.sql(codeSql.build("object.")); + registryPredicate = pb.sql(codeSql.build()); } else { registryPredicate = pb.and( pb.equals("object.companyId", companyId), - pb.sql(codeSql.build("object.")) + pb.sql(codeSql.build()) ); } ImdgPredicate finalPredicate = pb.and( diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/RegistryCodeSqlBuilder.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/RegistryCodeSqlBuilder.java index c679df7e3..5de0f202a 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/RegistryCodeSqlBuilder.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/RegistryCodeSqlBuilder.java @@ -12,6 +12,7 @@ import java.util.stream.Collectors; public class RegistryCodeSqlBuilder { private List registryTradingParams; + private String prefix = ""; public static RegistryCodeSqlBuilder getInstance(RegistryTradingParams... tradingParams) { return new RegistryCodeSqlBuilder(Arrays.asList(tradingParams)); @@ -21,9 +22,9 @@ public class RegistryCodeSqlBuilder { this.registryTradingParams = tradingParams; } - public String build(String prefix) { + public String build() { List conditions = new ArrayList<>(); - final String REGISTRY_DESIGNATION_FORMAT = prefix + "registryDesignation = '%s'"; + final String REGISTRY_DESIGNATION_FORMAT = "%s.registryDesignation = '%%s'".formatted(prefix); final String REGISTRY_INSTRUMENT_TYPE_FORMAT = prefix + "registryInstrumentType = '%s'"; final String REGISTRY_CAPACITY_FORMAT = prefix + "registryCapacity = '%s'"; final String REGISTRY_UNIT_FORMAT = prefix + "registryUnit = '%s'"; @@ -66,12 +67,7 @@ public class RegistryCodeSqlBuilder { return conditions.stream().collect(Collectors.joining(") or (", "(", ")")); } - public String build() { - return build(""); - } - - - public ImdgPredicate buildPredicate(ImdgPredicateBuilder pb, String prefix) { + public ImdgPredicate buildPredicate(ImdgPredicateBuilder pb) { List conditionsOr = new ArrayList<>(); final String REGISTRY_DESIGNATION_FIELD = prefix + "registryDesignation"; final String REGISTRY_INSTRUMENT_TYPE_FIELD = prefix + "registryInstrumentType"; @@ -100,8 +96,8 @@ public class RegistryCodeSqlBuilder { if (conditionsOr.size() == 1) return conditionsOr.get(0); return pb.or(conditionsOr.toArray(new ImdgPredicate[conditionsOr.size()])); } - - public ImdgPredicate buildPredicate(ImdgPredicateBuilder pb) { - return buildPredicate(pb, ""); + public RegistryCodeSqlBuilder prefix(String prefix) { + this.prefix = prefix; + return this; } }