From e1df8110a73414792e6f4ceb7a4b1faa89302d66 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 6 Sep 2023 19:44:56 +0300 Subject: [PATCH] =?UTF-8?q?account-service=20http://jira.mfd.msk:8088/brow?= =?UTF-8?q?se/CLS-489=20sdf53=20=D0=B7=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20result?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ClearingAccountService.java | 21 +++++++++++++++---- .../service/ClearingAccountServiceTest.java | 8 +++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java index 33b070a87..f1dd4d857 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java @@ -41,6 +41,7 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.utils.collection.Pair; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IEnumKey; +import ru.spcex.platform.utils.enumeration.IErrorEnumId; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; @@ -340,14 +341,16 @@ public class ClearingAccountService extends QueueConsumer implements Initializin if (sdfProcessService.parseSdf52Status(sDf52.getStatus()) == null) { String msg = messageResolver.resolve(new EnumMessage(AccountError.WrongFieldValue, "status")); log.warn("By generationId={} s_df52[{}] error: {}", groupId, sDf52.getId(), msg); - toProcessSDF53.add(new MutableTriple<>(sDf52, null, SDFProcessService.SDF_STATUS_ERROR)); + toProcessSDF53.add(new MutableTriple<>(sDf52, null, + makeSdfErrorText(AccountError.WrongFieldValue, SDFProcessService.SDF_STATUS_ERROR))); continue; } Company company = sDf52.getDeal() == null ? null : companyImdg.getSingleObjectByFieldValues(Map.of("tradingCode", sDf52.getDeal())); if (company == null) { String msg = messageResolver.resolve(new EnumMessage(AccountError.CompanyNotFound, sDf52.getDeal())); log.warn("By generationId={} s_df52[{}] error: {}", groupId, sDf52.getId(), msg); - toProcessSDF53.add(new MutableTriple<>(sDf52, null, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND)); + toProcessSDF53.add(new MutableTriple<>(sDf52, null, + makeSdfErrorText(AccountError.CompanyNotFound, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND))); continue; } String serviceType = serviceTypeByCMCOfCompany(company.getId()); @@ -358,7 +361,8 @@ public class ClearingAccountService extends QueueConsumer implements Initializin if (relation == null) { String msg = messageResolver.resolve(new EnumMessage(AccountError.ClearingCategoryNotFound, company.getTradingCode(), serviceType)); log.warn("By generationId={} s_df52[{}] error: {}", groupId, sDf52.getId(), msg); - toProcessSDF53.add(new MutableTriple<>(sDf52, null, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND)); + toProcessSDF53.add(new MutableTriple<>(sDf52, null, + makeSdfErrorText(AccountError.ClearingCategoryNotFound, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND))); continue; } Account account = sDf52.getAccount() == null ? null : accountImdg.getFirstObjectByFieldValues(Map.of( @@ -369,7 +373,8 @@ public class ClearingAccountService extends QueueConsumer implements Initializin if (account == null) { String msg = messageResolver.resolve(new EnumMessage(AccountError.AccountNotFound, sDf52.getAccount())); log.warn("By generationId={} s_df52[{}] error: {}", groupId, sDf52.getId(), msg); - toProcessSDF53.add(new MutableTriple<>(sDf52, null, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND)); + toProcessSDF53.add(new MutableTriple<>(sDf52, null, + makeSdfErrorText(AccountError.AccountNotFound, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND))); continue; } toUpdate.add(new Pair<>(sDf52, account)); @@ -420,6 +425,14 @@ public class ClearingAccountService extends QueueConsumer implements Initializin return null; } + protected String makeSdfErrorText(IErrorEnumId clrError, String sdfCode) { + if (clrError == null) return sdfCode; + sdfCode = clrError.getId().toString(); + if (sdfCode.length() > 3) + sdfCode = sdfCode.substring(sdfCode.length() - 3); + return sdfCode; + } + public void sendStatementRequestBack(Long groupingSdf01Id, Long groupSdf02Id, List results) { final String destination = Consts.STATEMENT_PROCESS; StatementRequest request = new StatementRequest(); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java index 2876c4be2..4e5bc803d 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java @@ -25,6 +25,7 @@ import ru.spcex.clearing.account.config.BeanConfiguration; import ru.spcex.clearing.account.config.validation.AccountValidationConfig; import ru.spcex.clearing.account.config.validation.ClearingAccountValidationConfig; import ru.spcex.clearing.account.config.validation.ValidationConfig; +import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.account.utils.MatcherFactory; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -53,6 +54,7 @@ import static ru.spcex.clearing.test.TestUtils.*; AccountValidationConfig.class, AccountService.class, ClearingAccountService.class, + SDFProcessService.class, ImdgTestConfig.class, KafkaTestConfig.class}) class ClearingAccountServiceTest { @@ -225,6 +227,12 @@ class ClearingAccountServiceTest { ACCOUNT_MATCHER.assertMatch(accountResult, predictableAccount); } + @Test + void makeSdfErrorText() { + Assertions.assertEquals("013", clearingAccountService.makeSdfErrorText(AccountError.CompanyNotFound, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND)); + Assertions.assertEquals("2", clearingAccountService.makeSdfErrorText(null, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND)); + } + // /** // * {@link ClearingAccountService#accountNewSdf01(BaseRequest)}
// * Тест проверяет создание сущности {@link BaseRequest} в Hazelcast при передаче из Apache Kafka.