This commit is contained in:
parent
ed6daedece
commit
feb989a85b
1 changed files with 28 additions and 17 deletions
|
|
@ -1,5 +1,12 @@
|
|||
package ru.spcex.clearing.service.executors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
|
|
@ -28,12 +35,27 @@ import ru.spcex.clearing.service.registry.AssetTBFProcessing;
|
|||
import ru.spcex.clearing.service.registry.RegistryManager;
|
||||
import ru.spcex.clearing.service.validation.ValidationStored;
|
||||
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.enumeration.BalanceDimension;
|
||||
import ru.spcex.platform.enumeration.InOutDirection;
|
||||
import ru.spcex.platform.enumeration.InOutSDfType;
|
||||
import ru.spcex.platform.enumeration.OperationStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryCapacity;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import ru.spcex.platform.enumeration.RegistryUnit;
|
||||
import ru.spcex.platform.enumeration.SdfResult;
|
||||
import ru.spcex.platform.enumeration.SdfTable;
|
||||
import ru.spcex.platform.enumeration.Sender;
|
||||
import ru.spcex.platform.enumeration.StatementType;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||
import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
|
|
@ -42,14 +64,6 @@ import ru.spcex.platform.utils.number.BigDecimalUtil;
|
|||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
|
||||
@Service
|
||||
public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
|
@ -66,6 +80,7 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
|||
private final AssetTBFProcessing assets;
|
||||
private final Imdg<SDf09> sdf09Imdg;
|
||||
private final IMessageResolver messageResolver;
|
||||
private final SecuritySelector<Security> secSelector;
|
||||
|
||||
public Sdf08Executor(@Qualifier("sdf08ValidatorNew") Function<SDf08, IValidator> sDf08Validator,
|
||||
ImdgProvider imdgProvider,
|
||||
|
|
@ -82,6 +97,7 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
|||
this.sDf08Validator = sDf08Validator;
|
||||
this.assets = assets;
|
||||
this.messageResolver = messageResolver;
|
||||
this.secSelector = new SecuritySelector<>(imdgProvider, Security.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -280,10 +296,8 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
|||
stmt.setInSDfId(sdf08.getId());
|
||||
stmt.setInOutSDfType(InOutSDfType.type08.getKey());
|
||||
stmt.setClearingDate(LocalDate.now());
|
||||
Security security = fixedIncomeSecurityImdg.getFirstObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode()));
|
||||
if (security == null) {
|
||||
security = equitySecurityImdg.getFirstObjectByFieldValues(Map.of("securitySymbol", sdf08.getSecurityCode()));
|
||||
}
|
||||
|
||||
Security security = secSelector.selectSecurityBySymbol(sdf08.getSecurityCode());
|
||||
if (security != null) {
|
||||
stmt.setSecurityId(security.getId());
|
||||
}
|
||||
|
|
@ -348,10 +362,7 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
|||
rgs.setRegistryStatus(RegistryStatus.PROC.getKey());
|
||||
rgs.setSecurityId(statement.getSecurityId());
|
||||
if (statement.getSecurityId() != null) {
|
||||
Security security = fixedIncomeSecurityImdg.getSingleObjectByID(statement.getSecurityId());
|
||||
if (security == null) {
|
||||
security = equitySecurityImdg.getSingleObjectByID(statement.getSecurityId());
|
||||
}
|
||||
Security security = secSelector.selectSecurityById(statement.getSecurityId());
|
||||
if (security != null) {
|
||||
rgs.setSecuritySymbol(security.getSecuritySymbol());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue