etreschenkov 2026-04-27 18:04:34 +03:00
parent 5e8ba401cc
commit 621a9dec97
8 changed files with 39 additions and 22 deletions

View file

@ -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",

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--?xml-stylesheet type="text/xsl" href="\..\corp-reports\src\data\meta\meta.server.xslt"?-->
<meta version="3.23.295.160">
<meta version="3.23.295.161">
<!-- _xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _xsi:noNamespaceSchemaLocation="file:///E:/d/projects/meta/from/meta.xsd" -->
<!--Здесь словари-->
<enums>

View file

@ -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;

View file

@ -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);
}
}

View file

@ -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),

View file

@ -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<String, Object> kafkaQueue,
Producer<String, Object> kafkaProducer,
ImdgProvider imdgProvider,
UserRoleVerification userRoleVerification,
@Qualifier("orderCurrencyUpdateOvernightTypeValidator")
Function<OrderCurrencyUpdateRequest, IValidator> overnightTypeUpdateValidator,
@Qualifier("orderCurrencyUpdateValidator")

View file

@ -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<OvernightSettingsNewRequest, IValidator> osNewValidator;
private final Function<OvernightSettingsUpdateRequest, IValidator> osUpdateValidator;
private final IMessageResolver msgResolver;
@ -40,7 +38,6 @@ public class OvernightSettingsListener extends QueueConsumer implements Initiali
public OvernightSettingsListener(Consumer<String, Object> kafkaQueue,
Producer<String, Object> kafkaProducer,
ImdgProvider imdgProvider,
UserRoleVerification userRoleVerification,
IMessageResolver msgResolver,
@Qualifier("overnightSettingsNewValidator")
Function<OvernightSettingsNewRequest, IValidator> osNewValidator,
@ -48,7 +45,6 @@ public class OvernightSettingsListener extends QueueConsumer implements Initiali
Function<OvernightSettingsUpdateRequest, IValidator> osUpdateValidator
) {
super(kafkaQueue, kafkaProducer);
this.userRoleVerification = userRoleVerification;
this.osNewValidator = osNewValidator;
this.osUpdateValidator = osUpdateValidator;
this.msgResolver = msgResolver;

View file

@ -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<OrderCurrency> {
return new String[]{"id"};
}
@Override
public Iterable<Long> loadAllKeys() {
log.debug("loadAllKeys from " + getTableName());
List<Long> 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();