SdDf57Executor: фикс поисков регистров B и F в случае инфо счета
This commit is contained in:
parent
f5d7a7b127
commit
a14ee21fd6
1 changed files with 7 additions and 7 deletions
|
|
@ -188,8 +188,8 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
log.debug("stmt.id={}, found AM*T.id={}, updating...", stmt.getId(), rgs.getId());
|
||||
updateReg(stmt, rgs);
|
||||
//добавил создание если не найдены
|
||||
Registry registryUnitB = findRegByUnit(stmt, rgs, RegistryUnit.B).orElse(copyRegB(rgs));
|
||||
Registry registryUnitF = findRegByUnit(stmt, rgs, RegistryUnit.F).orElse(copyRegF(rgs, null)); //передаю null т.к. отнимется ниже по коду
|
||||
Registry registryUnitB = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.B).orElse(copyRegB(rgs));
|
||||
Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs, null)); //передаю null т.к. отнимется ниже по коду
|
||||
registryUnitF.setBalance(rgs.getBalance().subtract(registryUnitB.getBalance()));
|
||||
registryUnitF.setUpdated(Instant.now());
|
||||
//registry F всегда меняется
|
||||
|
|
@ -548,7 +548,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
}
|
||||
}
|
||||
|
||||
private Optional<Registry> findRegByUnit(Statement s, Registry registry, RegistryUnit unit) {
|
||||
private Optional<Registry> findRegByUnit(Long companyId, Long accountId, String contract, Registry registry, RegistryUnit unit) {
|
||||
RegistryTradingParams p = new RegistryTradingParams(
|
||||
IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()),
|
||||
IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()),
|
||||
|
|
@ -559,12 +559,12 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
|
||||
ImdgPredicate rgstrPredicate = pb.and(pb.sql(sql),
|
||||
pb.sql(sql),
|
||||
pb.equals("companyId", s.getAddresseeId()), //fixme companyId?
|
||||
pb.equals("accountId", s.getAccountId())
|
||||
pb.equals("companyId", companyId), //fixme companyId?
|
||||
pb.equals("accountId", accountId)
|
||||
|
||||
);
|
||||
if (RegistryDesignation.D.equalsByKey(registry.getRegistryDesignation()) && !TextUtil.isEmpty(s.getContract())) {
|
||||
rgstrPredicate = pb.and(rgstrPredicate, pb.equals("contract", s.getContract()));
|
||||
if (RegistryDesignation.D.equalsByKey(registry.getRegistryDesignation()) && !TextUtil.isEmpty(contract)) {
|
||||
rgstrPredicate = pb.and(rgstrPredicate, pb.equals("contract", contract));
|
||||
}
|
||||
return Optional.ofNullable(registryImdg.getSingleObjectByPredicate(rgstrPredicate));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue