This commit is contained in:
parent
f0881dd4b8
commit
7240066fe6
2 changed files with 6 additions and 15 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
package ru.spcex.clearing.service.execution;
|
package ru.spcex.clearing.service.execution;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
|
@ -9,7 +10,6 @@ import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import static java.lang.String.format;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.slf4j.event.Level;
|
import org.slf4j.event.Level;
|
||||||
|
|
@ -50,7 +50,6 @@ import ru.spcex.clearing.service.validation.strades.STradesSecurityPresentValida
|
||||||
import ru.spcex.clearing.service.validation.strades.TcrByCodeAndCmpIsActiveCashingValidationRule;
|
import ru.spcex.clearing.service.validation.strades.TcrByCodeAndCmpIsActiveCashingValidationRule;
|
||||||
import ru.spcex.platform.enumeration.CurrencyCode;
|
import ru.spcex.platform.enumeration.CurrencyCode;
|
||||||
import ru.spcex.platform.enumeration.InstrumentType;
|
import ru.spcex.platform.enumeration.InstrumentType;
|
||||||
import ru.spcex.platform.enumeration.NominalTypeCode;
|
|
||||||
import ru.spcex.platform.enumeration.ObjectType;
|
import ru.spcex.platform.enumeration.ObjectType;
|
||||||
import ru.spcex.platform.enumeration.Priority;
|
import ru.spcex.platform.enumeration.Priority;
|
||||||
import ru.spcex.platform.enumeration.Section;
|
import ru.spcex.platform.enumeration.Section;
|
||||||
|
|
@ -71,7 +70,6 @@ import ru.spcex.platform.utils.enumeration.IEnumId;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.parse;
|
|
||||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||||
import ru.spcex.platform.utils.text.TextUtil;
|
import ru.spcex.platform.utils.text.TextUtil;
|
||||||
import ru.spcex.platform.utils.time.TimeUtil;
|
import ru.spcex.platform.utils.time.TimeUtil;
|
||||||
|
|
@ -305,15 +303,9 @@ public class ExecutionFondComponent implements IExecutionUploadComponent {
|
||||||
if (udr != null) {
|
if (udr != null) {
|
||||||
DigitalCertificateSecurity dcs = (DigitalCertificateSecurity) security;
|
DigitalCertificateSecurity dcs = (DigitalCertificateSecurity) security;
|
||||||
BigDecimal baseUnitSize = BigDecimal.valueOf(Optional.ofNullable(dcs.getBaseUnitSize()).orElse(0L));
|
BigDecimal baseUnitSize = BigDecimal.valueOf(Optional.ofNullable(dcs.getBaseUnitSize()).orElse(0L));
|
||||||
if (NominalTypeCode.INDX.equalsByKey(dcs.getNominalTypeCode())) {
|
price = safeBD(sTrades.getPrice())
|
||||||
price = safeBD(sTrades.getPrice())
|
.multiply(safeBD(dcs.getNominalValue()))
|
||||||
.multiply(safeBD(dcs.getNominalValue()))
|
.multiply(baseUnitSize);
|
||||||
.multiply(baseUnitSize);
|
|
||||||
} else if (NominalTypeCode.FIXD.equalsByKey(dcs.getNominalTypeCode())) {
|
|
||||||
price = safeBD(sTrades.getPrice())
|
|
||||||
.multiply(safeBD(parse(udr.getRightUnit())))
|
|
||||||
.multiply(baseUnitSize);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
eFond.setPrice(price);
|
eFond.setPrice(price);
|
||||||
eFond.setLots(sTrades.getQty());
|
eFond.setLots(sTrades.getQty());
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
import ru.spcex.platform.imdg.iml.hazelcast.adapter.CashV2;
|
import ru.spcex.platform.imdg.iml.hazelcast.adapter.CashV2;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.text.TextUtil;
|
|
||||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||||
|
|
||||||
public class STradesSecurityDGCTValidationRule implements IValidationRule<ImdgValidationContext<STrades>> {
|
public class STradesSecurityDGCTValidationRule implements IValidationRule<ImdgValidationContext<STrades>> {
|
||||||
|
|
@ -53,14 +52,14 @@ public class STradesSecurityDGCTValidationRule implements IValidationRule<ImdgVa
|
||||||
return of(ClearingError.UtilitarianDigitalRightNotFound, security.getSecuritySymbol());
|
return of(ClearingError.UtilitarianDigitalRightNotFound, security.getSecuritySymbol());
|
||||||
}
|
}
|
||||||
if (NominalTypeCode.INDX.equalsByKey(dcs.getNominalTypeCode())) {
|
if (NominalTypeCode.INDX.equalsByKey(dcs.getNominalTypeCode())) {
|
||||||
if (!Objects.equals(dcs.getNominalIndexationDate(), validatedObject.getTradeDate())) {
|
if (!Objects.equals(dcs.getNominalIndexationDate(), validatedObject.getSettleDate())) {
|
||||||
return of(ClearingError.UtilitarianDigitalRightNotFound, security.getSecuritySymbol());
|
return of(ClearingError.UtilitarianDigitalRightNotFound, security.getSecuritySymbol());
|
||||||
}
|
}
|
||||||
if (dcs.getNominalValue() == null) {
|
if (dcs.getNominalValue() == null) {
|
||||||
return of(ClearingError.UtilitarianDigitalRightNotFound, security.getSecuritySymbol());
|
return of(ClearingError.UtilitarianDigitalRightNotFound, security.getSecuritySymbol());
|
||||||
}
|
}
|
||||||
} else if (NominalTypeCode.FIXD.equalsByKey(dcs.getNominalTypeCode())) {
|
} else if (NominalTypeCode.FIXD.equalsByKey(dcs.getNominalTypeCode())) {
|
||||||
if (TextUtil.isEmpty(udr.getRightUnit())) {
|
if (dcs.getNominalValue() == null) {
|
||||||
return of(ClearingError.UtilitarianDigitalRightNotFound, security.getSecuritySymbol());
|
return of(ClearingError.UtilitarianDigitalRightNotFound, security.getSecuritySymbol());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue