From 621a9dec97c62befd8b1eb2e8671ffb33c09534e Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Mon, 27 Apr 2026 18:04:34 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-952 --- .../src/main/resources/meta/meta.json | 19 ++++++++++++++++++- .../src/main/resources/meta/meta.xml | 2 +- .../src/main/resources/db/DICTIONARIES.sql | 1 + .../dflt/management/config/AppConfig.java | 12 ------------ .../error/DefaultManagementErrors.java | 3 +-- .../listener/OrderCurrencyListener.java | 2 -- .../listener/OvernightSettingsListener.java | 4 ---- .../businessobject/OrderCurrencyMapStore.java | 18 ++++++++++++++++++ 8 files changed, 39 insertions(+), 22 deletions(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.json b/clearing-parent/backend-api/src/main/resources/meta/meta.json index cf5bd8f36..e54b124ea 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.json +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.json @@ -1,6 +1,6 @@ { - "version": "3.23.295.160", + "version": "3.23.295.161", "enums": { @@ -11854,6 +11854,23 @@ , {"method":"put", + "name": "Изменение заявки", + + "class": "ru.spcex.clearing.backendapi.controller.request.cud.order.OrderCurrencyUpdateStatusAction", + + "fields": [ + {"code": "id", + "type": 1,"name": "Идентификатор записи","shortname": "ID","link": "orderCurrency","linkCode": "id","required": true + } + , + {"code": "status", + "type": 12,"name": "Статус заявки","shortname": "Статус","link": "orderStatus" + } + ] + } + , + {"method":"put", + "name": "Изменение типа сделки переноса", "destination": "order-currency/overnightType", diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index 6b9cb3304..b2466320b 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + diff --git a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql index 4dddb88bc..4b31568cc 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql @@ -1335,6 +1335,7 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (11001, 'DFLT', 'Зап INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (11002, 'DFLT', 'Запись уже существует') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (11003, 'DFLT', 'Добавление ДУК возможно только для балансирующих сделок ПЛ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (11004, 'DFLT', 'Изменение ДУК возможно только для балансирующих сделок ПЛ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (11005, 'DFLT', 'Неверное значение параметра %s') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO RESIDENCE_DICTIONARY(ID, CODE, NAME) values (1, 'RUS', 'Резидент РФ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO RESIDENCE_DICTIONARY(ID, CODE, NAME) values (2, 'XTRN', 'Нерезидент РФ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/AppConfig.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/AppConfig.java index 2033e8c28..821ef6264 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/AppConfig.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/AppConfig.java @@ -2,18 +2,12 @@ package ru.spcex.clearing.dflt.management.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Scope; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import ru.spcex.clearing.dflt.management.config.settings.DefaultManagementSettings; -import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors; -import ru.spcex.clearing.util.security.UserRoleVerification; -import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; -import ru.spcex.platform.utils.enumeration.IMessageResolver; @Configuration public class AppConfig { @@ -50,10 +44,4 @@ public class AppConfig { taskExecutorIdGeneratorAwaiter, settings.getHazelcast()); } - - @Bean - @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) - public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) { - return new UserRoleVerification(imdgProvider, messageResolver, UserRole.Admin, DefaultManagementErrors.UserVerifyDenial); - } } 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 f52dbf57d..d7a5bd13a 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 @@ -5,10 +5,9 @@ import ru.spcex.platform.utils.enumeration.IErrorEnumId; public enum DefaultManagementErrors implements IErrorEnumId { GeneralError(11000L), - UserVerifyDenial(11001L), + RecordNotFound(11001L), RequiredFieldIsEmpty(11007L), DictionaryNotFound(11005L), - RecordNotFound(11006L), RecordAlreadyPresent(11002L), OnlyBalancingOrdersAllowed(11003L), OnlyBalancingOrdersAllowedForChanging(11004L), 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 8812fdb36..28905526d 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 @@ -38,7 +38,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCurrencyUpdate import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; -import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.platform.enumeration.MarketType; import ru.spcex.platform.enumeration.OrderStatus; import ru.spcex.platform.enumeration.OvernightType; @@ -73,7 +72,6 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing public OrderCurrencyListener(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, - UserRoleVerification userRoleVerification, @Qualifier("orderCurrencyUpdateOvernightTypeValidator") Function overnightTypeUpdateValidator, @Qualifier("orderCurrencyUpdateValidator") diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OvernightSettingsListener.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OvernightSettingsListener.java index aac0402af..c43b58182 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OvernightSettingsListener.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/OvernightSettingsListener.java @@ -19,7 +19,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.misc.OvernightSettingsUpd import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; -import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.validation.Stored; @@ -30,7 +29,6 @@ import ru.spcex.platform.utils.validation.IValidator; @Service public class OvernightSettingsListener extends QueueConsumer implements InitializingBean { protected final Logger log = LoggerFactory.getLogger(getClass()); - private final UserRoleVerification userRoleVerification; private final Function osNewValidator; private final Function osUpdateValidator; private final IMessageResolver msgResolver; @@ -40,7 +38,6 @@ public class OvernightSettingsListener extends QueueConsumer implements Initiali public OvernightSettingsListener(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, - UserRoleVerification userRoleVerification, IMessageResolver msgResolver, @Qualifier("overnightSettingsNewValidator") Function osNewValidator, @@ -48,7 +45,6 @@ public class OvernightSettingsListener extends QueueConsumer implements Initiali Function osUpdateValidator ) { super(kafkaQueue, kafkaProducer); - this.userRoleVerification = userRoleVerification; this.osNewValidator = osNewValidator; this.osUpdateValidator = osUpdateValidator; this.msgResolver = msgResolver; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/OrderCurrencyMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/OrderCurrencyMapStore.java index 99c9b21fc..28a6edc3d 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/OrderCurrencyMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/OrderCurrencyMapStore.java @@ -2,11 +2,14 @@ package ru.spcex.clearing.imdg.businessobject; import java.sql.ResultSet; import java.sql.SQLException; +import java.time.LocalDate; +import java.util.List; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.misc.OrderCurrency; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.log.ExceptionUtils; import ru.spcex.platform.utils.time.TimeUtil; @Component @@ -64,6 +67,21 @@ public class OrderCurrencyMapStore extends TemplateMapStore { return new String[]{"id"}; } + @Override + public Iterable loadAllKeys() { + log.debug("loadAllKeys from " + getTableName()); + List keys; + try { + keys = jdbcTemplate.query("select id from " + getTableName() + " where created_at = ?", + new Object[]{LocalDate.now()}, + (resultSet, i) -> resultSet.getLong("id")); + } catch (Throwable e) { + log.error("{}", ExceptionUtils.getStackTrace(e)); + throw e; + } + return keys; + } + @Override public OrderCurrency objectReader(ResultSet resultSet) throws SQLException { OrderCurrency object = new OrderCurrency();