From db90b9a38817dda37606b468b54a78c335980aa8 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Mon, 26 Aug 2024 12:27:26 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-734 --- .../queue/register/RegistryController.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryController.java index 17e8b8745..b3ddb310f 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryController.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.concurrent.ExecutionException; +import java.util.concurrent.atomic.AtomicReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -115,22 +116,25 @@ public class RegistryController extends AbstractQueueController { .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_ACCEPTABLE, "Unknown registry status: " + s)) .getKey()))); - Collection> all = pageSize.isPresent() ? - stateLoader.getAllMetaTransformWithPagination(IMDGDistributedNames.Map_Registry, - Registry.class, - predicateBuilder.and(filters.toArray(ImdgPredicate[]::new)), - pageSize.get(), - pageIndex.orElse(1)) : - stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_Registry, Registry.class, predicateBuilder.and(filters.toArray(ImdgPredicate[]::new))); + AtomicReference>> all = new AtomicReference<>(); + pageIndex.ifPresentOrElse(index -> { + ImdgPredicate filter = predicateBuilder.and(filters.toArray(ImdgPredicate[]::new)); + all.set(stateLoader.getAllMetaTransformWithPagination(IMDGDistributedNames.Map_Registry, Registry.class, filter, + index, pageSize.orElse(100))); + }, + () -> { + ImdgPredicate filter = predicateBuilder.and(filters.toArray(ImdgPredicate[]::new)); + all.set(stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_Registry, Registry.class, filter)); + }); sw.stop(); - log.info("Info select and format {} data took {} ms", all.size(), sw.getLastTaskTimeMillis()); + log.info("Info select and format {} data took {} ms", all.get().size(), sw.getLastTaskTimeMillis()); sw.start(); CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); + response.fromEntity(all.get()); sw.stop(); - log.info("Info select and format {} data {}", all.size(), sw.getLastTaskTimeMillis()); + log.info("Info select and format {} data {}", all.get().size(), sw.getLastTaskTimeMillis()); return response; }