This commit is contained in:
parent
f64910154c
commit
960e4ffab0
1 changed files with 42 additions and 17 deletions
|
|
@ -1,5 +1,18 @@
|
||||||
package ru.spcex.clearing.service.executors;
|
package ru.spcex.clearing.service.executors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
@ -39,7 +52,28 @@ import ru.spcex.clearing.service.schedule.TradingTimeService;
|
||||||
import ru.spcex.clearing.service.validation.ValidationStored;
|
import ru.spcex.clearing.service.validation.ValidationStored;
|
||||||
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
import ru.spcex.platform.enumeration.*;
|
import ru.spcex.platform.enumeration.AccountType;
|
||||||
|
import ru.spcex.platform.enumeration.BalanceDimension;
|
||||||
|
import ru.spcex.platform.enumeration.CurrencyCode;
|
||||||
|
import ru.spcex.platform.enumeration.InOutDirection;
|
||||||
|
import ru.spcex.platform.enumeration.InOutSDfType;
|
||||||
|
import ru.spcex.platform.enumeration.ObjectType;
|
||||||
|
import ru.spcex.platform.enumeration.OperationStatus;
|
||||||
|
import ru.spcex.platform.enumeration.Priority;
|
||||||
|
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.Section;
|
||||||
|
import ru.spcex.platform.enumeration.Sender;
|
||||||
|
import ru.spcex.platform.enumeration.SessionStatus;
|
||||||
|
import ru.spcex.platform.enumeration.SessionType;
|
||||||
|
import ru.spcex.platform.enumeration.SpecifFlag;
|
||||||
|
import ru.spcex.platform.enumeration.StatementType;
|
||||||
|
import ru.spcex.platform.enumeration.Task;
|
||||||
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
|
@ -51,21 +85,6 @@ import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
import ru.spcex.platform.utils.text.TextUtil;
|
import ru.spcex.platform.utils.text.TextUtil;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.D__V;
|
import static ru.spcex.platform.enumeration.RegistryTradingParams.D__V;
|
||||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.OM_T;
|
import static ru.spcex.platform.enumeration.RegistryTradingParams.OM_T;
|
||||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||||
|
|
@ -327,7 +346,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
om_t.getId(),
|
om_t.getId(),
|
||||||
registryD.getId());
|
registryD.getId());
|
||||||
sessionIsNeededFlag.set(true);
|
sessionIsNeededFlag.set(true);
|
||||||
} else if (tm_tFound.isPresent()) {
|
} else if (tm_tFound.isPresent() && safeBD(stmt.getAmount()).compareTo(safeBD(tm_tFound.get().getBalance())) == 0) {
|
||||||
Optional<Registry> dm_xFound = RegistrySearch.builder(registryImdg)
|
Optional<Registry> dm_xFound = RegistrySearch.builder(registryImdg)
|
||||||
.rgsCode(RegistryTradingParams.DM_X)
|
.rgsCode(RegistryTradingParams.DM_X)
|
||||||
.companyId(company.getId())
|
.companyId(company.getId())
|
||||||
|
|
@ -357,6 +376,12 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
dm_x.getId());
|
dm_x.getId());
|
||||||
sessionIsNeededFlag.set(true);
|
sessionIsNeededFlag.set(true);
|
||||||
}
|
}
|
||||||
|
} else if (tm_tFound.isPresent()) {
|
||||||
|
log.debug("skipping DM_X creation for stmt.id={} contract {}; " +
|
||||||
|
"TM_T.id={} TM_T.balance[{}] != Statement.amount[{}]",
|
||||||
|
stmt.getId(), stmt.getContract(),
|
||||||
|
tm_tFound.get().getId(), tm_tFound.get().getBalance(), stmt.getAmount()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stmt.setOperationStatus(OperationStatus.Executed.getKey());
|
stmt.setOperationStatus(OperationStatus.Executed.getKey());
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue