diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/TaskListener.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/TaskListener.java index 0a8e64a71..418e5ee40 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/TaskListener.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/TaskListener.java @@ -100,14 +100,6 @@ public class TaskListener extends QueueConsumer implements InitializingBean { private void createOrder(BaseRequest newReq) { log.info("CROR createOrder started, request={}", newReq); - Collection cretOrderIds = imdgQueryService.getCretOrderCurrency(); - for (Long cretOrderId : cretOrderIds) { - OrderCurrency orderCurrency = orderCurrencyImdg.getSingleObjectByID(cretOrderId); - orderCurrency.setStatus(OrderStatus.REJECTED.getKey()); - orderCurrency.setUpdated(Instant.now()); - orderCurrencyImdg.update(orderCurrency); - } - Collection registryIds = imdgQueryService.getCurrencyRegistry(); //todo очередность создания if (registryIds == null || registryIds.isEmpty()) { @@ -117,6 +109,7 @@ public class TaskListener extends QueueConsumer implements InitializingBean { for (Long registryId : registryIds) { try { + rejectByRegistryId(registryId); Registry registry = registryImdg.getSingleObjectByID(registryId); if (registry == null) { log.warn("Registry not found by id={}", registryId); @@ -213,4 +206,14 @@ public class TaskListener extends QueueConsumer implements InitializingBean { .map(settings -> IEnumKey.getEnumByKey(OvernightType.class, settings.getOvernightType())) .orElse(OvernightType.SWAP); } + + private void rejectByRegistryId(Long registryId) { + Collection cretOrderIds = imdgQueryService.getCretOrderCurrencyByRegistryId(registryId); + for (Long cretOrderId : cretOrderIds) { + OrderCurrency orderCurrency = orderCurrencyImdg.getSingleObjectByID(cretOrderId); + orderCurrency.setStatus(OrderStatus.REJECTED.getKey()); + orderCurrency.setUpdated(Instant.now()); + orderCurrencyImdg.update(orderCurrency); + } + } } diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/ImdgQueryService.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/ImdgQueryService.java index 329fed658..ea885fdee 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/ImdgQueryService.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/ImdgQueryService.java @@ -77,10 +77,10 @@ public class ImdgQueryService { return registryImdg.getCollectionIdsByPredicate(registryPredicate); } - public Collection getCretOrderCurrency() { + public Collection getCretOrderCurrencyByRegistryId(Long registryId) { ImdgPredicateBuilder builder = orderCurrencyImdg.predicateBuilder(); return orderCurrencyImdg.getCollectionIdsByPredicate( - builder.equals("status", OrderStatus.CREATED.getKey()) + builder.equals("registryId", registryId) ); }