http://jira.mfd.msk:8088/browse/CLS-372 SDF57 создается DM*T по любым specif №.*

This commit is contained in:
ialbert 2023-06-27 16:53:06 +03:00
parent 91f1c9a5df
commit 7b6c6a4ad0

View file

@ -67,7 +67,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
private final Imdg<Security> securityImdg; private final Imdg<Security> securityImdg;
private final Imdg<Currency> currencyImdg; private final Imdg<Currency> currencyImdg;
private final IMessageResolver messageResolver; private final IMessageResolver messageResolver;
private final Pattern pattern = Pattern.compile("\\w*/\\d{6}/\\d*/\\d*"); private final Pattern pattern = Pattern.compile(".*");
public Sdf57Executor(@Qualifier("sdf57Validator") Function<SDf57, IValidator> sDf57Validator, public Sdf57Executor(@Qualifier("sdf57Validator") Function<SDf57, IValidator> sDf57Validator,
LoggingService errorLogger, LoggingService errorLogger,
@ -164,7 +164,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
return; return;
Optional<EnumMessage> err = validateActiveness(company, account); Optional<EnumMessage> err = validateActiveness(company, account);
if (err.isEmpty()) { if (err.isEmpty()) {
Consumer<Registry> update = rgs -> { findRegByDesignation(stmt, RegistryDesignation.A).ifPresentOrElse(rgs -> {
updateReg(stmt, rgs); updateReg(stmt, rgs);
//добавил создание если не найдены //добавил создание если не найдены
Registry registryUnitB = findRegByUnit(stmt, rgs, RegistryUnit.B).orElse(copyRegB(rgs)); Registry registryUnitB = findRegByUnit(stmt, rgs, RegistryUnit.B).orElse(copyRegB(rgs));
@ -182,18 +182,15 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
registryImdg.insert(registryUnitB); registryImdg.insert(registryUnitB);
} }
registryImdg.update(rgs); registryImdg.update(rgs);
}; }, () -> {
Consumer<RegistryDesignation> createRegA = (dsgn) -> { Registry registry = createRegistryByStatement(stmt, company, account, RegistryDesignation.A);
Registry registry = createRegistryByStatement(stmt, company, account, dsgn);
Registry registryB = copyRegB(registry); Registry registryB = copyRegB(registry);
Registry registryF = copyRegF(registry, registryB.getBalance()); Registry registryF = copyRegF(registry, registryB.getBalance());
registryImdg.insert(registry); registryImdg.insert(registry);
registryImdg.insert(registryF); registryImdg.insert(registryF);
registryImdg.insert(registryB); registryImdg.insert(registryB);
}; });
findRegByDesignation(stmt, RegistryDesignation.A).ifPresentOrElse(update, () -> createRegA.accept(RegistryDesignation.A));
InOutDirection direction = IEnumKey.getEnumByKey(InOutDirection.class, stmt.getInOutDirection()); InOutDirection direction = IEnumKey.getEnumByKey(InOutDirection.class, stmt.getInOutDirection());
if (!StringUtils.isEmpty(sdf57.getSpecif()) && pattern.matcher(sdf57.getSpecif()).find() && InOutDirection.in.equals(direction)) { if (!StringUtils.isEmpty(sdf57.getSpecif()) && pattern.matcher(sdf57.getSpecif()).find() && InOutDirection.in.equals(direction)) {
//todo доделать 11. Идентификация средств УК на клиринговом счете //todo доделать 11. Идентификация средств УК на клиринговом счете