From 30485d7104c6823a06563b65c9d0430e0cbe832a Mon Sep 17 00:00:00 2001 From: psemenkov Date: Tue, 4 Apr 2023 15:51:46 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-258=20?= =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B8=D0=B5=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statics/data/security/Security.java | 3 +- .../imdg/validation/rule/PresentById.java | 3 + .../platform/messaging/domain/Consts.java | 8 + .../FixedIncomeSecurityNewRequest.java | 178 ++++++++++++++++ .../FixedIncomeSecurityUpdateRequest.java | 190 ++++++++++++++++++ 5 files changed, 381 insertions(+), 1 deletion(-) create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/FixedIncomeSecurityNewRequest.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/FixedIncomeSecurityUpdateRequest.java diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Security.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Security.java index 038e39b40..b962fd9a8 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Security.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Security.java @@ -2,6 +2,7 @@ package ru.clearing.classes.statics.data.security; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.interfaces.WithInstrumentType; import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus; /** @@ -9,7 +10,7 @@ import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus; *

* DB table: SECURITY **/ -public class Security extends BusinessObject implements WithWorkflowStatus { +public class Security extends BusinessObject implements WithWorkflowStatus, WithInstrumentType { private static final long serialVersionUID = ConstSerializable.serialVersionUID; private String instrumentType; diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/PresentById.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/PresentById.java index a69cab7b9..824f0acea 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/PresentById.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/PresentById.java @@ -29,6 +29,9 @@ public class PresentById implements IValidationRule validate(ImdgValidationContext context) { WithId actionById = context.getValidatedObject(); + if (actionById.getId() == null) { + return of(errorEnum, actionById.getId()); + } Imdg targetMap = context.obtainMap(mapName, SpcexObjectBase.class); SpcexObjectBase obj = targetMap.getSingleObjectByID(actionById.getId()); if (obj == null) { diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index c4479c5a9..7e768cc99 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -5,6 +5,14 @@ public interface Consts { String DESTINATION_MONEY_MARKET_SECURITY_UPDATE = "money-market-security-update"; String DESTINATION_MONEY_MARKET_SECURITY_DELETE = "money-market-security-delete"; + String DESTINATION_EQUITY_SECURITY_NEW = "equity-security-new"; + String DESTINATION_EQUITY_SECURITY_UPDATE = "equity-security-update"; + String DESTINATION_EQUITY_SECURITY_DELETE = "equity-security-delete"; + + String DESTINATION_FIXED_INCOME_SECURITY_NEW = "fixed-income-security-new"; + String DESTINATION_FIXED_INCOME_SECURITY_UPDATE = "fixed-income-security-update"; + String DESTINATION_FIXED_INCOME_SECURITY_DELETE = "fixed-income-security-delete"; + String DESTINATION_KEY_RATE_NEW = "key-rate-new"; String DESTINATION_KEY_RATE_UPDATE = "key-rate-update"; String DESTINATION_KEY_RATE_DELETE = "key-rate-delete"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/FixedIncomeSecurityNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/FixedIncomeSecurityNewRequest.java new file mode 100644 index 000000000..c39fcb494 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/FixedIncomeSecurityNewRequest.java @@ -0,0 +1,178 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.securitites; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; +import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; +import ru.spcex.platform.classes.base.interfaces.WithInstrumentType; +import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol; + +import java.time.LocalDate; + +public class FixedIncomeSecurityNewRequest implements WithSecuritySymbol, WithInstrumentType { + @JsonProperty + public String securitySymbol; + @JsonProperty + public String shortName; + @JsonProperty + public String fullName; + @JsonProperty + public String isin; + @JsonProperty + public String bondType; + @JsonProperty + public Double lotSize; + @JsonProperty + public Double nominalValue; + @JsonProperty + public String nominalCurrency; + @JsonProperty + @JsonSerialize(using = LocalDateSerializer.class) + @JsonDeserialize(using = LocalDateDeserializer.class) + public LocalDate maturityDate; + @JsonProperty + public Double coupon; + @JsonProperty + public Long couponFrequency; + @JsonProperty + public Long issuerId; + @JsonProperty + public String shortNameEng; + @JsonProperty + public String fullNameEng; + @JsonProperty + public String workflowStatus; + @JsonProperty + public String instrumentType; + + @Override + public String getSecuritySymbol() { + return securitySymbol; + } + + public void setSecuritySymbol(String securitySymbol) { + this.securitySymbol = securitySymbol; + } + + public String getShortName() { + return shortName; + } + + public void setShortName(String shortName) { + this.shortName = shortName; + } + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public String getIsin() { + return isin; + } + + public void setIsin(String isin) { + this.isin = isin; + } + + public String getBondType() { + return bondType; + } + + public void setBondType(String bondType) { + this.bondType = bondType; + } + + public Double getLotSize() { + return lotSize; + } + + public void setLotSize(Double lotSize) { + this.lotSize = lotSize; + } + + public Double getNominalValue() { + return nominalValue; + } + + public void setNominalValue(Double nominalValue) { + this.nominalValue = nominalValue; + } + + public String getNominalCurrency() { + return nominalCurrency; + } + + public void setNominalCurrency(String nominalCurrency) { + this.nominalCurrency = nominalCurrency; + } + + public LocalDate getMaturityDate() { + return maturityDate; + } + + public void setMaturityDate(LocalDate maturityDate) { + this.maturityDate = maturityDate; + } + + public Double getCoupon() { + return coupon; + } + + public void setCoupon(Double coupon) { + this.coupon = coupon; + } + + public Long getCouponFrequency() { + return couponFrequency; + } + + public void setCouponFrequency(Long couponFrequency) { + this.couponFrequency = couponFrequency; + } + + public Long getIssuerId() { + return issuerId; + } + + public void setIssuerId(Long issuerId) { + this.issuerId = issuerId; + } + + public String getShortNameEng() { + return shortNameEng; + } + + public void setShortNameEng(String shortNameEng) { + this.shortNameEng = shortNameEng; + } + + public String getFullNameEng() { + return fullNameEng; + } + + public void setFullNameEng(String fullNameEng) { + this.fullNameEng = fullNameEng; + } + + public String getWorkflowStatus() { + return workflowStatus; + } + + public void setWorkflowStatus(String workflowStatus) { + this.workflowStatus = workflowStatus; + } + + @Override + public String getInstrumentType() { + return instrumentType; + } + + public void setInstrumentType(String instrumentType) { + this.instrumentType = instrumentType; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/FixedIncomeSecurityUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/FixedIncomeSecurityUpdateRequest.java new file mode 100644 index 000000000..dcfd798ea --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/FixedIncomeSecurityUpdateRequest.java @@ -0,0 +1,190 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.securitites; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; +import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; +import ru.spcex.platform.classes.base.interfaces.WithId; +import ru.spcex.platform.classes.base.interfaces.WithInstrumentType; +import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus; + +import java.time.LocalDate; + +public class FixedIncomeSecurityUpdateRequest implements WithId, WithInstrumentType, WithWorkflowStatus { + @JsonProperty + public Long id; + @JsonProperty + public String securitySymbol; + @JsonProperty + public String shortName; + @JsonProperty + public String fullName; + @JsonProperty + public String isin; + @JsonProperty + public String bondType; + @JsonProperty + public Double lotSize; + @JsonProperty + public Double nominalValue; + @JsonProperty + public String nominalCurrency; + @JsonProperty + @JsonSerialize(using = LocalDateSerializer.class) + @JsonDeserialize(using = LocalDateDeserializer.class) + public LocalDate maturityDate; + @JsonProperty + public Double coupon; + @JsonProperty + public Long couponFrequency; + @JsonProperty + public Long issuerId; + @JsonProperty + public String shortNameEng; + @JsonProperty + public String fullNameEng; + @JsonProperty + public String workflowStatus; + @JsonProperty + public String instrumentType; + + @Override + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + + public void setSecuritySymbol(String securitySymbol) { + this.securitySymbol = securitySymbol; + } + + public String getShortName() { + return shortName; + } + + public void setShortName(String shortName) { + this.shortName = shortName; + } + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public String getIsin() { + return isin; + } + + public void setIsin(String isin) { + this.isin = isin; + } + + public String getBondType() { + return bondType; + } + + public void setBondType(String bondType) { + this.bondType = bondType; + } + + public Double getLotSize() { + return lotSize; + } + + public void setLotSize(Double lotSize) { + this.lotSize = lotSize; + } + + public Double getNominalValue() { + return nominalValue; + } + + public void setNominalValue(Double nominalValue) { + this.nominalValue = nominalValue; + } + + public String getNominalCurrency() { + return nominalCurrency; + } + + public void setNominalCurrency(String nominalCurrency) { + this.nominalCurrency = nominalCurrency; + } + + public LocalDate getMaturityDate() { + return maturityDate; + } + + public void setMaturityDate(LocalDate maturityDate) { + this.maturityDate = maturityDate; + } + + public Double getCoupon() { + return coupon; + } + + public void setCoupon(Double coupon) { + this.coupon = coupon; + } + + public Long getCouponFrequency() { + return couponFrequency; + } + + public void setCouponFrequency(Long couponFrequency) { + this.couponFrequency = couponFrequency; + } + + public Long getIssuerId() { + return issuerId; + } + + public void setIssuerId(Long issuerId) { + this.issuerId = issuerId; + } + + public String getShortNameEng() { + return shortNameEng; + } + + public void setShortNameEng(String shortNameEng) { + this.shortNameEng = shortNameEng; + } + + public String getFullNameEng() { + return fullNameEng; + } + + public void setFullNameEng(String fullNameEng) { + this.fullNameEng = fullNameEng; + } + + @Override + public String getWorkflowStatus() { + return workflowStatus; + } + + public void setWorkflowStatus(String workflowStatus) { + this.workflowStatus = workflowStatus; + } + + @Override + public String getInstrumentType() { + return instrumentType; + } + + public void setInstrumentType(String instrumentType) { + this.instrumentType = instrumentType; + } +}