This commit is contained in:
parent
feb9f5783c
commit
672a463cad
2 changed files with 27 additions and 5 deletions
|
|
@ -504,6 +504,24 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
registryImdg.insert(newDmau);
|
registryImdg.insert(newDmau);
|
||||||
log.debug("stmt.id={} created DMAU.id={}", stmt.getId(), newDmau.getId());
|
log.debug("stmt.id={} created DMAU.id={}", stmt.getId(), newDmau.getId());
|
||||||
});
|
});
|
||||||
|
Optional<Registry> dmai = RegistrySearch.builder(registryImdg)
|
||||||
|
.rgsCode(RegistryTradingParams.DMAI)
|
||||||
|
.companyId(cmp.getId())
|
||||||
|
.accountId(acc.getId())
|
||||||
|
.accountType(AccountType.Anlt)
|
||||||
|
.find();
|
||||||
|
dmai.ifPresentOrElse(
|
||||||
|
r -> log.debug("stmt.id={} DMAI.id={} found", stmt.getId(), r.getId()),
|
||||||
|
() -> log.debug("stmt.id={} DMAI not found", stmt.getId()));
|
||||||
|
Optional<BigDecimal> dmaiBalanceO = dmai.map(dmiService::setOk);
|
||||||
|
if (dmaiBalanceO.isPresent() && asts.isPresent()) {
|
||||||
|
AssetTrio trio = asts.get();
|
||||||
|
BigDecimal dmiBalance = dmaiBalanceO.get();
|
||||||
|
BigDecimal planBalance = safeBD(trio.a__t().getPlanBalance());
|
||||||
|
trio.a__t().setPlanBalance(planBalance.add(dmiBalance));
|
||||||
|
registryImdg.update(trio.a__t());
|
||||||
|
assets.process(trio.a__b(), trio.a__t(), trio.a__f(), BigDecimal.ZERO);
|
||||||
|
}
|
||||||
//DMAU подразумевает увеличение остатка поля balance и credit registry.code=DMAU
|
//DMAU подразумевает увеличение остатка поля balance и credit registry.code=DMAU
|
||||||
String genTime = formatInstant(sdf57.getGenerationTime(), readableDateTime);
|
String genTime = formatInstant(sdf57.getGenerationTime(), readableDateTime);
|
||||||
String ntfMsg = dmauNotificationText(direction, genTime, sdf57);
|
String ntfMsg = dmauNotificationText(direction, genTime, sdf57);
|
||||||
|
|
|
||||||
|
|
@ -151,11 +151,7 @@ public class DmiService {
|
||||||
String contract) {
|
String contract) {
|
||||||
BigDecimal[] dmiBalance = {null};
|
BigDecimal[] dmiBalance = {null};
|
||||||
findDmiByContract(tcrId, securitySymbol, contract).ifPresentOrElse(d__i -> {
|
findDmiByContract(tcrId, securitySymbol, contract).ifPresentOrElse(d__i -> {
|
||||||
d__i.setRegistryStatus(RegistryStatus.OK.getKey());
|
dmiBalance[0] = setOk(d__i);
|
||||||
d__i.setUpdated(Instant.now());
|
|
||||||
log.trace("updating {} status to {}", d__i.getRegistryCode(), d__i.getRegistryStatus());
|
|
||||||
rgsImdg.update(d__i);
|
|
||||||
dmiBalance[0] = BigDecimalUtil.safeBD(d__i.getBalance());
|
|
||||||
}, () -> {
|
}, () -> {
|
||||||
log.trace("didn't find DM*I by tcr.id={} securitySymbol={} contract={}",
|
log.trace("didn't find DM*I by tcr.id={} securitySymbol={} contract={}",
|
||||||
tcrId, securitySymbol, contract);
|
tcrId, securitySymbol, contract);
|
||||||
|
|
@ -163,6 +159,14 @@ public class DmiService {
|
||||||
return Optional.ofNullable(dmiBalance[0]);
|
return Optional.ofNullable(dmiBalance[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal setOk(Registry d__i) {
|
||||||
|
d__i.setRegistryStatus(RegistryStatus.OK.getKey());
|
||||||
|
d__i.setUpdated(Instant.now());
|
||||||
|
log.trace("updating {} status to {}", d__i.getRegistryCode(), d__i.getRegistryStatus());
|
||||||
|
rgsImdg.update(d__i);
|
||||||
|
return BigDecimalUtil.safeBD(d__i.getBalance());
|
||||||
|
}
|
||||||
|
|
||||||
private Optional<Registry> findDmiByContract(Long tcrId, String securitySymbol, String contract) {
|
private Optional<Registry> findDmiByContract(Long tcrId, String securitySymbol, String contract) {
|
||||||
ImdgPredicateBuilder pb = rgsImdg.predicateBuilder();
|
ImdgPredicateBuilder pb = rgsImdg.predicateBuilder();
|
||||||
RegistryTradingParams rgsCde = RegistryTradingParams.D__I;
|
RegistryTradingParams rgsCde = RegistryTradingParams.D__I;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue