Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
ialbert 2026-04-24 14:43:21 +03:00
commit a6e6f1e5c8
28 changed files with 136 additions and 166 deletions

View file

@ -27,7 +27,7 @@ public class RatesNewAction implements IAction<RatesNewRequest> {
private Long currencyId; private Long currencyId;
@ApiModelProperty(value = "Статус.", example = "1234") @ApiModelProperty(value = "Статус.", example = "1234")
@JsonProperty @JsonProperty
private String status; private String workflowStatus;
@Override @Override
public RatesNewRequest toRequest() { public RatesNewRequest toRequest() {
@ -35,7 +35,7 @@ public class RatesNewAction implements IAction<RatesNewRequest> {
request.setValue(this.value); request.setValue(this.value);
request.setValueDate(this.valueDate); request.setValueDate(this.valueDate);
request.setCurrencyId(this.currencyId); request.setCurrencyId(this.currencyId);
request.setStatus(this.status); request.setWorkflowStatus(this.workflowStatus);
return request; return request;
} }
@ -69,11 +69,11 @@ public class RatesNewAction implements IAction<RatesNewRequest> {
this.currencyId = currencyPairId; this.currencyId = currencyPairId;
} }
public String getStatus() { public String getWorkflowStatus() {
return status; return workflowStatus;
} }
public void setStatus(String status) { public void setWorkflowStatus(String workflowStatus) {
this.status = status; this.workflowStatus = workflowStatus;
} }
} }

View file

@ -17,14 +17,14 @@ public class RatesUpdateAction implements IAction<RatesUpdateRequest> {
private BigDecimal value; private BigDecimal value;
@ApiModelProperty(value = "Статус.", example = "1234") @ApiModelProperty(value = "Статус.", example = "1234")
@JsonProperty @JsonProperty
private String status; private String workflowStatus;
@Override @Override
public RatesUpdateRequest toRequest() { public RatesUpdateRequest toRequest() {
RatesUpdateRequest request = new RatesUpdateRequest(); RatesUpdateRequest request = new RatesUpdateRequest();
request.setId(this.id); request.setId(this.id);
request.setValue(this.value); request.setValue(this.value);
request.setStatus(this.status); request.setWorkflowStatus(this.workflowStatus);
return request; return request;
} }
@ -50,11 +50,11 @@ public class RatesUpdateAction implements IAction<RatesUpdateRequest> {
this.value = value; this.value = value;
} }
public String getStatus() { public String getWorkflowStatus() {
return status; return workflowStatus;
} }
public void setStatus(String status) { public void setWorkflowStatus(String workflowStatus) {
this.status = status; this.workflowStatus = workflowStatus;
} }
} }

View file

@ -23,7 +23,7 @@ public class RiskParameterNewAction implements IAction<RiskParameterNewRequest>
private Long currencyPairId; private Long currencyPairId;
@ApiModelProperty(value = "Статус.", example = "1234") @ApiModelProperty(value = "Статус.", example = "1234")
@JsonProperty @JsonProperty
private String status; private String workflowStatus;
@Override @Override
public RiskParameterNewRequest toRequest() { public RiskParameterNewRequest toRequest() {
@ -32,7 +32,7 @@ public class RiskParameterNewAction implements IAction<RiskParameterNewRequest>
request.setQuoteValue(this.quoteValue); request.setQuoteValue(this.quoteValue);
request.setSettlementType(this.settlementType); request.setSettlementType(this.settlementType);
request.setCurrencyPairId(this.currencyPairId); request.setCurrencyPairId(this.currencyPairId);
request.setStatus(this.status); request.setWorkflowStatus(this.workflowStatus);
return request; return request;
} }
@ -66,11 +66,11 @@ public class RiskParameterNewAction implements IAction<RiskParameterNewRequest>
this.currencyPairId = currencyPairId; this.currencyPairId = currencyPairId;
} }
public String getStatus() { public String getWorkflowStatus() {
return status; return workflowStatus;
} }
public void setStatus(String status) { public void setWorkflowStatus(String workflowStatus) {
this.status = status; this.workflowStatus = workflowStatus;
} }
} }

View file

@ -20,7 +20,7 @@ public class RiskParameterUpdateAction implements IAction<RiskParameterUpdateReq
private BigDecimal quoteValue; private BigDecimal quoteValue;
@ApiModelProperty(value = "Статус.", example = "1234") @ApiModelProperty(value = "Статус.", example = "1234")
@JsonProperty @JsonProperty
private String status; private String workflowStatus;
@Override @Override
public RiskParameterUpdateRequest toRequest() { public RiskParameterUpdateRequest toRequest() {
@ -28,7 +28,7 @@ public class RiskParameterUpdateAction implements IAction<RiskParameterUpdateReq
request.setId(this.id); request.setId(this.id);
request.setValue(this.value); request.setValue(this.value);
request.setQuoteValue(this.quoteValue); request.setQuoteValue(this.quoteValue);
request.setStatus(this.status); request.setWorkflowStatus(this.workflowStatus);
return request; return request;
} }
@ -54,11 +54,11 @@ public class RiskParameterUpdateAction implements IAction<RiskParameterUpdateReq
this.value = value; this.value = value;
} }
public String getStatus() { public String getWorkflowStatus() {
return status; return workflowStatus;
} }
public void setStatus(String status) { public void setWorkflowStatus(String workflowStatus) {
this.status = status; this.workflowStatus = workflowStatus;
} }
} }

View file

@ -15,12 +15,6 @@ public class SCrossRateUpdateAction implements IAction<SCrossRateUpdateRequest>
@JsonProperty @JsonProperty
private Long id; private Long id;
@JsonProperty @JsonProperty
@JsonSerialize(using = LocalDateSerializer.class)
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate date;
@JsonProperty
private String currency;
@JsonProperty
private BigDecimal unitRate; private BigDecimal unitRate;
@JsonProperty @JsonProperty
private BigDecimal faceValue; private BigDecimal faceValue;
@ -31,8 +25,6 @@ public class SCrossRateUpdateAction implements IAction<SCrossRateUpdateRequest>
public SCrossRateUpdateRequest toRequest() { public SCrossRateUpdateRequest toRequest() {
SCrossRateUpdateRequest sCrossRateUpdateRequest = new SCrossRateUpdateRequest(); SCrossRateUpdateRequest sCrossRateUpdateRequest = new SCrossRateUpdateRequest();
sCrossRateUpdateRequest.setId(id); sCrossRateUpdateRequest.setId(id);
sCrossRateUpdateRequest.setDate(date);
sCrossRateUpdateRequest.setCurrency(currency);
sCrossRateUpdateRequest.setUnitRate(unitRate); sCrossRateUpdateRequest.setUnitRate(unitRate);
sCrossRateUpdateRequest.setFaceValue(faceValue); sCrossRateUpdateRequest.setFaceValue(faceValue);
sCrossRateUpdateRequest.setRate(rate); sCrossRateUpdateRequest.setRate(rate);

View file

@ -1,6 +1,6 @@
{ {
"version": "3.23.295.157", "version": "3.23.295.158",
"enums": { "enums": {
@ -10906,7 +10906,7 @@
"name": "Добавление центрального курса", "name": "Добавление центрального курса",
"class": "ru.spcex.clearing.platform.messaging.domain.cud.securitites.SCrossRateNewRequest", "class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.SCrossRateNewAction",
"fields": [ "fields": [
{"code": "date", {"code": "date",
@ -10935,20 +10935,12 @@
"name": "Изменение центрального курса", "name": "Изменение центрального курса",
"class": "ru.spcex.clearing.platform.messaging.domain.cud.securitites.SCrossRateUpdateRequest", "class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.SCrossRateUpdateAction",
"fields": [ "fields": [
{"code": "id", {"code": "id",
"type": 1,"name": "Идентификатор записи","shortname": "ID","link": "sCrossRate","linkCode": "id","required": true "type": 1,"name": "Идентификатор записи","shortname": "ID","link": "sCrossRate","linkCode": "id","required": true
} }
,
{"code": "date",
"name": "Дата торгов","shortname": "Дата","type": 6,"required": true
}
,
{"code": "currency",
"name": "Наименование валюты","shortname": "Валюта","type": 2,"length": 50,"link": "currencyCode","linkCode": "code","required": true
}
, ,
{"code": "faceValue", {"code": "faceValue",
"name": "Единица базовой валюты","shortname": "Единица базовой валюты","type": 10 "name": "Единица базовой валюты","shortname": "Единица базовой валюты","type": 10
@ -11036,7 +11028,7 @@
"name": "Добавление параметров риска", "name": "Добавление параметров риска",
"confirmation": "value,quoteValue,settlementType,currencyPairId,status", "confirmation": "value,quoteValue,settlementType,currencyPairId,workflowStatus",
"class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterNewAction", "class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterNewAction",
@ -11057,7 +11049,7 @@
"name": "Ставка сопряженной валюты","shortname": "Ставка сопряженной валюты","type": 10 "name": "Ставка сопряженной валюты","shortname": "Ставка сопряженной валюты","type": 10
} }
, ,
{"code": "status", {"code": "workflowStatus",
"name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus"
} }
] ]
@ -11067,7 +11059,7 @@
"name": "Изменение параметров риска", "name": "Изменение параметров риска",
"confirmation": "value,quoteValue,status", "confirmation": "value,quoteValue,workflowStatus",
"class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterUpdateAction", "class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterUpdateAction",
@ -11084,7 +11076,7 @@
"name": "Ставка сопряженной валюты","shortname": "Ставка сопряженной валюты","type": 10 "name": "Ставка сопряженной валюты","shortname": "Ставка сопряженной валюты","type": 10
} }
, ,
{"code": "status", {"code": "workflowStatus",
"name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus"
} }
] ]
@ -11132,7 +11124,7 @@
"name": "Добавление расчетного курса", "name": "Добавление расчетного курса",
"confirmation": "value,valueDate,currencyId,status", "confirmation": "value,valueDate,currencyId,workflowStatus",
"class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesNewAction", "class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesNewAction",
@ -11149,7 +11141,7 @@
"name": "Расчетный курс","shortname": "Расчетный курс","type": 10 "name": "Расчетный курс","shortname": "Расчетный курс","type": 10
} }
, ,
{"code": "status", {"code": "workflowStatus",
"name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus"
} }
] ]
@ -11159,7 +11151,7 @@
"name": "Изменение расчетного курса", "name": "Изменение расчетного курса",
"confirmation": "value,status", "confirmation": "value,workflowStatus",
"class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesUpdateAction", "class": "ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesUpdateAction",
@ -11172,7 +11164,7 @@
"name": "Расчетный курс","shortname": "Расчетный курс","type": 10 "name": "Расчетный курс","shortname": "Расчетный курс","type": 10
} }
, ,
{"code": "status", {"code": "workflowStatus",
"name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus" "name": "Статус","shortname": "Статус","type": 2,"length": 4,"link": "workflowStatus"
} }
] ]

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!--?xml-stylesheet type="text/xsl" href="\..\corp-reports\src\data\meta\meta.server.xslt"?--> <!--?xml-stylesheet type="text/xsl" href="\..\corp-reports\src\data\meta\meta.server.xslt"?-->
<meta version="3.23.295.157"> <meta version="3.23.295.158">
<!-- _xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _xsi:noNamespaceSchemaLocation="file:///E:/d/projects/meta/from/meta.xsd" --> <!-- _xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _xsi:noNamespaceSchemaLocation="file:///E:/d/projects/meta/from/meta.xsd" -->
<!--Здесь словари--> <!--Здесь словари-->
<enums> <enums>
@ -2526,17 +2526,15 @@
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/> <createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/> <updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
<actions> <actions>
<post name="Добавление центрального курса" class="ru.spcex.clearing.platform.messaging.domain.cud.securitites.SCrossRateNewRequest"> <post name="Добавление центрального курса" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.SCrossRateNewAction">
<date name="Дата торгов" shortname="Дата" type="6" required="true"/> <date name="Дата торгов" shortname="Дата" type="6" required="true"/>
<currency name="Наименование валюты" shortname="Валюта" type="2" length="50" link="currencyCode" linkCode="code" required="true"/> <currency name="Наименование валюты" shortname="Валюта" type="2" length="50" link="currencyCode" linkCode="code" required="true"/>
<faceValue name="Единица базовой валюты" shortname="Единица базовой валюты" type="10"/> <faceValue name="Единица базовой валюты" shortname="Единица базовой валюты" type="10"/>
<rate type="10" name="Курс валюты с учетом размера лота" shortname="Курс валюты"/> <rate type="10" name="Курс валюты с учетом размера лота" shortname="Курс валюты"/>
<unitRate type="10" name="Курс за единицу иностранной валюты" shortname="Курс за единицу валюты" required="true"/> <unitRate type="10" name="Курс за единицу иностранной валюты" shortname="Курс за единицу валюты" required="true"/>
</post> </post>
<put name="Изменение центрального курса" class="ru.spcex.clearing.platform.messaging.domain.cud.securitites.SCrossRateUpdateRequest"> <put name="Изменение центрального курса" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.SCrossRateUpdateAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="sCrossRate" linkCode="id" required="true"/> <id type="1" name="Идентификатор записи" shortname="ID" link="sCrossRate" linkCode="id" required="true"/>
<date name="Дата торгов" shortname="Дата" type="6" required="true"/>
<currency name="Наименование валюты" shortname="Валюта" type="2" length="50" link="currencyCode" linkCode="code" required="true"/>
<faceValue name="Единица базовой валюты" shortname="Единица базовой валюты" type="10"/> <faceValue name="Единица базовой валюты" shortname="Единица базовой валюты" type="10"/>
<rate type="10" name="Курс валюты с учетом размера лота" shortname="Курс валюты"/> <rate type="10" name="Курс валюты с учетом размера лота" shortname="Курс валюты"/>
<unitRate type="10" name="Курс за единицу базовой валюты" shortname="Курс за единицу валюты" required="true"/> <unitRate type="10" name="Курс за единицу базовой валюты" shortname="Курс за единицу валюты" required="true"/>
@ -2557,18 +2555,18 @@
<quoteValue name="Ставка сопряженной валюты" shortname="Ставка сопряженной валюты" type="10"/> <quoteValue name="Ставка сопряженной валюты" shortname="Ставка сопряженной валюты" type="10"/>
<workflowStatus name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/> <workflowStatus name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/>
<actions> <actions>
<post name="Добавление параметров риска" confirmation="value,quoteValue,settlementType,currencyPairId,status" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterNewAction"> <post name="Добавление параметров риска" confirmation="value,quoteValue,settlementType,currencyPairId,workflowStatus" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterNewAction">
<currencyPairId name="Идентификатор валютной пары" shortname="Валютная пара" type="1" link="currencyPair" linkCode="code" linkKeyCode="id"/> <currencyPairId name="Идентификатор валютной пары" shortname="Валютная пара" type="1" link="currencyPair" linkCode="code" linkKeyCode="id"/>
<settlementType name="Код расчёта" shortname="Код расчёта" type="12" link="currencySettlementType" linkCode="code"/> <settlementType name="Код расчёта" shortname="Код расчёта" type="12" link="currencySettlementType" linkCode="code"/>
<value name="Ставка" shortname="Ставка" type="10"/> <value name="Ставка" shortname="Ставка" type="10"/>
<quoteValue name="Ставка сопряженной валюты" shortname="Ставка сопряженной валюты" type="10"/> <quoteValue name="Ставка сопряженной валюты" shortname="Ставка сопряженной валюты" type="10"/>
<status name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/> <workflowStatus name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/>
</post> </post>
<put name="Изменение параметров риска" confirmation="value,quoteValue,status" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterUpdateAction"> <put name="Изменение параметров риска" confirmation="value,quoteValue,workflowStatus" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.RiskParameterUpdateAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="riskParameter" linkCode="id" required="true"/> <id type="1" name="Идентификатор записи" shortname="ID" link="riskParameter" linkCode="id" required="true"/>
<value name="Ставка" shortname="Ставка" type="10"/> <value name="Ставка" shortname="Ставка" type="10"/>
<quoteValue name="Ставка сопряженной валюты" shortname="Ставка сопряженной валюты" type="10"/> <quoteValue name="Ставка сопряженной валюты" shortname="Ставка сопряженной валюты" type="10"/>
<status name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/> <workflowStatus name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/>
</put> </put>
</actions> </actions>
</riskParameter> </riskParameter>
@ -2580,16 +2578,16 @@
<value name="Расчетный курс" shortname="Расчетный курс" type="10"/> <value name="Расчетный курс" shortname="Расчетный курс" type="10"/>
<workflowStatus name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/> <workflowStatus name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/>
<actions> <actions>
<post name="Добавление расчетного курса" confirmation="value,valueDate,currencyId,status" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesNewAction"> <post name="Добавление расчетного курса" confirmation="value,valueDate,currencyId,workflowStatus" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesNewAction">
<currencyId name="Идентификатор валюты" shortname="Валюта" type="1" link="currencyCode" linkCode="code" linkKeyCode="id"/> <currencyId name="Идентификатор валюты" shortname="Валюта" type="1" link="currencyCode" linkCode="code" linkKeyCode="id"/>
<valueDate name="Дата, на которую расчетный курс" shortname="Дата" type="6"/> <valueDate name="Дата, на которую расчетный курс" shortname="Дата" type="6"/>
<value name="Расчетный курс" shortname="Расчетный курс" type="10"/> <value name="Расчетный курс" shortname="Расчетный курс" type="10"/>
<status name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/> <workflowStatus name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/>
</post> </post>
<put name="Изменение расчетного курса" confirmation="value,status" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesUpdateAction"> <put name="Изменение расчетного курса" confirmation="value,workflowStatus" class="ru.spcex.clearing.backendapi.controller.request.cud.securities.RatesUpdateAction">
<id type="1" name="Идентификатор записи" shortname="ID" link="rates" linkCode="id" required="true"/> <id type="1" name="Идентификатор записи" shortname="ID" link="rates" linkCode="id" required="true"/>
<value name="Расчетный курс" shortname="Расчетный курс" type="10"/> <value name="Расчетный курс" shortname="Расчетный курс" type="10"/>
<status name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/> <workflowStatus name="Статус" shortname="Статус" type="2" length="4" link="workflowStatus"/>
</put> </put>
</actions> </actions>
</rates> </rates>

View file

@ -832,6 +832,8 @@ INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (13, 'RSLT', 'Сес
INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (14, 'PREC', 'Расчет дефолтов') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (14, 'PREC', 'Расчет дефолтов') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO SESSION_TYPE_DICTIONARY(ID, CODE, NAME) values (15, 'PRPC', 'Расчет дефолтов для ПЛ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (1, 'BUY', 'Привлечь') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (1, 'BUY', 'Привлечь') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (2, 'SELL', 'Разместить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO MONEY_FLOW_SIDE_DICTIONARY(ID, CODE, NAME) values (2, 'SELL', 'Разместить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;

View file

@ -15,9 +15,6 @@ public class OvernightTypeChanged implements IValidationRule<ImdgValidationConte
public Optional<EnumMessage> validate(ImdgValidationContext<OrderCurrencyUpdateRequest> ctx) { public Optional<EnumMessage> validate(ImdgValidationContext<OrderCurrencyUpdateRequest> ctx) {
OrderCurrencyUpdateRequest validatedObject = ctx.getValidatedObject(); OrderCurrencyUpdateRequest validatedObject = ctx.getValidatedObject();
OrderCurrency oc = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency); OrderCurrency oc = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency);
if (oc.getOvernightType() == null) {
return of(DefaultManagementErrors.GeneralError); //не понятно че с ним делать...
}
if (oc.getOvernightType().equalsIgnoreCase(validatedObject.getOvernightType())) { if (oc.getOvernightType().equalsIgnoreCase(validatedObject.getOvernightType())) {
return of(DefaultManagementErrors.GeneralError); //todo нормальную ошибку return of(DefaultManagementErrors.GeneralError); //todo нормальную ошибку
} }

View file

@ -4,14 +4,14 @@ import ru.spcex.platform.utils.enumeration.IErrorEnumId;
public enum DefaultManagementErrors implements IErrorEnumId { public enum DefaultManagementErrors implements IErrorEnumId {
//todo уточнить порядковый номер ошибки модуля GeneralError(11000L),
GeneralError(3000L), // Общая ошибка модуля UserVerifyDenial(11001L),
UserVerifyDenial(3001L), // 'Нет прав на проведение данной операции RequiredFieldIsEmpty(11002L),
RequiredFieldIsEmpty(3002L), DictionaryNotFound(11003L),
DictionaryNotFound(3003L), RecordNotFound(11006L),
RecordNotFound(3006L),
RecordAlreadyPresent(11002L), RecordAlreadyPresent(11002L),
OnlyBalancingOrdersAllowed(11003L), OnlyBalancingOrdersAllowed(11003L),
OnlyBalancingOrdersAllowedForChanging(11004L),
; ;
private final Long id; private final Long id;

View file

@ -140,13 +140,15 @@ public class TaskListener extends QueueConsumer implements InitializingBean {
.filter(Objects::nonNull) .filter(Objects::nonNull)
.toList(); .toList();
String comment = "После проведения первой части сделок переноса будет получен отрицательный баланс по RUB:\n" if (!messages.isEmpty()) {
+ String.join("\n", messages); String comment = "После проведения первой части сделок переноса будет получен отрицательный баланс по RUB:\n"
NotificationNewRequest newReq = new NotificationNewRequest(); + String.join("\n", messages);
newReq.setObjectType(ObjectType.rgst.getKey()); NotificationNewRequest newReq = new NotificationNewRequest();
newReq.setPriority(Priority.HIGH.getKey()); newReq.setObjectType(ObjectType.rgst.getKey());
newReq.setComment(comment); newReq.setPriority(Priority.HIGH.getKey());
kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, newReq); newReq.setComment(comment);
kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, newReq);
}
log.info("SDOR export and send command to fix, request={}", req); log.info("SDOR export and send command to fix, request={}", req);
try { try {

View file

@ -3,8 +3,9 @@ package ru.spcex.clearing.dflt.management.model;
import ru.clearing.classes.statics.data.misc.Market; import ru.clearing.classes.statics.data.misc.Market;
import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.security.RiskParameter; import ru.clearing.classes.statics.data.security.RiskParameter;
import ru.spcex.platform.enumeration.OvernightType;
public class SwapContext { public class OrderCurrencyContext {
private final Registry registry; private final Registry registry;
private final String orderCategory; private final String orderCategory;
private final Market market; private final Market market;
@ -12,8 +13,9 @@ public class SwapContext {
private final CounterpartyInfo categoryP; private final CounterpartyInfo categoryP;
private final CounterpartyInfo clcc; private final CounterpartyInfo clcc;
private final CounterpartyInfo rgcm; private final CounterpartyInfo rgcm;
private final OvernightType overnightType;
private SwapContext(Builder builder) { private OrderCurrencyContext(Builder builder) {
this.registry = builder.registry; this.registry = builder.registry;
this.orderCategory = builder.orderCategory; this.orderCategory = builder.orderCategory;
this.market = builder.market; this.market = builder.market;
@ -21,6 +23,7 @@ public class SwapContext {
this.categoryP = builder.categoryP; this.categoryP = builder.categoryP;
this.clcc = builder.clcc; this.clcc = builder.clcc;
this.rgcm = builder.rgcm; this.rgcm = builder.rgcm;
this.overnightType = builder.overnightType;
} }
public Registry getRegistry() { public Registry getRegistry() {
@ -51,6 +54,10 @@ public class SwapContext {
return rgcm; return rgcm;
} }
public OvernightType getOvernightType() {
return overnightType;
}
public static Builder builder() { public static Builder builder() {
return new Builder(); return new Builder();
} }
@ -63,6 +70,7 @@ public class SwapContext {
private CounterpartyInfo categoryP; private CounterpartyInfo categoryP;
private CounterpartyInfo clcc; private CounterpartyInfo clcc;
private CounterpartyInfo rgcm; private CounterpartyInfo rgcm;
private OvernightType overnightType;
public Builder registry(Registry registry) { public Builder registry(Registry registry) {
this.registry = registry; this.registry = registry;
@ -99,8 +107,13 @@ public class SwapContext {
return this; return this;
} }
public SwapContext build() { public Builder overnightType(OvernightType overnightType) {
return new SwapContext(this); this.overnightType = overnightType;
return this;
}
public OrderCurrencyContext build() {
return new OrderCurrencyContext(this);
} }
} }
} }

View file

@ -12,7 +12,7 @@ import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.security.Rates; import ru.clearing.classes.statics.data.security.Rates;
import ru.clearing.platform.dictionary.CurrencyPairDictionary; import ru.clearing.platform.dictionary.CurrencyPairDictionary;
import ru.spcex.clearing.dflt.management.model.CalculationResult; import ru.spcex.clearing.dflt.management.model.CalculationResult;
import ru.spcex.clearing.dflt.management.model.SwapContext; import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext;
import ru.spcex.platform.enumeration.SettleCode; import ru.spcex.platform.enumeration.SettleCode;
@Service @Service
@ -29,7 +29,7 @@ public class OrderCalculationService {
} }
public void calcAndEnrichSwap(OrderCurrency order, public void calcAndEnrichSwap(OrderCurrency order,
SwapContext context) { OrderCurrencyContext context) {
Registry registry = context.getRegistry(); Registry registry = context.getRegistry();
Listing listing = imdgQueryService.findListing(registry, context.getMarket().getCode(), order.getSettleCode()); Listing listing = imdgQueryService.findListing(registry, context.getMarket().getCode(), order.getSettleCode());
@ -49,7 +49,7 @@ public class OrderCalculationService {
} }
public void calcAndEnrichSpot(OrderCurrency order, public void calcAndEnrichSpot(OrderCurrency order,
SwapContext context) { OrderCurrencyContext context) {
Registry registry = context.getRegistry(); Registry registry = context.getRegistry();
Listing listing = imdgQueryService.findListing(registry, context.getMarket().getCode(), order.getSettleCode()); Listing listing = imdgQueryService.findListing(registry, context.getMarket().getCode(), order.getSettleCode());

View file

@ -6,9 +6,8 @@ import ru.clearing.classes.statics.data.misc.Listing;
import ru.clearing.classes.statics.data.misc.Market; import ru.clearing.classes.statics.data.misc.Market;
import ru.clearing.classes.statics.data.misc.OrderCurrency; import ru.clearing.classes.statics.data.misc.OrderCurrency;
import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.security.RiskParameter;
import ru.spcex.clearing.dflt.management.model.CounterpartyInfo; import ru.spcex.clearing.dflt.management.model.CounterpartyInfo;
import ru.spcex.clearing.dflt.management.model.SwapContext; import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext;
import ru.spcex.platform.enumeration.SettleCode; import ru.spcex.platform.enumeration.SettleCode;
import static ru.spcex.platform.enumeration.SettleCode.T0; import static ru.spcex.platform.enumeration.SettleCode.T0;
import ru.spcex.platform.enumeration.Side; import ru.spcex.platform.enumeration.Side;
@ -21,7 +20,7 @@ public class OrderTemplateBuilder {
this.imdgQueryService = imdgQueryService; this.imdgQueryService = imdgQueryService;
} }
public OrderCurrency buildPrimaryTransfer(SwapContext context, SettleCode settleCode) { public OrderCurrency buildPrimaryTransfer(OrderCurrencyContext context, SettleCode settleCode) {
OrderCurrency orderCurrency; OrderCurrency orderCurrency;
switch (context.getOrderCategory()) { switch (context.getOrderCategory()) {
case "PL" -> orderCurrency = buildPrimaryTransferPl(context); case "PL" -> orderCurrency = buildPrimaryTransferPl(context);
@ -33,7 +32,7 @@ public class OrderTemplateBuilder {
return orderCurrency; return orderCurrency;
} }
public OrderCurrency buildCounterTransfer(SwapContext context, SettleCode settleCode) { public OrderCurrency buildCounterTransfer(OrderCurrencyContext context, SettleCode settleCode) {
OrderCurrency orderCurrency; OrderCurrency orderCurrency;
switch (context.getOrderCategory()) { switch (context.getOrderCategory()) {
case "PL" -> orderCurrency = buildCounterTransferPl(context); case "PL" -> orderCurrency = buildCounterTransferPl(context);
@ -46,7 +45,7 @@ public class OrderTemplateBuilder {
return orderCurrency; return orderCurrency;
} }
public OrderCurrency buildPrimaryBalancing(SwapContext context, SettleCode settleCode) { public OrderCurrency buildPrimaryBalancing(OrderCurrencyContext context, SettleCode settleCode) {
OrderCurrency orderCurrency; OrderCurrency orderCurrency;
switch (context.getOrderCategory()) { switch (context.getOrderCategory()) {
case "PL" -> orderCurrency = buildPrimaryBalancingPl(context); case "PL" -> orderCurrency = buildPrimaryBalancingPl(context);
@ -59,7 +58,7 @@ public class OrderTemplateBuilder {
return orderCurrency; return orderCurrency;
} }
public OrderCurrency buildCounterBalancing(SwapContext context, SettleCode settleCode) { public OrderCurrency buildCounterBalancing(OrderCurrencyContext context, SettleCode settleCode) {
OrderCurrency orderCurrency; OrderCurrency orderCurrency;
switch (context.getOrderCategory()) { switch (context.getOrderCategory()) {
case "PL" -> orderCurrency = buildCounterBalancingPl(context); case "PL" -> orderCurrency = buildCounterBalancingPl(context);
@ -72,7 +71,7 @@ public class OrderTemplateBuilder {
return orderCurrency; return orderCurrency;
} }
private OrderCurrency buildPrimaryTransferUk(SwapContext context) { private OrderCurrency buildPrimaryTransferUk(OrderCurrencyContext context) {
CounterpartyInfo clcc = context.getClcc(); CounterpartyInfo clcc = context.getClcc();
Registry registry = context.getRegistry(); Registry registry = context.getRegistry();
@ -87,7 +86,7 @@ public class OrderTemplateBuilder {
return order; return order;
} }
private OrderCurrency buildCounterTransferUk(SwapContext context) { private OrderCurrency buildCounterTransferUk(OrderCurrencyContext context) {
CounterpartyInfo clcc = context.getClcc(); CounterpartyInfo clcc = context.getClcc();
Registry registry = context.getRegistry(); Registry registry = context.getRegistry();
@ -102,7 +101,7 @@ public class OrderTemplateBuilder {
return order; return order;
} }
private OrderCurrency buildPrimaryBalancingUk(SwapContext context) { private OrderCurrency buildPrimaryBalancingUk(OrderCurrencyContext context) {
CounterpartyInfo categoryP = context.getCategoryP(); CounterpartyInfo categoryP = context.getCategoryP();
CounterpartyInfo clcc = context.getClcc(); CounterpartyInfo clcc = context.getClcc();
@ -117,7 +116,7 @@ public class OrderTemplateBuilder {
return order; return order;
} }
private OrderCurrency buildCounterBalancingUk(SwapContext context) { private OrderCurrency buildCounterBalancingUk(OrderCurrencyContext context) {
CounterpartyInfo categoryP = context.getCategoryP(); CounterpartyInfo categoryP = context.getCategoryP();
CounterpartyInfo clcc = context.getClcc(); CounterpartyInfo clcc = context.getClcc();
@ -132,7 +131,7 @@ public class OrderTemplateBuilder {
return order; return order;
} }
private OrderCurrency buildPrimaryTransferPl(SwapContext context) { private OrderCurrency buildPrimaryTransferPl(OrderCurrencyContext context) {
CounterpartyInfo clcc = context.getClcc(); CounterpartyInfo clcc = context.getClcc();
Registry registry = context.getRegistry(); Registry registry = context.getRegistry();
@ -147,7 +146,7 @@ public class OrderTemplateBuilder {
return order; return order;
} }
private OrderCurrency buildCounterTransferPl(SwapContext context) { private OrderCurrency buildCounterTransferPl(OrderCurrencyContext context) {
CounterpartyInfo clcc = context.getClcc(); CounterpartyInfo clcc = context.getClcc();
Registry registry = context.getRegistry(); Registry registry = context.getRegistry();
@ -162,7 +161,7 @@ public class OrderTemplateBuilder {
return order; return order;
} }
private OrderCurrency buildPrimaryBalancingPl(SwapContext context) { private OrderCurrency buildPrimaryBalancingPl(OrderCurrencyContext context) {
CounterpartyInfo rgcm = context.getRgcm(); CounterpartyInfo rgcm = context.getRgcm();
CounterpartyInfo clcc = context.getClcc(); CounterpartyInfo clcc = context.getClcc();
@ -177,7 +176,7 @@ public class OrderTemplateBuilder {
return order; return order;
} }
private OrderCurrency buildCounterBalancingPl(SwapContext context) { private OrderCurrency buildCounterBalancingPl(OrderCurrencyContext context) {
CounterpartyInfo clcc = context.getClcc(); CounterpartyInfo clcc = context.getClcc();
CounterpartyInfo rgcm = context.getRgcm(); CounterpartyInfo rgcm = context.getRgcm();
@ -193,16 +192,15 @@ public class OrderTemplateBuilder {
} }
public void enrichOrder(OrderCurrency order, public void enrichOrder(OrderCurrency order,
SwapContext context, OrderCurrencyContext context,
Side side, Side side,
String comment, String comment,
SettleCode settleCode) { SettleCode settleCode) {
Registry registry = context.getRegistry(); Registry registry = context.getRegistry();
Market market = context.getMarket(); Market market = context.getMarket();
RiskParameter riskParameter = context.getRiskParameter();
Listing listing = imdgQueryService.findListing(registry, market.getCode(), settleCode.getKey()); Listing listing = imdgQueryService.findListing(registry, market.getCode(), settleCode.getKey());
order.setOvernightType("SWAP"); order.setOvernightType(context.getOvernightType().getKey());
order.setMarket(market.getCode()); order.setMarket(market.getCode());
order.setListingId(listing.getId()); order.setListingId(listing.getId());
order.setSecuritySymbol(listing.getSymbolCode()); order.setSecuritySymbol(listing.getSymbolCode());

View file

@ -8,9 +8,10 @@ import ru.clearing.classes.statics.data.misc.OrderCurrency;
import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.security.RiskParameter; import ru.clearing.classes.statics.data.security.RiskParameter;
import ru.spcex.clearing.dflt.management.model.CounterpartyInfo; import ru.spcex.clearing.dflt.management.model.CounterpartyInfo;
import ru.spcex.clearing.dflt.management.model.SwapContext; import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.CompanyRole; import ru.spcex.platform.enumeration.CompanyRole;
import ru.spcex.platform.enumeration.OvernightType;
import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.SettleCode; import ru.spcex.platform.enumeration.SettleCode;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
@ -46,7 +47,7 @@ public class SpotOvernightOrderService {
CounterpartyInfo clcc = imdgQueryService.getCompanyByRole(CompanyRole.CLCC); CounterpartyInfo clcc = imdgQueryService.getCompanyByRole(CompanyRole.CLCC);
CounterpartyInfo rgcm = imdgQueryService.getCompanyByRole(CompanyRole.RGCM); CounterpartyInfo rgcm = imdgQueryService.getCompanyByRole(CompanyRole.RGCM);
SwapContext context = SwapContext.builder() OrderCurrencyContext context = OrderCurrencyContext.builder()
.registry(registry) .registry(registry)
.orderCategory(orderCategory) .orderCategory(orderCategory)
.market(market) .market(market)
@ -54,6 +55,7 @@ public class SpotOvernightOrderService {
.categoryP(categoryP) .categoryP(categoryP)
.clcc(clcc) .clcc(clcc)
.rgcm(rgcm) .rgcm(rgcm)
.overnightType(OvernightType.SPOT)
.build(); .build();
OrderCurrency primaryTransferT0 = templateBuilder.buildPrimaryTransfer(context, SettleCode.T0); OrderCurrency primaryTransferT0 = templateBuilder.buildPrimaryTransfer(context, SettleCode.T0);

View file

@ -8,9 +8,10 @@ import ru.clearing.classes.statics.data.misc.OrderCurrency;
import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.security.RiskParameter; import ru.clearing.classes.statics.data.security.RiskParameter;
import ru.spcex.clearing.dflt.management.model.CounterpartyInfo; import ru.spcex.clearing.dflt.management.model.CounterpartyInfo;
import ru.spcex.clearing.dflt.management.model.SwapContext; import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.CompanyRole; import ru.spcex.platform.enumeration.CompanyRole;
import ru.spcex.platform.enumeration.OvernightType;
import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.SettleCode; import ru.spcex.platform.enumeration.SettleCode;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
@ -46,7 +47,7 @@ public class SwapOvernightOrderService {
CounterpartyInfo clcc = imdgQueryService.getCompanyByRole(CompanyRole.CLCC); CounterpartyInfo clcc = imdgQueryService.getCompanyByRole(CompanyRole.CLCC);
CounterpartyInfo rgcm = imdgQueryService.getCompanyByRole(CompanyRole.RGCM); CounterpartyInfo rgcm = imdgQueryService.getCompanyByRole(CompanyRole.RGCM);
SwapContext context = SwapContext.builder() OrderCurrencyContext context = OrderCurrencyContext.builder()
.registry(registry) .registry(registry)
.orderCategory(orderCategory) .orderCategory(orderCategory)
.market(market) .market(market)
@ -54,6 +55,7 @@ public class SwapOvernightOrderService {
.categoryP(categoryP) .categoryP(categoryP)
.clcc(clcc) .clcc(clcc)
.rgcm(rgcm) .rgcm(rgcm)
.overnightType(OvernightType.SWAP)
.build(); .build();
OrderCurrency primaryTransfer = templateBuilder.buildPrimaryTransfer(context, SettleCode.T1); OrderCurrency primaryTransfer = templateBuilder.buildPrimaryTransfer(context, SettleCode.T1);

View file

@ -51,7 +51,7 @@ public class RatesValidationConfig {
IMDGDistributedNames.Map_Rates, IMDGDistributedNames.Map_Rates,
RiskParameter.class, RiskParameter.class,
SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.RequiredFieldIsEmpty,
SecuritiesError.RequiredFieldIsEmpty) SecuritiesError.RecordNotFound)
); );
}; };
} }

View file

@ -50,7 +50,7 @@ public class SCrossRatesValidationConfig {
IMDGDistributedNames.Map_SCrossRate, IMDGDistributedNames.Map_SCrossRate,
SCrossRate.class, SCrossRate.class,
SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.RequiredFieldIsEmpty,
SecuritiesError.RequiredFieldIsEmpty) SecuritiesError.RecordNotFound)
); );
}; };
} }

View file

@ -8,6 +8,7 @@ public enum SecuritiesError implements IErrorEnumId {
RequiredFieldIsEmpty(1002L), RequiredFieldIsEmpty(1002L),
DictionaryNotFound(1003L), DictionaryNotFound(1003L),
WrongFieldValue(1004L), WrongFieldValue(1004L),
RecordNotFound(1006L),
InstrumentAlreadyExists(1010L), InstrumentAlreadyExists(1010L),
InstrumentNotFound(1011L), InstrumentNotFound(1011L),
InstrumentNotActive(1012L), InstrumentNotActive(1012L),

View file

@ -38,7 +38,7 @@ public class RatesFacade implements IClearingFacade {
rates.setCurrency(currencyCodeDictionary.getCode()); rates.setCurrency(currencyCodeDictionary.getCode());
rates.setValue(request.getValue()); rates.setValue(request.getValue());
rates.setValueDate(request.getValueDate()); rates.setValueDate(request.getValueDate());
rates.setWorkflowStatus(request.getStatus()); rates.setWorkflowStatus(request.getWorkflowStatus());
rates.setCreated(Instant.now()); rates.setCreated(Instant.now());
ratesImdg.insert(rates); ratesImdg.insert(rates);
@ -50,7 +50,7 @@ public class RatesFacade implements IClearingFacade {
Rates ratesForUpdate = ratesImdg.getSingleObjectByID(request.getId()); Rates ratesForUpdate = ratesImdg.getSingleObjectByID(request.getId());
ratesForUpdate.setValue(request.getValue()); ratesForUpdate.setValue(request.getValue());
ratesForUpdate.setWorkflowStatus(request.getStatus()); ratesForUpdate.setWorkflowStatus(request.getWorkflowStatus());
ratesForUpdate.setUpdated(Instant.now()); ratesForUpdate.setUpdated(Instant.now());
ratesImdg.update(ratesForUpdate); ratesImdg.update(ratesForUpdate);

View file

@ -42,7 +42,7 @@ public class RiskParameterFacade implements IClearingFacade {
riskParameter.setSettlementType(request.getSettlementType()); riskParameter.setSettlementType(request.getSettlementType());
riskParameter.setValue(request.getValue()); riskParameter.setValue(request.getValue());
riskParameter.setQuoteValue(request.getQuoteValue()); riskParameter.setQuoteValue(request.getQuoteValue());
riskParameter.setWorkflowStatus(request.getStatus()); riskParameter.setWorkflowStatus(request.getWorkflowStatus());
riskParameter.setCreated(Instant.now()); riskParameter.setCreated(Instant.now());
riskParameterImdg.insert(riskParameter); riskParameterImdg.insert(riskParameter);
@ -55,7 +55,7 @@ public class RiskParameterFacade implements IClearingFacade {
riskParameterForUpdate.setValue(request.getValue()); riskParameterForUpdate.setValue(request.getValue());
riskParameterForUpdate.setQuoteValue(request.getQuoteValue()); riskParameterForUpdate.setQuoteValue(request.getQuoteValue());
riskParameterForUpdate.setWorkflowStatus(request.getStatus()); riskParameterForUpdate.setWorkflowStatus(request.getWorkflowStatus());
riskParameterImdg.update(riskParameterForUpdate); riskParameterImdg.update(riskParameterForUpdate);
log.debug("successfully processed, updated risk_parameter id {}", riskParameterForUpdate.getId()); log.debug("successfully processed, updated risk_parameter id {}", riskParameterForUpdate.getId());

View file

@ -38,9 +38,7 @@ public class SCrossRateFacade {
public void update(SCrossRateUpdateRequest req) { public void update(SCrossRateUpdateRequest req) {
SCrossRate sCrossRate = sCrossRateImdg.getSingleObjectByID(req.getId()); SCrossRate sCrossRate = sCrossRateImdg.getSingleObjectByID(req.getId());
if (req.getDate() != null) {
sCrossRate.setDate(req.getDate());
}
sCrossRate.setUnitRate(req.getUnitRate()); sCrossRate.setUnitRate(req.getUnitRate());
sCrossRate.setFaceValue(req.getFaceValue()); sCrossRate.setFaceValue(req.getFaceValue());
sCrossRate.setRate(req.getRate()); sCrossRate.setRate(req.getRate());

View file

@ -145,7 +145,7 @@ public class RatesMessageListener extends QueueConsumer implements InitializingB
newRequest.setCurrencyId(currencyCodeDictionary.getId()); newRequest.setCurrencyId(currencyCodeDictionary.getId());
newRequest.setValueDate(sRateElem.getDate()); newRequest.setValueDate(sRateElem.getDate());
newRequest.setValue(sRateElem.getPrice()); newRequest.setValue(sRateElem.getPrice());
newRequest.setStatus(WorkflowStatus.Active.getKey()); newRequest.setWorkflowStatus(WorkflowStatus.Active.getKey());
return Optional.of(newRequest); return Optional.of(newRequest);
} }
@ -157,7 +157,7 @@ public class RatesMessageListener extends QueueConsumer implements InitializingB
return Optional.empty(); return Optional.empty();
} }
updateRequest.setValue(sRateElem.getPrice()); updateRequest.setValue(sRateElem.getPrice());
updateRequest.setStatus(WorkflowStatus.Active.getKey()); updateRequest.setWorkflowStatus(WorkflowStatus.Active.getKey());
return Optional.of(updateRequest); return Optional.of(updateRequest);
} }

View file

@ -1,23 +1,12 @@
package ru.spcex.clearing.platform.messaging.domain.cud.securitites; package ru.spcex.clearing.platform.messaging.domain.cud.securitites;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
public class SCrossRateUpdateRequest { public class SCrossRateUpdateRequest {
@JsonProperty @JsonProperty
private Long id; private Long id;
@JsonProperty @JsonProperty
@JsonSerialize(using = LocalDateSerializer.class)
@JsonDeserialize(using = LocalDateDeserializer.class)
private LocalDate date;
@JsonProperty
private String currency;
@JsonProperty
private BigDecimal unitRate; private BigDecimal unitRate;
@JsonProperty @JsonProperty
private BigDecimal faceValue; private BigDecimal faceValue;
@ -54,20 +43,4 @@ public class SCrossRateUpdateRequest {
public void setRate(BigDecimal rate) { public void setRate(BigDecimal rate) {
this.rate = rate; this.rate = rate;
} }
public LocalDate getDate() {
return date;
}
public void setDate(LocalDate date) {
this.date = date;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
} }

View file

@ -19,7 +19,7 @@ public class RatesNewRequest {
@JsonProperty @JsonProperty
private Long currencyId; private Long currencyId;
@JsonProperty @JsonProperty
private String status; private String workflowStatus;
public BigDecimal getValue() { public BigDecimal getValue() {
return value; return value;
@ -45,11 +45,11 @@ public class RatesNewRequest {
this.currencyId = currencyId; this.currencyId = currencyId;
} }
public String getStatus() { public String getWorkflowStatus() {
return status; return workflowStatus;
} }
public void setStatus(String status) { public void setWorkflowStatus(String workflowStatus) {
this.status = status; this.workflowStatus = workflowStatus;
} }
} }

View file

@ -10,7 +10,7 @@ public class RatesUpdateRequest {
@JsonProperty @JsonProperty
private BigDecimal value; private BigDecimal value;
@JsonProperty @JsonProperty
private String status; private String workflowStatus;
public Long getId() { public Long getId() {
return id; return id;
@ -28,11 +28,11 @@ public class RatesUpdateRequest {
this.value = value; this.value = value;
} }
public String getStatus() { public String getWorkflowStatus() {
return status; return workflowStatus;
} }
public void setStatus(String status) { public void setWorkflowStatus(String workflowStatus) {
this.status = status; this.workflowStatus = workflowStatus;
} }
} }

View file

@ -14,7 +14,7 @@ public class RiskParameterNewRequest {
@JsonProperty @JsonProperty
private Long currencyPairId; private Long currencyPairId;
@JsonProperty @JsonProperty
private String status; private String workflowStatus;
public BigDecimal getValue() { public BigDecimal getValue() {
return value; return value;
@ -48,11 +48,11 @@ public class RiskParameterNewRequest {
this.currencyPairId = currencyPairId; this.currencyPairId = currencyPairId;
} }
public String getStatus() { public String getWorkflowStatus() {
return status; return workflowStatus;
} }
public void setStatus(String status) { public void setWorkflowStatus(String status) {
this.status = status; this.workflowStatus = status;
} }
} }

View file

@ -12,7 +12,7 @@ public class RiskParameterUpdateRequest {
@JsonProperty @JsonProperty
private BigDecimal quoteValue; private BigDecimal quoteValue;
@JsonProperty @JsonProperty
private String status; private String workflowStatus;
public Long getId() { public Long getId() {
return id; return id;
@ -38,11 +38,11 @@ public class RiskParameterUpdateRequest {
this.quoteValue = quoteValue; this.quoteValue = quoteValue;
} }
public String getStatus() { public String getWorkflowStatus() {
return status; return workflowStatus;
} }
public void setStatus(String status) { public void setWorkflowStatus(String status) {
this.status = status; this.workflowStatus = status;
} }
} }