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);
|
||||
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
|
||||
String genTime = formatInstant(sdf57.getGenerationTime(), readableDateTime);
|
||||
String ntfMsg = dmauNotificationText(direction, genTime, sdf57);
|
||||
|
|
|
|||
|
|
@ -151,11 +151,7 @@ public class DmiService {
|
|||
String contract) {
|
||||
BigDecimal[] dmiBalance = {null};
|
||||
findDmiByContract(tcrId, securitySymbol, contract).ifPresentOrElse(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);
|
||||
dmiBalance[0] = BigDecimalUtil.safeBD(d__i.getBalance());
|
||||
dmiBalance[0] = setOk(d__i);
|
||||
}, () -> {
|
||||
log.trace("didn't find DM*I by tcr.id={} securitySymbol={} contract={}",
|
||||
tcrId, securitySymbol, contract);
|
||||
|
|
@ -163,6 +159,14 @@ public class DmiService {
|
|||
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) {
|
||||
ImdgPredicateBuilder pb = rgsImdg.predicateBuilder();
|
||||
RegistryTradingParams rgsCde = RegistryTradingParams.D__I;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue