This commit is contained in:
parent
999b0999de
commit
08867e3cb9
1 changed files with 35 additions and 4 deletions
|
|
@ -4,17 +4,17 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf57;
|
||||||
|
import ru.clearing.classes.statics.data.statement.Statement;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
||||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
|
||||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
|
||||||
import ru.spcex.platform.enumeration.RegistryUnit;
|
|
||||||
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;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
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.RegistryCodeSqlBuilder;
|
||||||
|
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
|
@ -24,10 +24,14 @@ import java.util.Optional;
|
||||||
public class DmiService {
|
public class DmiService {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final Imdg<Registry> rgsImdg;
|
private final Imdg<Registry> rgsImdg;
|
||||||
|
private final Imdg<SDf57> sDf57Imdg;
|
||||||
|
private final Imdg<Statement> statementImdg;
|
||||||
private final RegistryManager rgsMng;
|
private final RegistryManager rgsMng;
|
||||||
|
|
||||||
public DmiService(ImdgProvider imdgProvider, RegistryManager rgsMng) {
|
public DmiService(ImdgProvider imdgProvider, RegistryManager rgsMng) {
|
||||||
this.rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
this.rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||||
|
this.sDf57Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf57, SDf57.class);
|
||||||
|
this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
|
||||||
this.rgsMng = rgsMng;
|
this.rgsMng = rgsMng;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,6 +90,33 @@ public class DmiService {
|
||||||
findDmiByComment(tcrId, securitySymbol, comment).ifPresentOrElse(d__i -> {
|
findDmiByComment(tcrId, securitySymbol, comment).ifPresentOrElse(d__i -> {
|
||||||
d__i.setContract(contract);
|
d__i.setContract(contract);
|
||||||
d__i.setUpdated(Instant.now());
|
d__i.setUpdated(Instant.now());
|
||||||
|
try {
|
||||||
|
Long dbfId = Long.valueOf(contract);
|
||||||
|
SDf57 sdf57 = sDf57Imdg.getFirstObjectBySQL("dbfId=%d".formatted(dbfId));
|
||||||
|
if (sdf57 != null) {
|
||||||
|
ImdgPredicateBuilder pb = statementImdg.predicateBuilder();
|
||||||
|
ImdgPredicate stmtPrdct = pb.and(
|
||||||
|
pb.equals("inSDfId", sdf57.getId()),
|
||||||
|
pb.equals("inOutSDfType", InOutSDfType.type57.getKey())
|
||||||
|
);
|
||||||
|
Statement stmt = statementImdg.getFirstObjectByPredicate(stmtPrdct);
|
||||||
|
if (stmt != null && OperationStatus.Executed.equalsByKey(stmt.getOperationStatus())) {
|
||||||
|
d__i.setRegistryStatus(RegistryStatus.OK.getKey());
|
||||||
|
} else {
|
||||||
|
log.warn("tcrId={} securitySymbol={} comment={} sdf57 dbfId={} found, stmt.id={} status {}. d**i status will not be updated",
|
||||||
|
tcrId,
|
||||||
|
securitySymbol,
|
||||||
|
comment,
|
||||||
|
dbfId,
|
||||||
|
stmt != null ? stmt.getId() : null,
|
||||||
|
stmt != null ? stmt.getOperationStatus() : null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Throwable e) {
|
||||||
|
log.error("sdf57 search by {}: error {}",
|
||||||
|
contract,
|
||||||
|
ExceptionUtils.getStackTrace(e));
|
||||||
|
}
|
||||||
rgsImdg.update(d__i);
|
rgsImdg.update(d__i);
|
||||||
log.trace("set {}.id={} contract {}", d__i.getRegistryCode(), d__i.getId(), contract);
|
log.trace("set {}.id={} contract {}", d__i.getRegistryCode(), d__i.getId(), contract);
|
||||||
}, () -> log.trace("didn't find DM*I by tcr.id={} securitySymbol={} comment={}",
|
}, () -> log.trace("didn't find DM*I by tcr.id={} securitySymbol={} comment={}",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue