From 6e2364d91c7a4f8588344cc5f014d23fb5197bd3 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 2 May 2024 15:43:42 +0300 Subject: [PATCH] fix build account field --- .../clearing/account/service/AccountService.java | 3 ++- .../account/service/InformationAccountService.java | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java index 90b6de7f0..b9892998c 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java @@ -145,7 +145,8 @@ public class AccountService extends QueueConsumer implements InitializingBean { account.setCompanyId(req.getCompanyId()); account.setAccount(req.getAccount()); if (AccountType.Info.equalsByKey(req.getAccountType())) { - Long infoSequenceId = informationAccountService.accountNextId(currency); + Long infoSequenceId = informationAccountService.accountNextId(currency, currencyCodeId); + String accountValue = informationAccountService.generateInfoAccount(currencyCodeId, infoSequenceId); log.trace("New info-account SequenceId={} account={}", infoSequenceId, accountValue); account.setAccount(accountValue); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java index 91b36c01b..41215bc47 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java @@ -119,7 +119,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali String currency = req.getCurrency() == null ? CurrencyCode.RUB.getKey() : req.getCurrency(); //userRequest.getRequestPayload().getCurrency(); Long newId = informationAccountImdg.nextIDSequenceFor(); - Long infoSequenceId = accountNextId(currency); + Long infoSequenceId = accountNextId(currency, 810L); String accountValue = generateInfoAccount(810L, infoSequenceId); log.trace("New info-account id={}, sequenceId={}, account={}", newId, infoSequenceId, accountValue); @@ -216,7 +216,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali if (currency == null) currency = CurrencyCode.RUB.getKey(); Long newId = informationAccountImdg.nextIDSequenceFor(); - Long infoSequenceId = accountNextId(currency); // требуется последовательность n+1 + Long infoSequenceId = accountNextId(currency, 810L); // требуется последовательность n+1 String accountValue = generateInfoAccount(810L, infoSequenceId); log.trace("New info-account id={}, sequenceId={}, account={}", newId, infoSequenceId, accountValue); @@ -305,14 +305,16 @@ public class InformationAccountService extends QueueConsumer implements Initiali return "%d%d%08d%d".formatted(39911, currencyCodeId, id, 7000); } - + public synchronized Long accountNextId(String currency) { + return accountNextId(currency, 810L); + } /** * Сквозной номер инфо-счетов * * @param * @return infoCounter++ */ - public synchronized Long accountNextId(String currency) { + public synchronized Long accountNextId(String currency, Long currencyCodeId) { if (currency == null) currency = CurrencyCode.RUB.getKey(); // default AtomicLong infoCounter = infoCounterByCurrency.get(currency); @@ -327,7 +329,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali infoCounter = new AtomicLong(1); log.debug("No account information on map. n={}", infoCounter.get()); } else { - Pattern accPattern = Pattern.compile("39911810([0-9]{8})7000"); + Pattern accPattern = Pattern.compile("39911%d[0-9]{8})7000".formatted(currencyCodeId)); int maxN = 1; int parsedCount = 0; String lastAccount = null; // for debug