From c9f8ea7aa8bbeba49914fd131f5db097c7c41fd1 Mon Sep 17 00:00:00 2001 From: ialbert Date: Mon, 27 Apr 2026 14:08:23 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-952 --- .../misc/OvernightSettingsController.java | 10 +++++-- .../validation/OvernightTypeChanged.java | 29 ------------------- .../management/config/ValidationConfig.java | 2 -- .../error/DefaultManagementErrors.java | 4 +-- .../listener/OrderCurrencyListener.java | 6 ++++ 5 files changed, 16 insertions(+), 35 deletions(-) delete mode 100644 clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/component/validation/OvernightTypeChanged.java diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/OvernightSettingsController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/OvernightSettingsController.java index 032bd0b69..6bc381f18 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/OvernightSettingsController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/misc/OvernightSettingsController.java @@ -4,7 +4,8 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; -import java.util.Collections; +import java.util.Collection; +import java.util.Map; import java.util.concurrent.ExecutionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; @@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; +import ru.clearing.classes.statics.data.misc.OvernightSettings; import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; import ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.misc.OvernightUpdateAction; @@ -22,6 +24,7 @@ import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; import ru.spcex.clearing.backendapi.service.IOperator; import ru.spcex.clearing.backendapi.service.IStateLoader; +import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; @Controller @@ -40,8 +43,11 @@ public class OvernightSettingsController extends AbstractQueueController { @RequestMapping(method = RequestMethod.GET) @ResponseBody public CommonGetAllResponse getAll() { + Collection> all = stateLoader.getAllMetaTransform( + IMDGDistributedNames.Map_OvernightSettings, OvernightSettings.class + ); CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(Collections.EMPTY_LIST); + response.fromEntity(all); return response; } diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/component/validation/OvernightTypeChanged.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/component/validation/OvernightTypeChanged.java deleted file mode 100644 index f238fa7cc..000000000 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/component/validation/OvernightTypeChanged.java +++ /dev/null @@ -1,29 +0,0 @@ -package ru.spcex.clearing.dflt.management.component.validation; - -import java.util.Optional; -import ru.clearing.classes.statics.data.misc.OrderCurrency; -import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors; -import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCurrencyUpdateRequest; -import ru.spcex.platform.imdg.validation.ImdgValidationContext; -import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.validation.IValidationRule; - -public class OvernightTypeChanged implements IValidationRule> { - public static final OvernightTypeChanged INSTANCE = new OvernightTypeChanged(); - - @Override - public Optional validate(ImdgValidationContext ctx) { - OrderCurrencyUpdateRequest validatedObject = ctx.getValidatedObject(); - OrderCurrency oc = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency); - if (oc.getOvernightType().equalsIgnoreCase(validatedObject.getOvernightType())) { - return of(DefaultManagementErrors.GeneralError); //todo нормальную ошибку - } - - return empty(); - } - - @Override - public String ruleName() { - return "OvernightTypeChanged"; - } -} diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/ValidationConfig.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/ValidationConfig.java index 93117ecfe..a05c984df 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/ValidationConfig.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/ValidationConfig.java @@ -19,7 +19,6 @@ import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyByCom import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyPLBLCheck; import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyValidationStored; import ru.spcex.clearing.dflt.management.component.validation.OvernightSettingAlreadyPresent; -import ru.spcex.clearing.dflt.management.component.validation.OvernightTypeChanged; import ru.spcex.clearing.dflt.management.component.validation.QuantityLotGreaterThanZero; import ru.spcex.clearing.dflt.management.component.validation.SpotPairPresent; import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors; @@ -176,7 +175,6 @@ public class ValidationConfig { return new ValidatorImpl<>(ctx, orderCurrencyPresentById, - OvernightTypeChanged.INSTANCE, DictionaryPresentRule.instance( "overnightType", OrderCurrencyUpdateRequest::getOvernightType, diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/error/DefaultManagementErrors.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/error/DefaultManagementErrors.java index cee30b3d0..69a835bf0 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/error/DefaultManagementErrors.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/error/DefaultManagementErrors.java @@ -6,8 +6,8 @@ public enum DefaultManagementErrors implements IErrorEnumId { GeneralError(11000L), UserVerifyDenial(11001L), - RequiredFieldIsEmpty(11002L), - DictionaryNotFound(11003L), + RequiredFieldIsEmpty(11007L), + DictionaryNotFound(11005L), RecordNotFound(11006L), RecordAlreadyPresent(11002L), OnlyBalancingOrdersAllowed(11003L), diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OrderCurrencyListener.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OrderCurrencyListener.java index 7138b4624..5fa6fe2bb 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OrderCurrencyListener.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OrderCurrencyListener.java @@ -78,7 +78,9 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing Function overnightTypeUpdateValidator, @Qualifier("orderCurrencyUpdateValidator") Function orderCurrencyUpdateValidator, + @Qualifier("orderCurrencyNewCompany") Function orderCompanyNewValidator, + @Qualifier("orderCurrencyUpdateCompany") Function orderCompanyUpdateValidator, Function orderCompanyDeleteValidator, ImdgQueryService imdgQueryService, @@ -152,6 +154,10 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing return new RequestInfoUpdate(req.getId(), Status.Error, msgResolver.resolve(error.get())); } OrderCurrency order = validator.getStored(OrderCurrencyValidationStored.OrderCurrency); + if (payload.getOvernightType().equalsIgnoreCase(order.getOvernightType())) { + log.info("overnightType from payload is the same for OrderCurrency.id[{}]: {}; skipping", order.getId(), payload.getOvernightType()); + return null; + } Registry rgs = validator.getStored(OrderCurrencyValidationStored.Registry); if (OvernightType.SWAP.equalsByKey(order.getOvernightType())) { Pair newSpotPair = swapToSpotSplit(order, rgs);