From 457f05158833f51677e5e6924a579dfdf7df7d25 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 11 May 2023 14:31:24 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293=20meta?= =?UTF-8?q?=204:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0,=20=D1=87=D1=82=D0=BE=D0=B1=D1=8B=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=D1=81=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../misc/NotificationControllerTest.java | 2 +- .../PaymentInstructionControllerTest.java | 31 +- .../ContractRegisterControllerTest.java | 2 +- .../utilities/StatementControllerTest.java | 5 +- .../balance/config/SdfExecutorsConfig.java | 5 +- .../balance/config/ValidationConfig.java | 4 +- .../balance/service/Sdf01Executor.java | 13 +- .../balance/service/Sdf08Service.java | 4 +- .../balance/service/Sdf09Executor.java | 351 ++++++------- .../balance/service/Sdf16Executor.java | 8 +- .../balance/service/StatementService.java | 2 +- .../validation/Sdf09ValidationRule.java | 57 +- .../balance/service/AbstractServiceTest.java | 2 +- .../balance/service/Sdf01ExecutorTest.java | 5 +- .../balance/service/Sdf09ExecutorTest.java | 486 +++++++++--------- .../balance/service/Sdf16ExecutorTest.java | 1 - .../builder/PaymentInstructionCreator.java | 86 ++-- .../service/builder/Sdf03Builder.java | 32 +- .../service/builder/Sdf11Builder.java | 144 +++--- .../order/PaymentInstructionSorter.java | 27 +- .../services/converters/S_DF03_Converter.java | 50 +- .../services/converters/S_DF08_Converter.java | 4 +- .../services/converters/S_DF10_Converter.java | 14 +- .../services/converters/S_DF11_Converter.java | 90 ++-- .../logic/data/tables/SDf04Table.java | 52 +- .../logic/data/tables/SDf09Table.java | 14 +- .../logic/data/tables/SDf12Table.java | 8 +- .../service/ContractRegisterServiceTest.java | 2 +- .../ReportBR_0420314_P2_Collector.java | 17 +- .../registry/ContractRegisterNewRequest.java | 6 +- 30 files changed, 761 insertions(+), 763 deletions(-) diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/NotificationControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/NotificationControllerTest.java index e0cb15aad..cd026029e 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/NotificationControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/NotificationControllerTest.java @@ -36,7 +36,7 @@ class NotificationControllerTest extends AbstractControllerTest { profileDocument.setSenderId(1000L); profileDocument.setAddresseeId(1000L); profileDocument.setObjectType("ObjectType"); - profileDocument.setObjectId(Instant.now()); + profileDocument.setObjectId(1111122222L); profileDocument.setNotificationStatus("Status"); profileDocument.setId(currentId.get()); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/payment/PaymentInstructionControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/payment/PaymentInstructionControllerTest.java index e1de08c64..e86246a80 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/payment/PaymentInstructionControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/payment/PaymentInstructionControllerTest.java @@ -9,6 +9,7 @@ import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; import java.util.Collection; @@ -32,6 +33,7 @@ class PaymentInstructionControllerTest extends AbstractControllerTest { void getAll() throws Exception { //ARRANGE PaymentInstruction paymentInstruction = new PaymentInstruction(); + paymentInstruction.setSenderId(1010L); paymentInstruction.setAddresseeId(1010L); paymentInstruction.setAdresseeBic("123456789"); @@ -41,21 +43,24 @@ class PaymentInstructionControllerTest extends AbstractControllerTest { paymentInstruction.setPaymentDate(Instant.now()); paymentInstruction.setPaymentPurpose("Purpose"); paymentInstruction.setSettlementDate(LocalDate.now()); - paymentInstruction.setCreditLegAmount(2020L); - paymentInstruction.setDebitLegAmount(2020L); - paymentInstruction.setCreditLegAccountId(2020L); - paymentInstruction.setCreditCsAccount("Ok"); - paymentInstruction.setCreditLegAccount("123456789"); - paymentInstruction.setDebitLegAccountId(3030L); - paymentInstruction.setDebitCsAccount("123456789"); - paymentInstruction.setDebitLegAccount("123456789"); - paymentInstruction.setCreditLegDirection(3030L); - paymentInstruction.setDebitLegDirection(3030L); - paymentInstruction.setCreditLegCurrencyCode("123456789"); - paymentInstruction.setDebitLegCurrencyCode("123456789"); - paymentInstruction.setClearingDate(LocalDate.now()); + paymentInstruction.setCreditLeg_amount(BigDecimal.valueOf(123.456)); + paymentInstruction.setDebitLeg_amount(BigDecimal.valueOf(123.256)); + paymentInstruction.setCreditLeg_accountId(currentId.get()); + paymentInstruction.setCredit_csAccount("ACCT1"); + paymentInstruction.setCreditLeg_account("ACCT2"); + paymentInstruction.setDebitLeg_accountId(222L); + paymentInstruction.setDebit_csAccount("ACCC3"); + paymentInstruction.setDebitLeg_account("AC-1"); + paymentInstruction.setCreditLeg_direction("BUY"); + paymentInstruction.setDebitLeg_direction("SELL"); + paymentInstruction.setCreditLeg_currencyCode("RUB"); + paymentInstruction.setDebitLeg_currencyCode("RUB"); + paymentInstruction.setCreditLeg_securityId(12L); + paymentInstruction.setDebitLeg_securityId(15L); paymentInstruction.setTransactionStatus("Status"); paymentInstruction.setDocumentNumber("123456789"); + paymentInstruction.setClearingDate(LocalDate.now()); + paymentInstruction.setSessionId(555L); paymentInstruction.setId(currentId.get()); IMap iMap = hazelcastServiceTest.getHazelcast().getMap(IMDGDistributedNames.Map_PaymentInstruction); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ContractRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ContractRegisterControllerTest.java index 3e756fcf4..259f0dcfb 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ContractRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ContractRegisterControllerTest.java @@ -24,7 +24,7 @@ class ContractRegisterControllerTest extends AbstractControllerTest { contractRegister.setName("code"); contractRegister.setNumber("com"); contractRegister.setIssueDate(LocalDate.now()); - contractRegister.setCompanyFullName(currentId.get()); + contractRegister.setCompanyFullName("CF name C"); contractRegister.setCompanyId(currentId.get()); contractRegister.setDocumentType("symb"); contractRegister.setIssuePlace("name"); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementControllerTest.java index added83eb..874338a6d 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementControllerTest.java @@ -77,10 +77,9 @@ class StatementControllerTest extends AbstractControllerTest { statement.setInOutDirection("direction"); statement.setSettlementDate(LocalDate.now()); statement.setAmount(new BigDecimal(0)); - statement.setCashMovementCurrencyCode("cash"); statement.setOperationStatus("status"); - statement.setErrorCode("error"); - statement.setErrorText("name"); + statement.setErrorCodeId(122L); + statement.setErrorTextId(123L); statement.setInSDfId(currentId.get()); statement.setOutSDfId(currentId.get()); statement.setInOutSDfType("type"); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/SdfExecutorsConfig.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/SdfExecutorsConfig.java index 9cf397465..0c6937090 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/SdfExecutorsConfig.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/SdfExecutorsConfig.java @@ -4,7 +4,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.spcex.clearing.balance.service.AbstractExecutor; import ru.spcex.clearing.balance.service.Sdf01Executor; -import ru.spcex.clearing.balance.service.Sdf09Executor; import ru.spcex.clearing.balance.service.Sdf16Executor; import ru.spcex.platform.classes.base.interfaces.WithAccount; import ru.spcex.platform.enumeration.SdfTable; @@ -17,11 +16,11 @@ public class SdfExecutorsConfig { @Bean("sdfExecutors") public Map> executorsMap(Sdf01Executor sdf01Executor, - Sdf09Executor sdf09Executor, + //Sdf09Executor sdf09Executor, Sdf16Executor sdf16Executor) { Map> executors = new HashMap<>(); executors.put(SdfTable.SDF_01, sdf01Executor); - executors.put(SdfTable.SDF_09, sdf09Executor); +// todo возможно удалят или переделают: executors.put(SdfTable.SDF_09, sdf09Executor); executors.put(SdfTable.SDF_16, sdf16Executor); return executors; } diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java index 4681150dc..87b39ee7f 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java @@ -94,8 +94,8 @@ public class ValidationConfig { return new ValidatorImpl<>(context, Sdf09ValidationRule.CompanyPresent, Sdf09ValidationRule.AccountPresent, - MarketIsUValidationRule.instance, - AccountBalanceFreeAmountEnough.instance(SDf09.class) + MarketIsUValidationRule.instance + //,AccountBalanceFreeAmountEnough.instance(SDf09.class) ); }; } diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf01Executor.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf01Executor.java index aae3482b9..4b321782d 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf01Executor.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf01Executor.java @@ -101,10 +101,11 @@ public class Sdf01Executor extends AbstractExecutor { SDf02 sdf02New = createSuccessSdf02(sdf01, generationIdForGroup); sdf02Imdg.insert(sdf02New); statement.setOutSDfId(sdf02New.getId()); - AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); + AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), + null/*statement.getCashMovementCurrencyCode()*/); if (accountResult.getError() != null) { - statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); - statement.setErrorText(errorResolver.resolve(accountResult.getError())); + statement.setErrorCodeId(accountResult.getError().getSubject().getId()); + // todo statement.setErrorText(errorResolver.resolve(accountResult.getError())); } else { accountBalanceImdg.insert(accountResult.getAccount()); //insert == update? statement.setOperationStatus(OperationStatus.Executed.getKey()); @@ -126,7 +127,6 @@ public class Sdf01Executor extends AbstractExecutor { statement.setInOutDirection(InOutDirection.in.getKey()); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf01.getId()); statement.setInOutSDfType(InOutSDfType.type1.getKey()); @@ -141,7 +141,6 @@ public class Sdf01Executor extends AbstractExecutor { statement.setInOutDirection(InOutDirection.in.getKey()); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statementImdg.update(statement); } @@ -169,7 +168,7 @@ public class Sdf01Executor extends AbstractExecutor { sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setFile_type(sdf01.getFile_type()); - sDf02.setInSDf01Id(sdf01.getId()); + sDf02.setInSDfId(sdf01.getId()); String errorId = error.getSubject().getId().toString(); sDf02.setResult(errorId.substring(errorId.length() - 3)); sDf02.setGenerationId(generationIdForGroup); @@ -191,7 +190,7 @@ public class Sdf01Executor extends AbstractExecutor { sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setFile_type(sdf01.getFile_type()); - sDf02.setInSDf01Id(sdf01.getId()); + sDf02.setInSDfId(sdf01.getId()); sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationTime(Instant.now()); sDf02.setResult("OK!"); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf08Service.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf08Service.java index 41ae97a7d..61b4baac9 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf08Service.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf08Service.java @@ -45,9 +45,9 @@ public class Sdf08Service extends QueueConsumer implements InitializingBean { private void newSDf08(BaseRequest userRequest) { log.debug("getAllBalance request received"); SDf08 sDf08 = new SDf08(); - sDf08.setNumber(idGenerator.nextId().toString()); +// sDf08.setNumber(idGenerator.nextId().toString()); Instant now = Instant.now(); - sDf08.setDatetime(String.valueOf(now.toEpochMilli())); +// sDf08.setDatetime(String.valueOf(now.toEpochMilli())); sDf08.setGenerationTime(now); sDf08.setGenerationId(idGenerator.nextId()); sdf8Map.insert(sDf08); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java index 2291363ad..b52d2ab6c 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java @@ -1,175 +1,176 @@ -package ru.spcex.clearing.balance.service; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.account.Account; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.sdf.SDf09; -import ru.clearing.classes.statics.data.sdf.SDf10; -import ru.clearing.classes.statics.data.statement.Statement; -import ru.spcex.clearing.balance.errors.BalanceError; -import ru.spcex.clearing.balance.validation.ValidationStored; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; -import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; -import ru.spcex.platform.enumeration.*; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.validation.IValidator; - -import java.time.Instant; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.util.Collection; -import java.util.Map; -import java.util.Optional; -import java.util.function.Function; - -@Service -public class Sdf09Executor extends AbstractExecutor { - private final Logger log = LoggerFactory.getLogger(getClass()); - private final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy"); - private final Imdg statementImdg; - private final Function sDf09Validator; - private final LoggingService errorLogger; - private final Imdg sdf10Imdg; - private final ImdgProvider imdgProvider; - private final AccountBalanceService accountBalanceService; - private final IMessageResolver errorResolver; - private final Imdg accountBalanceImdg; - - public Sdf09Executor(Function sDf09Validator, - LoggingService errorLogger, - ImdgProvider imdgProvider, - AccountBalanceService accountBalanceService, - IMessageResolver errorResolver) { - this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); - this.sdf10Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf10, SDf10.class); - this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);; - this.sDf09Validator = sDf09Validator; - this.errorLogger = errorLogger; - this.imdgProvider = imdgProvider; - this.accountBalanceService = accountBalanceService; - this.errorResolver = errorResolver; - } - - @Override - String exportTableName() { - return "DF-10"; - } - - public Result execute(Collection sdf, StatementRequest statementRequest){ - Result result = new Result(); - Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId(); - result.setGenerationId(generationIdForGroup); - for (SDf09 sdf09 : sdf) { - IValidator validator = sDf09Validator.apply(sdf09); - Optional error = validator.tillFirstError(); - Company company = validator.getStored(ValidationStored.Company); - if (statementRequest.getAccountCreationResults().size() == 0 - && BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { - //на данном шаге company существует -> getId ok - //формируем пакетный запрос на добавление account - //ответ придет в этот же метод, process - result.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); - log.info("account {} for sdf01.id={} not found - send request for creation", sdf09.getAccount(), sdf09.getId()); - continue; - } else if (BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { - log.error("fatal error: resumed processing after generating accounts, but no account found for sdf01.id={}", sdf09.getId()); - } - if (error.isPresent()) { - errorLogger.logError("sdf01.id={}", error.get(), sdf09.getId()); - sdf10Imdg.insert(createErrorSdf10(sdf09, error.get(), generationIdForGroup)); - continue; - } - Statement statement = statementImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount())); - if (statement == null) { - statement = createFlow(sdf09, - company, - validator.getStored(ValidationStored.Account)); - } else { - updateFlow(statement, sdf09, - validator.getStored(ValidationStored.Account)); - } - SDf10 sdf10New = createSuccessSdf10(sdf09, generationIdForGroup); - sdf10Imdg.insert(sdf10New); - statement.setOutSDfId(sdf10New.getId()); - AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); - if (accountResult.getError() != null) { - statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); - statement.setErrorText(errorResolver.resolve(accountResult.getError())); - } else { - accountBalanceImdg.insert(accountResult.getAccount()); //insert == update? - statement.setOperationStatus(OperationStatus.Executed.getKey()); - } - statementImdg.update(statement); - } - return result; - } - - private Statement createFlow(SDf09 sdf09, Company company, Account account) { - Statement statement = new Statement(); - statement.setAddresseeId(company.getId()); - statement.setSenderId(Sender.Prc.getId()); - statement.setCreated(Instant.now()); - statement.setClearingDate(LocalDate.now()); - statement.setStatementType(StatementType.incr.getKey()); - statement.setAccountId(account.getId()); - statement.setAccount(sdf09.getAccount()); - statement.setInOutDirection(InOutDirection.in.getKey()); - statement.setAmount(sdf09.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); - statement.setOperationStatus(OperationStatus.Pending.getKey()); - statement.setInSDfId(sdf09.getId()); - statement.setInOutSDfType(InOutSDfType.type9.getKey()); - statementImdg.insert(statement); - return statement; - } - - private void updateFlow(Statement statement, SDf09 sdf09, Account account) { - statement.setUpdated(Instant.now()); - statement.setAccountId(account.getId()); - statement.setAccount(sdf09.getAccount()); - statement.setInOutDirection(InOutDirection.in.getKey()); - statement.setAmount(sdf09.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); - statement.setInSDfId(sdf09.getId()); -// statement.setOutSDfId(sdf10.getId()); заполняется внешним кодом - statement.setInOutSDfType(InOutSDfType.type9.getKey()); - statementImdg.update(statement); - } - - private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { - AccountSdfRequestPart req = new AccountSdfRequestPart(); - req.setAccount(account); - req.setCompanyId(companyId); - req.setSdfId(sdf09Id); - return req; - } - - private SDf10 createErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { - SDf10 sDf10 = createSuccessSdf10(sdf09, generationIdForGroup); - String errorId = error.getSubject().getId().toString(); - sDf10.setResult(errorId.substring(errorId.length() - 3)); - return sDf10; - } - - private SDf10 createSuccessSdf10(SDf09 sdf09, Long generationIdForGroup) { - SDf10 sDf10 = new SDf10(); - sDf10.setAccount(sdf09.getAccount()); - sDf10.setSum(sdf09.getSum()); - sDf10.setMarket(sdf09.getMarket()); - sDf10.setType(sdf09.getType()); - sDf10.setNumber(sdf09.getNumber()); - sDf10.setInn(sdf09.getInn()); - sDf10.setResult("OK"); - sDf10.setGenerationId(generationIdForGroup); - sDf10.setGenerationTime(Instant.now()); - sDf10.setInSDf09Id(sdf09.getId()); - return sDf10; - } -} +//package ru.spcex.clearing.balance.service; +// +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.stereotype.Service; +//import ru.clearing.classes.statics.data.account.Account; +//import ru.clearing.classes.statics.data.account.AccountBalance; +//import ru.clearing.classes.statics.data.company.Company; +//import ru.clearing.classes.statics.data.sdf.SDf09; +//import ru.clearing.classes.statics.data.sdf.SDf10; +//import ru.clearing.classes.statics.data.statement.Statement; +//import ru.spcex.clearing.balance.errors.BalanceError; +//import ru.spcex.clearing.balance.validation.ValidationStored; +//import ru.spcex.clearing.imdg.IMDGDistributedNames; +//import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; +//import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; +//import ru.spcex.platform.enumeration.*; +//import ru.spcex.platform.imdg.api.Imdg; +//import ru.spcex.platform.imdg.api.ImdgProvider; +//import ru.spcex.platform.utils.enumeration.EnumMessage; +//import ru.spcex.platform.utils.enumeration.IMessageResolver; +//import ru.spcex.platform.utils.validation.IValidator; +// +//import java.time.Instant; +//import java.time.LocalDate; +//import java.time.format.DateTimeFormatter; +//import java.util.Collection; +//import java.util.Map; +//import java.util.Optional; +//import java.util.function.Function; +// +////todo SDf09 был изменён. Sdf09Executor теперь не работает. +//@Service +//public class Sdf09Executor extends AbstractExecutor { +// private final Logger log = LoggerFactory.getLogger(getClass()); +// private final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy"); +// private final Imdg statementImdg; +// private final Function sDf09Validator; +// private final LoggingService errorLogger; +// private final Imdg sdf10Imdg; +// private final ImdgProvider imdgProvider; +// private final AccountBalanceService accountBalanceService; +// private final IMessageResolver errorResolver; +// private final Imdg accountBalanceImdg; +// +// public Sdf09Executor(Function sDf09Validator, +// LoggingService errorLogger, +// ImdgProvider imdgProvider, +// AccountBalanceService accountBalanceService, +// IMessageResolver errorResolver) { +// this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); +// this.sdf10Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf10, SDf10.class); +// this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);; +// this.sDf09Validator = sDf09Validator; +// this.errorLogger = errorLogger; +// this.imdgProvider = imdgProvider; +// this.accountBalanceService = accountBalanceService; +// this.errorResolver = errorResolver; +// } +// +// @Override +// String exportTableName() { +// return "DF-10"; +// } +// +// public Result execute(Collection sdf, StatementRequest statementRequest){ +// Result result = new Result(); +// Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId(); +// result.setGenerationId(generationIdForGroup); +// for (SDf09 sdf09 : sdf) { +// IValidator validator = sDf09Validator.apply(sdf09); +// Optional error = validator.tillFirstError(); +// Company company = validator.getStored(ValidationStored.Company); +// if (statementRequest.getAccountCreationResults().size() == 0 +// && BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { +// //на данном шаге company существует -> getId ok +// //формируем пакетный запрос на добавление account +// //ответ придет в этот же метод, process +// result.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); +// log.info("account {} for sdf01.id={} not found - send request for creation", sdf09.getAccount(), sdf09.getId()); +// continue; +// } else if (BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { +// log.error("fatal error: resumed processing after generating accounts, but no account found for sdf01.id={}", sdf09.getId()); +// } +// if (error.isPresent()) { +// errorLogger.logError("sdf01.id={}", error.get(), sdf09.getId()); +// sdf10Imdg.insert(createErrorSdf10(sdf09, error.get(), generationIdForGroup)); +// continue; +// } +// Statement statement = statementImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount())); +// if (statement == null) { +// statement = createFlow(sdf09, +// company, +// validator.getStored(ValidationStored.Account)); +// } else { +// updateFlow(statement, sdf09, +// validator.getStored(ValidationStored.Account)); +// } +// SDf10 sdf10New = createSuccessSdf10(sdf09, generationIdForGroup); +// sdf10Imdg.insert(sdf10New); +// statement.setOutSDfId(sdf10New.getId()); +// AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); +// if (accountResult.getError() != null) { +// statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); +// statement.setErrorText(errorResolver.resolve(accountResult.getError())); +// } else { +// accountBalanceImdg.insert(accountResult.getAccount()); //insert == update? +// statement.setOperationStatus(OperationStatus.Executed.getKey()); +// } +// statementImdg.update(statement); +// } +// return result; +// } +// +// private Statement createFlow(SDf09 sdf09, Company company, Account account) { +// Statement statement = new Statement(); +// statement.setAddresseeId(company.getId()); +// statement.setSenderId(Sender.Prc.getId()); +// statement.setCreated(Instant.now()); +// statement.setClearingDate(LocalDate.now()); +// statement.setStatementType(StatementType.incr.getKey()); +// statement.setAccountId(account.getId()); +// statement.setAccount(sdf09.getAccount()); +// statement.setInOutDirection(InOutDirection.in.getKey()); +// statement.setAmount(sdf09.getSum()); +// statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); +// statement.setOperationStatus(OperationStatus.Pending.getKey()); +// statement.setInSDfId(sdf09.getId()); +// statement.setInOutSDfType(InOutSDfType.type9.getKey()); +// statementImdg.insert(statement); +// return statement; +// } +// +// private void updateFlow(Statement statement, SDf09 sdf09, Account account) { +// statement.setUpdated(Instant.now()); +// statement.setAccountId(account.getId()); +// statement.setAccount(sdf09.getAccount()); +// statement.setInOutDirection(InOutDirection.in.getKey()); +// statement.setAmount(sdf09.getSum()); +// statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); +// statement.setInSDfId(sdf09.getId()); +//// statement.setOutSDfId(sdf10.getId()); заполняется внешним кодом +// statement.setInOutSDfType(InOutSDfType.type9.getKey()); +// statementImdg.update(statement); +// } +// +// private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { +// AccountSdfRequestPart req = new AccountSdfRequestPart(); +// req.setAccount(account); +// req.setCompanyId(companyId); +// req.setSdfId(sdf09Id); +// return req; +// } +// +// private SDf10 createErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { +// SDf10 sDf10 = createSuccessSdf10(sdf09, generationIdForGroup); +// String errorId = error.getSubject().getId().toString(); +// sDf10.setResult(errorId.substring(errorId.length() - 3)); +// return sDf10; +// } +// +// private SDf10 createSuccessSdf10(SDf09 sdf09, Long generationIdForGroup) { +// SDf10 sDf10 = new SDf10(); +// sDf10.setAccount(sdf09.getAccount()); +// sDf10.setSum(sdf09.getSum()); +// sDf10.setMarket(sdf09.getMarket()); +// sDf10.setType(sdf09.getType()); +// sDf10.setNumber(sdf09.getNumber()); +// sDf10.setInn(sdf09.getInn()); +// sDf10.setResult("OK"); +// sDf10.setGenerationId(generationIdForGroup); +// sDf10.setGenerationTime(Instant.now()); +// sDf10.setInSDf09Id(sdf09.getId()); +// return sDf10; +// } +//} diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf16Executor.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf16Executor.java index 7b0efe5e9..eb9080003 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf16Executor.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf16Executor.java @@ -105,10 +105,10 @@ public class Sdf16Executor extends AbstractExecutor { sdf17Imdg.insert(sdfNew); statement.setOutSDfId(sdfNew.getId()); AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), - statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); + statement.getAccountId(), statement.getAmount(), null /*todo statement.getCashMovementCurrencyCode() */); if (accountResult.getError() != null) { - statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); - statement.setErrorText(errorResolver.resolve(accountResult.getError())); + statement.setErrorCodeId(accountResult.getError().getSubject().getId()); + //todo аполнение statement.setErrorTextId(errorResolver.resolve(accountResult.getError())); } else { accountBalanceImdg.insert(accountResult.getAccount()); statement.setOperationStatus(OperationStatus.Executed.getKey()); @@ -143,7 +143,6 @@ public class Sdf16Executor extends AbstractExecutor { statement.setAccount(sdf.getAccount()); statement.setInOutDirection(InOutDirection.in.getKey()); statement.setAmount(sdf.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf.getId()); statement.setInOutSDfType(InOutSDfType.type16.getKey()); @@ -158,7 +157,6 @@ public class Sdf16Executor extends AbstractExecutor { statement.setAccount(sdf.getAccount()); statement.setInOutDirection(InOutDirection.in.getKey()); statement.setAmount(sdf.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setInSDfId(sdf.getId()); statement.setInOutSDfType(InOutSDfType.type16.getKey()); statementImdg.update(statement); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java index c2125fe09..5cddeb723 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java @@ -54,7 +54,7 @@ public class StatementService extends QueueConsumer implements InitializingBean this.kafkaReqProducer = kafkaReqProducer; this.executorsMap = executorsMap; this.sdfImdgs.put(SdfTable.SDF_01, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class)); - this.sdfImdgs.put(SdfTable.SDF_09, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf09, SDf09.class)); +// todo изменение классов. this.sdfImdgs.put(SdfTable.SDF_09, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf09, SDf09.class)); this.sdfImdgs.put(SdfTable.SDF_16, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf16, SDf16.class)); } diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf09ValidationRule.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf09ValidationRule.java index 64b6b80cf..7f1d910a9 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf09ValidationRule.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf09ValidationRule.java @@ -17,6 +17,7 @@ import java.math.RoundingMode; import java.util.Map; import java.util.Optional; +@Deprecated // связан с Sdf09Executor , он в переработке или удалении. public enum Sdf09ValidationRule implements IValidationRule> { CompanyPresent() { @Override @@ -24,48 +25,48 @@ public enum Sdf09ValidationRule implements IValidationRule companySymbolImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); - if (sdf09.getInn() == null) { - return of(BalanceError.CompanyNotFound, "empty inn"); - } - String innStr = sdf09.getInn().setScale(0, RoundingMode.DOWN).toString(); - CompanySymbols symbol = companySymbolImdg - .getSingleObjectByFieldValues(Map.of("companySymbol", CompanySymbol.INN.getKey(), - "companySymbolValue", innStr)); - Company company = null; - if (symbol != null) { - company = companyImdg.getSingleObjectByID(symbol.getCompanyId()); - } - if (company == null) { +// todo изменения классов. if (sdf09.getInn() == null) { +// return of(BalanceError.CompanyNotFound, "empty inn"); +// } +// String innStr = sdf09.getInn().setScale(0, RoundingMode.DOWN).toString(); +// CompanySymbols symbol = companySymbolImdg +// .getSingleObjectByFieldValues(Map.of("companySymbol", CompanySymbol.INN.getKey(), +// "companySymbolValue", innStr)); +// Company company = null; +// if (symbol != null) { +// company = companyImdg.getSingleObjectByID(symbol.getCompanyId()); +// } +// if (company == null) { return of(BalanceError.CompanyNotFound); - } - context.storeObject(ValidationStored.Company, company); - return empty(); +// } +// context.storeObject(ValidationStored.Company, company); +// return empty(); } }, AccountPresent() { @Override public Optional validate(ImdgValidationContext context) { SDf09 sdf09 = context.getValidatedObject(); - if (sdf09.getAccount() == null) { +// if (sdf09.getAccount() == null) { return of(BalanceError.AccountNotPresent); - } - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), - "accountType", AccountType.Clrn.getKey())); - if (account == null) { - return of(BalanceError.AccountNotPresent); - } - context.storeObject(ValidationStored.Account, account); - return empty(); +// } +// Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); +// Account account = accountImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), +// "accountType", AccountType.Clrn.getKey())); +// if (account == null) { +// return of(BalanceError.AccountNotPresent); +// } +// context.storeObject(ValidationStored.Account, account); +// return empty(); } }, Market() { @Override public Optional validate(ImdgValidationContext context) { SDf09 sdf09 = context.getValidatedObject(); - if (!"U".equals(sdf09.getMarket())) { - return of(BalanceError.WrongMarket); - } +// if (!"U".equals(sdf09.getMarket())) { +// return of(BalanceError.WrongMarket); +// } return empty(); } }; diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AbstractServiceTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AbstractServiceTest.java index 84160e341..b77d31c7a 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AbstractServiceTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AbstractServiceTest.java @@ -34,7 +34,7 @@ import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFields AccountBalanceService.class, Sdf01Executor.class, Sdf08Service.class, - Sdf09Executor.class, +// Sdf09Executor.class, Sdf16Executor.class, StatementService.class, LoggingService.class, diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf01ExecutorTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf01ExecutorTest.java index 6c3907c9d..b2633523a 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf01ExecutorTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf01ExecutorTest.java @@ -203,7 +203,7 @@ class Sdf01ExecutorTest extends AbstractServiceTest { sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setFile_type(sdf01.getFile_type()); - sDf02.setInSDf01Id(sdf01.getId()); + sDf02.setInSDfId(sdf01.getId()); sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationTime(Instant.now()); sDf02.setResult("OK!"); @@ -223,7 +223,6 @@ class Sdf01ExecutorTest extends AbstractServiceTest { statement.setInOutDirection(InOutDirection.in.getKey()); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); - statement.setCashMovementCurrencyCode(cashMovementCurrencyCode); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf01.getId()); statement.setInOutSDfType(InOutSDfType.type1.getKey()); @@ -245,7 +244,7 @@ class Sdf01ExecutorTest extends AbstractServiceTest { sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setFile_type(sdf01.getFile_type()); - sDf02.setInSDf01Id(sdf01.getId()); + sDf02.setInSDfId(sdf01.getId()); String errorId = error.getSubject().getId().toString(); sDf02.setResult(errorId.substring(errorId.length() - 3)); sDf02.setGenerationId(generationIdForGroup); diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf09ExecutorTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf09ExecutorTest.java index 241c74f85..8e71fcc10 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf09ExecutorTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf09ExecutorTest.java @@ -1,243 +1,243 @@ -package ru.spcex.clearing.balance.service; - -import org.apache.kafka.clients.producer.MockProducer; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.SpyBean; -import ru.clearing.classes.statics.data.account.Account; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.clearing.classes.statics.data.sdf.SDf09; -import ru.clearing.classes.statics.data.sdf.SDf10; -import ru.clearing.classes.statics.data.statement.Statement; -import ru.spcex.clearing.balance.errors.BalanceError; -import ru.spcex.clearing.balance.utils.MatcherFactory; -import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; -import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; -import ru.spcex.platform.enumeration.*; -import ru.spcex.platform.utils.enumeration.EnumMessage; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Collections; -import java.util.Map; - -import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator; - -class Sdf09ExecutorTest extends AbstractServiceTest { - private static final MatcherFactory.Matcher SDF_10_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id"); - private final Long ID = 2L; - private final String acc = "213456789"; - @Autowired - Sdf09Executor sdf09Executor; - private SDf09 sdf09; - private StatementRequest statementRequest; - @SpyBean - private MockProducer producer; - - @PostConstruct - void init() { - super.init(); - sdf09 = getTestSdf09(); - statementRequest = new StatementRequest(); - } - - /** - * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}
- * Тест проверяет генерацию сущностей {@link Result}, {@link Statement}, {@link SDf10}
- * Входные параметры:
- * accountId - {@link StatementRequest}: new StatementRequest()
- * addresseeId - {@link Collection}
- * addresseeId - {@link SDf09}
- * {@link SDf09#market} - "U"
- * {@link SDf09#account} - "123456789"
- * {@link SDf09#inn} - 987654321
- * {@link SDf09#sum} - 1000
- */ - @Test - void execute() { - //check create statement, SDf10 and AccountBalance - Company company = getTestCompany(); - companyMap.put(addresseeIdNew, company); - - CompanySymbols companySymbols = getTestCompanySymbols(); - companySymbolsMap.put(addresseeIdNew, companySymbols); - - Account account = getTestAccount(ID, acc); - accountMap.put(accountIdNew, account); - - Result predictableResult = new Result(); - predictableResult.setGenerationId(ID); - Statement predictableStatement = getTestStatement(currentId.getAndIncrement(), company, account, sdf09); - predictableStatement.setOperationStatus(OperationStatus.Executed.getKey()); - SDf10 predictableSdf10 = getTestSdf10(currentId.getAndIncrement(), sdf09, ID); - predictableStatement.setOutSDfId(predictableSdf10.getId()); - AccountResult predictableNewResult = getTestAccountResult(currentId.getAndIncrement(), account, company); - - Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); - Statement resultStatement = statementImdg.getSingleObjectByFieldValues(Map.of("account", acc)); - SDf10 resultSdf10 = sdf10Imdg.getSingleObjectByFieldValues(Map.of("account", acc)); - AccountBalance resultAccountBalance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", acc)); - - RESULT_MATCHER.assertMatch(result, predictableResult); - STATEMENT_MATCHER.assertMatch(resultStatement, predictableStatement); - SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); - ACCOUNT_BALANCE_MATCHER.assertMatch(resultAccountBalance, predictableNewResult.getAccount()); - } - - /** - * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}
- * Тест проверяет валидацию
- * Входные параметры:
- * accountId - {@link StatementRequest}: new StatementRequest()
- * addresseeId - {@link Collection}
- * addresseeId - {@link SDf09}
- * {@link SDf09#market} - "U"
- * {@link SDf09#account} - "123456789"
- * {@link SDf09#inn} - 987654321
- * {@link SDf09#sum} - 1000
- */ - @Test - void validatedExecute() { - //CompanyNotFound - companyMap.delete(addresseeIdNew); - checkError(new EnumMessage(BalanceError.CompanyNotFound)); - - Company company = getTestCompany(); - companyMap.put(addresseeIdNew, company); - companySymbolsMap.delete(addresseeIdNew); - checkError(new EnumMessage(BalanceError.CompanyNotFound)); - - CompanySymbols companySymbols = getTestCompanySymbols(); - companySymbolsMap.put(addresseeIdNew, companySymbols); - sdf09.setInn(null); - checkError(new EnumMessage(BalanceError.CompanyNotFound)); - - //AccountNotPresent - sdf09.setInn(inn); - accountMap.delete(accountIdNew); - checkErrorAccountNotPresent(company); - - //AccountNotPresent - Account account = new Account(); - account.setAccount(null); - account.setAccountType(AccountType.Clrn.getKey()); - account.setStatus(Status.Active.getKey()); - accountMap.put(accountIdNew, account); - checkErrorAccountNotPresent(company); - - //AccountNotPresent - account = getTestAccount(ID, acc); - accountMap.put(accountIdNew, account); - sdf09.setAccount(null); - checkErrorAccountNotPresent(company); - - //WrongMarket - sdf09.setAccount(acc); - sdf09.setMarket(null); - checkError(new EnumMessage(BalanceError.WrongMarket)); - - //BalanceNotEnough - sdf09.setMarket("U"); - sdf09.setSum(null); - checkError(new EnumMessage(BalanceError.BalanceNotEnough)); - - //BalanceNotEnough - sdf09.setSum(new BigDecimal(-1000)); - AccountBalance balance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), - "accountType", AccountType.Clrn.getKey())); - if (balance != null) accountBalanceImdg.delete(balance); - else balance = getTestAccountBalance(ID, account, company); - checkError(new EnumMessage(BalanceError.BalanceNotEnough)); - - //BalanceNotEnough - balance.setFreeBalanceAmount(new BigDecimal(999)); - accountBalanceImdg.insert(balance); - checkError(new EnumMessage(BalanceError.BalanceNotEnough)); - - balance.setFreeBalanceAmount(amountNew); - accountBalanceImdg.insert(balance); - } - - private void checkError(EnumMessage enumMessage) { - SDf10 predictableSdf10 = getTestErrorSdf10(sdf09, enumMessage, ID); - Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); - Collection resultsSdf10 = sdf10Imdg.getCollectionObjectsByFieldValues(Map.of("account", acc)); - SDf10 resultSdf10 = resultsSdf10.stream().max((entry1, entry2) -> entry1.getId() > entry2.getId() ? 1 : -1).get(); - SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); - } - - protected Statement getTestStatement(Long id, Company company, Account account, SDf09 sdf09) { - Statement statement = new Statement(); - statement.setId(id); - statement.setAddresseeId(company.getId()); - statement.setSenderId(Sender.Prc.getId()); - statement.setCreated(Instant.now()); - statement.setClearingDate(LocalDate.now()); - statement.setStatementType(StatementType.incr.getKey()); - statement.setAccountId(account.getId()); - statement.setAccount(sdf09.getAccount()); - statement.setInOutDirection(InOutDirection.in.getKey()); - statement.setAmount(sdf09.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); - statement.setOperationStatus(OperationStatus.Pending.getKey()); - statement.setInSDfId(sdf09.getId()); - statement.setInOutSDfType(InOutSDfType.type9.getKey()); - statementImdg.insert(statement); - return statement; - } - - private SDf10 getTestSdf10(Long id, SDf09 sdf09, Long generationIdForGroup) { - SDf10 sDf10 = new SDf10(); - sDf10.setId(id); - sDf10.setAccount(sdf09.getAccount()); - sDf10.setSum(sdf09.getSum()); - sDf10.setMarket(sdf09.getMarket()); - sDf10.setType(sdf09.getType()); - sDf10.setNumber(sdf09.getNumber()); - sDf10.setInn(sdf09.getInn()); - sDf10.setResult("OK"); - sDf10.setGenerationId(generationIdForGroup); - sDf10.setGenerationTime(Instant.now()); - sDf10.setInSDf09Id(sdf09.getId()); - return sDf10; - } - - private SDf09 getTestSdf09() { - SDf09 sdf09 = new SDf09(); - sdf09.setId(ID); - sdf09.setMarket("U"); - sdf09.setAccount(acc); - sdf09.setInn(inn); - sdf09.setSum(amountNew); - return sdf09; - } - - private SDf10 getTestErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { - SDf10 sDf10 = getTestSdf10(ID, sdf09, generationIdForGroup); - sDf10.setId(ID); - String errorId = error.getSubject().getId().toString(); - sDf10.setResult(errorId.substring(errorId.length() - 3)); - return sDf10; - } - - private void checkErrorAccountNotPresent(Company company) { - Result predictableResult = new Result(); - predictableResult.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); - Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); - RESULT_MATCHER.assertMatch(result, predictableResult); - } - - private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { - AccountSdfRequestPart req = new AccountSdfRequestPart(); - req.setAccount(account); - req.setCompanyId(companyId); -// req.setAccountType(AccountType.Clrn.getKey()); - req.setSdfId(sdf09Id); - return req; - } -} \ No newline at end of file +//package ru.spcex.clearing.balance.service; +// +//import org.apache.kafka.clients.producer.MockProducer; +//import org.junit.jupiter.api.Test; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.test.mock.mockito.SpyBean; +//import ru.clearing.classes.statics.data.account.Account; +//import ru.clearing.classes.statics.data.account.AccountBalance; +//import ru.clearing.classes.statics.data.company.Company; +//import ru.clearing.classes.statics.data.company.CompanySymbols; +//import ru.clearing.classes.statics.data.sdf.SDf09; +//import ru.clearing.classes.statics.data.sdf.SDf10; +//import ru.clearing.classes.statics.data.statement.Statement; +//import ru.spcex.clearing.balance.errors.BalanceError; +//import ru.spcex.clearing.balance.utils.MatcherFactory; +//import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; +//import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; +//import ru.spcex.platform.enumeration.*; +//import ru.spcex.platform.utils.enumeration.EnumMessage; +// +//import javax.annotation.PostConstruct; +//import java.math.BigDecimal; +//import java.time.Instant; +//import java.time.LocalDate; +//import java.util.Collection; +//import java.util.Collections; +//import java.util.Map; +// +//import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator; +// +//class Sdf09ExecutorTest extends AbstractServiceTest { +// private static final MatcherFactory.Matcher SDF_10_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id"); +// private final Long ID = 2L; +// private final String acc = "213456789"; +// @Autowired +// Sdf09Executor sdf09Executor; +// private SDf09 sdf09; +// private StatementRequest statementRequest; +// @SpyBean +// private MockProducer producer; +// +// @PostConstruct +// void init() { +// super.init(); +// sdf09 = getTestSdf09(); +// statementRequest = new StatementRequest(); +// } +// +// /** +// * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}
+// * Тест проверяет генерацию сущностей {@link Result}, {@link Statement}, {@link SDf10}
+// * Входные параметры:
+// * accountId - {@link StatementRequest}: new StatementRequest()
+// * addresseeId - {@link Collection}
+// * addresseeId - {@link SDf09}
+// * {@link SDf09#market} - "U"
+// * {@link SDf09#account} - "123456789"
+// * {@link SDf09#inn} - 987654321
+// * {@link SDf09#sum} - 1000
+// */ +// @Test +// void execute() { +// //check create statement, SDf10 and AccountBalance +// Company company = getTestCompany(); +// companyMap.put(addresseeIdNew, company); +// +// CompanySymbols companySymbols = getTestCompanySymbols(); +// companySymbolsMap.put(addresseeIdNew, companySymbols); +// +// Account account = getTestAccount(ID, acc); +// accountMap.put(accountIdNew, account); +// +// Result predictableResult = new Result(); +// predictableResult.setGenerationId(ID); +// Statement predictableStatement = getTestStatement(currentId.getAndIncrement(), company, account, sdf09); +// predictableStatement.setOperationStatus(OperationStatus.Executed.getKey()); +// SDf10 predictableSdf10 = getTestSdf10(currentId.getAndIncrement(), sdf09, ID); +// predictableStatement.setOutSDfId(predictableSdf10.getId()); +// AccountResult predictableNewResult = getTestAccountResult(currentId.getAndIncrement(), account, company); +// +// Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); +// Statement resultStatement = statementImdg.getSingleObjectByFieldValues(Map.of("account", acc)); +// SDf10 resultSdf10 = sdf10Imdg.getSingleObjectByFieldValues(Map.of("account", acc)); +// AccountBalance resultAccountBalance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", acc)); +// +// RESULT_MATCHER.assertMatch(result, predictableResult); +// STATEMENT_MATCHER.assertMatch(resultStatement, predictableStatement); +// SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); +// ACCOUNT_BALANCE_MATCHER.assertMatch(resultAccountBalance, predictableNewResult.getAccount()); +// } +// +// /** +// * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}
+// * Тест проверяет валидацию
+// * Входные параметры:
+// * accountId - {@link StatementRequest}: new StatementRequest()
+// * addresseeId - {@link Collection}
+// * addresseeId - {@link SDf09}
+// * {@link SDf09#market} - "U"
+// * {@link SDf09#account} - "123456789"
+// * {@link SDf09#inn} - 987654321
+// * {@link SDf09#sum} - 1000
+// */ +// @Test +// void validatedExecute() { +// //CompanyNotFound +// companyMap.delete(addresseeIdNew); +// checkError(new EnumMessage(BalanceError.CompanyNotFound)); +// +// Company company = getTestCompany(); +// companyMap.put(addresseeIdNew, company); +// companySymbolsMap.delete(addresseeIdNew); +// checkError(new EnumMessage(BalanceError.CompanyNotFound)); +// +// CompanySymbols companySymbols = getTestCompanySymbols(); +// companySymbolsMap.put(addresseeIdNew, companySymbols); +// sdf09.setInn(null); +// checkError(new EnumMessage(BalanceError.CompanyNotFound)); +// +// //AccountNotPresent +// sdf09.setInn(inn); +// accountMap.delete(accountIdNew); +// checkErrorAccountNotPresent(company); +// +// //AccountNotPresent +// Account account = new Account(); +// account.setAccount(null); +// account.setAccountType(AccountType.Clrn.getKey()); +// account.setStatus(Status.Active.getKey()); +// accountMap.put(accountIdNew, account); +// checkErrorAccountNotPresent(company); +// +// //AccountNotPresent +// account = getTestAccount(ID, acc); +// accountMap.put(accountIdNew, account); +// sdf09.setAccount(null); +// checkErrorAccountNotPresent(company); +// +// //WrongMarket +// sdf09.setAccount(acc); +// sdf09.setMarket(null); +// checkError(new EnumMessage(BalanceError.WrongMarket)); +// +// //BalanceNotEnough +// sdf09.setMarket("U"); +// sdf09.setSum(null); +// checkError(new EnumMessage(BalanceError.BalanceNotEnough)); +// +// //BalanceNotEnough +// sdf09.setSum(new BigDecimal(-1000)); +// AccountBalance balance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), +// "accountType", AccountType.Clrn.getKey())); +// if (balance != null) accountBalanceImdg.delete(balance); +// else balance = getTestAccountBalance(ID, account, company); +// checkError(new EnumMessage(BalanceError.BalanceNotEnough)); +// +// //BalanceNotEnough +// balance.setFreeBalanceAmount(new BigDecimal(999)); +// accountBalanceImdg.insert(balance); +// checkError(new EnumMessage(BalanceError.BalanceNotEnough)); +// +// balance.setFreeBalanceAmount(amountNew); +// accountBalanceImdg.insert(balance); +// } +// +// private void checkError(EnumMessage enumMessage) { +// SDf10 predictableSdf10 = getTestErrorSdf10(sdf09, enumMessage, ID); +// Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); +// Collection resultsSdf10 = sdf10Imdg.getCollectionObjectsByFieldValues(Map.of("account", acc)); +// SDf10 resultSdf10 = resultsSdf10.stream().max((entry1, entry2) -> entry1.getId() > entry2.getId() ? 1 : -1).get(); +// SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); +// } +// +// protected Statement getTestStatement(Long id, Company company, Account account, SDf09 sdf09) { +// Statement statement = new Statement(); +// statement.setId(id); +// statement.setAddresseeId(company.getId()); +// statement.setSenderId(Sender.Prc.getId()); +// statement.setCreated(Instant.now()); +// statement.setClearingDate(LocalDate.now()); +// statement.setStatementType(StatementType.incr.getKey()); +// statement.setAccountId(account.getId()); +// statement.setAccount(sdf09.getAccount()); +// statement.setInOutDirection(InOutDirection.in.getKey()); +// statement.setAmount(sdf09.getSum()); +// statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); +// statement.setOperationStatus(OperationStatus.Pending.getKey()); +// statement.setInSDfId(sdf09.getId()); +// statement.setInOutSDfType(InOutSDfType.type9.getKey()); +// statementImdg.insert(statement); +// return statement; +// } +// +// private SDf10 getTestSdf10(Long id, SDf09 sdf09, Long generationIdForGroup) { +// SDf10 sDf10 = new SDf10(); +// sDf10.setId(id); +// sDf10.setAccount(sdf09.getAccount()); +// sDf10.setSum(sdf09.getSum()); +// sDf10.setMarket(sdf09.getMarket()); +// sDf10.setType(sdf09.getType()); +// sDf10.setNumber(sdf09.getNumber()); +// sDf10.setInn(sdf09.getInn()); +// sDf10.setResult("OK"); +// sDf10.setGenerationId(generationIdForGroup); +// sDf10.setGenerationTime(Instant.now()); +// sDf10.setInSDf09Id(sdf09.getId()); +// return sDf10; +// } +// +// private SDf09 getTestSdf09() { +// SDf09 sdf09 = new SDf09(); +// sdf09.setId(ID); +// sdf09.setMarket("U"); +// sdf09.setAccount(acc); +// sdf09.setInn(inn); +// sdf09.setSum(amountNew); +// return sdf09; +// } +// +// private SDf10 getTestErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { +// SDf10 sDf10 = getTestSdf10(ID, sdf09, generationIdForGroup); +// sDf10.setId(ID); +// String errorId = error.getSubject().getId().toString(); +// sDf10.setResult(errorId.substring(errorId.length() - 3)); +// return sDf10; +// } +// +// private void checkErrorAccountNotPresent(Company company) { +// Result predictableResult = new Result(); +// predictableResult.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); +// Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); +// RESULT_MATCHER.assertMatch(result, predictableResult); +// } +// +// private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { +// AccountSdfRequestPart req = new AccountSdfRequestPart(); +// req.setAccount(account); +// req.setCompanyId(companyId); +//// req.setAccountType(AccountType.Clrn.getKey()); +// req.setSdfId(sdf09Id); +// return req; +// } +//} \ No newline at end of file diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf16ExecutorTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf16ExecutorTest.java index 9f12223ef..a346b430e 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf16ExecutorTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf16ExecutorTest.java @@ -211,7 +211,6 @@ class Sdf16ExecutorTest extends AbstractServiceTest { statement.setAccount(sdf16.getAccount()); statement.setInOutDirection(InOutDirection.in.getKey()); statement.setAmount(sdf16.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf16.getId()); statement.setInOutSDfType(InOutSDfType.type16.getKey()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java index 4ab020059..d56b03780 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java @@ -109,35 +109,35 @@ public class PaymentInstructionCreator { payment1.setPaymentPurpose(paymentPurpose(liabilitiesClaimsAssets.getContract())); payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue(); - payment1.setCreditLegAmount(amount); - payment1.setDebitLegAmount(amount); + BigDecimal amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs(); + payment1.setCreditLeg_amount(amount); + payment1.setDebitLeg_amount(amount); - payment1.setCreditLegAccountId(liabilitiesClaimsAssets.getAccountId()); + payment1.setCreditLeg_accountId(liabilitiesClaimsAssets.getAccountId()); - payment1.setCreditCsAccount(null); + payment1.setCredit_csAccount(null); { - Account acc1 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId()); + Account acc1 = accountImdg.getSingleObjectByID(payment1.getCreditLeg_accountId()); if (acc1 != null) { - payment1.setCreditLegAccount(acc1.getAccount()); + payment1.setCreditLeg_account(acc1.getAccount()); } } { Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); if (acc1 != null) { - payment1.setDebitLegAccountId(acc1.getId()); - payment1.setDebitLegAccount(acc1.getAccount()); + payment1.setDebitLeg_accountId(acc1.getId()); + payment1.setDebitLeg_account(acc1.getAccount()); } } - payment1.setDebitCsAccount(null); -// payment1.setCreditLegDirection(InOutDirection.out.getKey()); -// payment1.setDebitLegDirection(InOutDirection.in.getKey()); + payment1.setDebit_csAccount(null); +// payment1.setCreditLeg_direction(InOutDirection.out.getKey()); +// payment1.setDebitLeg_direction(InOutDirection.in.getKey()); - payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setTransactionStatus(TransactionStatus.stld.getKey()); @@ -399,9 +399,9 @@ public class PaymentInstructionCreator { payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); - payment1.setCreditLegAmount(amount); - payment1.setDebitLegAmount(amount); + BigDecimal amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs(); + payment1.setCreditLeg_amount(amount); + payment1.setDebitLeg_amount(amount); { Account anotherAcc = selectAccount(payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); @@ -409,34 +409,34 @@ public class PaymentInstructionCreator { log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); } else { - payment1.setCreditLegAccountId(anotherAcc.getId()); + payment1.setCreditLeg_accountId(anotherAcc.getId()); } } - payment1.setCreditCsAccount(null); + payment1.setCredit_csAccount(null); { - Account acc2 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId()); + Account acc2 = accountImdg.getSingleObjectByID(payment1.getCreditLeg_accountId()); if (acc2 != null) { - payment1.setCreditLegAccount(acc2.getAccount()); + payment1.setCreditLeg_account(acc2.getAccount()); } } { Account acc2 = accountImdg.getSingleObjectByID(liabilitiesClaimsAssets.getAccountId()); if (acc2 != null) { - payment1.setDebitLegAccountId(acc2.getId()); - payment1.setDebitLegAccount(acc2.getAccount()); + payment1.setDebitLeg_accountId(acc2.getId()); + payment1.setDebitLeg_account(acc2.getAccount()); } } - payment1.setDebitCsAccount(null); + payment1.setDebit_csAccount(null); -// payment2.setCreditLegDirection(InOutDirection.out.getKey()); -// payment2.setDebitLegDirection(InOutDirection.in.getKey()); +// payment2.setCreditLeg_direction(InOutDirection.out.getKey()); +// payment2.setDebitLeg_direction(InOutDirection.in.getKey()); - payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setTransactionStatus(TransactionStatus.stld.getKey()); @@ -483,9 +483,9 @@ public class PaymentInstructionCreator { payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); - payment2.setCreditLegAmount(amount); - payment2.setDebitLegAmount(amount); + BigDecimal amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs(); + payment2.setCreditLeg_amount(amount); + payment2.setDebitLeg_amount(amount); { Long accountId = liabilitiesClaimsAssets.getAccountId(); @@ -493,28 +493,28 @@ public class PaymentInstructionCreator { if (acc1 == null) { log.warn("Account not found: {}", accountId); } else { - payment2.setCreditLegAccountId(acc1.getId()); - payment2.setCreditLegAccount(acc1.getAccount()); + payment2.setCreditLeg_accountId(acc1.getId()); + payment2.setCreditLeg_account(acc1.getAccount()); } } - payment2.setCreditCsAccount(null); + payment2.setCredit_csAccount(null); { Account acc1 = selectAccount(payment2.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED); if (acc1 != null) { - payment2.setDebitLegAccountId(acc1.getId()); - payment2.setDebitLegAccount(acc1.getAccount()); + payment2.setDebitLeg_accountId(acc1.getId()); + payment2.setDebitLeg_account(acc1.getAccount()); } } - payment2.setDebitCsAccount(null); + payment2.setDebit_csAccount(null); // payment1.setCreditLegDirection(InOutDirection.out.getKey()); // payment1.setDebitLegDirection(InOutDirection.in.getKey()); - payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment2.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); + payment2.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment2.setTransactionStatus(TransactionStatus.stld.getKey()); @@ -702,7 +702,7 @@ public class PaymentInstructionCreator { if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { if (isFirstLeg) { - BigDecimal amount = safeBD(liabilitiesClaimsMoney.getLiabilitiesAmount()).subtract(bdFromLongSafe(paymentIAny.getCreditLegAmount())); + BigDecimal amount = safeBD(liabilitiesClaimsMoney.getLiabilitiesAmount()).subtract(safeBD(paymentIAny.getCreditLeg_amount())); liabilitiesClaimsMoney.setLiabilitiesAmount(amount); modified = true; } @@ -713,7 +713,7 @@ public class PaymentInstructionCreator { if (clearingCategory.contains(ClearingCategory.B)) { if (isFirstLeg) { - BigDecimal amount = safeBD(liabilitiesClaimsMoney.getClaimsAmount()).subtract(bdFromLongSafe(paymentIAny.getDebitLegAmount())); + BigDecimal amount = safeBD(liabilitiesClaimsMoney.getClaimsAmount()).subtract(safeBD(paymentIAny.getDebitLeg_amount())); liabilitiesClaimsMoney.setClaimsAmount(amount); modified = true; } @@ -730,8 +730,4 @@ public class PaymentInstructionCreator { return modified; } - private BigDecimal bdFromLongSafe(Long l) { - if (l == null) return BigDecimal.ZERO; - return new BigDecimal(l); - } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java index 3be7d7de9..f02fd0477 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java @@ -26,9 +26,9 @@ public class Sdf03Builder { sDf03.setSeg_type("U"); sDf03.setDoc_type("002"); sDf03.setDocnm_ref(paymentInstruction.getId().toString()); - sDf03.setPriority("9"); - sDf03.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); - sDf03.setC_acc_deb(paymentInstruction.getCreditLegAccount()); +// sDf03.setPriority("9"); +// sDf03.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); + sDf03.setC_acc_deb(paymentInstruction.getCreditLeg_account()); if (paymentInstruction.getSenderId().equals(Sender.One.getId())) { sDf03.setSbanknam1(paymentInstruction.getPayeeBankName()); } else { @@ -60,8 +60,8 @@ public class Sdf03Builder { } // =@00100, если ?; // =@00000, если ?. - sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); - sDf03.setC_acc_cred(paymentInstruction.getDebitLegAccount()); +// sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); + sDf03.setC_acc_cred(paymentInstruction.getDebitLeg_account()); if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { sDf03.setRbanknam1(paymentInstruction.getAddresseeBankName()); } else { @@ -75,23 +75,23 @@ public class Sdf03Builder { sDf03.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY)); } sDf03.setPay_val("RUR"); - sDf03.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null); + sDf03.setSum_deb(paymentInstruction.getDebitLeg_amount() != null ? paymentInstruction.getDebitLeg_amount().toString() : null); //37 sp_code varchar(2) Код назначения платежа String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose()); for (int i = 0; i < splitPaymentPurpose.length; i++) { String specif = splitPaymentPurpose[i]; if (i == 0) { sDf03.setSpecif_1(specif); - } else if (i == 1) { - sDf03.setSpecif_2(specif); - } else if (i == 2) { - sDf03.setSpecif_3(specif); - } else if (i == 3) { - sDf03.setSpecif_4(specif); - } else if (i == 4) { - sDf03.setSpecif_5(specif); - } else if (i == 5) { - sDf03.setSpecif_6(specif); +// } else if (i == 1) { +// sDf03.setSpecif_2(specif); +// } else if (i == 2) { +// sDf03.setSpecif_3(specif); +// } else if (i == 3) { +// sDf03.setSpecif_4(specif); +// } else if (i == 4) { +// sDf03.setSpecif_5(specif); +// } else if (i == 5) { +// sDf03.setSpecif_6(specif); } } sDf03.setGenerationTime(Instant.now()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java index 59e5beaff..3caca1a33 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java @@ -22,78 +22,78 @@ public class Sdf11Builder { public SDf11 buildSdf11(PaymentInstruction paymentInstruction, Long generationId) { SDf11 sDf11 = new SDf11(); - sDf11.setSeg_type("U"); - sDf11.setDoc_type("002"); - sDf11.setDocnm_ref(paymentInstruction.getId().toString()); - sDf11.setPriority("9"); - sDf11.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); - sDf11.setC_acc_deb(paymentInstruction.getCreditLegAccount()); - if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { - sDf11.setSbanknam1(paymentInstruction.getAddresseeBankName()); - //(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5). - sDf11.setSbanknam2(sDf11.getSbanknam1().substring(35)); - sDf11.setSbanknam1(sDf11.getSbanknam1().substring(0, 35)); - if (sDf11.getSbanknam2().length() > 35) { - sDf11.setSbanknam3(sDf11.getSbanknam2().substring(35)); - sDf11.setSbanknam2(sDf11.getSbanknam2().substring(0, 35)); - if (sDf11.getSbanknam3().length() > 35) { - sDf11.setSbanknam4(sDf11.getSbanknam3().substring(35)); - sDf11.setSbanknam3(sDf11.getSbanknam3().substring(0, 35)); - if (sDf11.getSbanknam4().length() > 35) { - sDf11.setSbanknam5(sDf11.getSbanknam4().substring(35)); - sDf11.setSbanknam4(sDf11.getSbanknam4().substring(0, 35)); - if (sDf11.getSbanknam5().length() > 35) { - //warn: too large for all field - //sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35)); - } - } - } - } - } else { - Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); - if (company != null) { - sDf11.setSbanknam1(company.getShortName()); - } - } - // =@00100, если ?; - // =@00000, если ?. - sDf11.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); - sDf11.setC_acc_cred(paymentInstruction.getDebitLegAccount()); - if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { - sDf11.setRbanknam1(paymentInstruction.getAddresseeBankName()); - } else { - Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); - if (company != null) { - sDf11.setRbanknam1(company.getShortName()); - } - } - LocalDate paymtDt = TimeUtil.toLocalDate(paymentInstruction.getPaymentDate()); - if (paymtDt != null) { - sDf11.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY)); - } - sDf11.setPay_val("RUR"); - sDf11.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null); - //37 sp_code varchar(2) Код назначения платежа - String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose()); - for (int i = 0; i < splitPaymentPurpose.length; i++) { - String specif = splitPaymentPurpose[i]; - if (i == 0) { - sDf11.setSpecif_1(specif); - } else if (i == 1) { - sDf11.setSpecif_2(specif); - } else if (i == 2) { - sDf11.setSpecif_3(specif); - } else if (i == 3) { - sDf11.setSpecif_4(specif); - } else if (i == 4) { - sDf11.setSpecif_5(specif); - } else if (i == 5) { - sDf11.setSpecif_6(specif); - } - } - sDf11.setGenerationTime(Instant.now()); - sDf11.setGenerationId(generationId); - sDf11.setPaymentInstructionId(paymentInstruction.getId()); +// todo поменялись классы sDf11.setSeg_type("U"); +// sDf11.setDoc_type("002"); +// sDf11.setDocnm_ref(paymentInstruction.getId().toString()); +// sDf11.setPriority("9"); +// sDf11.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); +// sDf11.setC_acc_deb(paymentInstruction.getCreditLegAccount()); +// if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { +// sDf11.setSbanknam1(paymentInstruction.getAddresseeBankName()); +// //(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5). +// sDf11.setSbanknam2(sDf11.getSbanknam1().substring(35)); +// sDf11.setSbanknam1(sDf11.getSbanknam1().substring(0, 35)); +// if (sDf11.getSbanknam2().length() > 35) { +// sDf11.setSbanknam3(sDf11.getSbanknam2().substring(35)); +// sDf11.setSbanknam2(sDf11.getSbanknam2().substring(0, 35)); +// if (sDf11.getSbanknam3().length() > 35) { +// sDf11.setSbanknam4(sDf11.getSbanknam3().substring(35)); +// sDf11.setSbanknam3(sDf11.getSbanknam3().substring(0, 35)); +// if (sDf11.getSbanknam4().length() > 35) { +// sDf11.setSbanknam5(sDf11.getSbanknam4().substring(35)); +// sDf11.setSbanknam4(sDf11.getSbanknam4().substring(0, 35)); +// if (sDf11.getSbanknam5().length() > 35) { +// //warn: too large for all field +// //sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35)); +// } +// } +// } +// } +// } else { +// Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); +// if (company != null) { +// sDf11.setSbanknam1(company.getShortName()); +// } +// } +// // =@00100, если ?; +// // =@00000, если ?. +// sDf11.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); +// sDf11.setC_acc_cred(paymentInstruction.getDebitLegAccount()); +// if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { +// sDf11.setRbanknam1(paymentInstruction.getAddresseeBankName()); +// } else { +// Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); +// if (company != null) { +// sDf11.setRbanknam1(company.getShortName()); +// } +// } +// LocalDate paymtDt = TimeUtil.toLocalDate(paymentInstruction.getPaymentDate()); +// if (paymtDt != null) { +// sDf11.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY)); +// } +// sDf11.setPay_val("RUR"); +// sDf11.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null); +// //37 sp_code varchar(2) Код назначения платежа +// String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose()); +// for (int i = 0; i < splitPaymentPurpose.length; i++) { +// String specif = splitPaymentPurpose[i]; +// if (i == 0) { +// sDf11.setSpecif_1(specif); +// } else if (i == 1) { +// sDf11.setSpecif_2(specif); +// } else if (i == 2) { +// sDf11.setSpecif_3(specif); +// } else if (i == 3) { +// sDf11.setSpecif_4(specif); +// } else if (i == 4) { +// sDf11.setSpecif_5(specif); +// } else if (i == 5) { +// sDf11.setSpecif_6(specif); +// } +// } +// sDf11.setGenerationTime(Instant.now()); +// sDf11.setGenerationId(generationId); +// sDf11.setPaymentInstructionId(paymentInstruction.getId()); return sDf11; } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java index 1fa43982d..9c5ad9ae1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java @@ -18,6 +18,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IMessageResolver; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -59,10 +60,10 @@ public class PaymentInstructionSorter { List aList = new ArrayList<>(); List bList = new ArrayList<>(); for (PaymentInstruction payment : payments) { - Account creditLegAcc = accImdg.getSingleObjectByID(payment.getCreditLegAccountId()); - Account debitLegAcc = accImdg.getSingleObjectByID(payment.getDebitLegAccountId()); + Account creditLegAcc = accImdg.getSingleObjectByID(payment.getCreditLeg_accountId()); + Account debitLegAcc = accImdg.getSingleObjectByID(payment.getDebitLeg_accountId()); if (creditLegAcc == null || debitLegAcc == null) { - String message = String.format("cannot find account CreditLegAccountId/DebitLegAccountId %d/%d", payment.getCreditLegAccountId(), payment.getDebitLegAccountId()); + String message = String.format("cannot find account CreditLegAccountId/DebitLegAccountId %d/%d", payment.getCreditLeg_accountId(), payment.getDebitLeg_accountId()); log.error("generationId={}, senderId={} payment.id={} {}", generationId, senderId, payment.getId(), message); continue; @@ -80,18 +81,18 @@ public class PaymentInstructionSorter { //continue; } } - Function, Long> creditAmountSum = paymentInstructions -> paymentInstructions + Function, BigDecimal> creditAmountSum = paymentInstructions -> paymentInstructions .stream() - .map(PaymentInstruction::getCreditLegAmount) - .reduce(0L, Long::sum); - Function, Long> debitAmountSum = paymentInstructions -> paymentInstructions + .map(PaymentInstruction::getCreditLeg_amount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + Function, BigDecimal> debitAmountSum = paymentInstructions -> paymentInstructions .stream() - .map(PaymentInstruction::getDebitLegAmount) - .reduce(0L, Long::sum); - Long fromClearingToBankCreditAmount = creditAmountSum.apply(aList); - Long fromBankToClearingCreditAmount = creditAmountSum.apply(bList); - Long fromClearingToBankDebitAmount = debitAmountSum.apply(aList); - Long fromBankToClearingDebitAmount = debitAmountSum.apply(bList); + .map(PaymentInstruction::getDebitLeg_amount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal fromClearingToBankCreditAmount = creditAmountSum.apply(aList); + BigDecimal fromBankToClearingCreditAmount = creditAmountSum.apply(bList); + BigDecimal fromClearingToBankDebitAmount = debitAmountSum.apply(aList); + BigDecimal fromBankToClearingDebitAmount = debitAmountSum.apply(bList); if (!fromClearingToBankCreditAmount.equals(fromBankToClearingCreditAmount)) { error = new EnumMessage(ClearingError.CompanyCreditCheck, senderId.toString()); } else if (!fromClearingToBankDebitAmount.equals(fromBankToClearingDebitAmount)) { diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF03_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF03_Converter.java index c6e8c22f0..9505abaf5 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF03_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF03_Converter.java @@ -17,15 +17,15 @@ public class S_DF03_Converter extends DFConverter { values.add(typeMatch(entity.getDoc_type())); values.add(typeMatch(entity.getDocnm_ref())); values.add(typeMatch(entity.getDocnmprev())); - values.add(typeMatch(entity.getPriority())); - values.add(typeMatch(entity.getSbankcode())); +// values.add(typeMatch(entity.getPriority())); +// values.add(typeMatch(entity.getSbankcode())); values.add(typeMatch(entity.getC_acc_deb())); values.add(typeMatch(entity.getSbanknam1())); values.add(typeMatch(entity.getSbanknam2())); values.add(typeMatch(entity.getSbanknam3())); values.add(typeMatch(entity.getSbanknam4())); values.add(typeMatch(entity.getSbanknam5())); - values.add(typeMatch(entity.getRbankcode())); +// values.add(typeMatch(entity.getRbankcode())); values.add(typeMatch(entity.getC_acc_cred())); values.add(typeMatch(entity.getRbanknam1())); values.add(typeMatch(entity.getRbanknam2())); @@ -33,31 +33,31 @@ public class S_DF03_Converter extends DFConverter { values.add(typeMatch(entity.getRbanknam4())); values.add(typeMatch(entity.getRbanknam5())); values.add(typeMatch(entity.getPay_date())); - values.add(typeMatch(entity.getExt_date())); +// values.add(typeMatch(entity.getExt_date())); values.add(typeMatch(entity.getPay_val())); values.add(typeMatch(entity.getSum_deb())); - values.add(typeMatch(entity.getSclientn1())); - values.add(typeMatch(entity.getSclientn2())); - values.add(typeMatch(entity.getSclientn3())); - values.add(typeMatch(entity.getSclientn4())); - values.add(typeMatch(entity.getSc_code())); - values.add(typeMatch(entity.getAcc_deb())); - values.add(typeMatch(entity.getRclientn1())); - values.add(typeMatch(entity.getRclientn2())); - values.add(typeMatch(entity.getRclientn3())); - values.add(typeMatch(entity.getRclientn4())); - values.add(typeMatch(entity.getAcc_kr_1())); - values.add(typeMatch(entity.getAcc_kr_2())); - values.add(typeMatch(entity.getSp_code())); +// values.add(typeMatch(entity.getSclientn1())); +// values.add(typeMatch(entity.getSclientn2())); +// values.add(typeMatch(entity.getSclientn3())); +// values.add(typeMatch(entity.getSclientn4())); +// values.add(typeMatch(entity.getSc_code())); +// values.add(typeMatch(entity.getAcc_deb())); +// values.add(typeMatch(entity.getRclientn1())); +// values.add(typeMatch(entity.getRclientn2())); +// values.add(typeMatch(entity.getRclientn3())); +// values.add(typeMatch(entity.getRclientn4())); +// values.add(typeMatch(entity.getAcc_kr_1())); +// values.add(typeMatch(entity.getAcc_kr_2())); +// values.add(typeMatch(entity.getSp_code())); values.add(typeMatch(entity.getSpecif_1())); - values.add(typeMatch(entity.getSpecif_2())); - values.add(typeMatch(entity.getSpecif_3())); - values.add(typeMatch(entity.getSpecif_4())); - values.add(typeMatch(entity.getSpecif_5())); - values.add(typeMatch(entity.getSpecif_6())); - values.add(typeMatch(entity.getSend_type())); - values.add(typeMatch(entity.getServdate())); - values.add(typeMatch(entity.getDoc_result())); +// values.add(typeMatch(entity.getSpecif_2())); +// values.add(typeMatch(entity.getSpecif_3())); +// values.add(typeMatch(entity.getSpecif_4())); +// values.add(typeMatch(entity.getSpecif_5())); +// values.add(typeMatch(entity.getSpecif_6())); +// values.add(typeMatch(entity.getSend_type())); +// values.add(typeMatch(entity.getServdate())); +// values.add(typeMatch(entity.getDoc_result())); values.add(typeMatch(entity.getImp_result())); return values.toArray(Object[]::new); } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java index 516c4736a..86c92ec10 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java @@ -14,8 +14,8 @@ public class S_DF08_Converter extends DFConverter { @Override public Object[] toObjectArray(SDf08 entity) { List values = new LinkedList<>(); - values.add(convertStrToLong(entity.getNumber())); - values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME +// values.add(convertStrToLong(entity.getNumber())); +// values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME return values.toArray(Object[]::new); } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF10_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF10_Converter.java index ce0204280..c4ae987de 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF10_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF10_Converter.java @@ -13,13 +13,13 @@ public class S_DF10_Converter extends DFConverter { @Override public Object[] toObjectArray(SDf10 entity) { List values = new LinkedList<>(); - values.add(typeMatch(entity.getAccount())); - values.add(typeMatch(entity.getSum())); - values.add(typeMatch(entity.getMarket())); - values.add(typeMatch(entity.getType())); - values.add(typeMatch(entity.getNumber())); - values.add(typeMatch(entity.getInn())); - values.add(typeMatch(entity.getResult())); +// values.add(typeMatch(entity.getAccount())); +// values.add(typeMatch(entity.getSum())); +// values.add(typeMatch(entity.getMarket())); +// values.add(typeMatch(entity.getType())); +// values.add(typeMatch(entity.getNumber())); +// values.add(typeMatch(entity.getInn())); +// values.add(typeMatch(entity.getResult())); return values.toArray(Object[]::new); } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF11_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF11_Converter.java index 92a76193b..8325b4d13 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF11_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF11_Converter.java @@ -13,51 +13,51 @@ public class S_DF11_Converter extends DFConverter { @Override public Object[] toObjectArray(SDf11 entity) { List values = new LinkedList<>(); - values.add(typeMatch(entity.getSeg_type())); - values.add(typeMatch(entity.getDoc_type())); - values.add(typeMatch(entity.getDocnm_ref())); - values.add(typeMatch(entity.getDocnmprev())); - values.add(typeMatch(entity.getPriority())); - values.add(typeMatch(entity.getSbankcode())); - values.add(typeMatch(entity.getC_acc_deb())); - values.add(typeMatch(entity.getSbanknam1())); - values.add(typeMatch(entity.getSbanknam2())); - values.add(typeMatch(entity.getSbanknam3())); - values.add(typeMatch(entity.getSbanknam4())); - values.add(typeMatch(entity.getSbanknam5())); - values.add(typeMatch(entity.getRbankcode())); - values.add(typeMatch(entity.getC_acc_cred())); - values.add(typeMatch(entity.getRbanknam1())); - values.add(typeMatch(entity.getRbanknam2())); - values.add(typeMatch(entity.getRbanknam3())); - values.add(typeMatch(entity.getRbanknam4())); - values.add(typeMatch(entity.getRbanknam5())); - values.add(typeMatch(entity.getPay_date())); - values.add(typeMatch(entity.getExt_date())); - values.add(typeMatch(entity.getPay_val())); - values.add(typeMatch(entity.getSum_deb())); - values.add(typeMatch(entity.getSclientn1())); - values.add(typeMatch(entity.getSclientn2())); - values.add(typeMatch(entity.getSclientn3())); - values.add(typeMatch(entity.getSclientn4())); - values.add(typeMatch(entity.getSc_code())); - values.add(typeMatch(entity.getAcc_deb())); - values.add(typeMatch(entity.getRclientn1())); - values.add(typeMatch(entity.getRclientn2())); - values.add(typeMatch(entity.getRclientn3())); - values.add(typeMatch(entity.getRclientn4())); - values.add(typeMatch(entity.getAcc_kr_1())); - values.add(typeMatch(entity.getAcc_kr_2())); - values.add(typeMatch(entity.getSp_code())); - values.add(typeMatch(entity.getSpecif_1())); - values.add(typeMatch(entity.getSpecif_2())); - values.add(typeMatch(entity.getSpecif_3())); - values.add(typeMatch(entity.getSpecif_4())); - values.add(typeMatch(entity.getSpecif_5())); - values.add(typeMatch(entity.getSpecif_6())); - values.add(typeMatch(entity.getSend_type())); - values.add(typeMatch(entity.getServdate())); - values.add(typeMatch(entity.getDoc_result())); +// values.add(typeMatch(entity.getSeg_type())); +// values.add(typeMatch(entity.getDoc_type())); +// values.add(typeMatch(entity.getDocnm_ref())); +// values.add(typeMatch(entity.getDocnmprev())); +// values.add(typeMatch(entity.getPriority())); +// values.add(typeMatch(entity.getSbankcode())); +// values.add(typeMatch(entity.getC_acc_deb())); +// values.add(typeMatch(entity.getSbanknam1())); +// values.add(typeMatch(entity.getSbanknam2())); +// values.add(typeMatch(entity.getSbanknam3())); +// values.add(typeMatch(entity.getSbanknam4())); +// values.add(typeMatch(entity.getSbanknam5())); +// values.add(typeMatch(entity.getRbankcode())); +// values.add(typeMatch(entity.getC_acc_cred())); +// values.add(typeMatch(entity.getRbanknam1())); +// values.add(typeMatch(entity.getRbanknam2())); +// values.add(typeMatch(entity.getRbanknam3())); +// values.add(typeMatch(entity.getRbanknam4())); +// values.add(typeMatch(entity.getRbanknam5())); +// values.add(typeMatch(entity.getPay_date())); +// values.add(typeMatch(entity.getExt_date())); +// values.add(typeMatch(entity.getPay_val())); +// values.add(typeMatch(entity.getSum_deb())); +// values.add(typeMatch(entity.getSclientn1())); +// values.add(typeMatch(entity.getSclientn2())); +// values.add(typeMatch(entity.getSclientn3())); +// values.add(typeMatch(entity.getSclientn4())); +// values.add(typeMatch(entity.getSc_code())); +// values.add(typeMatch(entity.getAcc_deb())); +// values.add(typeMatch(entity.getRclientn1())); +// values.add(typeMatch(entity.getRclientn2())); +// values.add(typeMatch(entity.getRclientn3())); +// values.add(typeMatch(entity.getRclientn4())); +// values.add(typeMatch(entity.getAcc_kr_1())); +// values.add(typeMatch(entity.getAcc_kr_2())); +// values.add(typeMatch(entity.getSp_code())); +// values.add(typeMatch(entity.getSpecif_1())); +// values.add(typeMatch(entity.getSpecif_2())); +// values.add(typeMatch(entity.getSpecif_3())); +// values.add(typeMatch(entity.getSpecif_4())); +// values.add(typeMatch(entity.getSpecif_5())); +// values.add(typeMatch(entity.getSpecif_6())); +// values.add(typeMatch(entity.getSend_type())); +// values.add(typeMatch(entity.getServdate())); +// values.add(typeMatch(entity.getDoc_result())); return values.toArray(Object[]::new); } diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf04Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf04Table.java index 47022da4d..60a2d24c0 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf04Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf04Table.java @@ -23,15 +23,15 @@ public class SDf04Table extends AbstractTable { result.setDoc_type((String) entity[1]); result.setDocnm_ref((String) entity[2]); result.setDocnmprev((String) entity[3]); - result.setPriority((String) entity[4]); - result.setSbankcode((String) entity[5]); +// result.setPriority((String) entity[4]); +// result.setSbankcode((String) entity[5]); result.setC_acc_deb((String) entity[6]); result.setSbanknam1((String) entity[7]); result.setSbanknam2((String) entity[8]); result.setSbanknam3((String) entity[9]); result.setSbanknam4((String) entity[10]); result.setSbanknam5((String) entity[11]); - result.setRbankcode((String) entity[12]); +// result.setRbankcode((String) entity[12]); result.setC_acc_cred((String) entity[13]); result.setRbanknam1((String) entity[14]); result.setRbanknam2((String) entity[15]); @@ -39,33 +39,33 @@ public class SDf04Table extends AbstractTable { result.setRbanknam4((String) entity[17]); result.setRbanknam5((String) entity[18]); result.setPay_date((String) entity[19]); - result.setExt_date((String) entity[20]); +// result.setExt_date((String) entity[20]); result.setPay_val((String) entity[21]); result.setSum_deb((String) entity[22]); - result.setSclientn1((String) entity[23]); - result.setSclientn2((String) entity[24]); - result.setSclientn3((String) entity[25]); - result.setSclientn4((String) entity[26]); - result.setSc_code((String) entity[27]); - result.setAcc_deb((String) entity[28]); - result.setRclientn1((String) entity[29]); - result.setRclientn2((String) entity[30]); - result.setRclientn3((String) entity[31]); - result.setRclientn4((String) entity[32]); - result.setAcc_kr_1((String) entity[33]); - result.setAcc_kr_2((String) entity[34]); - result.setSp_code((String) entity[35]); +// result.setSclientn1((String) entity[23]); +// result.setSclientn2((String) entity[24]); +// result.setSclientn3((String) entity[25]); +// result.setSclientn4((String) entity[26]); +// result.setSc_code((String) entity[27]); +// result.setAcc_deb((String) entity[28]); +// result.setRclientn1((String) entity[29]); +// result.setRclientn2((String) entity[30]); +// result.setRclientn3((String) entity[31]); +// result.setRclientn4((String) entity[32]); +// result.setAcc_kr_1((String) entity[33]); +// result.setAcc_kr_2((String) entity[34]); +// result.setSp_code((String) entity[35]); result.setSpecif_1((String) entity[36]); - result.setSpecif_2((String) entity[37]); - result.setSpecif_3((String) entity[38]); - result.setSpecif_4((String) entity[39]); - result.setSpecif_5((String) entity[40]); - result.setSpecif_6((String) entity[41]); - result.setSend_type((String) entity[42]); - result.setServdate((String) entity[43]); - result.setDoc_result((String) entity[44]); +// result.setSpecif_2((String) entity[37]); +// result.setSpecif_3((String) entity[38]); +// result.setSpecif_4((String) entity[39]); +// result.setSpecif_5((String) entity[40]); +// result.setSpecif_6((String) entity[41]); +// result.setSend_type((String) entity[42]); +// result.setServdate((String) entity[43]); +// result.setDoc_result((String) entity[44]); result.setImp_result((String) entity[45]); - result.setFile_name(filename); + result.setFileName(filename); result.setGenerationTime(Instant.now()); result.setGenerationId(fileId); return result; diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java index bb87117bb..f372c1e67 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java @@ -21,13 +21,13 @@ public class SDf09Table extends AbstractTable { public SDf09 getEntity(Object[] entity) { SDf09 result = new SDf09(); - result.setAccount((String) entity[0]); - result.setSum((BigDecimal) entity[1]); - result.setMarket((String) entity[2]); - result.setType((String) entity[3]); - result.setNumber((BigDecimal) entity[4]); - result.setInn((BigDecimal) entity[5]); - result.setFileName(filename); +// result.setAccount((String) entity[0]); +// result.setSum((BigDecimal) entity[1]); +// result.setMarket((String) entity[2]); +// result.setType((String) entity[3]); +// result.setNumber((BigDecimal) entity[4]); +// result.setInn((BigDecimal) entity[5]); +// result.setFileName(filename); result.setGenerationTime(Instant.now()); result.setGenerationId(fileId); return result; diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java index ed4ea3620..9aab7d0b3 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java @@ -20,11 +20,11 @@ public class SDf12Table extends AbstractTable { @Override public SDf12 getEntity(Object[] entity) { SDf12 result = new SDf12(); - result.setAccount((String) entity[0]); - result.setDeal((String) entity[1]); +// result.setAccount((String) entity[0]); +// result.setDeal((String) entity[1]); BigDecimal status = (BigDecimal) entity[2]; - result.setStatus(status != null ? status.longValue() : null); - result.setFileName(filename); +// result.setStatus(status != null ? status.longValue() : null); +// result.setFileName(filename); result.setGenerationTime(Instant.now()); result.setGenerationId(fileId); return result; diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ContractRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ContractRegisterServiceTest.java index 3609a92e0..ddf2f397c 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ContractRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ContractRegisterServiceTest.java @@ -71,7 +71,7 @@ class ContractRegisterServiceTest { contractRegisterNewRequest.setName("name"); contractRegisterNewRequest.setNumber("number"); contractRegisterNewRequest.setIssueDate(LocalDate.now()); - contractRegisterNewRequest.setCompanyFullName(1651656L); + contractRegisterNewRequest.setCompanyFullName("CMP FN"); contractRegisterNewRequest.setCompanyId(companyId); contractRegisterNewRequest.setDocumentType("documentType"); contractRegisterNewRequest.setIssuePlace("issuePlace"); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java index 367d11525..c49781d95 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java @@ -17,6 +17,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; import java.util.Collection; @@ -94,16 +95,16 @@ public class ReportBR_0420314_P2_Collector extends ReportWithPeriodCollector