Поправил MoneyMarketSecurityService и валидацию в соответствии с ТЗ. Исправил MoneyMarketSecurityMapStore.
This commit is contained in:
parent
9e4b4fd7df
commit
0b062fc97c
20 changed files with 820 additions and 31 deletions
|
|
@ -7,9 +7,12 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|||
import ru.spcex.clearing.imdg.base.TemplateMapStore;
|
||||
import ru.spcex.platform.utils.time.TimeUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class EquitySecurityMapStore extends TemplateMapStore<EquitySecurity> {
|
||||
|
|
@ -31,7 +34,7 @@ public class EquitySecurityMapStore extends TemplateMapStore<EquitySecurity> {
|
|||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "SECURITY_ID", "SHARE_TYPE"
|
||||
"ID", "SECURITY_ID", "SHARE_TYPE", "LOT_SIZE"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -55,6 +58,7 @@ public class EquitySecurityMapStore extends TemplateMapStore<EquitySecurity> {
|
|||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class));
|
||||
object.setShareType(resultSet.getObject("SHARE_TYPE", String.class));
|
||||
object.setLotSize(resultSet.getObject("LOT_SIZE", BigDecimal.class));
|
||||
fillBySecurity(object, object.getSecurityId());
|
||||
return object;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
|
|||
object.setNominalValue(resultSet.getObject("NOMINAL_VALUE", BigDecimal.class));
|
||||
object.setNominalCurrency(resultSet.getObject("NOMINAL_CURRENCY", String.class));
|
||||
object.setTermType(resultSet.getObject("TERM_TYPE", String.class));
|
||||
object.setTermType(resultSet.getObject("LOT_SIZE", String.class));
|
||||
object.setLotSize(resultSet.getObject("LOT_SIZE", BigDecimal.class));
|
||||
fillBySecurity(object, object.getSecurityId());
|
||||
return object;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package ru.spcex.clearing.securities.component;
|
||||
|
||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||
import ru.clearing.classes.statics.data.misc.Listing;
|
||||
import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
|
||||
import ru.spcex.platform.enumeration.Market;
|
||||
import ru.spcex.platform.enumeration.Status;
|
||||
|
|
@ -21,4 +23,16 @@ public class ListingBuilder {
|
|||
listing.setWorkflowStatus(Status.Active.getKey());
|
||||
return listing;
|
||||
}
|
||||
public Listing byNewEquity(EquitySecurity equitySecurity, EquitySecurityNewRequest request) {
|
||||
Listing listing = new Listing();
|
||||
listing.setCreated(equitySecurity.getCreated());
|
||||
listing.setSecurityId(equitySecurity.getId());
|
||||
listing.setLotSize(BigDecimal.valueOf(request.getLotSize()));
|
||||
listing.setMarket(Market.mkrs.getKey());
|
||||
listing.setSymbolCode(equitySecurity.getSecuritySymbol());
|
||||
listing.setSymbolName(equitySecurity.getFullName());
|
||||
// listing.setTradingCurrency(equitySecurity.getNominalCurrency());
|
||||
listing.setWorkflowStatus(Status.Active.getKey());
|
||||
return listing;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package ru.spcex.clearing.securities.errors;
|
|||
import ru.spcex.platform.utils.enumeration.IEnumId;
|
||||
|
||||
public enum SecuritiesError implements IEnumId {
|
||||
RequiredFieldIsEmpty(1002L),
|
||||
WrongFieldValue(1004L),
|
||||
InstrumentAlreadyExists(1010L),
|
||||
InstrumentNotActive(1012L),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,131 @@
|
|||
package ru.spcex.clearing.securities.service.cud;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.apache.kafka.clients.producer.Producer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||
import ru.clearing.classes.statics.data.misc.Listing;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityUpdateRequest;
|
||||
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.securities.component.ListingBuilder;
|
||||
import ru.spcex.clearing.securities.validation.ValidationProvider;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.ImdgTransaction;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class EquitySecurityService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<EquitySecurity> equitySecurityImdg;
|
||||
private final Imdg<Listing> listingImdg;
|
||||
private final ImdgProvider imdgProvider;
|
||||
private final ImdgId idGenerator;
|
||||
private final ValidationProvider validation;
|
||||
private final IMessageResolver messageResolver;
|
||||
private final ListingBuilder listingBuilder = new ListingBuilder();
|
||||
|
||||
@Autowired
|
||||
public EquitySecurityService(Consumer<String, Object> kafkaQueue,
|
||||
Producer<String, Object> kafkaProducer,
|
||||
ImdgProvider imdgProvider,
|
||||
ValidationProvider validation,
|
||||
IMessageResolver messageResolver) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
this.validation = validation;
|
||||
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.idGenerator = imdgProvider.getImdgIdGenerator();
|
||||
this.messageResolver = messageResolver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(EquitySecurityNewRequest.class)
|
||||
.setFunction(this::newEquity)
|
||||
.forDestination(Consts.DESTINATION_MONEY_MARKET_SECURITY_NEW, callbacks::put);
|
||||
callback(EquitySecurityUpdateRequest.class)
|
||||
.setFunction(this::updateEquity)
|
||||
.forDestination(Consts.DESTINATION_MONEY_MARKET_SECURITY_UPDATE, callbacks::put);
|
||||
callback(CommonDeleteRequest.class)
|
||||
.setFunction(this::deleteEquity)
|
||||
.forDestination(Consts.DESTINATION_MONEY_MARKET_SECURITY_DELETE, callbacks::put);
|
||||
imdgProvider.waitAvailable();
|
||||
init();
|
||||
}
|
||||
|
||||
private RequestInfoUpdate newEquity(BaseRequest<EquitySecurityNewRequest> userRequest){
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
EquitySecurityNewRequest req = userRequest.getRequestPayload();
|
||||
Optional<EnumMessage> validationError = validation.equityNewValidator()
|
||||
.apply(req)
|
||||
.tillFirstError();
|
||||
if (validationError.isPresent()) {
|
||||
String errorMsg = messageResolver.resolve(validationError.get());
|
||||
log.error("cannot process EquitySecurityNewRequest id={}: {}", userRequest.getId(), errorMsg);
|
||||
return new RequestInfoUpdate()
|
||||
.setId(userRequest.getId())
|
||||
.setStatus(Status.Error)
|
||||
.setMessage(errorMsg);
|
||||
}
|
||||
log.debug("EquitySecurityNewRequest received");
|
||||
EquitySecurity equity = new EquitySecurity();
|
||||
equity.setId(idGenerator.nextId());
|
||||
equity.setSecuritySymbol(req.getSecuritySymbol());
|
||||
equity.setShortName(req.getShortName());
|
||||
equity.setFullName(req.getFullName());
|
||||
equity.setIsin(req.getIsin());
|
||||
equity.setShareType(req.getShareType());
|
||||
equity.setLotSize(req.getLotSize() != null ? BigDecimal.valueOf(req.getLotSize()) : null);
|
||||
equity.setIssuerId(req.getIssuerId());
|
||||
equity.setFullNameEng(req.getFullNameEng());
|
||||
equity.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
equity.setInstrumentType(req.getInstrumentType());
|
||||
equity.setSecurityId(equity.getId());
|
||||
equity.setCreated(Instant.now());
|
||||
try {
|
||||
transaction.beginTransaction();
|
||||
Imdg<EquitySecurity> equityImdg = transaction.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
Imdg<Listing> listingMap = transaction.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
//одним скопом выполняем реквест
|
||||
equityImdg.insert(equity);
|
||||
Listing listing = listingBuilder.byNewEquity(equity, req);
|
||||
listingMap.insert(listing);
|
||||
//и сохраняем обновленный
|
||||
// reqInfoMap.insert(reqInfo);
|
||||
transaction.commitTransaction();
|
||||
} catch (Throwable e) {
|
||||
transaction.rollbackTransaction();
|
||||
// RequestInfo.update(reqInfo, Status.Error, ExceptionUtils.getStackTrace(e));
|
||||
// requestInfoImdg.insert(reqInfo);
|
||||
}
|
||||
log.debug("successfully processed, request id {}, new object id {}", userRequest.getId(), equity.getId());
|
||||
return null; // default success
|
||||
}
|
||||
|
||||
private RequestInfoUpdate updateEquity(BaseRequest<EquitySecurityUpdateRequest> userRequest){
|
||||
return null;
|
||||
}
|
||||
|
||||
private RequestInfoUpdate deleteEquity(BaseRequest<CommonDeleteRequest> userRequest) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -111,11 +111,18 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
mms.setStartDate(req.getStartDate());
|
||||
mms.setEndDate(req.getEndDate());
|
||||
mms.setNominalValue(req.getNominalValue() != null ? BigDecimal.valueOf(req.getNominalValue()) : null);
|
||||
mms.setLotSize(req.getLotSize() != null ? BigDecimal.valueOf(req.getLotSize()) : null);
|
||||
mms.setNominalCurrency(req.getNominalCurrency());
|
||||
mms.setInstrumentType(req.getInstrumentType());
|
||||
mms.setFullName(req.getFullName());
|
||||
mms.setShortName(req.getShortName());
|
||||
mms.setFullNameEng(req.getFullNameEng());
|
||||
mms.setShortNameEng(req.getShortNameEng());
|
||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
mms.setTermType(req.getTermType());
|
||||
mms.setIsin(req.getIsin());
|
||||
mms.setSecurityId(mms.getId());
|
||||
mms.setDescription(mms.getDescription());
|
||||
mms.setCreated(Instant.now());
|
||||
mms.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Active.getKey());
|
||||
try {
|
||||
|
|
@ -157,16 +164,27 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
mms.setStartDate(req.getStartDate());
|
||||
mms.setEndDate(req.getEndDate());
|
||||
mms.setNominalValue(req.getNominalValue() != null ? BigDecimal.valueOf(req.getNominalValue()) : null);
|
||||
mms.setLotSize(req.getLotSize() != null ? BigDecimal.valueOf(req.getLotSize()) : null);
|
||||
mms.setNominalCurrency(req.getNominalCurrency());
|
||||
mms.setInstrumentType(req.getInstrumentType());
|
||||
mms.setFullName(req.getFullName());
|
||||
mms.setShortName(req.getShortName());
|
||||
mms.setFullNameEng(req.getFullNameEng());
|
||||
mms.setShortNameEng(req.getShortNameEng());
|
||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
mms.setTermType(req.getTermType());
|
||||
mms.setIsin(req.getIsin());
|
||||
mms.setSecurityId(mms.getId());
|
||||
mms.setDescription(mms.getDescription());
|
||||
mms.setCreated(Instant.now());
|
||||
|
||||
moneyMarketSecurityMap.update(mms);
|
||||
Listing listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", mms.getId()));
|
||||
if (listing == null) {
|
||||
log.error("MoneyMarketSecurityUpdateRequest id {} couldn't find listing with securityId {}", req.getId(), mms.getId());
|
||||
return null;
|
||||
}
|
||||
listing.setLotSize(BigDecimal.valueOf(req.getLotSize()));
|
||||
listing.setLotSize(mms.getLotSize());
|
||||
listing.setUpdated(updateTime);
|
||||
listingImdg.update(listing);
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -3,13 +3,12 @@ package ru.spcex.clearing.securities.validation;
|
|||
import org.springframework.stereotype.Component;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityUpdateRequest;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.clearing.securities.validation.rule.EndDtAfterStartDt;
|
||||
import ru.spcex.clearing.securities.validation.rule.MmsDeleteValidationRule;
|
||||
import ru.spcex.clearing.securities.validation.rule.MmsNewValidationRule;
|
||||
import ru.spcex.clearing.securities.validation.rule.MmsUpdateValidationRule;
|
||||
import ru.spcex.clearing.securities.validation.rule.*;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -23,10 +22,12 @@ import java.util.function.Function;
|
|||
@Component
|
||||
public class ValidationProvider {
|
||||
private final Imdg<SpcexObjectBase> mmsMap;
|
||||
private final Imdg<SpcexObjectBase> equityMap;
|
||||
|
||||
|
||||
public ValidationProvider(ImdgProvider imdgProvider) {
|
||||
this.mmsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, SpcexObjectBase.class);
|
||||
this.equityMap = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, SpcexObjectBase.class);
|
||||
}
|
||||
|
||||
public Function<MoneyMarketSecurityNewRequest, IValidator> mmsNewValidator() {
|
||||
|
|
@ -36,7 +37,9 @@ public class ValidationProvider {
|
|||
context.addImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, mmsMap);
|
||||
return new ValidatorImpl<>(context,
|
||||
EndDtAfterStartDt.instance(MoneyMarketSecurityNewRequest.class),
|
||||
MmsNewValidationRule.SecuritySymbolUniq
|
||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurityNewRequest.class),
|
||||
new IsValidInstrumentType(SecuritiesError.RequiredFieldIsEmpty, "RATE"),
|
||||
MmsNewValidationRule.RequiredFieldIsNotEmpty
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
@ -48,8 +51,9 @@ public class ValidationProvider {
|
|||
context.addImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, mmsMap);
|
||||
return new ValidatorImpl<>(context,
|
||||
EndDtAfterStartDt.instance(MoneyMarketSecurityUpdateRequest.class),
|
||||
new IsValidInstrumentType(SecuritiesError.InstrumentNotFound, "RATE"),
|
||||
new PresentById(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
MmsUpdateValidationRule.StatusIsActive
|
||||
new WorkflowStatusActv()
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
@ -60,8 +64,48 @@ public class ValidationProvider {
|
|||
context.setValidatedObject(mmsRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, mmsMap);
|
||||
return new ValidatorImpl<>(context,
|
||||
new IsValidInstrumentType(SecuritiesError.InstrumentNotFound, "RATE"),
|
||||
new PresentById(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
MmsDeleteValidationRule.StatusIsActive
|
||||
new WorkflowStatusActv()
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
public Function<EquitySecurityNewRequest, IValidator> equityNewValidator() {
|
||||
return equityRequest -> {
|
||||
ImdgValidationContext<EquitySecurityNewRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(equityRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equityMap);
|
||||
return new ValidatorImpl<>(context,
|
||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentAlreadyExists, EquitySecurityNewRequest.class),
|
||||
new IsValidInstrumentType(SecuritiesError.RequiredFieldIsEmpty, "EQTY"),
|
||||
EquityNewValidationRule.RequiredFieldIsNotEmpty
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
public Function<EquitySecurityUpdateRequest, IValidator> equityUpdateValidator() {
|
||||
return equityRequest -> {
|
||||
ImdgValidationContext<EquitySecurityUpdateRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(equityRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equityMap);
|
||||
return new ValidatorImpl<>(context,
|
||||
new IsValidInstrumentType(SecuritiesError.InstrumentNotFound, "EQTY"),
|
||||
new PresentById(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
new WorkflowStatusActv()
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
public Function<CommonDeleteRequest, IValidator> equityDeleteValidator() {
|
||||
return equityRequest -> {
|
||||
ImdgValidationContext<CommonDeleteRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(equityRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_EquitySecurity, equityMap);
|
||||
return new ValidatorImpl<>(context,
|
||||
new IsValidInstrumentType(SecuritiesError.InstrumentNotFound, "EQTY"),
|
||||
new PresentById(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentNotFound, true),
|
||||
new WorkflowStatusActv()
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,13 @@ public class EndDtAfterStartDt<T extends WithStartDt & WithEndDt> implements IVa
|
|||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<T> context) {
|
||||
T validatedObject = context.getValidatedObject();
|
||||
if(validatedObject.getEndDate() == null && validatedObject.getStartDate() == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "endDate", "startDate");
|
||||
}
|
||||
if(validatedObject.getEndDate() == null || validatedObject.getStartDate() == null){
|
||||
if(validatedObject.getStartDate() == null) return of(SecuritiesError.RequiredFieldIsEmpty, "startDate");
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "endDate");
|
||||
}
|
||||
if (validatedObject.getEndDate().isBefore(validatedObject.getStartDate())) {
|
||||
return of(SecuritiesError.WrongFieldValue, "endDate");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
package ru.spcex.clearing.securities.validation.rule;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public enum EquityNewValidationRule implements IValidationRule<ImdgValidationContext<EquitySecurityNewRequest>> {
|
||||
RequiredFieldIsNotEmpty() {
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<EquitySecurityNewRequest> context) {
|
||||
EquitySecurityNewRequest action = context.getValidatedObject();
|
||||
if (StringUtils.hasText(action.getShortName())){
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "shortName");
|
||||
}
|
||||
if (action.getLotSize() == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "lotSize");
|
||||
}
|
||||
return empty();
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public String ruleName() {
|
||||
return "MmsNewValidationRule." + name();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package ru.spcex.clearing.securities.validation.rule;
|
||||
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithInstrumentType;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumId;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class IsValidInstrumentType implements IValidationRule<ImdgValidationContext<WithInstrumentType>> {
|
||||
private final IEnumId errorEnum;
|
||||
private final String predictableInstrumentType;
|
||||
|
||||
public IsValidInstrumentType(IEnumId errorEnum, String predictableInstrumentType) {
|
||||
this.errorEnum = errorEnum;
|
||||
this.predictableInstrumentType = predictableInstrumentType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<WithInstrumentType> context) {
|
||||
WithInstrumentType action = context.getValidatedObject();
|
||||
if (action.getInstrumentType() == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty);
|
||||
} else if (!predictableInstrumentType.equalsIgnoreCase(action.getInstrumentType())){
|
||||
return of(errorEnum);
|
||||
}else {
|
||||
return empty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,32 +1,35 @@
|
|||
package ru.spcex.clearing.securities.validation.rule;
|
||||
|
||||
import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import org.springframework.util.StringUtils;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.platform.enumeration.Status;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
public enum MmsNewValidationRule implements IValidationRule<ImdgValidationContext<MoneyMarketSecurityNewRequest>> {
|
||||
SecuritySymbolUniq() {
|
||||
RequiredFieldIsNotEmpty() {
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<MoneyMarketSecurityNewRequest> context) {
|
||||
MoneyMarketSecurityNewRequest action = context.getValidatedObject();
|
||||
Imdg<MoneyMarketSecurity> mmsImdg = context.obtainMap(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
||||
MoneyMarketSecurity mms = mmsImdg.getSingleObjectByFieldValues(Map.of(
|
||||
"securitySymbol", action.getSecuritySymbol(),
|
||||
"workflowStatus", Status.Active.getKey()));
|
||||
if (mms != null) {
|
||||
return of(SecuritiesError.InstrumentAlreadyExists);
|
||||
} else {
|
||||
return empty();
|
||||
if (StringUtils.hasText(action.getShortName())){
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "shortName");
|
||||
}
|
||||
if (action.getLotSize() == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "lotSize");
|
||||
}
|
||||
if (action.getNominalValue() == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "nominalValue");
|
||||
}
|
||||
if (StringUtils.hasText(action.getNominalCurrency())) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "nominalCurrency");
|
||||
}
|
||||
if (StringUtils.hasText(action.getTermType())) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "termType");
|
||||
}
|
||||
return empty();
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public enum MmsUpdateValidationRule implements IValidationRule<ImdgValidationCon
|
|||
MoneyMarketSecurity mms = context.getStoredObject(Stored.PresentById);
|
||||
//проверка только если PresentById найдет объект и сохранит его
|
||||
if (mms != null && !Status.Active.getKey().equals(mms.getWorkflowStatus())) {
|
||||
return of(SecuritiesError.InstrumentNotActive);
|
||||
return of(SecuritiesError.InstrumentNotActive, mms.getClass().getSimpleName());
|
||||
} else {
|
||||
return empty();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
package ru.spcex.clearing.securities.validation.rule;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
||||
import ru.spcex.platform.enumeration.Status;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumId;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
public class NotPresentBySecuritySymbolAndWorkflowStatusActv<T extends SpcexObjectBase & WithSecuritySymbol> implements IValidationRule<ImdgValidationContext<WithSecuritySymbol>> {
|
||||
private final String mapName;
|
||||
private final IEnumId errorEnum;
|
||||
private final Class<T> clazz;
|
||||
|
||||
public NotPresentBySecuritySymbolAndWorkflowStatusActv(String mapName, IEnumId errorEnum, Class<T> clazz) {
|
||||
this.mapName = mapName;
|
||||
this.errorEnum = errorEnum;
|
||||
this.clazz = clazz;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<WithSecuritySymbol> context) {
|
||||
WithSecuritySymbol action = context.getValidatedObject();
|
||||
Imdg<T> imdg = context.obtainMap(mapName, clazz);
|
||||
if(StringUtils.hasText(action.getSecuritySymbol())) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "securitySymbole");
|
||||
}
|
||||
T object = imdg.getSingleObjectByFieldValues(Map.of(
|
||||
"securitySymbol", action.getSecuritySymbol(),
|
||||
"workflowStatus", Status.Active.getKey()));
|
||||
if (object != null) {
|
||||
return of(errorEnum);
|
||||
} else {
|
||||
return empty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package ru.spcex.clearing.securities.validation.rule;
|
||||
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus;
|
||||
import ru.spcex.platform.enumeration.Status;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.imdg.validation.Stored;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class WorkflowStatusActv implements IValidationRule<ImdgValidationContext<WithWorkflowStatus>> {
|
||||
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<WithWorkflowStatus> context) {
|
||||
WithWorkflowStatus object = context.getStoredObject(Stored.PresentById);
|
||||
//проверка только если PresentById найдет объект и сохранит его
|
||||
if (object != null && object.getWorkflowStatus() == null) {
|
||||
return of(SecuritiesError.RequiredFieldIsEmpty, "workflowStatus");
|
||||
}else if (object != null && !Status.Active.getKey().equals(object.getWorkflowStatus())) {
|
||||
return of(SecuritiesError.InstrumentNotActive, object.getClass().getSimpleName());
|
||||
} else {
|
||||
return empty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package ru.spcex.platform.classes.base.interfaces;
|
||||
|
||||
public interface WithInstrumentType {
|
||||
String getInstrumentType();
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package ru.spcex.platform.classes.base.interfaces;
|
||||
|
||||
public interface WithWorkflowStatus {
|
||||
String getWorkflowStatus();
|
||||
}
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.securitites;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithInstrumentType;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
||||
|
||||
public class EquitySecurityNewRequest implements WithSecuritySymbol, WithInstrumentType {
|
||||
@JsonProperty
|
||||
public String securitySymbol;
|
||||
@JsonProperty
|
||||
public String shortName;
|
||||
@JsonProperty
|
||||
public String fullName;
|
||||
@JsonProperty
|
||||
public String isin;
|
||||
@JsonProperty
|
||||
public String shareType;
|
||||
@JsonProperty
|
||||
public Double lotSize;
|
||||
@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 getShareType() {
|
||||
return shareType;
|
||||
}
|
||||
|
||||
public void setShareType(String shareType) {
|
||||
this.shareType = shareType;
|
||||
}
|
||||
|
||||
public Double getLotSize() {
|
||||
return lotSize;
|
||||
}
|
||||
|
||||
public void setLotSize(Double lotSize) {
|
||||
this.lotSize = lotSize;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,132 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.securitites;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithId;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithInstrumentType;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus;
|
||||
|
||||
public class EquitySecurityUpdateRequest 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 shareType;
|
||||
@JsonProperty
|
||||
public Double lotSize;
|
||||
@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 getShareType() {
|
||||
return shareType;
|
||||
}
|
||||
|
||||
public void setShareType(String shareType) {
|
||||
this.shareType = shareType;
|
||||
}
|
||||
|
||||
public Double getLotSize() {
|
||||
return lotSize;
|
||||
}
|
||||
|
||||
public void setLotSize(Double lotSize) {
|
||||
this.lotSize = lotSize;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
@ -6,11 +6,13 @@ 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.WithEndDt;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithInstrumentType;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithStartDt;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class MoneyMarketSecurityNewRequest implements WithStartDt, WithEndDt {
|
||||
public class MoneyMarketSecurityNewRequest implements WithStartDt, WithEndDt, WithSecuritySymbol, WithInstrumentType {
|
||||
@JsonProperty
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
|
|
@ -26,11 +28,27 @@ public class MoneyMarketSecurityNewRequest implements WithStartDt, WithEndDt {
|
|||
@JsonProperty
|
||||
public String instrumentType;
|
||||
@JsonProperty
|
||||
public String shortName;
|
||||
@JsonProperty
|
||||
public String fullName;
|
||||
@JsonProperty
|
||||
public String shortNameEng;
|
||||
@JsonProperty
|
||||
public String fullNameEng;
|
||||
@JsonProperty
|
||||
public String securitySymbol;
|
||||
@JsonProperty
|
||||
public Double lotSize;
|
||||
@JsonProperty
|
||||
public String termType;
|
||||
@JsonProperty
|
||||
public String description;
|
||||
@JsonProperty
|
||||
public Long issuerId;
|
||||
@JsonProperty
|
||||
public String isin;
|
||||
@JsonProperty
|
||||
public String workflowStatus;
|
||||
|
||||
public LocalDate getStartDate() {
|
||||
return startDate;
|
||||
|
|
@ -80,6 +98,14 @@ public class MoneyMarketSecurityNewRequest implements WithStartDt, WithEndDt {
|
|||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public String getShortName() {
|
||||
return shortName;
|
||||
}
|
||||
|
||||
public void setShortName(String shortName) {
|
||||
this.shortName = shortName;
|
||||
}
|
||||
|
||||
public String getSecuritySymbol() {
|
||||
return securitySymbol;
|
||||
}
|
||||
|
|
@ -95,4 +121,60 @@ public class MoneyMarketSecurityNewRequest implements WithStartDt, WithEndDt {
|
|||
public void setLotSize(Double lotSize) {
|
||||
this.lotSize = lotSize;
|
||||
}
|
||||
|
||||
public String getTermType() {
|
||||
return termType;
|
||||
}
|
||||
|
||||
public void setTermType(String termType) {
|
||||
this.termType = termType;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
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 getIsin() {
|
||||
return isin;
|
||||
}
|
||||
|
||||
public void setIsin(String isin) {
|
||||
this.isin = isin;
|
||||
}
|
||||
|
||||
public String getWorkflowStatus() {
|
||||
return workflowStatus;
|
||||
}
|
||||
|
||||
public void setWorkflowStatus(String workflowStatus) {
|
||||
this.workflowStatus = workflowStatus;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ 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.WithEndDt;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithId;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithStartDt;
|
||||
import ru.spcex.platform.classes.base.interfaces.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class MoneyMarketSecurityUpdateRequest implements WithId, WithStartDt, WithEndDt {
|
||||
public class MoneyMarketSecurityUpdateRequest implements WithId, WithStartDt, WithEndDt, WithInstrumentType, WithWorkflowStatus {
|
||||
@JsonProperty
|
||||
public Long id;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow")
|
||||
|
|
@ -32,9 +30,27 @@ public class MoneyMarketSecurityUpdateRequest implements WithId, WithStartDt, Wi
|
|||
@JsonProperty
|
||||
public String instrumentType;
|
||||
@JsonProperty
|
||||
public String shortName;
|
||||
@JsonProperty
|
||||
public String fullName;
|
||||
@JsonProperty
|
||||
public String shortNameEng;
|
||||
@JsonProperty
|
||||
public String fullNameEng;
|
||||
@JsonProperty
|
||||
public String securitySymbol;
|
||||
@JsonProperty
|
||||
public Double lotSize;
|
||||
@JsonProperty
|
||||
public String termType;
|
||||
@JsonProperty
|
||||
public String description;
|
||||
@JsonProperty
|
||||
public Long issuerId;
|
||||
@JsonProperty
|
||||
public String isin;
|
||||
@JsonProperty
|
||||
public String workflowStatus;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
|
|
@ -84,6 +100,79 @@ public class MoneyMarketSecurityUpdateRequest implements WithId, WithStartDt, Wi
|
|||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public String getShortName() {
|
||||
return shortName;
|
||||
}
|
||||
|
||||
public void setShortName(String shortName) {
|
||||
this.shortName = shortName;
|
||||
}
|
||||
|
||||
|
||||
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 getSecuritySymbol() {
|
||||
return securitySymbol;
|
||||
}
|
||||
|
||||
public void setSecuritySymbol(String securitySymbol) {
|
||||
this.securitySymbol = securitySymbol;
|
||||
}
|
||||
|
||||
public String getTermType() {
|
||||
return termType;
|
||||
}
|
||||
|
||||
public void setTermType(String termType) {
|
||||
this.termType = termType;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public Long getIssuerId() {
|
||||
return issuerId;
|
||||
}
|
||||
|
||||
public void setIssuerId(Long issuerId) {
|
||||
this.issuerId = issuerId;
|
||||
}
|
||||
|
||||
public String getIsin() {
|
||||
return isin;
|
||||
}
|
||||
|
||||
public void setIsin(String isin) {
|
||||
this.isin = isin;
|
||||
}
|
||||
|
||||
public String getWorkflowStatus() {
|
||||
return workflowStatus;
|
||||
}
|
||||
|
||||
public void setWorkflowStatus(String workflowStatus) {
|
||||
this.workflowStatus = workflowStatus;
|
||||
}
|
||||
|
||||
public Double getLotSize() {
|
||||
return lotSize;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue