diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java index 1655d46a9..56f44c003 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java @@ -134,25 +134,9 @@ public class ExecutionDepositComponent { } } - // Необходимо проверять отсутствие ExecutionDeposit с exchangeExecutionId и clearingDate. + // Необходимо проверять отсутствие ExecutionDeposit с exchangeExecutionId и clearingDate и side. // Но при этом, во время создания новых ExecutionDeposit по STrade, TradeNum могут повторяться. LocalDate today = LocalDate.now(); - HashSet existTradeNumsOfExecutionDeposit = new HashSet<>(); - { - Set tradeNums = sTrades.stream().map(STrade::getTradeNum).filter(Objects::nonNull).collect(Collectors.toSet()); - log.debug("Check {} s_trade tradeNum=[{}] on date {}", sTrades.size(), tradeNums, today); - ImdgPredicateBuilder pb = executionDepositImdg.predicateBuilder(); - Collection existsEDeposit = executionDepositImdg.getCollectionObjectsByPredicate( - pb.and( - pb.in("exchangeExecutionId", tradeNums.toArray(new Comparable[0])), - pb.equals("clearingDate", today) - ) -// Map.of("exchangeExecutionId", trade.getTradeNum(),"clearingDate", today) - ); - for (ExecutionDeposit ed : existsEDeposit) { - existTradeNumsOfExecutionDeposit.add(ed.getExchangeExecutionId()); - } - } for (STrade trade : sTrades) { log.trace("Check s_trade[{}].tradeNum={} operation={} on date {}", trade.getId(), trade.getTradeNum(), trade.getOperation(), today); @@ -185,7 +169,7 @@ public class ExecutionDepositComponent { // "clearingDate", today // )); existEDeposit = !existsEDeposit.isEmpty(); - log.trace("Check exist, SQL \"{}\", found {}, exist {}", predicate, existsEDeposit.size(), existEDeposit); + log.trace("Check exist ExecutionDeposit, SQL \"{}\", found {}, exist {}", predicate, existsEDeposit.size(), existEDeposit); } if (!existEDeposit) { @@ -203,6 +187,7 @@ public class ExecutionDepositComponent { newED = createExecutionDeposit(trade, null, null); executionDepositImdg.insert(newED); sendNotification(newED); + log.debug("New executionDeposit.id={} was created.", newED.getId()); } catch (ClearingException ce) { auditMessage(ce); } catch (Exception e) { diff --git a/clearing-parent/clearing-service/src/main/resources/logback.xml b/clearing-parent/clearing-service/src/main/resources/logback.xml index e2702c011..39d4ebcaa 100644 --- a/clearing-parent/clearing-service/src/main/resources/logback.xml +++ b/clearing-parent/clearing-service/src/main/resources/logback.xml @@ -35,7 +35,7 @@ - + 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 a512122b1..944dba3ae 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 @@ -60,7 +60,7 @@ public class ImdgPredicateBuilderHazelcast implements ImdgPredicateBuilder { public ImdgPredicate and(ImdgPredicate paramA, ImdgPredicate paramB, ImdgPredicate paramC) { ImdgPredicateHazelcast paramAMy = (ImdgPredicateHazelcast) paramA; ImdgPredicateHazelcast paramBMy = (ImdgPredicateHazelcast) paramB; - ImdgPredicateHazelcast paramCMy = (ImdgPredicateHazelcast) paramB; + ImdgPredicateHazelcast paramCMy = (ImdgPredicateHazelcast) paramC; return new ImdgPredicateHazelcast(Predicates.and(paramAMy.hazelcastPredicate, paramBMy.hazelcastPredicate, paramCMy.hazelcastPredicate)); }