From 54ed129de62c50ea5444b04fc3eadcbdd0dfea63 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Mon, 26 Aug 2024 18:13:10 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-735 --- .../queue/register/RegistryController.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 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 b3ddb310f..1a4061396 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 @@ -95,11 +95,11 @@ public class RegistryController extends AbstractQueueController { @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) @RequestMapping(value = "/filter", method = RequestMethod.GET) @ResponseBody - public CommonGetAllResponse getByFilter(@RequestParam(name = "designation", required = false) Optional> designations, - @RequestParam(name = "status", required = false) Optional status, + public CommonGetAllResponse getByFilter(@RequestParam(name = "registryCode", required = false) Optional registryCode, + @RequestParam(name = "status", required = false) Optional> status, @RequestParam(name = "pageSize", required = false) Optional pageSize, @RequestParam(name = "pageIndex", required = false) Optional pageIndex) { - if (designations.isEmpty() && status.isEmpty()) { + if (registryCode.isEmpty() && status.isEmpty()) { throw new ResponseStatusException(HttpStatus.NOT_ACCEPTABLE, "Request should have at least one of the parameters: designation, status"); } @@ -107,20 +107,22 @@ public class RegistryController extends AbstractQueueController { sw.start(); List filters = new ArrayList<>(); - designations.ifPresent(ds -> filters.add(predicateBuilder.in("registryDesignation", ds.stream() - .map(d -> Optional.ofNullable(IEnumKey.getEnumByKey(RegistryDesignation.class, d)) - .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_ACCEPTABLE, "Unknown registry designation: " + d))) - .map(RegistryDesignation::getKey) - .toArray(String[]::new)))); - status.ifPresent(s -> filters.add(predicateBuilder.in("registryStatus", Optional.ofNullable(IEnumKey.getEnumByKey(RegistryStatus.class, s)) - .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_ACCEPTABLE, "Unknown registry status: " + s)) - .getKey()))); + registryCode.ifPresent(regex -> filters.add(predicateBuilder.regex("registryCode", regex))); + + status.ifPresent(collection -> { + String[] values = collection.stream() + .map(val -> Optional.ofNullable(IEnumKey.getEnumByKey(RegistryStatus.class, val)) + .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_ACCEPTABLE, "Unknown registry status: " + val))) + .map(RegistryStatus::getKey) + .toArray(String[]::new); + filters.add(predicateBuilder.in("registryStatus", values)); + }); 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))); + pageSize.orElse(10_000), index)); }, () -> { ImdgPredicate filter = predicateBuilder.and(filters.toArray(ImdgPredicate[]::new));