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 91590fd68..0a8e64a71 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 @@ -6,6 +6,7 @@ import java.math.RoundingMode; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; +import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -40,6 +41,7 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.platform.enumeration.CurrencyCode; import ru.spcex.platform.enumeration.ObjectType; +import ru.spcex.platform.enumeration.OrderStatus; import ru.spcex.platform.enumeration.OvernightType; import ru.spcex.platform.enumeration.Priority; import ru.spcex.platform.enumeration.Task; @@ -53,6 +55,7 @@ public class TaskListener extends QueueConsumer implements InitializingBean { protected final Logger log = LoggerFactory.getLogger(getClass()); private final ImdgQueryService imdgQueryService; private final Imdg registryImdg; + private final Imdg orderCurrencyImdg; private final SwapOvernightOrderService swapOvernightOrderService; private final SpotOvernightOrderService spotOvernightOrderService; private final OrderCurrencyTriExportService orderCurrencyTriExportService; @@ -74,6 +77,7 @@ public class TaskListener extends QueueConsumer implements InitializingBean { super(kafkaQueue, kafkaProducer); this.imdgQueryService = imdgQueryService; this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); + this.orderCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_OrderCurrency, OrderCurrency.class); this.swapOvernightOrderService = swapOvernightOrderService; this.spotOvernightOrderService = spotOvernightOrderService; this.orderCurrencyTriExportService = orderCurrencyTriExportService; @@ -96,6 +100,14 @@ 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()) { 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 e400d01ea..329fed658 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,6 +77,13 @@ public class ImdgQueryService { return registryImdg.getCollectionIdsByPredicate(registryPredicate); } + public Collection getCretOrderCurrency() { + ImdgPredicateBuilder builder = orderCurrencyImdg.predicateBuilder(); + return orderCurrencyImdg.getCollectionIdsByPredicate( + builder.equals("status", OrderStatus.CREATED.getKey()) + ); + } + public Collection getClccOrderCurrencyIds() { ImdgPredicateBuilder builder = orderCurrencyImdg.predicateBuilder(); CompanyRoleSet companyRoleSet = companyRoleSetImdg.getFirstObjectByPredicate(