From 5891ad4994f30377cdd241c51f07b543a8002ca1 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 25 Apr 2024 15:26:50 +0300 Subject: [PATCH] =?UTF-8?q?meta=20=D1=81=20currency-pair,=20=D0=BA=D1=83?= =?UTF-8?q?=D1=87=D0=B0=20=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D1=85=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExecutionCurrencyController.java | 56 +++++++++++ .../CurrencyPairSecurityNewAction.java | 32 ++---- .../CurrencyPairSecurityUpdateAction.java | 32 ++---- .../src/main/resources/meta/meta.json | 98 +++++++------------ .../src/main/resources/meta/meta.xml | 63 ++++++------ .../backend-api/src/test/resources/meta.json | 98 +++++++------------ .../validation/ValidationProvider.java | 24 ++--- 7 files changed, 182 insertions(+), 221 deletions(-) create mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionCurrencyController.java diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionCurrencyController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionCurrencyController.java new file mode 100644 index 000000000..a3213410c --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionCurrencyController.java @@ -0,0 +1,56 @@ +package ru.spcex.clearing.backendapi.controller.queue.execution; + +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +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.execution.ExecutionCurrency; +import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; +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.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; + +import java.time.LocalDate; +import java.util.Collection; +import java.util.Map; + +@Controller +@RequestMapping("/execution-currency") +public class ExecutionCurrencyController extends AbstractQueueController { + private final IStateLoader stateLoader; + private final ImdgPredicateBuilder imdgPredicateBuilder; + + @Autowired + public ExecutionCurrencyController(IOperator operator, + IStateLoader stateLoader, + ImdgProvider imdgProvider) { + super(operator); + this.stateLoader = stateLoader; + this.imdgPredicateBuilder = imdgProvider + .getImdg(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class) + .predicateBuilder(); + } + + @ApiOperation(value = "get all ExecutionCurrency.") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) + @RequestMapping(method = RequestMethod.GET) + @ResponseBody + public CommonGetAllResponse getAll() { + ImdgPredicate imdgPredicate = imdgPredicateBuilder.greatEqual("settlementDate", LocalDate.now()); + Collection> all = stateLoader.getAllMetaTransform( + IMDGDistributedNames.Map_ExecutionCurrency, + ExecutionCurrency.class, + imdgPredicate); + CommonGetAllResponse response = new CommonGetAllResponse(); + response.fromEntity(all); + return response; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/CurrencyPairSecurityNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/CurrencyPairSecurityNewAction.java index e90ee66e3..40bbf0775 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/CurrencyPairSecurityNewAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/CurrencyPairSecurityNewAction.java @@ -25,12 +25,12 @@ public class CurrencyPairSecurityNewAction implements IAction - + @@ -307,7 +307,7 @@ - + @@ -855,19 +855,16 @@ - - - - - - - - + + + + + + + - - @@ -875,28 +872,24 @@ - + - - - - - + + + - + - - - - - + + + @@ -1686,22 +1679,22 @@ - - + + - + - + - - - - - - - + + + + + + + diff --git a/clearing-parent/backend-api/src/test/resources/meta.json b/clearing-parent/backend-api/src/test/resources/meta.json index bc677264a..a671dc066 100644 --- a/clearing-parent/backend-api/src/test/resources/meta.json +++ b/clearing-parent/backend-api/src/test/resources/meta.json @@ -1,6 +1,6 @@ { - "version": "3.11.0.82", + "version": "3.11.0.83", "enums": { @@ -1394,7 +1394,7 @@ "name": "Справочник валютных пар", - "class": "ru.clearing.platform.dictionary.СurrencyPair", + "class": "ru.clearing.platform.dictionary.CurrencyPairDictionary", "table": "currency_pair", @@ -3690,7 +3690,7 @@ , "currencyPairSecurity": { - "name": "Валютные пары", + "name": "Инструменты валютного рынка", "destination": "securities/currency-pair-securities", @@ -3701,16 +3701,24 @@ "table": "currency_pair_security", "fields": [ + {"code": "securitySymbol", + "type": 2,"length": 255,"name": "Код инструмента","shortname": "Код","searchable": true,"sortable": true,"visible": true,"extends": "security" + } + , + {"code": "shortName", + "type": 2,"length": 255,"name": "Краткое наименование инструмента","shortname": "Краткое наименование","searchable": true,"sortable": true,"visible": true,"extends": "security" + } + , + {"code": "currencyPairId", + "type": 1,"dbname": "Валютная пара","name": "Валютная пара","shortname": "Инструмент","searchable": true,"sortable": true,"ignore": true,"link": "currencyPair","linkKeyCode": "id","linkCode": "code" + } + , {"code": "baseUnitSize", "type": 11,"name": "Количество валюты лота","shortname": "Количество","visible": true,"searchable": true,"sortable": true } - , - {"code": "currencyPairId", - "type": 1,"dbname": "Идентификатор валютной пары","name": "Валютная пара","shortname": "Инструмент","searchable": true,"sortable": true,"ignore": true,"link": "currencyPair" - } , {"code": "code", - "type": 2,"length": 255,"name": "Наименование валютной пары","shortname": "Валютная пара","searchable": true,"sortable": true,"visible": true,"link": "currencyPair","linkKeyCode": "id","linkCode": "name" + "type": 2,"length": 255,"name": "Наименование валютной пары","shortname": "Валютная пара","searchable": true,"sortable": true,"visible": false,"link": "currencyPair","linkKeyCode": "id","linkCode": "name" } , {"code": "settlementType", @@ -3720,34 +3728,14 @@ {"code": "clearingOrganization", "type": 2,"length": 255,"name": "Наименование клиринговой организации","shortname": "Клиринговая организация","searchable": true,"sortable": true,"visible": true } - , - {"code": "settlementOrganization", - "type": 2,"length": 255,"name": "Наименование расчетной организации","shortname": "Расчетная организация","searchable": true,"sortable": true,"visible": true - } , {"code": "securityId", "type": 1,"name": "Наименование инструмента","shortname": "Инструмент","searchable": true,"sortable": true,"link": "security","linkCode": "shortName" } - , - {"code": "securitySymbol", - "type": 2,"length": 255,"name": "Код инструмента","shortname": "Код","searchable": true,"sortable": true,"visible": true,"extends": "security" - } - , - {"code": "shortName", - "type": 2,"length": 255,"name": "Краткое наименование инструмента","shortname": "Краткое наименование","searchable": true,"sortable": true,"visible": true,"extends": "security" - } , {"code": "fullName", "type": 2,"length": 255,"name": "Полное наименование инструмента","shortname": "Наименование","searchable": true,"sortable": true,"visible": true,"extends": "security" } - , - {"code": "shortNameEng", - "type": 2,"length": 255,"name": "Краткое наименование инструмента на английском","shortname": "Краткое наименование на английском","searchable": true,"sortable": true,"visible": true,"extends": "security" - } - , - {"code": "fullNameEng", - "type": 2,"length": 255,"name": "Полное наименование инструмента на английском","shortname": "Наименование на английском","searchable": true,"sortable": true,"visible": true,"extends": "security" - } , {"code": "workflowStatus", "type": 12,"dbname": "Код статуса","name": "Наименование статуса","shortname": "Статус","searchable": true,"sortable": true,"visible": true,"link": "workflowStatus","extends": "security" @@ -3780,7 +3768,7 @@ } , {"code": "securitySymbol", - "type": 2,"length": 255,"name": "Код инструмента","shortname": "Код","required": true + "type": 2,"length": 255,"name": "Код инструмента","shortname": "Инструмент","required": true } , {"code": "shortName", @@ -3792,23 +3780,15 @@ } , {"code": "currencyPairId", - "type": 1,"dbname": "Идентификатор валютной пары","name": "Валютная пара","shortname": "Инструмент","link": "currencyPair","required": true - } - , - {"code": "lotSize", - "type": 11,"name": "Размер лота","shortname": "Лот","required": true - } - , - {"code": "minStep", - "type": 11,"name": "Шаг цены","shortname": "Шаг цены","required": true + "type": 1,"dbname": "Идентификатор валютной пары","name": "Валютная пара","shortname": "Валютная пара","link": "currencyPair","linkKeyCode": "id","linkCode": "code","required": true } , {"code": "baseUnitSize", - "type": 11,"name": "Количество валюты лота","shortname": "Количество","required": true + "type": 11,"name": "Количество валюты в лоте","shortname": "Количество валюты в лоте","required": true } , {"code": "settlementType", - "type": 12,"dbname": "Тип расчета","name": "Тип расчета","shortname": "Тип расчета","link": "currencySettlementType","required": true + "type": 12,"dbname": "Тип расчета","name": "Тип расчета","shortname": "Тип расчета","link": "currencySettlementType","required": true,"linkCode": "code" } , {"code": "workflowStatus", @@ -3839,7 +3819,7 @@ } , {"code": "securitySymbol", - "type": 2,"length": 255,"name": "Код инструмента","shortname": "Код","required": true + "type": 2,"length": 255,"name": "Код инструмента","shortname": "Инструмент","required": true } , {"code": "shortName", @@ -3851,23 +3831,15 @@ } , {"code": "currencyPairId", - "type": 1,"dbname": "Идентификатор валютной пары","name": "Валютная пара","shortname": "Инструмент","link": "currencyPair","required": true - } - , - {"code": "lotSize", - "type": 11,"name": "Размер лота","shortname": "Лот","required": true - } - , - {"code": "minStep", - "type": 11,"name": "Шаг цены","shortname": "Шаг цены","required": true + "type": 1,"dbname": "Идентификатор валютной пары","name": "Валютная пара","shortname": "Валютная пара","link": "currencyPair","linkKeyCode": "id","linkCode": "code","required": true } , {"code": "baseUnitSize", - "type": 11,"name": "Количество валюты лота","shortname": "Количество","required": true + "type": 11,"name": "Количество валюты в лоте","shortname": "Количество валюты в лоте","required": true } , {"code": "settlementType", - "dbname": "Тип расчета","name": "Тип расчета","shortname": "Тип расчета","link": "currencySettlementType","required": true + "dbname": "Тип расчета","name": "Тип расчета","shortname": "Тип расчета","link": "currencySettlementType","required": true,"linkCode": "code" } , {"code": "workflowStatus", @@ -7326,11 +7298,11 @@ } , {"code": "createdAt", - "field": "created","type": 4,"webtype": "5","name": "Время создания записи","shortname": "Создано","searchable": true,"sortable": true + "field": "created","type": 4,"webtype": "5","name": "Время создания записи","shortname": "Создано","searchable": true,"sortable": true,"visible": true } , {"code": "updatedAt", - "field": "updated","type": 4,"webtype": "5","name": "Время изменения записи","shortname": "Изменено","searchable": true,"sortable": true + "field": "updated","type": 4,"webtype": "5","name": "Время изменения записи","shortname": "Изменено","searchable": true,"sortable": true,"visible": true } , {"code": "inSDfId", @@ -7338,7 +7310,7 @@ } , {"code": "inSDf", - "type": 2,"length": 255,"name": "Входящий файл","shortname": "Входящий","searchable": true,"sortable": true + "type": 2,"length": 255,"name": "Входящий файл","shortname": "Входящий","searchable": true,"sortable": true,"visible": true } , {"code": "outSDfId", @@ -7346,7 +7318,7 @@ } , {"code": "outSDf", - "type": 2,"length": 255,"name": "Исходящий файл","shortname": "Исходящий файл","searchable": true,"sortable": true + "type": 2,"length": 255,"name": "Исходящий файл","shortname": "Исходящий файл","searchable": true,"sortable": true,"visible": true } ] @@ -7368,31 +7340,31 @@ } , {"code": "createdAt", - "field": "created","type": 4,"webtype": "5","name": "Время создания записи","shortname": "Создано","searchable": true,"sortable": true + "field": "created","type": 4,"webtype": "5","name": "Время создания записи","shortname": "Создано","searchable": true,"sortable": true,"visible": true } , {"code": "updatedAt", - "field": "updated","type": 4,"webtype": "5","name": "Время изменения записи","shortname": "Изменено","searchable": true,"sortable": true + "field": "updated","type": 4,"webtype": "5","name": "Время изменения записи","shortname": "Изменено","searchable": true,"sortable": true,"visible": true } , {"code": "requestId", - "type": 2,"length": 255,"name": "ID запроса","shortname": "ID","searchable": true,"sortable": true + "type": 2,"length": 255,"name": "ID запроса","shortname": "ID","searchable": true,"sortable": true,"visible": true } , {"code": "nameRequest", - "type": 2,"length": 255,"name": "Наименование запроса","shortname": "Наименование","searchable": true,"sortable": true + "type": 2,"length": 255,"name": "Наименование запроса","shortname": "Наименование","searchable": true,"sortable": true,"visible": true } , {"code": "request", - "type": 2,"length": 1023,"name": "Тело запроса","shortname": "Запрос","searchable": true,"sortable": true + "type": 2,"length": 1023,"name": "Тело запроса","shortname": "Запрос","searchable": true,"sortable": true,"visible": true } , {"code": "result", - "type": 2,"length": 1023,"name": "Тело ответа","shortname": "Ответ","searchable": true,"sortable": true + "type": 2,"length": 1023,"name": "Тело ответа","shortname": "Ответ","searchable": true,"sortable": true,"visible": true } , {"code": "gatewayResultStatus", - "type": 12,"name": "Статус запроса","shortname": "Статус","searchable": true,"sortable": true,"link": "gatewayResultStatus" + "type": 12,"name": "Статус запроса","shortname": "Статус","searchable": true,"sortable": true,"link": "gatewayResultStatus","visible": true } ] diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java index 5ce7d8510..60dd117cf 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java @@ -355,12 +355,12 @@ public class ValidationProvider { SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.MarketNotFound ), - FieldRequiredRule.instance("lotSize", - CurrencyPairSecurityNewRequest::getLotSize, - SecuritiesError.RequiredFieldIsEmpty, true), - FieldRequiredRule.instance("minStep", - CurrencyPairSecurityNewRequest::getMinStep, - SecuritiesError.RequiredFieldIsEmpty, true), +// FieldRequiredRule.instance("lotSize", +// CurrencyPairSecurityNewRequest::getLotSize, +// SecuritiesError.RequiredFieldIsEmpty, true), +// FieldRequiredRule.instance("minStep", +// CurrencyPairSecurityNewRequest::getMinStep, +// SecuritiesError.RequiredFieldIsEmpty, true), FieldRequiredRule.instance("baseUnitSize", CurrencyPairSecurityNewRequest::getBaseUnitSize, SecuritiesError.RequiredFieldIsEmpty, true), @@ -426,12 +426,12 @@ public class ValidationProvider { SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.MarketNotFound ), - FieldRequiredRule.instance("lotSize", - CurrencyPairSecurityUpdateRequest::getLotSize, - SecuritiesError.RequiredFieldIsEmpty, true), - FieldRequiredRule.instance("minStep", - CurrencyPairSecurityUpdateRequest::getMinStep, - SecuritiesError.RequiredFieldIsEmpty, true), +// FieldRequiredRule.instance("lotSize", +// CurrencyPairSecurityUpdateRequest::getLotSize, +// SecuritiesError.RequiredFieldIsEmpty, true), +// FieldRequiredRule.instance("minStep", +// CurrencyPairSecurityUpdateRequest::getMinStep, +// SecuritiesError.RequiredFieldIsEmpty, true), FieldRequiredRule.instance("baseUnitSize", CurrencyPairSecurityUpdateRequest::getBaseUnitSize, SecuritiesError.RequiredFieldIsEmpty, true),