diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java index bbb557877..1af62f124 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java @@ -55,7 +55,6 @@ public class AccountValidationConfig { Company.class, AccountError.RequiredFieldEmpty, AccountError.CompanyNotFound -// company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : AccountError.CompanyNotActive ), FieldRequiredSpecificRule.instance("account", CorrespondentAccountNewRequest::getAccount, @@ -85,10 +84,6 @@ public class AccountValidationConfig { AccountError.RequiredFieldEmpty, AccountError.DictionaryNotFound, false -// , statusValue -> { -// if (ServiceStatus.Active.equalsByKey(statusValue.getCode())) return null; -// return AccountError.WrongFieldValue; -// } ), DictionaryPresentRule.instance("accountType", CorrespondentAccountNewRequest::getAccountType, @@ -156,10 +151,6 @@ public class AccountValidationConfig { AccountError.RequiredFieldEmpty, AccountError.DictionaryNotFound, false -// accountType -> { -// if (AccountType.Corr.equalsByKey(accountType.getCode())) return null; -// return AccountError.WrongFieldValue; -// } ) ); }; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java index a708769cd..a0eb754b9 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java @@ -16,7 +16,6 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldNotBlankRequiredRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; -import ru.spcex.clearing.validation.common.rules.specific.FieldRequiredSpecificRule; import ru.spcex.clearing.validation.common.rules.specific.IdPresentSpecificRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountStatus; @@ -27,7 +26,6 @@ import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.validation.IValidator; import ru.spcex.platform.utils.validation.ValidatorImpl; -import java.util.Collection; import java.util.Map; import java.util.function.Consumer; import java.util.function.Function; @@ -110,7 +108,6 @@ public class BankAccountValidationConfig { ); Account account = accountImdg.getSingleObjectByID(accountId); if (account == null) return AccountError.AccountNotFound; -// if (!AccountStatus.ACTIVE.equalsByKey(account.getStatus())) return AccountError.AccountNotActive; return null; }), DictionaryPresentRule.instance("currency", diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java index afb13a6f5..5f6c57b23 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java @@ -14,7 +14,6 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldNotBlankRequiredRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; -import ru.spcex.clearing.validation.common.rules.specific.FieldRequiredSpecificRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; @@ -53,7 +52,6 @@ public class ClearingAccountValidationConfig { Company.class, AccountError.RequiredFieldEmpty, AccountError.CompanyNotFound -// company -> !WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? AccountError.CompanyNotActive : null ), FieldNotBlankRequiredRule.instance("account", ClearingAccountNewRequest::getAccount, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClientCodeValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClientCodeValidationConfig.java index 963e74fc1..a9cf8d10a 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClientCodeValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClientCodeValidationConfig.java @@ -148,7 +148,6 @@ public class ClientCodeValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_ClientCode); return new ValidatorImpl<>(context, -// FieldRequiredRule.instance("id", CommonDeleteRequest::getId, CompanyErrors.RequiredFieldEmpty), IdPresentRule.instance("id", CommonDeleteRequest::getId, IMDGDistributedNames.Map_ClientCode, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java index f4cd9d3f9..5e236c017 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java @@ -2,7 +2,6 @@ package ru.spcex.clearing.account.config.validation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; @@ -12,7 +11,6 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldNotBlankRequiredRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; -import ru.spcex.clearing.validation.common.rules.specific.FieldRequiredSpecificRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.imdg.api.Imdg; @@ -20,7 +18,6 @@ import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.validation.IValidator; import ru.spcex.platform.utils.validation.ValidatorImpl; -import java.util.Collection; import java.util.Map; import java.util.function.Consumer; import java.util.function.Function; @@ -47,7 +44,6 @@ public class DepoAccountValidationConfig { Company.class, AccountError.RequiredFieldEmpty, AccountError.CompanyNotFound -// company -> !WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? AccountError.CompanyNotActive : null ), FieldNotBlankRequiredRule.instance("account", DepoAccountNewRequest::getAccount, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/SameAccountValidationRule.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/SameAccountValidationRule.java index fed529fdf..620b9551f 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/SameAccountValidationRule.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/SameAccountValidationRule.java @@ -21,7 +21,7 @@ class SameAccountValidationRule implements IValidationRule accountGetter; public SameAccountValidationRule(AccountType accountType, Function accountGetter) { - this.accountType = accountType.getKey(); // or req.getAccountType() + this.accountType = accountType.getKey(); this.accountGetter = accountGetter; Objects.requireNonNull(accountGetter); } @@ -32,8 +32,7 @@ class SameAccountValidationRule implements IValidationRule accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate query = pb.and( - pb.equals("account", accountGetter.apply(req)), // req.getAccount() -// pb.equals("accountType", accountType), имена всех счетов уникальны, вне зависимости от типа + pb.equals("account", accountGetter.apply(req)), pb.in("status", ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey(), ServiceStatus.Appl.getKey()) ); Account existAccount = accountImdg.getFirstObjectByPredicate(query); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java index 2a9d7a877..a131a4d00 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -84,26 +84,10 @@ public class TradingClearingRegistryValidationConfig { return AccountError.AccountNotFound; } else { if (AccountType.Clrn.equalsByKey(account.getAccountType()) || AccountType.Info.equalsByKey(account.getAccountType())) { - // ok } else { - // неправильный тип return AccountError.AccountNotFound; } } -// Imdg clearingAccountImdg = context.obtainMap( -// IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class -// ); -// ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByFieldValues( -// Map.of("accountId",moneyAccountId) -// ); -// if (clearingAccount == null) { -// Imdg informationAccountImdg = context.obtainMap( -// IMDGDistributedNames.Map_InformationAccount, InformationAccount.class -// ); -// InformationAccount infoAccount = informationAccountImdg.getSingleObjectByFieldValues( -// Map.of("accountId",moneyAccountId)); -// if (infoAccount == null) return AccountError.AccountNotFound; -// } return null; }), FieldRequiredRule.instance("depoAccountId", @@ -140,11 +124,6 @@ public class TradingClearingRegistryValidationConfig { if (validatedObject.getMoneyAccountId() == null) { return of(AccountError.RequiredFieldEmpty, "MoneyAccountId"); } - //Map> query = new HashMap<>(); -// query.put("moneyAccountId", validatedObject.getMoneyAccountId()); -// if (validatedObject.getDepoAccountId() != null) { -// query.put("depoAccountId", validatedObject.getDepoAccountId()); -// } ImdgPredicateBuilder pb = tcrMap.predicateBuilder(); ImdgPredicate query = pb.equals("moneyAccountId", validatedObject.getMoneyAccountId()); if (validatedObject.getDepoAccountId() != null) { @@ -160,8 +139,6 @@ public class TradingClearingRegistryValidationConfig { Account account = accountImdg.getSingleObjectByID(validatedObject.getMoneyAccountId()); if (account == null && validatedObject.getDepoAccountId() != null) account = accountImdg.getSingleObjectByID(validatedObject.getDepoAccountId()); return of(AccountError.AccountForTradingClearingRegistryAlreadyUsed, account.getAccount()); -// String tcrIds = existTCR.stream().map(tcr -> String.valueOf(tcr.getId())).collect(Collectors.joining(";")); -// return of(AccountError.AccountForTradingClearingRegistryAlreadyUsed, tcrIds); } } } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java index 1a542396e..187432404 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java @@ -8,7 +8,10 @@ import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; -import ru.clearing.platform.dictionary.*; +import ru.clearing.platform.dictionary.AccountTypeDictionary; +import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary; +import ru.clearing.platform.dictionary.CurrencyCodeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -41,8 +44,6 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class); addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); - - //for ClientCodeValidationConfig addImdg.accept(IMDGDistributedNames.Map_ClientCode, ClientCode.class); return imdg; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java index 2f340aee3..f6f0a93ba 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java @@ -19,7 +19,7 @@ public enum AccountError implements IErrorEnumId { DepoAccountNotFound(5017L), MoneyAccountNotFound(5018L), ClearingCategoryNotFound(5019L), - ClearingCompanySymbolNotFound(5022L), // Для компании %s отсутствует клиринговый код». + ClearingCompanySymbolNotFound(5022L), AccountForTradingClearingRegistryAlreadyUsed(5023L), AccountFieldNotSet(5024L), TradingClearingRegistryNotFound(3022L), diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountHelper.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountHelper.java index 510ba460c..6ec1d428a 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountHelper.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountHelper.java @@ -3,7 +3,6 @@ package ru.spcex.clearing.account.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; @@ -12,7 +11,7 @@ import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; -import ru.spcex.platform.enumeration.*; +import ru.spcex.platform.enumeration.ClearingCategory; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -42,11 +41,6 @@ public class AccountHelper { this.messageResolver = messageResolver; } - /** - * Заполняет поля relationId и companyId из соответствующей записи Relation - * - * @param requestId Идентификатор запроса для вывода лога - */ public RequestInfoUpdate fillAccountFromRelation(Account account, Long requestId, boolean checkClearingMemberCategory) { Long companyId = account.getCompanyId(); Collection relations; @@ -73,7 +67,6 @@ public class AccountHelper { } else { log.info("ClearingCategoryNotFound with clearingCategoryValue={} not implemented. Do not search Relation.", clearingCategoryValue); return null; - //return makeError(requestId, AccountError.ClearingCategoryNotFound, companyId, clearingCategoryValue + " (case not implemented)"); } finalRelationPredicate = relationPredicateBuilder.and(consumerIdPredicate, servicePredicate); relations = relationMap.getCollectionObjectsByPredicate(finalRelationPredicate); @@ -83,7 +76,6 @@ public class AccountHelper { } if (relations.isEmpty()) { - //return makeError(requestId, AccountError.WrongFieldValue, "companyId", finalRelationPredicate.toString()); log.info("Relation not found: {}", finalRelationPredicate.toString()); return null; } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java index 3d47a3de6..4fef1cfac 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java @@ -32,10 +32,7 @@ import ru.spcex.platform.enumeration.*; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; @@ -155,10 +152,8 @@ public class AccountService extends QueueConsumer implements InitializingBean { Long newId = null; if (AccountType.Corr.equalsByKey(account.getAccountType())) { - // default, дополнительные таблицы не требуются newId = accountMap.insert(account); } else { - // Транзакцией ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); imdgTransaction.beginTransaction(); boolean txOk = false; @@ -167,7 +162,6 @@ public class AccountService extends QueueConsumer implements InitializingBean { newId = accountMap.insert(account); if (AccountType.Corr.equalsByKey(account.getAccountType())) { - // default, дополнительные таблицы не требуются } else if (AccountType.Info.equalsByKey(account.getAccountType())) makeInfoPart(imdgTransaction, account); else if (AccountType.Depo.equalsByKey(account.getAccountType())) @@ -218,7 +212,6 @@ public class AccountService extends QueueConsumer implements InitializingBean { if (account.getAccount() != null && account.getAccount().contains("BC")) { depoAcc.setDepoAccountType(DepoAccountType.C.getKey()); } else { - //todo в реквесте нет поля depoAcc.setDepoAccountType(req.getDepoAccountType()); } Long depoId = depoAccountMap.insert(depoAcc); log.debug("For account id={} make DepoAccount id={}", account.getId(), depoId); @@ -286,7 +279,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { log.debug("AccountTerminationRequest received, id={}", userRequest.getId()); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); - if (requestInfoUpdate != null) return requestInfoUpdate; // never - system + if (requestInfoUpdate != null) return requestInfoUpdate; AccountTerminationRequest req = userRequest.getRequestPayload(); final Long companyId = req.getCompanyId(); @@ -298,7 +291,6 @@ public class AccountService extends QueueConsumer implements InitializingBean { try { tx.beginTransaction(); for (Account account : accounts) { - //Account account = accountMap.getSingleObjectByID(request.getId()); if (!ServiceStatus.Blocked.equalsByKey(account.getStatus())) { account.setStatus(ServiceStatus.Blocked.getKey()); account.setUpdated(Instant.now()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java index f473e7ab1..72437166a 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java @@ -221,7 +221,6 @@ public class BankAccountService extends QueueConsumer implements InitializingBea account.setUpdated(Instant.now()); accountMap.update(account); - //без изменений bankAccountMap.update(bankAccount); log.debug("successfully block, existing bankAccount with id {}", bankAccount.getId()); return null; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java index bed4b8f49..39ccecf24 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java @@ -260,11 +260,11 @@ public class ClearingAccountService extends QueueConsumer implements Initializin account.setUpdated(now); RequestInfoUpdate requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), true); if (requestInfoUpdate != null) { - log.warn("Error fill new account from relation. {}", /*account.getId(),*/ requestInfoUpdate.getMessage()); + log.warn("Error fill new account from relation. {}", requestInfoUpdate.getMessage()); { AccountSdfToStatementRequestPart responsePart = new AccountSdfToStatementRequestPart(); responsePart.setSdfId(accountReq.getSdfId()); - responsePart.setErrorCode(AccountError.ClearingCategoryNotFound.getId()); // see accountService.fillAccountFromRelation + responsePart.setErrorCode(AccountError.ClearingCategoryNotFound.getId()); responsePart.setErrorText(requestInfoUpdate.getMessage()); accountToStatement.add(responsePart); continue accountsLoop; @@ -338,7 +338,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin List> toUpdate = new ArrayList<>(); List> toProcessSDF53 = new ArrayList<>(); - { // 1. Выборка данных + { for (SDf52 sDf52 : sdfs) { if (sdfProcessService.parseSdf52Status(sDf52.getStatus()) == null) { String msg = messageResolver.resolve(new EnumMessage(AccountError.WrongFieldValue, "status")); @@ -373,26 +373,23 @@ public class ClearingAccountService extends QueueConsumer implements Initializin } } log.debug("Selected to update {} account's", toUpdate.size()); - - // 4. to notification List notificationAccountIds = new ArrayList<>(); for (Pair item : toUpdate) { SDf52 sdf = item.getFirst(); Account account = item.getSecond(); AccountStatus newStatus = sdfProcessService.parseSdf52Status(sdf.getStatus()); - if (newStatus == null) { // never + if (newStatus == null) { throw new IllegalArgumentException("Can not parse sdf status " + sdf.getStatus()); } if (newStatus.equalsByKey(account.getStatus())) { - // одинаковых обычно не бывает. continue; } - if (AccountStatus.BLOCKED == newStatus || AccountStatus.CLOSE == newStatus) { // статус 0/2 + if (AccountStatus.BLOCKED == newStatus || AccountStatus.CLOSE == newStatus) { sendNotificationRequest(ObjectType.account_block, account, newStatus); notificationAccountIds.add(account.getId()); putNotificationWaiting(systemRequest, item.getFirst(), item.getSecond()); } - if (AccountStatus.ACTIVE == newStatus) { // статус 1/3 + if (AccountStatus.ACTIVE == newStatus) { sendNotificationRequest(ObjectType.account_active, account, newStatus); notificationAccountIds.add(account.getId()); putNotificationWaiting(systemRequest, item.getFirst(), item.getSecond()); @@ -431,32 +428,26 @@ public class ClearingAccountService extends QueueConsumer implements Initializin protected RequestInfoUpdate accountUpdateSdf52_part2(BaseRequest systemRequest1, SDf52 sdf, Account account, BaseRequest secondSystemRequest2) { - // 5. from notification: StatementRequest req = systemRequest1.getRequestPayload(); Long groupId = req.getGroupId(); log.info("Continue Sdf52 groupId={}, first request id={}, second request id={}", groupId, systemRequest1 == null ? null : systemRequest1.getId(), secondSystemRequest2 == null ? null : secondSystemRequest2.getId()); int countOfUpdated = 0; - - // 2. обновление данных Instant now = Instant.now(); AccountStatus newStatus = sdfProcessService.parseSdf52Status(sdf.getStatus()); if (newStatus == null) { throw new IllegalArgumentException("Can not parse sdf status " + sdf.getStatus()); } - // За долгое время ожидания пользователя счёт мог быть обновлён, прочитать его ещё раз account = accountImdg.getSingleObjectByID(account.getId()); if (!newStatus.equalsByKey(account.getStatus())) { - // Обновление счёта String oldStatus = account.getStatus(); account.setStatus(newStatus.getKey()); account.setUpdated(now); accountImdg.update(account); log.trace("S_DF52[{}] do update status to {} for account[{}]", sdf.getId(), newStatus.getKey(), account.getId()); - if (AccountStatus.ACTIVE.equalsByKey(oldStatus) && AccountStatus.ACTIVE != newStatus) { // счёт заблокировали - значит блокируем ТКР, наоборот не надо. - // Отправка в ТКР + if (AccountStatus.ACTIVE.equalsByKey(oldStatus) && AccountStatus.ACTIVE != newStatus) { TradingClearingRegistryUpdateRequest tcrReq = new TradingClearingRegistryUpdateRequest(); tcrReq.setMoneyAccountId(account.getId()); tcrReq.setCompanyId(account.getCompanyId()); @@ -500,7 +491,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin request.setChildGenerationId(groupSdf02Id); request.setAccountCreationResults(results); request.setContinueSdf(true); - request.setTable(SdfTable.SDF_01); // по нему запрос получили + request.setTable(SdfTable.SDF_01); log.debug("Send message to kafka \"{}\": {}", destination, LogFormatter.toStringWrapper(request)); kafkaSender.sendRequestToQueue(destination, request); } @@ -524,7 +515,6 @@ public class ClearingAccountService extends QueueConsumer implements Initializin } - // --------- notification apply system ----------- public static class SDF52WaitingData { public BaseRequest systemRequest; public SDf52 sdf; @@ -558,9 +548,6 @@ public class ClearingAccountService extends QueueConsumer implements Initializin return true; } - /** - * @return triggered SDF52WaitingData or null - */ public SDF52WaitingData onNotificationResponse(NotificationFeedbackRequest onNotification) { if (onNotification.getNotificationId() == null) { log.trace("notificationId was empty"); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClientCodeService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClientCodeService.java index c3db9f826..f679560f1 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClientCodeService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClientCodeService.java @@ -115,18 +115,8 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean } - /** - * Проверки - * 3.5.1 если не была найдена запись в tradingClearingRegistry по companyId, moneyAccountId, depoAccountId и tradingClearingRegistryType=B (п 3.5.1) - * 3.5.2 если не заполнены поля moneyAccountId ИЛИ moneyAccountId и depoAccountId - * @param userRequest - * @param moneyAccountId req.getMoneyAccountId() - * @param depoAccountId req.getDepoAccountId() - * @param companyId req.getCompanyId() - * @return - */ RequestInfoUpdate crossValidate(BaseRequest userRequest, Long moneyAccountId, Long depoAccountId, Long companyId) { - if (moneyAccountId == null) { // Если не заполнены moneyAccountId ИЛИ moneyAccountId и depoAccountId + if (moneyAccountId == null) { EnumMessage error = null; if (companyId == null) { error = new EnumMessage(AccountError.RequiredFieldEmpty, "companyId"); @@ -153,7 +143,6 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean if (requestInfoUpdate != null) return requestInfoUpdate; ClientCodeNewRequest req = userRequest.getRequestPayload(); - // дополнительная проверка requestInfoUpdate = crossValidate(userRequest, req.getMoneyAccountId(), req.getDepoAccountId(), req.getCompanyId()); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -190,7 +179,6 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean ClientCodeNewRequest req = userRequest.getRequestPayload(); - // дополнительная проверка requestInfoUpdate = crossValidate(userRequest, req.getMoneyAccountId(), req.getDepoAccountId(), req.getCompanyId()); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -224,7 +212,6 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clientCodeUpdateRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - // дополнительная проверка requestInfoUpdate = crossValidate(userRequest, req.getMoneyAccountId(), req.getDepoAccountId(), req.getCompanyId()); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -297,7 +284,6 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean } private boolean checkNeedCreateTCR(Long companyId, Long moneyAccountId, Long depoAccountId) { - // moneyAccountId обязателен, depoAccountId опционален if (moneyAccountId == null) { return false; } @@ -321,11 +307,8 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean requestPayload.setCompanyId(companyId); requestPayload.setMoneyAccountId(moneyAccountId); requestPayload.setDepoAccountId(depoAccountId); -// requestPayload.setStatus(WorkflowStatus.Active.getKey()); requestPayload.setTradingClearingRegistryType(TradingClearingRegistryType.Client_B.getKey()); request.setRequestPayload(requestPayload); - - // Следующий вызываемый метод обязательно должен быть synchronized. RequestInfoUpdate reply = tradingClearingRegistryService.tradingClearingRegistryNew(request); if (reply != null && Status.Error.equals(reply.getStatus())) { log.warn("tradingClearingRegistryService return error: " + reply.getMessage()); @@ -355,11 +338,6 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean } - /** - * @param queue Consts.* - * @param message BaseRequest - * @return - */ private Long sendMessage(String queue, BaseRequest message) { Long sentRequestId = message.getId(); if (sentRequestId == null) { @@ -383,13 +361,8 @@ public class ClientCodeService extends QueueConsumer implements InitializingBean return null; } - /** - * @param req требуется заполнить tradingClearingRegistryId по tradingClearingRegistry.code - * @return - */ private ClientCode buildClientCode(ClientCodeNewRequest req) { ClientCode clientCode = new ClientCode(); -// clientCode.setId(idSequence.newId()); add in insert clientCode.setCreated(Instant.now()); clientCode.setUpdated(clientCode.getCreated()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java index f8b99f355..344904181 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java @@ -147,8 +147,6 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea accountsLoop: for (AccountSdfRequestPart accountReq : req.getAccounts()) { -// DepoAccountNewRequest req = userRequest.getRequestPayload(); - Instant now = Instant.now(); Account account = new Account(); account.setAccount(accountReq.getAccount()); @@ -159,11 +157,11 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea account.setUpdated(now); RequestInfoUpdate requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), true); if (requestInfoUpdate != null) { - log.warn("Error fill new account from relation. {}", /*account.getId(),*/ requestInfoUpdate.getMessage()); + log.warn("Error fill new account from relation. {}", requestInfoUpdate.getMessage()); { AccountSdfToStatementRequestPart responsePart = new AccountSdfToStatementRequestPart(); responsePart.setSdfId(accountReq.getSdfId()); - responsePart.setErrorCode(AccountError.ClearingCategoryNotFound.getId()); // see accountService.fillAccountFromRelation + responsePart.setErrorCode(AccountError.ClearingCategoryNotFound.getId()); responsePart.setErrorText(requestInfoUpdate.getMessage()); accountToStatement.add(responsePart); continue accountsLoop; @@ -228,9 +226,9 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea StatementRequest request = new StatementRequest(); request.setGroupId(groupingSdf01Id); request.setChildGenerationId(groupingSdf02Id); - request.setContinueSdf(true); //fixme???? + request.setContinueSdf(true); request.setAccountCreationResults(results); - request.setTable(SdfTable.SDF_08); // по нему запрос получили + request.setTable(SdfTable.SDF_08); log.debug("Send message to kafka \"{}\": {}", Consts.STATEMENT_PROCESS, LogFormatter.toStringWrapper(request)); kafkaSender.sendRequestToQueue(Consts.STATEMENT_PROCESS, request); } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java index 26e273f76..cb828c988 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java @@ -16,7 +16,6 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.InformationAccountNewRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.reports.NotificationRequest; import ru.spcex.clearing.platform.messaging.serialization.LogFormatter; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; @@ -59,10 +58,6 @@ public class InformationAccountService extends QueueConsumer implements Initiali private final Function infoAccountNewRequestValidator; private final Imdg informationAccountImdg; private final Imdg accountImdg; - /** - * Кэш-счётчик сквозных номеров счетов. - * См. accountNextId() - */ protected AtomicLong infoCounter; @Autowired @@ -191,12 +186,10 @@ public class InformationAccountService extends QueueConsumer implements Initiali log.debug("InformationAccountNewRequest received (system), request id={}", userRequest.getId()); RequestInfoUpdate requestInfoUpdate; -// RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, infoAccountNewRequestValidator); -// if (requestInfoUpdate != null) return requestInfoUpdate; final Long forCompanyId = userRequest.getRequestPayload().getCompanyId(); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); - { // Проверка существования счёта + { Collection accountsAnlt = accountImdg.getCollectionObjectsByFieldValues(Map.of( "companyId", forCompanyId, "accountType", AccountType.Info.getKey() @@ -210,7 +203,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali Long newId = informationAccountImdg.nextIDSequenceFor(); - Long infoSequenceId = accountNextId(); // требуется последовательность n+1 + Long infoSequenceId = accountNextId(); String accountValue = generateInfoAccount(infoSequenceId); log.trace("New info-account id={}, sequenceId={}, account={}", newId, infoSequenceId, accountValue); @@ -276,17 +269,12 @@ public class InformationAccountService extends QueueConsumer implements Initiali imdgTransaction.rollbackTransaction(); } } - - // send to kafka sendNotificationToReport(informationAccount, account); return null; } - /** - * Формирование уведолмения о регистрации УК - */ protected void sendNotificationToReport(InformationAccount informationAccount, Account account) { NotificationRequest request = new NotificationRequest(); request.setConsumerId(account.getCompanyId()); @@ -299,11 +287,6 @@ public class InformationAccountService extends QueueConsumer implements Initiali } - /** - * Сквозной номер инфо-счетов - * - * @return infoCounter++ - */ public synchronized Long accountNextId() { if (infoCounter == null) synchronized (this) { if (infoCounter == null) { @@ -316,7 +299,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali Pattern accPattern = Pattern.compile("39911810([0-9]{8})7000"); int maxN = 1; int parsedCount = 0; - String lastAccount = null; // for debug + String lastAccount = null; for (Account acc : allInfoAcc) { try { String number = acc.getAccount(); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/SDFProcessService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/SDFProcessService.java index 612107078..9c69faacf 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/SDFProcessService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/SDFProcessService.java @@ -6,37 +6,30 @@ 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.misc.Notification; import ru.clearing.classes.statics.data.sdf.SDf52; import ru.clearing.classes.statics.data.sdf.SDf53; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.balance.ExportToFileRequest; import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.utilities.NotificationFeedbackRequest; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.platform.enumeration.AccountStatus; -import ru.spcex.platform.enumeration.NotificationStatus; -import ru.spcex.platform.enumeration.ObjectType; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; -import ru.spcex.platform.utils.collection.Pair; import java.time.Instant; import java.util.*; -import java.util.concurrent.CopyOnWriteArrayList; @Service public class SDFProcessService { - public static final String SDF_STATUS_OK = "OK"; // (Операция выполнена успешно) - если account обновлена по sDf52; - public static final String SDF_STATUS_ERROR_REPEAT = "1"; // (Ошибка. Попытка повторно исполнить операцию) - public static final String SDF_STATUS_ERROR_COMPANY_NOT_FOUND = "2"; // (Ошибка. Участник не найден) - если получена ошибка (5013) "Компания %s не найдена" (т.е. account НЕ обновлена по sDf52); - public static final String SDF_STATUS_ERROR_LIMIT_SUMM = "3"; // (Ошибка. Сумма списания превышает сумму средств на торговом счете участника в ТС) - public static final String SDF_STATUS_ERROR_NO_TRADE = "4"; // (Ошибка. Торги не идут) - public static final String SDF_STATUS_ERROR = "9"; // (Другие ошибки, выявленные в КС) - если получены другие ошибки (т.е. account НЕ обновлена по sDf52). + public static final String SDF_STATUS_OK = "OK"; + public static final String SDF_STATUS_ERROR_REPEAT = "1"; + public static final String SDF_STATUS_ERROR_COMPANY_NOT_FOUND = "2"; + public static final String SDF_STATUS_ERROR_LIMIT_SUMM = "3"; + public static final String SDF_STATUS_ERROR_NO_TRADE = "4"; + public static final String SDF_STATUS_ERROR = "9"; final protected Logger log = LoggerFactory.getLogger(getClass()); @@ -75,7 +68,7 @@ public class SDFProcessService { boolean txOk = false; imdgTransaction.beginTransaction(); HashSet fileNames = new HashSet<>(); - try { // 2. обновление данных, в транзакции + try { Imdg sdf53Imdg = imdgTransaction.getImdg(IMDGDistributedNames.Map_SDf53, SDf53.class); Instant now = Instant.now(); @@ -114,7 +107,7 @@ public class SDFProcessService { newSdf.setResult(result); newSdf.setGenerationTime(now); newSdf.setGenerationId(sdf52.getGenerationId()); - if (!Objects.equals(newGenerationId, newSdf.getGenerationId())) { // never + if (!Objects.equals(newGenerationId, newSdf.getGenerationId())) { log.warn("Different GenerationId={} for sdf53[{}] and GenerationId={} for group of sdf52", newSdf.getGenerationId(), newSdf.getId(), newGenerationId ); @@ -124,10 +117,6 @@ public class SDFProcessService { } - /** - * @param status sdf.getStatus() - * @return AccountStatus или null - */ public AccountStatus parseSdf52Status(Long status) { if (Long.valueOf(1L).equals(status) || Long.valueOf(3L).equals(status)) { return AccountStatus.ACTIVE; @@ -142,9 +131,9 @@ public class SDFProcessService { void messageStatementToExport53(Long groupId, String fileName) { - final String destination = Consts.EXPORT_PROCESS; // dbf-exporter + final String destination = Consts.EXPORT_PROCESS; ExportToFileRequest request = new ExportToFileRequest(); - request.setNameOfTable("DF-53"); // SdfTable.SDF_53 + request.setNameOfTable("DF-53"); request.setSdfGroupId(groupId); request.setFileName(fileName); Long msgId = kafkaSender.sendRequestToQueue(destination, request); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index 6a68bef1e..9abb57c97 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -99,7 +99,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); this.tradingClearingRegistryNewRequestValidator = tradingClearingRegistryNewRequestValidator; - this.tradingClearingRegistryAutoNewRequestValidator = tradingClearingRegistryNewRequestValidator; // без relation. + this.tradingClearingRegistryAutoNewRequestValidator = tradingClearingRegistryNewRequestValidator; this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; this.messageResolver = messageResolver; @@ -108,7 +108,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini @Override public void afterPropertiesSet() throws Exception { imdgProvider.waitAvailable(); - callback(TradingClearingRegistryNewRequest.class) // todo deprecated - unused. + callback(TradingClearingRegistryNewRequest.class) .setFunction(this::tradingClearingRegistryAutoNew) .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, callbacks::put); callback(TradingClearingRegistryNewRequest.class) @@ -143,18 +143,13 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini Account depoAccountMain = req.getDepoAccountId() != null ? accountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; DepoAccount depoAccount = depoAccountMain != null ? depoAccountImdg.getFirstObjectByFieldValues(Map.of("accountId", req.getDepoAccountId())) : null; - -// InformationAccount infoAccount = null; ClearingAccount clearingAccount = null; Account accountMain = null; if (req.getMoneyAccountId() != null) { clearingAccount = clearingAccountImdg.getFirstObjectByFieldValues(Map.of("accountId", req.getMoneyAccountId())); -// if (clearingAccount == null) infoAccount = informationAccountImdg.getSingleObjectByFieldValues(Map.of("accountId", req.getMoneyAccountId())); - Long accountId = req.getMoneyAccountId(); //clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); + Long accountId = req.getMoneyAccountId(); accountMain = accountImdg.getSingleObjectByID(accountId); } - - // кроссвалидация if (req.getMoneyAccountId() == null && (req.getMoneyAccountId() == null || req.getDepoAccountId() == null)) { TradingClearingRegistry registryByCompany = tradingClearingRegistryImdg.getFirstObjectByFieldValues(Map.of("companyId", req.getCompanyId())); if (registryByCompany == null) { @@ -194,7 +189,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini } if (accountId != null) { accountMain = accountImdg.getSingleObjectByID(accountId); - if (accountMain == null) { // never, только с инконсистентными данными + if (accountMain == null) { log.warn("Account {} not exist.", accountId); } else { tradingClearingRegistry.setMoneyAccountId(accountId); @@ -262,9 +257,6 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini tradingClearingRegistryImdg.insert(tradingClearingRegistry); log.debug("New TCR.id={} was created", tradingClearingRegistry.getId()); - -// sendNotificationToCompanySvc(tradingClearingRegistry); при автосоздании ТКР в company-service не отправлять. -// sendNotificationToClearingSvc(tradingClearingRegistry); sendNotificationToReportSvc(tradingClearingRegistry); sendNotificationToClearingSvc(tradingClearingRegistry); @@ -285,7 +277,6 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini } TradingClearingRegistryNewRequest req = userRequest.getRequestPayload(); - // Дополнительная проверка if (req.getMoneyAccountId() == null && (req.getMoneyAccountId() == null || req.getDepoAccountId() == null)) { TradingClearingRegistry registryByCompany = tradingClearingRegistryImdg.getFirstObjectByFieldValues(Map.of("companyId", req.getCompanyId())); if (registryByCompany == null) { @@ -394,14 +385,14 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini if (code.length() > 4) code = code.substring(code.length() - 4); code = "%4s".formatted(code).replace(' ', '0'); - code += registryPurpose.getKey(); // C / M / ... - String trType = tradingRegistryType + "T"; // 2 символа + code += registryPurpose.getKey(); + String trType = tradingRegistryType + "T"; code += trType; String sId = "%5s".formatted(id).replace(' ', '0'); if (sId.length() > 5) sId = sId.substring(sId.length() - 5); code += sId; - return code; // 12 имволов + return code; } public RequestInfoUpdate tradingClearingRegistryUpdate(BaseRequest userRequest) { @@ -414,16 +405,12 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini TradingClearingRegistryUpdateRequest req = userRequest.getRequestPayload(); TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); - - // кроссвалидация - нельзя менять эти поля: if (req.getMoneyAccountId() != null && !req.getMoneyAccountId().equals(tradingClearingRegistry.getMoneyAccountId())) { return requestHelper.makeErrorResponse(userRequest, AccountError.WrongFieldValue, "MoneyAccountId", req.getMoneyAccountId()); } if (req.getDepoAccountId() != null && !req.getDepoAccountId().equals(tradingClearingRegistry.getDepoAccountId())) { return requestHelper.makeErrorResponse(userRequest, AccountError.WrongFieldValue, "DepoAccountId", req.getDepoAccountId()); } -// tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); -// tradingClearingRegistry.setDepoAccountId(req.getDepoAccountId()); if (req.getStatus() != null && !Objects.equals(req.getStatus(), tradingClearingRegistry.getStatus())) { @@ -461,9 +448,6 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini } - /** - * company-service сообщение об успешном добавлении ТКР клиента с параметром tradingClearingRegistry.code - */ protected void sendNotificationToCompanySvc(TradingClearingRegistry tradingClearingRegistry) { ClientCodeNewRequest request = new ClientCodeNewRequest(); request.setTradingClearingRegistryId(tradingClearingRegistry.getId()); @@ -475,9 +459,6 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini kafkaSender.sendRequestToQueue(Consts.DESTINATION_CLIENT_CODE_NEW_UM_COMPANY, request); } - /** - * clearing-service сообщение на открытие клиринговых регистров; - */ protected void sendNotificationToClearingSvc(TradingClearingRegistry tradingClearingRegistry) { CreateRegistryRequest request = new CreateRegistryRequest(); request.setCompanyId(tradingClearingRegistry.getCompanyId()); @@ -486,9 +467,6 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini kafkaSender.sendRequestToQueue(Consts.REGISTRY_NEW, request); } - /** - * report-service сообщение на формирование уведомления о создании нового ТКР - */ protected void sendNotificationToReportSvc(TradingClearingRegistry tradingClearingRegistry) { NotificationRequest request = new NotificationRequest(); request.setConsumerId(tradingClearingRegistry.getCompanyId()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/AccountValidationRule.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/AccountValidationRule.java index 977c67a89..bcdf54329 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/AccountValidationRule.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/AccountValidationRule.java @@ -29,7 +29,6 @@ public enum AccountValidationRule implements IValidationRule - * Тест проверяет генерацию сущности {@link BankAccount} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link BankAccountNewRequest}:
- * {@link BankAccountNewRequest#bankIdentificationCode} - 99999
- * {@link BankAccountNewRequest#bankName} - ооо тинькофф
- * {@link BankAccountNewRequest#correspondentAccount} - 9294189285498598598
- * {@link BankAccountNewRequest#correspondentAccountName} - BIK OF
- * {@link BankAccountNewRequest#currency} - RUB
- * {@link BankAccountNewRequest#destination} - OOO ROGA I KOPITA
- * {@link BankAccountNewRequest#taxpayerIdentificationNumber} - 848484848484
- * {@link BankAccountNewRequest#taxRegistrationReasonCode} - 886886
- * {@link BankAccountNewRequest#account} - 123456789123
- */ @Test public void bankAccountNew() { - //ARRANGE BankAccount predictableBankAccount = getBankAccount(); Company company = getTestCompany(); @@ -174,8 +159,6 @@ public class BankAccountServiceTest { BankAccountNewRequest bankAccountNewRequest = getBankAccountNewRequest(predictableBankAccount); String jsonString = getJsonStringForNew(bankAccountNewRequest, ID); - - //ACT addRecordToKafka((MockConsumer) bankAccountService.getConsumer(), TOPIC_ACCOUNT_NEW, PARTITION, 0, jsonString); waitingSendAndCheckRecord(ID, mockProducer); @@ -184,26 +167,10 @@ public class BankAccountServiceTest { predictableBankAccount.setAccountId(accountResult.getId()); predictableBankAccount.setId(bankAccountResult.getId()); setSameValueToField(accountResult, predictableAccount); - - //ASSERT BANK_ACCOUNT_MATCHER.assertMatch(bankAccountResult, predictableBankAccount); ACCOUNT_MATCHER.assertMatch(accountResult, predictableAccount); } - /** - * {@link BankAccountService#bankAccountNew(BaseRequest request)}
- * Тест проверяет валидацию.
- * Входной запрос {@link BankAccountNewRequest}:
- * {@link BankAccountNewRequest#bankIdentificationCode} - 99999
- * {@link BankAccountNewRequest#bankName} - ооо тинькофф
- * {@link BankAccountNewRequest#correspondentAccount} - 9294189285498598598
- * {@link BankAccountNewRequest#correspondentAccountName} - BIK OF
- * {@link BankAccountNewRequest#currency} - RUB
- * {@link BankAccountNewRequest#destination} - OOO ROGA I KOPITA
- * {@link BankAccountNewRequest#taxpayerIdentificationNumber} - 848484848484
- * {@link BankAccountNewRequest#taxRegistrationReasonCode} - 886886
- * {@link BankAccountNewRequest#account} - 123456789123
- */ @Test public void validatedBankAccountNew() { clearImdg(accountImdg); @@ -213,8 +180,6 @@ public class BankAccountServiceTest { BankAccountNewRequest bankAccountNewRequest = getBankAccountNewRequest(predictableBankAccount); String errMsg; - //AccountValidationRule.RequiredFields - //WrongFieldValue bankAccountNewRequest.setCurrency(null); errMsg = messageResolver.resolve(new EnumMessage(AccountError.RequiredFieldEmpty, "currency")); checkError(errMsg, bankAccountNewRequest); @@ -248,22 +213,14 @@ public class BankAccountServiceTest { errMsg = messageResolver.resolve(new EnumMessage(AccountError.RequiredFieldEmpty, "companyId")); checkError(errMsg, bankAccountNewRequest); bankAccountNewRequest.setCompanyId(addresseeIdNew); - - //AccountValidationRule.CompanyPresent - //CompanyNotFound bankAccountNewRequest.setCompanyId(999924535239L); errMsg = messageResolver.resolve(new EnumMessage(AccountError.CompanyNotFound, "companyId")); checkError(errMsg, bankAccountNewRequest); - - //CompanyNotActive company.setWorkflowStatus(Status.Blocked.getKey()); companyImdg.insert(company); bankAccountNewRequest.setCompanyId(company.getId()); errMsg = messageResolver.resolve(new EnumMessage(AccountError.CompanyNotActive, "companyId")); checkError(errMsg, bankAccountNewRequest); - - //AccountValidationRule.AccountIsNew - //AccountAlreadyExist company.setWorkflowStatus(Status.Active.getKey()); companyImdg.insert(company); Account existAccount = getTestAccount(accountId, acc); @@ -274,7 +231,6 @@ public class BankAccountServiceTest { } private void checkError(String errorMsg, BankAccountNewRequest bankAccountNewRequest) { - //ARRANGE int currentTime = countRun.getAndIncrement(); long currentOffset = currentTime; BaseRequest predictableBaseRequest = new BaseRequest<>(); @@ -287,40 +243,17 @@ public class BankAccountServiceTest { predictableBaseRequest.setRequestPayload(requestInfoUpdate); String jsonString = getJsonStringForNew(bankAccountNewRequest, ID); - - //ACT addRecordToKafka((MockConsumer) bankAccountService.getConsumer(), TOPIC_ACCOUNT_NEW, PARTITION, currentOffset, jsonString); - - //waiting for kafka producer send message (finale event) verify(producer, timeout(30_000L).times(currentTime)) .send(producerRecord.capture()); BaseRequest baseRequestResult = (BaseRequest) producerRecord.getValue().value(); - - //ASSERT assertEquals(Consts.REQUEST_INFO_UPDATE, producerRecord.getValue().topic()); BASE_REQUEST_MATCHER.assertMatch(baseRequestResult, predictableBaseRequest); } - /** - * {@link BankAccountService#bankAccountUpdate(BaseRequest)}
- * Тест проверяет обновление сущности {@link BankAccount} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link BankAccountUpdateRequest}:
- * {@link BankAccountUpdateRequest#bankIdentificationCode} - NEW BUNK NAME
- * {@link BankAccountUpdateRequest#bankName} - 88888
- * {@link BankAccountUpdateRequest#correspondentAccount} - 894984646541316
- * {@link BankAccountUpdateRequest#correspondentAccountName} - BIK OF NEW BUNK
- * {@link BankAccountUpdateRequest#currency} - EU
- * {@link BankAccountUpdateRequest#destination} - OOO NEW BUNK
- * {@link BankAccountUpdateRequest#taxpayerIdentificationNumber} - 65468461321
- * {@link BankAccountUpdateRequest#taxRegistrationReasonCode} - 532137
- * {@link BankAccountUpdateRequest#account} - 326984656514
- */ @Test void bankAccountUpdate() { clearImdg(accountImdg); - //ARRANGE -// Company company = getTestCompany(); -// companyImdg.insert(company); Account predictableAccount = getTestAccount(accountId, acc); accountImdg.insert(predictableAccount); @@ -351,11 +284,7 @@ public class BankAccountServiceTest { bankAccountUpdateRequest.setAccount(predictableUpdateBankAccount.getAccount()); String jsonString = getJsonStringForUpdate(bankAccountUpdateRequest, ID); - - //ACT addRecordToKafka((MockConsumer) bankAccountService.getConsumer(), TOPIC_ACCOUNT_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Account accountResult = accountImdg.getSingleObjectByID(predictableAccount.getId()); @@ -367,15 +296,8 @@ public class BankAccountServiceTest { ACCOUNT_MATCHER.assertMatch(accountResult, predictableAccount); } - /** - * {@link BankAccountService#bankAccountDelete(BaseRequest)} - * Тест проверяет удаление сущности {@link BankAccount} в Hazelcast при передаче из Apache Kafka. - * Входной запрос {@link CommonDeleteRequest}: - * {@link CommonDeleteRequest#id} - Идентификатор записи - */ @Test void bankAccountDelete() { - //ARRANGE BankAccount bankAccountExists = getBankAccount(); bankAccountImdg.insert(bankAccountExists); Account account = new Account(); @@ -386,11 +308,7 @@ public class BankAccountServiceTest { CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); commonDeleteRequest.setId(ID); String jsonString = getJsonStringForDelete(commonDeleteRequest, ID); - - //ACT addRecordToKafka((MockConsumer) bankAccountService.getConsumer(), TOPIC_ACCOUNT_DELETE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); BankAccount bankAccount = bankAccountImdg.getSingleObjectByID(ID); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java index 5e218ed39..6f0032e47 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java @@ -232,78 +232,4 @@ class ClearingAccountServiceTest { Assertions.assertEquals("013", clearingAccountService.makeSdfErrorText(AccountError.CompanyNotFound, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND)); Assertions.assertEquals("2", clearingAccountService.makeSdfErrorText(null, SDFProcessService.SDF_STATUS_ERROR_COMPANY_NOT_FOUND)); } - -// /** -// * {@link ClearingAccountService#accountNewSdf01(BaseRequest)}
-// * Тест проверяет создание сущности {@link BaseRequest} в Hazelcast при передаче из Apache Kafka.
-// * Входной запрос {@link AccountSdf01Request}:
-// * {@link AccountSdfRequestPart#setSdfId} - текущий Id
-// * {@link AccountSdfRequestPart#setAccount} - 123456789123
-// * {@link AccountSdfRequestPart#setCompanyId} - текущий Id
-// * {@link AccountSdf01Request#setGroupingSdf01Id} - текущий Id
-// * {@link AccountSdf01Request#setAccounts} - Collections.singletonList(AccountSdfRequestPart)
-// */ -// @Test -// void accountSdf01New() throws InterruptedException { -// //ARRANGE -// Long firstID = currentID.getAndIncrement(); -// Long secondID = currentID.getAndIncrement(); -// AccountSdfRequestPart accountSdfRequestPart = new AccountSdfRequestPart(); -// accountSdfRequestPart.setSdfId(firstID); -// accountSdfRequestPart.setAccount(account); -// accountSdfRequestPart.setCompanyId(firstID); -// AccountSdf01Request accountSdf01Request = new AccountSdf01Request(); -// accountSdf01Request.setGroupingSdf01Id(firstID); -// accountSdf01Request.setAccounts(Collections.singletonList(accountSdfRequestPart)); -// BaseRequest baseNewRequest = new BaseRequest<>(); -// baseNewRequest.setRequestPayload(accountSdf01Request); -// baseNewRequest.setId(firstID); -// baseNewRequest.setActionType(ActionType.NEW); -// String jsonBaseNewRequest; -// ObjectMapper objectMapper = new ObjectMapper(); -// try { -// jsonBaseNewRequest = objectMapper.writeValueAsString(baseNewRequest); -// } catch (JsonProcessingException e) { -// throw new RuntimeException(e); -// } -// -// AccountSdfToStatementRequestPart responsePart = new AccountSdfToStatementRequestPart(); -// responsePart.setSdfId(firstID); -// responsePart.setErrorCode(null); -// responsePart.setErrorText(null); -// List accountToStatement = Collections.singletonList(responsePart); -// StatementRequest statementRequest = new StatementRequest(); -// statementRequest.setGroupId(firstID); -// statementRequest.setAccountCreationResults(accountToStatement); -// -// BaseRequest baseRequest = new BaseRequest<>(); -// baseRequest.setId(secondID); -// baseRequest.setActionType(ActionType.SYSTEM); -// baseRequest.setRequestPayload(statementRequest); -// -// Account predictableAccount = new Account(); -// predictableAccount.setAccount(account); -// predictableAccount.setCompanyId(firstID); -// -// RequestInfo predictableRequestInfo = new RequestInfo(); -// predictableRequestInfo.setId(secondID); -// predictableRequestInfo.setStatus(Status.Processing); -// -// //KAFKA -// final String TOPIC_ACCOUNT_NEW = Consts.ACCOUNT_NEW_SDF01; -// addRecordToKafka((MockConsumer) accountService.getConsumer(), TOPIC_ACCOUNT_NEW, PARTITION, 0, jsonBaseNewRequest); -// -// //waiting for kafka producer send message (finale event) -// verify(producer, timeout(30_000L).times(2)) -// .send(producerRecord.capture()); -// //todo переписать валидацию ожидания на новые waitingSendAndCheckRecord / waitingWhenTryAddRecordAndCheckError -// -// ImdgHazelcast accountImdg = (ImdgHazelcast) hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Account, Account.class); -// -// //ASSERT -// Account accountResult = accountImdg.getSingleObjectBySQL(String.format("account = %s", account)); -// predictableAccount.setId(accountResult.getId()); -// ACCOUNT_MATCHER.assertMatch(accountResult, predictableAccount); -// accountImdg.delete(accountResult); -// } } \ No newline at end of file diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClientCodeServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClientCodeServiceTest.java index c362e1c41..14ff81d8c 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClientCodeServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClientCodeServiceTest.java @@ -26,7 +26,6 @@ import ru.spcex.clearing.account.config.validation.TradingClearingRegistryValida import ru.spcex.clearing.account.config.validation.ValidationConfig; import ru.spcex.clearing.account.utils.MatcherFactory; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeUpdateRequest; @@ -80,15 +79,10 @@ class ClientCodeServiceTest { private Imdg clientCodeImdg; - - // ****************************-******************* - @PostConstruct private void init() { hazelcastServiceTest.waitAvailable(); clientCodeImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ClientCode, ClientCode.class); - - // Словари для теста, применяются в ValidationConfig putToDictionary(IMDGDistributedNames.Map_WorkflowStatusDictionary, new WorkflowStatusDictionary(), "ACTV"); putToDictionary(IMDGDistributedNames.Map_CompanySymbolDictionary, new CompanySymbolDictionary(), "CLRC"); putToDictionary(IMDGDistributedNames.Map_CorporationSoleTypeDictionary, new CorporationSoleTypeDictionary(), "GDIR"); @@ -129,7 +123,7 @@ class ClientCodeServiceTest { moneyAccount.setId(131L); moneyAccount.setAccount("AAAA-4444"); moneyAccount.setStatus("ACTV"); - moneyAccount.setCompanyId(COMPANY_ID); // для валидации принадлежности счёта + moneyAccount.setCompanyId(COMPANY_ID); accounts.insert(moneyAccount); ClearingAccount clsAcc = new ClearingAccount(); clsAcc.setId(moneyAccount.getId()); @@ -141,7 +135,7 @@ class ClientCodeServiceTest { depoAccount.setId(132L); depoAccount.setAccount("AAAB-44654"); depoAccount.setStatus("ACTV"); - depoAccount.setCompanyId(COMPANY_ID); // для валидации принадлежности счёта + depoAccount.setCompanyId(COMPANY_ID); accounts.insert(depoAccount); DepoAccount depoAcc = new DepoAccount(); depoAcc.setId(depoAccount.getId()); @@ -176,14 +170,8 @@ class ClientCodeServiceTest { } - /** - * {@link ClientCodeService#clientCodeUpdate(BaseRequest)}
- * Тест проверяет создание {@link ClientCode} в IMDG при передаче из Apache Kafka (очередь 1).
- * Входной запрос {@link ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest}:
- **/ @Test void clientCodeNew1() { - //ARRANGE final String ccCode = "Lucky planet"; ClientCodeNewRequest clientCodeNewRequest = new ClientCodeNewRequest(); clientCodeNewRequest.setCompanyId(COMPANY_ID); @@ -197,16 +185,9 @@ class ClientCodeServiceTest { predictableClientCode.setCode(ccCode); predictableClientCode.setStatus("ACTV"); predictableClientCode.setCompanyId(COMPANY_ID); -// predictableClientCode.setMoneyAccountId(131L); -// predictableClientCode.setDepoAccountId(132L); -// predictableClientCode.setTradingClearingRegistryId(TCR_ID); - - //ACT String jsonString = TestUtils.getJsonStringForNew(clientCodeNewRequest, ID); TestUtils.addRecordToKafka((MockConsumer) clientCodeService.getConsumer(), Consts.DESTINATION_CLIENT_CODE_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ClientCode resultNew = clientCodeImdg.getFirstObjectBySQL(String.format("code = '%s'", ccCode)); predictableClientCode.setId(resultNew.getId()); @@ -214,14 +195,8 @@ class ClientCodeServiceTest { assertNotNull(resultNew.getCreated()); } - /** - * {@link ClientCodeService#clientCodeUpdate(BaseRequest)}
- * Тест проверяет создание {@link ClientCode} в IMDG при передаче из Apache Kafka (очередь 2).
- * Входной запрос {@link ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest}:
- **/ @Test void clientCodeNew2() { - //ARRANGE final String ccCode = "Lucky planet"; ClientCodeNewRequest clientCodeNewRequest = new ClientCodeNewRequest(); clientCodeNewRequest.setCompanyId(COMPANY_ID); @@ -235,16 +210,9 @@ class ClientCodeServiceTest { predictableClientCode.setCode(ccCode); predictableClientCode.setStatus("ACTV"); predictableClientCode.setCompanyId(COMPANY_ID); -// predictableClientCode.setMoneyAccountId(131L); -// predictableClientCode.setDepoAccountId(132L); -// predictableClientCode.setTradingClearingRegistryId(TCR_ID); - - //ACT String jsonString = TestUtils.getJsonStringForNew(clientCodeNewRequest, ID); TestUtils.addRecordToKafka((MockConsumer) clientCodeService.getConsumer(), Consts.DESTINATION_CLIENT_CODE_NEW_UM_COMPANY, PARTITION, 0, jsonString); - - //ASSERT TestUtils.waitingSendAndCheckRecord(ID, mockProducer, producerRecord); ClientCode resultNew = clientCodeImdg.getFirstObjectBySQL(String.format("code = '%s'", ccCode)); predictableClientCode.setId(resultNew.getId()); @@ -253,15 +221,8 @@ class ClientCodeServiceTest { } - /** - * {@link ClientCodeService#clientCodeUpdate(BaseRequest)}
- * Тест проверяет создание {@link ClientCode} в IMDG при передаче из Apache Kafka (очередь 1).
- * NEW с заполненными MoneyAccountId(131L), DepoAccountId(132L); - от этого будет создан ТКР. - * Входной запрос {@link ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest}:
- **/ @Test void clientCodeNew3() { - //ARRANGE final String ccCode = "Lucky planet2"; ClientCodeNewRequest clientCodeNewRequest = new ClientCodeNewRequest(); clientCodeNewRequest.setCompanyId(COMPANY_ID); @@ -278,13 +239,9 @@ class ClientCodeServiceTest { predictableClientCode.setMoneyAccountId(131L); predictableClientCode.setDepoAccountId(132L); predictableClientCode.setTradingClearingRegistryId(TCR_ID); - - //ACT String jsonString = TestUtils.getJsonStringForNew(clientCodeNewRequest, ID); TestUtils.addRecordToKafka((MockConsumer) clientCodeService.getConsumer(), Consts.DESTINATION_CLIENT_CODE_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ClientCode resultNew = clientCodeImdg.getFirstObjectBySQL(String.format("code = '%s'", ccCode)); predictableClientCode.setId(resultNew.getId()); @@ -292,14 +249,8 @@ class ClientCodeServiceTest { assertNotNull(resultNew.getCreated()); } - /** - * {@link ClientCodeService#clientCodeUpdate(BaseRequest)}
- * Тест проверяет обновление сущности {@link ClientCode} в IMDG при передаче из Apache Kafka.
- * Входной запрос {@link ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeUpdateRequest}:
- **/ @Test void clientCodeUpdate() { - //ARRANGE ClientCode existsClientCode = new ClientCode(); existsClientCode.setId(ID); existsClientCode.setCompanyId(COMPANY_ID); @@ -327,13 +278,9 @@ class ClientCodeServiceTest { predictableClientCode.setMoneyAccountId(131L); predictableClientCode.setDepoAccountId(132L); predictableClientCode.setStatus("ACTV"); - - //ACT String jsonString = TestUtils.getJsonStringForUpdate(clientCodeUpdateRequest, ID); TestUtils.addRecordToKafka((MockConsumer) clientCodeService.getConsumer(), Consts.DESTINATION_CLIENT_CODE_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ClientCode resultUpdating = clientCodeImdg.getSingleObjectByID(ID); @@ -342,19 +289,12 @@ class ClientCodeServiceTest { } - /** - * {@link ClientCodeService#clientCodeUpdate(BaseRequest)}
- * Тест проверяет удаление {@link ClientCode} из IMDG при передаче из Apache Kafka.
- * Входной запрос {@link ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest}:
- **/ @Test void clientCodeDelete1() { - //ARRANGE ClientCode existsClientCode = new ClientCode(); existsClientCode.setId(ID); existsClientCode.setCompanyId(COMPANY_ID); existsClientCode.setCode("0000"); - // Если следующие поля заполнить, то дополнительно отправит сообщение в trading-clearing-registry-update: existsClientCode.setTradingClearingRegistryId(null); existsClientCode.setMoneyAccountId(null); existsClientCode.setDepoAccountId(null); @@ -365,56 +305,14 @@ class ClientCodeServiceTest { CommonDeleteRequest clientCodeDeleteRequest = new CommonDeleteRequest(); clientCodeDeleteRequest.setId(ID); - Assertions.assertNotNull(clientCodeImdg.getSingleObjectByID(ID)); // verify test data - - //ACT + Assertions.assertNotNull(clientCodeImdg.getSingleObjectByID(ID)); String jsonString = TestUtils.getJsonStringForUpdate(clientCodeDeleteRequest, ID); TestUtils.addRecordToKafka((MockConsumer) clientCodeService.getConsumer(), Consts.DESTINATION_CLIENT_CODE_DELETE, PARTITION, 0, jsonString); - //ASSERT - waitingSendAndCheckRecord(ID, mockProducer); ClientCode resultUpdate = clientCodeImdg.getSingleObjectByID(ID); Assertions.assertNull(resultUpdate); } -// /** -// * {@link ClientCodeService#clientCodeUpdate(BaseRequest)}
-// * Тест проверяет удаление {@link ClientCode} из IMDG при передаче из Apache Kafka.
-// * У ClientCode заполнены MoneyAccountId, DepoAccountId - по этому при удалении должно направиться дополнительное сообщение в очередь DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE
-// * Входной запрос {@link ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest}:
-// **/ -// @Test -// void clientCodeDelete2() { -// //ARRANGE -// ClientCode existsClientCode = new ClientCode(); -// existsClientCode.setId(ID); -// existsClientCode.setCompanyId(COMPANY_ID); -// existsClientCode.setCode("0000"); -// // Если следующие поля заполнить, то дополнительно отправит сообщение в trading-clearing-registry-update: -// existsClientCode.setTradingClearingRegistryId(TCR_ID); -// existsClientCode.setMoneyAccountId(131L); -// existsClientCode.setDepoAccountId(132L); -// existsClientCode.setStatus("ACTV"); -// -// clientCodeImdg.insert(existsClientCode); -// -// CommonDeleteRequest clientCodeDeleteRequest = new CommonDeleteRequest(); -// clientCodeDeleteRequest.setId(ID); -// -// Assertions.assertNotNull(clientCodeImdg.getSingleObjectByID(ID)); // verify test data -// -// //ACT -// String jsonString = getJsonStringForUpdate(clientCodeDeleteRequest, ID); -// -// addRecordToKafka((MockConsumer) clientCodeService.getConsumer(), Consts.DESTINATION_CLIENT_CODE_DELETE, PARTITION, 0, jsonString); -// -// //ASSERT -// -// waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); -// ClientCode resultUpdate = clientCodeImdg.getSingleObjectByID(ID); -// Assertions.assertNull(resultUpdate); -// } - } \ No newline at end of file diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java index 6fbe84f26..6346aa0c0 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java @@ -153,8 +153,6 @@ class InformationAccountServiceTest { PARTITION, 0, jsonString); - - //waiting for kafka producer send message (finale event) verify(producer, timeout(30_000L).times(2)) .send(producerRecord.capture()); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java index e9a2760f5..dda1694af 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java @@ -275,15 +275,11 @@ class TradingClearingRegistryServiceTest { tradingClearingRegistryUpdateRequest.setId(registryId); String jsonString = getJsonStringForUpdate(tradingClearingRegistryUpdateRequest, 0); - - //ACT addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(0L, producer, producerRecord); TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId); @@ -303,15 +299,11 @@ class TradingClearingRegistryServiceTest { tradingClearingRegistryDeleteRequest.setId(registryId); String jsonString = getJsonStringForDelete(tradingClearingRegistryDeleteRequest, 0); - - //ACT addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(0L, producer, producerRecord); TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/utils/ImapEvent.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/utils/ImapEvent.java index c018ead9a..9ba27cb14 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/utils/ImapEvent.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/utils/ImapEvent.java @@ -39,14 +39,13 @@ public class ImapEvent { } public void waitWhenHappened() throws InterruptedException { - //running timer task as daemon thread Timer timer = new Timer(true); timer.scheduleAtFixedRate(new TimerTask() { boolean secondRan; @Override public void run() { - checkEventHappened.set(secondRan);//если что-то пойдет не так не тормозить основной поток + checkEventHappened.set(secondRan); secondRan = true; } }, 0, 30 * 1000); @@ -55,7 +54,6 @@ public class ImapEvent { checkEventHappened.wait(100); } } - //preparing hazelcastImdgProvider for next test iMap.removeEntryListener(listenerAdding); iMap.removeEntryListener(listenerUpdating); iMap.removeEntryListener(listenerRemoving); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/utils/MatcherFactory.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/utils/MatcherFactory.java index b2d1a4fdc..c6777890f 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/utils/MatcherFactory.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/utils/MatcherFactory.java @@ -4,11 +4,6 @@ import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; -/** - * Factory for creating test matchers. - *

- * Comparing actual and expected objects via AssertJ - */ public class MatcherFactory { public static Matcher usingIgnoringFieldsComparator(String... fieldsToIgnore) { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/BackendApiApplication.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/BackendApiApplication.java index 2264ef140..51d73307d 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/BackendApiApplication.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/BackendApiApplication.java @@ -26,7 +26,6 @@ public class BackendApiApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { setKeycloakConfigFile(); - // springApplicationBuilder.initializers(DfaConfig.get().getLoggingInitializer()); return builder.sources(BackendApiApplication.class); } @@ -35,9 +34,6 @@ public class BackendApiApplication extends SpringBootServletInitializer { return super.run(application); } - /** - * чтобы переместить настройки keycloak в keycloak.json вместо application.properties - */ private static void setKeycloakConfigFile() { System.setProperty("keycloak.configurationFile", "classpath:keycloak.json"); } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/BackEndApiImdgConfig.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/BackEndApiImdgConfig.java index b43a385db..7b64fcc63 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/BackEndApiImdgConfig.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/BackEndApiImdgConfig.java @@ -31,7 +31,6 @@ public class BackEndApiImdgConfig { ImdgProvider imdg = new HazelcastService(taskExecutorHazelcastClientInitializer, taskExecutorIdGeneratorAwaiter, clientSetting.getHazelcast()); -// todo корректное ожидание готовности imdg.waitAvailable(); return imdg; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/WebConfig.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/WebConfig.java index 5a4e2c0d8..28c747125 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/WebConfig.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/WebConfig.java @@ -22,7 +22,6 @@ import java.util.function.Consumer; @SuppressWarnings("Duplicates") @Configuration @EnableWebMvc -//todo remove? see ClearingCorsFilter @CrossOrigin public class WebConfig implements WebMvcConfigurer { private final MappingJackson2HttpMessageConverter customJsonHttpConverter; diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/AbstractQueueController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/AbstractQueueController.java index 7c4452737..f8ed93b38 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/AbstractQueueController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/AbstractQueueController.java @@ -4,7 +4,6 @@ import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.backendapi.service.IOperator; -import java.util.Objects; import java.util.concurrent.ExecutionException; public abstract class AbstractQueueController { @@ -22,9 +21,6 @@ public abstract class AbstractQueueController { return responseToClient; } - /** - * Для оптимизации передачи userId - */ protected CudResponse processRequest(String destination, IAction iAction, Long userId) throws ExecutionException, InterruptedException { CudResponse responseToClient = new CudResponse(); responseToClient.setPayload(operator.sendRequestToQueue(destination, iAction, userId)); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/InformationAccountController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/InformationAccountController.java index 823b12dd5..a2b37a1d9 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/InformationAccountController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/InformationAccountController.java @@ -1,31 +1,22 @@ package ru.spcex.clearing.backendapi.controller.queue.account; import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import ru.clearing.classes.statics.data.account.InformationAccount; import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.request.cud.account.AccountInformationNewAction; -import ru.spcex.clearing.backendapi.controller.request.cud.account.BankAccountNewAction; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; -import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; import ru.spcex.clearing.backendapi.service.IOperator; import ru.spcex.clearing.backendapi.service.IStateLoader; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.Consts; import java.util.Collection; import java.util.Map; -import java.util.concurrent.ExecutionException; @Controller @RequestMapping("/accounting/information-accounts") @@ -49,15 +40,4 @@ public class InformationAccountController extends AbstractQueueController { response.fromEntity(all); return response; } - - -// @ApiOperation(value = "Добавление информационного счета.") -// @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) -// @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) -// @ResponseBody -// public CudResponse add( -// @ApiParam(value = "Параметры команды в JSON формате.", required = true) -// @RequestBody AccountInformationNewAction accountNewInformationAction) throws ExecutionException, InterruptedException { -// return processRequest(Consts.DESTINATION_INFORMATION_ACCOUNT_NEW, accountNewInformationAction); -// } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/LauncherController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/LauncherController.java index 0972526f5..45ddaab46 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/LauncherController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/LauncherController.java @@ -86,8 +86,6 @@ public class LauncherController extends AbstractQueueController { } launcherCommand.setTask(dictionaryName); launcherCommand.setUserId(user.getId()); - //топики ограничиваются наличием в taskDictionary - //подписываются на разные топики в разных модулях, см. ru.spcex.platform.enumeration.Task#topic return processRequest(Consts.LAUNCHER_NEW, launcherCommand); } @@ -106,7 +104,7 @@ public class LauncherController extends AbstractQueueController { } if (!IEnumKey.contains(taskEnum.getCode(), Task.startOfClearing, Task.dbfExport_OUTV)) { log.warn(String.format("Task %s not support request with body", taskEnum.getCode())); - } // else В мете эти модели с дополнительными параметрами (OUTV). + } Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String username = KeycloakUtils.getUserNameFromAuthentication(authentication); User user = userImdg.getFirstObjectByFieldValues(Map.of("identifier", username)); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityController.java index f3b7a523a..d90211d3f 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityController.java @@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity; import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity; import ru.clearing.classes.statics.data.security.MoneyMarketSecurity; -import ru.clearing.classes.statics.data.security.Security; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; import ru.spcex.clearing.backendapi.service.IStateLoader; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -20,9 +19,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Map; -/** - * SecurityController и MoneyMarketSecurityController разные контроллеры, не путать. - */ @Controller @RequestMapping("/securities") public class SecurityController { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/user/UserController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/user/UserController.java index ca48a838f..9b1dc6e24 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/user/UserController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/user/UserController.java @@ -90,10 +90,6 @@ public class UserController extends AbstractQueueController { log.warn("user {} sended update request for user {}", username, userUpdateAction.getUsername()); throw new IllegalStateException("cannot perform delete action for " + username); } -// User user = userImdg.getSingleObjectByFieldValues(Map.of("identifier", username)); -// if (user == null) { -// log.info("update user {} authenticated, but User object was not created", username); -// } return processRequest(Consts.USER_UPDATE, userUpdateAction); } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementController.java index df1cd0349..4a4606b80 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementController.java @@ -58,8 +58,6 @@ public class StatementController extends AbstractQueueController { Optional statement = stateLoader.getById(id, IMDGDistributedNames.Map_Statement, Statement.class); CommonGetByIdResponse response = new CommonGetByIdResponse(); if (statement.isEmpty()) { - //можно так, либо response.setCode(404); response.setMessage("blabla"); но тогда еще нужно - //отдельно HTTP статус проставлять throw new NotFound404Exception(String.valueOf(id)); } Statement stmt = statement.get(); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetAll.java index aa69dd436..2f5783e82 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetAll.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/company/CompanyBackendGetAll.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.profile.CompanyInfo; import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import java.util.ArrayList; @@ -51,25 +50,6 @@ public class CompanyBackendGetAll extends BasicSpcexResponse { singleItem.setFullName(company.getFullName()); singleItem.setCreated(company.getCreated()); singleItem.setUpdated(company.getUpdated()); -// CompanyInfo profile = company.getProfile(); -// if (profile != null) { -// singleItem.setCorporationSoleType(profile.getCorporationSoleType()); -// singleItem.setCountryCode(profile.getCountryCode()); -// singleItem.setDescription(profile.getDescription()); -// singleItem.setProfessionalSign(profile.getProfessionalSign()); -// singleItem.setLegalKind(profile.getLegalKind()); -// singleItem.setOrganizationType(profile.getOrganizationType()); -// singleItem.setResidence(profile.getResidence()); -// singleItem.setShortNameEng(profile.getShortNameEng()); -// singleItem.setFullNameEng(profile.getFullNameEng()); -// } - /* todo - CompanySymbol companySymbol = ; - if (companySymbol!=null) { - - singleItem.setCompanySymbol(profile.getCompanySymbol()); - singleItem.setCompanySymbolValue(profile.getCompanySymbolValue()); - }*/ payload.getItems().add(singleItem); } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetById.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetById.java index d734efa4e..8c7b667f8 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetById.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/registry/TradingClearingRegistryBackendGetById.java @@ -6,12 +6,6 @@ import io.swagger.annotations.ApiModelProperty; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; -/** - * Банковские реквизиты для перечисления денежных средств - * - * @ApiModel(description = "Ответ в результате отправки операции в топик Kafka.") - * @ApiModelProperty(value = "Информация о принятом запросе") - **/ @ApiModel(description = "Ответ при получении объекта TradingClearingRegistry.") public class TradingClearingRegistryBackendGetById extends BasicSpcexResponse { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/system/RequestInfoResponse.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/system/RequestInfoResponse.java index ed21ea44d..acfa20685 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/system/RequestInfoResponse.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/system/RequestInfoResponse.java @@ -9,11 +9,6 @@ import ru.spcex.clearing.platform.messaging.domain.json.serialize.EnumSerializer import ru.spcex.clearing.platform.messaging.service.Status; -/** - * Банковские реквизиты для перечисления денежных средств - * @ApiModel(description = "Ответ в результате отправки операции в топик Kafka.") - * @ApiModelProperty(value = "Информация о принятом запросе") - **/ @ApiModel(description = "Ответ при получении статуса запроса.") public class RequestInfoResponse extends BasicSpcexResponse { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/filter/ClearingCorsFilter.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/filter/ClearingCorsFilter.java index b0346ffd0..c55150448 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/filter/ClearingCorsFilter.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/filter/ClearingCorsFilter.java @@ -19,18 +19,14 @@ import java.io.IOException; public class ClearingCorsFilter extends OncePerRequestFilter { private final Logger log = LoggerFactory.getLogger(getClass()); -// private final AConfigurationProperties configuration; - //todo cors settings - private final String[] meth = new String[] {};//"*" - private final String[] orig = new String[] {};//"/**" +private final String[] meth = new String[] {}; + private final String[] orig = new String[] {}; private final String[] head = new String[] {}; private final CorsAllowedOriginsService allowedOriginsService; public ClearingCorsFilter( -// AConfigurationProperties configuration, CorsAllowedOriginsService allowedOriginsService ) { -// this.configuration = configuration; this.allowedOriginsService = allowedOriginsService; } @@ -63,21 +59,7 @@ public class ClearingCorsFilter extends OncePerRequestFilter { log.trace("cors filter -> effectiveOrigin={}", effectiveOrigin); if (effectiveOrigin != null) { setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_ORIGIN, effectiveOrigin); - -// String methods; -// if (meth.length > 0) { -// methods = String.join(", ", meth).toUpperCase(Locale.ROOT); -// } else { -// methods = "*"; -// } setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_METHODS, "*"); - -// String headers; -// if (head.length > 0) { -// headers = String.join(", ", head).toLowerCase(Locale.ROOT); -// } else { -// headers = "*"; -// } setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_HEADERS, "*"); setHeaderValue(httpServletResponse, H_ACCESS_CONTROL_ALLOW_CREDENTIALS, "true"); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/filter/CorsAllowedOriginsService.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/filter/CorsAllowedOriginsService.java index a6e40a570..90d294c51 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/filter/CorsAllowedOriginsService.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/filter/CorsAllowedOriginsService.java @@ -12,7 +12,6 @@ public class CorsAllowedOriginsService { private final List originPatterns = new ArrayList<>(); - //todo cors settings public CorsAllowedOriginsService() { for (String originRegex : new String[]{".*"}) { originPatterns.add(Pattern.compile(originRegex)); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/ActionElement.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/ActionElement.java index 8fa0523be..05e1aeeb3 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/ActionElement.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/ActionElement.java @@ -22,8 +22,6 @@ public class ActionElement { @JsonInclude(JsonInclude.Include.NON_EMPTY) private Boolean isArray = null; - // @JsonProperty(value = "fields", required = true) -// private List> fields = new LinkedList<>(); @JsonProperty(value = "fields", required = true) private List fields = new LinkedList<>(); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/CudMetaService.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/CudMetaService.java index 97b823e53..2aaa558e0 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/CudMetaService.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/CudMetaService.java @@ -10,9 +10,6 @@ import ru.spcex.clearing.platform.messaging.domain.Consts; import java.util.HashMap; import java.util.Map; -/** - * todo временная заглушка: нужно добавить парсинг meta.xml и получать инфу оттуда - */ @Service public class CudMetaService { private final Map>> mapping; diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/FieldExtracted.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/FieldExtracted.java index bb2bfe495..87b1c317a 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/FieldExtracted.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/FieldExtracted.java @@ -58,10 +58,6 @@ public abstract class FieldExtracted { if (result == null) break; } - - //fixme somehow externalize custom serialization for type - // тут нужно вернуть список id объектов а не список самих объектов для случая - // - add(r, "addresseeId", o.getAddressee() == null ? null : o.getAddressee().stream().map(ObjectBase::getId).collect(Collectors.toSet()), fieldFilter); if (result instanceof Set && ((Set) result).size() > 0) { try { Set t = new HashSet(); @@ -70,7 +66,7 @@ public abstract class FieldExtracted { t.add(citem.getMethod(RfHelper.GETTER_NAME_ID).invoke(item)); } result = t; - } catch (Throwable ignored) {// вернем сами объекты + } catch (Throwable ignored) { } } else if (result instanceof LocalDate) { result = result.toString(); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/GetResponseFactory.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/GetResponseFactory.java index 557ae545e..6d633b536 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/GetResponseFactory.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/GetResponseFactory.java @@ -34,9 +34,6 @@ public class GetResponseFactory { .collect(Collectors.toList()); } - /** - * dictionaryName - это имя тэга внутри - */ public Map responseFromDictionary(String dictionaryName, Object o) { ObjectExtracted objectExtracted = meta.getEnumsExtractedByTagName().get(dictionaryName); if (objectExtracted == null) { @@ -53,12 +50,6 @@ public class GetResponseFactory { return responseFromObjectExtracted(o, objExtr); } - /** - * Варианты методов с Class сделаны для сценариев, когда хотим распарсить объект, - * по мете для родительского класса объекта - * Т.е. вместо извлечение класса o.getClass, берем clazz извне. clazz - base class для o - * - */ public Collection> responseFromObjectCollection(Collection o, Class clazz) { return o.stream() .map((Function>) o1 -> responseFromObject(o1, clazz)) @@ -82,7 +73,6 @@ public class GetResponseFactory { continue; } currentField = field; -// if (fieldsToAdd.contains(field.getField().getCode())) { try { add(r, field, field.extractValue(o)); } catch (Throwable e) { @@ -95,7 +85,6 @@ public class GetResponseFactory { ))) ); } -// } } } catch (Exception e) { log.error(ExceptionUtils.getStackTrace(e)); @@ -134,45 +123,4 @@ public class GetResponseFactory { .ofPattern("yyyy-MM-dd'T'HH:mm:ss+03:00") .withLocale(Locale.US) .withZone(ZoneId.of("Europe/Moscow")); - - -// public Map newX(Object o, Collection fieldFilter, String destination) { -// ObjectExtracted targetClazz = getTargetClazz(o, destination); -// if (targetClazz == null) -// throw new FrontendException(String.format("Unknown response class: %s", o.getClass().getName())); -// Collection fieldsToAdd = getFilteredFields(targetClazz, fieldFilter); -// Map r = new LinkedHashMap<>(); -// FieldExtracted currentField = null; -// try { -// for (FieldExtracted field : targetClazz.getFields()) { -// if (field.getField().isVirtual() != null && field.getField().isVirtual()) { -// continue; -// } -// currentField = field; -// if (fieldsToAdd.contains(field.getField().getCode())) { -// try { -// add(r, field.getField().getCode(), field.extractValue(o)); -// } catch (Throwable e) { -// log.warn(ExceptionUtils.getStackTrace( -// new FrontendException(String.format("Can't extract value for field='%s' of %s(%s): %s -> %s\n%s", -// field.getField().getCode(), -// o.getClass().getSimpleName(), targetClazz.getClazz().getSimpleName(), -// e.getClass().getSimpleName(), e.getLocalizedMessage(), -// JsonHelper.writeAnyClassToLog(currentField) -// ))) -// ); -// } -// } -// } -// } catch (FrontendException e) { -// throw e; -// } catch (Throwable e) { -// throw new FrontendException(String.format("Can't get field of %s(%s): %s -> %s\n%s", -// o.getClass().getSimpleName(), targetClazz.getClazz().getSimpleName(), -// e.getClass().getSimpleName(), e.getLocalizedMessage(), -// JsonHelper.writeAnyClassToLog(currentField) -// )); -// } -// return r; -// } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/MetaServer.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/MetaServer.java index 82557d2ba..fddf1c8fb 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/MetaServer.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/MetaServer.java @@ -82,7 +82,7 @@ public class MetaServer extends MetaBase { log.warn("META SERVER >>> {}", e.getLocalizedMessage()); continue; } - String actionDestination = // обычно бывают =null о этому эффективнее по имени класса а не по: objectElement.getSubscription().destination + "/"+ actionElement.getDestination(); + String actionDestination = oe.getClassName(); actionObjectsExtracted.put(actionDestination, oe); } @@ -101,20 +101,6 @@ public class MetaServer extends MetaBase { log.warn("{} {}", key, ExceptionUtils.getStackTrace(e)); continue; } - /** - * можно было бы хранить только для нестандартных словарей (где не только id, name, code) - */ -// List dictFields = oe.getFields(); -// boolean add = false; -// for (FieldExtracted dictField : dictFields) { -// if (!dictionaryDefaultFields.contains(dictField.getMemberName())) { -// add = true; -// break; -// } -// } -// if (add) { -// enumsExtractedByTagName.put(key, oe); -// } enumsExtractedByTagName.put(key, oe); } @@ -127,7 +113,6 @@ public class MetaServer extends MetaBase { if (!RfHelper.isAbstract(o.getClazz())) { try { Object instance = newInstance(o.getClassName()); - // создается успешно. } catch (Throwable e) { log.warn("META SERVER >>> Не удается создать класс {} !", o.getClassName()); } @@ -139,32 +124,8 @@ public class MetaServer extends MetaBase { throw new ClearingMetaServerValidationException(e.getLocalizedMessage()); } } -// -// for (ObjectExtracted o : this.actionObjectsExtracted.values()) { -// try { -// if (!RfHelper.isAbstract(o.getClazz())) { -// try { -// Object instance = newInstance(o.getClassName()); -// // создается успешно. -// } catch (Throwable e) { -// log.warn("META SERVER ACTION >>> Не удается создать класс {} !", o.getClassName()); -// } -// } -// validateGetterForObject(o); -// } catch (ClrxMetaServerGetterNotFoundException e) { -// throw e; -// } catch (Throwable e) { -// throw new ClearingMetaServerValidationException(e.getLocalizedMessage()); -// } -// } } - /** - * проверим наличие геттеров к полям - * - * @param o - * @throws ClassNotFoundException - */ private void validateGetterForObject(ObjectExtracted o) throws ClassNotFoundException { for (FieldExtracted field : o.getFields()) { Class c = o.getClazz(); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/RfHelper.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/RfHelper.java index 96aeed6b0..2b472f02d 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/RfHelper.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/meta/RfHelper.java @@ -47,7 +47,7 @@ public class RfHelper { Class raw = Class.forName(((ParameterizedType) t).getRawType().getTypeName()); if (BUSINESS_OBJECT_REF.equals(raw.getSimpleName())) { return Class.forName(((ParameterizedType) t).getActualTypeArguments()[0].getTypeName()); - } else if ("Set".equals(raw.getSimpleName())) { // множества пока не распаковываем + } else if ("Set".equals(raw.getSimpleName())) { return Class.forName(raw.getName()); } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakRestTemplateAuthenticationProvider.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakRestTemplateAuthenticationProvider.java index 9c1f3d891..63666b46f 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakRestTemplateAuthenticationProvider.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakRestTemplateAuthenticationProvider.java @@ -85,7 +85,6 @@ public class KeycloakRestTemplateAuthenticationProvider implements Authenticatio throw new AuthenticationServiceException("keycloak direct access grant auth failed: bad token"); } AccessToken accessToken = AdapterTokenVerifier.verifyToken(accessTokenString, deployment); - //todo cors settings accessToken.setAllowedOrigins(Collections.singleton("*")); RefreshableKeycloakSecurityContext skSession = new RefreshableKeycloakSecurityContext(deployment, null, accessTokenString, accessToken, null, null, refreshTokenString); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakUtils.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakUtils.java index f80fe11dc..8132447bc 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakUtils.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakUtils.java @@ -4,18 +4,17 @@ import org.keycloak.KeycloakPrincipal; import org.keycloak.adapters.spi.KeycloakAccount; import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; import org.slf4j.Logger; -import org.slf4j.LoggerFactory;; +import org.slf4j.LoggerFactory; import org.springframework.security.core.Authentication; +; + public class KeycloakUtils { static Logger log = LoggerFactory.getLogger(KeycloakUtils.class); - /** - * Достать username из Keycloak имплементации Authentication - */ public static String getUserNameFromAuthentication(Authentication authentication) { if (authentication == null) return null; - if (!(authentication instanceof KeycloakAuthenticationToken)) { // AnonymousAuthenticationToken + if (!(authentication instanceof KeycloakAuthenticationToken)) { log.trace("Authentication token class {} is not KeycloakAuthenticationToken", authentication.getClass().getName()); return null; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/LoginController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/LoginController.java index b12d59ad4..6e8530f4f 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/LoginController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/LoginController.java @@ -20,11 +20,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Map; -/** - * при bearer only false - * клиент сюда не попадает - * срабатывает KeycloakAuthenticationProvider с редиректом на логин keycloak - */ @Controller @RequestMapping("/sso") public class LoginController { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/RestTemplateConfig.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/RestTemplateConfig.java index 9d738a5b4..78340e4e5 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/RestTemplateConfig.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/RestTemplateConfig.java @@ -17,9 +17,6 @@ public class RestTemplateConfig { this.builder = builder; } - /** - * В настоящий момент используется для выгрузки AFS данных - */ @Bean("clearing-rest") public RestTemplate restTemplate() { return builder diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/SimpleUserDetailService.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/SimpleUserDetailService.java index 484a15861..1f1342199 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/SimpleUserDetailService.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/SimpleUserDetailService.java @@ -6,10 +6,8 @@ import org.springframework.stereotype.Component; @Component public class SimpleUserDetailService -// implements UserDetailsService { -// @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { +public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { return null; } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java index 2100f9166..381e97c7b 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java @@ -52,11 +52,7 @@ public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter { protected void configure(HttpSecurity http) throws Exception { super.configure(http); ExpressionUrlAuthorizationConfigurer.AuthorizedUrl anyReq = http -// .formLogin() -// .loginProcessingUrl("/backend-api-login/perform-login") -// .and() - //todo remove? see ClearingCorsFilter - .cors() +.cors() .and() .csrf().disable() .authorizeRequests() @@ -84,7 +80,6 @@ public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter { @Bean public GrantedAuthorityDefaults grantedAuthorityDefaults() { - // Remove the ROLE_ prefix return new GrantedAuthorityDefaults(""); } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/IOperator.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/IOperator.java index 55257c2ac..570dddf09 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/IOperator.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/IOperator.java @@ -8,16 +8,5 @@ import java.util.concurrent.ExecutionException; public interface IOperator { QueueSuccessResponse sendRequestToQueue(String destination, IAction iAction, boolean appendUserId) throws ExecutionException, InterruptedException; - /** - * Для оптимизации проставления userId. - * Аналог sendRequestToQueue(String destination, IAction iAction, true) - * - * @param destination - * @param iAction - * @param userId совершивший запрос - * @return - * @throws ExecutionException - * @throws InterruptedException - */ QueueSuccessResponse sendRequestToQueue(String destination, IAction iAction, Long userId) throws ExecutionException, InterruptedException; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/IStateLoader.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/IStateLoader.java index 098508554..232009d9c 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/IStateLoader.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/IStateLoader.java @@ -7,9 +7,6 @@ import java.util.Collection; import java.util.Map; import java.util.Optional; -/** - * сделал чтобы не привязывать все контроллеры к Imdg API - */ public interface IStateLoader { Optional getById(Long id, String mapName, Class clazz); Collection getAll(String mapName, Class clazz); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/RequestInfoAccepter.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/RequestInfoAccepter.java index b5a795465..3c1348e2d 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/RequestInfoAccepter.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/RequestInfoAccepter.java @@ -14,10 +14,6 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; -/** - * Сервис для сигнализирования результатов запросов клиентов. Ассинхронное обновление статуса. - * Клиент запрашивает периодически (или по событию) таблицу Map_RequestInfo и видит результат выполнения запросов. - */ @Service public class RequestInfoAccepter extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -39,7 +35,6 @@ public class RequestInfoAccepter extends QueueConsumer implements InitializingBe } private void updateRequestInfo(BaseRequest requestInfoUpdateBaseRequest) { - //will throw exception for any class other than RequestInfoUpdate RequestInfoUpdate statusInfo = requestInfoUpdateBaseRequest.getRequestPayload(); if (statusInfo == null || statusInfo.getId() == null) { log.warn("BaseRequest id={}, RequestPayload={}: requestInfo id was null", diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/UserAuthProcessor.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/UserAuthProcessor.java index ba9789792..6f961f8ed 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/UserAuthProcessor.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/UserAuthProcessor.java @@ -40,7 +40,7 @@ public class UserAuthProcessor { requestData.setUsername(identifier); requestData.setTime(Instant.now()); requestData.setRoles(new ArrayList<>(roles)); - requestData.setServerIp(serverIp + ":" + serverPort); //getServerAddress() + ":" + serverPort + requestData.setServerIp(serverIp + ":" + serverPort); requestData.setClientIp(userIp); requestData.setEmail(email); requestData.setName(name); @@ -48,7 +48,7 @@ public class UserAuthProcessor { requestData.setMiddleName(middleName); try { operator.sendRequestToQueue(Consts.USER_AUTH_SUCCESS, authEvent, false); - } catch (Throwable e) { //ExecutionException | InterruptedException + } catch (Throwable e) { log.error(ExceptionUtils.getStackTrace(e)); } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/impl/OperatorImpl.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/impl/OperatorImpl.java index 69ce3c58d..50b11f657 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/impl/OperatorImpl.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/impl/OperatorImpl.java @@ -62,10 +62,8 @@ public class OperatorImpl implements IOperator { if (user == null) { log.warn("UserID not found by login \"{}\"", username); return null; - //throw new IllegalStateException("cannot obtain userId from logged in user " + username); } return user.getId(); - // todo добавить кэш, с очисткой по времени } @Override @@ -78,7 +76,6 @@ public class OperatorImpl implements IOperator { if (appendUserId) { request.setUserId(currentUserId()); } - //сохраняет данные о запросе в хранилище saveRequestToStorage(destination, request); Future send = kafka.send(new ProducerRecord<>(destination, request)); send.get(); @@ -98,7 +95,6 @@ public class OperatorImpl implements IOperator { } else { request.setUserId(userId); } - //сохраняет данные о запросе в хранилище saveRequestToStorage(destination, request); Future send = kafka.send(new ProducerRecord<>(destination, request)); send.get(); @@ -114,12 +110,10 @@ public class OperatorImpl implements IOperator { } private void throwValidate(String destination, IAction iAction) { - //простая валидация - которую можно запилить прямо внутри класса (наличие полей, отношения между датами etc.) Collection validationErrors = iAction.validate(); if (validationErrors.size() > 0) { throw new ActionValidationException(validationErrors); } - // Валидация по мете (рекомендуется использовать её,а не iAction.validate(); IValidator metaValidator = actionMetaValidation.getValidator(destination, iAction); if (metaValidator != null) { metaValidator.tillFirstError().ifPresent(enumMessage -> { @@ -130,8 +124,6 @@ public class OperatorImpl implements IOperator { } }); } - - //валидация требующая IMDG поиска других сущностей и т.д. IValidator validator = validation.getValidator(destination, iAction); if (validator != null) { validator.tillFirstError().ifPresent(enumMessage -> { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/validation/ActionMetaValidation.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/validation/ActionMetaValidation.java index 6dc75df90..b0ea04911 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/validation/ActionMetaValidation.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/validation/ActionMetaValidation.java @@ -25,9 +25,6 @@ import java.util.Map; import java.util.Optional; import java.util.function.Function; -/** - * Проверка обязательности полей для IAction по мете - */ @Component public class ActionMetaValidation implements InitializingBean { protected static final Logger log = LoggerFactory.getLogger(ActionMetaValidation.class); @@ -55,8 +52,7 @@ public class ActionMetaValidation implements InitializingBean { public IValidator getValidator(String destination, Object action) { if (action == null) return null; - //if (destination == null) destination = action.getClass().getName(); - String actionDestination = action.getClass().getName(); // см. реализацию в MetaServer String actionDestination =... + String actionDestination = action.getClass().getName(); Function constructor = (Function) validators.get(actionDestination); if (constructor != null) return constructor.apply(action); @@ -70,10 +66,8 @@ public class ActionMetaValidation implements InitializingBean { private Function validatorConstructor(ObjectExtracted metaAction) { if (!metaAction.getFields().stream().anyMatch(field -> isTrue(field.getField().isRequired()))) { log.debug("Action {}: no any required fields. Do not need validator.", metaAction.getClassName()); - // нет обязательных полей для валидации return null; } - // Тестирование getter { Object object; try { @@ -104,7 +98,6 @@ public class ActionMetaValidation implements InitializingBean { ctx.setValidatedObject(iAcc); ValidatorImpl> iValidator = new ValidatorImpl(ctx); iValidator.addRule(metaValidatorRule); - // в дальнейшем можно улучшить и разделить валидатор по полям return iValidator; }; } @@ -125,12 +118,9 @@ public class ActionMetaValidation implements InitializingBean { Object value = field.extractValue(object); if (value == null) return of(BackEndError.ValidationError, field.getMemberName()); -// if (value instanceof String && ((String)value).isEmpty()) // пустое поле, но не null -// return of(BackEndError.ValidationError, field.getMemberName()); } } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) { if (object instanceof MoneyMarketSecurityUpdateAction) { - //todo в мете для moneyMarketSecurity / actions / put / для поля lotSize field="securityId" исключение - там надо оставить field, требуется для frontend if (((MoneyMarketSecurityUpdateAction) object).getLotSize() == null) return of(BackEndError.ValidationError, "LotSize"); } else { diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java index e28e28add..742466eaa 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java @@ -81,14 +81,11 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi @ContextConfiguration(classes = { - //account AccountController.class, BankAccountController.class, ClearingAccountController.class, DepoAccountController.class, - //account misc ClientCodeController.class, - //company CompanyRoleSetController.class, CompanyController.class, ClearingMemberCategoryController.class, @@ -97,24 +94,18 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi ContactController.class, ProfileDocumentController.class, RelationController.class, - //execution ExecutionDepositController.class, ExecutionFondController.class, - //journal InDocumentJournalController.class, ManagementJournalController.class, OutDocumentJournalController.class, - //liabilities - //misc CurrencyController.class, ErrorTextController.class, ListingController.class, MarketController.class, NotificationController.class, SessionController.class, - //payment PaymentInstructionController.class, - //register AdmittedLiabilitiesRegisterController.class, CoveredLiabilitiesRegisterController.class, DepoBalanceRegisterController.class, @@ -125,16 +116,13 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi MoneyBalanceRegisterController.class, ContractRegisterController.class, ReportRegisterController.class, - //registry RegistryController.class, TradingClearingRegistryController.class, - //scheduler ClearingCalendarController.class, LauncherController.class, PlannerAllTodayController.class, PlannerController.class, PlannerTemplateController.class, - //securities MoneyMarketSecurityController.class, CouponPeriodController.class, EquitySecurityController.class, @@ -142,13 +130,10 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi FixedIncomeSecurityController.class, InformationAccountController.class, SecurityController.class, - //user UserController.class, UserRoleSessionController.class, - //utilities StatementController.class, UserSettingsController.class, - //******* common configs ******* WebTestConfig.class, IOperatorTest.class, HazelcastServiceTestConfiguration.class, @@ -156,10 +141,8 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi WebSecurityTestConfigurer.class, MessagesTestConfig.class, Jackson2HttpConverterTestConfig.class}) -//todo может быть указать пакедж а не список контроллеров @ExtendWith(SpringExtension.class) @WebMvcTest -//@TestPropertySource(properties = "spring.config.location=D:/repo/mfd/clearing/clearing-parent/backend-api/src/main/resources/") public abstract class AbstractControllerTest { protected static final MatcherFactoryWithJson.Matcher BASE_REQUEST_MATCHER = usingIgnoringFieldsComparatorForClass(BaseRequest.class,"userId"); protected static final MatcherFactoryWithJson.Matcher CUD_RESPONSE_MATCHER = usingIgnoringFieldsComparatorForClass(CudResponse.class); @@ -200,8 +183,7 @@ public abstract class AbstractControllerTest { mockMvc = MockMvcBuilders .webAppContextSetup(webApplicationContext) .addFilter(CHARACTER_ENCODING_FILTER) -// .apply(springSecurity()) - .build(); +.build(); TestUtils.FutureRecordMetadata future = spy(TestUtils.FutureRecordMetadata.class); doReturn(future).when(producer).send(producerRecord.capture()); userImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_User, User.class); @@ -225,15 +207,12 @@ public abstract class AbstractControllerTest { CudResponse expected = new CudResponse(); expected.setCode(0L); expected.setMessage("success"); - //ACT MvcResult mvcResult = perform(MockMvcRequestBuilders.post(REST_URL) .contentType(MediaType.APPLICATION_JSON) .content(writeValue(action))) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) - //.andExpect(content().json(writeValue(expected))) .andReturn(); CudResponseTest cudResponseTest = readValue(mvcResult.getResponse().getContentAsString(), CudResponseTest.class); expected.setPayload(new QueueSuccessResponse(ActionType.NEW, cudResponseTest.getPayload().getId())); @@ -245,16 +224,12 @@ public abstract class AbstractControllerTest { expected.setCode(0L); expected.setMessage("success"); expected.setPayload(new QueueSuccessResponse(ActionType.UPDATE, currentId.getAndIncrement())); - - //ACT MvcResult mvcResult = perform(MockMvcRequestBuilders.put(REST_URL + existsId) .contentType(MediaType.APPLICATION_JSON) .content(writeValue(action))) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) - //.andExpect(content().json(writeValue(expected))); .andReturn(); CudResponseTest cudResponseTest = readValue(mvcResult.getResponse().getContentAsString(), CudResponseTest.class); expected.setPayload(new QueueSuccessResponse(ActionType.UPDATE, cudResponseTest.getPayload().getId())); @@ -273,16 +248,12 @@ public abstract class AbstractControllerTest { expected.setCode(0L); expected.setMessage("success"); expected.setPayload(new QueueSuccessResponse(ActionType.UPDATE, currentId.getAndIncrement())); - - //ACT MvcResult mvcResult = perform(MockMvcRequestBuilders.put(REST_URL) .contentType(MediaType.APPLICATION_JSON) .content(writeValue(action))) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) - //.andExpect(content().json(writeValue(expected))); .andReturn(); CudResponseTest cudResponseTest = readValue(mvcResult.getResponse().getContentAsString(), CudResponseTest.class); expected.setPayload(new QueueSuccessResponse(ActionType.UPDATE, cudResponseTest.getPayload().getId())); @@ -296,15 +267,12 @@ public abstract class AbstractControllerTest { expected.setPayload(new QueueSuccessResponse(ActionType.DELETE, existsId)); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(existsId); - //ACT MvcResult mvcResult = perform(MockMvcRequestBuilders.delete(REST_URL + existsId) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) -// .andExpect(content().json(writeValue(expected))); - .andReturn(); +.andReturn(); CudResponseTest cudResponseTest = readValue(mvcResult.getResponse().getContentAsString(), CudResponseTest.class); expected.setPayload(new QueueSuccessResponse(ActionType.DELETE, cudResponseTest.getPayload().getId())); CUD_RESPONSE_MATCHER.assertMatch(cudResponseTest, expected); @@ -320,18 +288,15 @@ public abstract class AbstractControllerTest { protected void checkGettingAllFromRestApi(String imdgDistributedNames, T existsObj, String restUrl) throws Exception { Class clazz = (Class) existsObj.getClass(); Imdg testingImdg = hazelcastServiceTest.getImdg(imdgDistributedNames, clazz); - // ((ImdgHazelcast)testingImdg).clear(); // предварительная очистка testingImdg.insert(existsObj); Collection values = testingImdg.getAllValues(); Collection> all = responseFactory.responseFromObjectCollection(values); CommonGetAllResponse expected = new CommonGetAllResponse(); expected.fromEntity(all); - //ACT perform(MockMvcRequestBuilders.get(restUrl) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - // ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountControllerTest.java index 38c4f02de..5dbae050c 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountControllerTest.java @@ -12,51 +12,28 @@ import ru.spcex.clearing.platform.messaging.domain.Consts; class AccountControllerTest extends AbstractControllerTest { private static final String REST_URL = "/accounting/accounts/"; - /** - * {@link AccountController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /accounting/accounts/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Account existBankAccount = new Account(); existBankAccount.setAccountType("99"); existBankAccount.setAccount("123456789123"); existBankAccount.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Account, existBankAccount, REST_URL); } - /** - * {@link AccountController#add(AccountNewAction)}
- * Тест проверяет получение сущности {@link AccountNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link AccountNewAction}:
- */ @Test void add() throws Exception { - //ARRANGE AccountNewAction accountNewAction = new AccountNewAction(); accountNewAction.setStatus("ACTV"); accountNewAction.setAccount("A11112222333"); accountNewAction.setCompanyId(5L); accountNewAction.setAccountType("BANK"); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, accountNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_NEW, accountNewAction); } - /** - * {@link AccountController#update(Long, AccountUpdateAction)}
- * Тест проверяет получение сущности {@link AccountUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link AccountUpdateAction}:
- */ @Test void update() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); AccountUpdateAction accountUpdateAction = new AccountUpdateAction(); accountUpdateAction.setId(id); @@ -65,27 +42,17 @@ class AccountControllerTest extends AbstractControllerTest { accountUpdateAction.setCompanyId(5L); accountUpdateAction.setAccountType("BANK"); Account account = getAccount(id); - - //ACT and ASSERT checkUpdatingWithIdVolidationByRestApi(IMDGDistributedNames.Map_Account, account, REST_URL, accountUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_UPDATE, accountUpdateAction); } - /** - * {@link AccountController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /securities/account/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); Account account = getAccount(id); - - //ACT and ASSERT checkDeletingWithIdVolidationByRestApi(IMDGDistributedNames.Map_Account, account, REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_BLOCK, deleteAction); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/BankAccountControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/BankAccountControllerTest.java index 9f83a572d..d8afb9490 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/BankAccountControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/BankAccountControllerTest.java @@ -9,13 +9,11 @@ import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; import ru.spcex.clearing.backendapi.controller.request.cud.account.BankAccountNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.account.BankAccountUpdateAction; import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetByIdResponse; import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.backendapi.errors.ActionValidationException; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.platform.imdg.api.Imdg; import java.util.HashMap; @@ -30,23 +28,8 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class BankAccountControllerTest extends AbstractControllerTest { private static final String REST_URL = "/accounting/bank-accounts/"; - /** - * {@link BankAccountController#add(BankAccountNewAction)}
- * Тест проверяет получение сущности {@link BankAccountNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link BankAccountNewRequest}:
- * {@link BankAccountNewRequest#bankIdentificationCode} - 044525776
- * {@link BankAccountNewRequest#bankName} - Beta Money Bank
- * {@link BankAccountNewRequest#correspondentAccount} - 30101111111111111776
- * {@link BankAccountNewRequest#correspondentAccountName} - correspondent
- * {@link BankAccountNewRequest#currency} - RUB
- * {@link BankAccountNewRequest#destination} - destination
- * {@link BankAccountNewRequest#taxpayerIdentificationNumber} - 3664011397
- * {@link BankAccountNewRequest#taxRegistrationReasonCode} - 01
- * {@link BankAccountNewRequest#account} - 11111222223333344444
- */ @Test void add() throws Exception { - //ARRANGE BankAccountNewAction bankAccountNewAction = getBankAccountNewAction( 0, "044525776", "Beta Money Bank", @@ -57,26 +40,10 @@ class BankAccountControllerTest extends AbstractControllerTest { "3664011397", "01", "11111222223333344444"); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, bankAccountNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_BANK_ACCOUNT_NEW, bankAccountNewAction); } - /** - * {@link BankAccountController#add(BankAccountNewAction)}
- * Тест проверяет работу валидации сущности {@link BankAccountNewAction} принятой по REST API для отправку в Apache Kafka.
- * Входной запрос {@link BankAccountNewRequest}:
- * {@link BankAccountNewRequest#bankIdentificationCode} - 044525776 или ""
- * {@link BankAccountNewRequest#bankName} - Beta Money Bank или ""
- * {@link BankAccountNewRequest#correspondentAccount} - 30101111111111111776 или ""
- * {@link BankAccountNewRequest#correspondentAccountName} - correspondent или ""
- * {@link BankAccountNewRequest#currency} - RUB или ""
- * {@link BankAccountNewRequest#destination} - destinatio или ""n
- * {@link BankAccountNewRequest#taxpayerIdentificationNumber} - 3664011397 или ""
- * {@link BankAccountNewRequest#taxRegistrationReasonCode} - 01 или ""
- * {@link BankAccountNewRequest#account} - 11111222223333344444 или ""
- */ @Test void addWithException() { assertThrowsFor(getBankAccountNewAction(0, "", "Beta Money Bank", "30101111111111111776", "correspondent", "RUB", "destination", "3664011397", "01", "11111222223333344444")); @@ -90,22 +57,8 @@ class BankAccountControllerTest extends AbstractControllerTest { assertThrowsFor(getBankAccountNewAction(0, "044525776", "Beta Money Bank", "30101111111111111776", "correspondent", "RUB", "destination", "3664011397", "01", "")); } - /** - * {@link BankAccountController#update(Long, BankAccountUpdateAction)}
- * Тест проверяет получение сущности {@link BankAccountUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link BankAccountUpdateAction}:
- * {@link BankAccountUpdateAction#bankIdentificationCode} - 044525776
- * {@link BankAccountUpdateAction#bankName} - Beta Money Bank
- * {@link BankAccountUpdateAction#correspondentAccount} - 30101111111111111776
- * {@link BankAccountUpdateAction#correspondentAccountName} - correspondent
- * {@link BankAccountUpdateAction#currency} - RUB
- * {@link BankAccountUpdateAction#destination} - destination
- * {@link BankAccountUpdateAction#taxpayerIdentificationNumber} - 3664011397
- * {@link BankAccountUpdateAction#taxRegistrationReasonCode} - 01
- */ @Test void update() throws Exception { - //ARRANGE long id = 0; BankAccountUpdateAction bankAccountUpdateAction = getBankAccountUpdateAction( id, @@ -118,37 +71,21 @@ class BankAccountControllerTest extends AbstractControllerTest { "3664011397", "01", "11111222223333344444"); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, bankAccountUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_BANK_ACCOUNT_UPDATE, bankAccountUpdateAction); } - /** - * {@link BankAccountController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /accounting/bank-accounts/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_BANK_ACCOUNT_BLOCK, deleteAction); } - /** - * {@link BankAccountController#getById(Long)}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /accounting/bank-accounts/{@link Long}: - 0L
- * Ответ BankAccountBackendGetById
- */ @Test void getById() throws Exception { - //ARRANGE BankAccount existBankAccount = new BankAccount(); existBankAccount.setBankName("ooo tinkoff"); existBankAccount.setBankIdentificationCode("99999"); @@ -164,7 +101,6 @@ class BankAccountControllerTest extends AbstractControllerTest { inDocumentJournalImdg.insert(existBankAccount); CommonGetByIdResponse expected = new CommonGetByIdResponse(); - //expected.getPayload(). Map payload = new HashMap<>(); payload.put("bankName", "ooo tinkoff"); payload.put("bankIdentificationCode", "99999"); @@ -176,25 +112,16 @@ class BankAccountControllerTest extends AbstractControllerTest { payload.put("taxRegistrationReasonCode", "886886"); payload.put("id", existBankAccount.getId()); expected.fromEntity(payload); - //ACT perform(MockMvcRequestBuilders.get(REST_URL + existBankAccount.getId()) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response -// ASSERT - .andExpect(status().isOk()) + .andDo(print()) +.andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); } - /** - * {@link BankAccountController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /accounting/bank-accounts/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE BankAccount existBankAccount = new BankAccount(); existBankAccount.setBankName("ooo tinkoff"); existBankAccount.setBankIdentificationCode("99999"); @@ -205,8 +132,6 @@ class BankAccountControllerTest extends AbstractControllerTest { existBankAccount.setTaxpayerIdentificationNumber("848484848484"); existBankAccount.setTaxRegistrationReasonCode("886886"); existBankAccount.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_BankAccount, existBankAccount, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/ClearingAccountControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/ClearingAccountControllerTest.java index 8e8ec9118..6f8aa4b97 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/ClearingAccountControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/ClearingAccountControllerTest.java @@ -8,22 +8,13 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; class ClearingAccountControllerTest extends AbstractControllerTest { private static final String REST_URL = "/accounting/clearing-accounts/"; - /** - * {@link ClearingAccountController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_ClearingAccount.
- * Входной запрос /securities/clearing-accounts/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ClearingAccount existClearingAccount = new ClearingAccount(); existClearingAccount.setAccountId(99L); existClearingAccount.setClearingAccountType("CATPE-1"); existClearingAccount.setCompanyId(6L); existClearingAccount.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ClearingAccount, existClearingAccount, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/ClientCodeControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/ClientCodeControllerTest.java index 9aac531c5..f45873e5d 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/ClientCodeControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/ClientCodeControllerTest.java @@ -22,16 +22,8 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class ClientCodeControllerTest extends AbstractControllerTest { private static final String REST_URL = "/client-codes/"; - /** - * {@link ClientCodeController#add(ClientCodeNewAction)}
- * Тест проверяет получение сущности {@link ClientCodeNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ClientCodeNewRequest}:
- * {@link ClientCodeNewRequest#} - 044525776
- * ... - */ @Test void add() throws Exception { - //ARRANGE ClientCodeNewAction clientCodeNewAction = getClientCodeNewAction( 0, "044525776", @@ -40,24 +32,10 @@ class ClientCodeControllerTest extends AbstractControllerTest { 1010L, 1020L, 1030L); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, clientCodeNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_CLIENT_CODE_NEW, clientCodeNewAction); } - /** - * {@link ClientCodeController#add(ClientCodeNewAction)}
- * Тест проверяет работу валидации сущности {@link ClientCodeNewAction} принятой по REST API для отправку в Apache Kafka.
- * Входной запрос {@link ClientCodeNewAction}:
- * {@link ClientCodeNewAction#id} - (generated)
- * {@link ClientCodeNewAction#code} - "044525776" или null или ""
- * {@link ClientCodeNewAction#status} - "ACTV"
- * {@link ClientCodeNewAction#companyId} - 1000L или null
- * {@link ClientCodeNewAction#depoAccountId} - 1010L
- * {@link ClientCodeNewAction#moneyAccountId} - 1020L
- * {@link ClientCodeNewAction#tradingClearingRegistryId} - 1030L
- */ @Test void addWithException() { assertThrowsFor(getClientCodeNewAction(0, "", "ACTV", 1000L, 1010L, 1020L, 1030L)); @@ -65,21 +43,8 @@ class ClientCodeControllerTest extends AbstractControllerTest { assertThrowsFor(getClientCodeNewAction(0, "044525776", "ACTV", null, 1010L, 1020L, 1030L)); } - /** - * {@link ClientCodeController#update(Long, ClientCodeUpdateAction)}
- * Тест проверяет получение сущности {@link ClientCodeUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ClientCodeUpdateAction}:
- * {@link ClientCodeUpdateAction#id} - (generated)
- * {@link ClientCodeUpdateAction#code} - "044525776"
- * {@link ClientCodeUpdateAction#status} - "ACTV"
- * {@link ClientCodeUpdateAction#companyId} - 1000L
- * {@link ClientCodeUpdateAction#depoAccountId} - 1010L
- * {@link ClientCodeUpdateAction#moneyAccountId} - 1020L
- * {@link ClientCodeUpdateAction#tradingClearingRegistryId} - 1030L
- */ @Test void update() throws Exception { - //ARRANGE long id = 0; ClientCodeUpdateAction clientCodeUpdateAction = getClientCodeUpdateAction( id, @@ -89,37 +54,21 @@ class ClientCodeControllerTest extends AbstractControllerTest { 1010L, 1020L, 1030L); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, clientCodeUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_CLIENT_CODE_UPDATE, clientCodeUpdateAction); } - /** - * {@link ClientCodeController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /client-codes/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_CLIENT_CODE_DELETE, deleteAction); } - /** - * {@link ClientCodeController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_ClientCode.
- * Входной запрос /client-codes/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ClientCode existClientCode = new ClientCode(); existClientCode.setCode("ooo tinkoff"); existClientCode.setCompanyId(1000L); @@ -130,8 +79,6 @@ class ClientCodeControllerTest extends AbstractControllerTest { existClientCode.setCreated(Instant.now()); existClientCode.setUpdated(Instant.now()); existClientCode.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ClientCode, existClientCode, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/DepoAccountControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/DepoAccountControllerTest.java index 2bb605998..c2f6439db 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/DepoAccountControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/DepoAccountControllerTest.java @@ -8,22 +8,13 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; class DepoAccountControllerTest extends AbstractControllerTest { private static final String REST_URL = "/accounting/depo-accounts/"; - /** - * {@link DepoAccountController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_ClearingAccount.
- * Входной запрос /securities/depo-accounts/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE DepoAccount existDepoAccount = new DepoAccount(); existDepoAccount.setAccountId(99L); existDepoAccount.setDepoAccountType("T1001"); existDepoAccount.setCompanyId(6L); existDepoAccount.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_DepoAccount, existDepoAccount, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/InformationAccountControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/InformationAccountControllerTest.java index d352d259b..e57946def 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/InformationAccountControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/InformationAccountControllerTest.java @@ -3,28 +3,18 @@ package ru.spcex.clearing.backendapi.controller.queue.account; import org.junit.jupiter.api.Test; import ru.clearing.classes.statics.data.account.InformationAccount; import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.backendapi.controller.queue.account.InformationAccountController; import ru.spcex.clearing.imdg.IMDGDistributedNames; class InformationAccountControllerTest extends AbstractControllerTest { public static final String REST_URL = "/accounting/information-accounts/"; - /** - * {@link InformationAccountController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /accounting/information-accounts/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE InformationAccount informationAccount = new InformationAccount(); informationAccount.setId(currentId.get()); informationAccount.setCompanyId(currentId.get()); informationAccount.setClearingAccountId(currentId.get()); informationAccount.setAccountId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_InformationAccount, informationAccount, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ClearingMemberCategoryControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ClearingMemberCategoryControllerTest.java index 8ea3d4ba6..9a259e523 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ClearingMemberCategoryControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ClearingMemberCategoryControllerTest.java @@ -20,88 +20,44 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class ClearingMemberCategoryControllerTest extends AbstractControllerTest { private static final String REST_URL = "/clearing-member-categories/"; - /** - * {@link ClearingMemberCategoryController#add(ClearingMemberCategoryNewAction)}
- * Тест проверяет получение сущности {@link ClearingMemberCategoryNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ClearingMemberCategoryNewAction}:
- * {@link ClearingMemberCategoryNewAction#clearingMemberCategory} - "Category"
- * {@link ClearingMemberCategoryNewAction#companyId} - currentId
- */ @Test void add() throws Exception { - //ARRANGE ClearingMemberCategoryNewAction clearingMemberCategoryNewAction = new ClearingMemberCategoryNewAction(); clearingMemberCategoryNewAction.setClearingMemberCategory("Category"); clearingMemberCategoryNewAction.setCompanyId(0L); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, clearingMemberCategoryNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_CLEARING_MEMBER_CATEGORY_NEW, clearingMemberCategoryNewAction); } - /** - * {@link ClearingMemberCategoryController#add(ClearingMemberCategoryNewAction)}
- * Тест проверяет получение сущности {@link ClearingMemberCategoryNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ClearingMemberCategoryNewAction}:
- * {@link ClearingMemberCategoryNewAction#clearingMemberCategory} - "Category"
- * {@link ClearingMemberCategoryNewAction#companyId} - currentId
- */ -// @Test валидации пока нет void addWithException() { assertThrowsFor(getClearingMemberCategoryNewAction("Category", null)); assertThrowsFor(getClearingMemberCategoryNewAction("", 0L)); } - /** - * {@link ClearingMemberCategoryController#update(Long, ClearingMemberCategoryUpdateAction)}
- * Тест проверяет получение сущности {@link ClearingMemberCategoryUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ClearingMemberCategoryUpdateAction}:
- * {@link ClearingMemberCategoryUpdateAction#clearingMemberCategory} - Category
- * {@link ClearingMemberCategoryUpdateAction#id} - currentId
- */ @Test void update() throws Exception { - //ARRANGE ClearingMemberCategoryUpdateAction clearingMemberCategoryUpdateAction = new ClearingMemberCategoryUpdateAction(); clearingMemberCategoryUpdateAction.setClearingMemberCategory("Category"); clearingMemberCategoryUpdateAction.setId(currentId.get()); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, clearingMemberCategoryUpdateAction, clearingMemberCategoryUpdateAction.getId()); checkSendedMessegeFromKafka(Consts.DESTINATION_CLEARING_MEMBER_CATEGORY_UPDATE, clearingMemberCategoryUpdateAction); } - /** - * {@link ClearingMemberCategoryController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /clearing-member-categories/{@link Long}: - currentId
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_CLEARING_MEMBER_CATEGORY_DELETE, deleteAction); } - /** - * {@link ClearingMemberCategoryController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_ClearingMemberCategory.
- * Входной запрос /clearing-member-categories/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ClearingMemberCategory clearingMemberCategory = new ClearingMemberCategory(); clearingMemberCategory.setClearingMemberCategory("Category"); clearingMemberCategory.setCompanyId(1000000L); clearingMemberCategory.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ClearingMemberCategory, clearingMemberCategory, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyControllerTest.java index 57bf69d00..cad58381f 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyControllerTest.java @@ -3,41 +3,25 @@ package ru.spcex.clearing.backendapi.controller.queue.company; import org.junit.jupiter.api.Test; import ru.clearing.classes.statics.data.company.Company; import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.backendapi.controller.queue.registry.TradingClearingRegistryController; import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.request.cud.company.CompanyNewAction; -import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; class CompanyControllerTest extends AbstractControllerTest { private static final String REST_URL = "/companies/"; - /** - * {@link CompanyController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /companies/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_COMPANY_DELETE, deleteAction); } - /** - * {@link CompanyController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_Company.
- * Входной запрос /companies
- */ @Test void getAll() throws Exception { - //ARRANGE Company existCompany = new Company(); existCompany.setTradingCode("ooo tinkoff"); existCompany.setClearingCode("99999"); @@ -45,26 +29,12 @@ class CompanyControllerTest extends AbstractControllerTest { existCompany.setShortName("OOO ROGA I KOPITA"); existCompany.setTradingCode("848484848484"); existCompany.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Company, existCompany, REST_URL); } - /** - * {@link CompanyController#add(CompanyNewAction)}
- * Тест проверяет создание сущности {@link CompanyNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link CompanyNewAction}:
- * {@link CompanyNewAction#fullName "Full name"
- * {@link CompanyNewAction#companySymbol "CLRC"
- * {@link CompanyNewAction#companySymbolValue "NAME1"
- * {@link CompanyNewAction#workflowStatus "ACTV"
- */ @Test void add() throws Exception { - //ARRANGE CompanyNewAction newAction = getCompanyNewAction(); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, newAction); checkSendedMessegeFromKafka(Consts.DESTINATION_COMPANY_NEW, newAction); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyInfoControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyInfoControllerTest.java index 6ea34bf51..69bd19521 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyInfoControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyInfoControllerTest.java @@ -30,51 +30,13 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class CompanyInfoControllerTest extends AbstractControllerTest { private static final String REST_URL = "/company-infos/"; - /** - * {@link CompanyInfoController#update(Long, CompanyInfoUpdateAction)}
- * Тест проверяет получение сущности {@link CompanyInfoUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link CompanyInfoUpdateAction}:
- * {@link CompanyInfoUpdateAction#workflowStatus} - ACTV
- * {@link CompanyInfoUpdateAction#corporationSoleType} - 0000
- * {@link CompanyInfoUpdateAction#countryCode} - 0000
- * {@link CompanyInfoUpdateAction#description} - exists description
- * {@link CompanyInfoUpdateAction#professionalSign} - 0000
- * {@link CompanyInfoUpdateAction#legalKind} - 0000
- * {@link CompanyInfoUpdateAction#organizationType} - 0000
- * {@link CompanyInfoUpdateAction#residence} - 0000
- * {@link CompanyInfoUpdateAction#shortNameEng} - exists shortNameEng
- * {@link CompanyInfoUpdateAction#fullNameEng} - exists fullNameEng
- * {@link CompanyInfoUpdateAction#shortName} - exists shortName
- * {@link CompanyInfoUpdateAction#fullName} - exists fullName
- * {@link CompanyInfoUpdateAction#id} - currentId
- */ -// @Test валидации пока нет void addWithException() { assertThrowsFor(getClearingMemberCategoryNewAction("Category", null)); assertThrowsFor(getClearingMemberCategoryNewAction("", 0L)); } - /** - * {@link CompanyInfoController#update(Long, CompanyInfoUpdateAction)}
- * Тест проверяет получение сущности {@link CompanyInfoUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link CompanyInfoUpdateAction}:
- * {@link CompanyInfoUpdateAction#workflowStatus} - ACTV
- * {@link CompanyInfoUpdateAction#corporationSoleType} - 0000
- * {@link CompanyInfoUpdateAction#countryCode} - 0000
- * {@link CompanyInfoUpdateAction#description} - exists description
- * {@link CompanyInfoUpdateAction#professionalSign} - 0000
- * {@link CompanyInfoUpdateAction#legalKind} - 0000
- * {@link CompanyInfoUpdateAction#organizationType} - 0000
- * {@link CompanyInfoUpdateAction#residence} - 0000
- * {@link CompanyInfoUpdateAction#shortNameEng} - exists shortNameEng
- * {@link CompanyInfoUpdateAction#fullNameEng} - exists fullNameEng
- * {@link CompanyInfoUpdateAction#shortName} - exists shortName
- * {@link CompanyInfoUpdateAction#fullName} - exists fullName
- * {@link CompanyInfoUpdateAction#id} - currentId
- */ @Test void update() throws Exception { - //ARRANGE CompanyInfoUpdateAction companyInfoUpdateAction = new CompanyInfoUpdateAction(); companyInfoUpdateAction.setWorkflowStatus("ACTV"); companyInfoUpdateAction.setCorporationSoleType("0000"); @@ -89,21 +51,12 @@ class CompanyInfoControllerTest extends AbstractControllerTest { companyInfoUpdateAction.setShortName("exists shortName"); companyInfoUpdateAction.setFullName("exists fullName"); companyInfoUpdateAction.setId(currentId.get()); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, companyInfoUpdateAction, companyInfoUpdateAction.getId()); checkSendedMessegeFromKafka(Consts.DESTINATION_COMPANY_INFO_UPDATE, companyInfoUpdateAction); } - /** - * {@link CompanyInfoController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_Company.
- * Входной запрос /company-infos/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Long ID = 0L; CompanyInfo existsCompanyInfo = new CompanyInfo(); existsCompanyInfo.setId(ID); @@ -128,17 +81,15 @@ class CompanyInfoControllerTest extends AbstractControllerTest { Collection> all = new ArrayList<>(); Collection companies = companyImdg.getAllValues(); for (Company company : companies) { - if (company.getProfile() != null && company.getProfile().getId() != null) { // пока возвращает "пустой" CompanyInfo если его нет для Company + if (company.getProfile() != null && company.getProfile().getId() != null) { all.add(responseFactory.responseFromObject(company.getProfile())); } } CommonGetAllResponse expected = new CommonGetAllResponse(); expected.fromEntity(all); - //ACT perform(MockMvcRequestBuilders.get(REST_URL) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyRoleSetControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyRoleSetControllerTest.java index b42cab16e..ec22fc0ea 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyRoleSetControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanyRoleSetControllerTest.java @@ -8,22 +8,12 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; class CompanyRoleSetControllerTest extends AbstractControllerTest { private static final String REST_URL = "/company-role-sets/"; - /** - * {@link CompanyRoleSetController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /company-role-sets/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE CompanyRoleSet existBankAccount = new CompanyRoleSet(); existBankAccount.setCompanyId(11L); existBankAccount.setCompanyRole("CLRM"); existBankAccount.setId(currentId.get()); - - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_CompanyRoleSet, existBankAccount, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanySymbolControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanySymbolControllerTest.java index cd02fbfe3..c7efbd748 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanySymbolControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/CompanySymbolControllerTest.java @@ -19,57 +19,28 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class CompanySymbolControllerTest extends AbstractControllerTest { private static final String REST_URL = "/company-symbols/"; - /** - * {@link CompanySymbolController#update(Long, CompanySymbolUpdateAction)}
- * Тест проверяет получение сущности {@link CompanySymbolUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link CompanySymbolUpdateAction}:
- * {@link CompanySymbolUpdateAction#companyId} - 1000L
- * {@link CompanySymbolUpdateAction#companySymbolValue} - SymbolValue
- * {@link CompanySymbolUpdateAction#id} - currentId
- */ -// @Test валидации пока нет void addWithException() { assertThrowsFor(getClearingMemberCategoryNewAction("Category", null)); assertThrowsFor(getClearingMemberCategoryNewAction("", 0L)); } - /** - * {@link CompanySymbolController#update(Long, CompanySymbolUpdateAction)}
- * Тест проверяет получение сущности {@link CompanySymbolUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link CompanySymbolUpdateAction}:
- * {@link CompanySymbolUpdateAction#companyId} - 1000L
- * {@link CompanySymbolUpdateAction#companySymbolValue} - SymbolValue
- * {@link CompanySymbolUpdateAction#id} - currentId
- */ @Test void update() throws Exception { - //ARRANGE CompanySymbolUpdateAction companySymbolUpdateAction = new CompanySymbolUpdateAction(); companySymbolUpdateAction.setCompanyId(1000L); companySymbolUpdateAction.setCompanySymbolValue("SymbolValue"); companySymbolUpdateAction.setId(currentId.get()); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, companySymbolUpdateAction, companySymbolUpdateAction.getId()); checkSendedMessegeFromKafka(Consts.DESTINATION_COMPANY_SYMBOL_UPDATE, companySymbolUpdateAction); } - /** - * {@link CompanySymbolController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_CompanySymbols.
- * Входной запрос /clearing-member-categories/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE CompanySymbols companySymbols = new CompanySymbols(); companySymbols.setCompanyId(1000L); companySymbols.setCompanySymbol("Symbol"); companySymbols.setCompanySymbolValue("SymbolValue"); companySymbols.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_CompanySymbols, companySymbols, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ContactControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ContactControllerTest.java index 50a013101..c429f8ca7 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ContactControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ContactControllerTest.java @@ -7,7 +7,6 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import ru.clearing.classes.statics.data.profile.Contact; import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; import ru.spcex.clearing.backendapi.controller.request.cud.company.ClearingMemberCategoryNewAction; -import ru.spcex.clearing.backendapi.controller.request.cud.company.CompanySymbolUpdateAction; import ru.spcex.clearing.backendapi.controller.request.cud.company.ContactNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.company.ContactUpdateAction; import ru.spcex.clearing.backendapi.domain.actions.IAction; @@ -21,80 +20,39 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class ContactControllerTest extends AbstractControllerTest { private static final String REST_URL = "/contacts/"; - /** - * {@link CompanySymbolController#update(Long, CompanySymbolUpdateAction)}
- * Тест проверяет получение сущности {@link CompanySymbolUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link CompanySymbolUpdateAction}:
- * {@link CompanySymbolUpdateAction#companyId} - 1000L
- * {@link CompanySymbolUpdateAction#companySymbol} - Symbol
- * {@link CompanySymbolUpdateAction#companySymbolValue} - SymbolValue
- * {@link CompanySymbolUpdateAction#id} - currentId
- */ -// @Test валидации пока нет void addWithException() { assertThrowsFor(getClearingMemberCategoryNewAction("Category", null)); assertThrowsFor(getClearingMemberCategoryNewAction("", 0L)); } - /** - * {@link ContactController#create(Long, ContactNewAction)}
- * Тест проверяет получение сущности {@link ContactNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ContactNewAction}:
- * {@link ContactNewAction#contactType} - ContactType
- * {@link ContactNewAction#contactValue} - ContactValue
- * {@link ContactNewAction#id} - currentId
- */ @Test void create() throws Exception { - //ARRANGE ContactNewAction companySymbolNewAction = new ContactNewAction(); companySymbolNewAction.setContactType("ContactType"); companySymbolNewAction.setContactValue("ContactValue"); companySymbolNewAction.setCompanyId(currentId.get()); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, companySymbolNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_CONTACT_NEW, companySymbolNewAction); } - /** - * {@link ContactController#update(Long, ContactUpdateAction)}
- * Тест проверяет получение сущности {@link ContactUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ContactUpdateAction}:
- * {@link ContactUpdateAction#contactType} - ContactType
- * {@link ContactUpdateAction#contactValue} - ContactValue
- * {@link ContactUpdateAction#id} - currentId
- */ @Test void update() throws Exception { - //ARRANGE ContactUpdateAction companySymbolUpdateAction = new ContactUpdateAction(); companySymbolUpdateAction.setContactType("ContactType"); companySymbolUpdateAction.setContactValue("ContactValue"); companySymbolUpdateAction.setId(currentId.get()); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, companySymbolUpdateAction, companySymbolUpdateAction.getId()); checkSendedMessegeFromKafka(Consts.DESTINATION_CONTACT_UPDATE, companySymbolUpdateAction); } - /** - * {@link ContactController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_Contact.
- * Входной запрос /contacts/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Contact companySymbolUpdateAction = new Contact(); companySymbolUpdateAction.setCompanyId(1000L); companySymbolUpdateAction.setContactType("ContactType"); companySymbolUpdateAction.setContactValue("ContactValue"); companySymbolUpdateAction.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Contact, companySymbolUpdateAction, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ProfileDocumentControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ProfileDocumentControllerTest.java index d8023e9a8..bd115b488 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ProfileDocumentControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/ProfileDocumentControllerTest.java @@ -10,15 +10,8 @@ import java.time.LocalDate; class ProfileDocumentControllerTest extends AbstractControllerTest { private static final String REST_URL = "/profile-documents/"; - /** - * {@link ProfileDocumentController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_ProfileDocument.
- * Входной запрос /profile-documents/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ProfileDocument profileDocument = new ProfileDocument(); profileDocument.setCompanyId(1000L); profileDocument.setDocumentType("DocumentType"); @@ -33,8 +26,6 @@ class ProfileDocumentControllerTest extends AbstractControllerTest { profileDocument.setValidToDate(LocalDate.now()); profileDocument.setLink("Link"); profileDocument.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ProfileDocument, profileDocument, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/RelationControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/RelationControllerTest.java index e2f06a22c..41cae406c 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/RelationControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/company/RelationControllerTest.java @@ -19,15 +19,8 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class RelationControllerTest extends AbstractControllerTest { private static final String REST_URL = "/relations/"; - /** - * {@link RelationController#update(Long, RelationUpdateAction)}
- * Тест проверяет получение сущности {@link RelationUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос: id, {@link RelationUpdateAction}:
- *
- */ @Test void update() throws Exception { - //ARRANGE Long existsId = 123L; RelationUpdateAction relationUpdateAction = new RelationUpdateAction(); relationUpdateAction.setId(existsId); @@ -36,22 +29,13 @@ class RelationControllerTest extends AbstractControllerTest { Relation relation = new Relation(); relation.setId(existsId); - - //ACT and ASSERT checkUpdatingWithIdVolidationByRestApi(IMDGDistributedNames.Map_Relation, relation, REST_URL, relationUpdateAction, existsId); checkSendedMessegeFromKafka(Consts.DESTINATION_RELATION_UPDATE, relationUpdateAction); } - /** - * {@link RelationController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /relations/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Long existsId = 123L; BankAccount existBankAccount = new BankAccount(); existBankAccount.setBankName("ooo tinkoff"); @@ -66,8 +50,6 @@ class RelationControllerTest extends AbstractControllerTest { Relation relation = new Relation(); relation.setId(existsId); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Relation, relation, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositControllerTest.java index c6786f993..67c092b71 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositControllerTest.java @@ -12,15 +12,8 @@ import java.time.LocalDate; class ExecutionDepositControllerTest extends AbstractControllerTest { private static final String REST_URL = "/execution-deposits/"; - /** - * {@link ExecutionDepositController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /execution-deposits/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ExecutionDeposit executionDeposit = new ExecutionDeposit(); executionDeposit.setId(currentId.get()); executionDeposit.setExchangeExecutionId(currentId.get()); @@ -52,8 +45,6 @@ class ExecutionDepositControllerTest extends AbstractControllerTest { executionDeposit.setCoverageStatus("cov"); executionDeposit.setSessionId(currentId.get()); executionDeposit.setClearingDate(LocalDate.now()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ExecutionDeposit, executionDeposit, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionFondControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionFondControllerTest.java index 9bb6803ad..f0dfa6b04 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionFondControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionFondControllerTest.java @@ -12,15 +12,8 @@ import java.time.LocalDate; class ExecutionFondControllerTest extends AbstractControllerTest { private static final String REST_URL = "/execution-fonds/"; - /** - * {@link ExecutionFondController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /execution-fonds/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ExecutionFond executionFond = new ExecutionFond(); executionFond.setId(currentId.get()); executionFond.setExchangeExecutionId(currentId.get()); @@ -50,8 +43,6 @@ class ExecutionFondControllerTest extends AbstractControllerTest { executionFond.setSettlementCode("settl1"); executionFond.setSettlementDate(LocalDate.now()); executionFond.setExchangeExecutionMicroseconds(Instant.now()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ExecutionFond, executionFond, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/InDocumentJournalControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/InDocumentJournalControllerTest.java index e87550cdb..a7526169b 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/InDocumentJournalControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/InDocumentJournalControllerTest.java @@ -12,15 +12,8 @@ import java.time.LocalTime; class InDocumentJournalControllerTest extends AbstractControllerTest { private static final String REST_URL = "/in-document-journals/"; - /** - * {@link InDocumentJournalController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /in-document-journals/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE InDocumentJournal inDocumentJournal = new InDocumentJournal(); inDocumentJournal.setId(currentId.get()); inDocumentJournal.setComment("Comment"); @@ -37,8 +30,6 @@ class InDocumentJournalControllerTest extends AbstractControllerTest { inDocumentJournal.setQuantity(0L); inDocumentJournal.setClearingCode("dosser"); inDocumentJournal.setEmailDate(LocalDate.now()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_InDocumentJournal, inDocumentJournal, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/ManagementJournalControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/ManagementJournalControllerTest.java index 5cc60ae6a..6ef765d8b 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/ManagementJournalControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/ManagementJournalControllerTest.java @@ -10,15 +10,8 @@ import java.time.Instant; class ManagementJournalControllerTest extends AbstractControllerTest { private static final String REST_URL = "/management-journals/"; - /** - * {@link ManagementJournalController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /management-journals/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ManagementJournal managementJournal = new ManagementJournal(); managementJournal.setId(currentId.get()); managementJournal.setCompanyId(currentId.get()); @@ -30,8 +23,6 @@ class ManagementJournalControllerTest extends AbstractControllerTest { managementJournal.setChangeAccessSign("send"); managementJournal.setChangeDataSign("dos"); managementJournal.setEventDate(Instant.now()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ManagementJournal, managementJournal, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/OutDocumentJournalControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/OutDocumentJournalControllerTest.java index 09cc8f804..93576034e 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/OutDocumentJournalControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/journal/OutDocumentJournalControllerTest.java @@ -12,15 +12,8 @@ import java.time.LocalTime; class OutDocumentJournalControllerTest extends AbstractControllerTest { private static final String REST_URL = "/out-document-journals/"; - /** - * {@link OutDocumentJournalController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /out-document-journals/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE OutDocumentJournal outDocumentJournal = new OutDocumentJournal(); outDocumentJournal.setId(currentId.get()); outDocumentJournal.setRegistrationDate(LocalDate.now()); @@ -36,8 +29,6 @@ class OutDocumentJournalControllerTest extends AbstractControllerTest { outDocumentJournal.setDossierNumber("doc"); outDocumentJournal.setPostDate(LocalDate.now()); outDocumentJournal.setResultStatus("res"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_OutDocumentJournal, outDocumentJournal, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/CurrencyControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/CurrencyControllerTest.java index fd876184e..35440545f 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/CurrencyControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/CurrencyControllerTest.java @@ -8,21 +8,12 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; class CurrencyControllerTest extends AbstractControllerTest { private static final String REST_URL = "/currencies/"; - /** - * {@link CurrencyController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /currencies/
- * Ответ CurrencyController
- */ @Test void getAll() throws Exception { - //ARRANGE Currency currency = new Currency(); currency.setId(currentId.get()); currency.setCountryCode("acc"); currency.setCurrencyCode("acc"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Currency, currency, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/ErrorTextControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/ErrorTextControllerTest.java index b03a31521..016259160 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/ErrorTextControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/ErrorTextControllerTest.java @@ -10,15 +10,8 @@ import java.time.LocalDate; class ErrorTextControllerTest extends AbstractControllerTest { private static final String REST_URL = "/error-texts/"; - /** - * {@link ErrorTextController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /error-texts/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ErrorText errorText = new ErrorText(); errorText.setId(currentId.get()); errorText.setText("text"); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/ListingControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/ListingControllerTest.java index b3e1cfec8..3403051a3 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/ListingControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/ListingControllerTest.java @@ -10,15 +10,8 @@ import java.math.BigDecimal; class ListingControllerTest extends AbstractControllerTest { private static final String REST_URL = "/listings/"; - /** - * {@link ListingController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /listings/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Listing liabilitiesClaimsAssets = new Listing(); liabilitiesClaimsAssets.setId(currentId.get()); liabilitiesClaimsAssets.setSecurityId(currentId.get()); @@ -28,8 +21,6 @@ class ListingControllerTest extends AbstractControllerTest { liabilitiesClaimsAssets.setSymbolName("res"); liabilitiesClaimsAssets.setTradingCurrency("trad"); liabilitiesClaimsAssets.setWorkflowStatus("work"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Listing, liabilitiesClaimsAssets, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/MarketControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/MarketControllerTest.java index f1b7d69c0..bcae390de 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/MarketControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/MarketControllerTest.java @@ -8,15 +8,8 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; class MarketControllerTest extends AbstractControllerTest { private static final String REST_URL = "/markets/"; - /** - * {@link MarketController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /markets/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Market liabilitiesClaimsAssets = new Market(); liabilitiesClaimsAssets.setId(currentId.get()); liabilitiesClaimsAssets.setDescription("des"); @@ -25,8 +18,6 @@ class MarketControllerTest extends AbstractControllerTest { liabilitiesClaimsAssets.setCode("man"); liabilitiesClaimsAssets.setSettlementCurrency("res"); liabilitiesClaimsAssets.setSection("sec"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Market, liabilitiesClaimsAssets, REST_URL); } } \ No newline at end of file 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 cd026029e..dc760b6c9 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 @@ -9,7 +9,6 @@ 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.time.Instant; import java.time.LocalDate; import java.util.Collection; import java.util.Map; @@ -22,15 +21,8 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class NotificationControllerTest extends AbstractControllerTest { private static final String REST_URL = "/notifications/"; - /** - * {@link NotificationController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_Notification.
- * Входной запрос /notifications/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Notification profileDocument = new Notification(); profileDocument.setClearingDate(LocalDate.now()); profileDocument.setSenderId(1000L); @@ -47,11 +39,9 @@ class NotificationControllerTest extends AbstractControllerTest { Collection> all = responseFactory.responseFromObjectCollection(values); CommonGetAllResponse expected = new CommonGetAllResponse(); expected.fromEntity(all); - //ACT perform(MockMvcRequestBuilders.get(REST_URL) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/SessionControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/SessionControllerTest.java index 578af6a9e..d49cfb6d3 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/SessionControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/SessionControllerTest.java @@ -21,15 +21,8 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class SessionControllerTest extends AbstractControllerTest { private static final String REST_URL = "/sessions/"; - /** - * {@link SessionController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_Session.
- * Входной запрос /sessions/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Session session = new Session(); session.setClearingDate(LocalDate.now()); session.setSessionStatus("Ok"); @@ -42,11 +35,9 @@ class SessionControllerTest extends AbstractControllerTest { Collection> all = responseFactory.responseFromObjectCollection(values); CommonGetAllResponse expected = new CommonGetAllResponse(); expected.fromEntity(all); - //ACT perform(MockMvcRequestBuilders.get(REST_URL) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); 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 80cdd1ad8..6f3f94727 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 @@ -25,15 +25,8 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class PaymentInstructionControllerTest extends AbstractControllerTest { private static final String REST_URL = "/payment-instructions/"; - /** - * {@link PaymentInstructionController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_PaymentInstruction.
- * Входной запрос /paymentInstructions/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE PaymentInstruction paymentInstruction = new PaymentInstruction(); paymentInstruction.setSenderId(1010L); @@ -72,11 +65,9 @@ class PaymentInstructionControllerTest extends AbstractControllerTest { Collection> all = responseFactory.responseFromObjectCollection(values); CommonGetAllResponse expected = new CommonGetAllResponse(); expected.fromEntity(all); - //ACT perform(MockMvcRequestBuilders.get(REST_URL) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); @@ -84,7 +75,6 @@ class PaymentInstructionControllerTest extends AbstractControllerTest { @Test void clearingOutboundAction() throws Exception { - //ARRANGE PIClearingOutbondActionNew piClearingOutbondActionNew = new PIClearingOutbondActionNew(); piClearingOutbondActionNew.setSenderId(111L); piClearingOutbondActionNew.setAddresseeId(222L); @@ -92,7 +82,6 @@ class PaymentInstructionControllerTest extends AbstractControllerTest { piClearingOutbondActionNew.setCreditLeg_amount(BigDecimal.valueOf(120.99)); piClearingOutbondActionNew.setCreditLeg_accountId(333L); piClearingOutbondActionNew.setDebitLeg_accountId(335L); - //ACT and ASSERT checkAddingByRestApi("/payment-instructions/clearing-outbound/", piClearingOutbondActionNew); checkSendedMessegeFromKafka(Consts.PAYMENT_INSTRUCTION_CLEARING_OUTBOUND_ACTION, piClearingOutbondActionNew); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedLiabilitiesRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedLiabilitiesRegisterControllerTest.java index 62e5ab035..b272cab71 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedLiabilitiesRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedLiabilitiesRegisterControllerTest.java @@ -11,15 +11,8 @@ import java.time.LocalDate; class AdmittedLiabilitiesRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/admitted-liabilities-registers/"; - /** - * {@link AdmittedLiabilitiesRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /admitted-liabilities-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE AdmittedLiabilitiesRegister admittedLiabilitiesRegister = new AdmittedLiabilitiesRegister(); admittedLiabilitiesRegister.setId(currentId.get()); admittedLiabilitiesRegister.setCompanyFullName("fuill nme"); @@ -31,8 +24,6 @@ class AdmittedLiabilitiesRegisterControllerTest extends AbstractControllerTest { admittedLiabilitiesRegister.setAccount("ACC1"); admittedLiabilitiesRegister.setAmount(BigDecimal.valueOf(12.15)); admittedLiabilitiesRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_AdmittedLiabilitiesRegister, admittedLiabilitiesRegister, REST_URL); } } \ No newline at end of file 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 259f0dcfb..edf4c942e 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 @@ -10,15 +10,8 @@ import java.time.LocalDate; class ContractRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/contract-registers/"; - /** - * {@link ContractRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /contract-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ContractRegister contractRegister = new ContractRegister(); contractRegister.setId(currentId.get()); contractRegister.setName("code"); @@ -35,8 +28,6 @@ class ContractRegisterControllerTest extends AbstractControllerTest { contractRegister.setValidToDate(LocalDate.now()); contractRegister.setCloseDate(LocalDate.now()); contractRegister.setComment("ocpo"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ContractRegister, contractRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredLiabilitiesRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredLiabilitiesRegisterControllerTest.java index 42b5b7906..37abf21f0 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredLiabilitiesRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredLiabilitiesRegisterControllerTest.java @@ -11,15 +11,8 @@ import java.time.LocalDate; class CoveredLiabilitiesRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/covered-liabilities-registers/"; - /** - * {@link CoveredLiabilitiesRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /covered-liabilities-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE CoveredLiabilitiesRegister coveredLiabilitiesRegister = new CoveredLiabilitiesRegister(); coveredLiabilitiesRegister.setId(currentId.get()); coveredLiabilitiesRegister.setCompanyFullName("fuill nme"); @@ -31,8 +24,6 @@ class CoveredLiabilitiesRegisterControllerTest extends AbstractControllerTest { coveredLiabilitiesRegister.setAccount("ACC1"); coveredLiabilitiesRegister.setAmount(BigDecimal.valueOf(12.15)); coveredLiabilitiesRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_CoveredLiabilitiesRegister, coveredLiabilitiesRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DepoBalanceRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DepoBalanceRegisterControllerTest.java index e0991d5d1..39168de37 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DepoBalanceRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DepoBalanceRegisterControllerTest.java @@ -8,23 +8,14 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; class DepoBalanceRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/depo-balance-registers/"; - /** - * {@link DepoBalanceRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /depo-balance-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE DepoBalanceRegister depoBalanceRegister = new DepoBalanceRegister(); depoBalanceRegister.setId(currentId.get()); depoBalanceRegister.setSessionId(111L); depoBalanceRegister.setSecuritySymbol("RUB"); depoBalanceRegister.setCompanyId(222L); depoBalanceRegister.setDepoCode("DCDE"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_DepoBalanceRegister, depoBalanceRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DepoPaymentInstructionRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DepoPaymentInstructionRegisterControllerTest.java index e3d54a241..7d38be3d8 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DepoPaymentInstructionRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DepoPaymentInstructionRegisterControllerTest.java @@ -10,15 +10,8 @@ import java.math.BigDecimal; class DepoPaymentInstructionRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/depo-payment-instruction-registers/"; - /** - * {@link DepoPaymentInstructionRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /depo-payment-instruction-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE DepoPaymentInstructionRegister depoPaymentInstructionRegister = new DepoPaymentInstructionRegister(); depoPaymentInstructionRegister.setId(currentId.get()); depoPaymentInstructionRegister.setCompanyId(currentId.get()); @@ -28,8 +21,6 @@ class DepoPaymentInstructionRegisterControllerTest extends AbstractControllerTes depoPaymentInstructionRegister.setQuantity(BigDecimal.valueOf(12.15)); depoPaymentInstructionRegister.setDirection(currentId.get()); depoPaymentInstructionRegister.setSessionId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_DepoPaymentInstructionRegister, depoPaymentInstructionRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ExcludeLiabilitiesRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ExcludeLiabilitiesRegisterControllerTest.java index 79b8a16a9..330f518f8 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ExcludeLiabilitiesRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ExcludeLiabilitiesRegisterControllerTest.java @@ -11,15 +11,8 @@ import java.time.LocalDate; class ExcludeLiabilitiesRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/exclude-liabilities-registers/"; - /** - * {@link ExcludeLiabilitiesRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /exclude-liabilities-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ExcludeLiabilitiesRegister excludeLiabilitiesRegister = new ExcludeLiabilitiesRegister(); excludeLiabilitiesRegister.setId(currentId.get()); excludeLiabilitiesRegister.setSessionId(222L); @@ -35,8 +28,6 @@ class ExcludeLiabilitiesRegisterControllerTest extends AbstractControllerTest { excludeLiabilitiesRegister.setCurrency("Currency"); excludeLiabilitiesRegister.setSumLiabilities(BigDecimal.valueOf(12.15)); excludeLiabilitiesRegister.setSettlementDate(LocalDate.now()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ExcludeLiabilitiesRegister, excludeLiabilitiesRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ExecutionRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ExecutionRegisterControllerTest.java index 40623b6e4..d8aa53055 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ExecutionRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ExecutionRegisterControllerTest.java @@ -12,15 +12,8 @@ import java.time.LocalDate; class ExecutionRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/execution-registers/"; - /** - * {@link ExecutionRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /execution-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ExecutionRegister executionRegister = new ExecutionRegister(); executionRegister.setId(currentId.get()); executionRegister.setTradingDate(LocalDate.now()); @@ -40,9 +33,6 @@ class ExecutionRegisterControllerTest extends AbstractControllerTest { executionRegister.setAmount(BigDecimal.valueOf(14.55)); executionRegister.setQuantity(BigDecimal.valueOf(0.1)); executionRegister.setClearingDate(LocalDate.now()); - - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ExecutionRegister, executionRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/LiabilitiesRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/LiabilitiesRegisterControllerTest.java index 7b0edaa3d..a1cf6ca2d 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/LiabilitiesRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/LiabilitiesRegisterControllerTest.java @@ -11,15 +11,8 @@ import java.time.LocalDate; class LiabilitiesRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/liabilities-registers/"; - /** - * {@link LiabilitiesRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /liabilities-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE LiabilitiesRegister liabilitiesRegister = new LiabilitiesRegister(); liabilitiesRegister.setId(currentId.get()); liabilitiesRegister.setSessionId(111L); @@ -35,9 +28,6 @@ class LiabilitiesRegisterControllerTest extends AbstractControllerTest { liabilitiesRegister.setCurrency("RUB"); liabilitiesRegister.setSumLiabilities(BigDecimal.TEN); liabilitiesRegister.setSettlementDate(LocalDate.now()); - - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_LiabilitiesRegister, liabilitiesRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/MoneyBalanceRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/MoneyBalanceRegisterControllerTest.java index 680a08424..00f50eea2 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/MoneyBalanceRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/MoneyBalanceRegisterControllerTest.java @@ -10,15 +10,8 @@ import java.math.BigDecimal; class MoneyBalanceRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/money-balance-registers/"; - /** - * {@link MoneyBalanceRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /money-balance-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE MoneyBalanceRegister moneyBalanceRegister = new MoneyBalanceRegister(); moneyBalanceRegister.setId(currentId.get()); moneyBalanceRegister.setSetHouseName("setHouseName"); @@ -31,9 +24,6 @@ class MoneyBalanceRegisterControllerTest extends AbstractControllerTest { moneyBalanceRegister.setSessionId(456L); moneyBalanceRegister.setCompanyFullName("companyFullName"); moneyBalanceRegister.setCompanyId(currentId.get()); - - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_MoneyBalanceRegister, moneyBalanceRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryControllerTest.java index a6b7843df..10570e5fc 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/RegistryControllerTest.java @@ -1,31 +1,20 @@ package ru.spcex.clearing.backendapi.controller.queue.register; import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.ContractRegister; import ru.clearing.classes.statics.data.registry.Registry; import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; import ru.spcex.clearing.backendapi.controller.request.cud.registry.RSplitDepositActionNew; -import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; import java.math.BigDecimal; import java.time.LocalDate; -import static org.junit.jupiter.api.Assertions.*; - class RegistryControllerTest extends AbstractControllerTest { private static final String REST_URL = "/registries/"; - /** - * {@link RegistryController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /registries/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Registry registry = new Registry(); registry.setId(currentId.get()); registry.setCompanyId(currentId.get()); @@ -71,20 +60,16 @@ class RegistryControllerTest extends AbstractControllerTest { registry.setGroupId(currentId.get()); registry.setSessionId(currentId.get()); registry.setSessionType("CLR1"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Registry, registry, REST_URL); } @Test void splitDepositAction() throws Exception { - //ARRANGE RSplitDepositActionNew rSplitDepositActionNew=new RSplitDepositActionNew(); rSplitDepositActionNew.setComment("comment"); rSplitDepositActionNew.setContract("CONTRACT-1"); rSplitDepositActionNew.setRefundDate(LocalDate.now()); rSplitDepositActionNew.setOutboundAmount(BigDecimal.ONE); - //ACT and ASSERT checkAddingByRestApi("/registries/splitDeposit/", rSplitDepositActionNew); checkSendedMessegeFromKafka(Consts.REGISTRY_SPLIT_DEPOSIT_ACTION, rSplitDepositActionNew); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ReportRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ReportRegisterControllerTest.java index 69ea99f86..5eee0e911 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ReportRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ReportRegisterControllerTest.java @@ -10,15 +10,8 @@ import java.time.LocalDate; class ReportRegisterControllerTest extends AbstractControllerTest { private static final String REST_URL = "/report-registers/"; - /** - * {@link ReportRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /report-registers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ReportRegister reportRegister = new ReportRegister(); reportRegister.setId(currentId.get()); reportRegister.setCompanyFullName("code"); @@ -28,8 +21,6 @@ class ReportRegisterControllerTest extends AbstractControllerTest { reportRegister.setName("cat"); reportRegister.setQuantity(currentId.get()); reportRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ReportRegister, reportRegister, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java index 959b5ae21..e543a74cc 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java @@ -15,7 +15,6 @@ import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.backendapi.errors.ActionValidationException; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.platform.imdg.api.Imdg; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -27,88 +26,43 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class TradingClearingRegistryControllerTest extends AbstractControllerTest { private static final String REST_URL = "/trading-clearing-registries/"; - /** - * {@link TradingClearingRegistryController#add(TradingClearingRegistryNewAction)}
- * Тест проверяет получение сущности {@link TradingClearingRegistryNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link TradingClearingRegistryNewRequest}:
- * {@link TradingClearingRegistryNewRequest#companyId} - 1234567890
- * {@link TradingClearingRegistryNewRequest#moneyAccountId} - 18415056336414057
- * {@link TradingClearingRegistryNewRequest#depoAccountId} - 21239757374450030
- * {@link TradingClearingRegistryNewRequest#status} - ACTV
- */ @Test void add() throws Exception { - //ARRANGE TradingClearingRegistryNewAction tradingClearingRegistryNewAction = getTradingClearingRegistryNewAction( 0, 1234567890L, 18415056336414057L, 21239757374450030L, "ACTV" ); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, tradingClearingRegistryNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, tradingClearingRegistryNewAction); } - /** - * {@link TradingClearingRegistryController#add(TradingClearingRegistryNewAction)}
- * Тест проверяет работу валидации сущности {@link TradingClearingRegistryNewAction} принятой по REST API для отправку в Apache Kafka.
- * Входной запрос {@link TradingClearingRegistryNewRequest}:
- * {@link TradingClearingRegistryNewRequest#companyId} - 1234567890 / null
- * {@link TradingClearingRegistryNewRequest#moneyAccountId} - 18415056336414057 / null
- * {@link TradingClearingRegistryNewRequest#depoAccountId} - 21239757374450030
- * {@link TradingClearingRegistryNewRequest#status} - ACTV
- */ @Test void addWithException() { assertThrowsForNew(getTradingClearingRegistryNewAction(0, null, 18415056336414057L, 21239757374450030L, "ACTV")); assertThrowsForNew(getTradingClearingRegistryNewAction(0, 1234567890L, null, 21239757374450030L, "ACTV")); } - /** - * {@link TradingClearingRegistryController#update(Long, TradingClearingRegistryUpdateAction)}
- * Тест проверяет получение сущности {@link TradingClearingRegistryUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link TradingClearingRegistryUpdateAction}:
- * {@link TradingClearingRegistryUpdateAction#id} - generated
- * {@link TradingClearingRegistryUpdateAction#code} - ACTV
- */ @Test void update() throws Exception { - //ARRANGE long id = 0; TradingClearingRegistryUpdateAction tradingClearingRegistryUpdateAction = getTradingClearingRegistryUpdateAction( id, "ACTV" ); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, tradingClearingRegistryUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, tradingClearingRegistryUpdateAction); } - /** - * {@link TradingClearingRegistryController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /trading-clearing-registries/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, deleteAction); } - /** - * {@link TradingClearingRegistryController#getById(Long)}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_TradingClearingRegistry.
- * Входной запрос /trading-clearing-registries/{@link Long}: - 0L
- * Ответ BankAccountBackendGetById
- */ @Test void getById() throws Exception { - //ARRANGE TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry(); existTradingClearingRegistry.setCompanyId(365L); existTradingClearingRegistry.setCode("99999"); @@ -137,25 +91,16 @@ class TradingClearingRegistryControllerTest extends AbstractControllerTest { payload.setCreatedAt(existTradingClearingRegistry.getCreated()); payload.setUpdatedAt(existTradingClearingRegistry.getUpdated()); expected.setPayload(payload); - //ACT perform(MockMvcRequestBuilders.get(REST_URL + existTradingClearingRegistry.getId()) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response -// ASSERT - .andExpect(status().isOk()) + .andDo(print()) +.andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); } - /** - * {@link TradingClearingRegistryController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /trading-clearing-registries/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry(); existTradingClearingRegistry.setCompanyId(365L); existTradingClearingRegistry.setCode("99999"); @@ -166,8 +111,6 @@ class TradingClearingRegistryControllerTest extends AbstractControllerTest { existTradingClearingRegistry.setTradingClearingRegistryPurpose("848484848484"); existTradingClearingRegistry.setStatus("ACTV"); existTradingClearingRegistry.setId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_TradingClearingRegistry, existTradingClearingRegistry, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/ClearingCalendarControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/ClearingCalendarControllerTest.java index 6551d649c..35659532a 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/ClearingCalendarControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/ClearingCalendarControllerTest.java @@ -14,76 +14,43 @@ import java.time.LocalDate; class ClearingCalendarControllerTest extends AbstractControllerTest { private static final String REST_URL = "/schedule/clearing-calendars/"; - /** - * {@link ClearingCalendarController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /schedule/clearing-calendars/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE ClearingCalendar clearingCalendar = new ClearingCalendar(); clearingCalendar.setId(currentId.get()); clearingCalendar.setCompanyId(currentId.get()); clearingCalendar.setClearingDate(LocalDate.now()); clearingCalendar.setDayStatus("status"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_ClearingCalendar, clearingCalendar, REST_URL); } - /** - * {@link ClearingCalendarController#add(ClearingCalendarNewAction)}
- * Тест проверяет получение сущности {@link ClearingCalendarNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ClearingCalendarNewAction}:
- */ @Test void add() throws Exception { - //ARRANGE ClearingCalendarNewAction clearingCalendarNewAction = new ClearingCalendarNewAction(); clearingCalendarNewAction.setCompanyId(currentId.get()); clearingCalendarNewAction.setClearingDate(LocalDate.now()); clearingCalendarNewAction.setDayStatus("status"); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, clearingCalendarNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_CLEARING_CALENDAR_NEW, clearingCalendarNewAction); } - /** - * {@link ClearingCalendarController#update(Long, ClearingCalendarUpdateAction)}
- * Тест проверяет получение сущности {@link ClearingCalendarUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link ClearingCalendarUpdateAction}:
- */ @Test void update() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); ClearingCalendarUpdateAction clearingCalendarUpdateAction = new ClearingCalendarUpdateAction(); clearingCalendarUpdateAction.setId(id); clearingCalendarUpdateAction.setCompanyId(currentId.get()); clearingCalendarUpdateAction.setClearingDate(LocalDate.now()); clearingCalendarUpdateAction.setDayStatus("status"); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, clearingCalendarUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_CLEARING_CALENDAR_UPDATE, clearingCalendarUpdateAction); } - /** - * {@link ClearingCalendarController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /schedule/clearing-calendars/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - - //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_CLEARING_CALENDAR_DELETE, deleteAction); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/LauncherControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/LauncherControllerTest.java index dad895ccd..e766e3e41 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/LauncherControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/LauncherControllerTest.java @@ -38,15 +38,8 @@ class LauncherControllerTest extends AbstractControllerTest { private static final String START_OF_CLEARING = Task.startOfClearing.getKey(); private static final long ID = 0; - /** - * {@link LauncherController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_TaskRunner.
- * Входной запрос /task-runners/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Launcher taskRunner = new Launcher(); taskRunner.setTask("Task"); taskRunner.setSenderId(10210L); @@ -59,23 +52,16 @@ class LauncherControllerTest extends AbstractControllerTest { Collection> all = responseFactory.responseFromObjectCollection(values); CommonGetAllResponse expected = new CommonGetAllResponse(); expected.fromEntity(all); - //ACT perform(MockMvcRequestBuilders.get(REST_URL) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); } - /** - * {@link LauncherController#add(String)}
- * Тест проверяет получение сущности {@link LauncherController} по REST API и отправку в Apache Kafka.
- */ @Test void add() throws Exception { - //ARRANGE TaskDictionary taskDictionary = new TaskDictionary(); taskDictionary.setCode(CODE); taskDictionary.setId(ID); @@ -92,25 +78,17 @@ class LauncherControllerTest extends AbstractControllerTest { expected.setPayload(new QueueSuccessResponse(ActionType.NEW, currentId.getAndIncrement())); setUserNameInMockSecurityContextAndMapUser(CODE, ID); - - //ACT MvcResult mvcResult = perform(MockMvcRequestBuilders.post(REST_URL + CODE)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) -// .andExpect(content().json(writeValue(expected))); - .andReturn(); +.andReturn(); CudResponseTest cudResponseTest = readValue(mvcResult.getResponse().getContentAsString(), CudResponseTest.class); expected.setPayload(new QueueSuccessResponse(ActionType.NEW, cudResponseTest.getPayload().getId())); CUD_RESPONSE_MATCHER.assertMatch(cudResponseTest, expected); checkSendedMessegeFromKafka(Consts.LAUNCHER_NEW, launcherCommand); } - /** - * {@link LauncherController#add(String)}
- * Тест проверяет работу валидации {@link LauncherController}
- */ @Test void addWithException() throws Exception { BasicSpcexResponse response = new BasicSpcexResponse(); @@ -118,23 +96,16 @@ class LauncherControllerTest extends AbstractControllerTest { EnumMessage message = ex.getError(); response.setCode(message.getSubject().getId()); response.setMessage(errorResolver.resolve(message)); - //ACT perform(MockMvcRequestBuilders.post(REST_URL + null) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isNotFound()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(response))); } - /** - * {@link LauncherController#addSpecific}
- * Тест проверяет получение сущности {@link LauncherController} по REST API и отправку в Apache Kafka.
- */ @Test void addSpecific() throws Exception { - //ARRANGE LauncherNew launcherCommand = new LauncherNew(); launcherCommand.setTask(START_OF_CLEARING); launcherCommand.setUserId(ID); @@ -153,27 +124,19 @@ class LauncherControllerTest extends AbstractControllerTest { expected.setPayload(new QueueSuccessResponse(ActionType.NEW, currentId.getAndIncrement())); setUserNameInMockSecurityContextAndMapUser(START_OF_CLEARING, ID); - - //ACT MvcResult mvcResult = perform(MockMvcRequestBuilders.post(REST_URL + "specific") .contentType(MediaType.APPLICATION_JSON) .content(writeValue(launcherCommand))) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) -// .andExpect(content().json(writeValue(expected))); - .andReturn(); +.andReturn(); CudResponseTest cudResponseTest = readValue(mvcResult.getResponse().getContentAsString(), CudResponseTest.class); expected.setPayload(new QueueSuccessResponse(ActionType.NEW, cudResponseTest.getPayload().getId())); CUD_RESPONSE_MATCHER.assertMatch(cudResponseTest, expected); checkSendedMessegeFromKafka(Consts.LAUNCHER_NEW, launcherCommand); } - /** - * {@link LauncherController#addSpecific}
- * Тест проверяет работу валидации {@link LauncherController}
- */ @Test void addSpecificWithException() throws Exception { LauncherNew launcherCommand = new LauncherNew(); @@ -184,12 +147,10 @@ class LauncherControllerTest extends AbstractControllerTest { EnumMessage message = ex.getError(); response.setCode(message.getSubject().getId()); response.setMessage(errorResolver.resolve(message)); - //ACT perform(MockMvcRequestBuilders.post(REST_URL + "specific") .contentType(MediaType.APPLICATION_JSON) .content(writeValue(launcherCommand))) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isNotFound()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(response))); @@ -199,8 +160,7 @@ class LauncherControllerTest extends AbstractControllerTest { perform(MockMvcRequestBuilders.post(REST_URL + "specific") .contentType(MediaType.APPLICATION_JSON) .content(writeValue(launcherCommand))) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isNotFound()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(response))); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerAllTodayControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerAllTodayControllerTest.java index 78553ec70..3cd9cc3e8 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerAllTodayControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerAllTodayControllerTest.java @@ -22,15 +22,8 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class PlannerAllTodayControllerTest extends AbstractControllerTest { private static final String REST_URL = "/schedule/planners-all-today/"; - /** - * {@link PlannerAllTodayController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_SchedulerAllToday.
- * Входной запрос /schedule/schedulers-all-today/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE PlannerAllToday schedulerAllToday = new PlannerAllToday(); schedulerAllToday.setTask("Task"); schedulerAllToday.setTaskTime(LocalTime.now()); @@ -49,11 +42,9 @@ class PlannerAllTodayControllerTest extends AbstractControllerTest { Collection> all = responseFactory.responseFromObjectCollection(values); CommonGetAllResponse expected = new CommonGetAllResponse(); expected.fromEntity(all); - //ACT perform(MockMvcRequestBuilders.get(REST_URL) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerControllerTest.java index 019d5038d..5339d29f2 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerControllerTest.java @@ -22,15 +22,8 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class PlannerControllerTest extends AbstractControllerTest { private static final String REST_URL = "/schedule/planners/"; - /** - * {@link PlannerController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_Scheduler.
- * Входной запрос /schedule/schedulers/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Planner scheduler = new Planner(); scheduler.setTask("Task"); scheduler.setTaskTime(LocalTime.now()); @@ -47,11 +40,9 @@ class PlannerControllerTest extends AbstractControllerTest { Collection> all = responseFactory.responseFromObjectCollection(values); CommonGetAllResponse expected = new CommonGetAllResponse(); expected.fromEntity(all); - //ACT perform(MockMvcRequestBuilders.get(REST_URL) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(expected))); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerTemplateControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerTemplateControllerTest.java index e5f134d8e..df6071233 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerTemplateControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerTemplateControllerTest.java @@ -14,15 +14,8 @@ import java.time.LocalTime; class PlannerTemplateControllerTest extends AbstractControllerTest { private static final String REST_URL = "/schedule/planner-templates/"; - /** - * {@link PlannerTemplateController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /schedule/planner-templates/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE PlannerTemplate plannerTemplate = new PlannerTemplate(); plannerTemplate.setId(currentId.get()); plannerTemplate.setTask("task"); @@ -30,39 +23,23 @@ class PlannerTemplateControllerTest extends AbstractControllerTest { plannerTemplate.setTaskStatus("status"); plannerTemplate.setCompanyId(currentId.get()); plannerTemplate.setSecurityId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_PlannerTemplate, plannerTemplate, REST_URL); } - /** - * {@link PlannerTemplateController#add(PlannerTemplateNewAction)}
- * Тест проверяет получение сущности {@link PlannerTemplateNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link PlannerTemplateNewAction}:
- */ @Test void add() throws Exception { - //ARRANGE PlannerTemplateNewAction plannerTemplateNewAction = new PlannerTemplateNewAction(); plannerTemplateNewAction.setTask("task"); plannerTemplateNewAction.setTaskTime(LocalTime.now().withNano(0)); plannerTemplateNewAction.setTaskStatus("status"); plannerTemplateNewAction.setCompanyId(currentId.get()); plannerTemplateNewAction.setSecurityId(currentId.get()); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, plannerTemplateNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_PLANNER_TEMPLATE_NEW, plannerTemplateNewAction); } - /** - * {@link PlannerTemplateController#update(Long, PlannerTemplateUpdateAction)}
- * Тест проверяет получение сущности {@link PlannerTemplateUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link PlannerTemplateUpdateAction}:
- */ @Test void update() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); PlannerTemplateUpdateAction plannerTemplateUpdateAction = new PlannerTemplateUpdateAction(); plannerTemplateUpdateAction.setId(id); @@ -71,25 +48,15 @@ class PlannerTemplateControllerTest extends AbstractControllerTest { plannerTemplateUpdateAction.setTaskStatus("status"); plannerTemplateUpdateAction.setCompanyId(currentId.get()); plannerTemplateUpdateAction.setSecurityId(currentId.get()); - - //ACT and ASSERT checkUpdatingByRestApi(REST_URL, plannerTemplateUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_PLANNER_TEMPLATE_UPDATE, plannerTemplateUpdateAction); } - /** - * {@link PlannerTemplateController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /schedule/planner-templates/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - - //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_PLANNER_TEMPLATE_DELETE, deleteAction); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/CouponPeriodControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/CouponPeriodControllerTest.java index d9f307c5b..82b593660 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/CouponPeriodControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/CouponPeriodControllerTest.java @@ -11,18 +11,9 @@ import java.time.LocalDate; class CouponPeriodControllerTest extends AbstractControllerTest { public static final String REST_URL = "/securities/coupon-periods/"; - /** - * {@link CouponPeriodController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /securities/coupon-periods/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE CouponPeriod couponPeriod = getCouponPeriod(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_CouponPeriod, couponPeriod, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/EquitySecurityControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/EquitySecurityControllerTest.java index 8c9c8e52f..2de69d006 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/EquitySecurityControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/EquitySecurityControllerTest.java @@ -15,14 +15,8 @@ import java.math.BigDecimal; class EquitySecurityControllerTest extends AbstractControllerTest { public static final String REST_URL = "/securities/equity-securities/"; - /** - * {@link EquitySecurityController#add(EquitySecurityNewAction)}
- * Тест проверяет получение сущности {@link EquitySecurityNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link EquitySecurityNewAction}:
- */ @Test void add() throws Exception { - //ARRANGE EquitySecurityNewAction equitySecurityNewAction = new EquitySecurityNewAction(); equitySecurityNewAction.setShareType("shType"); equitySecurityNewAction.setLotSize(BigDecimal.valueOf(120.33)); @@ -32,20 +26,12 @@ class EquitySecurityControllerTest extends AbstractControllerTest { equitySecurityNewAction.setInstrumentType("status T"); equitySecurityNewAction.setSecuritySymbol("symbol1"); equitySecurityNewAction.setLotSize(new BigDecimal("3.5")); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, equitySecurityNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_EQUITY_SECURITY_NEW, equitySecurityNewAction); } - /** - * {@link EquitySecurityController#update(Long, EquitySecurityUpdateAction)}
- * Тест проверяет получение сущности {@link EquitySecurityUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link EquitySecurityUpdateAction}:
- */ @Test void update() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); EquitySecurityUpdateAction equitySecurityUpdateAction = new EquitySecurityUpdateAction(); equitySecurityUpdateAction.setId(id); @@ -58,44 +44,25 @@ class EquitySecurityControllerTest extends AbstractControllerTest { equitySecurityUpdateAction.setSecuritySymbol("symbol1"); equitySecurityUpdateAction.setLotSize(new BigDecimal("3.5")); EquitySecurity equitySecurity = getEquitySecurity(id); - - //ACT and ASSERT checkUpdatingWithIdVolidationByRestApi(IMDGDistributedNames.Map_EquitySecurity, equitySecurity, REST_URL, equitySecurityUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_EQUITY_SECURITY_UPDATE, equitySecurityUpdateAction); } - /** - * {@link EquitySecurityController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /securities/equity-securities/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); EquitySecurity equitySecurity = getEquitySecurity(id); - - //ACT and ASSERT checkDeletingWithIdVolidationByRestApi(IMDGDistributedNames.Map_MoneyMarketSecurity, equitySecurity, REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_EQUITY_SECURITY_DELETE, deleteAction); } - /** - * {@link EquitySecurityController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /securities/equity-securities/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE EquitySecurity equitySecurity = getEquitySecurity(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_EquitySecurity, equitySecurity, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/FixedIncomeCashFlowControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/FixedIncomeCashFlowControllerTest.java index 31b58b92a..c4a06b73e 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/FixedIncomeCashFlowControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/FixedIncomeCashFlowControllerTest.java @@ -11,18 +11,9 @@ import java.time.LocalDate; class FixedIncomeCashFlowControllerTest extends AbstractControllerTest { public static final String REST_URL = "/securities/fixed-income-cash-flows/"; - /** - * {@link FixedIncomeCashFlowController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /securities/fixed-income-cash-flows/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE FixedIncomeCashFlow fixedIncomeCashFlow = getFixedIncomeCashFlow(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_FixedIncomeCashFlow, fixedIncomeCashFlow, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/FixedIncomeSecurityControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/FixedIncomeSecurityControllerTest.java index c03d5819d..b80446147 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/FixedIncomeSecurityControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/FixedIncomeSecurityControllerTest.java @@ -15,14 +15,8 @@ import java.math.BigDecimal; class FixedIncomeSecurityControllerTest extends AbstractControllerTest { public static final String REST_URL = "/securities/fixed-income-securities/"; - /** - * {@link FixedIncomeSecurityController#add(FixedIncomeSecurityNewAction)}
- * Тест проверяет получение сущности {@link FixedIncomeSecurityNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link FixedIncomeSecurityNewAction}:
- */ @Test void add() throws Exception { - //ARRANGE FixedIncomeSecurityNewAction fixedIncomeSecurityNewAction = new FixedIncomeSecurityNewAction(); fixedIncomeSecurityNewAction.setBondType("bType"); fixedIncomeSecurityNewAction.setLotSize(BigDecimal.valueOf(120.33)); @@ -32,20 +26,12 @@ class FixedIncomeSecurityControllerTest extends AbstractControllerTest { fixedIncomeSecurityNewAction.setInstrumentType("status T"); fixedIncomeSecurityNewAction.setSecuritySymbol("symbol1"); fixedIncomeSecurityNewAction.setLotSize(new BigDecimal("3.5")); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, fixedIncomeSecurityNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_FIXED_INCOME_SECURITY_NEW, fixedIncomeSecurityNewAction); } - /** - * {@link FixedIncomeSecurityController#update(Long, FixedIncomeSecurityUpdateAction)}
- * Тест проверяет получение сущности {@link FixedIncomeSecurityUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link FixedIncomeSecurityUpdateAction}:
- */ @Test void update() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); FixedIncomeSecurityUpdateAction fixedIncomeSecurityUpdateAction = new FixedIncomeSecurityUpdateAction(); fixedIncomeSecurityUpdateAction.setId(id); @@ -58,44 +44,25 @@ class FixedIncomeSecurityControllerTest extends AbstractControllerTest { fixedIncomeSecurityUpdateAction.setSecuritySymbol("symbol1"); fixedIncomeSecurityUpdateAction.setLotSize(new BigDecimal("3.5")); FixedIncomeSecurity fixedIncomeSecurity = getFixedIncomeSecurity(id); - - //ACT and ASSERT checkUpdatingWithIdVolidationByRestApi(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeSecurity, REST_URL, fixedIncomeSecurityUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_FIXED_INCOME_SECURITY_UPDATE, fixedIncomeSecurityUpdateAction); } - /** - * {@link FixedIncomeSecurityController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /securities/fixed-income-securities/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); FixedIncomeSecurity fixedIncomeSecurity = getFixedIncomeSecurity(id); - - //ACT and ASSERT checkDeletingWithIdVolidationByRestApi(IMDGDistributedNames.Map_MoneyMarketSecurity, fixedIncomeSecurity, REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_FIXED_INCOME_SECURITY_DELETE, deleteAction); } - /** - * {@link FixedIncomeSecurityController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /securities/fixed-income-securities/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE FixedIncomeSecurity fixedIncomeSecurity = getFixedIncomeSecurity(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_FixedIncomeSecurity, fixedIncomeSecurity, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/MoneyMarketSecurityControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/MoneyMarketSecurityControllerTest.java index f79f0469e..1dca32041 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/MoneyMarketSecurityControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/MoneyMarketSecurityControllerTest.java @@ -16,14 +16,8 @@ import java.time.LocalDate; class MoneyMarketSecurityControllerTest extends AbstractControllerTest { public static final String REST_URL = "/securities/money-securities/"; - /** - * {@link MoneyMarketSecurityController#add(MoneyMarketSecurityNewAction)}
- * Тест проверяет получение сущности {@link MoneyMarketSecurityNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link MoneyMarketSecurityNewAction}:
- */ @Test void add() throws Exception { - //ARRANGE MoneyMarketSecurityNewAction moneyMarketSecurityNewAction = new MoneyMarketSecurityNewAction(); moneyMarketSecurityNewAction.setStartDate(LocalDate.now()); moneyMarketSecurityNewAction.setEndDate(LocalDate.now()); @@ -41,20 +35,12 @@ class MoneyMarketSecurityControllerTest extends AbstractControllerTest { moneyMarketSecurityNewAction.setFullNameEng("Short LLC"); moneyMarketSecurityNewAction.setIsin("ISIN"); moneyMarketSecurityNewAction.setWorkflowStatus("ACTV"); - - //ACT and ASSERT checkAddingByRestApi(REST_URL, moneyMarketSecurityNewAction); checkSendedMessegeFromKafka(Consts.DESTINATION_MONEY_MARKET_SECURITY_NEW, moneyMarketSecurityNewAction); } - /** - * {@link MoneyMarketSecurityController#update(Long, MoneyMarketSecurityUpdateAction)}
- * Тест проверяет получение сущности {@link MoneyMarketSecurityUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link MoneyMarketSecurityUpdateAction}:
- */ @Test void update() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); MoneyMarketSecurityUpdateAction moneyMarketSecurityUpdateAction = new MoneyMarketSecurityUpdateAction(); moneyMarketSecurityUpdateAction.setId(id); @@ -74,44 +60,25 @@ class MoneyMarketSecurityControllerTest extends AbstractControllerTest { moneyMarketSecurityUpdateAction.setIsin("ISIN"); moneyMarketSecurityUpdateAction.setWorkflowStatus("ACTV"); MoneyMarketSecurity moneyMarketSecurity = getMoneyMarketSecurity(id); - - //ACT and ASSERT checkUpdatingWithIdVolidationByRestApi(IMDGDistributedNames.Map_MoneyMarketSecurity, moneyMarketSecurity, REST_URL, moneyMarketSecurityUpdateAction, id); checkSendedMessegeFromKafka(Consts.DESTINATION_MONEY_MARKET_SECURITY_UPDATE, moneyMarketSecurityUpdateAction); } - /** - * {@link MoneyMarketSecurityController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /securities/money-securities/{@link Long}: - 0L
- */ @Test void delete() throws Exception { - //ARRANGE long id = currentId.getAndIncrement(); CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); MoneyMarketSecurity moneyMarketSecurity = getMoneyMarketSecurity(id); - - //ACT and ASSERT checkDeletingWithIdVolidationByRestApi(IMDGDistributedNames.Map_MoneyMarketSecurity, moneyMarketSecurity, REST_URL, id); checkSendedMessegeFromKafka(Consts.DESTINATION_MONEY_MARKET_SECURITY_DELETE, deleteAction); } - /** - * {@link MoneyMarketSecurityController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /securities/money-securities/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE MoneyMarketSecurity moneyMarketSecurity = getMoneyMarketSecurity(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_MoneyMarketSecurity, moneyMarketSecurity, REST_URL); } diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityControllerTest.java index 0af66e804..2ce6507cd 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/securities/SecurityControllerTest.java @@ -8,15 +8,8 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; class SecurityControllerTest extends AbstractControllerTest { public static final String REST_URL = "/securities/"; - /** - * {@link SecurityController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /securities/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Security security = new Security(); security.setId(currentId.get()); security.setInstrumentType("name"); @@ -28,8 +21,6 @@ class SecurityControllerTest extends AbstractControllerTest { security.setSecuritySymbol("name"); security.setWorkflowStatus("name"); clearAll(IMDGDistributedNames.Map_MoneyMarketSecurity, Security.class); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_MoneyMarketSecurity, security, REST_URL); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/user/UserControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/user/UserControllerTest.java index 015b40266..1e62b10b3 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/user/UserControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/user/UserControllerTest.java @@ -23,39 +23,20 @@ import static ru.spcex.clearing.test.json.JsonUtil.readValue; class UserControllerTest extends AbstractControllerTest { public static final String REST_URL = "/users/"; - /** - * {@link UserController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /users/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE User user = getTestUser(currentId.getAndIncrement(), "some name"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_User, user, REST_URL); } - /** - * {@link UserController#getId()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /users/get-my-id/
- * Ответ CommonGetAllResponse
- */ @Test void getId() throws Exception { - //ARRANGE Long id = currentId.getAndIncrement(); String identifier = "usersIdentifier"; setUserNameInMockSecurityContextAndMapUser(identifier, id); - - //ACT MvcResult mvcResult = perform(MockMvcRequestBuilders.get(REST_URL + "get-my-id")) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andReturn(); @@ -65,7 +46,6 @@ class UserControllerTest extends AbstractControllerTest { @Test void update() throws Exception { - //ARRANGE Long id = currentId.getAndIncrement(); String identifier = "identifier"; diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/user/UserRoleSessionControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/user/UserRoleSessionControllerTest.java index 4c4702db5..f5e5f148b 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/user/UserRoleSessionControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/user/UserRoleSessionControllerTest.java @@ -8,23 +8,14 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; class UserRoleSessionControllerTest extends AbstractControllerTest { public static final String REST_URL = "/user-role-sessions/"; - /** - * {@link UserRoleSessionController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /user-role-sessions/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE UserRoleSession userRoleSession = new UserRoleSession(); userRoleSession.setId(currentId.getAndIncrement()); userRoleSession.setUserRole("identifier"); userRoleSession.setStatus("some name"); userRoleSession.setCompanyId(currentId.get()); userRoleSession.setUserId(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_UserRoleSession, userRoleSession, REST_URL); } 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 874338a6d..b05831b67 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 @@ -21,30 +21,14 @@ import static ru.spcex.clearing.test.json.JsonUtil.writeValue; class StatementControllerTest extends AbstractControllerTest { public static final String REST_URL = "/statements/"; - /** - * {@link StatementController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /utilities/key-rates/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE Statement statement = getStatment(currentId.get()); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_Statement, statement, REST_URL); } - /** - * {@link StatementController#getById(Long)}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /statements/{@link Long}: - 0L
- * Ответ BankAccountBackendGetById
- */ @Test void getById() throws Exception { - //ARRANGE Statement existStatement = getStatment(currentId.get()); Imdg serviceTestImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); @@ -53,12 +37,9 @@ class StatementControllerTest extends AbstractControllerTest { CommonGetByIdResponse response = new CommonGetByIdResponse(); Map extractedByMeta = responseFactory.responseFromObject(existStatement); response.fromEntity(extractedByMeta); - - //ACT perform(MockMvcRequestBuilders.get(REST_URL + existStatement.getId()) .contentType(MediaType.APPLICATION_JSON)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) .andExpect(content().json(writeValue(response))); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/UserSettingsControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/UserSettingsControllerTest.java index a57ace3b2..bafef175b 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/UserSettingsControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/UserSettingsControllerTest.java @@ -10,40 +10,23 @@ import ru.spcex.clearing.platform.messaging.domain.Consts; class UserSettingsControllerTest extends AbstractControllerTest { public static final String REST_URL = "/utilities/user-settings/"; - /** - * {@link UserSettingsController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /utilities/user-settings/
- * Ответ CommonGetAllResponse
- */ @Test void getAll() throws Exception { - //ARRANGE UserSettings userSettings = new UserSettings(); userSettings.setId(currentId.get()); - userSettings.setUserId(currentId.get()); // отдаются по userId CLS-64, todo в тесте null + userSettings.setUserId(currentId.get()); userSettings.setJson("json"); userSettings.setVersion("version"); - - //ACT and ASSERT checkGettingAllFromRestApi(IMDGDistributedNames.Map_UserSettings, userSettings, REST_URL); } - /** - * {@link UserSettingsController#update(UserSettingsUpdateAction)}
- * Тест проверяет получение сущности {@link UserSettingsUpdateAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link UserSettingsUpdateAction}:
- */ @Test void update() throws Exception { - //ARRANGE long id = currentId.get(); String identifier = "identifierUserSettings"; UserSettingsUpdateAction userSettingsUpdateAction = new UserSettingsUpdateAction(); userSettingsUpdateAction.setUserId(id); userSettingsUpdateAction.setVersion("name"); - - //ACT and ASSERT setUserNameInMockSecurityContextAndMapUser(identifier, id); checkUpdatingWithoutIdByRestApi(REST_URL, userSettingsUpdateAction); userSettingsUpdateAction.json = "null"; diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/response/cud/QueueSuccessResponseTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/response/cud/QueueSuccessResponseTest.java index 41156093c..b590d4dcc 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/response/cud/QueueSuccessResponseTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/response/cud/QueueSuccessResponseTest.java @@ -3,7 +3,6 @@ package ru.spcex.clearing.backendapi.controller.response.cud; import com.fasterxml.jackson.annotation.JsonProperty; import ru.spcex.clearing.platform.messaging.domain.ActionType; -//пришлось дублировать этот класс чтобы не менять оригинал public class QueueSuccessResponseTest extends QueueSuccessResponse { @JsonProperty diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/meta/GetResponseFactoryTestConfiguration.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/meta/GetResponseFactoryTestConfiguration.java index d7937691c..8ec214f3e 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/meta/GetResponseFactoryTestConfiguration.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/meta/GetResponseFactoryTestConfiguration.java @@ -24,16 +24,12 @@ public class GetResponseFactoryTestConfiguration { return new PathResource(path); } - // @Value("file:${spring.config.location}/meta.json") -// private Resource meta; -// @Bean("metaJsonTestRaw") public String metaJsonRawString(@Qualifier("metaJsonTestPath") Resource meta) throws IOException { if (!meta.isReadable()) throw new IllegalStateException("cannot read meta.json from meta " + meta.getFile()); return Files.readString(meta.getFile().toPath()); } - // @Autowired @Bean("metaJsonTest") public MetaServer metaServer(@Qualifier("metaJsonTestRaw") String metaJson) throws JsonProcessingException { diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/service/validation/ActionMetaValidationTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/service/validation/ActionMetaValidationTest.java index 568ea0fd8..3bcf03262 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/service/validation/ActionMetaValidationTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/service/validation/ActionMetaValidationTest.java @@ -13,10 +13,8 @@ import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.backendapi.meta.GetResponseFactoryTestConfiguration; import ru.spcex.clearing.backendapi.meta.MetaServer; import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.validation.IValidator; -import java.util.ArrayList; import java.util.Collection; import static org.junit.jupiter.api.Assertions.*; @@ -41,7 +39,7 @@ class ActionMetaValidationTest { } { IAction action = new CommonDeleteAction(); - assertFalse(action.validate().isEmpty()); // стандартный валидатор - требуется id + assertFalse(action.validate().isEmpty()); IValidator v = metaValidator.getValidator(null, action); Collection vResult = v.validateAll(); @@ -50,7 +48,7 @@ class ActionMetaValidationTest { { CommonDeleteAction action = new CommonDeleteAction(); action.setId(123L); - assertTrue(action.validate().isEmpty()); // стандартный валидатор - требуется id + assertTrue(action.validate().isEmpty()); IValidator v = metaValidator.getValidator(null, action); Collection vResult = v.validateAll(); 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 612692cad..ceca40175 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 @@ -13,10 +13,8 @@ import java.util.Map; public class SdfExecutorsConfig { @Bean("sdfExecutors") - public Map> executorsMap(//Sdf09Executor sdf09Executor, - Sdf16Executor sdf16Executor) { + public Map> executorsMap(Sdf16Executor sdf16Executor) { Map> executors = new HashMap<>(); -// 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 4434d8165..dfa52325b 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 @@ -37,9 +37,6 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); } - /** - * чтобы во всех валидаторах был один экземпляр Imdg - */ private Imdg getImdg(String key) { return imdgs.get(key); } @@ -76,7 +73,6 @@ public class ValidationConfig { Sdf09ValidationRule.CompanyPresent, Sdf09ValidationRule.AccountPresent, MarketIsUValidationRule.instance - //,AccountBalanceFreeAmountEnough.instance(SDf09.class) ); }; } diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java index bc7a48883..854c14a10 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java @@ -55,7 +55,6 @@ public class AccountBalanceService { if (validationError.isPresent()) return new AccountResult(validationError.get()); Account account = validator.getStored(ValidationStored.Account); Company company = validator.getStored(ValidationStored.Company); - //которой accountBalance.accountId=statement.accountId и accountBalance.companyId=statement.companyId: AccountBalance accountBalance = accountBalanceImdg.getFirstObjectByFieldValues( Map.of("accountId", accountId, "companyId", addresseeId) @@ -79,10 +78,9 @@ public class AccountBalanceService { return new AccountResult(accountBalance); } else { accountBalance.setUpdated(Instant.now()); - accountBalance.setAccountId(accountId);//+ - accountBalance.setAccountType(account.getAccountType());//++ + accountBalance.setAccountId(accountId); + accountBalance.setAccountType(account.getAccountType()); accountBalance.setAccount(account.getAccount()); -// accountBalance.setOpenBalanceAmount();// на базе изменения statement по sDf16/sDf09): не меняется. accountBalance.setFreeBalanceAmount(plus(accountBalance.getFreeBalanceAmount(), amount)); accountBalance.setChangeBalanceAmount(plus(accountBalance.getChangeBalanceAmount(), amount)); accountBalance.setCreditAmount(plus(accountBalance.getCreditAmount(), amount)); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountResult.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountResult.java index 0e38e0dde..879f4d866 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountResult.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountResult.java @@ -4,7 +4,7 @@ import ru.clearing.classes.statics.data.account.AccountBalance; import ru.spcex.platform.utils.enumeration.EnumMessage; public class AccountResult { - private EnumMessage error; //if was + private EnumMessage error; private AccountBalance account; public AccountResult(EnumMessage validationError) { 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 61b4baac9..09211bb48 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,7 @@ 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()); Instant now = Instant.now(); -// 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 b52d2ab6c..e69de29bb 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,176 +0,0 @@ -//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 01ec2cb32..40fb4a859 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 @@ -79,9 +79,6 @@ public class Sdf16Executor extends AbstractExecutor { 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(sdfItem.getId(), sdfItem.getAccount(), company.getId())); log.info("account {} for sdf01.id={} not found - send request for creation", sdfItem.getAccount(), sdfItem.getId()); continue; @@ -106,10 +103,9 @@ public class Sdf16Executor extends AbstractExecutor { sdf17Imdg.insert(sdfNew); statement.setOutSDfId(sdfNew.getId()); AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), - statement.getAccountId(), statement.getAmount(), null /*todo statement.getCashMovementCurrencyCode() */); + statement.getAccountId(), statement.getAmount(), null); if (accountResult.getError() != null) { statement.setErrorCodeId(accountResult.getError().getSubject().getId()); - //todo аполнение statement.setErrorTextId(errorResolver.resolve(accountResult.getError())); } else { accountBalanceImdg.insert(accountResult.getAccount()); statement.setOperationStatus(OperationStatus.Executed.getKey()); 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 0de34e4b0..2e438f8d1 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 @@ -40,9 +40,6 @@ public class StatementService extends QueueConsumer implements InitializingBean @Override public void afterPropertiesSet() throws Exception { -// callback(StatementRequest.class) -// .setConsumer(this::process) -// .forDestination(Consts.STATEMENT_PROCESS, callbacks::put); callback(AccountBalanceClearingRequest.class) .setConsumer(this::accountBalanceClearingUpdate) .forDestination(Consts.BALANCE_ACCOUNT_UPDATE, callbacks::put); 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 7f1d910a9..7d4dbe2a5 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 @@ -1,23 +1,18 @@ package ru.spcex.clearing.balance.validation; -import ru.clearing.classes.statics.data.account.Account; 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.spcex.clearing.balance.errors.BalanceError; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.platform.enumeration.AccountType; -import ru.spcex.platform.enumeration.CompanySymbol; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.validation.IValidationRule; -import java.math.RoundingMode; -import java.util.Map; import java.util.Optional; -@Deprecated // связан с Sdf09Executor , он в переработке или удалении. +@Deprecated public enum Sdf09ValidationRule implements IValidationRule> { CompanyPresent() { @Override @@ -25,48 +20,20 @@ public enum Sdf09ValidationRule implements IValidationRule companySymbolImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); -// 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(); } }, AccountPresent() { @Override public Optional validate(ImdgValidationContext context) { SDf09 sdf09 = context.getValidatedObject(); -// 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(); } }, Market() { @Override public Optional validate(ImdgValidationContext context) { SDf09 sdf09 = context.getValidatedObject(); -// 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 5e08f0f09..31e6cb375 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 @@ -30,8 +30,7 @@ import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFields @ContextConfiguration(classes = { AccountBalanceService.class, Sdf08Service.class, -// Sdf09Executor.class, - Sdf16Executor.class, +Sdf16Executor.class, StatementService.class, LoggingService.class, MessagesConfig.class, @@ -136,19 +135,4 @@ public abstract class AbstractServiceTest { accountBalance.setFullName(company.getFullName()); return accountBalance; } -// -// protected SDf01 getTestSdf01(long id, long generationId) { -// LocalDate date = LocalDate.now(); -// SDf01 sdf01 = new SDf01(); -// sdf01.setId(id); -// sdf01.setGenerationId(generationId); -// sdf01.setMarket("U"); -// sdf01.setDeal(deal); -// sdf01.setAccount(acc); -// sdf01.setCurr_code("RUR"); -// sdf01.setDat(date.format(datFormatter)); -// sdf01.setAcc_type("A"); -// sdf01.setRemainder(amountNew.toString()); -// return sdf01; -// } } diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AccountBalanceServiceTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AccountBalanceServiceTest.java index b5877d2a3..bb569a074 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AccountBalanceServiceTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AccountBalanceServiceTest.java @@ -40,15 +40,6 @@ class AccountBalanceServiceTest extends AbstractServiceTest { super.init(); } - /** - * {@link AccountBalanceService#createAccountBalance(Long addresseeId, Long accountId, BigDecimal amount, String cashMovementCurrencyCode)}
- * Тест проверяет генерацию сущности {@link AccountResult}
- * Входные параметры:
- * addresseeId - {@link Company#id}
- * accountId - {@link Account#id}
- * amount - сумма
- * cashMovementCurrencyCode - код
- */ @Test void createAccountBalance() { Company company = getTestCompany(); @@ -82,18 +73,8 @@ class AccountBalanceServiceTest extends AbstractServiceTest { ACCOUNT_BALANCE_MATCHER.assertMatch(resultUpdate, predictableUpdateResult); } - /** - * {@link AccountBalanceService#createAccountBalance(Long addresseeId, Long accountId, BigDecimal amount, String cashMovementCurrencyCode)}
- * Тест проверяет валидацию
- * Входные параметры:
- * addresseeId - {@link Company#id}
- * accountId - {@link Account#id}
- * amount - сумма
- * cashMovementCurrencyCode - код
- */ @Test void validatedCreateAccountBalance() { - //CompanyNotFound AccountResult predictableResult; predictableResult = new AccountResult(new EnumMessage(BalanceError.CompanyNotFound)); Company company = getTestCompany(); @@ -104,8 +85,6 @@ class AccountBalanceServiceTest extends AbstractServiceTest { result = accountBalanceService.createAccountBalance(null, accountIdNew, amountNew, cashMovementCurrencyCode); ACCOUNT_BALANCE_MATCHER.assertMatch(result, predictableResult); - - //AccountNotPresent accountType=null companyImdg.insert(company); Account account = new Account(); account.setId(accountIdNew); @@ -115,8 +94,6 @@ class AccountBalanceServiceTest extends AbstractServiceTest { result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCode); ACCOUNT_BALANCE_MATCHER.assertMatch(result, predictableResult); - - //AccountNotPresent id=null account.setId(null); account.setAccountType(AccountType.Clrn.getKey()); account.setStatus(Status.Active.getKey()); @@ -125,8 +102,6 @@ class AccountBalanceServiceTest extends AbstractServiceTest { result = accountBalanceService.createAccountBalance(addresseeIdNew, accountIdNew, amountNew, cashMovementCurrencyCode); ACCOUNT_BALANCE_MATCHER.assertMatch(result, predictableResult); - - //AccountNotActive accountStatus=null account.setId(accountIdNew); account.setAccountType(AccountType.Clrn.getKey()); account.setStatus(null); diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf08ServiceTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf08ServiceTest.java index 26afe1433..d2ffe8fcb 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf08ServiceTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf08ServiceTest.java @@ -27,7 +27,6 @@ import static org.mockito.Mockito.verify; import static ru.spcex.clearing.balance.utils.MockKafkaUtils.addRecordToKafka; class Sdf08ServiceTest extends AbstractServiceTest { - // private static final MatcherFactory.Matcher SDF_08_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id"); private static final String TOPIC = Task.getAllBalance.topic(); private static final int PARTITION = 1; @Autowired @@ -44,12 +43,6 @@ class Sdf08ServiceTest extends AbstractServiceTest { mockConsumer = (MockConsumer) sdf08Service.getConsumer(); } - /** - * {@link Sdf08Service}
- * Тест проверяет генерацию сущностей {@link RequestInfo}
- * Входные параметры:
- * {@link BaseRequest} - new BaseRequest<>()
- */ @Test void newSDf08() throws InterruptedException { BaseRequest baseNewRequest = new BaseRequest<>(); @@ -64,8 +57,6 @@ class Sdf08ServiceTest extends AbstractServiceTest { } addRecordToKafka(mockConsumer, TOPIC, PARTITION, 0, jsonBaseNewRequest); - - //waiting for kafka producer send message (finale event) verify(producer, timeout(30_000L).times(1)) .send(producerRecord.capture()); 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 8e71fcc10..e69de29bb 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 +0,0 @@ -//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 0f79c836e..80d2752ed 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 @@ -59,25 +59,8 @@ class Sdf16ExecutorTest extends AbstractServiceTest { statementRequest = new StatementRequest(); } - /** - * {@link Sdf16Executor#execute(Collection collection, StatementRequest statementRequest)}
- * Тест проверяет генерацию сущностей {@link Result}, {@link Statement}, {@link SDf17}
- * Входные параметры:
- * accountId - {@link StatementRequest}: new StatementRequest()
- * addresseeId - {@link Collection}
- * addresseeId - {@link SDf16}
- * {@link SDf16#market} - "U"
- * {@link SDf16#account} - "123456789"
- * {@link SDf16#inn} - 987654321
- * {@link SDf16#sum} - 1700
- * {@link SDf16#type} - "t"
- * {@link SDf16#bic} - new BigDecimal(1000389238)
- * {@link SDf16#spec} - "134"
- * {@link SDf16#number} - new BigDecimal(234232343)
- */ @Test void execute() { - //check create statement, SDf17 and AccountBalance Company company = getTestCompany(); companyMap.put(addresseeIdNew, company); @@ -113,25 +96,8 @@ class Sdf16ExecutorTest extends AbstractServiceTest { ACCOUNT_BALANCE_MATCHER.assertMatch(resultAccountBalance, predictableNewResult.getAccount()); } - /** - * {@link Sdf16Executor#execute(Collection collection, StatementRequest statementRequest)}
- * Тест проверяет валидацию
- * Входные параметры:
- * accountId - {@link StatementRequest}: new StatementRequest()
- * addresseeId - {@link Collection}
- * addresseeId - {@link SDf16}
- * {@link SDf16#market} - "U"
- * {@link SDf16#account} - "123456789"
- * {@link SDf16#inn} - 987654321
- * {@link SDf16#sum} - 1700
- * {@link SDf16#type} - "t"
- * {@link SDf16#bic} - new BigDecimal(1000389238)
- * {@link SDf16#spec} - "134"
- * {@link SDf16#number} - new BigDecimal(234232343)
- */ @Test void validatedExecute() { - //CompanyNotFound companyMap.delete(addresseeIdNew); checkError(new EnumMessage(BalanceError.CompanyNotFound)); @@ -144,45 +110,31 @@ class Sdf16ExecutorTest extends AbstractServiceTest { companySymbolsMap.put(addresseeIdNew, companySymbols); sdf16.setInn(null); checkError(new EnumMessage(BalanceError.CompanyNotFound)); - - //AccountNotPresent sdf16.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); sdf16.setAccount(null); checkErrorAccountNotPresent(company); - - //WrongMarket sdf16.setAccount(acc); sdf16.setMarket(null); checkError(new EnumMessage(BalanceError.WrongMarket)); - - //BalanceNotEnough sdf16.setMarket("U"); sdf16.setSum(null); checkError(new EnumMessage(BalanceError.BalanceNotEnough)); - - //BalanceNotEnough sdf16.setSum(new BigDecimal(-1700)); AccountBalance balance = accountBalanceImdg.getFirstObjectByFieldValues(Map.of("account", sdf16.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)); diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/utils/ImapEvent.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/utils/ImapEvent.java index 129e2178b..2c08049ac 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/utils/ImapEvent.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/utils/ImapEvent.java @@ -39,14 +39,13 @@ public class ImapEvent { } public void waitWhenHappened() throws InterruptedException { - //running timer task as daemon thread Timer timer = new Timer(true); timer.scheduleAtFixedRate(new TimerTask() { boolean secondRan; @Override public void run() { - checkEventHappened.set(secondRan);//если что-то пойдет не так не тормозить основной поток + checkEventHappened.set(secondRan); secondRan = true; } }, 0, 20 * 1000); @@ -55,7 +54,6 @@ public class ImapEvent { checkEventHappened.wait(100); } } - //preparing hazelcastImdgProvider for next test iMap.removeEntryListener(listenerAdding); iMap.removeEntryListener(listenerUpdating); iMap.removeEntryListener(listenerRemoving); diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/utils/MatcherFactory.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/utils/MatcherFactory.java index a18ccb4f0..3243818e8 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/utils/MatcherFactory.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/utils/MatcherFactory.java @@ -4,11 +4,6 @@ import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; -/** - * Factory for creating test matchers. - *

- * Comparing actual and expected objects via AssertJ - */ public class MatcherFactory { public static Matcher usingIgnoringFieldsComparator(String... fieldsToIgnore) { diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java index a579141e0..faf8f249f 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java @@ -12,14 +12,13 @@ import java.math.BigDecimal; import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertTrue; -@Deprecated // sDf16 was deleted +@Deprecated class Sdf16ValidationRuleTest { @Test void values() { ImdgValidationContext ctx = new ImdgValidationContext<>(); SDf16 object = new SDf16(); -// object.setBic(BigDecimal.valueOf(1000004L)); object.setInn(BigDecimal.valueOf(1000024L)); ctx.setValidatedObject(object); ctx.addImdg(IMDGDistributedNames.Map_CompanySymbols, makeTestMap()); diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/ConstSerializable.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/ConstSerializable.java index bc85615b1..760bc59e3 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/ConstSerializable.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/ConstSerializable.java @@ -1,8 +1,5 @@ package ru.clearing.classes; -/** - * В случае любых изменений модуля classes необходимо изменить serialVersionUID++ - */ public interface ConstSerializable { long serialVersionUID = 293236453421L; } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/objects/BusinessEvent.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/objects/BusinessEvent.java index 64a7508b4..222b9a0ff 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/objects/BusinessEvent.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/objects/BusinessEvent.java @@ -4,14 +4,11 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * Журнал изменения таблиц с BusinessObject - */ -public abstract class BusinessEvent extends SpcexObjectBase { +public abstract class BusinessEvent extends SpcexObjectBase { private Instant eventTime; private Long userId; - private String eventType; // varchar(4) + private String eventType; public Instant getEventTime() { return eventTime; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/objects/BusinessObject.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/objects/BusinessObject.java index 5e943cf0f..39966f941 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/objects/BusinessObject.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/objects/BusinessObject.java @@ -5,9 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * UUID - Long based with field object - */ public abstract class BusinessObject extends SpcexObjectBase { static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/Account.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/Account.java index 49143d7d8..b1d4759a1 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/Account.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/Account.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -/** - * Счета - *

- * DB table: ACCOUNT - **/ public class Account extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountBalance.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountBalance.java index ab09d7140..eed70bd1d 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountBalance.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountBalance.java @@ -6,11 +6,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Счета - *

- * DB table: ACCOUNT_BALANCE - **/ @Deprecated public class AccountBalance extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountBalanceHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountBalanceHistory.java index c6782567a..da98a31e3 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountBalanceHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountBalanceHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Счета - *

- * DB table: ACCOUNT_BALANCE_HISTORY - **/ @Deprecated public class AccountBalanceHistory extends BusinessEvent { @Serial diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountHistory.java index fd3d6595c..8971d6006 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/AccountHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Счета - * - * DB table: ACCOUNT_HISTORY - **/ public class AccountHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccount.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccount.java index 57df0c509..b3a83a0c7 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccount.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccount.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * Банковские реквизиты для перечисления денежных средств - *

- * DB table: BANK_ACCOUNT - **/ public class BankAccount extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccountHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccountHistory.java index 6fcc3e750..65700fcfb 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccountHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccountHistory.java @@ -1,12 +1,9 @@ package ru.clearing.classes.statics.data.account; + import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Банковские реквизиты для перечисления денежных средств - * - * DB table: BANK_ACCOUNT_UPDATE - **/ public class BankAccountHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClearingAccount.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClearingAccount.java index 68fdebd2d..3e02c6a70 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClearingAccount.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClearingAccount.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * Клиринговые счета - *

- * DB table: CLEARING_ACCOUNT - **/ public class ClearingAccount extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClearingAccountHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClearingAccountHistory.java index 93c1128cc..5b0085634 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClearingAccountHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClearingAccountHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Клиринговые счета - * - * DB table: CLEARING_ACCOUNT_UPDATE - **/ public class ClearingAccountHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClientCode.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClientCode.java index af4a3890d..45d222413 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClientCode.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClientCode.java @@ -3,13 +3,6 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -import java.time.Instant; - -/** - * Коды клиентов компании - *

- * DB table: CLIENT_CODE - **/ public class ClientCode extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClientCodeHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClientCodeHistory.java index 7b6df9819..2a72e5d60 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClientCodeHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/ClientCodeHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Коды клиентов компании - *

- * DB table: CLIENT_CODE_HISTORY - **/ public class ClientCodeHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/DepoAccount.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/DepoAccount.java index e1f8bc73a..00a66c068 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/DepoAccount.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/DepoAccount.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * Депозитарные счета - *

- * DB table: DEPO_ACCOUNT - **/ public class DepoAccount extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/DepoAccountHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/DepoAccountHistory.java index eb14cf879..a1175df18 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/DepoAccountHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/DepoAccountHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Депозитарные счета - *

- * DB table: DEPO_ACCOUNT_HISTORY - **/ public class DepoAccountHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/InformationAccount.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/InformationAccount.java index 0c369fc5c..d96ef431e 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/InformationAccount.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/InformationAccount.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * Информационные счета - *

- * DB table: INFORMATION_ACCOUNT - **/ public class InformationAccount extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/InformationAccountHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/InformationAccountHistory.java index 24cd21878..87191edae 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/InformationAccountHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/InformationAccountHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.account; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Информационные счета - * - * DB table: INFORMATION_ACCOUNT_UPDATE - **/ public class InformationAccountHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/ClearingMemberCategory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/ClearingMemberCategory.java index f009fa5db..f8ff8ee1e 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/ClearingMemberCategory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/ClearingMemberCategory.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.company; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * Категории участника клиринга - *

- * DB table: CLEARING_MEMBER_CATEGORY - **/ public class ClearingMemberCategory extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/ClearingMemberCategoryHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/ClearingMemberCategoryHistory.java index 6260aa3d4..59158980a 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/ClearingMemberCategoryHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/ClearingMemberCategoryHistory.java @@ -5,9 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * DB: CLEARING_MEMBER_CATEGORY_HISTORY - */ public class ClearingMemberCategoryHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/Company.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/Company.java index 9bbc2ee44..f5938e172 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/Company.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/Company.java @@ -6,9 +6,6 @@ import ru.clearing.classes.statics.data.profile.CompanyInfo; import java.io.Serial; -/** - * DB: COMPANY - */ public class Company extends BusinessObject { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; @@ -16,7 +13,7 @@ public class Company extends BusinessObject { private String tradingCode; private String clearingCode; private String registrationCode; - private String workflowStatus; // WorkflowStatusDictionary + private String workflowStatus; private String shortName; private String fullName; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanyHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanyHistory.java index 6c412b87f..e1b8d064a 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanyHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanyHistory.java @@ -5,9 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * DB: COMPANY_UPDATE - */ public class CompanyHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanyRoleSet.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanyRoleSet.java index 7823d8016..e44d38eb2 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanyRoleSet.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanyRoleSet.java @@ -3,9 +3,6 @@ package ru.clearing.classes.statics.data.company; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * DB: COMPANY_ROLE_SET - */ public class CompanyRoleSet extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanySymbols.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanySymbols.java index 4ae40a8d0..b220f8628 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanySymbols.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanySymbols.java @@ -3,14 +3,11 @@ package ru.clearing.classes.statics.data.company; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * DB: COMPANY_SYMBOLS - */ public class CompanySymbols extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; private Long companyId; - private String companySymbol; // ref CHAR(4) + private String companySymbol; private String companySymbolValue; public Long getCompanyId() { diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanySymbolsHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanySymbolsHistory.java index 97e9babf0..4110eabef 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanySymbolsHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/CompanySymbolsHistory.java @@ -5,9 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * DB: COMPANY_SYMBOLS_HISTORY - */ public class CompanySymbolsHistory extends BusinessEvent { @Serial diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/relation/Relation.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/relation/Relation.java index 89e288884..263e43ee5 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/relation/Relation.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/relation/Relation.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.company.relation; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -/** - * Договорные отношения - *

- * DB table: RELATION - **/ public class Relation extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/relation/RelationHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/relation/RelationHistory.java index 5d7023e47..2f6d277fe 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/relation/RelationHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/company/relation/RelationHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.company.relation; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * ИЗменение состояния объекта Договорные отношения - * - * DB table: RELATION_HISTORY - **/ public class RelationHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDepositHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDepositHistory.java index 784900a03..697d5dbd7 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDepositHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionDepositHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Сделки - *

- * DB table: EXECUTION_DEPOSIT_HISTORY - **/ public class ExecutionDepositHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java index 7306327de..9d277e43e 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFond.java @@ -7,11 +7,6 @@ import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; -/** - * Сделки на Фондовой секции - *

- * DB table: EXECUTION_FOND - **/ public class ExecutionFond extends ExecutionCommon { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFondHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFondHistory.java index bdae32cd1..1e56661f5 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFondHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/execution/ExecutionFondHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Сделки на Фондовой секции - *

- * DB table: EXECUTION_FOND_HISTORY - **/ public class ExecutionFondHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/CouponPeriod.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/CouponPeriod.java index 9553f38e8..85812bd99 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/CouponPeriod.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/CouponPeriod.java @@ -6,11 +6,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Купонное расписание - * - * DB table: COUPON_PERIOD - **/ public class CouponPeriod extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/CouponPeriodHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/CouponPeriodHistory.java index a06c672e7..e61d81682 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/CouponPeriodHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/CouponPeriodHistory.java @@ -5,9 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * DB: COUPON_PERIOD_HISTORY - */ public class CouponPeriodHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/EquitySecurity.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/EquitySecurity.java index 36bd174db..aea246aed 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/EquitySecurity.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/EquitySecurity.java @@ -6,12 +6,6 @@ import ru.clearing.classes.statics.data.security.Security; import java.math.BigDecimal; -/** - * Equity - * Акции - * - * DB table: EQUITY_SECURITY - **/ public class EquitySecurity extends Security { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/FixedIncomeCashFlow.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/FixedIncomeCashFlow.java index 03e32e3e4..5917a9366 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/FixedIncomeCashFlow.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/FixedIncomeCashFlow.java @@ -6,11 +6,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Выплаты по купонам - *

- * DB table: FIXED_INCOME_CASH_FLOW - **/ public class FixedIncomeCashFlow extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/FixedIncomeSecurity.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/FixedIncomeSecurity.java index 4a6261aa7..10c6537ef 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/FixedIncomeSecurity.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/instrument/issue/FixedIncomeSecurity.java @@ -6,12 +6,6 @@ import ru.clearing.classes.statics.data.security.Security; import java.math.BigDecimal; import java.time.LocalDate; -/** - * FixedIncome - * Облигации - * - * DB table: FIXED_INCOME_SECURITY - **/ public class FixedIncomeSecurity extends Security { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/journal/InDocumentJournal.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/journal/InDocumentJournal.java index 1a73b72ab..a770da349 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/journal/InDocumentJournal.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/journal/InDocumentJournal.java @@ -7,11 +7,6 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalTime; -/** - * Журнал входящих документов - *

- * DB table: IN_DOCUMENT_JOURNAL - **/ public class InDocumentJournal extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/journal/OutDocumentJournal.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/journal/OutDocumentJournal.java index e1a2930c8..39d78eb63 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/journal/OutDocumentJournal.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/journal/OutDocumentJournal.java @@ -7,11 +7,6 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalTime; -/** - * Журнал исходящих документов - *

- * DB table: OUT_DOCUMENT_JOURNAL - **/ public class OutDocumentJournal extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/messages/ErrorText.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/messages/ErrorText.java index 3428382c7..540bbee98 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/messages/ErrorText.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/messages/ErrorText.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.time.LocalDate; -/** - * Полные тексты ошибок - *

- * DB table: ERROR_TEXT - **/ public class ErrorText extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/CurrencyHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/CurrencyHistory.java index 4cd3ad3f0..42ba00333 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/CurrencyHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/CurrencyHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.misc; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Валюты - * - * DB table: CURRENCY_HISTORY - **/ public class CurrencyHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java index 97903530d..261f63de6 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Ключевая ставка ЦБ - *

- * DB table: KEY_RATE - **/ @Deprecated public class KeyRate extends SpcexObjectBase { private BigDecimal rate; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ListingHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ListingHistory.java index 98ad92a59..8a579e6ee 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ListingHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ListingHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.misc; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Листинг инструментов - * - * DB table: LISTING_HISTORY - **/ public class ListingHistory extends BusinessEvent

{ @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketDataLiquidation.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketDataLiquidation.java index 066986ea2..b21a3909d 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketDataLiquidation.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketDataLiquidation.java @@ -6,11 +6,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Статичная ценовая информация для ликвидации активов - *

- * DB table: MARKET_DATA_LIQUIDATION - **/ public class MarketDataLiquidation extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketHistory.java index a76b7101e..ef68dfbfe 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.misc; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Торговые секции - * - * DB table: MARKET_HISTORY - **/ public class MarketHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/NotificationHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/NotificationHistory.java index bb774c91c..a4a7ed59b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/NotificationHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/NotificationHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Сообщения - *

- * DB table: NOTIFICATION_HISTORY - **/ public class NotificationHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/STrades.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/STrades.java index 6601452fc..9be850686 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/STrades.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/STrades.java @@ -2,17 +2,11 @@ package ru.clearing.classes.statics.data.misc; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; -/** - * Сделки из Торговой системы - *

- * DB table: S_TRADE - **/ public class STrades extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/SessionHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/SessionHistory.java index 6be919fb3..78b9489f6 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/SessionHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/SessionHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Клиринговая сессия - *

- * DB table: SESSION_HISTORY - **/ public class SessionHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/Operation.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/Operation.java index f8a8f5d0b..645956acd 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/Operation.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/Operation.java @@ -2,13 +2,9 @@ package ru.clearing.classes.statics.data.payment; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; + import java.time.LocalDate; -/** - * Проводки - * - * DB table: OPERATION - **/ public class Operation extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/CompanyInfo.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/CompanyInfo.java index f77984590..4c48166d9 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/CompanyInfo.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/CompanyInfo.java @@ -3,28 +3,19 @@ package ru.clearing.classes.statics.data.profile; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * DB: COMPANY_INFO - */ public class CompanyInfo extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private Long companyId; // Company.CompanyInfo.companyId = CompanyInfo.id - private String corporationSoleType; // ref CHAR(4), - private String countryCode; //ref CHAR(4), + private Long companyId; + private String corporationSoleType; + private String countryCode; private String description; - private String professionalSign; // ref CHAR(4), - private String legalKind; // ref CHAR(4), - private String organizationType; // ref CHAR(4), - private String residence; // ref CHAR(4), -// private String shortName; // extends Company -// private String fullName; // extends Company - private String shortNameEng; + private String professionalSign; + private String legalKind; + private String organizationType; + private String residence; +private String shortNameEng; private String fullNameEng; -// private String tradingCode; // extends Company -// private String clearingCode; // extends Company -// private String registrationCode; // extends Company -// private String workflowStatus; // extends Company public Long getCompanyId() { return companyId; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/Contact.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/Contact.java index e2aeeeca1..f8a2024ee 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/Contact.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/Contact.java @@ -3,14 +3,11 @@ package ru.clearing.classes.statics.data.profile; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * DB: CONTACT - */ public class Contact extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; private Long companyId; - private String contactType; // ref CHAR(4) + private String contactType; private String contactValue; public Long getCompanyId() { diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/ProfileDocument.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/ProfileDocument.java index 92e9d1a2c..c7ef190fa 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/ProfileDocument.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/ProfileDocument.java @@ -5,14 +5,11 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.LocalDate; -/** - * DB: PROFILE_DOCUMENT - */ public class ProfileDocument extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; private Long companyId; - private String documentType; // ref CHAR(4) + private String documentType; private LocalDate issueDate; private String issuePlace; private String issuer; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/ProfileDocumentHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/ProfileDocumentHistory.java index c58e9108a..e42b5b9f6 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/ProfileDocumentHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/profile/ProfileDocumentHistory.java @@ -6,9 +6,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * DB: PROFILE_DOCUMENT_HISTORY - */ public class ProfileDocumentHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java index 38b37227b..9a76fc40b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java @@ -2,17 +2,10 @@ package ru.clearing.classes.statics.data.register; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; -import java.time.Instant; import java.time.LocalDate; -/** - * Реестр обязательств, допущенных к клирингу - * - * DB table: ADMITTED_LIABILITIES_REGISTER - **/ public class AdmittedLiabilitiesRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java index 19410c766..ba096c828 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java @@ -2,17 +2,10 @@ package ru.clearing.classes.statics.data.register; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; -import java.time.Instant; import java.time.LocalDate; -/** - * Реестр обязательств, прошедших процедуру контроля обеспечения - *

- * DB table: COVERED_LIABILITIES_REGISTER - **/ public class CoveredLiabilitiesRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java index 8571a4cc5..ac1899c0b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java @@ -2,16 +2,9 @@ package ru.clearing.classes.statics.data.register; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; -import java.time.Instant; -/** - * Реестр остатков ценных бумаг - * - * DB table: DEPO_BALANCE_REGISTER - **/ public class DepoBalanceRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java index 9b0b00a81..8718e20f0 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; -/** - * Реестр распоряжений, направленных расчетному депозитарию - * - * DB table: DEPO_PAYMENT_INSTRUCTION_REGISTER - **/ public class DepoPaymentInstructionRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java index d0467dc5f..6c30dfab6 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java @@ -2,16 +2,10 @@ package ru.clearing.classes.statics.data.register; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Реестр обязательств, исключенных из клирингового пула - * - * DB table: EXCLUDE_LIABILITIES_REGISTER - **/ public class ExcludeLiabilitiesRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java index 3258f0eab..1636e9e8f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java @@ -2,17 +2,11 @@ package ru.clearing.classes.statics.data.register; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; -/** - * Реестр сделок - * - * DB table: EXECUTION_REGISTER - **/ public class ExecutionRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java index 83b44a823..697723fb9 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java @@ -2,16 +2,10 @@ package ru.clearing.classes.statics.data.register; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Реестр учета обязательств - * - * DB table: LIABILITIES_REGISTER - **/ public class LiabilitiesRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java index dff2d1116..ab07b0ba2 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; -/** - * Реестр остатков денежных средств - *

- * DB table: MONEY_BALANCE_REGISTER - **/ public class MoneyBalanceRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java index 75b89ec18..43f90faa9 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java @@ -6,11 +6,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Реестр распоряжений, направленных расчетной организации - * - * DB table: MONEY_PAYMENT_INSTRUCTION_REGISTER - **/ public class MoneyPaymentInstructionRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ReportRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ReportRegister.java index b15481ac9..6cda6e948 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ReportRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ReportRegister.java @@ -5,9 +5,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.time.LocalDate; -/** - * DB table: REPORT_REGISTER - */ public class ReportRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java index d4c92bbc2..f15948c6c 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/Registry.java @@ -6,11 +6,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Регистр активов, обязательств и требований УК - *

- * DB table: REGISTRY - **/ public class Registry extends BusinessObject implements Cloneable { private static final long serialVersionUID = ConstSerializable.serialVersionUID; @@ -424,7 +419,7 @@ public class Registry extends BusinessObject implements Cloneable { clone.setId(null); return clone; } catch (CloneNotSupportedException e) { - throw new RuntimeException("never", e); // it is Cloneable + throw new RuntimeException("never", e); } } } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/RegistryHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/RegistryHistory.java index 5650de6cf..5ce328708 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/RegistryHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/RegistryHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Регистр активов, обязательств и требований УК - *

- * DB table: REGISTRY_HISTORY - **/ public class RegistryHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java index 41ebf3d12..6faf24001 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java @@ -4,11 +4,6 @@ import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -/** - * Торгово-клиринговый регистр - *

- * DB table: TRADING_CLEARING_REGISTRY - **/ public class TradingClearingRegistry extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistryHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistryHistory.java index a8b77b902..bb7c4beff 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistryHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistryHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Торгово-клиринговый регистр - * - * DB table: TRADING_CLEARING_REGISTRY_HISTORY - **/ public class TradingClearingRegistryHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/ClearingCalendar.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/ClearingCalendar.java index 0e74c8314..fe3e0d096 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/ClearingCalendar.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/ClearingCalendar.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.time.LocalDate; -/** - * Торговые и неторговые дни - *

- * DB table: CLEARING_CALENDAR - **/ public class ClearingCalendar extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Launcher.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Launcher.java index 987ee2f5b..87f7d3890 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Launcher.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Launcher.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.scheduler; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -/** - * Запуск задачи - *

- * DB table: LAUNCHER - **/ public class Launcher extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Planner.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Planner.java index 637bc4925..77b04ba4d 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Planner.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Planner.java @@ -6,11 +6,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.time.LocalDate; import java.time.LocalTime; -/** - * Расписание на все даты - *

- * DB table: PLANNER - **/ public class Planner extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerAllToday.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerAllToday.java index 25c71cfab..3e2b065d2 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerAllToday.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerAllToday.java @@ -6,11 +6,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.LocalDate; import java.time.LocalTime; -/** - * Расписание на текущий день - *

- * DB table: PLANNER_ALL_TODAY - **/ public class PlannerAllToday extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerTemplate.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerTemplate.java index 89d523217..1c3437904 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerTemplate.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerTemplate.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.time.LocalTime; -/** - * Постоянное расписание операционного дня - *

- * DB table: PLANNER_TEMPLATE - **/ public class PlannerTemplate extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf01.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf01.java index 787b655f7..c6111b4b2 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf01.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf01.java @@ -8,11 +8,6 @@ import ru.spcex.platform.classes.base.interfaces.WithMarket; import java.time.Instant; -/** - * ДФ-01 Информации о денежных средствах, находящихся на торговых банковских счетах участников клиринга - *

- * DB table: S_DF01 - **/ public class SDf01 extends SpcexObjectBase implements WithAccount, WithMarket, WithFileName { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf02.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf02.java index 3d2608149..47c7c60b6 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf02.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf02.java @@ -6,11 +6,6 @@ import ru.spcex.platform.classes.base.interfaces.WithAccount; import java.time.Instant; -/** - * ДФ-02 Уведомление об исполнении операции загрузки денежных средств или уведомление об ошибке - *

- * DB table: S_DF02 - **/ public class SDf02 extends SpcexObjectBase implements WithAccount { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf03.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf03.java index fd41ea0ea..4cbeccd23 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf03.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf03.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-03 Реестр платежных поручений - *

- * DB table: S_DF03 - **/ public class SDf03 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf04.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf04.java index 5c4b0fe76..a4694ed92 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf04.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf04.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-04 Подтверждение проведения расчетов - * - * DB table: S_DF03 - **/ public class SDf04 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf05.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf05.java index 0812649c4..3fa612646 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf05.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf05.java @@ -6,13 +6,7 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; -import java.time.LocalTime; -/** - * ДФ-05 Уведомление о завершении расчетов в ПРЦ - * - * DB table: S_DF05 - */ public class SDf05 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf06.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf06.java index 7fc04551f..cd7ed23a9 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf06.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf06.java @@ -7,11 +7,6 @@ import ru.spcex.platform.classes.base.interfaces.WithFileName; import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-06 Запрос на зачисление/списание денежных средств - *

- * DB table: S_DF06 - **/ public class SDf06 extends SpcexObjectBase implements WithFileName { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf07.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf07.java index 8c16df934..e3d100220 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf07.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf07.java @@ -6,11 +6,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-07 Ответ на запрос по зачислению/списанию денежных средств - *

- * DB table: S_DF07 - **/ public class SDf07 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf08.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf08.java index 7a46d1be1..529185954 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf08.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf08.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-08 Загрузка счетов с остатками - *

- * DB table: S_DF08 - **/ public class SDf08 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf09.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf09.java index d227c2850..bbdee95d5 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf09.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf09.java @@ -3,14 +3,8 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-09 Ответ на загрузку счетов с остатками - *

- * DB table: S_DF08 - **/ public class SDf09 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf10.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf10.java index 5a5c34987..81115dc3c 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf10.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf10.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * sDf10 - ДФ-10 Запрос на зачисление/списание ценных бумаг - *

- * DB table: S_DF10 - */ public class SDf10 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf11.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf11.java index 1911ddbd9..6955adb17 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf11.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf11.java @@ -3,14 +3,8 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-11 Ответ на Запрос на зачисление/списание ценных бумаг - *

- * DB table: S_DF11 - **/ public class SDf11 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf12.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf12.java index fbd878a88..2a9838199 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf12.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf12.java @@ -3,14 +3,8 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-12 Распоряжение на проведение операций по итогам клиринга - *

- * DB table: S_DF12 - **/ public class SDf12 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf13.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf13.java index 0dcef4a72..db72f6d48 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf13.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf13.java @@ -3,14 +3,8 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-13 Уведомление о статусе исполнения или мотивированный отказ - *

- * DB table: S_DF13 - **/ public class SDf13 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf14.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf14.java index 40a86c01e..a570cbad5 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf14.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf14.java @@ -3,14 +3,8 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-14 Уведомление о завершении расчетов - *

- * DB table: S_DF14 - **/ public class SDf14 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java index 47a8dda6f..0d2cf199a 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java @@ -9,11 +9,6 @@ import ru.spcex.platform.classes.base.interfaces.WithSum; import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-16 Формат запроса по возврату депозита или дозачисление/списание денежных средств - *

- * DB table: S_DF16 - **/ @Deprecated public class SDf16 extends SpcexObjectBase implements WithAccount, WithMarket, WithSum { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java index 635cea099..87c110f9c 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java @@ -7,11 +7,6 @@ import ru.spcex.platform.classes.base.interfaces.WithAccount; import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-17 Формат ответа на запрос по возврату депозита или дозачисление/списание денежных средств - *

- * DB table: S_DF17 - **/ @Deprecated public class SDf17 extends SpcexObjectBase implements WithAccount { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java index 371b64f6e..2add1aa4b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java @@ -7,11 +7,6 @@ import ru.spcex.platform.classes.base.interfaces.WithAccount; import java.math.BigDecimal; import java.time.Instant; -/** - * ДФ-18 Из КС в ПРЦ Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие) - *

- * DB table: S_DF18 - **/ @Deprecated public class SDf18 extends SpcexObjectBase implements WithAccount { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf20.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf20.java index b350cace0..7a233f4f6 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf20.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf20.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-20 Отчет об исполнении поручения на зачисление/списание ценных бумаг - *

- * DB table: S_DF20 - **/ public class SDf20 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf21.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf21.java index ba561acc0..762b89f50 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf21.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf21.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-21 Отчет об операциях - *

- * DB table: S_DF21 - **/ public class SDf21 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf51.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf51.java index 04889c6eb..a8b88194e 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf51.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf51.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-51 Запрос остатков по всем счетам - * - * DB table: S_DF51 - **/ public class SDf51 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf52.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf52.java index 22a257c90..5298d324e 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf52.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf52.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие) - * - * DB table: S_DF52 - **/ public class SDf52 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf53.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf53.java index 16c208415..0cb75b143 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf53.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf53.java @@ -3,15 +3,8 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import java.math.BigDecimal; import java.time.Instant; -import java.time.LocalDate; -/** - * ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) - *

- * DB table: S_DF53 - **/ public class SDf53 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf54.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf54.java index 8d5aad9d7..d42ff4bb4 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf54.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf54.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-54 Вывод свободных средств для инициаторов категории В с клирингового счета 30414 - *

- * DB table: S_DF54 - **/ public class SDf54 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf55.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf55.java index 926da9346..096f8439b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf55.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf55.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-55 Квитанция об обработке ДФ-54 - *

- * DB table: S_DF55 - **/ public class SDf55 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf56.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf56.java index 54ac3ecf3..896d08991 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf56.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf56.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-56 Запрос транзакций за период - *

- * DB table: S_DF56 - **/ public class SDf56 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf57.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf57.java index f66fcc510..d41a48803 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf57.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf57.java @@ -5,11 +5,6 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; -/** - * ДФ-57 Список транзакций о списании/зачислении за период по всем счетам (ТБС и КС) - *

- * DB table: S_DF57 - **/ public class SDf57 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/MoneyMarketSecurity.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/MoneyMarketSecurity.java index 2ecf84c87..332ec7043 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/MoneyMarketSecurity.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/MoneyMarketSecurity.java @@ -1,15 +1,8 @@ package ru.clearing.classes.statics.data.security; -import ru.clearing.classes.statics.data.security.Security; - import java.math.BigDecimal; import java.time.LocalDate; -/** - * Инструменты Денежного рынка - *

- * DB table: MONEY_MARKET_SECURITY - **/ public class MoneyMarketSecurity extends Security { private Long securityId; private String description; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/MoneyMarketSecurityHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/MoneyMarketSecurityHistory.java index 98474ad7c..af5b587d6 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/MoneyMarketSecurityHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/MoneyMarketSecurityHistory.java @@ -5,9 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * DB table: MONEY_MARKET_SECURITY_HISTORY - **/ public class MoneyMarketSecurityHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Security.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Security.java index 2b9160b21..8a10fa6b2 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Security.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Security.java @@ -6,11 +6,6 @@ import ru.spcex.platform.classes.base.interfaces.WithInstrumentType; import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol; import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus; -/** - * Инструменты - *

- * DB table: SECURITY - **/ public class Security extends BusinessObject implements WithWorkflowStatus, WithInstrumentType, WithSecuritySymbol { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/SecurityHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/SecurityHistory.java index ad1e1759f..0544ac37f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/SecurityHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/SecurityHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.security; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Инструменты - * - * DB table: SECURITY_HISTORY - **/ public class SecurityHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/TradedMoneyMarketSecurity.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/TradedMoneyMarketSecurity.java index e412e01c8..7358cdf81 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/TradedMoneyMarketSecurity.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/TradedMoneyMarketSecurity.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.security; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * Инструменты денежного рынка, учавствующие в сделках - *

- * DB table: TRADED_MONEY_MARKET_SECURITY - **/ public class TradedMoneyMarketSecurity extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/statement/Statement.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/statement/Statement.java index 5a165da5f..1d5688b9d 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/statement/Statement.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/statement/Statement.java @@ -6,11 +6,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; import java.time.LocalDate; -/** - * Денежные средства от расчетной организации - *

- * DB table: STATEMENT - **/ public class Statement extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/User.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/User.java index 54de28f63..cff27790d 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/User.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/User.java @@ -3,12 +3,6 @@ package ru.clearing.classes.statics.data.user; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; -/** - * Пользователь - * UserCls - *

- * DB table: USER_CLR - **/ public class User extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserConnect.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserConnect.java index 6dd645a25..f15377f6a 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserConnect.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserConnect.java @@ -6,11 +6,6 @@ import ru.clearing.classes.objects.BusinessObject; import java.time.Instant; import java.time.LocalDate; -/** - * Активность пользователей в системе - *

- * DB table: USER_CONNECT - **/ public class UserConnect extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserConnectHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserConnectHistory.java index b8d32cb58..5d923d148 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserConnectHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserConnectHistory.java @@ -2,12 +2,8 @@ package ru.clearing.classes.statics.data.user; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessEvent; + import java.io.Serial; -/** - * Изменение состояния объекта Активность пользователей в системе - * - * DB table: USER_CONNECT_HISTORY - **/ public class UserConnectHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserHistory.java index 5c8872b62..061a5c5a1 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserHistory.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserHistory.java @@ -5,11 +5,6 @@ import ru.clearing.classes.objects.BusinessEvent; import java.io.Serial; -/** - * Изменение состояния объекта Пользователь - *

- * DB table: USER_CLR_HISTORY - **/ public class UserHistory extends BusinessEvent { @Serial private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserRoleSession.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserRoleSession.java index 7180e89ba..ebd75281c 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserRoleSession.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserRoleSession.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.user; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * Набор ролей - *

- * DB table: USER_ROLE_SESSION - **/ public class UserRoleSession extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserSettings.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserSettings.java index fd358fd82..c87cdfc51 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserSettings.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/user/UserSettings.java @@ -3,11 +3,6 @@ package ru.clearing.classes.statics.data.user; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -/** - * Настройки пользователя - *

- * DB table: USER_SETTINGS - **/ public class UserSettings extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/cleaning-builders/src/main/java/ru/spcex/clearing/scheduler/PlannerAllTodayBuilder.java b/clearing-parent/cleaning-builders/src/main/java/ru/spcex/clearing/scheduler/PlannerAllTodayBuilder.java index 7949803d8..fc78ec576 100644 --- a/clearing-parent/cleaning-builders/src/main/java/ru/spcex/clearing/scheduler/PlannerAllTodayBuilder.java +++ b/clearing-parent/cleaning-builders/src/main/java/ru/spcex/clearing/scheduler/PlannerAllTodayBuilder.java @@ -28,12 +28,9 @@ public class PlannerAllTodayBuilder { private PlannerAllTodayBuilder() { } - //пока для clearingCalendar нет сеттера append, если появится нужно поправить ClearingCalendarService.deleteFromPlannerAllTodayMap() - //из-за поля this.parent = Parent.Template.getKey(); public PlannerAllTodayBuilder append(PlannerTemplate plannerTemplate) { this.task = plannerTemplate.getTask(); this.taskTime = plannerTemplate.getTaskTime(); -// this.clearingDate = LocalDate.now(); this.market = plannerTemplate.getMarket(); this.taskStatus = plannerTemplate.getTaskStatus(); this.section = plannerTemplate.getSection(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessagesConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessagesConfig.java index 38d52587e..66870114b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessagesConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/MessagesConfig.java @@ -8,7 +8,6 @@ import ru.spcex.platform.utils.enumeration.SpringPropertiesMessageResolver; import java.util.Locale; -//@Configuration public class MessagesConfig { @Bean("validation-error-messages") public ResourceBundleMessageSource messages() { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java index 053250918..9f8a5dbd9 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java @@ -97,13 +97,6 @@ public class ValidationConfig { this.imdgProvider = imdgProvider; } - //@Bean("adminRoleVerification") - //public UserRoleVerification adminRoleVerification() { - // return new UserRoleVerification( - // imdgProvider, null, UserRole.Admin, ClearingError.GeneralError //fixme no UserVerifyDenial error - // ); - //} - @Bean("executionDepositValidator") public BiFunction executionDepositValidator(ImdgProvider imdgProvider) { return (category, execDeposit) -> { @@ -405,9 +398,6 @@ public class ValidationConfig { return new ValidatorImpl<>(context, FieldRequiredRule.instance("contract", RegistrySplitDepositActionRequest::getContract, ClearingError.RequiredFieldEmpty), FieldRequiredRule.instance("refundDate", RegistrySplitDepositActionRequest::getRefundDate, ClearingError.RequiredFieldEmpty), -// IdPresentRule.instance("direction", RegistrySplitDepositActionRequest::getDirection, -// IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class, -// ClearingError.RequiredFieldEmpty, ClearingError.DictionaryNotFound, false), DictionaryPresentRule.instance("direction", RegistrySplitDepositActionRequest::getDirection, IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class, ClearingError.RequiredFieldEmpty, ClearingError.DictionaryNotFound, false), diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/element/SessionStageSettings.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/element/SessionStageSettings.java index 08e7671e0..e69dc5ce1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/element/SessionStageSettings.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/element/SessionStageSettings.java @@ -1,7 +1,6 @@ package ru.spcex.clearing.config.element; public class SessionStageSettings { - //inspection-gateway-timeout private Integer inspectionGatewayTimeout = 10; public Integer getInspectionGatewayTimeout() { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/MachineTestService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/MachineTestService.java index fe980bed3..8f222784a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/MachineTestService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/MachineTestService.java @@ -23,11 +23,5 @@ public class MachineTestService implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { -// stateMachine.start(); -// log.info("send start revise event"); -// stateMachine.sendEvent(SessionEvent.Revise); -// log.info("send continue revise event"); -// stateMachine.sendEvent(SessionEvent.SdfReceived); -// log.info("end test"); } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/StateActionAdapter.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/StateActionAdapter.java index e0099ecfd..4f9b73306 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/StateActionAdapter.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/StateActionAdapter.java @@ -10,11 +10,6 @@ import ru.spcex.clearing.session.stage.TaskType; import java.util.function.Function; -/** - * адаптеры между ISessionStage старого образца к Spring State Machine
- * главное назначение: это сохранение результатов работы старого ISessionStage в ExtendedState
- * - */ public class StateActionAdapter implements Action { private final ISessionStage session; private Function payloadForStageGetter; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/StateBnConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/StateBnConfig.java index 7f685f721..c72e1ceba 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/StateBnConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/session/StateBnConfig.java @@ -41,9 +41,6 @@ public class StateBnConfig extends EnumStateMachineConfigurerAdapter sessionImdg; - /** - * адаптеры между ISessionStage старого образца к Spring State Machine - */ private final StateActionAdapter balanceReviseAction; private final StateActionAdapter dealPrepareAction; private final StateActionAdapter requirementsAndObligationCreationAction; @@ -69,16 +66,12 @@ public class StateBnConfig extends EnumStateMachineConfigurerAdapter executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); - - //настройка стадий dealsPrepare.searchForExecutions(ExecutionType.ExecutionFond); ImdgPredicateBuilder execFondPb = executionFondImdg.predicateBuilder(); dealsPrepare.addExecutionFondCondition(execFondPb.regex("settlementCode", "^B\\d{2}$")); dealsPrepare.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0]))); inclusionObligations.setSessionType(SessionType.IPOB); imdgProvider.waitAvailable(); - - //настройка адаптеров для State Machine balanceReviseAction = new StateActionAdapter(balanceRevise); dealPrepareAction = new StateActionAdapter(dealsPrepare); @@ -123,10 +116,6 @@ public class StateBnConfig extends EnumStateMachineConfigurerAdapter log.debug("stmt.id={} comment='{}' error: {}", statementId, commentTcrStripped, messageResolver.resolve(new EnumMessage(subject, args))); if (commentTcrStripped == null) { return new AnltSearch(ClearingError.AccountNotFound, "comment not contain TCR"); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java index 902603ab1..7c5777ef6 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java @@ -53,10 +53,6 @@ public class Clearing { private final LiabilitiesClaimsMoneyCreator lbltsClmsMoneyCreator; private Long lastAccBalanceResponseId = 0L; - //при прохождении по выгруженным ExecutionDeposit, ошибочные статусы проставляются для - //контр сделок. В таком случае, в коллекции хранятся не синхронизированные с IMDG ExecutionDeposit - //для которых статус должен быть DENIED - //************ !!! NOT THREAD SAFE !!! ************ private final Set deniedIds = new HashSet<>(); private Long clearingSessionId; @@ -80,10 +76,8 @@ public class Clearing { public void startClearing() { clearingSessionId = idProvider.nextId(); log.info("startClearing clearingSessionId = {}. loading ExecutionDeposits", clearingSessionId); - //выгружаем ExecutionDeposit с пустым sessionId Collection execDeposits = executionDepositImdg.getCollectionObjectsBySQL("sessionId = null"); log.info("loaded {} ExecutionDeposits", execDeposits.size()); - //делаем группировку ExecutionDeposit по категории и компании, делаем сортировку LinkedHashMap>> executionDeposits = sorter.sortExecutionDeposit(execDeposits); executionDeposits.forEach((category, companies) -> { @@ -100,12 +94,6 @@ public class Clearing { kafka.sendRequestToQueue(Task.createOrder.topic(), sdf03or11); } - //кладем в порядке I инициатор, V внутренний, B банк (ответная категория) - //получается I -> B; V -> B - // - //1) ТОЛЬКО ДЛЯ V: если DENIED по любым причинам то для всех следующих сделок этой компании DENIED - //2) DENIED сделка всегда встречная сделка тоже делается DENIED - //3) DENIED может быть для сделки которая уже прошла обработку и стала ALLOWED private void runChecksSetStatus(ClearingCategory category, List executionDeposits) { log.info("setting statuses for category: {}, company: {}", category, executionDeposits.get(0).getCompanyId()); boolean financialError = false; @@ -141,8 +129,6 @@ public class Clearing { execDeposit.setUpdated(Instant.now()); executionDepositImdg.update(execDeposit); log.trace("executionDeposit {} was updated DENIED", execDeposit.getId()); - //также необходимо установить статус DEND встречной сделке контрагента этой компании, которая выбирается из executionDeposit по ключу: - //securityId И чтобы сделка была компании категории clearingMemberCategory.clearingMemberCategory ≠ той категории, сделка которой обрабатывается в настоящий момент. ExecutionDeposit matchedExecDeposit = executionDepositImdg.getFirstObjectBySQL( "exchangeExecutionId = " + execDeposit.getExchangeExecutionId() + " AND side != '" + execDeposit.getSide() + "'"); @@ -173,20 +159,14 @@ public class Clearing { log.trace("Skipping processing executionDeposit {} was denied", execDeposit.getId()); continue; } - //send request to kafka, wait for a reply synchronized (this) { AccountBalanceClearingRequest request = new AccountBalanceClearingRequest(); - // todo CLS-275 request.setAccountId(execDeposit.getAccountId()); request.setCompanyId(execDeposit.getCompanyId()); request.setFirstLegAmount(execDeposit.getFirstLegAmount()); Long sentRequestId = kafka.sendRequestToQueue(Consts.BALANCE_ACCOUNT_UPDATE, request); log.trace("sent request to kafka, requestId: {}", sentRequestId); try { wait(ACC_BALANCE_TIMEOUT); - //если на этом месте произошла ошибка - непонятно как обрабатывать - //т.к. этом может быть уже вторая часть сделки, для первой accountBalance уже был обновлен - //либо вне зависимости от того какая часть сделки, accountBalance на самом деле мог быть - //обновлен, и была проблема была с сетью/недоступностью кафки etc. } catch (InterruptedException e) { log.error(ExceptionUtils.getStackTrace(e)); Thread.currentThread().interrupt(); @@ -199,8 +179,7 @@ public class Clearing { continue; } } - Optional lcaFirstLegFound = lbltsClmsAssetsCreator.searchLCA( - /* null execDeposit.getAccountId() todo CLS-275 */ null, execDeposit.getCompanyId(), + Optional lcaFirstLegFound = lbltsClmsAssetsCreator.searchLCA( null, execDeposit.getCompanyId(), execDeposit.getSecurityId(), execDeposit.getFirstLegSettlementDate()); LiabilitiesClaimsAssets lcaFirstLeg = orElse(lcaFirstLegFound).ifPresentOrElse(lca -> { log.trace("LiabilitiesClaimsAssets first leg {} was found", lca.getId()); @@ -213,8 +192,7 @@ public class Clearing { log.trace("LiabilitiesClaimsAssets {} first leg was created", lca.getId()); return lca; }); - Optional lcaSecondLegFound = lbltsClmsAssetsCreator.searchLCA( - /*todo CLS-275 execDeposit.getAccountId()*/ null, execDeposit.getCompanyId(), + Optional lcaSecondLegFound = lbltsClmsAssetsCreator.searchLCA( null, execDeposit.getCompanyId(), execDeposit.getSecurityId(), execDeposit.getSecondLegSettlementDate()); LiabilitiesClaimsAssets lcaSecondLeg = orElse(lcaSecondLegFound).ifPresentOrElse(lca -> { log.trace("LiabilitiesClaimsAssets second leg {} was found", lca.getId()); @@ -279,14 +257,6 @@ public class Clearing { } log.trace("lcaFirstLeg {}, lcaSecondLeg {}", lcaFirstLeg, lcaSecondLeg); -// log.trace("updating LiabilitiesClaimsMoney by payment"); -// log.trace("firstLegLiabilitiesClaimsMoney: {}; secondLegLiabilitiesClaimsMoney: {}", lcmFirstLeg, lcmSecondLeg); -// if (paymentInstructionCreator.updateFieldLiabilitiesClaimsMoneyByPayment(lcmFirstLeg, true, paymentInstructions, Collections.singleton(category)) ) { -// liabilitiesClaimsMoneyImdg.update(lcmFirstLeg); -// log.trace("LiabilitiesClaimsMoney first leg {} was updated", lcmFirstLeg.getId()); -// } -// log.trace("firstLegLiabilitiesClaimsMoney: {}; secondLegLiabilitiesClaimsMoney: {}", lcmFirstLeg.getId(), lcmSecondLeg.getId()); - execDeposit.setSessionId(clearingSessionId); execDeposit.setUpdated(Instant.now()); executionDepositImdg.update(execDeposit); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java index 4e2e0dd74..c2c560845 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java @@ -41,7 +41,6 @@ public class ClearingService implements DisposableBean { this.executor = Executors.newSingleThreadExecutor(); } - // @Scheduled(cron = "${clearing-service.scheduler.check-payment-instruction}") public void sdfCreate() { log.info("creating sdf03/11 from STLD payments task added to queue"); executor.execute(() -> { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java index 31f8818ed..8f1e5e17b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java @@ -97,9 +97,6 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { callback(LauncherCommandRequest.class) .setConsumer(event -> clearingService.sdfCreate()) .forDestination(Task.createOrder.topic(), callbacks::put); -// callback(LauncherCommandRequest.class) -// .setConsumer(event -> clearingService.executeVerification()) -// .forDestination(Task.getVerification.topic(), callbacks::put); callback(CommonIdRequest.class) .setConsumer(clearingService::continueClearing) .forDestination(Consts.CONTINUE_CLEARING, callbacks::put); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/LauncherCommandReceiver.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/LauncherCommandReceiver.java index 0d75db589..b03efd38e 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/LauncherCommandReceiver.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/LauncherCommandReceiver.java @@ -28,7 +28,7 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi public void afterPropertiesSet() { callback(LauncherCommandRequest.class) .setConsumer(action -> clearingService.executeVerification()) - .forDestination(Task.createOrderConfirm.topic(), callbacks::put); // CORC + .forDestination(Task.createOrderConfirm.topic(), callbacks::put); init(); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java index 70a044655..15d974b96 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java @@ -123,10 +123,7 @@ public class RegistryService { public void createRegistry(CreateRegistryRequest createRegistryRequest) { Long companyId = createRegistryRequest.getCompanyId(); log.trace("Try to find tradingClearingRegistry by companyId: {}", createRegistryRequest.getCompanyId()); - //todo может завести класс SqlFactory String byCompanySqlPredicate = String.format("companyId=%s", companyId); - //todo для компани всегда один объект TradingClearingRegistry? пока предполагаю что да и нужно добавить такую проверку(в ТЗ ее нет); - //todo see TradingClearingRegistryService.tradingClearingRegistryNew TradingClearingRegistry tcrByCompanyId = tradingClearingRegistryImdg.getFirstObjectBySQL(byCompanySqlPredicate); if (tcrByCompanyId != null) { @@ -138,7 +135,6 @@ public class RegistryService { registry.setRegistryInstrumentType(registryInfo.registryInstrumentType().getKey()); registry.setRegistryCapacity(registryInfo.registryCapacity().getKey()); registry.setRegistryUnit(registryInfo.registryUnit().getKey()); - //todo не понял формулировку При создании новой записи, необходимо установить значение 0 в множестве свойств balance* AND registryInstrumentType=M AND securitySymbol=RUB[registry.securityId=security.id] registry.setBalance(BigDecimal.ZERO); registryImdg.insert(registry); @@ -287,24 +283,6 @@ public class RegistryService { return reqHelp.error(req.getId(), err.get()); } Registry rgs = validator.getStored(Stored.PresentById); - //Supplier gtwBuilder = () -> GatewayRequestCreator.from(rgs, InOutDirection.in); - //Optional gatewayOk; - //if (trdTime.isTradingTime()) { - // gatewayOk = gateway.gatewayRequestAndWait(gtwBuilder); - //} else { - // log.debug("RegistryChangeStatusExtractRequest rgs.id={} not sending gateway request", rgs.getId()); - // gatewayOk = Optional.of(true); - //} - //if (gatewayOk.isEmpty() || !gatewayOk.get()) { - // String gtwErr = msgResolver.resolve(mapError(gatewayOk)); - // log.error("{}.id={} {}", - // rgs.getRegistryCode(), - // rgs.getId(), - // gtwErr); - // notification.sendNotification(ObjectType.rgst, - // "Отметка о получении выписки: %s".formatted(gtwErr), - // Priority.HIGH); - //} rgs.setRegistryStatus(payload.getRegistryStatus()); log.debug("changing registry.id={} status to {}", rgs.getId(), payload.getRegistryStatus()); registryImdg.update(rgs); @@ -348,7 +326,6 @@ public class RegistryService { Instant now = Instant.now(); dmau.setUpdated(now); asts.a__t().setUpdated(now); - //paymentInstruction PaymentInstruction pmt = PaymentInstructionBuilderV2.builder(imdgProvider) .registry(asts.a__b()) .sender(Sender.One.getId()) @@ -405,9 +382,6 @@ public class RegistryService { return new RequestInfoUpdate(req.getId(), Status.Success, null); } - /** - * находим все регистры AM__/AS__ по пришедшему ТКР - */ private Optional registsryPredicate(Long companyId, Long moneyAccountId, Long depoAccountId) { ImdgPredicateBuilder prdBldr = registryImdg.predicateBuilder(); Function sql = p -> RegistryCodeSqlBuilder.getInstance(p).build(); @@ -438,7 +412,6 @@ public class RegistryService { private RegistryTradingParams createRegistryInfoByType(String type) { TradingClearingRegistryType registryType = IEnumKey.getEnumByKey(TradingClearingRegistryType.class, type); RegistryTradingParams registryInfo = null; - //todo спросить про дубль C и T switch (registryType) { case Owner_A -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.A, RegistryUnit.T); case Client_B -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.T); @@ -556,7 +529,6 @@ public class RegistryService { else if (!groupId.equals(baseRegistry.getGroupId())) { log.warn("Group id different: groupId={}; registry[{}].groupId={}", groupId, baseRegistry.getId(), baseRegistry.getGroupId()); } - // 1. Первая группа Registry firstRegistry = baseRegistry.clone(); firstRegistry.setId(null); firstRegistry.setCreated(now); @@ -571,7 +543,6 @@ public class RegistryService { firstRegistry.setContract(cntrctWithoutTilda + "~" + (index + 1)); firstRegistry.setParentId(baseRegistry.getId()); registryTMap.insert(firstRegistry); - // 2. Вторая группа Registry secondRegistry = null; if (InOutDirection.out == direction) { secondRegistry = baseRegistry.clone(); @@ -585,8 +556,6 @@ public class RegistryService { secondRegistry.setParentId(baseRegistry.getId()); registryTMap.insert(secondRegistry); } - - // 3. Текущим обязательствам установить статус SPLT baseRegistry.setRegistryStatus(RegistryStatus.SPLT.getKey()); baseRegistry.setUpdated(Instant.now()); registryTMap.update(baseRegistry); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf12Creator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf12Creator.java index 81569b37a..7ae69d0db 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf12Creator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf12Creator.java @@ -51,7 +51,6 @@ public class Sdf12Creator { if (security != null) { sDf12.setSecurityCode(security.getSecuritySymbol()); } -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } @@ -59,7 +58,7 @@ public class Sdf12Creator { public SDf12 createWithoutIntermediate(PaymentInstruction paymentInstruction) { log.debug("creating sdf12"); - SDf12 sDf12 = new SDf12(); //todo remove + SDf12 sDf12 = new SDf12(); sDf12.setId(idGenerator.nextId()); sDf12.setOutDocument(sDf12.getId().toString()); sDf12.setDirection("DELFREE"); @@ -70,7 +69,6 @@ public class Sdf12Creator { } sDf12.setDepoCodeSender(paymentInstruction.getCreditLeg_account()); sDf12.setDepoCodeAdressee(paymentInstruction.getDebitLeg_account()); -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf54Creator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf54Creator.java index 73859b442..e0614954e 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf54Creator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf54Creator.java @@ -50,15 +50,12 @@ public class Sdf54Creator { String c_acc_cred = null; Account anltAcc = accountImdg.getFirstObjectBySQL("accountType = '%s' and status = '%s'" .formatted(AccountType.Anlt.getKey(), Status.Active.getKey())); -// c_acc_deb = c_acc_deb == null ? paymentInstruction.getCreditLeg_account() : c_acc_deb; c_acc_cred = c_acc_cred == null ? paymentInstruction.getDebitLeg_account() : c_acc_cred; SDf54 sDf54 = new SDf54(); sDf54.setId(idGenerator.nextId()); sDf54.setSeg_type("V"); - - //********************** String tranBic = selectSymbolValue(Sender.Prc.getId(), CompanySymbol.BIC); if (tranBic == null) { log.warn("CompanySymbols BIC not found for companyId={}", Sender.Prc.getId()); @@ -117,15 +114,10 @@ public class Sdf54Creator { sDf54.setC_acc_deb(prcCorrAcc.getAccount()); } } - //********************** sDf54.setSend_type("срочно"); sDf54.setDoc_type("002"); sDf54.setDocnm_ref(docnmRefFormatter.format(TimeUtil.toDateTime(now))); - -// Account rBnkAccount = accountImdg.getFirstObjectBySQL("companyId=%s and accountType = '%s' and status = '%s'" -// .formatted(paymentInstruction.getAddresseeId(), AccountType.Bank.getKey(), Status.Active.getKey())); -// BankAccount rBnkAcc = rBnkAccount == null ? null : bankAccountImdg.getFirstObjectBySQL("accountId = %d".formatted(rBnkAccount.getId())); if (bnkAcc != null) { sDf54.setRbankcode(bnkAcc.getBankIdentificationCode()); SpecifUtil.fillSegmentsBy35Symbols(bnkAcc.getCorrespondentAccountName(), @@ -140,7 +132,7 @@ public class Sdf54Creator { { Company company1 = companyImdg.getSingleObjectByID(Sender.One.getId()); - if (company1 != null) { // "АО СПВБ" company.shortName[id = 1] + if (company1 != null) { SpecifUtil.fillSegmentsBy35Symbols(company1.getShortName(), sDf54::setSclientn1, sDf54::setSclientn2, diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java index 7f9c5a279..b672ada5b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java @@ -57,13 +57,10 @@ public class SdfCreatorBySTLDPayment { public void createSdfFromPaymentInstructionSTLD() { - //generationId для созадаваемых Sdf03/Sdf11 Long generationId = idGenerator.nextId(); - //выгружаем PaymentInstructions с нужным статусом Collection paymentInstructionFound = paymentImdgs.getCollectionObjectsByFieldValues( Map.of("transactionStatus", TransactionStatus.stld.getKey())); log.info("Found {} PaymentInstruction by status {}", paymentInstructionFound.size(), TransactionStatus.stld.getKey()); - /*Map> byOrder = */ List>>> allEntries = group(paymentInstructionFound); Set queueToSend = new HashSet<>(); @@ -80,7 +77,6 @@ public class SdfCreatorBySTLDPayment { log.info("Send command target queue: {}", queueToSend); sendToKafkaSDFRequests(queueToSend, generationId); allEntries.forEach(entry -> { - //category group GroupWrapper group = entry.getKey(); log.info("updating transactionStatus Group category {} index {}", group.category, group.getSortIndex()); @@ -111,27 +107,16 @@ public class SdfCreatorBySTLDPayment { } else { return Stream.of(new Pair<>(new GroupWrapper(clearingCategory, senderId), paymentInstruction)); } - //группируем по equals/hashCode группы }).collect(Collectors.groupingBy(Pair::getFirst, Collectors.mapping(Pair::getSecond, Collectors.toList()))) .entrySet() .stream() - //сортируем по группе compareTo .sorted(Map.Entry.comparingByKey()) - //преобразуем поток entry>, разбиваем список на группы по senderId .map((Function>, Map.Entry>>>) entry -> { Collection> values = entry.getValue().stream().collect(Collectors.groupingBy(PaymentInstruction::getSenderId)).values(); return new AbstractMap.SimpleEntry<>(entry.getKey(), values); }).toList(); } - /** - * - * @param senderId - * @param category - * @param batch - * @param generationId - * @return kafka queue: Consts.SDF03_PROCESS/Consts.SDF11_PROCESS - */ private String saveSdfBeforeSendToKafka(Long senderId, ClearingCategory category, List batch, Long generationId) { String queue = null; if (Sender.One.equalsById(senderId) || category.equals(ClearingCategory.I) || category.equals(ClearingCategory.V)) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/StatementService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/StatementService.java index 8efaa429a..ac8c7c135 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/StatementService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/StatementService.java @@ -31,7 +31,6 @@ import ru.spcex.platform.utils.collection.Pair; import java.util.*; import java.util.stream.Collectors; -//@Service @Deprecated public class StatementService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -43,13 +42,9 @@ public class StatementService extends QueueConsumer implements InitializingBean private final Reviser reviser; private final StatementServiceV2 stmtSrvV2; - /** - * Пары sdf запросов пришедшие с модуля dbf-import - */ private final Map> pairOfSdfRequest = new HashMap<>(); -// @Autowired - public StatementService(Consumer kafkaQueue, +public StatementService(Consumer kafkaQueue, ImdgProvider imdgProvider, KafkaSender kafkaSender, @Qualifier("sdfExecutors") Map> executorsMap, Reviser reviser, StatementServiceV2 stmtSrvV2) { @@ -107,11 +102,6 @@ public class StatementService extends QueueConsumer implements InitializingBean init(); } - /** - * fromAccService передается когда пришел ответ от account-service - * в этом случае: по key находим пару в которой сохранен sdf57 запрос и частично выполненный sdf01 - * вместо старого sdf01 запроса выполняем новый пришедший от account-service - */ private void processSdf01And57(Long key, StatementRequest fromAccService) { Pair pair = pairOfSdfRequest.get(key); Result sdf01Res = processSdf01(fromAccService == null ? pair.getFirst() : fromAccService); @@ -119,10 +109,8 @@ public class StatementService extends QueueConsumer implements InitializingBean log.info("sdf01 execution wasn't complete, waiting for an answer from account-service"); return; } - //затем sdf57 processSdf57(pair.getSecond()); reviser.doRevise(pair.getFirst().getGroupId()); - //теперь можем продолжить сессию с шага 1 SessionContinueEvent continueSessionBn = new SessionContinueEvent(SdfTable.SDF_01, SdfTable.SDF_57); kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn); pairOfSdfRequest.remove(key); @@ -130,11 +118,6 @@ public class StatementService extends QueueConsumer implements InitializingBean } - /** - * fromAccService передается когда пришел ответ от account-service - * в этом случае: по key находим пару в которой сохранен sdf57 запрос и частично выполненный sdf01 - * вместо старого sdf01 запроса выполняем новый пришедший от account-service - */ private void processSdf08And21(Long key, StatementRequest fromAccService) { Pair pair = pairOfSdfRequest.get(key); Result sdf08Res = processSdf08(fromAccService == null ? pair.getFirst() : fromAccService); @@ -142,12 +125,7 @@ public class StatementService extends QueueConsumer implements InitializingBean log.info("sdf08 execution wasn't complete, waiting for an answer from account-service"); return; } - //затем sdf21 processSdf21(pair.getSecond()); -//fixme ревизия для бумаг reviser.doRevise(pair.getFirst().getGroupId()); - //теперь можем продолжить сессию с шага 1 -// ContinueSessionBnRequest continueSessionBn = new ContinueSessionBnRequest(); -// kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn); pairOfSdfRequest.remove(key); log.info("pair sdf08/sdf21 processed successfully"); @@ -169,7 +147,6 @@ public class StatementService extends QueueConsumer implements InitializingBean } switch (payload.getTable()) { case SDF_01 -> { - //там нужно переиспользовать SDF57 запрос приходивший ранее и сохраненный в pairOfSdfRequest processSdf01And57(key.get(), payload); } case SDF_08 -> { @@ -236,7 +213,6 @@ public class StatementService extends QueueConsumer implements InitializingBean "generationId", statementRequest.getGroupId())); AbstractExecutor service = executorsMap.get(SdfTable.SDF_57); Result res = service.execute(sdfGroup, statementRequest); -// finishSendCommand(res, service, statementRequest); } private void processSdf21(StatementRequest statementRequest) { @@ -245,7 +221,6 @@ public class StatementService extends QueueConsumer implements InitializingBean "generationId", statementRequest.getGroupId())); AbstractExecutor service = executorsMap.get(SdfTable.SDF_21); Result res = service.execute(sdfGroup, statementRequest); -// finishSendCommand(res, service, statementRequest); } private void processSdf04(StatementRequest statementRequest) { @@ -262,7 +237,7 @@ public class StatementService extends QueueConsumer implements InitializingBean nRequest.setPriority(Priority.HIGH.getKey()); nRequest.setComment("Поручения из клиринговой системы имеют неисполненный статус в ответе ДФ-04 из расчетной организации"); kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, nRequest); - } else { // отправить в SessionMonitor + } else { kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn); } } else { @@ -309,7 +284,6 @@ public class StatementService extends QueueConsumer implements InitializingBean } else { kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn); } -// finishSendCommand(res, service, statementRequest); } private Result processSdf01(StatementRequest statementRequest) { @@ -321,11 +295,9 @@ public class StatementService extends QueueConsumer implements InitializingBean } else { log.debug("accounts were created: {} for generationId {} child generationId {}", statementRequest.getAccountCreationResults().size(), statementRequest.getGroupId(), statementRequest.getChildGenerationId()); - //todo могут ли тут реквесты бегать по кругу, если да, то у нас проблемы sdfGroup = statementRequest.getAccountCreationResults() .stream() -// .filter(part -> part.getErrorCode() == null) //fixme эти случае должны попадать в ошибочный sdf02 - .map(part -> sdfImdg.getSingleObjectByID(part.getSdfId())) +.map(part -> sdfImdg.getSingleObjectByID(part.getSdfId())) .collect(Collectors.toList()); } AbstractExecutor service = executorsMap.get(SdfTable.SDF_01); @@ -342,7 +314,6 @@ public class StatementService extends QueueConsumer implements InitializingBean private Optional saveRequest(StatementRequest statementRequest) { SdfTable sdfTable = statementRequest.getTable(); - //immediately process if (List.of(SdfTable.SDF_08, SdfTable.SDF_04, SdfTable.SDF_13).contains(sdfTable)) { Long id = imdgProvider.getImdgIdGenerator().nextId(); pairOfSdfRequest.put(id, new Pair<>(statementRequest, null)); @@ -352,7 +323,6 @@ public class StatementService extends QueueConsumer implements InitializingBean Long id = imdgProvider.getImdgIdGenerator().nextId(); pairOfSdfRequest.put(id, getPairByTableName(sdfTable, statementRequest)); } else { - //найдем первую неполноценную пару Optional uncompletedPairId = findUncompletedPairByTableName(sdfTable); if (uncompletedPairId.isPresent()) { Long key = uncompletedPairId.get(); @@ -363,10 +333,8 @@ public class StatementService extends QueueConsumer implements InitializingBean completed.setSecond(statementRequest); } pairOfSdfRequest.put(key, completed); - //укомплектованная пара return Optional.of(key); } else { - //если таких нет, то просто создаем новую с одной частью Long id = imdgProvider.getImdgIdGenerator().nextId(); pairOfSdfRequest.put(id, getPairByTableName(sdfTable, statementRequest)); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/VerificationResultComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/VerificationResultComponent.java index c10007d94..8983e6fae 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/VerificationResultComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/VerificationResultComponent.java @@ -26,10 +26,6 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -/** - * 1.70. verificationResult - Результаты сверки - * Раздел I - Функционал сверок - */ @Component public class VerificationResultComponent { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -54,7 +50,6 @@ public class VerificationResultComponent { this.idGenerator = imdgProvider.getImdgIdGenerator(); this.verificationResultImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_VerificationResult, VerificationResult.class); - //this.kafkaSender = KafkaSender kafkaSender } protected void executeRevision() { @@ -68,7 +63,6 @@ public class VerificationResultComponent { } protected void executeRevision(Collection allSDf01, Collection allAccountBalance, Collection allAccount) { - // 1. Сумму по остаткам List vResLst = new ArrayList<>(); Map> companyAccountBalance = indexList(allAccountBalance, AccountBalance::getCompanyId); @@ -122,14 +116,9 @@ public class VerificationResultComponent { log.debug("Total {} VerificationResult created. {}", vResLst.size(), allSuccess ? "All success." : "Has same mismatch data."); } - /** - * @param forCompany - * @param accountId Account.id by Account.account - * @return new - */ VerificationResult newVerification(Instant now, Company forCompany, Long accountId) { VerificationResult vResult = new VerificationResult(); - vResult.setId(idGenerator.nextId()); // imdg + vResult.setId(idGenerator.nextId()); if (now == null) { now = Instant.now(); } @@ -138,7 +127,7 @@ public class VerificationResultComponent { vResult.setClearingCode(forCompany.getClearingCode()); } if (accountId != null) { - vResult.setAccountId(accountId); // accountId bigint = Из accountBalance.account + vResult.setAccountId(accountId); } return vResult; } @@ -155,7 +144,7 @@ public class VerificationResultComponent { indexAccountIdByAccount.put(account.getAccount(), account.getCompanyId()); } } - { // 1.70 verificationResult + { Map indexSDf01 = index(allSDf01, SDf01::getAccount); for (AccountBalance account : allAccountBalance) { VerificationResult vResult = newVerification(now, forCompany, indexAccountIdByAccount.get(account.getAccount())); @@ -175,13 +164,11 @@ public class VerificationResultComponent { } } BigDecimal balance = account.getCloseBalanceAmount() == null ? BigDecimal.ZERO : account.getCloseBalanceAmount(); - // сравнить remainder==balance BigDecimal diff = balance.subtract(remainder).setScale(2, RoundingMode.HALF_UP).abs(); vResult.setDiffSum(diff); vResult.setInSum(account.getOpenBalanceAmount()); vResult.setOutIntSum(account.getCloseBalanceAmount()); vResult.setOutExtSum(remainder); - //todo похоже надо группировку по String account сделать, сверить с ТЗ. log.trace("company[{}] AccountBalance[{}] diff = {}", forCompany.getId(), account.getId(), diff); if (BigDecimal.ZERO.compareTo(diff) == 0) { vResult.setResultStatus(ResultStatuses.success.getKey()); @@ -191,9 +178,6 @@ public class VerificationResultComponent { } } } - - // 2.1 Номера торговых/клиринговых счетов, соответствующие загруженным в КС - // -sDf01.deal = account.account & accountType=CLRN & accountStatus=UNBL { Set sDf01Keys = allSDf01.stream() .filter(sdf01 -> sdf01.getDeal() != null) @@ -216,8 +200,6 @@ public class VerificationResultComponent { log.trace("Control summ 1, count: sDf01Keys={}, accountKeys={}; check result:{}", sDf01Keys.size(), accountKeys.size(), vResult.getResultStatus()); } - - // 2.2 Количество торговых/клиринговых счетов, соответствующие загруженным в КС - COUNT[sDf01.deal] = COUNT [account.account] { long countSDf01 = allSDf01.stream().filter(sDf01 -> sDf01.getDeal() != null).count(); long countAccount = allAccount.stream().filter(account -> account.getAccount() != null).count(); @@ -232,8 +214,6 @@ public class VerificationResultComponent { log.trace("countSDf01={}, countAccount={}, result: {}", countSDf01, countAccount, vResult.getResultStatus()); } - - // 2.3 Суммарный остаток по счетам { Map summOfSDf01 = new HashMap<>(); for (SDf01 document : allSDf01) { @@ -265,7 +245,6 @@ public class VerificationResultComponent { summOfAccountBalance.put(accountKey, a); } } - // summSDf01==summAccount Set allAccountStr = new HashSet<>(); allAccountStr.addAll(summOfSDf01.keySet()); allAccountStr.addAll(summOfAccountBalance.keySet()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsAssetsCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsAssetsCreator.java index 7048bac2f..668fa8523 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsAssetsCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsAssetsCreator.java @@ -40,7 +40,6 @@ public class LiabilitiesClaimsAssetsCreator { private LiabilitiesClaimsAssets createLCA(ExecutionDeposit executionDeposit, Account account) { LiabilitiesClaimsAssets liabilitiesClaimsAssets = new LiabilitiesClaimsAssets(); liabilitiesClaimsAssets.setCompanyId(executionDeposit.getCompanyId()); -// todo new fields liabilitiesClaimsAssets.setAccountId(executionDeposit.getAccountId()); liabilitiesClaimsAssets.setAccountType(account.getAccountType()); liabilitiesClaimsAssets.setAccount(account.getAccount()); liabilitiesClaimsAssets.setCurrency(executionDeposit.getSettlementCurrency()); @@ -61,7 +60,7 @@ public class LiabilitiesClaimsAssetsCreator { public LiabilitiesClaimsAssets createFirstLegLCA(ClearingCategory category, ExecutionDeposit executionDeposit) { - Account account = null; // todo CLS-275 accountImdg.getSingleObjectByID(executionDeposit.getAccountId()); + Account account = null; LiabilitiesClaimsAssets lca = createLCA(executionDeposit, account); lca.setSettlementDate(executionDeposit.getFirstLegSettlementDate()); AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); @@ -79,7 +78,7 @@ public class LiabilitiesClaimsAssetsCreator { } public LiabilitiesClaimsAssets createSecondLegLCA(ClearingCategory category, ExecutionDeposit executionDeposit) { - Account account = null;// todo CLS-275 accountImdg.getSingleObjectByID(executionDeposit.getAccountId()); + Account account = null; LiabilitiesClaimsAssets lca = createLCA(executionDeposit, account); lca.setSettlementDate(executionDeposit.getSecondLegSettlementDate()); AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); @@ -115,7 +114,7 @@ public class LiabilitiesClaimsAssetsCreator { public void updateSecondLegLca(LiabilitiesClaimsAssets lca, ExecutionDeposit executionDeposit, ClearingCategory category) { - Account account = null; // todo CLS-275 accountImdg.getSingleObjectByID(executionDeposit.getAccountId()); + Account account = null; AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); boolean iClrn = ClearingCategory.I.equals(category) && AccountType.Clrn.equals(accType); boolean vInfo = ClearingCategory.V.equals(category) && AccountType.Info.equals(accType); @@ -135,14 +134,11 @@ public class LiabilitiesClaimsAssetsCreator { } public void updateFirstLegLca(LiabilitiesClaimsAssets lca, ExecutionDeposit executionDeposit, ClearingCategory category) { - Account account = null; // todo CLS-275 accountImdg.getSingleObjectByID(executionDeposit.getAccountId()); + Account account = null; AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); boolean iClrn = ClearingCategory.I.equals(category) && AccountType.Clrn.equals(accType); boolean vInfo = ClearingCategory.V.equals(category) && AccountType.Info.equals(accType); boolean bClrn = ClearingCategory.B.equals(category) && AccountType.Clrn.equals(accType); - //liabilitiesQuantity - //Клиринг (по первой ноге и категория I и счет CLRN): - //текущее значение liabilitiesClaimsAssets.liabilitiesQuantity + executionDeposit.firstLegAmount if (iClrn || vInfo) { BigDecimal prevLQuantity = BigDecimalUtil.safeBD(lca.getLiabilitiesQuantity()); BigDecimal firstLegAmount = BigDecimalUtil.safeBD(executionDeposit.getFirstLegAmount()); @@ -155,20 +151,5 @@ public class LiabilitiesClaimsAssetsCreator { log.trace("update first leg LCA: prevClaimsQuantity={}, firstLegAmount={}", prevCQuantity, firstLegAmount); lca.setClaimsQuantity(prevCQuantity.add(firstLegAmount)); } - // - //Клиринг (по второй ноге и категория I и счет CLRN): - //не меняется. - // - // Клиринг (по первой ноге и категория V и счет INFO): - //текущее значение liabilitiesClaimsAssets.liabilitiesQuantity + executionDeposit.firstLegAmount - // - //Клиринг (по второй ноге и категория V и счет INFO): - //не меняется. - // - //Клиринг (по первой ноге и категория B и счет CLRN): - //не меняется. - // - //Клиринг (по второй ноге и категория B и счет CLRN): - //= текущее значение liabilitiesClaimsAssets.liabilitiesQuantity + executionDeposit.secondLegAmount } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java index 891f6e367..d6d6077c1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java @@ -19,7 +19,7 @@ import java.util.Optional; import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; -@Deprecated // liabilitiesClaimsMoney даляется +@Deprecated @Component public class LiabilitiesClaimsMoneyCreator { private final Logger log = LoggerFactory.getLogger(this.getClass()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilder.java index cf11cdb6e..ce0c0996b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilder.java @@ -126,8 +126,6 @@ public class PaymentInstructionBuilder { paymentInstruction.setDebitLeg_securityId(security.getId()); } } - -// paymentInstruction.setPaymentPurpose("Расчеты клиринговой сессии"); paymentInstruction.setCreditLeg_direction(InOutDirection.out.getKey()); paymentInstruction.setDebitLeg_direction(InOutDirection.in.getKey()); paymentInstruction.setTransactionStatus("STLD"); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderFinalMkrDeals.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderFinalMkrDeals.java index 3bffeaa54..d59bc9bf5 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderFinalMkrDeals.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderFinalMkrDeals.java @@ -23,9 +23,6 @@ import java.time.format.DateTimeFormatter; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; -/** - * Builder для кейса итоговой сессии МКР, 7 шаг, кейс - по сделкам - */ public class PaymentInstructionBuilderFinalMkrDeals { private final static Logger log = LoggerFactory.getLogger(PaymentInstructionBuilderFinalMkrDeals.class); @@ -41,7 +38,7 @@ public class PaymentInstructionBuilderFinalMkrDeals { private Long sessionId; private BigDecimal amount; protected LocalDate documentNumberResetAt; - protected AtomicLong documentNumberId = new AtomicLong(0L); // порядковый номер (сквозной по всем компаниям за день + protected AtomicLong documentNumberId = new AtomicLong(0L); private static final DateTimeFormatter DATE_FORMATTER_ddMMyy = DateTimeFormatter.ofPattern("ddMMyy"); private String purpose; private String lmtPurpose = null; @@ -98,9 +95,9 @@ public class PaymentInstructionBuilderFinalMkrDeals { PaymentInstruction payment2; Instant now = Instant.now(); - String symbolPRC = selectSymbolValue(Sender.Prc.getId(), CompanySymbol.BIC); // 2 "НКО АО ПРЦ" + String symbolPRC = selectSymbolValue(Sender.Prc.getId(), CompanySymbol.BIC); String tranBic; - { // record 1 + { payment1 = new PaymentInstruction(); payment1.setCreated(now); payment1.setClearingDate(TimeUtil.toLocalDate(now)); @@ -115,7 +112,7 @@ public class PaymentInstructionBuilderFinalMkrDeals { } } { - Company companyPRC = companyImdg.getSingleObjectByID(Sender.Prc.getId()); // 2 "НКО АО ПРЦ" + Company companyPRC = companyImdg.getSingleObjectByID(Sender.Prc.getId()); if (companyPRC == null) { log.warn("Company.id={} not found", Sender.Prc.getId()); } else { @@ -175,13 +172,11 @@ public class PaymentInstructionBuilderFinalMkrDeals { payment1.setDebitLeg_securityId(lm_t.getSecurityId()); payment1.setSessionId(sessionId); } - - //**************** - { // record 2 + { payment2 = new PaymentInstruction(); payment2.setCreated(now); payment2.setClearingDate(TimeUtil.toLocalDate(now)); - payment2.setSenderId(Sender.One.getId()); // СПВБ + payment2.setSenderId(Sender.One.getId()); payment2.setAddresseeId(cm_t.getCompanyId()); String symbol2 = selectSymbolValue(payment2.getAddresseeId(), CompanySymbol.BIC); if (symbol2 == null) { @@ -236,7 +231,7 @@ public class PaymentInstructionBuilderFinalMkrDeals { } LocalDate nowD = LocalDate.now(); if (documentNumberResetAt == null || documentNumberResetAt.isBefore(nowD)) synchronized (this) { - long oldNum = documentNumberId.get(); // reset optimistic + long oldNum = documentNumberId.get(); if (oldNum > 0) { while (!documentNumberId.compareAndSet(oldNum, 0)) { oldNum = documentNumberId.get(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderForSecurities.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderForSecurities.java index 55b5bc356..cf3a61fa7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderForSecurities.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderForSecurities.java @@ -38,7 +38,7 @@ public class PaymentInstructionBuilderForSecurities { private String purpose; protected LocalDate documentNumberResetAt; - protected AtomicLong documentNumberId = new AtomicLong(0L); // порядковый номер (сквозной по всем компаниям за день + protected AtomicLong documentNumberId = new AtomicLong(0L); private static final DateTimeFormatter DATE_FORMATTER_ddMMyy = DateTimeFormatter.ofPattern("ddMMyy"); private Long senderId; private Long addresseeId; @@ -110,31 +110,6 @@ public class PaymentInstructionBuilderForSecurities { payment.setClearingDate(TimeUtil.toLocalDate(now)); payment.setSenderId(senderId); payment.setAddresseeId(addresseeId); -// { -// String tranBic = selectSymbolValue(payment.getAddresseeId(), CompanySymbol.BIC); -// if (tranBic == null) { -// log.warn("CompanySymbols BIC not found for companyId={}", payment.getAddresseeId()); -// } else { -// payment.setAdresseeBic(tranBic); -// } -// } -// { -// Company companyPRC = companyImdg.getSingleObjectByID(Sender.Prc.getId()); // 2 "НКО АО ПРЦ" -// if (companyPRC == null) { -// log.warn("Company.id={} not found", Sender.Prc.getId()); -// } else { -// payment.setPayeeBankName(companyPRC.getShortName()); -// payment.setAddresseeBankName(companyPRC.getShortName()); -// } -// } -// { -// String payeeBic = selectSymbolValue(payment.getSenderId(), CompanySymbol.BIC); -// if (payeeBic == null) { -// log.warn("payeeBic by senderId={} not found", payment.getSenderId()); -// } else { -// payment.setPayeeBic(payeeBic); -// } -// } if (registry.getSettlementDate() != null) { payment.setPaymentDate(TimeUtil.localDateToInstant(registry.getSettlementDate())); @@ -178,7 +153,7 @@ public class PaymentInstructionBuilderForSecurities { } LocalDate nowD = LocalDate.now(); if (documentNumberResetAt == null || documentNumberResetAt.isBefore(nowD)) synchronized (this) { - long oldNum = documentNumberId.get(); // reset optimistic + long oldNum = documentNumberId.get(); if (oldNum > 0) { while (!documentNumberId.compareAndSet(oldNum, 0)) { oldNum = documentNumberId.get(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java index bb3667c39..735ab223c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionBuilderV2.java @@ -33,7 +33,7 @@ public class PaymentInstructionBuilderV2 { private Account debitLegAccount; private String purpose; protected LocalDate documentNumberResetAt; - protected AtomicLong documentNumberId = new AtomicLong(0L); // порядковый номер (сквозной по всем компаниям за день + protected AtomicLong documentNumberId = new AtomicLong(0L); private static final DateTimeFormatter DATE_FORMATTER_ddMMyy = DateTimeFormatter.ofPattern("ddMMyy"); private Long senderId; private Long addresseeId; @@ -104,7 +104,7 @@ public class PaymentInstructionBuilderV2 { } } { - Company companyPRC = companyImdg.getSingleObjectByID(Sender.Prc.getId()); // 2 "НКО АО ПРЦ" + Company companyPRC = companyImdg.getSingleObjectByID(Sender.Prc.getId()); if (companyPRC == null) { log.warn("Company.id={} not found", Sender.Prc.getId()); } else { @@ -163,7 +163,7 @@ public class PaymentInstructionBuilderV2 { } LocalDate nowD = LocalDate.now(); if (documentNumberResetAt == null || documentNumberResetAt.isBefore(nowD)) synchronized (this) { - long oldNum = documentNumberId.get(); // reset optimistic + long oldNum = documentNumberId.get(); if (oldNum > 0) { while (!documentNumberId.compareAndSet(oldNum, 0)) { oldNum = documentNumberId.get(); 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 02d9be6c6..bc68ae7ac 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 @@ -29,8 +29,8 @@ import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; @Service public class PaymentInstructionCreator { - protected static final Long SPVB_ID = 1L; // СПВБ - protected static final Long PRC_ID = 2L; // 2 "НКО АО ПРЦ" + protected static final Long SPVB_ID = 1L; + protected static final Long PRC_ID = 2L; private static final DateTimeFormatter DATE_FORMATTER_ddMMyy = DateTimeFormatter.ofPattern("ddMMyy"); private final Logger log = LoggerFactory.getLogger(getClass()); @@ -44,7 +44,7 @@ public class PaymentInstructionCreator { protected final Imdg liabilitiesClaimsMoneyImdg; protected final Imdg executionDepositImdg; - protected AtomicLong documentNumberId = new AtomicLong(0L); // порядковый номер (сквозной по всем компаниям за день + protected AtomicLong documentNumberId = new AtomicLong(0L); protected LocalDate documentNumberResetAt; @Autowired @@ -59,11 +59,6 @@ public class PaymentInstructionCreator { this.idGenerator = imdgProvider.getImdgIdGenerator(); } - /** - * 2.2.2. Выполнить Создание paymentInstruction по liabilitiesClaimsAssets - * - * @return Созданные PaymentInstruction, может быть несколько. Они уже сохранены в IMDG. - */ public List createAndSavePaymentInstructions(ExecutionDeposit executionDeposit, LiabilitiesClaimsAssets liabilitiesClaimsAssets, Collection clearingCategory) { List newPaymentInstructions = createPaymentInstructions(executionDeposit, liabilitiesClaimsAssets, clearingCategory); @@ -82,7 +77,7 @@ public class PaymentInstructionCreator { payment1.setClearingDate(TimeUtil.toLocalDate(now)); payment1.setSenderId(liabilitiesClaimsAssets.getCompanyId()); - payment1.setAddresseeId(SPVB_ID); // СПВБ + payment1.setAddresseeId(SPVB_ID); String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC); if (symbol1 == null) { @@ -91,7 +86,7 @@ public class PaymentInstructionCreator { payment1.setAdresseeBic(symbol1); } - Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" + Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); String companyPRCName = null; if (companyPRC == null) { log.warn("Company.id={} not found", PRC_ID); @@ -100,7 +95,7 @@ public class PaymentInstructionCreator { } payment1.setPayeeBankName(companyPRCName); - String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" + String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); payment1.setPayeeBic(symbolPRC); payment1.setAddresseeBankName(companyPRCName); @@ -133,27 +128,13 @@ public class PaymentInstructionCreator { } payment1.setDebit_csAccount(null); -// payment1.setCreditLeg_direction(InOutDirection.out.getKey()); -// payment1.setDebitLeg_direction(InOutDirection.in.getKey()); payment1.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setTransactionStatus(TransactionStatus.stld.getKey()); - - -// payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1)); } - /** - * Создаёт и сохраняет - * - * - * @param executionDeposit - * @param liabilitiesClaimsAssets - * @param clearingCategory - * @return - */ protected List createPaymentInstructions(ExecutionDeposit executionDeposit, LiabilitiesClaimsAssets liabilitiesClaimsAssets, Collection clearingCategory) { List newPaymentInstructions = new ArrayList<>(); @@ -163,9 +144,7 @@ public class PaymentInstructionCreator { log.debug("For liabilitiesClaimsAssets.SettlementDate={} is not today.", liabilitiesClaimsAssets.getSettlementDate()); return newPaymentInstructions; } - // I if (clearingCategory.contains(ClearingCategory.I)) { - // см. updatePaymentInstructionsFirstI() - код одинаковый log.debug("By liabilitiesClaimsAssets[{}] create for category I 1 PaymentInstruction record", liabilitiesClaimsAssets.getId()); PaymentInstruction payment1 = new PaymentInstruction(); @@ -178,201 +157,20 @@ public class PaymentInstructionCreator { payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1)); newPaymentInstructions.add(payment1); - - /*{ - PaymentInstruction payment2 = new PaymentInstruction(); - - payment2.setId(idGenerator.nextId()); - payment2.setCreated(now); - payment2.setClearingDate(TimeUtil.toLocalDate(now)); - - payment2.setSenderId(SPVB_ID); // СПВБ - - { - String sqlLCA = String.format("exchangeExecutionId = %s and side != '%s'", - executionDeposit.getExchangeExecutionId(), executionDeposit.getSide()); - ExecutionDeposit counterExecutionDeposit = executionDepositImdg.getSingleObjectBySQL(sqlLCA); - if (counterExecutionDeposit == null) { - log.warn("Counter ExecutionDeposit not found for : {}", sqlLCA); - } else { - payment2.setAddresseeId(counterExecutionDeposit.getCompanyId()); - log.trace("payment2.AddresseeId={} found by: {}", payment2.getAddresseeId(), sqlLCA); - } - } - - String symbol2 = selectSymbolValue(payment2.getAddresseeId(), CompanySymbol.BIC); - if (symbol2 == null) { - log.warn("CompanySymbols BIC not found for companyId={}", payment2.getAddresseeId()); - } else { - payment2.setAdresseeBic(symbol2); - } - - Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" - String companyPRCName = null; - if (companyPRC == null) { - log.warn("Company.id={} not found", PRC_ID); - } else { - companyPRCName = companyPRC.getShortName(); - } - payment2.setPayeeBankName(companyPRCName); - - String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" - payment2.setPayeeBic(symbolPRC); - - payment2.setAddresseeBankName(companyPRCName); - - payment2.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); - - payment2.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); - - payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - - Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue(); - payment2.setCreditLegAmount(amount); - payment2.setDebitLegAmount(amount); - - { - Account anotherAcc = selectAccount(payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); - if (anotherAcc == null) { - log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", - payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); - } else { - payment2.setCreditLegAccountId(anotherAcc.getId()); - } - } - - payment2.setCreditCsAccount(null); - - { - Account acc2 = accountImdg.getSingleObjectByID(payment2.getCreditLegAccountId()); - if (acc2 != null) { - payment2.setCreditLegAccount(acc2.getAccount()); - } - } - - { - Account acc2 = selectAccount(payment2.getAddresseeId(), AccountType.Clrn, Status.Active, Allowed.ALLOWED); - if (acc2 != null) { - payment2.setDebitLegAccountId(acc2.getId()); - payment2.setDebitLegAccount(acc2.getAccount()); - } - } - - payment2.setDebitCsAccount(null); - -// payment2.setCreditLegDirection(InOutDirection.out.getKey()); -// payment2.setDebitLegDirection(InOutDirection.in.getKey()); - - payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - - payment2.setTransactionStatus(TransactionStatus.stld.getKey()); - - - payment2.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment2)); - - newPaymentInstructions.add(payment2); - }*/ } else { - // V / B if (clearingCategory.contains(ClearingCategory.V)) { log.debug("By liabilitiesClaimsAssets[{}] create for category V 0 PaymentInstruction record - ignore", liabilitiesClaimsAssets.getId()); -// PaymentInstruction payment1 = new PaymentInstruction(); -// payment1.setId(idGenerator.nextId()); -// payment1.setCreated(now); -// payment1.setClearingDate(TimeUtil.toLocalDate(now)); -// -// payment1.setSenderId(SPVB_ID); // СПВБ -// -// { -// String sqlLCA = String.format("exchangeExecutionId = %s and side != '%s'", -// executionDeposit.getExchangeExecutionId(), executionDeposit.getSide()); -// ExecutionDeposit counterExecutionDeposit = executionDepositImdg.getSingleObjectBySQL(sqlLCA); -// if (counterExecutionDeposit == null) { -// log.warn("Counter ExecutionDeposit not found for : {}", sqlLCA); -// } else { -// payment1.setAddresseeId(counterExecutionDeposit.getCompanyId()); -// log.trace("payment1.AddresseeId={} found by: {}", payment1.getAddresseeId(), sqlLCA); -// } -// } -// -// String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC); -// if (symbol1 == null) { -// log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId()); -// } else { -// payment1.setAdresseeBic(symbol1); -// } -// -// Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" -// String companyPRCName = null; -// if (companyPRC == null) { -// log.warn("Company.id={} not found", PRC_ID); -// } else { -// companyPRCName = companyPRC.getShortName(); -// } -// payment1.setPayeeBankName(companyPRCName); -// -// String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" -// payment1.setPayeeBic(symbolPRC); -// -// payment1.setAddresseeBankName(companyPRCName); -// -// payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); -// -// payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); -// -// payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); -// -// Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue(); -// payment1.setCreditLegAmount(amount); -// payment1.setDebitLegAmount(amount); -// -// { -// Account acc1 = selectAccount(payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED); -// if (acc1 == null) { -// log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", -// payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED); -// } else { -// payment1.setCreditLegAccountId(acc1.getId()); -// payment1.setCreditLegAccount(acc1.getAccount()); -// } -// } -// -// payment1.setCreditCsAccount(null); -// -// { -// Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED); -// if (acc1 != null) { -// payment1.setDebitLegAccountId(acc1.getId()); -// payment1.setDebitLegAccount(acc1.getAccount()); -// } -// } -// -// payment1.setDebitCsAccount(null); -// -//// payment1.setCreditLegDirection(InOutDirection.out.getKey()); -//// payment1.setDebitLegDirection(InOutDirection.in.getKey()); -// -// payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); -// payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); -// -// payment1.setTransactionStatus(TransactionStatus.stld.getKey()); -// -// -// payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1)); -// -// newPaymentInstructions.add(payment1); } if (clearingCategory.contains(ClearingCategory.B)) { log.debug("By liabilitiesClaimsAssets[{}] create for category B 2 PaymentInstruction record", liabilitiesClaimsAssets.getId()); - { // record 1 + { { PaymentInstruction payment1 = new PaymentInstruction(); payment1.setId(idGenerator.nextId()); payment1.setCreated(now); payment1.setClearingDate(TimeUtil.toLocalDate(now)); - payment1.setSenderId(SPVB_ID); // СПВБ + payment1.setSenderId(SPVB_ID); payment1.setAddresseeId(liabilitiesClaimsAssets.getCompanyId()); String symbol2 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC); @@ -382,7 +180,7 @@ public class PaymentInstructionCreator { payment1.setAdresseeBic(symbol2); } - Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" + Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); String companyPRCName = null; if (companyPRC == null) { log.warn("Company.id={} not found", PRC_ID); @@ -391,7 +189,7 @@ public class PaymentInstructionCreator { } payment1.setPayeeBankName(companyPRCName); - String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" + String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); payment1.setPayeeBic(symbolPRC); payment1.setAddresseeBankName(companyPRCName); @@ -432,9 +230,6 @@ public class PaymentInstructionCreator { payment1.setDebit_csAccount(null); -// payment2.setCreditLeg_direction(InOutDirection.out.getKey()); -// payment2.setDebitLeg_direction(InOutDirection.in.getKey()); - payment1.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); @@ -446,7 +241,7 @@ public class PaymentInstructionCreator { } } - { // record 2 + { PaymentInstruction payment2 = new PaymentInstruction(); payment2.setId(idGenerator.nextId()); payment2.setCreated(now); @@ -463,7 +258,7 @@ public class PaymentInstructionCreator { payment2.setAdresseeBic(symbol1); } - Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" + Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); String companyPRCName = null; if (companyPRC == null) { log.warn("Company.id={} not found", PRC_ID); @@ -472,7 +267,7 @@ public class PaymentInstructionCreator { } payment2.setPayeeBankName(companyPRCName); - String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" + String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); payment2.setPayeeBic(symbolPRC); payment2.setAddresseeBankName(companyPRCName); @@ -510,9 +305,6 @@ public class PaymentInstructionCreator { payment2.setDebit_csAccount(null); -// payment1.setCreditLegDirection(InOutDirection.out.getKey()); -// payment1.setDebitLegDirection(InOutDirection.in.getKey()); - payment2.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment2.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); @@ -527,11 +319,6 @@ public class PaymentInstructionCreator { return newPaymentInstructions; } - /** - * - * @param contract liabilitiesClaimsAssets.contract - * @return - */ protected String paymentPurpose(String contract) { return "Размещение депозита " + (contract == null ? "" : contract); } @@ -546,12 +333,6 @@ public class PaymentInstructionCreator { return payment1; } - /** - * Обновление п оаналогии с createPaymentInstructions - * @param payment1 - * @param liabilitiesClaimsAssets - * @param clearingCategory - */ public void updatePaymentInstructionsFirstI(PaymentInstruction payment1, LiabilitiesClaimsAssets liabilitiesClaimsAssets, ClearingCategory clearingCategory) { @@ -564,8 +345,6 @@ public class PaymentInstructionCreator { log.debug("By liabilitiesClaimsAssets[{}] update for category I 1 PaymentInstruction {} record", liabilitiesClaimsAssets.getId(), payment1.getId()); - - // I check if (!ClearingCategory.I.equals(clearingCategory)) { throw new IllegalArgumentException("Clearing category is not I. Method not implemented for " + clearingCategory); } @@ -580,7 +359,7 @@ public class PaymentInstructionCreator { protected String nextDocumentNumber(LiabilitiesClaimsAssets liabilitiesClaimsAssets, PaymentInstruction paymentInstruction) { LocalDate nowD = LocalDate.now(); if (documentNumberResetAt == null || documentNumberResetAt.isBefore(nowD)) synchronized (this) { - long oldNum = documentNumberId.get(); // reset optimistic + long oldNum = documentNumberId.get(); if (oldNum > 0) { while (!documentNumberId.compareAndSet(oldNum, 0)) { oldNum = documentNumberId.get(); @@ -634,63 +413,16 @@ public class PaymentInstructionCreator { } - /** - * 2.2.2.1. Выполнить Изменение liabilitiesClaimsAssets по paymentInstruction. - */ public void updateFieldLiabilitiesClaimsAssetsByPayment(LiabilitiesClaimsAssets liabilitiesClaimsAssets, LiabilitiesClaimsMoney liabilitiesClaimsMoney, List paymentInstructions, Collection clearingCategory) { -// final boolean isFirstLeg = true; -// final boolean isSecondLeg = !isFirstLeg; - PaymentInstruction paymentIAny = paymentInstructions.get(paymentInstructions.size() - 1); // брать последнюю запись для ID - -// if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { -// BigDecimal amount = bdFromLongSafe(paymentIAny.getCreditLegAmount()); -//// При обновлении (по paymentInstruction и категория I и счет CLRN):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount -//// При обновлении (по paymentInstruction и категория V и счет INFO):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount -// amount = liabilitiesClaimsAssets.getLiabilitiesQuantity().subtract(amount); -// liabilitiesClaimsAssets.setLiabilitiesQuantity(amount); -// } -// if (clearingCategory.contains(ClearingCategory.B)) { -// BigDecimal amount = bdFromLongSafe(paymentIAny.getCreditLegAmount()); -// // При обновлении (по paymentInstruction и категория B и счет CLRN): из paymentInstruction.creditLeg_amount -// liabilitiesClaimsAssets.setLiabilitiesQuantity(amount); -// } - -// if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { -// BigDecimal amount = bdFromLongSafe(paymentIAny.getDebitLegAmount()); -// liabilitiesClaimsAssets.setClaimsQuantity(amount); -// } -// if (clearingCategory.contains(ClearingCategory.B)) { -// BigDecimal amount = bdFromLongSafe(paymentIAny.getDebitLegAmount()); -// amount = safeBD(liabilitiesClaimsAssets.getClaimsQuantity()).subtract(amount); -// liabilitiesClaimsAssets.setClaimsQuantity(amount); -// } - -// //на базе успешного/неуспешного изменения по paymentInstruction -// if (TransactionStatus.fail.equalsByKey(paymentIAny.getTransactionStatus())) { -// liabilitiesClaimsAssets.setClearingStatus(ClearingStatus.FAIL.getKey()); -// } else if (TransactionStatus.ok.equalsByKey(paymentIAny.getTransactionStatus())) { -// liabilitiesClaimsAssets.setClearingStatus(ClearingStatus.OK.getKey()); -// } - -// liabilitiesClaimsAssets.setLiabilitiesClaimsMoneyId(liabilitiesClaimsMoney.getId()); + PaymentInstruction paymentIAny = paymentInstructions.get(paymentInstructions.size() - 1); liabilitiesClaimsAssets.setPaymentId(paymentIAny.getId()); liabilitiesClaimsAssets.setUpdated(Instant.now()); } - /** - * 2.2.2.2. Выполнить Изменение liabilitiesClaimsMoney по paymentInstruction. - * Обновление liabilitiesClaimsMoney первой/второй ноги по liabilitiesClaimsAssets - * - * @param liabilitiesClaimsMoney обновить этот объект (firstLeg) - * @param isFirstLeg true - первая, false вторая - * @param paymentInstructions - * @param clearingCategory - * @return были внесены изменения в liabilitiesClaimsMoney - */ public boolean updateFieldLiabilitiesClaimsMoneyByPayment(LiabilitiesClaimsMoney liabilitiesClaimsMoney, boolean isFirstLeg, List paymentInstructions, @@ -707,7 +439,6 @@ public class PaymentInstructionCreator { modified = true; } if (isSecondLeg) { - // liabilitiesAmount не меняется } } @@ -718,7 +449,6 @@ public class PaymentInstructionCreator { modified = true; } if (isSecondLeg) { - // liabilitiesAmount не меняется ; } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistryBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistryBuilder.java index 24a99b7bb..88bebef9d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistryBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistryBuilder.java @@ -117,17 +117,11 @@ public class RegistryBuilder { String securitySymbol = obtainSecuritySymbol(statement.getSecurityId()); rgs.setSecuritySymbol(securitySymbol); } - //fixme !rgs.setSettlementCode(); - rgs.setTradingDate(statement.getSettlementDate()); //fixme ! today ? + rgs.setTradingDate(statement.getSettlementDate()); rgs.setClearingDate(LocalDate.now()); - //fixme rgs.setRefundDate(); - //fixme rgs.setValueDate(); rgs.setContract(statement.getContract()); - //создается на базе stmt, companyCred, accountDeb rgs.setCounterPartyId(statement.getAddresseeId()); rgs.setCreated(Instant.now()); - - //по дефолту создаем с балансом 0, а потом пересчитываем по необходимости rgs.setBalance(BigDecimal.ZERO); rgs.setDebit(BigDecimal.ZERO); rgs.setCredit(BigDecimal.ZERO); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistrySecurityBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistrySecurityBuilder.java index fb42baf34..2a63a04ef 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistrySecurityBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/RegistrySecurityBuilder.java @@ -117,17 +117,11 @@ public class RegistrySecurityBuilder { String securitySymbol = obtainSecuritySymbol(statement.getSecurityId()); rgs.setSecuritySymbol(securitySymbol); } - //fixme !rgs.setSettlementCode(); - rgs.setTradingDate(statement.getSettlementDate()); //fixme ! today ? + rgs.setTradingDate(statement.getSettlementDate()); rgs.setClearingDate(LocalDate.now()); - //fixme rgs.setRefundDate(); - //fixme rgs.setValueDate(); rgs.setContract(statement.getContract()); - //создается на базе stmt, companyCred, accountDeb rgs.setCounterPartyId(statement.getAddresseeId()); rgs.setCreated(Instant.now()); - - //по дефолту создаем с балансом 0, а потом пересчитываем по необходимости rgs.setBalance(BigDecimal.ZERO); rgs.setDebit(BigDecimal.ZERO); rgs.setCredit(BigDecimal.ZERO); 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 ef31d5c3e..6b66fc069 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 @@ -27,8 +27,6 @@ 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.getCreditLeg_account()); if (paymentInstruction.getSenderId().equals(Sender.One.getId())) { sDf03.setSbanknam1(paymentInstruction.getPayeeBankName()); @@ -39,7 +37,6 @@ public class Sdf03Builder { } } if (sDf03.getSbanknam1() != null && sDf03.getSbanknam1().length() > 35) { - //(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5). sDf03.setSbanknam2(sDf03.getSbanknam1().substring(35)); sDf03.setSbanknam1(sDf03.getSbanknam1().substring(0, 35)); if (sDf03.getSbanknam2().length() > 35) { @@ -52,16 +49,11 @@ public class Sdf03Builder { sDf03.setSbanknam5(sDf03.getSbanknam4().substring(35)); sDf03.setSbanknam4(sDf03.getSbanknam4().substring(0, 35)); if (sDf03.getSbanknam5().length() > 35) { - //warn: too large for all field - //sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35)); } } } } } - // =@00100, если ?; - // =@00000, если ?. -// 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()); @@ -78,22 +70,11 @@ public class Sdf03Builder { sDf03.setPay_val("RUR"); String sumDeb = paymentInstruction.getDebitLeg_amount() != null ? paymentInstruction.getDebitLeg_amount().toString() : null; sDf03.setSum_deb(BigDecimalUtil.limitDecimalPlaces(sumDeb, 2)); - //37 sp_code varchar(2) Код назначения платежа String[] splitPaymentPurpose = SpecifUtil.split5SegmentsBy35Symbols(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); } } 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 3caca1a33..95c8fe5fe 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 @@ -3,15 +3,7 @@ package ru.spcex.clearing.service.builder; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.payment.PaymentInstruction; import ru.clearing.classes.statics.data.sdf.SDf11; -import ru.spcex.clearing.service.SpecifUtil; -import ru.spcex.platform.enumeration.Sender; import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.service.builder.Sdf03Builder.PROPERTY_DATE_FORMATTER_YY; public class Sdf11Builder { private final Imdg companyImdg; @@ -22,78 +14,6 @@ public class Sdf11Builder { public SDf11 buildSdf11(PaymentInstruction paymentInstruction, Long generationId) { SDf11 sDf11 = new SDf11(); -// 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/execution/ExecutionDepositComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionDepositComponent.java index 815bac8e1..9ad6998c7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionDepositComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionDepositComponent.java @@ -22,7 +22,10 @@ import ru.spcex.clearing.platform.messaging.domain.cud.registry.DealRegisterNewR import ru.spcex.clearing.platform.messaging.domain.cud.registry.ExecutionType; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.service.validation.ValidationStored; -import ru.spcex.platform.enumeration.*; +import ru.spcex.platform.enumeration.CurrencyCode; +import ru.spcex.platform.enumeration.MoneyFlowSide; +import ru.spcex.platform.enumeration.Section; +import ru.spcex.platform.enumeration.Side; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; @@ -43,10 +46,6 @@ import java.util.Map; import java.util.Optional; import java.util.function.Function; -/** - * 1.35. executionDeposit - Сделки - * I - Изменение executionDeposit при получении новых сделок из ТС (s_trade) - */ @Component @EnableScheduling public class ExecutionDepositComponent { @@ -56,7 +55,6 @@ public class ExecutionDepositComponent { private final Imdg executionDepositImdg; private final Imdg

listingImdg; - //fixme ждать ТЗ Long tradeNum; Instant tradingDay; private final IMessageResolver msgResolver; @@ -81,9 +79,6 @@ public class ExecutionDepositComponent { resetTradingDay(); } - /** - * Сбрасывать каждый день в 01:00:01 "0 1 0 1 * ?" - */ @Scheduled(cron = "0 1 0 1 * ?") public void resetTradingDay() { log.trace("Recheck today trading day for search STrade. Current state: tradeNum={}, tradeDat={}", tradeNum, tradingDay); @@ -97,7 +92,6 @@ public class ExecutionDepositComponent { public void processNewTS() { log.debug("Start check new S_TRADE after {}", tradingDay); - //выбираем STrades на сегодня с правильным section Collection sTrades = sTradeImdg.getCollectionObjectsByFieldValues(Map.of( "tradeDate", LocalDate.now(), "section", Section.MKR.getKey() @@ -108,8 +102,6 @@ public class ExecutionDepositComponent { logError(ClearingError.NewDealsNotFound); return; } - - //убираем уже добавленные в ExecutionDeposit sTrades.removeIf(sTrd -> { Side sTrdSide = IEnumKey.getEnumByKey(Side.class, sTrd.getOperation()); if (sTrdSide == null || !(sTrdSide.equals(Side.BUY) || sTrdSide.equals(Side.SELL))) { @@ -126,8 +118,6 @@ public class ExecutionDepositComponent { for (STrades sTrd : sTrades) { log.trace("S_TRADE[{}] new", sTrd.getId()); - - //проверки IValidator validator = stradesValidator.apply(sTrd); Optional error = validator.tillFirstError(); if (error.isPresent()) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java index 2d3a87e5e..fce96afc9 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/execution/ExecutionFondComponent.java @@ -52,7 +52,6 @@ public class ExecutionFondComponent { private final Imdg clientCodeImdg; private final Imdg marketImdg; - //fixme ждать ТЗ Long tradeNum; Instant tradingDay; private final IMessageResolver msgResolver = new SimpleMessageResolver(); @@ -75,9 +74,6 @@ public class ExecutionFondComponent { resetTradingDay(); } - /** - * Сбрасывать каждый день в 01:00:01 "0 1 0 1 * ?" - */ @Scheduled(cron = "0 1 0 1 * ?") public void resetTradingDay() { log.trace("Recheck today trading day for search STrade. Current state: tradeNum={}, tradeDat={}", tradeNum, tradingDay); @@ -91,7 +87,6 @@ public class ExecutionFondComponent { public void processNewTS() { log.debug("Start check new S_TRADE after {}", tradingDay); - //выбираем STrades на сегодня с правильным section Collection sTrades = sTradeImdg.getCollectionObjectsByFieldValues(Map.of( "tradeDate", LocalDate.now(), "section", Section.FOND.getKey() @@ -102,8 +97,6 @@ public class ExecutionFondComponent { logError(ClearingError.NewDealsNotFound); return; } - - //убираем уже добавленные в ExecutionDeposit sTrades.removeIf(sTrd -> { Side sTrdSide = IEnumKey.getEnumByKey(Side.class, sTrd.getOperation()); if (sTrdSide == null || !(sTrdSide.equals(Side.BUY) || sTrdSide.equals(Side.SELL))) { @@ -120,8 +113,6 @@ public class ExecutionFondComponent { for (STrades sTrd : sTrades) { log.trace("S_TRADE[{}] new", sTrd.getId()); - - //проверки IValidator validator = stradesValidator.apply(sTrd); Optional error = validator.tillFirstError(); if (error.isPresent()) { @@ -178,8 +169,6 @@ public class ExecutionFondComponent { eFond.setExchangeExecutionId(sTrades.getTradeNum()); eFond.setExchangeExecutionTime(sTrades.getTradeDateTime()); eFond.setTradingClearingRegistryId(rgstr.getId()); - - //todo можем ли просто переложить sTrades.getClassCode() или все такие искать, одно и тоже же ru.clearing.classes.statics.data.misc.Market market = marketImdg.getFirstObjectBySQL("code = '%s'".formatted(sTrades.getClassCode())); eFond.setMarket(sTrades.getClassCode()); @@ -195,9 +184,7 @@ public class ExecutionFondComponent { } } } - //fixme символьный код по справочнику currencyCode, соответствующий значению из sTrades.settleCurrency eFond.setSettlementCurrency(CurrencyCode.RUB.getKey()); - //fixme micro vs milli eFond.setExchangeExecutionMicroseconds(Instant.ofEpochMilli(sTrades.getTradeTimeMs())); eFond.setCompanyId(company.getId()); eFond.setDuration(sTrades.getRepoTerm()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java index 134b3e325..7de86f6df 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf01Executor.java @@ -85,8 +85,6 @@ public class Sdf01Executor extends AbstractExecutor { this.filenameObtainer = filenameObtainer; } - //todo доделать контроль sdf01 и sdf57 - @Override public String exportTableName() { return "DF-02"; @@ -119,9 +117,6 @@ public class Sdf01Executor extends AbstractExecutor { Account account = validator.getStored(ValidationStored.Sdf01Account); if (statementRequest.getAccountCreationResults().size() == 0 && ClearingError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { - //на данном шаге company существует -> getId ok - //формируем пакетный запрос на добавление account - //ответ придет в этот же метод, process if (company == null) { log.warn("account {} for sdf01.id={} not found. Can not send request for creation, cause company not found too", sdf01.getAccount(), sdf01.getId()); } else { @@ -134,7 +129,6 @@ public class Sdf01Executor extends AbstractExecutor { } if (error.isPresent()) { log.error("sdf01.id={} error: {}", sdf01.getId(), messageResolver.resolve(error.get())); - //fixme инициировать = команда для другого сервиса? sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup)); sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup)); continue; } @@ -175,29 +169,15 @@ public class Sdf01Executor extends AbstractExecutor { registryImdg.insert(registryB); registryImdg.insert(rgs); } - //if (!checkDiffBalance(rgs.getDiffBalance())) { - // log.info("sdf01.id={}, stmt.id={}, registry.id={} diffBalance is not zero: {}", - // sdf01.getId(), - // stmt.getId(), - // rgs.getId(), - // rgs.getDiffBalance()); - // reviseFailed = true; - //} stmt.setOperationStatus(OperationStatus.Executed.getKey()); statementImdg.update(stmt); } else { log.debug("sdf01.id={} activeness checks failed {}", sdf01.getId(), messageResolver.resolve(err.get())); - stmt.setErrorCodeId(err.get().getSubject().getId()); // fixme ErrorText insert + stmt.setErrorCodeId(err.get().getSubject().getId()); stmt.setOperationStatus(OperationStatus.Rejected.getKey()); statementImdg.update(stmt); } } - //NotificationNewRequest reviseNotification = new NotificationNewRequest(); - //reviseNotification.setObjectType(ObjectType.rgst.getKey()); - //reviseNotification.setComment(reviseFailed ? reviseFailedMessage : reviseSuccessMessage); - //reviseNotification.setPriority(reviseFailed ? Priority.HIGH.getKey() : Priority.LOW.getKey()); - //kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, reviseNotification); - //log.info("revise notification sent (revise {})", reviseFailed ? "error" : "success"); return result; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf04Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf04Executor.java index 3459ff88d..7498cf844 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf04Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf04Executor.java @@ -81,25 +81,13 @@ public class Sdf04Executor extends AbstractExecutor { Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId(); result.setChildGenerationId(generationIdForGroup); for (SDf04 sdf04 : sdf) { - //обычно мы ищем по группу sdf04, здесь как будто всегда только одна запись, todo нужно прочекать этот момент log.debug("Process sdf04 record; sdf04.id: {}", sdf04.getId()); Collection registries; Account anltAcc = accountImdg.getFirstObjectBySQL("account = '%s' and accountType = '%s'" .formatted(sdf04.getC_acc_deb(), AccountType.Anlt.getKey())); -// Account tranAcc = accountImdg.getFirstObjectBySQL("account = '%s' and accountType = '%s'" -// .formatted(sdf04.getC_acc_cred(), AccountType.Tran.getKey())); -// //если сдф04 не по аналитическому счету ни по tran счету, выбираем по тому c_acc_deb/c_acc_cred что пришло -// boolean isAnltAcc = anltAcc != null; -// boolean isTranAcc = tranAcc != null; -// if (isAnltAcc && isTranAcc) { -// log.warn("Found ANLT and TRAN acc by sdf04.id: {}", sdf04.getId()); -// } if (anltAcc == null) { registries = selectRegistryForSDF04(sdf04.getC_acc_deb()); -// String acc = anltAcc == null ? sdf04.getC_acc_deb() : sdf04.getC_acc_cred(); -// registries = selectRegistryForSDF04(acc); } else { - //в сдф04 указан ANLT или TRAN счет, ищем по контракту AnltSearcher.AnltSearch anltSearch = anltSearcher.loadByAnlt(sdf04.getSpecif_1()); if (!anltSearch.isFound()) { log.error("sdf04.id={} search by specif1 failed {}", sdf04.getId(), msgRslv.resolve(anltSearch.getError())); @@ -110,7 +98,6 @@ public class Sdf04Executor extends AbstractExecutor { } registries.forEach(am_b -> assets.processByAm_b(am_b, parseString(sdf04.getSum_deb()))); } - //todo переписать логику поиска на аналогичную по счетам(TRAN) Session activeSession = sessionImdg.getSingleObjectByFieldValues(Map.of("workflowStatus", Status.Active.getKey())); Instant now = Instant.now(); if (activeSession != null) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java index 1982a15ac..4173d092a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf06Executor.java @@ -68,17 +68,12 @@ public class Sdf06Executor { private final DmiService dmiService; private final static BigDecimal successResult = BigDecimal.ZERO; - //идет сессия (не возвращаем такую ошибку) private final static BigDecimal errorResult1 = new BigDecimal("1"); - //Участник не найден – переход в ручной режим private final static BigDecimal errorResult2 = new BigDecimal("2"); - //отказ от gateway либо недостаточно средств у нас private final static BigDecimal errorResult3 = new BigDecimal("3"); private final static BigDecimal errorResult4 = new BigDecimal("4"); - //not thread safe: used in EventReceiver single thread executor - //переменная контроля за тем что от гейтвея пришел ответ именно на наш запрос LinkedList> cachedRequests = new LinkedList<>(); private Long sdf06GroupId; private Long sdf07GroupId; @@ -147,7 +142,6 @@ public class Sdf06Executor { } Company company = validator.getStored(ValidationStored.Sdf06Company); TradingClearingRegistry tcr = validator.getStored(ValidationStored.Sdf06Tcr); - //проверка существует ли statement пока убрал Statement stmt = createStatementBySdf06(sDf06, company.getId(), validator.getStored(ValidationStored.Sdf06Account)); statementImdg.insert(stmt); log.debug("Statement created: {}", stmt.getId()); @@ -222,13 +216,10 @@ public class Sdf06Executor { } public void processGatewayResponse(BaseRequest req) { - //может прийти неограниченно позже 06го, после того как прошел клиринг например... Instant now = Instant.now(); String fileName = null; boolean requestIsIntendedForSdf06 = false; for (SingleAssetResponse gatewayMsg : req.getRequestPayload().getApprovals()) { - //получаем запрос для текущей группы sdf06 - //находим группу Long statementId = gatewayMsg.getEntityId(); ImdgPredicateBuilder pb = statementImdg.predicateBuilder(); Statement stmt = statementImdg.getFirstObjectByPredicate( @@ -254,7 +245,6 @@ public class Sdf06Executor { } Long groupId = sdf06.getGenerationId(); - //сверяем группу SDF06 пришедшего запроса с ожидаемой if (sdf06GroupId == null || !sdf06GroupId.equals(groupId)) { log.error("do not currently waiting for gateway response for statement.id {} sdf06 groupId {}; waiting for {}", statementId, @@ -357,7 +347,7 @@ public class Sdf06Executor { AssetOperationRequest req = new AssetOperationRequest(); req.setEntityId(stmt.getId()); req.setAmount(stmt.getAmount()); - req.setSecuritySymbol(CurrencyCode.RUB.getKey()); //fixme retrieve security symbol from validator + req.setSecuritySymbol(CurrencyCode.RUB.getKey()); req.setTradingCode(tradingCode); req.setCode(tcrCode); req.setDirection(stmt.getInOutDirection()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java index a5cff0d9a..758cdc5bd 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf08Executor.java @@ -136,8 +136,8 @@ public class Sdf08Executor extends AbstractExecutor { Account account = validator.getStored(ValidationStored.Sdf08Account); if (statementRequest.getAccountCreationResults().size() == 0 && ClearingErrorInternal.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { - Company company = searchCompany(sdf08.getDepoCode()); // validator.getStored(ValidationStored.Sdf08Company); - Long companyId = company == null ? null : company.getId(); // account == null сегда, т.к. кейс AccountNotPresent + Company company = searchCompany(sdf08.getDepoCode()); + Long companyId = company == null ? null : company.getId(); if (companyId == null) { log.warn("account {} for sdf08.id={} not found. Can not send request for creation, cause company not found too", sdf08.getDepoCode(), sdf08.getId()); } else { @@ -150,12 +150,10 @@ public class Sdf08Executor extends AbstractExecutor { } if (error.isPresent() && !ClearingError.SecurityNotFound.equals(error.get().getSubject())) { log.error("sdf01.id={} error: {}", sdf08.getId(), messageResolver.resolve(error.get())); - //fixme инициировать = команда для другого сервиса? sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup)); - // sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup)); continue; } stmt = createSdf08Statement(sdf08, account); - SDf09 sdf09New = createSuccessSdf09(sdf08, generationIdForGroup); //fixme тоже мб убрать + SDf09 sdf09New = createSuccessSdf09(sdf08, generationIdForGroup); sdf09Imdg.insert(sdf09New); stmt.setOutSDfId(sdf09New.getId()); statementImdg.insert(stmt); @@ -171,12 +169,11 @@ public class Sdf08Executor extends AbstractExecutor { rgs = reg.get(); updateReg(stmt, rgs); Registry registryUnitB = findRegByUnit(company.getId(), account.getId(), stmt.getSecurityId(), stmt.getContract(), rgs, RegistryUnit.B).orElse(copyRegB(rgs)); - Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getSecurityId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs)); //передаю null т.к. отнимется ниже по коду + Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getSecurityId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs)); if (registryUnitF.getId() == null) { registryImdg.insert(registryUnitF); log.debug("stmt.id={}, new AM*F.id={}", stmt.getId(), registryUnitF.getId()); } - //нужно сохранить registry B только если его не было if (registryUnitB.getId() == null) { registryImdg.insert(registryUnitB); log.debug("stmt.id={}, new AM*B.id={}", stmt.getId(), registryUnitB.getId()); @@ -192,11 +189,10 @@ public class Sdf08Executor extends AbstractExecutor { registryImdg.insert(registryB); registryImdg.insert(registryF); } - //2. отправить notification на backend stmt.setOperationStatus(OperationStatus.Executed.getKey()); statementImdg.update(stmt); } else { - stmt.setErrorCodeId(error.get().getSubject().getId()); // fixme ErrorText insert + stmt.setErrorCodeId(error.get().getSubject().getId()); stmt.setOperationStatus(OperationStatus.Rejected.getKey()); statementImdg.update(stmt); } @@ -234,22 +230,16 @@ public class Sdf08Executor extends AbstractExecutor { String accountType = null; if (depoCode != null) { int p = depoCode.indexOf(":"); - if (p == -1) { // двоеточие распарсили заранее при импорте файла, пример: 758200000AT0:000000000:SOVKB-BV-01:NW:0:РНКБ Банк(ПАО) + if (p == -1) { p = depoCode.length(); } - if (p > 3) { // выбрать 3-ю букву, отсчитывая от последнего символа + if (p > 3) { accountType = depoCode.substring(p - 3, p - 2); } } return accountType; } - /** - * @param sdf01Id - * @param account DepoCode - * @param companyId - * @return AccountSdfRequestPart - */ private AccountSdfRequestPart createAccountRequestPart(Long sdf01Id, String account, Long companyId) { AccountSdfRequestPart req = new AccountSdfRequestPart(); req.setAccount(account); @@ -349,7 +339,6 @@ public class Sdf08Executor extends AbstractExecutor { rgs.setBalanceDimension(BalanceDimension.MONY.getKey()); rgs.setTradingDate(statement.getSettlementDate()); rgs.setClearingDate(LocalDate.now()); - //создается на базе stmt, companyCred, accountDeb rgs.setCounterPartyId(statement.getAddresseeId()); rgs.setCreated(Instant.now()); return rgs; @@ -382,7 +371,7 @@ public class Sdf08Executor extends AbstractExecutor { ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); ImdgPredicate rgstrPredicate = pb.and(pb.sql(sql), pb.sql(sql), - pb.equals("companyId", companyId), //fixme companyId? + pb.equals("companyId", companyId), pb.equals("accountId", accountId), pb.equals("securityId", securityId) ); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf10Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf10Executor.java index 2ee0a33d3..ee642beb6 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf10Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf10Executor.java @@ -243,8 +243,6 @@ public class Sdf10Executor { Instant now = Instant.now(); boolean requestIsIntendedForSdf10 = false; for (SingleAssetResponse gatewayMsg : req.getRequestPayload().getApprovals()) { - //получаем запрос для текущей группы sdf10 - //находим группу Long statementId = gatewayMsg.getEntityId(); ImdgPredicateBuilder pb = statementImdg.predicateBuilder(); Statement stmt = statementImdg.getFirstObjectByPredicate( @@ -267,7 +265,6 @@ public class Sdf10Executor { } Long groupId = sdf10.getGenerationId(); - //сверяем группу SDF10 пришедшего запроса с ожидаемой if (sdf10GroupId == null || !sdf10GroupId.equals(groupId)) { log.error("do not currently waiting for gateway response for statement.id {} sdf10 groupId {}; waiting for {}", statementId, @@ -281,11 +278,9 @@ public class Sdf10Executor { Security security = scrtSlct.selectSecurityById(stmt.getSecurityId()); createDs_iResponseFromGateway( stmt.getAccountId(), -// stmt.getAddresseeId(), security != null ? security.getSecuritySymbol() : null, stmt.getAmount().negate(), sdf10.getOutDocument()); - //tcrId, companyId, securitySymbol processedApproved(stmt, sdf10, updatedTime); } else { log.trace("statement.id={}, sdf11.id={}, sdf10.id={} rejected (by gateway answer)", @@ -340,11 +335,10 @@ public class Sdf10Executor { stmt.setAddresseeId(companyId); stmt.setSenderId(Sender.Prc.getId()); stmt.setStatementType(StatementType.incr.getKey()); - //fixme stmt.setComment(sdf10.()); stmt.setSecurityId(securityId); stmt.setAccountId(account.getId()); stmt.setAccount(account.getAccount()); - BigDecimal amount = safeBD(new BigDecimal(sdf10.getQuantity())); //fixme safe new BigDecimal + BigDecimal amount = safeBD(new BigDecimal(sdf10.getQuantity())); if (amount.compareTo(BigDecimal.ZERO) >= 0) { stmt.setInOutDirection(InOutDirection.in.getKey()); } else { @@ -362,9 +356,8 @@ public class Sdf10Executor { private AssetOperationRequest requestFromStatement(Statement stmt, String tradingCode, String tcrCode, String securityCode) { AssetOperationRequest req = new AssetOperationRequest(); req.setEntityId(stmt.getId()); -// req.setAmount(stmt.getAmount()); req.setQuantity(stmt.getAmount()); - req.setSecuritySymbol(securityCode); //fixme retrieve security symbol from validator + req.setSecuritySymbol(securityCode); req.setTradingCode(tradingCode); req.setCode(tcrCode); req.setDirection(stmt.getInOutDirection()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf13Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf13Executor.java index 7b82237ab..6d777800c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf13Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf13Executor.java @@ -73,13 +73,6 @@ public class Sdf13Executor extends AbstractExecutor { return result; } } -// for (SDf13 sdf13 : sdf) { -// //обычно мы ищем по группу sdf04, здесь как будто всегда только одна запись, todo нужно прочекать этот момент -// SDf12 sDf12 = selectSdf12bySdf13(sdf13); -// log.debug("Process sdf13 record; sdf13.id: {}", sdf13.getId()); -// Collection registries = selectRegistryForSDF12(sDf12.getDepoCodeSender(), sDf12.getSecurityCode()); -// registries.forEach(registry -> unlockRegistry(registry, new BigDecimal(sDf12.getQuantity()))); -// } Session activeSession = sessionImdg.getSingleObjectByFieldValues(Map.of("workflowStatus", Status.Active.getKey())); Instant now = Instant.now(); if (activeSession != null) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf20Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf20Executor.java index 3ff8ad990..64c49a7c0 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf20Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf20Executor.java @@ -124,7 +124,6 @@ public class Sdf20Executor { rgsImdg.insert(ds_i); log.debug("created DS*I.id={} for sdf20.id={}", ds_i.getId(), sDf20.getId()); } else if (RegistryStatus.OK.equalsByKey(ds_i.getRegistryStatus())) { - //защита от повторной обработки log.debug("DS*I.id={} found for sdf20.id={}. skipping sdf20", ds_i.getId(), sDf20.getId()); return; } @@ -145,9 +144,6 @@ public class Sdf20Executor { rgsImdg.update(as_t); rgsImdg.update(ds_i); assetsMng.process(assets.a__b(), assets.a__t(), assets.a__f(), BigDecimal.ZERO); - - //statement recfree in - //statement delfree out Statement statement = createStatement(cmp.getId(), acc, quantity, sDf20.getId(), sDf20.getTransactionNumber(), security.getId()); stmtImdg.insert(statement); log.debug("sdf20.id={}, processing as_t.id={}, as_f.id={}, as_b.id={}, ds_t.id={}. statement.id={}", @@ -155,7 +151,6 @@ public class Sdf20Executor { assets.a__t().getId(), assets.a__f().getId(), assets.a__b().getId(), ds_i.getId(), statement.getId()); - //только при зачислении на 20 и 21 идет запрос в gateway в Торговую систему if (InOutDirection.in.equals(direction)) { Collection requests = new ArrayList<>(); AssetOperationRequest req = requestFromStatement( @@ -172,17 +167,17 @@ public class Sdf20Executor { } } - private AssetOperationRequest requestFromStatement(BigDecimal quantity, //из sdf - String securitySymbol, //из sdf - String tradingCode, //из компании - String tcrCode//из TCR - ) { + private AssetOperationRequest requestFromStatement(BigDecimal quantity, + String securitySymbol, + String tradingCode, + String tcrCode + ) { AssetOperationRequest req = new AssetOperationRequest(); req.setEntityId(null); - req.setQuantity(quantity); //+ - req.setSecuritySymbol(securitySymbol); //+ - req.setTradingCode(tradingCode); //??? - req.setCode(tcrCode); //TCR + req.setQuantity(quantity); + req.setSecuritySymbol(securitySymbol); + req.setTradingCode(tradingCode); + req.setCode(tcrCode); req.setDirection(InOutDirection.in.getKey()); return req; } @@ -197,7 +192,6 @@ public class Sdf20Executor { stmt.setAddresseeId(companyId); stmt.setSenderId(Sender.Prc.getId()); stmt.setStatementType(StatementType.incr.getKey()); - //fixme stmt.setComment(sdf10.()); stmt.setAccountId(account.getId()); stmt.setAccount(account.getAccount()); stmt.setSecurityId(securityId); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf21Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf21Executor.java index fbb1f0dfb..416beb5e0 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf21Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf21Executor.java @@ -97,8 +97,6 @@ public class Sdf21Executor extends AbstractExecutor { this.securityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class); } - //todo доделать контроль sdf01 и sdf57 - @Override public String exportTableName() { return null; @@ -112,25 +110,6 @@ public class Sdf21Executor extends AbstractExecutor { @Override public void sendCommand(KafkaSender kafkaSender, Result result) {} - //V - Изменение statement по sDf57 - // - //1. Перед изменением statement необходимо выполнить ряд проверок: - // 1.1. Найти в company запись, у которой company.tradingCode=sDf57.deal_deb. Если такой записи нет, записать в лог ошибку (5211) "Компания %s не найдена". - // 1.2. Найти в company запись, у которой company.tradingCode=sDf57.deal_cred. Если такой записи нет, записать в лог ошибку (5211) "Компания %s не найдена". - // 1.3. Проверить, есть ли в таблице account счет, у которого account.account=sDf57.c_acc_deb. Если такой записи нет, записать в лог ошибку (5217) "Счет %s не найден". - // 1.4. Проверить, есть ли в таблице account счет, у которого account.account=sDf57.c_acc_cred. Если такой записи нет, записать в лог ошибку (5217) "Счет %s не найден". - // 1.5. Проверить, что sDf57.pay_val=RUR. Иначе записать в лог ошибку (5213) "Валюта %s не найдена". - //2. В зависимости от результата прохождения проверок в п.1 раздела Изменение statement по sDf57: - // 2.1. Если все проверки пройдены, необходимо сформировать 2 новые записи согласно описанию с соответствующим тэгом, - // где первая запись будет содержать информацию о плательщике (по sDf57.deal_deb), - // а вторая о получателе (по sDf57.deal_cred) и связаны по одному inSDfId (= sDf57.id). - // 2.2. Иначе запись в statement не добавляется. - //3. По итогу добавления statement: - // Если в п.1 раздела Изменение statement по sDf57 ошибок не обнаружено, то инициировать изменение таблицы registry согласно описанию с соответствующим тэгом. - // По итогу изменения registry должны быть обновлены значения полей в statement: - // - operationStatus; - // - errorCode в случае выявления ошибки; - // - errorText в случае выявления ошибки. public Result execute(Collection sdf, StatementRequest statementRequest) { Result result = new Result(); Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId(); @@ -151,7 +130,6 @@ public class Sdf21Executor extends AbstractExecutor { Company company = validator.getStored(ValidationStored.CompanyByTradingCode); Account account = validator.getStored(ValidationStored.Sdf21Account); log.debug("company.id={}, account.id={}", company.getId(), account.getId()); - //адресат CREDIT / владелец DEBIT Statement stmt = create(sdf21, company, account); statementImdg.insert(stmt); log.debug("created statement.id={}", stmt.getId()); @@ -160,19 +138,15 @@ public class Sdf21Executor extends AbstractExecutor { if (err.isEmpty()) { Optional astFound = RegistrySearch.builder(registryImdg) .rgsCode(RegistryTradingParams.AS_T) - .companyId(company.getId()) //раньше было stmt.getAddresseeId() - .accountId(account.getId()) //раньше было stmt.getAccountId() + .companyId(company.getId()) + .accountId(account.getId()) .securityId(stmt.getSecurityId()) .find(); astFound.ifPresentOrElse(rgs -> { log.debug("stmt.id={}, found AS*T.id={}, updating...", stmt.getId(), rgs.getId()); updateReg(stmt, rgs); - //добавил создание если не найдены Registry registryUnitB = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.B).orElse(copyRegB(rgs)); - Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs, null)); //передаю null т.к. отнимется ниже по коду -// registryUnitF.setBalance(rgs.getBalance().subtract(registryUnitB.getBalance())); -// registryUnitF.setUpdated(Instant.now()); - //registry F всегда меняется + Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs, null)); if (registryUnitF.getId() == null) { registryImdg.insert(registryUnitF); log.debug("stmt.id={}, new AM*F.id={}", stmt.getId(), registryUnitF.getId()); @@ -183,7 +157,6 @@ public class Sdf21Executor extends AbstractExecutor { } assets.process(registryUnitB, rgs, registryUnitF, BigDecimal.ZERO); log.debug("stmt.id={}, updated AM*F.id={}", stmt.getId(), registryUnitF.getId()); - //нужно сохранить registry B только если его не было registryImdg.update(rgs); log.debug("stmt.id={}, updated AM*T.id={}: balance {}/debit {}/ credit {}", stmt.getId(), @@ -216,7 +189,7 @@ public class Sdf21Executor extends AbstractExecutor { log.debug("stmt.id={} status -> {}", stmt.getId(), OperationStatus.Executed.getKey()); } else { log.debug("statement.id={} activness validation failed {}", stmt.getId(), messageResolver.resolve(err.get())); - stmt.setErrorCodeId(err.get().getSubject().getId()); // fixme ErrorText insert + stmt.setErrorCodeId(err.get().getSubject().getId()); stmt.setOperationStatus(OperationStatus.Rejected.getKey()); statementImdg.update(stmt); } @@ -262,7 +235,6 @@ public class Sdf21Executor extends AbstractExecutor { statement.setAddresseeId(cmp.getId()); statement.setSenderId(Sender.Prc.getId()); statement.setStatementType(StatementType.incr.getKey()); - //fixme statement.setComment(sdf21.()); statement.setAccountId(acc.getId()); Security security = scrSlct.selectSecurityBySymbol(sdf21.getSecurityCode()); @@ -290,13 +262,6 @@ public class Sdf21Executor extends AbstractExecutor { private void calcBalance(Registry rgs, Statement statement) { InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection()); - //считаю balance при создании нулевым и исхожу из этого - //При добавлении (на базе изменения statement по sDf57): - //Если значение statement.inOutDirection=IN, то: - //= текущее значение registry.balance + statement.amount - // - //Если значение statement.inOutDirection=OUT, то: - //= текущее значение registry.balance - statement.amount switch (inOutDirection) { case in -> { rgs.setBalance(statement.getAmount()); @@ -308,11 +273,11 @@ public class Sdf21Executor extends AbstractExecutor { } } AccountType accType = IEnumKey.getEnumByKey(AccountType.class, rgs.getAccountType()); - if (!AccountType.Info.equals(accType)) {//fixme nuzhno li? + if (!AccountType.Info.equals(accType)) { rgs.setDiffBalance(safeBD(rgs.getBalance()).subtract(safeBD(rgs.getCheckBalance()))); } rgs.setDiffBalance(safeBD(rgs.getBalance()).subtract(safeBD(rgs.getCheckBalance()))); - rgs.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme??? + rgs.setBalanceDimension(BalanceDimension.PICS.getKey()); } private void updateReg(Statement s, Registry r) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java index 6756a54eb..5c7f604db 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java @@ -126,8 +126,6 @@ public class Sdf57Executor extends AbstractExecutor { this.notification = notification; } - //todo доделать контроль sdf01 и sdf57 - @Override public String exportTableName() { return null; @@ -142,25 +140,6 @@ public class Sdf57Executor extends AbstractExecutor { public void sendCommand(KafkaSender kafkaSender, Result result) { } - //V - Изменение statement по sDf57 - // - //1. Перед изменением statement необходимо выполнить ряд проверок: - // 1.1. Найти в company запись, у которой company.tradingCode=sDf57.deal_deb. Если такой записи нет, записать в лог ошибку (5211) "Компания %s не найдена". - // 1.2. Найти в company запись, у которой company.tradingCode=sDf57.deal_cred. Если такой записи нет, записать в лог ошибку (5211) "Компания %s не найдена". - // 1.3. Проверить, есть ли в таблице account счет, у которого account.account=sDf57.c_acc_deb. Если такой записи нет, записать в лог ошибку (5217) "Счет %s не найден". - // 1.4. Проверить, есть ли в таблице account счет, у которого account.account=sDf57.c_acc_cred. Если такой записи нет, записать в лог ошибку (5217) "Счет %s не найден". - // 1.5. Проверить, что sDf57.pay_val=RUR. Иначе записать в лог ошибку (5213) "Валюта %s не найдена". - //2. В зависимости от результата прохождения проверок в п.1 раздела Изменение statement по sDf57: - // 2.1. Если все проверки пройдены, необходимо сформировать 2 новые записи согласно описанию с соответствующим тэгом, - // где первая запись будет содержать информацию о плательщике (по sDf57.deal_deb), - // а вторая о получателе (по sDf57.deal_cred) и связаны по одному inSDfId (= sDf57.id). - // 2.2. Иначе запись в statement не добавляется. - //3. По итогу добавления statement: - // Если в п.1 раздела Изменение statement по sDf57 ошибок не обнаружено, то инициировать изменение таблицы registry согласно описанию с соответствующим тэгом. - // По итогу изменения registry должны быть обновлены значения полей в statement: - // - operationStatus; - // - errorCode в случае выявления ошибки; - // - errorText в случае выявления ошибки. public Result execute(Collection sdf, StatementRequest statementRequest) { Result result = new Result(); Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId(); @@ -186,19 +165,16 @@ public class Sdf57Executor extends AbstractExecutor { statementImdg.insert(statement); return Optional.of(statement); }; - //create by companyDeb - Company companyDeb = validator.getStored(ValidationStored.Sdf57CompanyDeb); //плательщик + Company companyDeb = validator.getStored(ValidationStored.Sdf57CompanyDeb); Account accountDeb = validator.getStored(ValidationStored.Sdf57AccountDeb); - Company companyCred = validator.getStored(ValidationStored.Sdf57CompanyCred);//получатель + Company companyCred = validator.getStored(ValidationStored.Sdf57CompanyCred); Account accountCred = validator.getStored(ValidationStored.Sdf57AccountCred); log.debug("companyDeb.id={}, accountDeb.id={}, companyCred.id={}, accountCred.id={}", companyDeb != null ? companyDeb.getId() : null, accountDeb != null ? accountDeb.getId() : null, companyCred != null ? companyCred.getId() : null, accountCred != null ? accountCred.getId() : null); - //адресат CREDIT / владелец DEBIT Optional statementDeb = createStatementIfNeeded.apply(companyDeb, accountDeb, InOutDirection.out); - //адресат DEBIT / владелец CREDIT Optional statementCred = createStatementIfNeeded.apply(companyCred, accountCred, InOutDirection.in); log.debug("created statementDeb.id={}, statementCred.id={}", statementDeb.map(SpcexObjectBase::getId).orElse(null), @@ -212,27 +188,18 @@ public class Sdf57Executor extends AbstractExecutor { if (err.isEmpty()) { Optional amtFound = RegistrySearch.builder(registryImdg) .rgsCode(RegistryTradingParams.AM_T) - .companyId(company.getId()) //раньше было stmt.getAddresseeId() - .accountId(account.getId()) //раньше было stmt.getAccountId() + .companyId(company.getId()) + .accountId(account.getId()) .find(); AssetTrio asts = amtFound.map(rgs -> { log.debug("stmt.id={}, found AM*T.id={}, updating...", stmt.getId(), rgs.getId()); updateReg(stmt, rgs); - //добавил создание если не найдены Registry registryUnitB = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.B).orElse(copyRegB(rgs)); - Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs)); //передаю null т.к. отнимется ниже по коду -// registryUnitF.setBalance(rgs.getBalance().subtract(registryUnitB.getBalance())); -// registryUnitF.setUpdated(Instant.now()); - //registry F всегда меняется + Registry registryUnitF = findRegByUnit(company.getId(), account.getId(), stmt.getContract(), rgs, RegistryUnit.F).orElse(copyRegF(rgs)); if (registryUnitF.getId() == null) { registryImdg.insert(registryUnitF); log.debug("stmt.id={}, new AM*F.id={}", stmt.getId(), registryUnitF.getId()); } -// else { -// registryImdg.update(registryUnitF); -// log.debug("stmt.id={}, updated AM*F.id={}", stmt.getId(), registryUnitF.getId()); -// } - //нужно сохранить registry B только если его не было if (registryUnitB.getId() == null) { registryImdg.insert(registryUnitB); log.debug("stmt.id={}, new AM*B.id={}", stmt.getId(), registryUnitB.getId()); @@ -270,10 +237,6 @@ public class Sdf57Executor extends AbstractExecutor { InOutDirection direction = IEnumKey.getEnumByKey(InOutDirection.class, stmt.getInOutDirection()); boolean dm_tWasCreated = false; if (!StringUtils.isEmpty(stmt.getContract()) && InOutDirection.in.equals(direction)) { - //todo доделать 11. Идентификация средств УК на клиринговом счете - //stmt.id=340270002, sdf57.specif=Возврат депозита по договору №DT1000S001U/280623/8/7 new DM*T.id=339610032 - //1. у stmt accountId 3021, addresseId 2610034, contract DT1000S001U/280623/8/7 - // Optional dm__Found = RegistrySearch.builder(registryImdg) .rgsCode(RegistryTradingParams.DM_T) .companyId(company.getId()) @@ -372,7 +335,7 @@ public class Sdf57Executor extends AbstractExecutor { return Optional.of(asts); } else { log.debug("statement.id={} activness validation failed {}", stmt.getId(), messageResolver.resolve(err.get())); - stmt.setErrorCodeId(err.get().getSubject().getId()); // fixme ErrorText insert + stmt.setErrorCodeId(err.get().getSubject().getId()); stmt.setOperationStatus(OperationStatus.Rejected.getKey()); statementImdg.update(stmt); return Optional.empty(); @@ -426,7 +389,6 @@ public class Sdf57Executor extends AbstractExecutor { registryImdg.insert(newDmau); log.debug("stmt.id={} created DMAU.id={}", stmt.getId(), newDmau.getId()); }); - //DMAU подразумевает увеличение остатка поля balance и credit registry.code=DMAU } } else if (OperationStatus.Executed.equalsByKey(stmt.getOperationStatus())) { if (asts.isPresent()) { @@ -524,7 +486,7 @@ public class Sdf57Executor extends AbstractExecutor { statement.setInOutDirection(inOutDirection.getKey()); statement.setSettlementDate(payDate(sdf57.getPay_date())); statement.setAmount(TextUtil.isEmpty(sdf57.getSum_deb()) ? null : new BigDecimal(sdf57.getSum_deb())); - statement.setOperationStatus(OperationStatus.Pending.getKey());//todo тут что-то с апдейтом статуса на EXEC когда создались регистры с нулевым диффом? + statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf57.getId()); statement.setInOutSDfType(InOutSDfType.type57.getKey()); @@ -535,13 +497,6 @@ public class Sdf57Executor extends AbstractExecutor { private void calcBalance(Registry rgs, Statement statement) { InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection()); - //считаю balance при создании нулевым и исхожу из этого - //При добавлении (на базе изменения statement по sDf57): - //Если значение statement.inOutDirection=IN, то: - //= текущее значение registry.balance + statement.amount - // - //Если значение statement.inOutDirection=OUT, то: - //= текущее значение registry.balance - statement.amount switch (inOutDirection) { case in -> { rgs.setBalance(statement.getAmount()); @@ -556,7 +511,7 @@ public class Sdf57Executor extends AbstractExecutor { if (!AccountType.Info.equals(accType)) { rgs.setDiffBalance(safeBD(rgs.getBalance()).subtract(safeBD(rgs.getCheckBalance()))); } - rgs.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme ! смотри описание и ссылка на начало html'ки + rgs.setBalanceDimension(BalanceDimension.MONY.getKey()); } private void updateReg(Statement s, Registry r) { @@ -667,7 +622,7 @@ public class Sdf57Executor extends AbstractExecutor { ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); ImdgPredicate rgstrPredicate = pb.and(pb.sql(sql), pb.sql(sql), - pb.equals("companyId", companyId), //fixme companyId? + pb.equals("companyId", companyId), pb.equals("accountId", accountId) ); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/SdfLegacyExecutor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/SdfLegacyExecutor.java index 17d7d7f4e..84cfd92b6 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/SdfLegacyExecutor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/SdfLegacyExecutor.java @@ -91,9 +91,6 @@ public class SdfLegacyExecutor extends AbstractExecutor { Company company = validator.getStored(ValidationStored.Company); if (statementRequest.getAccountCreationResults().size() == 0 && ClearingError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { - //на данном шаге company существует -> getId ok - //формируем пакетный запрос на добавление account - //ответ придет в этот же метод, process if (company == null) { log.warn("account {} for sdf01.id={} not found. Can not send request for creation, cause company not found too", sdf01.getAccount(), sdf01.getId()); } else { @@ -121,15 +118,6 @@ public class SdfLegacyExecutor extends AbstractExecutor { SDf02 sdf02New = createSuccessSdf02(sdf01, generationIdForGroup); sdf02Imdg.insert(sdf02New); statement.setOutSDfId(sdf02New.getId()); -// AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), -// null/*statement.getCashMovementCurrencyCode()*/); -// if (accountResult.getError() != null) { -// 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()); -// } statementImdg.update(statement); } return result; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/integration/GatewayRequestCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/integration/GatewayRequestCreator.java index 74886aa22..be152a946 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/integration/GatewayRequestCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/integration/GatewayRequestCreator.java @@ -15,7 +15,7 @@ public class GatewayRequestCreator { AssetOperationRequest req = new AssetOperationRequest(); req.setEntityId(stmt.getId()); req.setAmount(stmt.getAmount()); - req.setSecuritySymbol(CurrencyCode.RUB.getKey()); //fixme retrieve security symbol from validator + req.setSecuritySymbol(CurrencyCode.RUB.getKey()); req.setTradingCode(tradingCode); req.setCode(tcrCode); req.setDirection(stmt.getInOutDirection()); @@ -54,7 +54,7 @@ public class GatewayRequestCreator { req.setSessionId(sessionId); req.setEntityId(entityId); req.setAmount(amount); - req.setSecuritySymbol(CurrencyCode.RUB.getKey()); //fixme retrieve security symbol from validator + req.setSecuritySymbol(CurrencyCode.RUB.getKey()); req.setTradingCode(tradingCode); req.setCode(tcrCode); req.setDirection(direction.getKey()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/ExecutionDepositSorter.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/ExecutionDepositSorter.java index 4a17cba7e..169d73b1c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/ExecutionDepositSorter.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/ExecutionDepositSorter.java @@ -24,20 +24,10 @@ public class ExecutionDepositSorter { } public LinkedHashMap>> sortExecutionDeposit(CollectionexecDeposits) { - //отсортировали все записи по категориям - // → внутри каждой подгруппы по категориям сортируем по компаниям - // → обрабатываем почередно все записи первой компании - // → когда по первой компании записи закончились, начинаем обработавать все записи второй компании и так далее - // → когда по первой категории закончились записи для всех компаниий, - // начинаем аналогично обработавать все записи второй категории и так далее). - - //сортируем по категориям Map> categoryGrouping = execDeposits.stream().map(executionDeposit -> { ClearingCategory category = clearingMemberCategoryProvider.apply(executionDeposit.getCompanyId()); return new Pair<>(category, executionDeposit); }).collect(Collectors.groupingBy(Pair::getFirst, Collectors.mapping(Pair::getSecond, Collectors.toList()))); - - //внутри категорий сортируем по компаниям LinkedHashMap>> byCategoryByCompany = new LinkedHashMap<>(); Consumer takeByClearingCategoryAndSortByCompanyId = clearingCategory -> { List wrappers = categoryGrouping.remove(clearingCategory); @@ -52,14 +42,10 @@ public class ExecutionDepositSorter { byCategoryByCompany.put(clearingCategory, batches); } }; - //кладем в порядке I, V, B takeByClearingCategoryAndSortByCompanyId.accept(ClearingCategory.I); takeByClearingCategoryAndSortByCompanyId.accept(ClearingCategory.V); takeByClearingCategoryAndSortByCompanyId.accept(ClearingCategory.B); - //для всех остальных порядок не важен, будут последними categoryGrouping.keySet().forEach(takeByClearingCategoryAndSortByCompanyId); - - //метод для дополнительной сортировки внутри групп по категории и компании BiConsumer> additionalSorting = (clearingCategory, comparator) -> { List> allExecDepositsForCategory = byCategoryByCompany.get(clearingCategory); @@ -67,11 +53,8 @@ public class ExecutionDepositSorter { allExecDepositsForCategory.forEach(singleCompanyBatch -> singleCompanyBatch.sort(comparator)); } }; - //применяем дополнительные сортировки - //для V сначала Sell, потом Buy, в первую очередь должны обрабатываться новые сделки с наименьшими объемами additionalSorting.accept(ClearingCategory.V, firstSellThenBuy.thenComparing(ExecutionDeposit::getFirstLegAmount)); - //для V сначала Buy, потом Sell, exchangeExecutionId - возрастающий additionalSorting.accept(ClearingCategory.B, firstBuyThenSell.thenComparing(ExecutionDeposit::getExchangeExecutionId)); return byCategoryByCompany; 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 9c5ad9ae1..d75a92efe 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 @@ -78,7 +78,6 @@ public class PaymentInstructionSorter { String message = String.format("cannot sort creditLegAccount.type=%s, debitLegAccount.type=%s", creditLegAcc.getAccountType(), debitLegAcc.getAccountType()); log.error("generationId={}, senderId={} payment.id={} {}", generationId, senderId, payment.getId(), message); - //continue; } } Function, BigDecimal> creditAmountSum = paymentInstructions -> paymentInstructions @@ -124,7 +123,6 @@ public class PaymentInstructionSorter { result.add(batchInfo); } else { log.debug("Do nothing as category {}, check next", categoryValue); - // проверить следующую категорил, когда закончатся выдать ошибку } } log.warn("unknown clearing member category [" + companyCategory + "] for generationId=" diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/payment/PaymentInstructionOutboundService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/payment/PaymentInstructionOutboundService.java index 8a7c120e5..56c8dc2f1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/payment/PaymentInstructionOutboundService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/payment/PaymentInstructionOutboundService.java @@ -153,7 +153,6 @@ public class PaymentInstructionOutboundService { pmt.setDebitLeg_securityId(currency.getId()); } pmt.setTransactionStatus(TransactionStatus.stld.getKey()); - //fixme pmt.setDocumentNumber(registry.getSecurityId()); pmtImdg.insert(pmt); log.debug("new PaymentInstruction.id: {}", pmt.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java index e1877d5de..552621d60 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java @@ -248,7 +248,6 @@ public class AssetTBFProcessing { return safeBD(registry.getBalance()).compareTo(safeBD(amount)) < 0; } - //точно будет аналогично и с другими полями private void safeWrapField(Supplier getter, Consumer setter) { BigDecimal fieldValue = getter.get(); setter.accept(safeBD(fieldValue)); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/DmiService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/DmiService.java index 41e93d7ec..e4f5b6df8 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/DmiService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/DmiService.java @@ -31,10 +31,6 @@ public class DmiService { this.rgsMng = rgsMng; } - /** - * ищем D**I по tcrId/security/contract - * обновляем либо создаем - */ public void setProcContract(Long tcrId, String securitySymbol, BigDecimal balance, @@ -53,10 +49,6 @@ public class DmiService { ); } - /** - * ищем D**I по tcrId/security/comment - * обновляем либо создаем - */ public void setProcComment(Long tcrId, String securitySymbol, BigDecimal balance, @@ -75,10 +67,6 @@ public class DmiService { ); } - /** - * ищем D**I по tcrId/security/comment - * добавляем поле contract - */ public void setContract(Long tcrId, String securitySymbol, String comment, @@ -93,10 +81,6 @@ public class DmiService { } - /** - * ищем D**I по tcrId/security/contract - * задаем статус ОК - */ public void setOk(Long tcrId, String securitySymbol, String contract) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/RegistryManager.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/RegistryManager.java index 69c6ecba4..7bc0c27e5 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/RegistryManager.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/RegistryManager.java @@ -180,7 +180,6 @@ public class RegistryManager { } public static void zeroState(Registry rgs) { - //балансы rgs.setBalance(BigDecimal.ZERO); rgs.setDebit(BigDecimal.ZERO); rgs.setSettledDebit(BigDecimal.ZERO); @@ -189,7 +188,6 @@ public class RegistryManager { rgs.setDiffBalance(BigDecimal.ZERO); rgs.setCheckBalance(BigDecimal.ZERO); rgs.setPlanBalance(BigDecimal.ZERO); - //даты rgs.setCreated(Instant.now()); LocalDate now = LocalDate.now(); rgs.setClearingDate(now); @@ -206,7 +204,6 @@ public class RegistryManager { ); } - //todo refactor public Optional findRegByUnit(Long companyId, Long accountId, String contract, Registry registry, RegistryUnit unit) { RegistryTradingParams p = new RegistryTradingParams( IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()), diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ExecutionDepositValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ExecutionDepositValidationRule.java index b4d158b88..c9a18a220 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ExecutionDepositValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ExecutionDepositValidationRule.java @@ -34,17 +34,7 @@ public enum ExecutionDepositValidationRule implements IValidationRule validate(ImdgValidationContext context) { ExecutionDeposit validatedObject = context.getValidatedObject(); -// todo CLS-275 if (validatedObject.getAccountId() == null) { return of(ClearingErrorInternal.AccountNotActive); -// } -// Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); -// Relation relation = context.getStoredObject(ClrngValidationStored.relation); -// Account account = accountImdg.getSingleObjectByFieldValues( -// Map.of("id", validatedObject.getAccountId(), "relationId", relation.getId())); -// if (account == null || !AccountStatus.ACTIVE.equalsByKey(account.getStatus())) { -// return of(ClearingErrorInternal.AccountNotActive); -// } -// return empty(); } }, CompanyIsNotBlocked() { @@ -67,18 +57,7 @@ public enum ExecutionDepositValidationRule implements IValidationRule accountBalanceImdg = context.obtainMap(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); -// todo CLS-275 AccountBalance accountBalance = accountBalanceImdg.getSingleObjectByFieldValues( -// Map.of("accountId", validatedObject.getAccountId(), -// "companyId", validatedObject.getCompanyId())); -// if (accountBalance == null) { return of(ClearingErrorInternal.FinancialObligationNotSatisfied); -// } - //todo ABS -// todo CLS-275 if (validatedObject.getFirstLegAmount().compareTo(accountBalance.getFreeBalanceAmount()) > 0) { -// return of(ClearingErrorInternal.FinancialObligationNotSatisfied); -// } -// return empty(); } }; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/IdentificationFundsValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/IdentificationFundsValidationRule.java index 544d695b8..6c25a76cc 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/IdentificationFundsValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/IdentificationFundsValidationRule.java @@ -89,7 +89,7 @@ public enum IdentificationFundsValidationRule implements IValidationRule accImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java index 0e52d3834..28dff4222 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java @@ -59,7 +59,7 @@ public enum RefundDateValidationRule implements IValidationRule Где %s = категории И -// Проверить, что найденного регистра DM*X: registry.status!=OK, иначе ошибка: 5425 - "Запрещена идентификация средства по рассчитанным обязательствам". -// Создать/добавить в баланс DM-X на базе TM-T -// 1.1.2 Если регистр OM-T: -// Проверить, что у registry.companyId существует категория V, иначе ошибка: 5420 - "Доступ к клирингу на «%s» не найден для компании %s."/> Где %s = категории В -// Проверить, что найденного регистра DM*T: registry.status!=OK, иначе ошибка: 5425 - "Запрещена идентификация средства по рассчитанным обязательствам". -// Создать/добавить в баланс DM-T на базе OM-T -//1.2 Проверить, баланс в запросе -// Баланс должен быть положительный public enum ReturnDepositValidationRule implements IValidationRule> { RgsWronCodeCheck() { @Override public Optional validate(ImdgValidationContext context) { Registry rgs = context.getStoredObject(Stored.PresentById); - if (!equalsByCode(RegistryTradingParams.TM_T, rgs)) { //!equalsByCode(RegistryTradingParams.OM_T, rgs) + if (!equalsByCode(RegistryTradingParams.TM_T, rgs)) { return of(ClearingError.RgsWrongCode, "{}.id={}", rgs.getRegistryCode(), rgs.getId()); } return empty(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java index 6b132d5f8..9b7b4fc15 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java @@ -21,8 +21,6 @@ import java.util.Optional; public enum STradesValidationRule implements IValidationRule> { - // 2.1. Найти в security запись, у которой security.securitySymbol=sTrades.secCode. - // Если такой записи нет, записать в лог ошибку (5416) "Инструмент %s не найден". SecurityPresentFond() { @Override public Optional validate(ImdgValidationContext context) { @@ -61,8 +59,6 @@ public enum STradesValidationRule implements IValidationRule validate(ImdgValidationContext context) { @@ -96,9 +92,6 @@ public enum STradesValidationRule implements IValidationRule validate(ImdgValidationContext context) { @@ -106,7 +99,7 @@ public enum STradesValidationRule implements IValidationRule registryImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); @@ -117,9 +110,6 @@ public enum STradesValidationRule implements IValidationRule validate(ImdgValidationContext context) { @@ -166,7 +164,6 @@ public enum Sdf06NewValidationRule implements IValidationRule tcrImdg; tcrImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); - //если направление in то ТКР необязателен Function, Optional> err = msg -> { if (dir.equals(InOutDirection.in)) { log.debug("TCR not found {}, direction {}, ok", diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf08NewValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf08NewValidationRule.java index a9124eb4b..3f037530f 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf08NewValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf08NewValidationRule.java @@ -19,7 +19,7 @@ import java.util.Map; import java.util.Optional; public enum Sdf08NewValidationRule implements IValidationRule> { - @Deprecated // unused, см. тз по поиску компаний "III - Изменение statement по sDf08" 1. + @Deprecated CompanyPresent() { @Override public Optional validate(ImdgValidationContext context) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf10ValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf10ValidationRule.java index ce90eeb0b..67dd9b54a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf10ValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/Sdf10ValidationRule.java @@ -75,23 +75,6 @@ public enum Sdf10ValidationRule implements IValidationRule tcrImdg; tcrImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); -// if (AccountType.Anlt.getKey().equals(account.getAccountType())) { -// log.debug("account.id={} is ANLT", account.getId()); -// if (TextUtil.isEmpty(sdf10.getSpec())) { -// return of(ClearingError.TCRegistryNotFound, ""); -// } -// Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); -// Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); -// AnltSearcher anltSearcher = new AnltSearcher(tcrImdg, companyImdg, accountImdg); -// AnltSearcher.AnltSearch anltSrch = anltSearcher.loadByAnlt(sdf10.getSpec()); -// if (!anltSrch.isFound()) { -// log.debug("account.id={} ANLT couldn't find account by spec {}", account.getId(), sdf10.getSpec()); -// return of(ClearingError.TCRegistryNotFound, sdf10.getSpec()); -// } else { -// account = anltSrch.getAccount(); -// log.debug("account.id={} ANLT found account.id={} by spec {}", account.getId(), account.getId(), sdf10.getSpec()); -// } -// } TradingClearingRegistry tcr = tcrImdg.getFirstObjectByFieldValues( Map.of("depoAccountId", account.getId()) ); @@ -106,7 +89,7 @@ public enum Sdf10ValidationRule implements IValidationRule validate(ImdgValidationContext context) { SDf10 sdf10 = context.getValidatedObject(); - if (BigDecimalUtil.safeBD(new BigDecimal(sdf10.getQuantity())).compareTo(BigDecimal.ZERO) >= 0) { //fixme safe new BigDecimal + if (BigDecimalUtil.safeBD(new BigDecimal(sdf10.getQuantity())).compareTo(BigDecimal.ZERO) >= 0) { return empty(); } Company company = context.getStoredObject(ValidationStored.CompanyByTradingCode); @@ -135,7 +118,7 @@ public enum Sdf10ValidationRule implements IValidationRule BigDecimalUtil.safeBD(rgs.getBalance())) .filter(balance -> balance.compareTo(BigDecimal.ZERO) > 0) .reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal stmtAmount = BigDecimalUtil.safeBD(new BigDecimal(sdf10.getQuantity())); //fixme safe new BigDecimal + BigDecimal stmtAmount = BigDecimalUtil.safeBD(new BigDecimal(sdf10.getQuantity())); if (asfBalance.subtract(dstBalance).compareTo(stmtAmount.abs()) < 0) { return of(ClearingError.BalanceInsufficient); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/SplitDepositRequestValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/SplitDepositRequestValidationRule.java index aca9efe29..7e4222f93 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/SplitDepositRequestValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/SplitDepositRequestValidationRule.java @@ -43,8 +43,6 @@ public enum SplitDepositRequestValidationRule implements IValidationRule registryImdg = context.obtainMap(IMDGDistributedNames.Map_Registry, Registry.class); - - // Поиск регистра ImdgPredicateBuilder prdBldr = registryImdg.predicateBuilder(); ImdgPredicate query = prdBldr.and( prdBldr.or(prdBldr.equals("registryStatus", RegistryStatus.PROC.getKey()), prdBldr.equals("registryStatus", RegistryStatus.MNG.getKey())), @@ -66,15 +64,13 @@ public enum SplitDepositRequestValidationRule implements IValidationRule= refundDate + if (registryO.getRefundDate().isBefore(request.getRefundDate())) { log.trace("Registry[{}].RefundDate={} but request RefundDate={}", registryO.getId(), registryO.getRefundDate(), request.getRefundDate()); return Optional.of(new EnumMessage(ClearingError.WrongFieldValue, "RefundDate")); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/FinalMkrSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/FinalMkrSession.java index 7323b0eff..8ba87123b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/FinalMkrSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/FinalMkrSession.java @@ -95,7 +95,6 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean @Override public void afterPropertiesSet() throws Exception { dealsPrepare.searchForExecutions(ExecutionType.ExecutionDeposit); - //fixme спросить у Кости нужны ли эти поправки ImdgPredicateBuilder rgsPrctBuilder = registryImdg.predicateBuilder(); inclusionObligations.addRegistryCondition( rgsPrctBuilder.and( @@ -155,12 +154,7 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean finishPart(); return; } - //if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) { - // afterPaymentsReviseMonitor = null; - // finishPart(); - //} } catch (StageException e) { - //already logged } } @@ -171,25 +165,20 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean throw new StageException(); } runStage(TaskType.StartRevisePart1, currSession.getId(), balanceRevise); - //stage 1 StageResult> dealsPreparationResult; { DealsPreparePayload payload = new DealsPreparePayload(); payload.setSessionId(currSession.getId()); dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare); } - //stage 2 runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation); - //stage 3 runStage(TaskType.ObligationsAdmission, currSession.getId(), obligationsAdmission); - //stage 4 { InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionId(currSession.getId()); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); } - //stage 5 { InspectionPoolPayload companyIdPayload = new InspectionPoolPayload(); companyIdPayload.setProcessedCompanyId(currSession.getCompanyId()); @@ -197,19 +186,16 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligationsReturn); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations); } - //stage 6 { FormingRegistersOnOSPayload payload = new FormingRegistersOnOSPayload(); payload.setSessionId(currSession.getId()); - runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection + runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); } - //stage 7 StageResult> returnsPayment; { FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); payload.setSessionId(currSession.getId()); - //stage 7 returnsPayment = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionReturn); } @@ -218,7 +204,6 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); payload.setSessionId(currSession.getId()); payload.setPaymentInstructionReturns(returnsPayment.getStageResult()); - //stage 7 paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionDeals); } if (paymentResult.getStageResult().getPaymentInstructions().isEmpty()) { @@ -231,7 +216,6 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean this.afterPaymentsSdf4Monitor.allConditions()); } } catch (StageException e) { - //already logged } } @@ -242,25 +226,12 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean public void finishPart() { try { - //stage 9 continue revision - //{ - // StageResult reviseRes = runStage(TaskType.AgainRevise, currSession.getId(), balanceRevise, false); - // if (!reviseRes.isSuccess()) { - // this.afterReviseErrorMonitor = SessionMonitorFactory.waitReviseError(section()); - // log.warn("{} stage error, created monitor for {}", - // TaskType.AgainRevise, - // afterReviseErrorMonitor.allConditions()); - // return; - // } - //} - //stage 10 { FinishingSessionPayload payload = new FinishingSessionPayload(); payload.setSessionId(currSession.getId()); payload.setPr("3"); runStage(TaskType.FinishingSession, payload, finishingSession); } - //stage 11 { EndStageNotificationPayload payload = new EndStageNotificationPayload(); payload.setSection(currSession.getSection()); @@ -269,7 +240,6 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean endSession(); } } catch (StageException e) { - //already logged } } @@ -287,8 +257,6 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean newSession.setWorkflowStatus(SessionStatus.ACTV.getKey()); newSession.setClearingDate(LocalDate.now()); newSession.setCreated(Instant.now()); - - //todo companyId/securityId/userId передается из сообщения очереди sessionImdg.insert(newSession); currSession = newSession; log.info("started new session.id={}", this.currSession.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ISessionStage.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ISessionStage.java index 232e4c6dd..da96bb48c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ISessionStage.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ISessionStage.java @@ -2,5 +2,4 @@ package ru.spcex.clearing.session.stage; public interface ISessionStage { StageResult submit(Task task); -// StageStatus getInitStatus(); пока не нужно } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java index 2aad817aa..2f5ab1d7b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java @@ -90,7 +90,6 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ @Override public void afterPropertiesSet() throws Exception { dealsPrepare.searchForExecutions(ExecutionType.ExecutionDeposit); - //fixme спросить у Кости нужны ли эти поправки ImdgPredicateBuilder rgsPrctBuilder = registryImdg.predicateBuilder(); inclusionObligations.addRegistryCondition( rgsPrctBuilder.and( @@ -149,12 +148,7 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ finishPart(); return; } - //if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) { - // afterPaymentsReviseMonitor = null; - // finishPart(); - //} } catch (StageException e) { - //already logged } } @@ -165,44 +159,36 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ throw new StageException(); } runStage(TaskType.StartRevisePart1, currSession.getId(), balanceRevise); - //stage 1 StageResult> dealsPreparationResult; { DealsPreparePayload payload = new DealsPreparePayload(); payload.setSessionId(currSession.getId()); dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare); } - //stage 2 runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation); - //stage 3 runStage(TaskType.ObligationsAdmission, currSession.getId(), obligationsAdmission); - //stage 4 { InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionId(currSession.getId()); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); } - //stage 5 { InspectionPoolPayload companyIdPayload = new InspectionPoolPayload(); companyIdPayload.setProcessedCompanyId(currSession.getCompanyId()); companyIdPayload.setSessionId(currSession.getId()); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations); } - //stage 6 { FormingRegistersOnOSPayload payload = new FormingRegistersOnOSPayload(); payload.setSessionId(currSession.getId()); - runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection + runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); } - //stage 7 StageResult paymentResult = null; { FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); payload.setSessionId(currSession.getId()); payload.setPaymentInstructionReturns(Collections.emptyList()); - //stage 7 paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionDeals); } if (paymentResult.getStageResult().getPaymentInstructions().isEmpty()) { @@ -215,13 +201,11 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ this.afterPaymentsSdf4Monitor.allConditions()); } } catch (StageException e) { - //already logged } } public void finishPart() { try { - //stage 9 continue revision { StageResult reviseRes = runStage(TaskType.AgainRevise, currSession.getId(), balanceRevise, false); if (!reviseRes.isSuccess()) { @@ -232,14 +216,12 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ return; } } - //stage 10 { FinishingSessionPayload payload = new FinishingSessionPayload(); payload.setSessionId(currSession.getId()); payload.setPr("4"); runStage(TaskType.FinishingSession, payload, finishingSession); } - //stage 11 { EndStageNotificationPayload payload = new EndStageNotificationPayload(); payload.setSection(currSession.getSection()); @@ -248,7 +230,6 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ endSession(); } } catch (StageException e) { - //already logged } } @@ -271,8 +252,6 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ newSession.setWorkflowStatus(SessionStatus.ACTV.getKey()); newSession.setClearingDate(LocalDate.now()); newSession.setCreated(Instant.now()); - - //todo companyId/securityId/userId передается из сообщения очереди sessionImdg.insert(newSession); currSession = newSession; log.info("started new session.id={}", this.currSession.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java index 94b627840..2acfeffbc 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java @@ -42,8 +42,6 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali private final InspectionObligations inspectionObligations; private final FormingRegistersOnOS formingRegistersOnOS; private final FormingPaymentInstructionSecurities formingPaymentInstruction; - //TODO CLRNWORM - //private final FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr; private final UnlockResources unlockResources; private final FinishingSession finishingSession; private final EndStageNotification endStageNotification; @@ -65,7 +63,6 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali InclusionObligations inclusionObligations, FormingRegistersOnOS formingRegistersOnOS, FormingPaymentInstructionSecurities formingPaymentInstruction, -// FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr, UnlockResources unlockResources, FinishingSession finishingSession, EndStageNotification endStageNotification, @@ -85,7 +82,6 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali this.endStageNotification = endStageNotification; this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.inspectionObligations = inspectionObligations; -// this.formingPaymentInstructionDealsFinalMkr = formingPaymentInstructionDealsFinalMkr; this.marketCodes = marketCodes; } @@ -141,12 +137,7 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali finishPart(); return; } - //if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) { - // afterPaymentsReviseMonitor = null; - // finishPart(); - //} } catch (StageException e) { - //already logged } } @@ -157,42 +148,35 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali throw new StageException(); } runStage(TaskType.StartRevisePart1, currSession.getId(), balanceRevise); - //stage 1 StageResult> dealsPreparationResult; { DealsPreparePayload payload = new DealsPreparePayload(); payload.setSessionId(currSession.getId()); dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare); } - //stage 2 runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation); - //stage 3 runStage(TaskType.ObligationsAdmission, currSession.getId(), obligationsAdmission); - //stage 4 { InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionId(currSession.getId()); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); } - //stage 5 { InspectionPoolPayload companyIdPayload = new InspectionPoolPayload(); companyIdPayload.setProcessedCompanyId(currSession.getCompanyId()); companyIdPayload.setSessionId(currSession.getId()); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations); } - //stage 6 { FormingRegistersOnOSPayload payload = new FormingRegistersOnOSPayload(); payload.setSessionId(currSession.getId()); - runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection + runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); } StageResult> paymentResult = null; { FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); payload.setSessionId(currSession.getId()); - //stage 7 paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); } if (paymentResult.getStageResult().isEmpty()) { @@ -205,13 +189,11 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali this.afterPaymentsSdf4And13Monitor.allConditions()); } } catch (StageException e) { - //already logged } } public void finishPart() { try { - //stage 9 continue revision { StageResult reviseRes = runStage(TaskType.AgainRevise, currSession.getId(), balanceRevise, false); if (!reviseRes.isSuccess()) { @@ -222,14 +204,12 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali return; } } - //stage 10 { FinishingSessionPayload payload = new FinishingSessionPayload(); payload.setSessionId(currSession.getId()); payload.setPr("0"); runStage(TaskType.FinishingSession, payload, finishingSession); } - //stage 11 { EndStageNotificationPayload payload = new EndStageNotificationPayload(); payload.setSection(currSession.getSection()); @@ -238,7 +218,6 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali endSession(); } } catch (StageException e) { - //already logged } } @@ -261,7 +240,6 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali newSession.setWorkflowStatus(SessionStatus.ACTV.getKey()); newSession.setClearingDate(LocalDate.now()); newSession.setCreated(Instant.now()); - //todo companyId/securityId/userId передается из сообщения очереди sessionImdg.insert(newSession); currSession = newSession; log.info("started new session.id={}", this.currSession.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java index 833d337eb..dfe356c33 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java @@ -42,9 +42,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali private final InspectionObligations inspectionObligations; private final FormingRegistersOnOS formingRegistersOnOS; private final FormingPaymentInstructionSecurities formingPaymentInstruction; -// private final FormingPaymentInstruction formingPaymentInstruction; -// private final FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr; - private final UnlockResources unlockResources; +private final UnlockResources unlockResources; private final FinishingSession finishingSession; private final EndStageNotification endStageNotification; @@ -64,8 +62,6 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali ObligationAdmission obligationsAdmission, InclusionObligations inclusionObligations, FormingRegistersOnOS formingRegistersOnOS, -// FormingPaymentInstruction formingPaymentInstruction, -// FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr, FormingPaymentInstructionSecurities formingPaymentInstruction, UnlockResources unlockResources, FinishingSession finishingSession, EndStageNotification endStageNotification, @@ -80,13 +76,11 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali this.inclusionObligations = inclusionObligations; this.formingRegistersOnOS = formingRegistersOnOS; this.formingPaymentInstruction = formingPaymentInstruction; -// this.formingPaymentInstruction = formingPaymentInstruction; this.unlockResources = unlockResources; this.finishingSession = finishingSession; this.endStageNotification = endStageNotification; this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.inspectionObligations = inspectionObligations; -// this.formingPaymentInstructionDealsFinalMkr = formingPaymentInstructionDealsFinalMkr; this.marketCodes = marketCodes; } @@ -142,12 +136,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali finishPart(); return; } - //if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) { - // afterPaymentsReviseMonitor = null; - // finishPart(); - //} } catch (StageException e) { - //already logged } } @@ -158,43 +147,35 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali throw new StageException(); } runStage(TaskType.StartRevisePart1, currSession.getId(), balanceRevise); - //stage 1 StageResult> dealsPreparationResult; { DealsPreparePayload payload = new DealsPreparePayload(); payload.setSessionId(currSession.getId()); dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare); } - //stage 2 runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation); - //stage 3 runStage(TaskType.ObligationsAdmission, currSession.getId(), obligationsAdmission); - //stage 4 { InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionId(currSession.getId()); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); } - //stage 5 { InspectionPoolPayload companyIdPayload = new InspectionPoolPayload(); companyIdPayload.setProcessedCompanyId(currSession.getCompanyId()); companyIdPayload.setSessionId(currSession.getId()); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations); } - //stage 6 { FormingRegistersOnOSPayload payload = new FormingRegistersOnOSPayload(); payload.setSessionId(currSession.getId()); - runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection + runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); } - //stage 7 StageResult> paymentResult = null; { FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); payload.setSessionId(currSession.getId()); - //stage 7 paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); } if (paymentResult.getStageResult().isEmpty()) { @@ -207,31 +188,17 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali this.afterPaymentsSdf4And13Monitor.allConditions()); } } catch (StageException e) { - //already logged } } public void finishPart() { try { - //stage 9 continue revision - //{ - // StageResult reviseRes = runStage(TaskType.AgainRevise, currSession.getId(), balanceRevise, false); - // if (!reviseRes.isSuccess()) { - // this.afterReviseErrorMonitor = SessionMonitorFactory.waitReviseError(section()); - // log.warn("{} stage error, created monitor for {}", - // TaskType.AgainRevise, - // afterReviseErrorMonitor.allConditions()); - // return; - // } - //} - //stage 10 { FinishingSessionPayload payload = new FinishingSessionPayload(); payload.setSessionId(currSession.getId()); payload.setPr("0"); runStage(TaskType.FinishingSession, payload, finishingSession); } - //stage 11 { EndStageNotificationPayload payload = new EndStageNotificationPayload(); payload.setSection(currSession.getSection()); @@ -240,7 +207,6 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali endSession(); } } catch (StageException e) { - //already logged } } @@ -263,8 +229,6 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali newSession.setWorkflowStatus(SessionStatus.ACTV.getKey()); newSession.setClearingDate(LocalDate.now()); newSession.setCreated(Instant.now()); - - //todo companyId/securityId/userId передается из сообщения очереди sessionImdg.insert(newSession); currSession = newSession; log.info("started new session.id={}", this.currSession.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java index 3fa6566d1..126fa1d41 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java @@ -42,9 +42,7 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali private final InspectionObligations inspectionObligations; private final FormingRegistersOnOS formingRegistersOnOS; private final FormingPaymentInstructionSecurities formingPaymentInstruction; -// private final FormingPaymentInstruction formingPaymentInstruction; -// private final FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr; - private final UnlockResources unlockResources; +private final UnlockResources unlockResources; private final FinishingSession finishingSession; private final EndStageNotification endStageNotification; @@ -64,8 +62,6 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali InclusionObligations inclusionObligations, FormingRegistersOnOS formingRegistersOnOS, FormingPaymentInstructionSecurities formingPaymentInstruction, -// FormingPaymentInstruction formingPaymentInstruction, -// FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr, UnlockResources unlockResources, FinishingSession finishingSession, EndStageNotification endStageNotification, @@ -80,13 +76,11 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali this.inclusionObligations = inclusionObligations; this.formingRegistersOnOS = formingRegistersOnOS; this.formingPaymentInstruction = formingPaymentInstruction; -// this.formingPaymentInstruction = formingPaymentInstruction; this.unlockResources = unlockResources; this.finishingSession = finishingSession; this.endStageNotification = endStageNotification; this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.inspectionObligations = inspectionObligations; -// this.formingPaymentInstructionDealsFinalMkr = formingPaymentInstructionDealsFinalMkr; this.marketCodes = marketCodes; } @@ -142,12 +136,7 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali finishPart(); return; } - //if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) { - // afterPaymentsReviseMonitor = null; - // finishPart(); - //} } catch (StageException e) { - //already logged } } @@ -158,42 +147,35 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali throw new StageException(); } runStage(TaskType.StartRevisePart1, currSession.getId(), balanceRevise); - //stage 1 StageResult> dealsPreparationResult; { DealsPreparePayload payload = new DealsPreparePayload(); payload.setSessionId(currSession.getId()); dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare); } - //stage 2 runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation); - //stage 3 runStage(TaskType.ObligationsAdmission, currSession.getId(), obligationsAdmission); - //stage 4 { InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionId(currSession.getId()); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); } - //stage 5 { InspectionPoolPayload companyIdPayload = new InspectionPoolPayload(); companyIdPayload.setProcessedCompanyId(currSession.getCompanyId()); companyIdPayload.setSessionId(currSession.getId()); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations); } - //stage 6 { FormingRegistersOnOSPayload payload = new FormingRegistersOnOSPayload(); payload.setSessionId(currSession.getId()); - runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection + runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); } StageResult> paymentResult = null; { FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); payload.setSessionId(currSession.getId()); - //stage 7 paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); } if (paymentResult.getStageResult().isEmpty()) { @@ -206,13 +188,11 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali this.afterPaymentsSdf4And13Monitor.allConditions()); } } catch (StageException e) { - //already logged } } public void finishPart() { try { - //stage 9 continue revision { StageResult reviseRes = runStage(TaskType.AgainRevise, currSession.getId(), balanceRevise, false); if (!reviseRes.isSuccess()) { @@ -223,14 +203,12 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali return; } } - //stage 10 { FinishingSessionPayload payload = new FinishingSessionPayload(); payload.setSessionId(currSession.getId()); payload.setPr("0"); runStage(TaskType.FinishingSession, payload, finishingSession); } - //stage 11 { EndStageNotificationPayload payload = new EndStageNotificationPayload(); payload.setSection(currSession.getSection()); @@ -239,7 +217,6 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali endSession(); } } catch (StageException e) { - //already logged } } @@ -261,7 +238,6 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali newSession.setWorkflowStatus(SessionStatus.ACTV.getKey()); newSession.setClearingDate(LocalDate.now()); newSession.setCreated(Instant.now()); - //todo companyId/securityId/userId передается из сообщения очереди sessionImdg.insert(newSession); currSession = newSession; log.info("started new session.id={}", this.currSession.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ReturnDepositSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ReturnDepositSession.java index 227555640..889723103 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ReturnDepositSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/ReturnDepositSession.java @@ -133,13 +133,7 @@ public class ReturnDepositSession extends AbstractSession implements Initializin finishPart(); return; } - - //if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) { - // afterPaymentsReviseMonitor = null; - // finishPart(); - //} } catch (StageException e) { - //already logged } } @@ -150,13 +144,11 @@ public class ReturnDepositSession extends AbstractSession implements Initializin throw new StageException(); } runStage(TaskType.StartRevisePart1, currSession.getId(), balanceRevise); - //stage 4 { InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); inclusionToPoolPayload.setSessionId(currSession.getId()); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); } - //stage 5 { InspectionPoolPayload companyIdPayload = new InspectionPoolPayload(); companyIdPayload.setProcessedCompanyId(currSession.getCompanyId()); @@ -164,17 +156,15 @@ public class ReturnDepositSession extends AbstractSession implements Initializin runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligationsDepositReturn); } - //stage 6 { FormingRegistersOnOSPayload payload = new FormingRegistersOnOSPayload(); payload.setSessionId(currSession.getId()); - runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection + runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); } StageResult> paymentResult = null; { FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); payload.setSessionId(currSession.getId()); - //stage 7 paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); } if (paymentResult == null || paymentResult.getStageResult().isEmpty()) { @@ -187,31 +177,17 @@ public class ReturnDepositSession extends AbstractSession implements Initializin this.afterPaymentsSdf4Monitor.allConditions()); } } catch (StageException e) { - //already logged } } public void finishPart() { try { - //stage 9 continue revision - //{ - // StageResult reviseRes = runStage(TaskType.AgainRevise, currSession.getId(), balanceRevise, false); - // if (!reviseRes.isSuccess()) { - // this.afterReviseErrorMonitor = SessionMonitorFactory.waitReviseError(section()); - // log.warn("{} stage error, created monitor for {}", - // TaskType.AgainRevise, - // afterReviseErrorMonitor.allConditions()); - // return; - // } - //} - //stage 10 { FinishingSessionPayload payload = new FinishingSessionPayload(); payload.setSessionId(currSession.getId()); payload.setPr("4"); runStage(TaskType.FinishingSession, payload, finishingSession); } - //stage 11 { EndStageNotificationPayload payload = new EndStageNotificationPayload(); payload.setSection(currSession.getSection()); @@ -220,7 +196,6 @@ public class ReturnDepositSession extends AbstractSession implements Initializin endSession(); } } catch (StageException e) { - //already logged } } @@ -243,8 +218,6 @@ public class ReturnDepositSession extends AbstractSession implements Initializin newSession.setWorkflowStatus(SessionStatus.ACTV.getKey()); newSession.setClearingDate(LocalDate.now()); newSession.setCreated(Instant.now()); - - //todo companyId/securityId/userId передается из сообщения очереди sessionImdg.insert(newSession); currSession = newSession; log.info("started new session.id={}", this.currSession.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java index c41448168..68f2e9c6c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SecondaryAuctionT0Session.java @@ -29,7 +29,6 @@ import java.util.List; import java.util.function.Supplier; @Service -//todo эта сессия public class SecondaryAuctionT0Session extends AbstractSession implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); private final BalanceRevise balanceRevise; @@ -136,12 +135,7 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia finishPart(); return; } - //if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) { - // afterPaymentsReviseMonitor = null; - // finishPart(); - //} } catch (StageException e) { - //already logged } } @@ -152,38 +146,31 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia throw new StageException(); } runStage(TaskType.StartRevisePart1, currSession.getId(), balanceRevise); - //stage 1 StageResult> dealsPreparationResult; { DealsPreparePayload payload = new DealsPreparePayload(); payload.setSessionId(currSession.getId()); dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare); } - //stage 2 runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation); - //stage 3 runStage(TaskType.ObligationsAdmission, currSession.getId(), obligationsAdmission); - //stage 4 { InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionId(currSession.getId()); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); } - //stage 5 { InspectionPoolPayload companyIdPayload = new InspectionPoolPayload(); companyIdPayload.setSessionId(currSession.getId()); companyIdPayload.setProcessedCompanyId(currSession.getCompanyId()); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations); } - //stage 6 { FormingRegistersOnOSPayload payload = new FormingRegistersOnOSPayload(); payload.setSessionId(currSession.getId()); - runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection + runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); } - //stage 7 StageResult paymentResult = null; { FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); @@ -201,13 +188,11 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia this.afterPaymentsSdf4And13Monitor.allConditions()); } } catch (StageException e) { - //already logged } } public void finishPart() { try { - //stage 9 continue revision { StageResult reviseRes = runStage(TaskType.AgainRevise, currSession.getId(), balanceRevise, false); if (!reviseRes.isSuccess()) { @@ -218,14 +203,12 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia return; } } - //stage 10 { FinishingSessionPayload payload = new FinishingSessionPayload(); payload.setSessionId(currSession.getId()); payload.setPr("1"); runStage(TaskType.FinishingSession, payload, finishingSession); } - //stage 11 { EndStageNotificationPayload payload = new EndStageNotificationPayload(); payload.setSection(currSession.getSection()); @@ -234,7 +217,6 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia endSession(); } } catch (StageException e) { - //already logged } } @@ -257,8 +239,6 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia newSession.setWorkflowStatus(SessionStatus.ACTV.getKey()); newSession.setClearingDate(LocalDate.now()); newSession.setCreated(Instant.now()); - - //todo companyId/securityId/userId передается из сообщения очереди sessionImdg.insert(newSession); currSession = newSession; log.info("started new session.id={}", this.currSession.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java index e55b0c9cf..02cc803f1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionManager.java @@ -56,9 +56,8 @@ public class SessionManager { this.time = time; } - public void defineAndStartSession(BaseRequest r) throws ValidationException { //task sclr section fond sessiontype trdt + public void defineAndStartSession(BaseRequest r) throws ValidationException { LauncherCommandRequest payload = r.getRequestPayload(); -// Long sessionId = commandRequest.getSessionId(); SessionType sessionType = IEnumKey.getEnumByKey(SessionType.class, payload.getSessionType()); Section section = IEnumKey.getEnumByKey(Section.class, payload.getSection()); if (sessionType == null || section == null) { @@ -78,7 +77,6 @@ public class SessionManager { } if (session != null) { - //checkActive checkAllowSessionStart(); session.runSession(baseRequest); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionStage.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionStage.java index b01429c24..740feef28 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionStage.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/SessionStage.java @@ -5,5 +5,4 @@ public enum SessionStage { DealsPrepare, ObligationCalculate, ObligationAdmittance, - //... } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/TaskType.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/TaskType.java index bf683b8d8..c6059fb63 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/TaskType.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/TaskType.java @@ -3,57 +3,21 @@ package ru.spcex.clearing.session.stage; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum TaskType implements IEnumKey { - /** - * step 0/9 - */ StartRevise("CLR0"), ContinueRevise("CLR 0_0"), StartRevisePart1("С0_1"), - /** - * step 1 - */ DealsPrepare("CL01"), - /** - * step 2 - */ RequirementsAndObligationsCreate("CL02"), - /** - * step 3 - */ ObligationsAdmission("CL03"), - /** - * step 4 - */ InclusionToPool("CL04"), - /** - * step 5 - */ InspectionObligations("CL05"), - /** - * Step 6: forming Registry on Obligations and Settlement requirements - */ FormingRegistersOnOS("CL06"), - /** - * step 7 - */ FormingPaymentInstruction("CL07"), - /** - * step 8 - */ UnlockResources("CL08"), - /** - * step 0/9 - */ AgainRevise("CL09"), - /** - * Step 10 - */ FinishingSession("CL10"), - /** - * Step 11 - */ EndStageNotification("CL11"); private String key; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/BalanceRevise.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/BalanceRevise.java index c55337788..f175b33a8 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/BalanceRevise.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/BalanceRevise.java @@ -40,7 +40,6 @@ import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class BalanceRevise implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); - //todo remove (set all in single method setImdg(provider -> setImdg1();setIdGenerator();...) private ImdgProvider imdgProvider; private ImdgId idGenerator; private Imdg statementImdg; @@ -67,12 +66,12 @@ public class BalanceRevise implements ISessionStage { return sendSdfs(); } case ContinueRevise -> { - return revise(); // основная сверка + return revise(); } - case StartRevisePart1 -> { // часть 1, часть 2 на стадии 5 (InspectionObligations) - return reviseStage1(); // подготовка к стадии 3 (к AgainRevise) + case StartRevisePart1 -> { + return reviseStage1(); } - case AgainRevise -> { // часть 3 + case AgainRevise -> { return reviseStage3(); } default -> throw new IllegalStateException("unknown task " + task.getTaskType()); @@ -131,7 +130,6 @@ public class BalanceRevise implements ISessionStage { } private StageResult reviseStage3() { - //clnr info depo ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); ImdgPredicate prdct = pb.and( pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.A__T).build()), diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/DealsPrepare.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/DealsPrepare.java index e66c6139f..ee49f3130 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/DealsPrepare.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/DealsPrepare.java @@ -64,7 +64,7 @@ public class DealsPrepare implements ISessionStage { log.info("loading deals sessionId: {}, companyId: {}, securityId: {}", sessionId, companyId, securityId); StringBuilder executionDepositSQL = new StringBuilder("sessionId = null"); if (companyId != null) { - executionDepositSQL.append(" and companyId = ").append(companyId); //fixme вероятно в ТЗ недостаточно условий для выборки - counterPartyId + executionDepositSQL.append(" and companyId = ").append(companyId); } if (securityId != null) { executionDepositSQL.append(" and securityId = ").append(securityId); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/EndStageNotification.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/EndStageNotification.java index 8a27ff254..b4fc0b8c5 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/EndStageNotification.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/EndStageNotification.java @@ -70,7 +70,6 @@ public class EndStageNotification implements ISessionStage { } protected StageResult endStageNotification(String section, Long sessionId) { - // 1. Изменить статус Session theSession = sessionImdg.getSingleObjectByID(sessionId); if (theSession == null) { log.warn("Session {} not found", sessionId); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FinishingSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FinishingSession.java index c34d454a3..9a8eddebd 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FinishingSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FinishingSession.java @@ -90,7 +90,6 @@ public class FinishingSession implements ISessionStage { protected StageResult finishingSession(Long sessionId, String pr) { Instant now = Instant.now(); - //установка CLRD для обработанных регистров Collection claimsAndLiabilities = selectClaimsAndLiabilities(sessionId); claimsAndLiabilities.forEach(rgs -> { rgs.setRegistryStatus(RegistryStatus.CLRD.getKey()); @@ -99,8 +98,6 @@ public class FinishingSession implements ISessionStage { }); log.debug("For sessionId={} was updated {} registers for status={}", sessionId, claimsAndLiabilities.size(), RegistryStatus.CLRD.getKey()); - - // Отметка статуса в Execution* Session session = sessionImdg.getSingleObjectByID(sessionId); if (session == null) { log.error("Session id={} not found. Can not update Execution's.", sessionId); @@ -108,7 +105,7 @@ public class FinishingSession implements ISessionStage { Collection oRegs = findORegistryBySessionId(sessionId); Set exchangeExecutionIdAllowed = oRegs.stream() .filter(rgs -> RegistryStatus.CLRD.equalsByKey(rgs.getRegistryStatus())) - .map(Registry::getGroupId) // Registry::getGroupId == Execution.ExchangeExecutionId, см. RegistryFondBuilder/RegistryDepoBuilder + .map(Registry::getGroupId) .collect(Collectors.toSet()); Set exchangeExecutionIdsPreviousDay = oRegs.stream() .filter(rgs -> Objects.nonNull(rgs.getSettlementDate())) @@ -152,8 +149,6 @@ public class FinishingSession implements ISessionStage { log.warn("Unsupported session[{}].SessionType={} for update Executions", sessionId, session.getSessionType()); } } - - // 2. Отправка сообщений Collection forRegistries = selectRegistry(sessionId); log.debug("Found {} registries for sessionId={}", forRegistries.size(), sessionId); @@ -181,9 +176,6 @@ public class FinishingSession implements ISessionStage { return res; } - /** - * формирование операционного отчета об обязательствах - **/ protected StageResult toReportSession(Long sessionId) { ReportRequestWithSessionId reportSessionRequest = new ReportRequestWithSessionId(); reportSessionRequest.setSessionId(sessionId); @@ -195,9 +187,6 @@ public class FinishingSession implements ISessionStage { return new StageResult<>(null, true); } - /** - * формирование операционного отчета о денежных средствах - **/ protected StageResult toReportMoney(Long sessionId, Registry registry) { ReportRequestWithRegistryId reportMoneyRequest = new ReportRequestWithRegistryId(); reportMoneyRequest.setSessionId(sessionId); @@ -244,7 +233,6 @@ public class FinishingSession implements ISessionStage { ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); ImdgPredicate prdct = pb.and( pb.equals("sessionId", sessionId), -// registryStatus - любой статус pb.equals("registryDesignation", RegistryDesignation.O.getKey())); Collection result = registryImdg.getCollectionObjectsByPredicate(prdct); log.trace("found {} liabilities by query {} ", result.size(), prdct); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java index 06b569cc2..ac2ee8522 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java @@ -48,7 +48,6 @@ import static ru.spcex.platform.enumeration.RegistryTradingParams.LS_T; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class FormingPaymentInstruction implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); - //todo remove (set all in single method setImdg(provider -> setImdg1();setIdGenerator();...) private ImdgProvider imdgProvider; private ImdgId idGenerator; private Imdg registryImdg; @@ -107,135 +106,6 @@ public class FormingPaymentInstruction implements ISessionStage { .toList(); log.debug("Size obligationsByMoney: {}; expected 0", obligationsByMoney.size()); - //TODO CLRNWORM -// for (Registry obligationByMoney : obligationsByMoney) { -// String sql = String.format("tradingClearingRegistryId = %s and companyId = %s", -// obligationByMoney.getTradingClearingRegistryId(), obligationByMoney.getCompanyId()); -// Collection relatedRegistries = registryImdg.getCollectionObjectsBySQL(sql); -// -// RegistryTradingParams registryTradingParamsF = new RegistryTradingParams(RegistryDesignation.A, -// RegistryInstrumentType.M, null, RegistryUnit.F); -// RegistryTradingParams registryTradingParamsT = new RegistryTradingParams(RegistryDesignation.A, -// RegistryInstrumentType.M, null, RegistryUnit.T); -// RegistryTradingParams registryTradingParamsB = new RegistryTradingParams(RegistryDesignation.A, -// RegistryInstrumentType.M, null, RegistryUnit.B); -// -// for (Registry relatedRegistry : relatedRegistries) { -// if (registryTradingParamsF.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { -// relatedRegistry.setBalance(safeBD(relatedRegistry.getBalance()).subtract(safeBD(obligationByMoney.getBalance()))); -// } else if (registryTradingParamsT.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { -// relatedRegistry.setSettledDebit(safeBD(relatedRegistry.getSettledDebit()).add(safeBD(obligationByMoney.getBalance()))); -// } else if (registryTradingParamsB.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { -// relatedRegistry.setBalance(safeBD(relatedRegistry.getBalance()).add(safeBD(obligationByMoney.getBalance()))); -// } -// registryImdg.update(relatedRegistry); -// } -// } -// -// List requirementsByIssue = obligations.stream().filter(registry -> -// new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.S, null, RegistryUnit.T).equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, registry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) -// .toList(); -// -// log.debug("Size requirementsByIssue: {};", requirementsByIssue.size()); -// for (Registry requirementByIssue : requirementsByIssue) { -// String sql = String.format("tradingClearingRegistryId = %s and companyId = %s", -// requirementByIssue.getTradingClearingRegistryId(), requirementByIssue.getCompanyId()); -// Collection relatedRegistries = registryImdg.getCollectionObjectsBySQL(sql); -// -// RegistryTradingParams registryTradingParamsA = new RegistryTradingParams(RegistryDesignation.A, -// RegistryInstrumentType.S, null, RegistryUnit.T); -// -// for (Registry relatedRegistry : relatedRegistries) { -// if (registryTradingParamsA.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { -// relatedRegistry.setSettledDebit(safeBD(relatedRegistry.getSettledDebit()).add(safeBD(requirementByIssue.getBalance()))); -// } -// registryImdg.update(relatedRegistry); -// } -// } -// -// List requirementsByMoney = obligations.stream().filter(registry -> -// new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.M, null, RegistryUnit.T).equalByRegistry( -// IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, registry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) -// .toList(); -// -// log.debug("Size requirementsByMoney: {}; expected 0", requirementsByMoney.size()); -// for (Registry requirementByMoney : requirementsByMoney) { -// String sql = String.format("tradingClearingRegistryId = %s and companyId = %s", -// requirementByMoney.getTradingClearingRegistryId(), requirementByMoney.getCompanyId()); -// Collection relatedRegistries = registryImdg.getCollectionObjectsBySQL(sql); -// -// RegistryTradingParams registryTradingParamsA = new RegistryTradingParams(RegistryDesignation.A, -// RegistryInstrumentType.M, null, RegistryUnit.T); -// -// for (Registry relatedRegistry : relatedRegistries) { -// if (registryTradingParamsA.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { -// relatedRegistry.setSettledDebit(safeBD(relatedRegistry.getSettledDebit()).add(safeBD(requirementByMoney.getBalance()))); -// } -// registryImdg.update(relatedRegistry); -// } -// } -// -// List obligationsByIssue = obligations.stream().filter(registry -> -// new RegistryTradingParams(RegistryDesignation.L, RegistryInstrumentType.S, null, RegistryUnit.T).equalByRegistry( -// IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, registry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) -// .toList(); -// -// for (Registry obligationByIssue : obligationsByIssue) { -// String sql = String.format("tradingClearingRegistryId = %s and companyId = %s", -// obligationByIssue.getTradingClearingRegistryId(), obligationByIssue.getCompanyId()); -// Collection relatedRegistries = registryImdg.getCollectionObjectsBySQL(sql); -// -// RegistryTradingParams registryTradingParamsF = new RegistryTradingParams(RegistryDesignation.A, -// RegistryInstrumentType.S, null, RegistryUnit.F); -// RegistryTradingParams registryTradingParamsT = new RegistryTradingParams(RegistryDesignation.A, -// RegistryInstrumentType.S, null, RegistryUnit.T); -// RegistryTradingParams registryTradingParamsB = new RegistryTradingParams(RegistryDesignation.A, -// RegistryInstrumentType.S, null, RegistryUnit.B); -// -// for (Registry relatedRegistry : relatedRegistries) { -// if (registryTradingParamsF.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { -// relatedRegistry.setBalance(safeBD(relatedRegistry.getBalance()).subtract(safeBD(obligationByIssue.getBalance()))); -// } else if (registryTradingParamsT.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { -// relatedRegistry.setSettledDebit(safeBD(relatedRegistry.getSettledDebit()).add(safeBD(obligationByIssue.getBalance()))); -// } else if (registryTradingParamsB.equalByRegistry(IEnumKey.getEnumByKey(RegistryDesignation.class, relatedRegistry.getRegistryDesignation()), -// IEnumKey.getEnumByKey(RegistryInstrumentType.class, relatedRegistry.getRegistryInstrumentType()), -// IEnumKey.getEnumByKey(RegistryCapacity.class, relatedRegistry.getRegistryCapacity()), -// IEnumKey.getEnumByKey(RegistryUnit.class, relatedRegistry.getRegistryUnit()))) { -// relatedRegistry.setBalance(safeBD(relatedRegistry.getBalance()).add(safeBD(obligationByIssue.getBalance()))); -// } -// registryImdg.update(relatedRegistry); -// } -// } List formedPaymentInstructions = new ArrayList<>(); Map> registryByInstrumentType = obligations.stream() @@ -338,7 +208,7 @@ public class FormingPaymentInstruction implements ISessionStage { private SDf12 newSDf12(PaymentInstruction paymentInstruction) { log.debug("creating sdf12"); - SDf12 sDf12 = new SDf12(); //todo remove + SDf12 sDf12 = new SDf12(); sDf12.setId(idGenerator.nextId()); sDf12.setOutDocument(sDf12.getId().toString()); sDf12.setDirection("DELFREE"); @@ -346,7 +216,6 @@ public class FormingPaymentInstruction implements ISessionStage { sDf12.setSecurityCode(paymentInstruction.getCreditLeg_securityId().toString()); sDf12.setDepoCodeSender(paymentInstruction.getCreditLeg_account()); sDf12.setDepoCodeAdressee(paymentInstruction.getDebitLeg_account()); -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java index 89e020f81..75673dcaa 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java @@ -53,7 +53,6 @@ import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class FormingPaymentInstructionAssets implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); - //todo remove (set all in single method setImdg(provider -> setImdg1();setIdGenerator();...) private ImdgProvider imdgProvider; private ImdgId idGenerator; private Imdg registryImdg; @@ -154,8 +153,6 @@ public class FormingPaymentInstructionAssets implements ISessionStage { List paymentInstructions = new ArrayList<>(); for (Registry registry : AMBregistries) { - //по каждому AMB регистру создаем PaymentInstruction - //проверяем balance посчитанный на шаге 5 Account counterAcc = null; if (AccountType.Clrn.equalsByKey(registry.getAccountType())) { counterAcc = accountImdg.getSingleObjectByID(registry.getAccountId()); @@ -229,8 +226,6 @@ public class FormingPaymentInstructionAssets implements ISessionStage { log.debug("found ASB registries.size() = {}", ASBregistries.size()); for (Registry registry : ASBregistries) { - //по каждому AMB регистру создаем PaymentInstruction - //проверяем balance посчитанный на шаге 5 if (registry.getBalance().compareTo(BigDecimal.ZERO) == 0) { log.debug("Skip creating paymentInstruction by registry with 0 balance"); @@ -309,7 +304,7 @@ public class FormingPaymentInstructionAssets implements ISessionStage { return stageResult; } - private BigDecimal adjustAmountByReturns(Registry amb, Long sessionId) {//companyid, tcr/account, sessionId, RUB + private BigDecimal adjustAmountByReturns(Registry amb, Long sessionId) { Long companyId = amb.getCompanyId(); Long tradingClearingRegistryId = amb.getTradingClearingRegistryId(); ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); @@ -359,7 +354,6 @@ public class FormingPaymentInstructionAssets implements ISessionStage { Security security = securityImdg.getSingleObjectByID(paymentInstruction.getCreditLeg_securityId()); if (List.of(AccountType.Corr, AccountType.Clrn, AccountType.Tran, AccountType.Anlt, AccountType.Info) .contains(IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()))) { - //если info подставить anlt (единственный счет в системе) sDf03Created.add(sdf03Creator.create(paymentInstruction)); } else if (!InstrumentType.CRNC.equalsByKey(security.getInstrumentType()) && List.of(AccountType.Depo, AccountType.Dtrn).contains(IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()))) { @@ -430,7 +424,6 @@ public class FormingPaymentInstructionAssets implements ISessionStage { if (security != null) { sDf12.setSecurityCode(security.getSecuritySymbol()); } -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java index 40c642dee..110df5bb9 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDealsFinalMkr.java @@ -54,7 +54,6 @@ import static ru.spcex.platform.enumeration.RegistryTradingParams.LM_T; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); - //todo remove (set all in single method setImdg(provider -> setImdg1();setIdGenerator();...) private ImdgProvider imdgProvider; private ImdgId idGenerator; private Imdg registryImdg; @@ -115,19 +114,10 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage { .collect(Collectors.toList()); } - /** - * аккаунт-счет с accountType='TRAN' - это счет СПВБ который принадлежит самой бирже
- * хранят деньги разных участников
- * в сделке:
- * регистр CMAT кому переводить (registry.account)
- * регистр LMAT кто переводит деньги (registry.account)
- * в итоге создается 2 PaymentInstruction: LMAT -> TRAN счет -> CMAT счет - */ private StageResult formingPaymentInstructions(Long sessionId, Section section, Collection paymentInstructionReturns, boolean sendSdfs) { Collection registries = selectRegistries(); log.debug("found registries.size() = {}", registries.size()); - //клиринговый счет, через который будут проводиться сделки Account tranAcc = accountImdg.getFirstObjectBySQL("accountType = '%s' and status = '%s' and processingSign = '%s'" .formatted(AccountType.Tran.getKey(), AccountStatus.ACTIVE.getKey(), Allowed.ALLOWED.getKey())); if (tranAcc == null) { @@ -136,7 +126,6 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage { false); } log.debug("found tranAcc.id = {}", tranAcc.getId()); - //группируем регистры по groupId Map> groups = registries .stream() .collect(Collectors.groupingBy(Registry::getGroupId)); @@ -149,47 +138,12 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage { .filter(rgs -> RegistryManager.equalsByCode(rgsCode, rgs)) .findFirst() .orElse(null); - //интересуют обязательства и требования по деньгам Registry cm_t = findByCode.apply(CM_T); Registry lm_t = findByCode.apply(LM_T); if (cm_t == null || lm_t == null) { log.error("groupId {} cmt_t {} lm_t {} - both must be present", groupId, cm_t, lm_t); continue; } -// TODO CLRNWORM -// { -// //изменение активов - блокируем средства беред отправкой sdf'ов -// Optional amfO = rgsMng.findRelatedAsset(lm_t.getTradingClearingRegistryId(), lm_t.getCompanyId(), AM_F); -// Optional payerAmtO = rgsMng.findRelatedAsset(lm_t.getTradingClearingRegistryId(), lm_t.getCompanyId(), AM_T); -// Optional ambO = rgsMng.findRelatedAsset(lm_t.getTradingClearingRegistryId(), lm_t.getCompanyId(), AM_B); -// Optional receiverAmtO = rgsMng.findRelatedAsset(cm_t.getTradingClearingRegistryId(), cm_t.getCompanyId(), AM_B); -// log.debug("changing A* registers based on LM_T.id={} and CM_T.id={} found AM*F.id={}, AM*T.id={}, AM*B.id={}, AM*B.id={}", -// lm_t.getId(), -// cm_t.getId(), -// amfO.map(Registry::getId).orElse(null), -// payerAmtO.map(Registry::getId).orElse(null), -// ambO.map(Registry::getId).orElse(null), -// receiverAmtO.map(Registry::getId).orElse(null) -// ); -// Instant now = Instant.now(); -// amfO.ifPresent(amf -> { -// amf.setBalance(safeBD(amf.getBalance()).subtract(safeBD(lm_t.getBalance()))); -// setUpdatedStoreInImdg(amf, now); -// }); -// payerAmtO.ifPresent(amt -> { -// amt.setSettledDebit(safeBD(amt.getSettledDebit()).add(safeBD(lm_t.getBalance()))); -// setUpdatedStoreInImdg(amt, now); -// }); -// ambO.ifPresent(amb -> { -// amb.setBalance(safeBD(amb.getBalance()).add(safeBD(lm_t.getBalance()))); -// setUpdatedStoreInImdg(amb, now); -// }); -// receiverAmtO.ifPresent(amt -> { -// // у отправителя и получателя одинаково, см. в FormingPaymentInstruction -// amt.setSettledDebit(safeBD(amt.getSettledDebit()).add(safeBD(lm_t.getBalance()))); -// setUpdatedStoreInImdg(amt, now); -// }); -// } log.trace("generating payment instruction for groupId {} cmt_t {} lm_t {}", groupId, cm_t.getId(), @@ -240,7 +194,6 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage { Security security = securityImdg.getSingleObjectByID(paymentInstruction.getCreditLeg_securityId()); if (List.of(AccountType.Corr, AccountType.Clrn, AccountType.Tran, AccountType.Anlt, AccountType.Info) .contains(IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()))) { - //если info подставить anlt (единственный счет в системе) sDf03Created.add(sdf03Creator.create(paymentInstruction)); } else if (!InstrumentType.CRNC.equalsByKey(security.getInstrumentType()) && List.of(AccountType.Depo, AccountType.Dtrn).contains(IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()))) { @@ -290,7 +243,7 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage { private SDf12 newSDf12(PaymentInstruction paymentInstruction) { log.debug("creating sdf12"); - SDf12 sDf12 = new SDf12(); //todo remove + SDf12 sDf12 = new SDf12(); sDf12.setId(idGenerator.nextId()); sDf12.setOutDocument(sDf12.getId().toString()); sDf12.setDirection("DELFREE"); @@ -298,7 +251,6 @@ public class FormingPaymentInstructionDealsFinalMkr implements ISessionStage { sDf12.setSecurityCode(paymentInstruction.getCreditLeg_securityId().toString()); sDf12.setDepoCodeSender(paymentInstruction.getCreditLeg_account()); sDf12.setDepoCodeAdressee(paymentInstruction.getDebitLeg_account()); -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDepositReturn.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDepositReturn.java index 61e857492..8bc1e4cdb 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDepositReturn.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionDepositReturn.java @@ -103,8 +103,6 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { } } - //CM_T LM_T CS_T LS_T - private StageResult formingPaymentInstruction(Long sessionId) { Instant now = Instant.now(); Account tranAcc = accountImdg.getFirstObjectBySQL("accountType = '%s' and status = '%s' and processingSign = '%s'" @@ -143,7 +141,7 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { log.error("groupId {} LM*T or CM*T not found", entry.getKey()); continue; } - Registry lm_t = lmtO.get(); //obligation by money + Registry lm_t = lmtO.get(); Registry cm_t = cmtO.get(); Optional dmx = rgsMng.searchDmxByCounterPartyNotOk(lm_t); if (dmx.isPresent()) { @@ -186,7 +184,6 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { log.debug("groupId {} {}#id={} found", lm_t.getGroupId(), dmtClnr.get().getRegistryCode(), dmtClnr.get().getId()); { - //изменение активов - блокируем средства беред отправкой sdf'ов Optional amfO = rgsMng.findRelatedAsset(lm_t.getTradingClearingRegistryId(), lm_t.getCompanyId(), lm_t.getSecuritySymbol(), AM_F); Optional payerAmtO = rgsMng.findRelatedAsset(lm_t.getTradingClearingRegistryId(), lm_t.getCompanyId(), lm_t.getSecuritySymbol(), AM_T); Optional ambO = rgsMng.findRelatedAsset(lm_t.getTradingClearingRegistryId(), lm_t.getCompanyId(), lm_t.getSecuritySymbol(), AM_B); @@ -199,20 +196,11 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { ambO.map(Registry::getId).orElse(null), receiverAmtO.map(Registry::getId).orElse(null) ); - //amfO.ifPresent(amf -> { - // amf.setBalance(safeBD(amf.getBalance()).subtract(safeBD(lm_t.getBalance()))); - // setUpdatedStoreInImdg(amf, now); - //}); payerAmtO.ifPresent(amt -> { amt.setSettledDebit(safeBD(amt.getSettledDebit()).add(safeBD(lm_t.getBalance()))); setUpdatedStoreInImdg(amt, now); }); - //ambO.ifPresent(amb -> { - // amb.setBalance(safeBD(amb.getBalance()).add(safeBD(lm_t.getBalance()))); - // setUpdatedStoreInImdg(amb, now); - //}); receiverAmtO.ifPresent(amt -> { - // у отправителя и получателя одинаково, см. в FormingPaymentInstruction amt.setSettledCredit(safeBD(amt.getSettledDebit()).add(safeBD(lm_t.getBalance()))); setUpdatedStoreInImdg(amt, now); }); @@ -255,7 +243,6 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { Account account = accountImdg.getSingleObjectByID(paymentInstruction.getCreditLeg_accountId()); if (List.of(AccountType.Corr, AccountType.Clrn, AccountType.Tran, AccountType.Anlt, AccountType.Info) .contains(IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()))) { - //если info подставить anlt (единственный счет в системе) sDf03Created.add(sdf03Creator.create(paymentInstruction)); } } @@ -339,7 +326,7 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { private SDf12 newSDf12(PaymentInstruction paymentInstruction) { log.debug("creating sdf12"); - SDf12 sDf12 = new SDf12(); //todo remove + SDf12 sDf12 = new SDf12(); sDf12.setId(idGenerator.nextId()); sDf12.setOutDocument(sDf12.getId().toString()); sDf12.setDirection("DELFREE"); @@ -347,7 +334,6 @@ public class FormingPaymentInstructionDepositReturn implements ISessionStage { sDf12.setSecurityCode(paymentInstruction.getCreditLeg_securityId().toString()); sDf12.setDepoCodeSender(paymentInstruction.getCreditLeg_account()); sDf12.setDepoCodeAdressee(paymentInstruction.getDebitLeg_account()); -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java index 2e228364e..21e0c6acb 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionReturnMkr.java @@ -53,7 +53,6 @@ import static ru.spcex.platform.enumeration.RegistryTradingParams.*; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class FormingPaymentInstructionReturnMkr implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); - //todo remove (set all in single method setImdg(provider -> setImdg1();setIdGenerator();...) private ImdgProvider imdgProvider; private ImdgId idGenerator; private Imdg registryImdg; @@ -120,7 +119,6 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { List requirementsByMoney = rgsAll.stream() .filter(registry -> equalByRgs(CM_T, registry)) .toList(); - //изменяем активы по требованиям по деньгам CM_T for (Registry requirementByMoney : requirementsByMoney) { String sql = String.format("tradingClearingRegistryId = %s and companyId = %s", requirementByMoney.getTradingClearingRegistryId(), requirementByMoney.getCompanyId()); @@ -149,7 +147,7 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { log.error("LM*T or CM*T not found for group {}", entry.getKey()); continue; } - Registry lm_t = lmtO.get(); //obligation by money + Registry lm_t = lmtO.get(); Registry cm_t = cmtO.get(); Optional dmx = rgsMng.searchDmxByCounterPartyNotOk(lm_t); if (dmx.isPresent()) { @@ -168,7 +166,6 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { false); } { - //изменение активов - блокируем средства беред отправкой sdf'ов Optional receiverAmtO = rgsMng.findRelatedAsset(cm_t.getTradingClearingRegistryId(), cm_t.getCompanyId(), lm_t.getSecuritySymbol(), AM_B); log.debug("changing A* registers based on LM_T.id={} and CM_T.id={} found AM*T(receiver).id={}", lm_t.getId(), @@ -176,7 +173,6 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { receiverAmtO.map(Registry::getId).orElse(null) ); receiverAmtO.ifPresent(amt -> { - // у отправителя и получателя одинаково, см. в FormingPaymentInstruction amt.setSettledDebit(safeBD(amt.getSettledDebit()).add(safeBD(lm_t.getBalance()))); setUpdatedStoreInImdg(amt, now); }); @@ -332,7 +328,7 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { private SDf12 newSDf12(PaymentInstruction paymentInstruction) { log.debug("creating sdf12"); - SDf12 sDf12 = new SDf12(); //todo remove + SDf12 sDf12 = new SDf12(); sDf12.setId(idGenerator.nextId()); sDf12.setOutDocument(sDf12.getId().toString()); sDf12.setDirection("DELFREE"); @@ -340,7 +336,6 @@ public class FormingPaymentInstructionReturnMkr implements ISessionStage { sDf12.setSecurityCode(paymentInstruction.getCreditLeg_securityId().toString()); sDf12.setDepoCodeSender(paymentInstruction.getCreditLeg_account()); sDf12.setDepoCodeAdressee(paymentInstruction.getDebitLeg_account()); -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecondaryT0.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecondaryT0.java index dfdd41500..e748c3f9f 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecondaryT0.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecondaryT0.java @@ -55,7 +55,6 @@ import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); - //todo remove (set all in single method setImdg(provider -> setImdg1();setIdGenerator();...) private ImdgProvider imdgProvider; private ImdgId idGenerator; private Imdg registryImdg; @@ -117,18 +116,9 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { .collect(Collectors.toList()); } - /** - * аккаунт-счет с accountType='TRAN' - это счет СПВБ который принадлежит самой бирже
- * хранят деньги разных участников
- * в сделке:
- * регистр CMAT кому переводить (registry.account)
- * регистр LMAT кто переводит деньги (registry.account)
- * в итоге создается 2 PaymentInstruction: LMAT -> TRAN счет -> CMAT счет - */ private StageResult formingPaymentInstructions(Long sessionId, Collection paymentInstructionReturns) { Collection registries = selectRegistries(); log.debug("found registries.size() = {}", registries.size()); - //клиринговый счет, через который будут проводиться сделки Account dtrnAcc = accountImdg.getFirstObjectBySQL("accountType = '%s' and status = '%s' and processingSign = '%s'" .formatted(AccountType.Dtrn.getKey(), AccountStatus.ACTIVE.getKey(), Allowed.ALLOWED.getKey())); if (dtrnAcc == null) { @@ -137,7 +127,6 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { false); } log.debug("found dtrnAcc.id = {}", dtrnAcc.getId()); - //группируем регистры по groupId Map> groups = registries .stream() .collect(Collectors.groupingBy(Registry::getGroupId)); @@ -150,7 +139,6 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { .filter(rgs -> RegistryManager.equalsByCode(rgsCode, rgs)) .findFirst() .orElse(null); - //интересуют обязательства и требования по деньгам Registry cs_t = findByCode.apply(CS_T); Registry ls_t = findByCode.apply(LS_T); if (cs_t == null || ls_t == null) { @@ -158,7 +146,6 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { continue; } { - //изменение активов - блокируем средства беред отправкой sdf'ов Optional amfO = rgsMng.findRelatedAsset(ls_t.getTradingClearingRegistryId(), ls_t.getCompanyId(), ls_t.getSecuritySymbol(), AS_F); Optional payerAmtO = rgsMng.findRelatedAsset(ls_t.getTradingClearingRegistryId(), ls_t.getCompanyId(), ls_t.getSecuritySymbol(), AS_T); Optional ambO = rgsMng.findRelatedAsset(ls_t.getTradingClearingRegistryId(), ls_t.getCompanyId(), ls_t.getSecuritySymbol(), AS_B); @@ -185,7 +172,6 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { setUpdatedStoreInImdg(amb, now); }); receiverAmtO.ifPresent(amt -> { - // у отправителя и получателя одинаково, см. в FormingPaymentInstruction amt.setSettledDebit(safeBD(amt.getSettledDebit()).add(safeBD(ls_t.getBalance()))); setUpdatedStoreInImdg(amt, now); }); @@ -200,7 +186,7 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { .lm_t(ls_t) .tranAcc(dtrnAcc) .sessionId(sessionId) - .paymentPurpose("")//todo пока неизвестная формулировка + .paymentPurpose("") .build(); Pair.forEach(pmtInstrs, pmtInstr -> { paymentInstructionImdg.insert(pmtInstr); @@ -286,7 +272,7 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { private SDf12 newSDf12(PaymentInstruction paymentInstruction) { log.debug("creating sdf12"); - SDf12 sDf12 = new SDf12(); //todo remove + SDf12 sDf12 = new SDf12(); sDf12.setId(idGenerator.nextId()); sDf12.setOutDocument(sDf12.getId().toString()); sDf12.setDirection("DELFREE"); @@ -297,7 +283,6 @@ public class FormingPaymentInstructionSecondaryT0 implements ISessionStage { } sDf12.setDepoCodeSender(paymentInstruction.getCreditLeg_account()); sDf12.setDepoCodeAdressee(paymentInstruction.getDebitLeg_account()); -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java index d7891c4ed..a338ec0ec 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java @@ -57,7 +57,6 @@ import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class FormingPaymentInstructionSecurities implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); - //todo remove (set all in single method setImdg(provider -> setImdg1();setIdGenerator();...) private ImdgProvider imdgProvider; private ImdgId idGenerator; private Imdg registryImdg; @@ -138,18 +137,12 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { } - /** - * часть для бумаг по первичке IPO0 IPOT IPOB - * вторичка прошла идеально - * из нее нужно будет взять кусок про деньги - */ private StageResult formingPaymentInstructions(Long sessionId) { List paymentInstructionAll = new ArrayList<>(); Instant now = Instant.now(); { Collection registries = selectSecurityRegistries(sessionId); log.debug("found registries.size() = {}", registries.size()); - //группируем регистры по groupId Map> groups = registries .stream() .collect(Collectors.groupingBy(Registry::getGroupId)); @@ -162,7 +155,6 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { .filter(rgs -> RegistryManager.equalsByCode(rgsCode, rgs)) .findFirst() .orElse(null); - //интересуют обязательства и требования по деньгам Registry cs_t = findByCode.apply(CS_T); Registry ls_t = findByCode.apply(LS_T); if (cs_t == null || ls_t == null) { @@ -244,7 +236,6 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { } log.debug("found AS*B.size() = {}", registries.size()); - //группируем регистры по groupId for (Registry registry : registries) { if (registry.getBalance().compareTo(BigDecimal.ZERO) == 0) { log.debug("Skip creating paymentInstruction by registry with 0 balance"); @@ -384,7 +375,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { private SDf12 newSDf12(PaymentInstruction paymentInstruction) { log.debug("creating sdf12"); - SDf12 sDf12 = new SDf12(); //todo remove + SDf12 sDf12 = new SDf12(); sDf12.setId(idGenerator.nextId()); sDf12.setOutDocument(sDf12.getId().toString()); sDf12.setDirection("DELFREE"); @@ -395,7 +386,6 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { } sDf12.setDepoCodeSender(paymentInstruction.getCreditLeg_account()); sDf12.setDepoCodeAdressee(paymentInstruction.getDebitLeg_account()); -// sDf12.setTransactionNumber(); sDf12.setGenerationTime(Instant.now()); return sDf12; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingRegistersOnOS.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingRegistersOnOS.java index 932ea2551..5e5d70c40 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingRegistersOnOS.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingRegistersOnOS.java @@ -53,12 +53,6 @@ public class FormingRegistersOnOS implements ISessionStage { } } - /** - * Select Registry by: registryCode = [O/T][S/M][*][T] & registryStatus=OK - * - * @return - * @param sessionId - */ protected Collection selectRegistry(Long sessionId) { String registrySQL = "(registryDesignation=" + RegistryDesignation.O.getKey() + " or registryDesignation=" + RegistryDesignation.T.getKey() + ")"; registrySQL += " and (registryInstrumentType=" + RegistryInstrumentType.S.getKey() + " or registryInstrumentType=" + RegistryInstrumentType.M.getKey() + ")"; @@ -74,9 +68,6 @@ public class FormingRegistersOnOS implements ISessionStage { Collection forRegistries = selectRegistry(sessionId); ArrayList newRegistries = new ArrayList<>(); - //todo oreder by обрабатываться группами по полю registry.groupId - //todo при перезапуске после незапланированного завершения стадии: надо ли проверять уже созданные регистры и не создавать дубликаты? - for (Registry registry : forRegistries) { Registry newRegistry = createRegistryFor(registry); newRegistries.add(newRegistry); @@ -107,16 +98,6 @@ public class FormingRegistersOnOS implements ISessionStage { } newRegistry.setRegistryDesignation(newRegDestination); -// String newRegistryInstrumentType; // по ТЗ не меняется -// if (RegistryInstrumentType.S.equalsByKey(forRegistry.getRegistryInstrumentType())) { -// newRegistryInstrumentType = RegistryInstrumentType.S.getKey(); -// } else if (RegistryInstrumentType.M.equalsByKey(forRegistry.getRegistryInstrumentType())) { -// newRegistryInstrumentType = RegistryInstrumentType.M.getKey(); -// } else { -// throw new IllegalArgumentException("RegistryInstrumentType=" + forRegistry.getRegistryInstrumentType()); -// } -// newRegistry.setRegistryInstrumentType(newRegistryInstrumentType); - newRegistry.setRegistryCode(RegistryUtil.clearingCode(newRegistry)); return newRegistry; } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/GatewayRequester.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/GatewayRequester.java index 556c841b0..91139fa1a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/GatewayRequester.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/GatewayRequester.java @@ -74,7 +74,6 @@ public class GatewayRequester extends QueueConsumer implements InitializingBean log.error("{}.id={} already sent to gateway", getName(), this.omtId); throw new IllegalStateException(" forbid reusing GatewayRequester instance in multiple threads"); } - //send Request AssetOperationListRequest assetOperationListRequest = new AssetOperationListRequest(); Collection requests = new ArrayList<>(); AssetOperationRequest req = reqBuilder.get(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InclusionObligations.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InclusionObligations.java index d2bcadb50..9e981b5c5 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InclusionObligations.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InclusionObligations.java @@ -31,7 +31,6 @@ import java.util.stream.Collectors; @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class InclusionObligations implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); - //todo remove (set all in single method setImdg(provider -> setImdg1();setIdGenerator();...) private ImdgProvider imdgProvider; private ImdgId idGenerator; private Imdg registryImdg; @@ -50,12 +49,6 @@ public class InclusionObligations implements ISessionStage { this.rgsPb = registryImdg.predicateBuilder(); } - /** - * для сессии возврата депозитов статус регистров - * proc ИЛИ mng - * proc не захардкожен для случая дополнительных условий - * указывать обязательно если есть дополнительные условия - */ public InclusionObligations addRegistryCondition(ImdgPredicate imdgPredicate) { this.registryConditions.add(imdgPredicate); return this; @@ -85,7 +78,6 @@ public class InclusionObligations implements ISessionStage { ImdgPredicateBuilder prdctBuilder = registryImdg.predicateBuilder(); ImdgPredicate defaultCondition = prdctBuilder.sql(sqlCondition); if (sessionType != null) { - //не всегда нужное условие defaultCondition = prdctBuilder.and(defaultCondition, sessionTypePredicate()); } ImdgPredicate registryPredicate; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligations.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligations.java index 40822eb5d..154e2f477 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligations.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligations.java @@ -176,8 +176,7 @@ public class InspectionObligations implements ISessionStage { defineStatusAndUpdateRegistry(checkResults, group); if (checkResults.stream().noneMatch(checkResult -> checkResult.isUncovered)) { Instant now = Instant.now(); - //по каждому регистру OM*T, TM*T, OS*T, TS*T из одной группы - for (Registry registry : group) {//TODO CLRNWORM проверка на пустой blockedRegistry + for (Registry registry : group) { { RegistryInstrumentType mOrS = IEnumKey.getEnumByKey(RegistryInstrumentType.class, registry.getRegistryInstrumentType()); if (mOrS == null) continue; @@ -273,7 +272,6 @@ public class InspectionObligations implements ISessionStage { tRegistryWithSameCompany.ifPresent(registry -> updateRegistryStatus(registry, failStatus())); } } - //проверяем есть ли второй день для сделки (он не входит в пул, поэтому ищем отдельно) getRefundDateRgsIfPresent(registries).forEach(rgs -> updateRegistryStatus(rgs, RegistryStatus.FAIL)); } else { registries.forEach(registry -> updateRegistryStatus(registry, RegistryStatus.OK)); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java index e1f7f8c7f..a9661ddf5 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligationsDepositReturn.java @@ -107,22 +107,18 @@ public class InspectionObligationsDepositReturn implements ISessionStage { Optional tmtInGroupO = group.stream().filter(registry -> equalByRgs(TM_T, registry)).findFirst(); if (omtInGroupO.isEmpty() || tmtInGroupO.isEmpty()) { log.error("groupId {} failed to find OM*T/TM*T registry", entry.getKey()); - group.forEach(rgs -> updateStatus(rgs, registryStatusFailed())); // FAIL or MNG + group.forEach(rgs -> updateStatus(rgs, registryStatusFailed())); continue; } Registry omtRgs = omtInGroupO.get(); Registry tmtRgs = tmtInGroupO.get(); log.debug("groupId={}, OM*T.id={}", entry.getKey(), omtRgs.getId()); BigDecimal omtBalance = safeBD(omtRgs.getBalance()); - - //первая часть сделки депозита if (omtRgs.getValueDate() == null || omtRgs.getSettlementDate() == null || !omtRgs.getValueDate().isBefore(omtRgs.getSettlementDate())) { continue; } - - //вторая часть сделки - возврат депозита Optional dmx = rgsMng.searchDmxByCounterParty(omtRgs); if (dmx.isPresent()) { BigDecimal dmxBalance = safeBD(dmx.get().getBalance()); @@ -133,9 +129,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage { ); if (dmxBalance.compareTo(omtBalance) >= 0) { group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK)); -// updateStatus(dmx.get(), RegistryStatus.POOL); } else { - //для OM*T uncovered остальным фейл group.forEach(rgs -> updateStatus(rgs, registryStatusFailed(rgs))); updateStatus(dmx.get(), RegistryStatus.UNCV); } @@ -146,12 +140,12 @@ public class InspectionObligationsDepositReturn implements ISessionStage { Optional amfAssetReceiverO = searchAssetByOMT(tmtRgs); if (amfAssetO.isEmpty()) { log.error("OM*T register.id={} groupId={} failed to find AM*F asset", omtRgs.getId(), entry.getKey()); - group.forEach(rgs -> updateStatus(rgs, registryStatusFailed())); // FAIL or MNG + group.forEach(rgs -> updateStatus(rgs, registryStatusFailed())); continue; } if (amfAssetReceiverO.isEmpty()) { log.error("TM*T register.id={} groupId={} failed to find AM*F asset", tmtRgs.getId(), entry.getKey()); - group.forEach(rgs -> updateStatus(rgs, registryStatusFailed())); // FAIL or MNG + group.forEach(rgs -> updateStatus(rgs, registryStatusFailed())); continue; } @@ -177,11 +171,9 @@ public class InspectionObligationsDepositReturn implements ISessionStage { group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK)); processAssetsAndSetSessionId.accept(amfAsset, omtBalance.negate()); processAssetsAndSetSessionId.accept(amfAssetReceiverO.get(), omtBalance); -// updateStatus(dmtInfo.get(), RegistryStatus.POOL); continue; } else if (SessionType.XDEP.equals(sessionType)) { - group.forEach(rgs -> updateStatus(rgs, registryStatusFailed(rgs))); // для финальной UNCV or FAIL ; другие MNG -// updateStatus(dmtInfo.get(), RegistryStatus.UNCV); не меняет статус, статус определяется OM*T + group.forEach(rgs -> updateStatus(rgs, registryStatusFailed(rgs))); continue; } } @@ -200,7 +192,6 @@ public class InspectionObligationsDepositReturn implements ISessionStage { continue; } else if (SessionType.XDEP.equals(sessionType)) { group.forEach(rgs -> updateStatus(rgs, registryStatusFailed(rgs))); -// updateStatus(dmtClnr.get(), RegistryStatus.UNCV); не меняет статус, статус определяется OM*T continue; } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/PlanBalanceCalc.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/PlanBalanceCalc.java index c1c51a30c..64f49df68 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/PlanBalanceCalc.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/PlanBalanceCalc.java @@ -31,15 +31,6 @@ public class PlanBalanceCalc { } public void stageRevision2(Long sessionId) { - /* todo logic - Collection rgsAT = findRegistryATBySession // registry_disignation=A and registry_unit=T -Collection rgsAB = findRegistryATBySession // registry_disignation=A and registry_unit=B and sessionId = current - -foreach( at: rgsAT) - foreach (ab: rgsAB) - if (at.companyId=ab.companyId and at.accountId=ab.accountId and at.securityId=ab.securityId) - at.plannecBallance -= ab.balance - */ String sqlAT = RegistryCodeSqlBuilder.getInstance(A__T).build(); String sqlAB = String.format("(%s) and sessionId = %d", RegistryCodeSqlBuilder.getInstance(A__B).build(), diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryDepoBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryDepoBuilder.java index 64900073b..bf8831374 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryDepoBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryDepoBuilder.java @@ -152,11 +152,9 @@ public class RegistryDepoBuilder implements IRegistryBuilder { } private Long groupId() { -// Market market = marketImdg.getFirstObjectBySQL("code = '" + exec.getMarket() + "'"); return exec.getExchangeExecutionId(); } - //можно передать из стейджа private String sessionType() { Session session = sessionImdg.getSingleObjectByID(exec.getSessionId()); return session.getSessionType(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java index 4703321b4..78eafad77 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java @@ -105,7 +105,7 @@ public class RegistryFondBuilder implements IRegistryBuilder { reg.setAccountId(tcr.getMoneyAccountId()); account = accountImdg.getSingleObjectByID(tcr.getMoneyAccountId()); reg.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); - reg.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme add second leg code branch + reg.setBalanceDimension(BalanceDimension.MONY.getKey()); Currency currency = currencyImdg.getFirstObjectByFieldValues(Map.of("currencyCode", exec.getSettlementCurrency())); reg.setSecurityId(currency.getId()); reg.setSecuritySymbol(currency.getCurrencyCode()); @@ -120,7 +120,7 @@ public class RegistryFondBuilder implements IRegistryBuilder { capacityByAccount = depoAccount.getDepoAccountType(); } reg.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); - reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch + reg.setBalanceDimension(BalanceDimension.PICS.getKey()); reg.setSecurityId(exec.getSecurityId()); reg.setSecuritySymbol(exec.getSecuritySymbol()); } @@ -166,11 +166,9 @@ public class RegistryFondBuilder implements IRegistryBuilder { } private Long groupId() { -// Market market = marketImdg.getFirstObjectBySQL("code = '" + exec.getMarket() + "'"); return exec.getExchangeExecutionId(); } - //можно передать из стейджа private String sessionType() { Session session = sessionImdg.getSingleObjectByID(exec.getSessionId()); return session.getSessionType(); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java index 81476c58f..9fa372a93 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirementsAndObligationCreation.java @@ -32,9 +32,6 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; import java.util.function.BiFunction; -/** - * LiabilitiesAndClaims - */ @Service @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class RequirementsAndObligationCreation implements ISessionStage { @@ -60,7 +57,6 @@ public class RequirementsAndObligationCreation implements ISessionStage { private StageResult createRegisters(List data) { data.sort(Comparator.comparing(ExecutionCommon::getExchangeExecutionId)); - //см. описание к #matchExecutions for (int i = 0; i < data.size(); ) { Pair matched = matchExecutions(data, i); if (matched == null) { @@ -72,9 +68,7 @@ public class RequirementsAndObligationCreation implements ISessionStage { i += 2; ExecutionCommon partyExec = matched.getFirst(); ExecutionCommon counterExec = matched.getSecond(); - //бывает поиск обычный, бывает по ExecutionDeposit.secondLegSettlementDt AtomicReference>> regSearchMethod = new AtomicReference<>(); - //обычный поиск regSearchMethod.set(this::findReg); TriConsumer findAndUpdateOrCreate = (exec, regDsgn, returnedDep) -> regSearchMethod.get().apply(exec, regDsgn) @@ -101,7 +95,6 @@ public class RequirementsAndObligationCreation implements ISessionStage { findAndUpdateOrCreate.accept(counterExec, RegistryDesignation.O, false); findAndUpdateOrCreate.accept(counterExec, RegistryDesignation.T, false); if (partyExec.type().equals(ExecutionType.ExecutionDeposit) && ((ExecutionDeposit) partyExec).getSecondLegSettlementDate() != null) { - //поиск по дате расчетов ExecutionDeposit.secondLegSettlementDt regSearchMethod.set(this::findRegBySettlementDt); findAndUpdateOrCreate.accept(partyExec, RegistryDesignation.T, true); findAndUpdateOrCreate.accept(partyExec, RegistryDesignation.O, true); @@ -203,24 +196,12 @@ public class RequirementsAndObligationCreation implements ISessionStage { } - /** - * входные данные отсортированы по exchangeExecutionId. - * сортировка выполнена на предыдущем шаге. (такое описание шагов в ТЗ) - * по идее, Execution с одинаковым exchangeExecutionId должно быть всего два. - * если это не так, передалать на коллекцию Long executionId в правильном порядке - * и для каждого искать мэтч отдельно в Imdg, с сохранением уже обработанных для избежания дублирования - */ private Pair matchExecutions(List data, int i) { - //if the last execution, then no match if (i >= data.size() - 1) { return null; } ExecutionCommon exec1 = data.get(i); ExecutionCommon exec2 = data.get(i + 1); - //Встречная сделка контрагента выбирается из executionDeposit/Fond по условию: - //exchangeExecutionId=currentExecutionDeposit/Fond.exchangeExecutionId - //и [side=SELL (если currentExecutionDeposit/Fond.side=BUY) или side=BUY (если currentExecutionDeposit/Fond.side=SELL) по справочнику moneyFlowSide или справочнику side в зависимости от секции обрабатываемой сделки] - //и companyId=currentExecutionDeposit/Fond.counterPartyId String invalid = null; if (!Objects.equals(exec1.getExchangeExecutionId(), exec2.getExchangeExecutionId())) { invalid = String.format("exchangeExecutionId %d and %d not equal", exec1.getExchangeExecutionId(), exec2.getExchangeExecutionId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/UnlockResources.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/UnlockResources.java index 837461e73..b04df2804 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/UnlockResources.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/UnlockResources.java @@ -28,7 +28,6 @@ import java.util.Collection; @Service @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) @Deprecated -//не должен использоваться как stage в сессии, данная логика перенесена в statementService public class UnlockResources implements ISessionStage { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -66,7 +65,6 @@ public class UnlockResources implements ISessionStage { pb.and( pb.equals("registryDesignation", RegistryDesignation.A.getKey()), pb.equals("registryInstrumentType", RegistryInstrumentType.M.getKey()), - // pb.equals("registryCapacity", *), pb.or(pb.equals("registryUnit", RegistryUnit.F.getKey()), pb.equals("registryUnit", RegistryUnit.B.getKey())) ), @@ -79,16 +77,12 @@ public class UnlockResources implements ISessionStage { return result; } - /** - * Select Registry by: account; fullName* / securityId - */ protected Collection selectRegistryForSDF12(String account, Long securityId) { ImdgPredicateBuilder pb = registryImdg.predicateBuilder(); ImdgPredicate query = pb.and( pb.and( pb.equals("registryDesignation", RegistryDesignation.A.getKey()), pb.equals("registryInstrumentType", RegistryInstrumentType.S.getKey()), - // pb.equals("registryCapacity", *), pb.or(pb.equals("registryUnit", RegistryUnit.F.getKey()), pb.equals("registryUnit", RegistryUnit.B.getKey())) ), @@ -102,13 +96,6 @@ public class UnlockResources implements ISessionStage { } - /** - * @param sdfMode UnlockResourcesPayload.sdfMode - * @param account - * @param securityId - * @param fullNames - * @return - */ protected StageResult unlockResources(String sdfMode, String account, Long securityId, Collection fullNames, BigDecimal value) { Collection forRegistries; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/monitor/SessionMonitorFactory.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/monitor/SessionMonitorFactory.java index 16ac67947..380543e3f 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/monitor/SessionMonitorFactory.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/monitor/SessionMonitorFactory.java @@ -3,9 +3,6 @@ package ru.spcex.clearing.session.stage.monitor; import ru.spcex.platform.enumeration.SdfTable; import ru.spcex.platform.enumeration.Section; -/** - * @see ru.spcex.clearing.platform.messaging.domain.cud.clearing.SessionContinueEvent - */ public class SessionMonitorFactory { public static SessionMonitor paymentsWereCreated(Section section) { switch (section) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/PaymentGroup.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/PaymentGroup.java index f4666fef2..08066652b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/PaymentGroup.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/PaymentGroup.java @@ -33,6 +33,4 @@ public class PaymentGroup { public void setLs_tId(Long ls_tId) { this.ls_tId = ls_tId; } - // private Direction direction; - // } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/task/FormingPaymentInstructionDealsMkrPayload.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/task/FormingPaymentInstructionDealsMkrPayload.java index 2072c223a..6e6c569ec 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/task/FormingPaymentInstructionDealsMkrPayload.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/task/FormingPaymentInstructionDealsMkrPayload.java @@ -8,10 +8,6 @@ import java.util.Collection; public class FormingPaymentInstructionDealsMkrPayload { private Long sessionId; private Section section; - /** - * для МКР итоговой сессии SDF будет отправляться по 1. возвратам 2. сделкам - * соотв. поле нужно чтобы передать сделанные пейменты из пункта 1 в 2 - */ private Collection paymentInstructionReturns; private boolean isSendSdfs = true; public Long getSessionId() { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/task/UnlockResourcesPayload.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/task/UnlockResourcesPayload.java index fc16b5d2b..3fbdeb49d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/task/UnlockResourcesPayload.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/task/UnlockResourcesPayload.java @@ -7,30 +7,13 @@ public class UnlockResourcesPayload { public static final String MODE_SDF04 = "sDf04"; public static final String MODE_SDF12 = "sDf12"; - /** - * MODE_SDF04/MODE_SDF12 - */ private String sdfMode; - /** - * sDf04.c_acc_cred - * sDf12.depoCodeSender - */ private String account; - /** - * sDf04.(sbanknam1, sbanknam2 и т.д.) - */ private List fullNames; - /** - * sDf12.securityCode - */ private Long securityId; - /** - * sDf04.pay_val - * sDf12.quantity - */ private BigDecimal value; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/SdfGroup.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/SdfGroup.java index 56c575ae9..2c06bac30 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/SdfGroup.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/SdfGroup.java @@ -10,15 +10,6 @@ import java.util.Optional; public enum SdfGroup { Sdf01And57(SdfTable.SDF_01, SdfTable.SDF_57), Sdf08And21(SdfTable.SDF_08, SdfTable.SDF_21), - - //------ session groups ------ (4), (1 57), (13), (8 21) - //session_Triple(SdfTable.SDF_04, SdfTable.SDF_01, SdfTable.SDF_57), - //session_Six(SdfTable.SDF_04, - // SdfTable.SDF_13, - // SdfTable.SDF_08, - // SdfTable.SDF_21, - // SdfTable.SDF_01, - // SdfTable.SDF_57), ; private final Collection group; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/SdfGroupManager.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/SdfGroupManager.java index e7e12ef16..b2d63f211 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/SdfGroupManager.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/SdfGroupManager.java @@ -20,33 +20,6 @@ public class SdfGroupManager { } public Optional getGroup(SdfTable table) { - //ImdgPredicateBuilder pb = sessImdg.predicateBuilder(); - //ImdgPredicate prdct = pb.and( - // pb.equals("workflowStatus", SessionStatus.ACTV.getKey()), - // pb.equals("sessionStatus", TaskType.FormingPaymentInstruction.getKey()) - //); - //Collection sessions = sessImdg.getCollectionObjectsByPredicate(prdct); - //if (sessions.size() > 1) { - // throw new IllegalStateException("more than one active session found by predicate " - // + prdct - // + " ids " + sessions.stream() - // .map(SpcexObjectBase::getId) - // .map(Object::toString) - // .collect(TextUtil.join)); - //} - //if (sessions.size() == 0) { return SdfGroup.groupByTable(table); - //} else { - // Session session = sessions.iterator().next(); - // Section section = IEnumKey.getEnumByKey(Section.class, session.getSection()); - // if (section == null) { - // throw new IllegalStateException("couldn't determine section of session.id=" + session.getId()); - // } - // if (Section.MKR.equals(section)) { - // return Optional.of(SdfGroup.session_Triple); - // } else if (Section.FOND.equals(section)) { - // return Optional.of(SdfGroup.session_Six); - // } else throw new IllegalStateException("unknown section '" + section + "' of session.id=" + session.getId()); - //} } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/StatementServiceV2.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/StatementServiceV2.java index 5fc3a8031..a9d887605 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/StatementServiceV2.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/statement/StatementServiceV2.java @@ -91,7 +91,6 @@ public class StatementServiceV2 { Optional sdfGroup = grpMng.getGroup(table); if (sdfGroup.isEmpty()) { log.debug("table {} is not paired with any other SDF", table); - //здесь switch case одиночные методы switch (table) { case SDF_04 -> processSdf04(systemRequest.getRequestPayload()); case SDF_10 -> sdf10Executor.execute(systemRequest); @@ -109,8 +108,6 @@ public class StatementServiceV2 { .map(SdfTable::getKey) .collect(TextUtil.join) ); - //здесь мэтчинг запросов которые пришли раньше и текущего в одну группу - //если группа нашлась полная - значит обрабатываем List fullGroup = getFullGroup(systemRequest.getRequestPayload(), sdfGroup.get()); statementRequests.add(systemRequest.getRequestPayload()); if (fullGroup.isEmpty()) { @@ -128,16 +125,6 @@ public class StatementServiceV2 { } else if (sdfGroup.get() == SdfGroup.Sdf01And57) { processSdf01And57(find(SdfTable.SDF_01, fullGroup), find(SdfTable.SDF_57, fullGroup)); } - //else if (sdfGroup.get() == SdfGroup.session_Triple) { - // processSdf04(find(SdfTable.SDF_04, fullGroup)); - // processSdf01And57(find(SdfTable.SDF_01, fullGroup), find(SdfTable.SDF_57, fullGroup)); - //} - //else if (sdfGroup.get() == SdfGroup.session_Six) { - // processSdf04(find(SdfTable.SDF_04, fullGroup)); - // processSdf13(find(SdfTable.SDF_13, fullGroup)); - // processSdf08And21(find(SdfTable.SDF_08, fullGroup), find(SdfTable.SDF_21, fullGroup)); - // processSdf01And57(find(SdfTable.SDF_01, fullGroup), find(SdfTable.SDF_57, fullGroup)); - //} else { throw new IllegalStateException("not implemented"); } @@ -151,11 +138,6 @@ public class StatementServiceV2 { return first.get(); } - /** - * fromAccService передается когда пришел ответ от account-service - * в этом случае: по key находим пару в которой сохранен sdf57 запрос и частично выполненный sdf01 - * вместо старого sdf01 запроса выполняем новый пришедший от account-service - */ private void processSdf08And21(StatementRequest sdf08, StatementRequest sdf21) { Result sdf08Res = processSdf08(sdf08); removeFirstWithSameTableAndGroupId(sdf08); @@ -163,20 +145,13 @@ public class StatementServiceV2 { log.info("sdf08 execution wasn't complete, waiting for an answer from account-service"); return; } - //затем sdf21 processSdf21(sdf21); removeFirstWithSameTableAndGroupId(sdf21); - //fixme ревизия для бумаг reviser.doRevise(pair.getFirst().getGroupId()); SessionContinueEvent continueSessionBn = new SessionContinueEvent(SdfTable.SDF_08, SdfTable.SDF_21); kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn); log.info("pair sdf08/sdf21 processed successfully"); } - /** - * fromAccService передается когда пришел ответ от account-service - * в этом случае: по key находим пару в которой сохранен sdf57 запрос и частично выполненный sdf01 - * вместо старого sdf01 запроса выполняем новый пришедший от account-service - */ private void processSdf01And57(StatementRequest sdf01, StatementRequest sdf57) { Result sdf01Res = processSdf01(sdf01); removeFirstWithSameTableAndGroupId(sdf01); @@ -184,11 +159,9 @@ public class StatementServiceV2 { log.info("sdf01 execution wasn't complete, waiting for an answer from account-service"); return; } - //затем sdf57 boolean sessionStarted = processSdf57(sdf57); removeFirstWithSameTableAndGroupId(sdf57); reviser.doRevise(sdf01.getGroupId()); - //теперь можем продолжить сессию с шага 1 if (!sessionStarted || sessionImdg.getFirstObjectBySQL("workflowStatus = '%s'".formatted(WorkflowStatus.Active.getKey())) != null) { SessionContinueEvent continueSessionBn = new SessionContinueEvent(SdfTable.SDF_01, SdfTable.SDF_57); @@ -213,7 +186,7 @@ public class StatementServiceV2 { nRequest.setPriority(Priority.HIGH.getKey()); nRequest.setComment("Поручения из клиринговой системы имеют неисполненный статус в ответе ДФ-04 из расчетной организации"); kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, nRequest); - } else { // отправить в SessionMonitor + } else { kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn); } } else { @@ -230,11 +203,9 @@ public class StatementServiceV2 { } else { log.debug("accounts were created: {} for generationId {} child generationId {}", statementRequest.getAccountCreationResults().size(), statementRequest.getGroupId(), statementRequest.getChildGenerationId()); - //todo могут ли тут реквесты бегать по кругу, если да, то у нас проблемы sdfGroup = statementRequest.getAccountCreationResults() .stream() -// .filter(part -> part.getErrorCode() == null) //fixme эти случае должны попадать в ошибочный sdf02 - .map(part -> sdfImdg.getSingleObjectByID(part.getSdfId())) +.map(part -> sdfImdg.getSingleObjectByID(part.getSdfId())) .collect(Collectors.toList()); } AbstractExecutor service = sdf01Executor; @@ -256,7 +227,6 @@ public class StatementServiceV2 { AbstractExecutor service = sdf57Executor; Result res = service.execute(sdfGroup, statementRequest); return res.isSessionWasStarted(); -// finishSendCommand(res, service, statementRequest); } private void processSdf13(StatementRequest statementRequest) { @@ -276,7 +246,6 @@ public class StatementServiceV2 { } else { kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn); } -// finishSendCommand(res, service, statementRequest); } @@ -333,7 +302,7 @@ public class StatementServiceV2 { .map(StatementRequest::getTable) .map(Object::toString) .collect(Collectors.joining(",", "[", "]"))); - for (StatementRequest stmtReqOld : statementRequests) { //проходим с головы (с самых старых) + for (StatementRequest stmtReqOld : statementRequests) { boolean matchGroup = group.getGroup().contains(stmtReqOld.getTable()); boolean notIncludedThisTableAlready = reqs.stream().map(StatementRequest::getTable).noneMatch(t -> t.equals(stmtReqOld.getTable())); boolean isNotTheSameAsNewReq = !Objects.equals(stmtReqOld.getTable(), stmtReq.getTable()); diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/ClearingServiceTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/ClearingServiceTest.java index df28212a6..db9295d17 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/ClearingServiceTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/ClearingServiceTest.java @@ -18,7 +18,6 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.domain.cud.registry.DealRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.service.builder.LiabilitiesClaimsAssetsCreator; import ru.spcex.clearing.service.builder.LiabilitiesClaimsMoneyCreator; import ru.spcex.clearing.utils.MatcherFactory; @@ -96,18 +95,8 @@ class ClearingServiceTest extends AbstractClearingTest { this.accountBalanceImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); } - /** - * {@link ClearingService#executeClearing()}
- * Тест проверяет создание сущностей - * {@link LauncherCommandRequest} - * {@link LiabilitiesClaimsMoney} - * {@link PaymentInstruction} - * {@link ExecutionDeposit} - * в Hazelcast при передаче из Apache Kafka.
- */ @Test void startClearingNew() { - //ARRANGE int times = currentInteger.getAndIncrement(); Long companyIdI1 = 11L; Long relationIdI1 = 111L; @@ -118,30 +107,17 @@ class ClearingServiceTest extends AbstractClearingTest { preparOptimisticCase(companyIdI1, relationIdI1, accountIdI1, securityIdI1, firstSettlementDateI1, secondSettlementDateI2, "I"); - - //ACT - //stage executeClearing(startClearing) addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_START_CLEARING, PARTITION, times, getJsonStringForNew(new DealRegisterNewRequest(), FIRST_ID)); - - //waiting for kafka producer send message verify(mockProducer, timeout(30_000L).times(1)) .send(producerRecord.capture()); assertEquals(Consts.BALANCE_ACCOUNT_UPDATE, producerRecord.getValue().topic()); BaseRequest baseRequestResult = (BaseRequest) producerRecord.getValue().value(); - - //stage continueClearing CommonIdRequest requestPayload = new CommonIdRequest(); requestPayload.setId(baseRequestResult.getId()); addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_CONTINUE_CLEARING, PARTITION, times, getJsonStringForNew(requestPayload, FIRST_ID)); - - //waiting for kafka producer send message (finale event) verify(mockProducer, timeout(30_000L).times(2)) .send(producerRecord.capture()); - - //ASSERT assertEquals(Task.createOrder.topic(), producerRecord.getValue().topic()); - - //First LiabilitiesClaimsAssets && LiabilitiesClaimsMoney LiabilitiesClaimsAssets resultFirstClaimsAssets = liabilitiesClaimsAssetsImdg.getFirstObjectByFieldValues( Map.of("accountId", accountIdI1, "settlementDate", firstSettlementDateI1)); LiabilitiesClaimsMoney resultFirstClaimsMoney = liabilitiesClaimsMoneyImdg.getFirstObjectByFieldValues( @@ -154,7 +130,6 @@ class ClearingServiceTest extends AbstractClearingTest { predictableFirstClaimsMoney.setId(resultFirstClaimsMoney.getId()); LIABILITIES_CLAIMS_ASSETS_MATCHER.assertMatch(resultFirstClaimsAssets, predictableFirstClaimsAssets); LIABILITIES_CLAIMS_MONEY_MATCHER.assertMatch(resultFirstClaimsMoney, predictableFirstClaimsMoney); - //Second LiabilitiesClaimsAssets && LiabilitiesClaimsMoney LiabilitiesClaimsAssets resultSecondClaimsAssets = liabilitiesClaimsAssetsImdg.getFirstObjectByFieldValues( Map.of("accountId", accountIdI1, "settlementDate", secondSettlementDateI2)); LiabilitiesClaimsMoney resultSecondClaimsMoney = liabilitiesClaimsMoneyImdg.getFirstObjectByFieldValues( @@ -166,31 +141,19 @@ class ClearingServiceTest extends AbstractClearingTest { predictableSecondClaimsMoney.setId(resultSecondClaimsMoney.getId()); LIABILITIES_CLAIMS_ASSETS_MATCHER.assertMatch(resultSecondClaimsAssets, predictableSecondClaimsAssets); LIABILITIES_CLAIMS_MONEY_MATCHER.assertMatch(resultSecondClaimsMoney, predictableSecondClaimsMoney); - //PaymentInstruction PaymentInstruction resultPaymentInstruction = paymentInstructionCreator.searchExistPaymentInstructionsFirstI(predictableFirstClaimsAssets); PaymentInstruction predictablePaymentInstruction = paymentInstructionCreator.createPaymentInstruction(executionDeposit, predictableFirstClaimsAssets, Collections.singleton(category)); predictablePaymentInstruction.setId(resultPaymentInstruction.getId()); predictablePaymentInstruction.setDocumentNumber(resultPaymentInstruction.getDocumentNumber()); PAYMENT_INSTRUCTION_MATCHER.assertMatch(resultPaymentInstruction, predictablePaymentInstruction); - //ExecutionDeposit ExecutionDeposit resultExecutionDeposit = executionDepositImdg.getFirstObjectByFieldValues( Map.of("accountId", accountIdI1, "securityId", securityIdI1)); executionDeposit.setSessionId(resultExecutionDeposit.getSessionId()); EXECUTION_DEPOSIT_MATCHER.assertMatch(resultExecutionDeposit, executionDeposit); } - /** - * {@link ClearingService#executeClearing()}
- * Тест проверяет обновление сущностей - * {@link LauncherCommandRequest} - * {@link LiabilitiesClaimsMoney} - * {@link PaymentInstruction} - * {@link ExecutionDeposit} - * в Hazelcast при передаче из Apache Kafka.
- */ @Test void startClearingUpdate() { - //ARRANGE int times = currentInteger.getAndIncrement(); Long companyIdI1 = 21L; Long relationIdI1 = 211L; @@ -214,29 +177,17 @@ class ClearingServiceTest extends AbstractClearingTest { LiabilitiesClaimsMoney predictableSecondClaimsMoney = lbltsClmsMoneyCreator.createSecondLegLcm(predictableSecondClaimsAssets, category); predictableSecondClaimsMoney.setId(SECOND_ID); liabilitiesClaimsMoneyImdg.insert(predictableSecondClaimsMoney); - //ACT - //stage executeClearing(startClearing) addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_START_CLEARING, PARTITION, times, getJsonStringForNew(new DealRegisterNewRequest(), FIRST_ID)); - - //waiting for kafka producer send message verify(mockProducer, timeout(30_000L).times(1)) .send(producerRecord.capture()); assertEquals(Consts.BALANCE_ACCOUNT_UPDATE, producerRecord.getValue().topic()); BaseRequest baseRequestResult = (BaseRequest) producerRecord.getValue().value(); - - //stage continueClearing CommonIdRequest requestPayload = new CommonIdRequest(); requestPayload.setId(baseRequestResult.getId()); addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_CONTINUE_CLEARING, PARTITION, times, getJsonStringForNew(requestPayload, FIRST_ID)); - - //waiting for kafka producer send message (finale event) verify(mockProducer, timeout(30_000L).times(2)) .send(producerRecord.capture()); - - //ASSERT assertEquals(Task.createOrder.topic(), producerRecord.getValue().topic()); - - //First LiabilitiesClaimsAssets && LiabilitiesClaimsMoney LiabilitiesClaimsAssets resultFirstClaimsAssets = liabilitiesClaimsAssetsImdg.getFirstObjectByFieldValues( Map.of("accountId", accountIdI1, "settlementDate", firstSettlementDateI1)); LiabilitiesClaimsMoney resultFirstClaimsMoney = liabilitiesClaimsMoneyImdg.getFirstObjectByFieldValues( @@ -247,7 +198,6 @@ class ClearingServiceTest extends AbstractClearingTest { lbltsClmsMoneyCreator.updateFirstLegLcm(predictableFirstClaimsMoney, predictableFirstClaimsAssets, executionDeposit, category); LIABILITIES_CLAIMS_ASSETS_MATCHER.assertMatch(resultFirstClaimsAssets, predictableFirstClaimsAssets); LIABILITIES_CLAIMS_MONEY_MATCHER.assertMatch(resultFirstClaimsMoney, predictableFirstClaimsMoney); - //Second LiabilitiesClaimsAssets && LiabilitiesClaimsMoney LiabilitiesClaimsAssets resultSecondClaimsAssets = liabilitiesClaimsAssetsImdg.getFirstObjectByFieldValues( Map.of("accountId", accountIdI1, "settlementDate", secondSettlementDateI2)); LiabilitiesClaimsMoney resultSecondClaimsMoney = liabilitiesClaimsMoneyImdg.getFirstObjectByFieldValues( @@ -258,31 +208,19 @@ class ClearingServiceTest extends AbstractClearingTest { lbltsClmsMoneyCreator.updateSecondLegLcm(predictableSecondClaimsMoney, predictableSecondClaimsAssets, executionDeposit, category); LIABILITIES_CLAIMS_ASSETS_MATCHER.assertMatch(resultSecondClaimsAssets, predictableSecondClaimsAssets); LIABILITIES_CLAIMS_MONEY_MATCHER.assertMatch(resultSecondClaimsMoney, predictableSecondClaimsMoney); - //PaymentInstruction PaymentInstruction resultPaymentInstruction = paymentInstructionCreator.searchExistPaymentInstructionsFirstI(predictableFirstClaimsAssets); PaymentInstruction predictablePaymentInstruction = paymentInstructionCreator.createPaymentInstruction(executionDeposit, predictableFirstClaimsAssets, Collections.singleton(category)); predictablePaymentInstruction.setId(resultPaymentInstruction.getId()); predictablePaymentInstruction.setDocumentNumber(resultPaymentInstruction.getDocumentNumber()); PAYMENT_INSTRUCTION_MATCHER.assertMatch(resultPaymentInstruction, predictablePaymentInstruction); - //ExecutionDeposit ExecutionDeposit resultExecutionDeposit = executionDepositImdg.getFirstObjectByFieldValues( Map.of("accountId", accountIdI1, "securityId", securityIdI1)); executionDeposit.setSessionId(resultExecutionDeposit.getSessionId()); EXECUTION_DEPOSIT_MATCHER.assertMatch(resultExecutionDeposit, executionDeposit); } - /** - * {@link ClearingService#executeClearing()}
- * Тест проверяет обновление сущностей - * {@link LauncherCommandRequest} - * {@link LiabilitiesClaimsMoney} - * {@link PaymentInstruction} - * {@link ExecutionDeposit} - * в Hazelcast при передаче из Apache Kafka.
- */ @Test void startClearingValidatError() { - //ARRANGE Long companyId = 31L; Long relationId = 311L; Long accountId = 3111L; @@ -292,14 +230,9 @@ class ClearingServiceTest extends AbstractClearingTest { preparOptimisticCase(companyId, relationId, accountId, securityId, firstSettlementDate, secondSettlementDate, "V"); - - - //ClearingIsAllowed relation.setServiceStatus(ServiceStatus.Blocked.getKey()); relationImdg.insert(relation); checkHaveSomeError(currentInteger.getAndIncrement()); - - //AccountIsNotBlocked relation.setServiceStatus(ServiceStatus.Active.getKey()); relationImdg.insert(relation); executionDeposit = getExecutionDeposit(companyId, null, securityId, firstSettlementDate, secondSettlementDate); @@ -311,8 +244,6 @@ class ClearingServiceTest extends AbstractClearingTest { account.setStatus(AccountStatus.BLOCKED.getKey()); accountImdg.insert(account); checkHaveSomeError(currentInteger.getAndIncrement()); - - //CompanyIsNotBlocked account.setStatus(AccountStatus.ACTIVE.getKey()); accountImdg.insert(account); company.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); @@ -322,8 +253,6 @@ class ClearingServiceTest extends AbstractClearingTest { company.setWorkflowStatus(null); companyImdg.insert(company); checkHaveSomeError(currentInteger.getAndIncrement()); - - //FinancialObligationSecurity company.setWorkflowStatus(WorkflowStatus.Active.getKey()); companyImdg.insert(company); accountBalance.setAccountId(0L); @@ -378,7 +307,7 @@ class ClearingServiceTest extends AbstractClearingTest { executionDeposit.setExchangeExecutionId(5L); executionDeposit.setExchangeExecutionTime(Instant.now()); executionDeposit.setTradingDate(LocalDate.now()); - executionDeposit.setTradingClearingRegistryId(accountId); //todo CLS-275 executionDeposit.setAccountId(accountId); + executionDeposit.setTradingClearingRegistryId(accountId); executionDeposit.setMarket("market"); executionDeposit.setPrice(new BigDecimal(9)); executionDeposit.setLots(new BigDecimal(0)); @@ -407,15 +336,9 @@ class ClearingServiceTest extends AbstractClearingTest { } void checkHaveSomeError(long times) { - //ACT - //stage executeClearing(startClearing) addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_START_CLEARING, PARTITION, times, getJsonStringForNew(new DealRegisterNewRequest(), FIRST_ID)); - - //waiting for kafka producer send message verify(mockProducer, timeout(30_000L).times((int) times)) .send(producerRecord.capture()); - - //ASSERT assertEquals(Task.createOrder.topic(), producerRecord.getValue().topic()); ExecutionDeposit resultExecutionDeposit = executionDepositImdg.getFirstObjectBySQL("settlementCurrency = 'settlementCurrency'"); executionDeposit.setUpdated(resultExecutionDeposit.getUpdated()); diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/PaymentUpdateBySdf04Test.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/PaymentUpdateBySdf04Test.java index 018ebd19b..566121c79 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/PaymentUpdateBySdf04Test.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/PaymentUpdateBySdf04Test.java @@ -36,22 +36,13 @@ class PaymentUpdateBySdf04Test extends AbstractClearingTest { super.init(); this.paymentImdgs = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class); this.sdf04Imdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_SDf04, SDf04.class); - - //setting imdg for been PaymentUpdateBySdf04 this.paymentImdgsMock = getMockForFildObj(paymentImdgs, paymentUpdateBySdf04, "paymentImdgs"); this.settingResult = ArgumentCaptor.forClass(PaymentInstruction.class); } - /** - * {@link PaymentUpdateBySdf04#updatePayments(Long)} ()}
- * Тест проверяет обновление сущности - * {@link PaymentInstruction} - * в Hazelcast при передаче из Apache Kafka.
- */ @Test void updatePayments() { - //ARRANGE Long sdf04GroupId = 12L; Long paymentId = 10L; String docnm_ref = paymentId.toString(); @@ -64,29 +55,20 @@ class PaymentUpdateBySdf04Test extends AbstractClearingTest { PaymentInstruction payment = new PaymentInstruction(); payment.setId(paymentId); paymentImdgs.insert(payment); - - //ACT & ASSERT checkTransactionStatus(sdf04GroupId, currentInteger.getAndIncrement(), TransactionStatus.ok.getKey()); sDf04s.setImp_result("imp_result"); sdf04Imdg.insert(sDf04s); - //ACT & ASSERT checkTransactionStatus(sdf04GroupId, currentInteger.getAndIncrement(), TransactionStatus.fail.getKey()); } private void checkTransactionStatus(Long sdf04GroupId, int times, String key) { Sdf04Request requestPayload = new Sdf04Request(); requestPayload.setGroupId(sdf04GroupId); - - //ACT addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_SDF04_PROCESS, PARTITION, times, getJsonStringForUPDATE(requestPayload, sdf04GroupId)); - - //waiting for paymentImdgs update verify(paymentImdgsMock, timeout(30_000L).times(times)) .update(settingResult.capture()); - - //ASSERT assertEquals(key, settingResult.getValue().getTransactionStatus()); } } \ No newline at end of file diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/SdfCreatorBySTLDPaymentTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/SdfCreatorBySTLDPaymentTest.java index b0f4e27ef..4a2e0a660 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/SdfCreatorBySTLDPaymentTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/SdfCreatorBySTLDPaymentTest.java @@ -22,8 +22,6 @@ class SdfCreatorBySTLDPaymentTest { void setUp() { ImdgProvider mock = Mockito.mock(ImdgProvider.class); sdfCreatorBySTLDPayment = new SdfCreatorBySTLDPayment(mock, null, null); - //create a Mockito spy for the sdfCreatorBySTLDPayment object - //when getClearingCategory is called, return the value from the categories map by paymentInstruction.getSenderId() sdfCreatorBySTLDPayment = Mockito.spy(sdfCreatorBySTLDPayment); Mockito.doAnswer(invocation -> { Object[] args = invocation.getArguments(); @@ -78,7 +76,6 @@ class SdfCreatorBySTLDPaymentTest { assertEquals(4, group.size()); SenderChecker checker = checker(group); - //order i 1 v b checker.check(i1, 0, 1); checker.check(i2, 0, 1); checker.check(i3, 0, 1); @@ -97,17 +94,13 @@ class SdfCreatorBySTLDPaymentTest { private SenderChecker checker(List>>> group) { return (senderId, order, count) -> { - //получаем группы относящиеся к order категории Map.Entry>> entry = group.get(order); Collection> allSenderForThisCategory = entry.getValue(); - //находим нашего sender List senderFound = allSenderForThisCategory.stream().filter(paymentInstructions -> { PaymentInstruction specificSender = paymentInstructions.iterator().next(); return specificSender.getSenderId().equals(senderId); }).findFirst().orElseThrow(() -> new RuntimeException("Sender " + senderId + " not found")); - //проверяем количество PaymentInstruction assertEquals(count, senderFound.size()); - //проверяем что в остальных группах нет нашего sender for (int i = 0; i < group.size(); i++) { if (i == order) { continue; diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/SpecifUtilTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/SpecifUtilTest.java index fa2e7f367..3fa7a386b 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/SpecifUtilTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/SpecifUtilTest.java @@ -16,7 +16,6 @@ class SpecifUtilTest { @Test public void testSplit() { { - //40 symbols String[] splitted = SpecifUtil.split5SegmentsBy35Symbols("0123456789012345678901234567890123456789"); Assertions.assertEquals(2, splitted.length); Assertions.assertEquals("01234567890123456789012345678901234", splitted[0]); @@ -24,27 +23,23 @@ class SpecifUtilTest { } { - //40 symbols String[] splitted = SpecifUtil.split5SegmentsBy35Symbols("01234567890123456789012345678901234"); Assertions.assertEquals(1, splitted.length); Assertions.assertEquals("01234567890123456789012345678901234", splitted[0]); } { - //10 symbols String[] splitted = SpecifUtil.split5SegmentsBy35Symbols("0123456789"); Assertions.assertEquals(1, splitted.length); Assertions.assertEquals("0123456789", splitted[0]); } { - //0 symbols String[] splitted = SpecifUtil.split5SegmentsBy35Symbols(""); Assertions.assertEquals(0, splitted.length); } { - //80 symbols String[] splitted = SpecifUtil.split5SegmentsBy35Symbols("0123456789012345678901234567890123456789" + "0123456789012345678901234567890123456789"); Assertions.assertEquals(3, splitted.length); @@ -54,7 +49,6 @@ class SpecifUtilTest { } { - //maximum symbols String[] splitted = SpecifUtil.split5SegmentsBy35Symbols("01234567890123456789012345678912345" + "01234567890123456789012345678912345" + "01234567890123456789012345678912345" + @@ -72,7 +66,6 @@ class SpecifUtilTest { } } } -// ""; } @Test @@ -80,8 +73,6 @@ class SpecifUtilTest { { AtomicReference part0 = new AtomicReference<>(); AtomicReference part1 = new AtomicReference<>(); - - //40 symbols SpecifUtil.fillSegmentsBy35Symbols("0123456789012345678901234567890123456789", part0::set, part1::set); Assertions.assertNotNull(part0.get()); Assertions.assertNotNull(part1.get()); @@ -92,8 +83,6 @@ class SpecifUtilTest { { AtomicReference part0 = new AtomicReference<>(); AtomicReference part1 = new AtomicReference<>(); - - //35 symbols SpecifUtil.fillSegmentsBy35Symbols("01234567890123456789012345678901234", part0::set, part1::set); Assertions.assertNotNull(part0.get()); Assertions.assertNull(part1.get()); @@ -104,8 +93,6 @@ class SpecifUtilTest { { AtomicReference part0 = new AtomicReference<>(); AtomicReference part1 = new AtomicReference<>(); - - //10 symbols SpecifUtil.fillSegmentsBy35Symbols("0123456789", part0::set, part1::set); Assertions.assertNotNull(part0.get()); Assertions.assertNull(part1.get()); @@ -115,8 +102,6 @@ class SpecifUtilTest { { AtomicReference part0 = new AtomicReference<>(); AtomicReference part1 = new AtomicReference<>(); - - //0 symbols SpecifUtil.fillSegmentsBy35Symbols("", part0::set, part1::set); Assertions.assertNull(part0.get()); Assertions.assertNull(part1.get()); @@ -125,8 +110,6 @@ class SpecifUtilTest { { AtomicReference part0 = new AtomicReference<>(); AtomicReference part1 = new AtomicReference<>(); - - //80 symbols SpecifUtil.fillSegmentsBy35Symbols("0123456789012345678901234567890123456789" + "0123456789012345678901234567890123456789", part0::set, part1::set); Assertions.assertNotNull(part0.get()); @@ -140,8 +123,6 @@ class SpecifUtilTest { AtomicReference part0 = new AtomicReference<>(); AtomicReference part1 = new AtomicReference<>(); AtomicReference part2 = new AtomicReference<>(); - - //80 symbols SpecifUtil.fillSegmentsBy35Symbols("0123456789012345678901234567890123456789" + "0123456789012345678901234567890123456789", part0::set, part1::set, part2::set); Assertions.assertNotNull(part0.get()); @@ -159,8 +140,6 @@ class SpecifUtilTest { AtomicReference part2 = new AtomicReference<>(); AtomicReference part3 = new AtomicReference<>(); AtomicReference part4 = new AtomicReference<>(); - - //maximum symbols SpecifUtil.fillSegmentsBy35Symbols("01234567890123456789012345678912345" + "01234567890123456789012345678912345" + "01234567890123456789012345678912345" + @@ -187,8 +166,6 @@ class SpecifUtilTest { AtomicReference part3 = new AtomicReference<>(); AtomicReference part4 = new AtomicReference<>(); AtomicReference part5 = new AtomicReference<>(); - - //> 35*5 symbols but 6 setters SpecifUtil.fillSegmentsBy35Symbols("01234567890123456789012345678912345" + "01234567890123456789012345678912345" + "01234567890123456789012345678912345" + diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/StatementServiceServiceTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/StatementServiceServiceTest.java index bd7655f7c..8fa2a86cf 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/StatementServiceServiceTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/StatementServiceServiceTest.java @@ -1,111 +1,4 @@ package ru.spcex.clearing.service; -//todo раскоментить тест class StatementServiceServiceTest { -// extends AbstractServiceTest { -// private static final String TOPIC = Consts.STATEMENT_PROCESS; -// private static final int PARTITION = 1; -// private static final Long groupId = 111L; -// private final static AtomicLong cuurentOffset = new AtomicLong(1L); -// private final Long ID = 11L; -// @Autowired -// StatementService statementService; -// @Captor -// ArgumentCaptor producerRecord; -// private MockConsumer mockConsumer; -// private SDf01 sDf01; -// private Company company; -// @SpyBean -// private MockProducer producer; -// -// @PostConstruct -// void init() { -// super.init(); -// mockConsumer = (MockConsumer) statementService.getConsumer(); -// sDf01 = getTestSdf01(ID, groupId); -// company = getTestCompany(); -// } -// -// /** -// * {@link StatementService}
-// * Тест проверяет генерацию сущностей {@link RequestInfo}
-// * Входные параметры:
-// * {@link StatementRequest}: new StatementRequest()
-// * {@link StatementRequest#table} - SDF_01
-// */ -// @Test -// void processEXPORT_PROCESS() { -// sdf01Imdg.delete(sDf01); -// companyImdg.delete(company); -// -// companyImdg.delete(company); -// StatementRequest statementRequest = new StatementRequest(); -// statementRequest.setGroupId(groupId); -// statementRequest.setTable(SDF_01); -// BaseRequest baseNewRequest = new BaseRequest<>(); -// baseNewRequest.setRequestPayload(statementRequest); -// baseNewRequest.setId(currentId.getAndIncrement()); -// baseNewRequest.setActionType(ActionType.NEW); -// String jsonBaseNewRequest; -// ObjectMapper objectMapper = new ObjectMapper(); -// try { -// jsonBaseNewRequest = objectMapper.writeValueAsString(baseNewRequest); -// } catch (JsonProcessingException e) { -// throw new RuntimeException(e); -// } -// -// addRecordToKafka(mockConsumer, TOPIC, PARTITION, cuurentOffset.getAndIncrement(), jsonBaseNewRequest); -// -// //waiting for kafka producer send message (finale event) -// verify(producer, timeout(30_000L).times(1)) -// .send(producerRecord.capture()); -// -// BaseRequest baseRequest = (BaseRequest) producerRecord.getValue().value(); -// RequestInfo resultRequestInfo = requestInfoImdg.getSingleObjectByID(baseRequest.getId()); -// -// assertEquals(Consts.EXPORT_PROCESS, producerRecord.getValue().topic()); -// assertNotNull(baseRequest); -// assertNotNull(resultRequestInfo); -// } -// -// /** -// * {@link StatementService}
-// * Тест проверяет генерацию сущностей {@link RequestInfo}
-// * Входные параметры:
-// * {@link StatementRequest}: new StatementRequest()
-// * {@link StatementRequest#table} - SDF_01
-// */ -// @Test -// void processACCOUNT_NEW() { -// sdf01Imdg.insert(sDf01); -// companyImdg.insert(company); -// -// StatementRequest statementRequest = new StatementRequest(); -// statementRequest.setGroupId(groupId); -// statementRequest.setTable(SDF_01); -// BaseRequest baseNewRequest = new BaseRequest<>(); -// baseNewRequest.setRequestPayload(statementRequest); -// baseNewRequest.setId(currentId.getAndIncrement()); -// baseNewRequest.setActionType(ActionType.NEW); -// String jsonBaseNewRequest; -// ObjectMapper objectMapper = new ObjectMapper(); -// try { -// jsonBaseNewRequest = objectMapper.writeValueAsString(baseNewRequest); -// } catch (JsonProcessingException e) { -// throw new RuntimeException(e); -// } -// -// addRecordToKafka(mockConsumer, TOPIC, PARTITION, cuurentOffset.getAndIncrement(), jsonBaseNewRequest); -// -// //waiting for kafka producer send message (finale event) -// verify(producer, timeout(30_000L).times(1)) -// .send(producerRecord.capture()); -// -// BaseRequest baseRequest = (BaseRequest) producerRecord.getValue().value(); -// RequestInfo resultRequestInfo = requestInfoImdg.getSingleObjectByID(baseRequest.getId()); -// -// assertEquals(Consts.ACCOUNT_NEW_SDF01, producerRecord.getValue().topic()); -// assertNotNull(baseRequest); -// assertNotNull(resultRequestInfo); -// } } \ No newline at end of file diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/VerificationResultComponentTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/VerificationResultComponentTest.java index c1906f2da..55f9012e3 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/VerificationResultComponentTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/VerificationResultComponentTest.java @@ -52,20 +52,11 @@ class VerificationResultComponentTest extends AbstractClearingTest { clearAllInImdg(accountBalanceImdg); clearAllInImdg(accountImdg); clearAllInImdg(companyImdg); - - //setting imdg for been VerificationResultComponent this.verificationResultImdgMock = getMockForFildObj(verificationResultImdg, verificationResultComponent, "verificationResultImdg"); } - /** - * {@link VerificationResultComponent#executeRevision()} ()}
- * Тест проверяет создание сущностей - * {@link VerificationResult} - * в Hazelcast при передаче из Apache Kafka.
- */ @Test void executeRevision() { - //ARRANGE Long companyId = 10L; String acc = "15444876546"; String remainder = "15"; @@ -91,27 +82,18 @@ class VerificationResultComponentTest extends AbstractClearingTest { company.setId(companyId); company.setClearingCode("codeTest"); companyImdg.insert(company); - - //ACT & ASSERT checkVerificationResults(ResultStatuses.success.getKey()); - - // сравнить remainder==balance sDf01.setRemainder(remainder + "1"); sdf01Imdg.insert(sDf01); - //ACT & ASSERT checkVerificationResults(ResultStatuses.notSuccess.getKey()); - - // 2.1 Номера торговых/клиринговых счетов, соответствующие загруженным в КС sDf01.setRemainder(remainder); sDf01.setDeal(acc + "1"); sdf01Imdg.insert(sDf01); - //ACT & ASSERT checkVerificationResults(ResultStatuses.notSuccess.getKey()); } private void checkVerificationResults(String resultStatuses) { int times = currentInteger.getAndIncrement(); - //ACT addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC_VERIFICATION, PARTITION, times, getJsonStringForUPDATE(new LauncherCommandRequest(), 1L)); @@ -121,8 +103,6 @@ class VerificationResultComponentTest extends AbstractClearingTest { Collection results = verificationResultImdg.getAllValues(); Long generationId = null; - - //ASSERT for (VerificationResult verificationResult : results) { if (generationId == null) generationId = verificationResult.getGenerationId(); assertEquals(resultStatuses, verificationResult.getGenerationStatus()); diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/builder/sql/RegistryCodeSqlBuilderTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/builder/sql/RegistryCodeSqlBuilderTest.java index c1ffcec83..ae5abdef3 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/builder/sql/RegistryCodeSqlBuilderTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/builder/sql/RegistryCodeSqlBuilderTest.java @@ -1,47 +1,4 @@ package ru.spcex.clearing.service.builder.sql; public class RegistryCodeSqlBuilderTest { -//todo раскоментить тесты - -// @Test -// public void testBuildByOneObject() { -// RegistryTradingParams registryTradingParams = new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.R); -// RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams); -// String sql = registryCodeSqlBuilder.build(); -// Assertions.assertEquals("(registryDesignation = 'C' and registryInstrumentType = 'M' and registryCapacity = 'B' and registryUnit = 'R')", sql); -// -// registryTradingParams = new RegistryTradingParams(null, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.R); -// registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams); -// sql = registryCodeSqlBuilder.build(); -// Assertions.assertEquals("(registryInstrumentType = 'M' and registryCapacity = 'B' and registryUnit = 'R')", sql); -// -// registryTradingParams = new RegistryTradingParams(RegistryDesignation.C, null, null, RegistryUnit.R); -// registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams); -// sql = registryCodeSqlBuilder.build(); -// Assertions.assertEquals("(registryDesignation = 'C' and registryUnit = 'R')", sql); -// } -// -// @Test -// public void testBuildByFewObjects() { -// RegistryTradingParams registryTradingParams_first = new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.R); -// RegistryTradingParams registryTradingParams_second = new RegistryTradingParams(RegistryDesignation.O, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.F); -// RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams_first, registryTradingParams_second); -// String sql = registryCodeSqlBuilder.build(); -// Assertions.assertEquals("(registryDesignation = 'C' and registryInstrumentType = 'M' and registryCapacity = 'B' and registryUnit = 'R')" + -// " or (registryDesignation = 'O' and registryInstrumentType = 'S' and registryCapacity = 'A' and registryUnit = 'F')", sql); -// -// registryTradingParams_first = new RegistryTradingParams(null, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.R); -// registryTradingParams_second = new RegistryTradingParams(null, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.F); -// registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams_first, registryTradingParams_second); -// sql = registryCodeSqlBuilder.build(); -// Assertions.assertEquals("(registryInstrumentType = 'M' and registryCapacity = 'B' and registryUnit = 'R') or " + -// "(registryInstrumentType = 'S' and registryCapacity = 'A' and registryUnit = 'F')", sql); -// -// registryTradingParams_first = new RegistryTradingParams(RegistryDesignation.C, null, null, RegistryUnit.R); -// registryTradingParams_second = new RegistryTradingParams(null, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.F); -// registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams_first, registryTradingParams_second); -// sql = registryCodeSqlBuilder.build(); -// Assertions.assertEquals("(registryDesignation = 'C' and registryUnit = 'R') or " + -// "(registryInstrumentType = 'S' and registryCapacity = 'A' and registryUnit = 'F')", sql); -// } } diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/execution/ExecutionDepositComponentTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/execution/ExecutionDepositComponentTest.java index 55007f097..32e51f7b5 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/execution/ExecutionDepositComponentTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/execution/ExecutionDepositComponentTest.java @@ -54,12 +54,6 @@ class ExecutionDepositComponentTest extends AbstractClearingTest { } - /** - * {@link ExecutionDepositComponent#processNewTS()} ()}
- * Тест проверяет создание сущностей - * {@link ExecutionDeposit} - * в Hazelcast при передаче из Apache Kafka.
- */ @Test void processNewTS() { String secCode = "SecCode"; @@ -86,9 +80,5 @@ class ExecutionDepositComponentTest extends AbstractClearingTest { addRecordToKafka((MockConsumer) eventsReceiver.getConsumer(), TOPIC, PARTITION, times, getJsonStringForUPDATE(new LauncherCommandRequest(), 1L)); - - //waiting for kafka producer send message (finale event) -// verify(mockProducer, timeout(30_000L).times(times)) -// .send(producerRecord.capture()); } } \ No newline at end of file diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/executors/Sdf01ExecutorTest.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/executors/Sdf01ExecutorTest.java index 0b358ae18..25fe82136 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/executors/Sdf01ExecutorTest.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/service/executors/Sdf01ExecutorTest.java @@ -1,238 +1,4 @@ package ru.spcex.clearing.service.executors; -//todo раскоментить тест -// class Sdf01ExecutorTest { -// extends AbstractServiceTest { -// public final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy"); -// public final static String acc = "123456789"; -// private static final MatcherFactory.Matcher SDF_02_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id"); -// private final Long ID = 1L; -// @Autowired -// Sdf01Executor sdf01Executor; -// private StatementRequest statementRequest; -// @SpyBean -// private MockProducer producer; -// -// @PostConstruct -// void init() { -// super.init(); -// statementRequest = new StatementRequest(); -// } -// -// /** -// * {@link Sdf01Executor#execute(Collection collection, StatementRequest statementRequest)}
-// * Тест проверяет генерацию сущностей {@link Result}, {@link Statement}, {@link SDf02}
-// * Входные параметры:
-// * accountId - {@link StatementRequest}: new StatementRequest()
-// * addresseeId - {@link Collection}
-// * addresseeId - {@link SDf01}
-// * {@link SDf01#market} - "U"
-// * {@link SDf01#deal} - "111111111"
-// * {@link SDf01#account} - "123456789"
-// * {@link SDf01#curr_code} - "RUR"
-// * {@link SDf01#dat} - текущая дата
-// * {@link SDf01#acc_type} - "A"
-// * {@link SDf01#remainder} - "1000"
-// */ -// @Test -// void execute() { -// //check create statement, SDf02 and AccountBalance -// SDf01 sdf01 = getTestSdf01(ID, 1L); -// Company company = getTestCompany(); -// companyMap.put(addresseeIdNew, company); -// -// Account account = getTestAccount(ID, acc); -// accountMap.put(accountIdNew, account); -// -// Result predictableResult = new Result(); -// predictableResult.setGenerationId(ID); -// Statement predictableStatement = getTestStatement(currentId.getAndIncrement(), company, account, sdf01); -// predictableStatement.setOperationStatus(OperationStatus.Executed.getKey()); -// SDf02 predictableSdf02 = getTestSdf02(currentId.getAndIncrement(), sdf01, ID); -// predictableStatement.setOutSDfId(predictableSdf02.getId()); -// AccountResult predictableNewResult = getTestAccountResult(currentId.getAndIncrement(), account, company); -// -// Result result = sdf01Executor.execute(Collections.singletonList(sdf01), statementRequest); -// Statement resultStatement = statementImdg.getSingleObjectByFieldValues(Map.of("account", acc)); -// SDf02 resultSdf02 = sdf02Imdg.getSingleObjectByFieldValues(Map.of("account", acc)); -// AccountBalance resultAccountBalance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", acc)); -// -// RESULT_MATCHER.assertMatch(result, predictableResult); -// STATEMENT_MATCHER.assertMatch(resultStatement, predictableStatement); -// SDF_02_MATCHER.assertMatch(resultSdf02, predictableSdf02); -// ACCOUNT_BALANCE_MATCHER.assertMatch(resultAccountBalance, predictableNewResult.getAccount()); -// } -// -// /** -// * {@link Sdf01Executor#execute(Collection collection, StatementRequest statementRequest)}
-// * Тест проверяет валидацию
-// * Входные параметры:
-// * accountId - {@link StatementRequest}: new StatementRequest()
-// * addresseeId - {@link Collection}
-// * addresseeId - {@link SDf01}
-// * {@link SDf01#market} - "U"
-// * {@link SDf01#deal} - "111111111"
-// * {@link SDf01#account} - "123456789"
-// * {@link SDf01#curr_code} - "RUR"
-// * {@link SDf01#dat} - текущая дата
-// * {@link SDf01#acc_type} - "A"
-// * {@link SDf01#remainder} - "1000"
-// */ -// @Test -// void validatedExecute() { -// //CompanyNotFound -// SDf01 sdf01 = getTestSdf01(ID, 1L); -// companyMap.delete(addresseeIdNew); -// checkError(new EnumMessage(BalanceError.CompanyNotFound), sdf01); -// -// sdf01.setDeal(null); -// checkError(new EnumMessage(BalanceError.CompanyNotFound), sdf01); -// -// //AccountNotPresent accountType=null -// sdf01.setDeal(deal); -// Company company = getTestCompany(); -// companyMap.put(addresseeIdNew, company); -// Account account = new Account(); -// account.setAccount(acc); -// account.setStatus(Status.Active.getKey()); -// accountMap.put(accountIdNew, account); -// checkErrorAccountNotPresent(company, sdf01); -// -// //AccountNotPresent account=null -// account.setAccount(null); -// account.setAccountType(AccountType.Clrn.getKey()); -// account.setStatus(Status.Active.getKey()); -// accountMap.put(accountIdNew, account); -// checkErrorAccountNotPresent(company, sdf01); -// -// //AccountNotPresent sdf01.account==null -// sdf01.setAccount(null); -// checkErrorAccountNotPresent(company, sdf01); -// -// //CurrencyNotFound sdf01.curr_code =! "RUR" -// accountMap.put(accountIdNew, getTestAccount(ID, acc)); -// sdf01.setAccount(acc); -// sdf01.setCurr_code("RUB"); -// checkError(new EnumMessage(BalanceError.CurrencyNotFound), sdf01); -// -// //CurrencyNotFound sdf01.curr_code =! "RUR" -// sdf01.setCurr_code(null); -// checkError(new EnumMessage(BalanceError.CurrencyNotFound), sdf01); -// -// //CurrentDateOnly -// sdf01.setCurr_code("RUR"); -// sdf01.setDat("19.01.23"); -// checkError(new EnumMessage(BalanceError.CurrentDateOnly), sdf01); -// -// //CurrentDateOnly -// sdf01.setDat("19.01.2023"); -// checkError(new EnumMessage(BalanceError.CurrentDateOnly), sdf01); -// -// //CurrentDateOnly -// sdf01.setDat(null); -// checkError(new EnumMessage(BalanceError.CurrentDateOnly), sdf01); -// -// //WrongAccount -// sdf01.setDat(LocalDate.now().format(datFormatter)); -// sdf01.setAcc_type(null); -// checkError(new EnumMessage(BalanceError.WrongAccount), sdf01); -// -// //WrongMarket -// sdf01.setAcc_type("A"); -// sdf01.setMarket(null); -// checkError(new EnumMessage(BalanceError.WrongMarket), sdf01); -// -// sdf01.setMarket("U"); -// } -// -// private void checkError(EnumMessage enumMessage, SDf01 sdf01) { -//// SDf01 sdf01 = getTestSdf01(); -// SDf02 predictableSdf02 = getTestErrorSdf02(sdf01, enumMessage, ID); -// Result result = sdf01Executor.execute(Collections.singletonList(sdf01), statementRequest); -// Collection resultsSdf02 = sdf02Imdg.getCollectionObjectsByFieldValues(Map.of("account", acc)); -// SDf02 resultSdf02 = resultsSdf02.stream().max((entry1, entry2) -> entry1.getId() > entry2.getId() ? 1 : -1).get(); -// SDF_02_MATCHER.assertMatch(resultSdf02, predictableSdf02); -// } -// -// private void checkErrorAccountNotPresent(Company company, SDf01 sdf01) { -// Result predictableResult = new Result(); -// predictableResult.getAccountRequests().add(createAccountRequestPart(sdf01.getId(), sdf01.getAccount(), company.getId())); -// Result result = sdf01Executor.execute(Collections.singletonList(sdf01), statementRequest); -// RESULT_MATCHER.assertMatch(result, predictableResult); -// -// } -// -// private SDf02 getTestSdf02(Long id, SDf01 sdf01, Long generationIdForGroup) { -// SDf02 sDf02 = new SDf02(); -// sDf02.setId(id); -// sDf02.setCurr_code(sdf01.getCurr_code()); -// sDf02.setAccount(sdf01.getAccount()); -// sDf02.setRemainder(sdf01.getRemainder()); -// sDf02.setDeal(sdf01.getDeal()); -// sDf02.setAcc_code(sdf01.getAcc_code()); -// sDf02.setDat(sdf01.getDat()); -// sDf02.setMarket(sdf01.getMarket()); -// sDf02.setAcc_name(sdf01.getAcc_name()); -// sDf02.setAcc_type(sdf01.getAcc_type()); -// sDf02.setSumengage(sdf01.getSumengage()); -// sDf02.setSumunblock(sdf01.getSumunblock()); -// sDf02.setFile_type(sdf01.getFile_type()); -// sDf02.setInSDfId(sdf01.getId()); -// sDf02.setGenerationId(generationIdForGroup); -// sDf02.setGenerationTime(Instant.now()); -// sDf02.setResult("OK!"); -// return sDf02; -// } -// -// private Statement getTestStatement(Long id, Company company, Account account, SDf01 sdf01) { -// 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.full.getKey()); -// statement.setAccountId(account.getId()); -// statement.setAccount(sdf01.getAccount()); -// statement.setInOutDirection(InOutDirection.in.getKey()); -// statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); -// statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); -// statement.setOperationStatus(OperationStatus.Pending.getKey()); -// statement.setInSDfId(sdf01.getId()); -// statement.setInOutSDfType(InOutSDfType.type1.getKey()); -// return statement; -// } -// -// private SDf02 getTestErrorSdf02(SDf01 sdf01, EnumMessage error, Long generationIdForGroup) { -// SDf02 sDf02 = new SDf02(); -// sDf02.setId(ID); -// sDf02.setCurr_code(sdf01.getCurr_code()); -// sDf02.setAccount(sdf01.getAccount()); -// sDf02.setRemainder(sdf01.getRemainder()); -// sDf02.setDeal(sdf01.getDeal()); -// sDf02.setAcc_code(sdf01.getAcc_code()); -// sDf02.setDat(sdf01.getDat()); -// sDf02.setMarket(sdf01.getMarket()); -// sDf02.setAcc_name(sdf01.getAcc_name()); -// sDf02.setAcc_type(sdf01.getAcc_type()); -// sDf02.setSumengage(sdf01.getSumengage()); -// sDf02.setSumunblock(sdf01.getSumunblock()); -// sDf02.setFile_type(sdf01.getFile_type()); -// sDf02.setInSDfId(sdf01.getId()); -// String errorId = error.getSubject().getId().toString(); -// sDf02.setResult(errorId.substring(errorId.length() - 3)); -// sDf02.setGenerationId(generationIdForGroup); -// sDf02.setGenerationTime(Instant.now()); -// return sDf02; -// } -// -// private AccountSdfRequestPart createAccountRequestPart(Long sdf01Id, String account, Long companyId) { -// AccountSdfRequestPart req = new AccountSdfRequestPart(); -// req.setAccount(account); -// req.setCompanyId(companyId); -// req.setAccountType(AccountType.Clrn.getKey()); -// req.setSdfId(sdf01Id); -// return req; -// } } \ No newline at end of file diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/utils/MatcherFactory.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/utils/MatcherFactory.java index 1141f3840..b363ecf15 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/utils/MatcherFactory.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/utils/MatcherFactory.java @@ -4,11 +4,6 @@ import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; -/** - * Factory for creating test matchers. - *

- * Comparing actual and expected objects via AssertJ - */ public class MatcherFactory { public static Matcher usingIgnoringFieldsComparator(String... fieldsToIgnore) { diff --git a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/utils/TestUtils.java b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/utils/TestUtils.java index 3d3a969f8..0ce70331c 100644 --- a/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/utils/TestUtils.java +++ b/clearing-parent/clearing-service/src/test/java/ru/spcex/clearing/utils/TestUtils.java @@ -50,8 +50,6 @@ public class TestUtils { requestInfoUpdate.setId(id); requestInfoUpdate.setStatus(Success); predictableBaseRequest.setRequestPayload(requestInfoUpdate); - - //waiting for kafka producer send message (finale event) verify(mockProducer, timeout(30_000L).times(1)) .send(producerRecord.capture()); diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/scheduler/ISchedulerChecker.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/scheduler/ISchedulerChecker.java index 5e5dc4d2a..4728a3d97 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/scheduler/ISchedulerChecker.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/scheduler/ISchedulerChecker.java @@ -20,9 +20,6 @@ public class ISchedulerChecker { && (planner.getTask() != null && planner.getTask().equalsIgnoreCase(plannerAllToday.getTask())); } - /** - * @param isWeekend тек.день=СБ-ВС
- */ public static boolean isValidWorkday(ClearingCalendar clearingCalendar, boolean isWeekend) { if (clearingCalendar.getDayStatus() != null && clearingCalendar.getDayStatus().equalsIgnoreCase(DayStatus.Workday.getKey())) { if (isWeekend) { diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/package-info.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/package-info.java index 4077b07c4..f0e827655 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/package-info.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/package-info.java @@ -1,4 +1 @@ -/** - * Утилиты с зависимостями от множества модулей clearing-* - */ package ru.spcex.clearing.util; \ No newline at end of file diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java index 3da17146d..7724b944f 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/IMDGMessageResolver.java @@ -13,9 +13,6 @@ import java.util.Arrays; import java.util.MissingFormatArgumentException; import java.util.function.Supplier; -/** - * Использует ErrorCodeDictionary для расшифровки текста кодов ошибок. - */ public class IMDGMessageResolver implements IMessageResolver { protected final Logger log = LoggerFactory.getLogger(getClass()); protected final Imdg errorCodeDictionaryIMDG; @@ -38,7 +35,7 @@ public class IMDGMessageResolver implements IMessageResolver { String textTemplate = errId + " " + errorDictionary.getName(); try { return String.format(textTemplate, errMsg.getArgs()); - } catch (MissingFormatArgumentException errFormatting) { // MissingFormatArgumentException + } catch (MissingFormatArgumentException errFormatting) { int argExpected = 0; int i = 0, li = -1; while ((i = textTemplate.indexOf("%", i)) >= 0 && i != li) { @@ -52,7 +49,7 @@ public class IMDGMessageResolver implements IMessageResolver { for (i = errMsg.getArgs().length; i < arg.length; i++) arg[i] = " "; return String.format(textTemplate, arg); } - } catch (Exception errFormatting) { // MissingFormatArgumentException + } catch (Exception errFormatting) { log.warn("Error in message resolver for error {} id {}. Format error: {}", errMsg.getSubject(), errMsg.getSubject().getId(), errFormatting); return simplFormatter.get(); } diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java index c14458175..ee4924cec 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java @@ -14,17 +14,6 @@ import ru.spcex.platform.utils.log.ExceptionUtils; import java.util.Objects; -/** - * Упрощает обработку ошибок во время обработки реквестов. - * Передаёт регламентированные ошибки из ClearingBaseException. - * - * Пример: - * callback(CompanyNewRequest.class) - * .setFunction( request -> requestHelper.requestFunction(this::createCompany, request)) - * .forDestination(Consts.DESTINATION_COMPANY_NEW, callbacks::put); - * - * return requestHelper.makeErrorResponse(CompanyError.GeneralError, ...) - */ public class RequestHelper { protected Logger log = LoggerFactory.getLogger(getClass()); protected final IMessageResolver messageResolver; @@ -46,14 +35,6 @@ public class RequestHelper { Objects.requireNonNull(generalError, "Required generalError enum"); } - /** - * Оборачивает функцию command в try-catch - * @param command обработчик реквеста - * @param userRequest реквест - * @param request payload type - * @param тип BaseRequest - * @return RequestInfoUpdate или null - */ public > RequestInfoUpdate requestFunction(RequestCommand command, T userRequest) { try { log.debug("{} request received, BaseRequest.id = {}", userRequest.getClass().getSimpleName(), userRequest.getId()); diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/exchangers/BiDirectionQueueExchanger.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/exchangers/BiDirectionQueueExchanger.java index eaec45cc3..d2f41d189 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/exchangers/BiDirectionQueueExchanger.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/exchangers/BiDirectionQueueExchanger.java @@ -7,8 +7,6 @@ import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.clients.producer.RecordMetadata; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; @@ -19,18 +17,6 @@ import java.io.Closeable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; -/** - * Синхронный обмен сообщениями с ассинхронным сервисом. - * Метод exchange() отправляет сообщение в очередь и дожидается ответа из другой очереди. - * Использовать с осторожностью, т.к. нет возобновления ожидания в случае нештатного выключения модуля при ожидании ответа из kafka. - *

- *

- * Ожидает из очереди (CommonIdRequest) - * - * Похожая функция ожидания: KafkaSender.sendToQueueWaitForAnswer - * - * @param отправляется в очередь - */ public class BiDirectionQueueExchanger> extends QueueConsumer implements Closeable { protected final Logger log = LoggerFactory.getLogger(getClass()); protected String outQueue; @@ -42,18 +28,8 @@ public class BiDirectionQueueExchanger> extends Queu protected Object syncObject; protected Long lastSentRequestId; protected volatile Long lastResponseId; - protected boolean ignoreOtherResponse = true; // Пропускать другие ID, пока не получит lastResponseId==lastSentRequestId + protected boolean ignoreOtherResponse = true; - /** - * Синхронно-ассинхронный обмен сообщениями - * - * @param kafkaQueue уникальный kafka Consumer (Spring prototype). Нельзя переиспользовать существующие. - * @param kafkaProducer - * @param outQueue отправляет в очередь - * @param inQueue слушает очередь/топик, ожидает ответов. Пример: Consts.CONTINUE_CLEARING - * @param ignoreOtherResponse true для inQueue=Consts.REQUEST_INFO_UPDATE - * @param timeout - максимальное ожидание ответа, в миллисекундах, 0 - неограничено - */ public BiDirectionQueueExchanger(Consumer kafkaQueue, Producer kafkaProducer, String outQueue, String inQueue, @@ -84,21 +60,12 @@ public class BiDirectionQueueExchanger> extends Queu initReplyListener(); } - /** - * Отправить сообщение message в outQueue и дождаться ответа из очереди inQueue - * - * @param message - * @return request/reply id - * @throws InterruptedException или когда поток прерывают, или когда BiDirectionQueueExchanger.close() - */ public Long exchange(TOut message) throws InterruptedException { if (syncObject == null) throw new IllegalStateException("Listener queue not initialized"); if (message.getId() == null) { throw new IllegalArgumentException("Required message " + message.getClass().getSimpleName() + ".id is null"); } - - //send request to kafka, wait for a reply try { synchronized (syncObject) { Long sentRequestId = sendMessage(message); @@ -114,13 +81,9 @@ public class BiDirectionQueueExchanger> extends Queu } else { syncObject.wait(); } - //если на этом месте произошла ошибка - непонятно как обрабатывать - //т.к. request на самом деле могла быть проблема с сетью/недоступностью кафки etc. } catch (InterruptedException e) { log.error(ExceptionUtils.getStackTrace(e)); throw e; -// Thread.currentThread().interrupt(); -// throw new RuntimeException(e); } waitTime = timeout - (System.currentTimeMillis() - waitStart); if (isTerminated && lastResponseId == null) { diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java index e9bf4e4e9..e8cddf58f 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java @@ -24,12 +24,6 @@ public class ValidationHelper { this.messageResolver = messageResolver; } - /** - * Валидация запроса до первой ошибки - * - * @param Класс проверяемого запроса - * @return null если ошибок нет - */ public RequestInfoUpdate validateTillFirstError(BaseRequest userRequest, Function validatorBuilder) { if (validatorBuilder != null) { diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DateNotBeforeRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DateNotBeforeRule.java index a22834156..b79b57873 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DateNotBeforeRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DateNotBeforeRule.java @@ -9,10 +9,6 @@ import java.time.LocalDate; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля с LocalDate. Условие проверки: поверяемая дата >= текущая дата - * @param Класс проверяемого объекта - */ public record DateNotBeforeRule( String fieldName, Function getter, @@ -21,14 +17,6 @@ public record DateNotBeforeRule( boolean required ) implements IValidationRule> { - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемой даты - * @param required Флаг обязательности поля - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorTaskForPastDate Ошибка, которая будет возвращена, если проверяемая дата меньше текущей - * @param Класс проверяемого объекта - */ public static DateNotBeforeRule instance(String fieldName, Function getter, IErrorEnumId errorEmptyRequiredValue, @@ -37,13 +25,6 @@ public record DateNotBeforeRule( return new DateNotBeforeRule<>(fieldName, getter, errorEmptyRequiredValue, errorTaskForPastDate, required); } - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемой даты - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorTaskForPastDate Ошибка, которая будет возвращена, если проверяемая дата меньше текущей - * @param Класс проверяемого объекта - */ public static DateNotBeforeRule instance(String fieldName, Function getter, IErrorEnumId errorEmptyRequiredValue, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java index e67250089..82f602097 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/DictionaryPresentRule.java @@ -15,12 +15,6 @@ import java.util.Objects; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля с кодом из словаря (таблицы *_dictionary) - * - * @param Класс проверяемого объекта - * @param Класс словаря - */ public class DictionaryPresentRule implements IValidationRule> { public static final IMessageDecorator FIELD_NOT_FOUND_DECORATOR_1 = (isEmpty, errorCode, dictionaryName, fieldValue) -> new EnumMessage(errorCode, dictionaryName); public static final IMessageDecorator DICTIONARY_NOT_FOUND_DECORATOR_2 = (isEmpty, errorCode, dictionaryName, fieldValue) -> new EnumMessage(errorCode, fieldValue, dictionaryName); @@ -47,18 +41,6 @@ public class DictionaryPresentRule implements I this.decorator = DICTIONARY_NOT_FOUND_DECORATOR_2; } - /** - * @param fieldName Название поля - * @param getter Метод получения проверяемого значения - * @param dictionaryName Название словаря (см. IMDGDistributedNames) - * @param dictionaryClass Класс словаря (классы *Dictionary.class) - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorWrongDictionaryValue Ошибка, которая будет возвращена, если поле не найдено в словаре - * @param required Флаг обязательности - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param Класс проверяемого объекта - * @param Класс словаря - */ @SafeVarargs public static DictionaryPresentRule instance(String fieldName, Function getter, @@ -81,17 +63,6 @@ public class DictionaryPresentRule implements I additionalChecks); } - /** - * @param fieldName Название поля - * @param getter Метод получения проверяемого значения - * @param dictionaryName Название словаря (см. IMDGDistributedNames) - * @param dictionaryClass Класс словаря (классы *Dictionary.class) - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorWrongDictionaryValue Ошибка, которая будет возвращена, если поле не найдено в словаре - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param Класс проверяемого объекта - * @param Класс словаря - */ @SafeVarargs public static DictionaryPresentRule instance(String fieldName, Function getter, @@ -128,7 +99,7 @@ public class DictionaryPresentRule implements I return decorator.of(false, errorWrongDictionaryValue, dictionaryClass.getSimpleName(), enumCode); } D dictionaryFromMap = fromMap.iterator().next(); - if (dictionaryFromMap == null) { // never + if (dictionaryFromMap == null) { return decorator.of(false, errorWrongDictionaryValue, dictionaryClass.getSimpleName(), enumCode); } for (Function additionalCheck : additionalChecks) { diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/EndDtAfterStartDtRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/EndDtAfterStartDtRule.java index 92302ad9d..5c0f3bc43 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/EndDtAfterStartDtRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/EndDtAfterStartDtRule.java @@ -9,10 +9,6 @@ import java.time.LocalDate; import java.util.Optional; import java.util.function.Function; -/** - * Проверка EndDt < StartDt - * @param Класс проверяемого объекта - */ public record EndDtAfterStartDtRule( String startDtFieldName, String endDtFieldName, @@ -23,16 +19,6 @@ public record EndDtAfterStartDtRule( boolean required ) implements IValidationRule> { - /** - * @param startDtFieldName Название поля класса, содержащий StartDt - * @param endDtFieldName Название поля класса, содержащий EndDt - * @param getterStartDt Метод получения проверяемой StartDt - * @param getterEndDt Метод получения проверяемой EndDt - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если одна из дат пустая - * @param errorEndDtAfterStartDt Ошибка, которая будет возвращена, если EndDt > StartDt - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - */ public static EndDtAfterStartDtRule instance(String startDtFieldName, String endDtFieldName, Function getterStartDt, @@ -49,15 +35,6 @@ public record EndDtAfterStartDtRule( required); } - /** - * @param startDtFieldName Название поля класса, содержащий StartDt - * @param endDtFieldName Название поля класса, содержащий EndDt - * @param getterStartDt Метод получения проверяемой StartDt - * @param getterEndDt Метод получения проверяемой EndDt - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если одна из дат пустая - * @param errorEndDtAfterStartDt Ошибка, которая будет возвращена, если StartDt > EndDt - * @param Класс проверяемого объекта - */ public static EndDtAfterStartDtRule instance( String startDtFieldName, String endDtFieldName, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/EnumPresentRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/EnumPresentRule.java index 06df4e777..650407b7e 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/EnumPresentRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/EnumPresentRule.java @@ -9,12 +9,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля со значением из множества (enum) - * Рекомендуется использовать не эту валидацию, а DictionaryPresentRule - * @param Класс проверяемого объекта - * @param Enum - */ public record EnumPresentRule(String fieldName, Function getter, E[] enumValues, @@ -22,16 +16,6 @@ public record EnumPresentRule(String fieldName, IErrorEnumId errorWrongEnumValue, IErrorEnumId errorEmptyRequiredValue) implements IValidationRule> { - /** - * @param fieldName Название поля - * @param getter Метод получения проверяемого значения - * @param enumValues Значения из проверяемого множества (Enum.values()) - * @param errorWrongEnumValue Ошибка, которая будет возвращена, если поле не найдено в Enum - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param required Флаг обязательности - * @param Класс проверяемого объекта - * @param Enum - */ public static EnumPresentRule instance(String fieldName, Function getter, E[] enumValues, @@ -43,15 +27,6 @@ public record EnumPresentRule(String fieldName, return new EnumPresentRule<>(fieldName, getter, enumValues, required, errorWrongEnumValue, errorEmptyRequiredValue); } - /** - * @param fieldName Название поля - * @param getter Метод получения проверяемого значения - * @param enumValues Значения из проверяемого множества (Enum.values()) - * @param errorWrongEnumValue Ошибка, которая будет возвращена, если поле не найдено в Enum - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param Класс проверяемого объекта - * @param Enum - */ public static EnumPresentRule instance(String fieldName, Function getter, E[] enumValues, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldNotBlankRequiredRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldNotBlankRequiredRule.java index f3fea7b35..e8eaeddc2 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldNotBlankRequiredRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldNotBlankRequiredRule.java @@ -10,16 +10,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -/** - * Проверка обязательности String поля (not null) - * - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - */ public record FieldNotBlankRequiredRule( String fieldName, Function getter, @@ -28,14 +18,6 @@ public record FieldNotBlankRequiredRule( Function[] additionalChecks ) implements IValidationRule> { - /** - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - */ @SafeVarargs public static FieldNotBlankRequiredRule instance(String fieldName, Function getter, @@ -46,13 +28,6 @@ public record FieldNotBlankRequiredRule( return new FieldNotBlankRequiredRule<>(fieldName, getter, errorEmptyRequiredValue, required, additionalChecks); } - /** - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param Класс проверяемого объекта - */ @SafeVarargs public static FieldNotBlankRequiredRule instance(String fieldName, Function getter, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldRequiredRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldRequiredRule.java index c2e0ebe48..d23b22803 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldRequiredRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/FieldRequiredRule.java @@ -9,17 +9,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -/** - * Проверка обязательности поля (not null) - * - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - * @param Класс проверяемого значения - */ public record FieldRequiredRule( String fieldName, Function getter, @@ -28,15 +17,6 @@ public record FieldRequiredRule( Function[] additionalChecks ) implements IValidationRule> { - /** - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - * @param Класс проверяемого значения - */ @SafeVarargs public static FieldRequiredRule instance(String fieldName, Function getter, @@ -47,14 +27,6 @@ public record FieldRequiredRule( return new FieldRequiredRule<>(fieldName, getter, errorEmptyRequiredValue, required, additionalChecks); } - /** - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param Класс проверяемого объекта - * @param Класс проверяемого значения - */ @SafeVarargs public static FieldRequiredRule instance(String fieldName, Function getter, @@ -65,7 +37,6 @@ public record FieldRequiredRule( } @Override - // todo replace for error fieldName to fieldValue public Optional validate(ImdgValidationContext context) { R validatedObject = context.getValidatedObject(); V value = getter.apply(validatedObject); diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IdPresentRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IdPresentRule.java index f0b811682..b4a1d7b2f 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IdPresentRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IdPresentRule.java @@ -11,12 +11,6 @@ import java.util.Objects; import java.util.Optional; import java.util.function.Function; -/** - * Проверка наличия связанного по Id объекта в базе - * - * @param Класс проверяемого объекта - * @param Класс связанного объекта - */ public record IdPresentRule( String fieldName, Function idGetter, @@ -28,18 +22,6 @@ public record IdPresentRule( Function[] additionalChecks ) implements IValidationRule> { - /** - * @param fieldName Название поля, содержащего Id - * @param idGetter Метод получения Id - * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) - * @param mapClass Класс связанного объекта - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден - * @param required Флаг обязательности - * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом - * @param Класс проверяемого объекта - * @param Класс связанного объекта - */ @SafeVarargs public static IdPresentRule instance(String fieldName, Function idGetter, @@ -62,17 +44,6 @@ public record IdPresentRule( additionalChecks); } - /** - * @param fieldName Название поля, содержащего Id - * @param idGetter Метод получения Id - * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) - * @param mapClass Класс связанного объекта - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден - * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом - * @param Класс проверяемого объекта - * @param Класс связанного объекта - */ @SafeVarargs public static IdPresentRule instance(String fieldName, Function idGetter, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IsLongValueRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IsLongValueRule.java index a5dcdd328..0de4e0513 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IsLongValueRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/IsLongValueRule.java @@ -8,11 +8,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля типа String на возможность преобразования в Long - * - * @param Класс проверяемого объекта - */ public record IsLongValueRule( String fieldName, Function getter, @@ -21,14 +16,6 @@ public record IsLongValueRule( boolean required ) implements IValidationRule> { - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемого поля - * @param errorEmptyRequiredField Ошибка, которая будет возвращена, если поле пустое - * @param errorWrongFieldValue Ошибка, которая будет возвращена, если поле нельзя преобразовать в Long - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - */ public static IsLongValueRule instance(String fieldName, Function getter, IErrorEnumId errorEmptyRequiredField, @@ -37,13 +24,6 @@ public record IsLongValueRule( return new IsLongValueRule<>(fieldName, getter, errorEmptyRequiredField, errorWrongFieldValue, required); } - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемого поля - * @param errorEmptyRequiredField Ошибка, которая будет возвращена, если поле пустое - * @param errorWrongFieldValue Ошибка, которая будет возвращена, если поле нельзя преобразовать в Long - * @param Класс проверяемого объекта - */ public static IsLongValueRule instance(String fieldName, Function getter, IErrorEnumId errorEmptyRequiredField, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/SpecialIdPresentRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/SpecialIdPresentRule.java index afa281bc5..75c93f119 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/SpecialIdPresentRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/SpecialIdPresentRule.java @@ -1,10 +1,7 @@ package ru.spcex.clearing.validation.common.rules; -import ru.clearing.platform.dictionary.AbstractDictionary; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IErrorEnumId; @@ -15,12 +12,6 @@ import java.util.Map; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля с кодом из таблицы (аналог IdPresentRule / DictionaryPresentRule) - * - * @param Класс проверяемого объекта - * @param Класс искомого объекта (mapName) - */ public record SpecialIdPresentRule(String fieldName, Function getter, String keyName, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/TimeNotBeforeRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/TimeNotBeforeRule.java index 7ab42a96c..0e54e28a4 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/TimeNotBeforeRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/TimeNotBeforeRule.java @@ -9,10 +9,6 @@ import java.time.LocalTime; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля с LocalTime. Условие проверки: проверяемое время >= текущее время - * @param Класс проверяемого объекта - */ public record TimeNotBeforeRule( String fieldName, Function getter, @@ -21,14 +17,6 @@ public record TimeNotBeforeRule( boolean required ) implements IValidationRule> { - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемого времени - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorTaskForPastTime Ошибка, которая будет возвращена, если проверяемое время меньше текущего - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - */ public static TimeNotBeforeRule instance(String fieldName, Function getter, IErrorEnumId errorEmptyRequiredValue, @@ -37,13 +25,6 @@ public record TimeNotBeforeRule( return new TimeNotBeforeRule<>(fieldName, getter, errorEmptyRequiredValue, errorTaskForPastTime, required); } - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемого времени - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorTaskForPastTime Ошибка, которая будет возвращена, если проверяемое время меньше текущего - * @param Класс проверяемого объекта - */ public static TimeNotBeforeRule instance(String fieldName, Function getter, IErrorEnumId errorEmptyRequiredValue, diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/specific/FieldRequiredSpecificRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/specific/FieldRequiredSpecificRule.java index 1d5b8a444..ff5d8fd28 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/specific/FieldRequiredSpecificRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/specific/FieldRequiredSpecificRule.java @@ -9,17 +9,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -/** - * Проверка обязательности поля (not null) - * - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - * @param Класс проверяемого значения - */ public record FieldRequiredSpecificRule( String fieldName, Function getter, @@ -28,15 +17,6 @@ public record FieldRequiredSpecificRule( Function[] additionalChecks ) implements IValidationRule> { - /** - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - * @param Класс проверяемого значения - */ @SafeVarargs public static FieldRequiredSpecificRule instance(String fieldName, Function getter, @@ -47,14 +27,6 @@ public record FieldRequiredSpecificRule( return new FieldRequiredSpecificRule<>(fieldName, getter, errorEmptyRequiredValue, required, additionalChecks); } - /** - * @param fieldName Название поля - * @param getter Метод получения значения - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param additionalChecks Дополнительные проверки, связанные с этим полем - * @param Класс проверяемого объекта - * @param Класс проверяемого значения - */ @SafeVarargs public static FieldRequiredSpecificRule instance(String fieldName, Function getter, @@ -65,7 +37,6 @@ public record FieldRequiredSpecificRule( } @Override - // todo replace for error fieldName to fieldValue public Optional validate(ImdgValidationContext context) { R validatedObject = context.getValidatedObject(); V value = getter.apply(validatedObject); diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/specific/IdPresentSpecificRule.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/specific/IdPresentSpecificRule.java index d99015e93..2836899b6 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/specific/IdPresentSpecificRule.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/rules/specific/IdPresentSpecificRule.java @@ -11,12 +11,6 @@ import java.util.Objects; import java.util.Optional; import java.util.function.Function; -/** - * Проверка наличия связанного по Id объекта в базе - * - * @param Класс проверяемого объекта - * @param Класс связанного объекта - */ public record IdPresentSpecificRule( String fieldName, Function idGetter, @@ -28,18 +22,6 @@ public record IdPresentSpecificRule( Function[] additionalChecks ) implements IValidationRule> { - /** - * @param fieldName Название поля, содержащего Id - * @param idGetter Метод получения Id - * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) - * @param mapClass Класс связанного объекта - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден - * @param required Флаг обязательности - * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом - * @param Класс проверяемого объекта - * @param Класс связанного объекта - */ @SafeVarargs public static IdPresentSpecificRule instance(String fieldName, Function idGetter, @@ -62,17 +44,6 @@ public record IdPresentSpecificRule( additionalChecks); } - /** - * @param fieldName Название поля, содержащего Id - * @param idGetter Метод получения Id - * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) - * @param mapClass Класс связанного объекта - * @param errorEmptyRequiredValue Ошибка, которая будет возвращена, если поле пустое - * @param errorIdNotPresent Ошибка, которая будет возвращена, если Id не найден - * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом - * @param Класс проверяемого объекта - * @param Класс связанного объекта - */ @SafeVarargs public static IdPresentSpecificRule instance(String fieldName, Function idGetter, diff --git a/clearing-parent/clearing-validation/src/test/java/ru/spcex/clearing/util/services/IMDGMessageResolverTest.java b/clearing-parent/clearing-validation/src/test/java/ru/spcex/clearing/util/services/IMDGMessageResolverTest.java index fddf0fa74..0aacc0c10 100644 --- a/clearing-parent/clearing-validation/src/test/java/ru/spcex/clearing/util/services/IMDGMessageResolverTest.java +++ b/clearing-parent/clearing-validation/src/test/java/ru/spcex/clearing/util/services/IMDGMessageResolverTest.java @@ -9,7 +9,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IErrorEnumId; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; class IMDGMessageResolverTest { @@ -51,18 +51,13 @@ class IMDGMessageResolverTest { { String text = resolver.resolve(new EnumMessage(err1, "one only this")); assertEquals("1 Error 1 test. Two arg one only this, .", text); - // java.util.MissingFormatArgumentException: Format specifier '%s' -// assertEquals("(1) args [one only this]", text); } { String text = resolver.resolve(new EnumMessage(err1)); assertEquals("1 Error 1 test. Two arg , .", text); - // java.util.MissingFormatArgumentException: Format specifier '%s' -// assertEquals("(1) args []", text); } { String text = resolver.resolve(new EnumMessage(ClearingErrorInternalTest.TestError2, "text")); - // java.util.UnknownFormatConversionException: Conversion = 'Q' assertEquals("(2) args [text]", text); } { @@ -74,7 +69,7 @@ class IMDGMessageResolverTest { } } - enum ClearingErrorInternalTest implements IErrorEnumId { // see ClearingErrorInternal + enum ClearingErrorInternalTest implements IErrorEnumId { TestError(1L), TestError2(2L), TestError3(3L); private final Long id; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyRoleSetValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyRoleSetValidationConfig.java index 2fbc99f87..3691afb30 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyRoleSetValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyRoleSetValidationConfig.java @@ -4,17 +4,13 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanyRoleSet; -import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.platform.dictionary.CompanyRoleDictionary; -import ru.clearing.platform.dictionary.CompanySymbolDictionary; import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.validation.CompanySymbolOfSymbolNewRequestNotExistRule; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyRoleSetNewRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; -import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.clearing.validation.common.rules.specific.IdPresentSpecificRule; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -37,12 +33,10 @@ public class CompanyRoleSetValidationConfig { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(companyRoleSetNewRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); -// addImdg.accept(IMDGDistributedNames.Map_CompanyRoleSet); addImdg.accept(IMDGDistributedNames.Map_CompanyRoleDictionary); addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); addImdg.accept(IMDGDistributedNames.Map_Company); return new ValidatorImpl<>(context, -// FieldRequiredRule.instance("companyId", CompanyRoleSetNewRequest::getCompanyId, CompanyErrors.RequiredFieldEmpty), IdPresentRule.instance("companyId", CompanyRoleSetNewRequest::getCompanyId, IMDGDistributedNames.Map_Company, diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanySymbolValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanySymbolValidationConfig.java index a0910d687..a319db9c7 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanySymbolValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanySymbolValidationConfig.java @@ -44,8 +44,6 @@ public class CompanySymbolValidationConfig { Company.class, CompanyErrors.RequiredFieldEmpty, CompanyErrors.CompanyNotFound), -// FieldRequiredRule.instance("companySymbol", CompanySymbolUpdateRequest::getCompanySymbol, CompanyErrors.RequiredFieldEmpty), -// FieldRequiredRule.instance("companySymbolValue", CompanySymbolUpdateRequest::getCompanySymbolValue, CompanyErrors.RequiredFieldEmpty), DictionaryPresentRule.instance("companySymbol", CompanySymbolNewRequest::getCompanySymbol, IMDGDistributedNames.Map_CompanySymbolDictionary, @@ -78,7 +76,6 @@ public class CompanySymbolValidationConfig { assert existSymbol.getId().equals(context.getValidatedObject().getId()); if (context.getValidatedObject().getCompanySymbol() == null) return null; - // сейчас в коде предусмотрено редактирование-смена типа, но пока в ТЗ это не делали return existSymbol.getCompanySymbol().equals(context.getValidatedObject().getCompanySymbol()) ? null : CompanyErrors.EditCompanySymbols; } @@ -91,8 +88,6 @@ public class CompanySymbolValidationConfig { Company.class, CompanyErrors.RequiredFieldEmpty, CompanyErrors.CompanyNotFound), -// FieldRequiredRule.instance("companySymbol", CompanySymbolUpdateRequest::getCompanySymbol, CompanyErrors.RequiredFieldEmpty), -// FieldRequiredRule.instance("companySymbolValue", CompanySymbolUpdateRequest::getCompanySymbolValue, CompanyErrors.RequiredFieldEmpty), DictionaryPresentRule.instance("companySymbol", CompanySymbolUpdateRequest::getCompanySymbol, IMDGDistributedNames.Map_CompanySymbolDictionary, diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java index 2c029714d..2004df926 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanyValidationConfig.java @@ -12,7 +12,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteReques import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyInfoUpdateRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; -import ru.spcex.clearing.validation.common.rules.EnumPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.clearing.validation.common.rules.specific.IdPresentSpecificRule; @@ -77,8 +76,6 @@ public class CompanyValidationConfig { FieldRequiredRule.instance("shortName", CompanyNewRequest::getShortName, CompanyErrors.RequiredFieldEmpty, shortName -> StringUtils.isBlank(shortName) ? CompanyErrors.RequiredFieldEmpty : null), -// FieldRequiredRule.instance("companySymbol", CompanyNewRequest::getCompanySymbol, CompanyErrors.RequiredFieldEmpty), -// FieldRequiredRule.instance("companySymbolValue", CompanyNewRequest::getCompanySymbolValue, CompanyErrors.RequiredFieldEmpty), FieldRequiredRule.instance("workflowStatus", CompanyNewRequest::getWorkflowStatus, CompanyErrors.RequiredFieldEmpty), DictionaryPresentRule.instance("workflowStatus", @@ -87,12 +84,6 @@ public class CompanyValidationConfig { WorkflowStatusDictionary.class, CompanyErrors.RequiredFieldEmpty, CompanyErrors.DictionaryNotFound) -// DictionaryPresentRule.instance("companySymbol", -// CompanyNewRequest::getCompanySymbol, -// IMDGDistributedNames.Map_CompanySymbolDictionary, -// CompanySymbolDictionary.class, -// CompanyErrors.RequiredFieldEmpty, -// CompanyErrors.DictionaryNotFound) ); }; } @@ -106,7 +97,6 @@ public class CompanyValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); return new ValidatorImpl<>(context, -// FieldRequiredRule.instance("id", CommonDeleteRequest::getId, CompanyErrors.RequiredFieldEmpty), IdPresentSpecificRule.instance("id", CommonDeleteRequest::getId, IMDGDistributedNames.Map_Company, @@ -136,14 +126,12 @@ public class CompanyValidationConfig { addImdg.accept(IMDGDistributedNames.Map_LegalKindDictionary); addImdg.accept(IMDGDistributedNames.Map_OrganizationTypeDictionary); return new ValidatorImpl<>(context, -// FieldRequiredRule.instance("id", CommonDeleteRequest::getId, CompanyErrors.RequiredFieldEmpty), IdPresentRule.instance("id", CompanyInfoUpdateRequest::getId, IMDGDistributedNames.Map_Company, Company.class, CompanyErrors.RequiredFieldEmpty, CompanyErrors.CompanyNotFound - //, company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled ), DictionaryPresentRule.instance("CorporationSoleType", diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ProfileDocumentValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ProfileDocumentValidationConfig.java index 57ff9253c..2c3609f32 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ProfileDocumentValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ProfileDocumentValidationConfig.java @@ -12,7 +12,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentNe import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUpdateRequest; import ru.spcex.clearing.validation.common.rules.*; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.validation.IValidator; @@ -97,7 +96,6 @@ public class ProfileDocumentValidationConfig { CompanyErrors.RequiredFieldEmpty, CompanyErrors.CompanyNotFound, false - //company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled ), DictionaryPresentRule.instance("documentType", ProfileDocumentUpdateRequest::getDocumentType, diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java index 50eac7ce2..7cfbbf615 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java @@ -72,7 +72,6 @@ public class RelationValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Relation); addImdg.accept(IMDGDistributedNames.Map_Company); -// addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary); addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); return new ValidatorImpl<>(context, @@ -92,18 +91,6 @@ public class RelationValidationConfig { return null; } }), -// IdPresentRule.instance("companyId", -// RelationUpdateRequest::getCompanyId, -// IMDGDistributedNames.Map_Company, -// Company.class, -// CompanyErrors.RequiredFieldEmpty, -// CompanyErrors.CompanyNotFound), -// DictionaryPresentRule.instance("documentType", -// RelationUpdateRequest::getClearingMemberCategory, -// IMDGDistributedNames.Map_ClearingCategoryDictionary, -// ClearingCategoryDictionary.class, -// CompanyErrors.RequiredFieldEmpty, -// CompanyErrors.WrongFieldValue), DictionaryPresentRule.instance("serviceStatus", RelationUpdateRequest::getServiceStatus, IMDGDistributedNames.Map_ServiceStatusDictionary, diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java index 824f55545..a0fb882ea 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java @@ -3,31 +3,31 @@ package ru.spcex.clearing.company.error; import ru.spcex.platform.utils.enumeration.IErrorEnumId; public enum CompanyErrors implements IErrorEnumId { - GeneralError(3000L), // Общая ошибка модуля company-service - UserVerifyDenial(3001L), // 'Нет прав на проведение данной операции + GeneralError(3000L), + UserVerifyDenial(3001L), - RequiredFieldEmpty(3002L), // Не заданы обязательные поля %s. - DictionaryNotFound(3003L), // Запись с идентификатором %s в справочнике %s не найдена. - WrongFieldValue(3004L), // Неверное значение поля %s. - RecordAlreadyExist(3005L), // Запись с идентификатором %s уже существует. - RecordNotFound(3006L), // Запись с идентификатором %s не найдена. - CompanyALreadyExist(3010L), // Компания %s уже существует - CompanyNotFound(3011L), // Компания %s не найдена. - CompanyDisabled(3012L), // Компания %s неактивна. (параметр company.shortName) - ProfileNotFound(3013L), // Профиль компании %s не найден. - CompanyInfoNotFound(3014L), // Реквизит компании %s не найден. - ContactNotFound(3015L), // Контакт компании %s не найден. - CategoryNotFound(3016L), // Категория компании %s не найдена. - CategoryAlreadySet(3017L), // Компании %s уже присвоена категория %s. - CompanyAlreadyHasLiabilities(3018L), // У компании %s присутствуют обязательства. - CompanyWithCompanySymbolAlreadyExist(3019L), // Компания с %s = %s уже создана" (где первый %s - companySymbol, второй %s - companySymbolValue) - EditCompanySymbols(3020L), // Тип реквизита компании %s не может быть изменен. - EditContactType(3021L), // Тип контакта компании %s не может быть изменен. - TradingClearingRegistryNotFound(3022L), // ТКР с %s не найден - AccountNotFound(3023L), // Счет %s не найден - ClearingMemberCategoryOnMKRAlreadyExist(3024L), // Договорные отношения %s в секции МКР уже созданы. - ClearingMemberCategoryOnFONDAlreadyExist(3025L), // Договорные отношения %s на фондовой секции уже созданы. - RelationNotFound(3026L), // Запись о договорных отношениях не найдена + RequiredFieldEmpty(3002L), + DictionaryNotFound(3003L), + WrongFieldValue(3004L), + RecordAlreadyExist(3005L), + RecordNotFound(3006L), + CompanyALreadyExist(3010L), + CompanyNotFound(3011L), + CompanyDisabled(3012L), + ProfileNotFound(3013L), + CompanyInfoNotFound(3014L), + ContactNotFound(3015L), + CategoryNotFound(3016L), + CategoryAlreadySet(3017L), + CompanyAlreadyHasLiabilities(3018L), + CompanyWithCompanySymbolAlreadyExist(3019L), + EditCompanySymbols(3020L), + EditContactType(3021L), + TradingClearingRegistryNotFound(3022L), + AccountNotFound(3023L), + ClearingMemberCategoryOnMKRAlreadyExist(3024L), + ClearingMemberCategoryOnFONDAlreadyExist(3025L), + RelationNotFound(3026L), ; private final Long id; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/AccountNotificationHelper.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/AccountNotificationHelper.java index c220cf6dd..b3b746902 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/AccountNotificationHelper.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/AccountNotificationHelper.java @@ -63,29 +63,16 @@ public class AccountNotificationHelper { public CompanyErrors accountTerminationByDocumentNotification(Long companyId, Long terminationDocumentId) { -// Collection accounts = accountMap.getCollectionObjectsBySQL("companyId=" + companyId); -// log.trace("Found {} accounts (will be terminated) by company {}", accounts.size(), companyId); -// for (Account account : accounts) { -// Collection liabilities = liabilitiesClaimsAssetsMap.getCollectionObjectsBySQL("accountId=" + account.getId()); -// for (LiabilitiesClaimsAssets liability : liabilities) { -// if (liability.getLiabilitiesQuantity() != null && BigDecimal.ZERO.compareTo(liability.getLiabilitiesQuantity()) == 0) { -// return CompanyErrors.CompanyAlreadyHasLiabilities; -// } -// } -// } -// log.debug("Sending messages to account-service for {} account", accounts.size()); AccountTerminationRequest requestBatch = createAccountsRequest(companyId, terminationDocumentId); Long reqId = kafkaSender.sendRequestToQueue(Consts.ACCOUNT_TERMINATION, requestBatch); log.debug("For terminate account send termination by document request id={}", reqId); - // ответ должен послаться в ACCOUNT_TERMINATION_STEP2 = "company-block"; return null; } public void makeInfoAccount(Long companyId) { InformationAccountNewRequest r = new InformationAccountNewRequest(); r.setCompanyId(companyId); - // формат "39911"+ "810" +"000001"(счётчик)+"7000"; пример: "39911810000000017000" log.debug("Sending messages to account-service {} for company {}", Consts.INFORMATION_ACCOUNT_SYSTEM_NEW, companyId); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java index 5d0a3825e..8682b9ff1 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java @@ -132,8 +132,6 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init log.debug("ClearingMemberCategoryUpdateRequest received"); ClearingMemberCategory clearingMemberCategory = clearingMemberCategoryMap.getSingleObjectByID(req.getId()); - - // if (Objects.equals(clearingMemberCategory.getClearingMemberCategory(), req.getClearingMemberCategory())) String oldClearingMemberCategory = clearingMemberCategory.getClearingMemberCategory(); clearingMemberCategory.setClearingMemberCategory(req.getClearingMemberCategory()); synchronized (companyService) { @@ -141,9 +139,6 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init transaction.beginTransaction(); boolean txOk = false; try { - //todo сложный кейс с возможным изменением релейшена или пересозданием. Скоро ТЗ доделают. - //companyService.relationService.updateExistRelation(transaction,clearingMemberCategory.getCompanyId(), oldClearingMemberCategory, - // clearingMemberCategory.getClearingMemberCategory()); companyService.relationService.createNewRelation(transaction, clearingMemberCategory.getCompanyId(), clearingMemberCategory); Imdg txClearingMemberCategoryMap = transaction.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); txClearingMemberCategoryMap.insert(clearingMemberCategory); @@ -178,8 +173,8 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init boolean txOk = false; try { Imdg txClearingMemberCategoryMap = transaction.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); - txClearingMemberCategoryMap.delete(clearingMemberCategory); // далить до cancelRelation внутри транзакции - if (clearingMemberCategory.getCompanyId() == null) { // never, только тестовые данные + txClearingMemberCategoryMap.delete(clearingMemberCategory); + if (clearingMemberCategory.getCompanyId() == null) { log.warn("Deleted clearingMemberCategory[{}] has not companyId", clearingMemberCategory.getId()); } else { companyService.relationService.cancelRelation(transaction, clearingMemberCategory.getCompanyId(), clearingMemberCategory); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java index ccdd7723e..74292ee9e 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java @@ -66,7 +66,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea .forDestination(Consts.DESTINATION_COMPANY_INFO_UPDATE, callbacks::put); callback(CompanyInfoUpdateRequest.class) .setFunction(request -> requestHelper.requestFunction(this::companyInfoUpdate, request)) - .forDestination(Consts.DESTINATION_COMPANY_INFO_NEW, callbacks::put); // логика заполнения одинакова с companyInfoUpdate + .forDestination(Consts.DESTINATION_COMPANY_INFO_NEW, callbacks::put); init(); } @@ -74,7 +74,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea public RequestInfoUpdate companyInfoUpdate(BaseRequest companyInfoReq) throws ValidationException { CompanyInfoUpdateRequest req = companyInfoReq.getRequestPayload(); log.debug("{} received", req.getClass().getSimpleName()); - { // Валидация, ValidationException + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyInfoReq); if (requestInfoUpdate != null) return requestInfoUpdate; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java index 0854d7332..97bfbaf7f 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java @@ -8,7 +8,6 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanyRoleSet; import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -37,7 +36,6 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing private final RequestHelper requestHelper; private final ImdgProvider imdgProvider; - // private final Imdg companyMap; private final Imdg companyRoleSetMap; private final ImdgId idSequence; protected UserRoleVerification userRoleVerification; @@ -62,7 +60,6 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing super(kafkaQueue, kafkaProducer); this.imdgProvider = imdgProvider; this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class); -// this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); this.idSequence = imdgProvider.getImdgIdGenerator(); this.userRoleVerification = userRoleVerification; this.validationHelper = validationHelper; @@ -76,9 +73,6 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing callback(CompanyRoleSetNewRequest.class) .setFunction(request -> requestHelper.requestFunction(this::createCompanyRoleSet, request)) .forDestination(Consts.DESTINATION_COMPANY_ROLE_SET_NEW, callbacks::put); -// callback(CompanyRoleSetNewRequest.class) -// .setConsumer(request -> requestHelper.requestFunction(this::createCompanyRoleSet, request)) -// .forDestination(Consts.DESTINATION_COMPANY_ROLE_SET_UPDATE, callbacks::put); callback(CommonDeleteRequest.class) .setFunction(request -> requestHelper.requestFunction(this::deleteCompanyRoleSet, request)) .forDestination(Consts.DESTINATION_COMPANY_ROLE_SET_DELETE @@ -89,7 +83,7 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing private RequestInfoUpdate createCompanyRoleSet(BaseRequest companyRoleNewRequestBaseRequest) throws ValidationException { CompanyRoleSetNewRequest req = companyRoleNewRequestBaseRequest.getRequestPayload(); log.debug("companyroleset-new request received, BaseRequest.id = {}", companyRoleNewRequestBaseRequest.getId()); - { // Валидация, ValidationException + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleNewRequestBaseRequest); if (requestInfoUpdate != null) return requestInfoUpdate; requestInfoUpdate = validationHelper.validateTillFirstError(companyRoleNewRequestBaseRequest, companyRoleSetNewRequestValidator); @@ -111,10 +105,6 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing isNew = false; log.trace("Update exist CompanyRoleSet[{}] for company {}", newRole.getId(), req.getCompanyId()); return requestHelper.makeErrorResponse(companyRoleNewRequestBaseRequest, CompanyErrors.RecordAlreadyExist, newRole.getId()); -// if (newRole.getCompanyId() != null && req.getCompanyId() != null && !newRole.getCompanyId().equals(req.getCompanyId())) { -//// нельзя сменить компанию -// return requestHelper.makeErrorResponse(companyRoleNewRequestBaseRequest, CompanyErrors.WrongFieldValue, "companyId"); -// } } newRole.setCompanyRole(req.getCompanyRole()); newRole.setWorkflowStatus(req.getWorkflowStatus()); @@ -129,7 +119,7 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing private RequestInfoUpdate deleteCompanyRoleSet(BaseRequest companyRoleSetDeleteRequest) throws ValidationException { CommonDeleteRequest request = companyRoleSetDeleteRequest.getRequestPayload(); log.debug("companyRoleSetDeleteRequest received id = {}", request.getId()); - { // Валидация, ValidationException + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleSetDeleteRequest); if (requestInfoUpdate != null) return requestInfoUpdate; requestInfoUpdate = validationHelper.validateTillFirstError(companyRoleSetDeleteRequest, companyRoleSetDeleteRequestValidator); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java index 62a0d4987..2fbec5240 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java @@ -113,18 +113,12 @@ public class CompanyService extends QueueConsumer implements InitializingBean { } private RequestInfoUpdate processBaseRequest(BaseRequest request) throws ValidationException { - // Валидация RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(request); if (requestInfoUpdate != null) return requestInfoUpdate; ActionType actionType = request.getActionType(); switch (actionType) { case NEW -> { CompanyNewRequest companyNewRequest = (CompanyNewRequest) request.getRequestPayload(); -// IValidator validator = companyNewRequestValidator.apply(companyNewRequest); -// Optional error = validator.tillFirstError(); -// if (error.isPresent()) { -// throw new ValidationException(error.get()); -// } create(companyNewRequest); } case UPDATE -> update((CompanyNewRequest) request.getRequestPayload(), true); @@ -206,10 +200,6 @@ public class CompanyService extends QueueConsumer implements InitializingBean { log.trace("Company {} not found", updateRequest.getId()); throw new ValidationException(new EnumMessage(CompanyErrors.CompanyNotFound)); } -// if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { -// log.trace("Company {} not active: {}", company.getId(), company.getWorkflowStatus()); -// return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyDisabled, updateRequest.getId()); -// } company.setUpdated(Instant.now()); if (StringUtils.isNotEmpty(updateRequest.getShortName())) @@ -285,16 +275,10 @@ public class CompanyService extends QueueConsumer implements InitializingBean { } } - /** - * Блокировка компании - * - * @param companyBlockRequestBaseRequest - * @return - */ private synchronized RequestInfoUpdate deleteCompany(BaseRequest companyBlockRequestBaseRequest) throws ValidationException { CommonDeleteRequest request = companyBlockRequestBaseRequest.getRequestPayload(); log.debug("CommonDeleteRequest (block request) received id = {}", request.getId()); - { // Валидация + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyBlockRequestBaseRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -332,21 +316,12 @@ public class CompanyService extends QueueConsumer implements InitializingBean { } - /** - * Блокировка компании по документу о расторжении - * - * @param companyBlockRequestBaseRequest - * @return - */ private synchronized RequestInfoUpdate blockCompanyAfterDocument(BaseRequest companyBlockRequestBaseRequest) throws ValidationException { CommonDeleteRequest request = companyBlockRequestBaseRequest.getRequestPayload(); log.debug("CommonDeleteRequest (block request) received id = {}", request.getId()); - { // Валидация + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyBlockRequestBaseRequest); if (requestInfoUpdate != null) return requestInfoUpdate; - -// requestInfoUpdate = validationHelper.validateTillFirstError(companyBlockRequestBaseRequest, companyDeleteRequestValidator); -// if (requestInfoUpdate != null) return requestInfoUpdate; } Company company = companyIMap.getSingleObjectByID(request.getId()); @@ -384,15 +359,10 @@ public class CompanyService extends QueueConsumer implements InitializingBean { return null; } - /** - * Блокировка компании после блокировки счетов - * - * @return - */ private synchronized RequestInfoUpdate finishCompanyTermination(BaseRequest terminationRequest) throws ValidationException { AccountTerminationRequest request = terminationRequest.getRequestPayload(); log.debug("AccountTerminationRequest (block request) received id = {}", terminationRequest.getId()); - { // Валидация + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(terminationRequest); if (requestInfoUpdate != null) return requestInfoUpdate; } @@ -405,11 +375,9 @@ public class CompanyService extends QueueConsumer implements InitializingBean { Company company = companyIMap.getSingleObjectByID(request.getCompanyId()); if (company == null) { log.warn("Company {} not found", request.getCompanyId()); - //return requestHelper.makeErrorResponse(companyBlockRequestBaseRequest, CompanyErrors.CompanyNotFound); } if (WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus())) { log.info("Company {} already blocked", company.getId()); - //return requestHelper.makeErrorResponse(companyBlockRequestBaseRequest, CompanyErrors.CompanyDisabled); } else { company.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); company.setUpdated(Instant.now()); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java index 3d3cc40e0..7191520ec 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java @@ -20,7 +20,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolNewR import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolUpdateRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; -import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.validation.common.ValidationHelper; @@ -93,7 +92,6 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB private RequestInfoUpdate processBaseRequest(BaseRequest request) { RequestInfoUpdate requestInfoUpdate = null; - // Валидация requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(request); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -112,7 +110,7 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB public Long create(CompanySymbolNewRequest symbolRequest) throws ValidationException { log.debug("CompanySymbolNewRequest received"); - { // validate + { IValidator validator = companySymbolNewRequestValidator.apply(symbolRequest); Optional error = validator.tillFirstError(); if (error.isPresent()) { @@ -159,7 +157,7 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB CompanySymbolUpdateRequest req = symbolRequest.getRequestPayload(); log.debug("CompanySymbolUpdateRequest received, id={}", symbolRequest.getId()); - { // validate + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(symbolRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -203,7 +201,7 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB CommonDeleteRequest req = symbolRequest.getRequestPayload(); log.debug("CommonDeleteRequest for CompanySymbol received, id={}", symbolRequest.getId()); - { // validate + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(symbolRequest); if (requestInfoUpdate != null) return requestInfoUpdate; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java index 48d592a95..b0d10729a 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java @@ -95,8 +95,6 @@ public class ContactService extends QueueConsumer implements InitializingBean { requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, contactUpdateRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - - // Тип контакта не меняем, при валидации кидаем ошибку. ContactUpdateRequest req = userRequest.getRequestPayload(); Contact contact = contactMap.getSingleObjectByID(req.getId()); contact.setContactValue(req.getContactValue()); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java index 22dc30751..2874553f1 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java @@ -38,9 +38,6 @@ import java.util.function.BiFunction; import java.util.stream.Collectors; import java.util.stream.Stream; -/** - * Обрабатывает MultiCompanyRequest и распределяет сложный объект по... - */ @Service public class MultiCompanyService extends QueueConsumer implements InitializingBean { @@ -49,7 +46,6 @@ public class MultiCompanyService private final RequestHelper requestHelper; protected UserRoleVerification userRoleVerification; - // private final ValidationHelper validationHelper; protected IMessageResolver messageResolver; final CompanyService companyService; @@ -116,16 +112,15 @@ public class MultiCompanyService private synchronized RequestInfoUpdate processMultiRequest(BaseRequest baseRequest) { CompanyGatewayRequest req = baseRequest.getRequestPayload(); log.debug("company-batch-new request received, BaseRequest.id = {}", baseRequest.getId()); - { // Валидация + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(baseRequest); if (requestInfoUpdate != null) return requestInfoUpdate; } Long companyId = null; - boolean txOk = false; // todo IMDG transaction + boolean txOk = false; synchronized (companyService) { try { - //часть в companyService req.setCompanySymbols( Stream.concat(req.getCompanySymbols().stream(), additionalSymbols(req.getCompany())).collect(Collectors.toList()) ); @@ -209,7 +204,7 @@ public class MultiCompanyService if (txOk) { log.debug("Create or update sendNewClientCode for company {}", companyId); for (ClientCodeNewRequest partRequest : req.getClientCodes()) { - accountNotification.clientCodeNew(partRequest); // Consts.DESTINATION_CLIENT_CODE_NEW Consts.DESTINATION_CLIENT_CODE_UPDATE + accountNotification.clientCodeNew(partRequest); } } @@ -244,7 +239,7 @@ public class MultiCompanyService Map> query = new HashMap<>(); query.put("companyId", partRequest.getCompanyId()); query.put("documentType", partRequest.getDocumentType()); - query.put("issueDate", partRequest.getIssueDate()); // может быть null + query.put("issueDate", partRequest.getIssueDate()); Collection allDoc = profileDocumentImdg.getCollectionObjectsByFieldValues(query); if (allDoc.isEmpty()) return null; @@ -349,7 +344,7 @@ public class MultiCompanyService } } if (companySymbol == null && StringUtils.isNotEmpty(cnr.getCompanySymbolValue()) - && IEnumKey.contains(cnr.getCompanySymbol(), CompanySymbol.UUID, CompanySymbol.INN, CompanySymbol.CIO)) { // вероятно там будет только UUID + && IEnumKey.contains(cnr.getCompanySymbol(), CompanySymbol.UUID, CompanySymbol.INN, CompanySymbol.CIO)) { { String companySymbolType = cnr.getCompanySymbol(); log.debug("Company not found by UUID=\"{}\", try find by {}={}", diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java index 8a548c097..940eaeb43 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java @@ -251,11 +251,5 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin profileDocument.getCompanyId(), profileDocument.getId(), hasError + "(" + hasError.getId() + ")"); } log.debug("Now wait notification from account-service."); - /* processXCNT - Дальнейшая обработка документа о расторжении, то есть обновление статусов в company и relation, возможна только после ответа об успешном обновлении статуса в account. - ACCOUNT_TERMINATION -> ACCOUNT_TERMINATION_STEP2 - 1.2. Обновить статус в бизнес-объекте company [profileDocument.companyId=company.id] согласно описанию с тегом "При расторжении". - 1.3. Обновить статус в бизнес-объекте relation [profileDocument.companyId=relation.consumerId] согласно описанию с тегом "При расторжении". - */ } } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java index 4d9056990..115075476 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java @@ -51,7 +51,7 @@ import static ru.spcex.platform.utils.enumeration.IEnumKey.getEnumByKey; @Service public class RelationService extends QueueConsumer implements InitializingBean { - protected static final Long SPVB_ID = 1L; // СПВБ + protected static final Long SPVB_ID = 1L; protected final Logger log = LoggerFactory.getLogger(getClass()); protected ImdgProvider imdgProvider; @@ -98,11 +98,8 @@ public class RelationService extends QueueConsumer implements InitializingBean { this.requestHelper = requestHelper.setLogger(log); } - // --- external API --- @Override public void afterPropertiesSet() { -// this.profileDocumentMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); -// this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); callback(RelationNewRequest.class) .setFunction(this::relationNew) @@ -120,7 +117,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { RelationNewRequest req = relationNewBaseRequest.getRequestPayload(); log.debug("relation-new request received, BaseRequest.id = {}", relationNewBaseRequest.getId()); - { //проверка заполнен ли serviceStatus + { String serviceStatus = req.getServiceStatus(); if (serviceStatus == null || serviceStatus.isEmpty()) { Company company = companyMap.getSingleObjectByID(req.getCompanyId()); @@ -129,7 +126,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { } } } - { // Валидация + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationNewBaseRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -170,7 +167,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { } relation.setConsumerId(req.getCompanyId()); - relation.setSupplierId(SPVB_ID); // 1 СПВБ + relation.setSupplierId(SPVB_ID); if (req.getServiceStatus() != null) { relation.setServiceStatus(req.getServiceStatus()); } else { @@ -187,7 +184,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { } } String service = serviceForCMC(req.getClearingMemberCategory()); - relation.setService(service); // MKR + relation.setService(service); relation.setServiceProduct(ServiceProduct.ZERO.getKey()); relation.setComment(req.getComment()); @@ -209,7 +206,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { log.debug("New relation.id={}", relation.getId()); relation.setConsumerId(companyId); - relation.setSupplierId(SPVB_ID); // 1 СПВБ + relation.setSupplierId(SPVB_ID); if (req.getServiceStatus() != null) { relation.setServiceStatus(req.getServiceStatus()); } else { @@ -221,7 +218,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { relation.setServiceStatus(toStatus); } String service = serviceForCMC(clearingMemberCategory); - relation.setService(service); // MKR + relation.setService(service); relation.setServiceProduct(ServiceProduct.ZERO.getKey()); relation.setComment(req.getComment()); @@ -287,12 +284,6 @@ public class RelationService extends QueueConsumer implements InitializingBean { .collect(Collectors.toList()); } - /** - * @param companyId - * @param service - * @param statusActive фильтр, если null - разрешает всё. - * @return - */ Relation selectRelation(ImdgTransaction tx, Long companyId, String service, Boolean statusActive) { Objects.requireNonNull(companyId, "companyId"); Objects.requireNonNull(service, "service"); @@ -319,7 +310,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { private synchronized RequestInfoUpdate relationUpdate(BaseRequest relationUpdateBaseRequest) { RelationUpdateRequest req = relationUpdateBaseRequest.getRequestPayload(); log.debug("relation-update request received, BaseRequest.id = {}", relationUpdateBaseRequest.getId()); - { // Валидация + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationUpdateBaseRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -339,12 +330,10 @@ public class RelationService extends QueueConsumer implements InitializingBean { boolean txOk = false; try { tx.beginTransaction(); - //relationUpdate0(tx, req, relation); // первоначальное ТЗ. - boolean needAddNewRelation = false; // call relationNew0(req, companyId, firstCMC); - if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(relation.getService())) { // relation B or I or V + boolean needAddNewRelation = false; + if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(relation.getService())) { if (companyCMCisCF) { - // 4.1. Если clearingMemberCategory = B or I or V и для этой компании установлены clearingMemberCategory = C or F: Relation relation1 = selectRelation(tx, companyId, MKR.getKey(), false); if (relation1 != null) { relationUpdate0WithResume(tx, req, relation1); @@ -353,13 +342,11 @@ public class RelationService extends QueueConsumer implements InitializingBean { } Relation relation2 = selectRelation(tx, companyId, MKR.getKey(), true); if (relation2 != null) { - // nothing } else { needAddNewRelation = true; } } if (!companyCMCisCF) { - // 4.3. Если clearingMemberCategory = B or I or V и для этой компании не установлены clearingMemberCategory = C or F: Relation relation1 = selectRelation(tx, companyId, MKR.getKey(), false); if (relation1 != null) { relationUpdate0WithResume(tx, req, relation1); @@ -368,19 +355,16 @@ public class RelationService extends QueueConsumer implements InitializingBean { } Relation relation2 = selectRelation(tx, companyId, MKR.getKey(), true); if (relation2 != null) { - // nothing } else { needAddNewRelation = true; } Relation relation3 = selectRelation(tx, companyId, FOND.getKey(), null); if (relation3 != null) { - // nothing relationClose0(tx, relation3); } } - } else if (FOND.equalsByKey(relation.getService())) { // relation C or F + } else if (FOND.equalsByKey(relation.getService())) { if (companyCMCisBIV) { - // 4.2. Если clearingMemberCategory = C or F и для этой компании установлены clearingMemberCategory = B or I or V: Relation relation1 = selectRelation(tx, companyId, FOND.getKey(), false); if (relation1 != null) { relationUpdate0WithResume(tx, req, relation1); @@ -389,13 +373,11 @@ public class RelationService extends QueueConsumer implements InitializingBean { } Relation relation2 = selectRelation(tx, companyId, FOND.getKey(), true); if (relation2 != null) { - // nothing } else { needAddNewRelation = true; } } if (!companyCMCisBIV) { - // 4.4. Если clearingMemberCategory = C or F и для этой компании установлены не clearingMemberCategory = B or I or V: Relation relation1 = selectRelation(tx, companyId, FOND.getKey(), false); if (relation1 != null) { relationUpdate0WithResume(tx, req, relation1); @@ -404,7 +386,6 @@ public class RelationService extends QueueConsumer implements InitializingBean { } Relation relation2 = selectRelation(tx, companyId, FOND.getKey(), true); if (relation2 != null) { - // nothing } else { needAddNewRelation = true; } @@ -414,7 +395,6 @@ public class RelationService extends QueueConsumer implements InitializingBean { } } } else { - // unknown type relationUpdate0(tx, req, relation); } @@ -440,7 +420,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { if (req.getServiceStatus() != null) { log.debug("To relation {} set serivceStatus=\"{}\" by user request.", relation.getId(), req.getServiceStatus()); relation.setServiceStatus(req.getServiceStatus()); - } else { // never - см. валидатор relationUpdateRequestValidator + } else { if (relation.getConsumerId() == null) { log.warn("Relation[{}]. consumerId was null", relation.getId()); } @@ -500,7 +480,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { private synchronized RequestInfoUpdate relationDelete(BaseRequest relationDeleteBaseRequest) { CommonDeleteRequest req = relationDeleteBaseRequest.getRequestPayload(); log.debug("relation-delete request received, BaseRequest.id = {}", relationDeleteBaseRequest.getId()); - { // Валидация + { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationDeleteBaseRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -518,13 +498,9 @@ public class RelationService extends QueueConsumer implements InitializingBean { boolean companyCMCisCF = companyCMC.contains(ClearingCategory.C.getKey()) || companyCMC.contains(ClearingCategory.F.getKey()); if (companyCMCisBIV && MKR.equalsByKey(relation.getService())) { - // relation не изменяем } else if (companyCMCisCF && FOND.equalsByKey(relation.getService())) { - // relation не изменяем } else { - // удалить. } - // else { ImdgTransaction tx = imdgProvider.newTransaction(); boolean txOk = false; @@ -559,9 +535,6 @@ public class RelationService extends QueueConsumer implements InitializingBean { return null; } - - // --- internal API --- - protected void createNewRelation(ImdgTransaction transaction, Long companyId, ClearingMemberCategory clearingMemberCategory) { Objects.requireNonNull(companyId, "companyId"); Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); @@ -588,7 +561,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { log.debug("Update exist relation.id={}", relation.getId()); } relation.setConsumerId(companyId); - relation.setSupplierId(SPVB_ID); // 1 СПВБ + relation.setSupplierId(SPVB_ID); relation.setServiceStatus(Objects.requireNonNull(workflowStatus).getKey()); relation.setService(serviceStatus); relation.setServiceProduct(ServiceProduct.ZERO.getKey()); @@ -596,24 +569,13 @@ public class RelationService extends QueueConsumer implements InitializingBean { relationMap.insert(relation); } - /** - * Приходит от ClearingMemberCategory - */ protected void cancelRelation(ImdgTransaction transaction, Long companyId, ClearingMemberCategory clearingMemberCategory) { log.debug("Cancelling relations for companyId={} and clearingMemberCategory {}", companyId, clearingMemberCategory == null ? null : clearingMemberCategory.getClearingMemberCategory()); Objects.requireNonNull(companyId, "companyId"); Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); -// String serviceStatus = null; -// if (clearingMemberCategory == null) { -// log.warn("clearingMemberCategory not set for companyId={}", companyId); -// } else { -// ClearingCategory clearingCategory = getEnumByKey(ClearingCategory.class, clearingMemberCategory.getClearingMemberCategory()); -// serviceStatus = serviceForCMC(clearingCategory).getKey(); -// } Collection companyCMC = selectCompanyClearingMemberCategory(null, companyId); if (companyCMC.contains(clearingMemberCategory.getClearingMemberCategory())) { - // never log.warn("ClearingMemberCategory \"{}\" already exist in set for company {}.", clearingMemberCategory.getClearingMemberCategory(), companyId); } boolean companyCMCisBIV = companyCMC.contains(ClearingCategory.B.getKey()) || companyCMC.contains(ClearingCategory.I.getKey()) @@ -626,13 +588,10 @@ public class RelationService extends QueueConsumer implements InitializingBean { log.debug("Relation for clearingMemberCategory.id={} {} not found", clearingMemberCategory.getId(), clearingMemberCategory.getClearingMemberCategory()); } else { if (companyCMCisBIV && MKR.equalsByKey(relation.getService())) { - // relation не изменяем log.debug("Relation {} {} lost for ClearingMemberCategory \"{}\".", relation.getId(), relation.getService(), clearingMemberCategory.getClearingMemberCategory()); } else if (companyCMCisCF && FOND.equalsByKey(relation.getService())) { - // relation не изменяем log.debug("Relation {} {} lost for ClearingMemberCategory \"{}\".", relation.getId(), relation.getService(), clearingMemberCategory.getClearingMemberCategory()); } else { - // удалить. log.debug("Block exist relation.id={}", relation.getId()); relation.setUpdated(Instant.now()); relation.setServiceStatus(Closed.getKey()); @@ -669,18 +628,12 @@ public class RelationService extends QueueConsumer implements InitializingBean { log.debug("New Relation[{}] updated.", relation.getId()); } - /** - * @param company - * @param oldStatus - * @param newStatus WorkflowStatus.Active - при возобналвении; WorkflowStatus.Blocked - при блокировки/расторжении - */ public void onChangeWorkflowStatus(ImdgTransaction transaction, Company company, String oldStatus, String newStatus) throws ValidationException { log.debug("Company id={} status changed from {} to {}", company.getId(), oldStatus, company.getWorkflowStatus()); onChangeWorkflowStatusOnlyRelationChange(transaction, company, newStatus); if (WorkflowStatus.Blocked.equalsByKey(newStatus)) { - // IV - сообщения на добавления документа расторжения договора CompanyErrors hasError = accountNotification.accountTerminationNotification(company.getId()); if (hasError != null) { log.warn("Can not block company, cause error {}", hasError); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/validation/CompanySymbolNotExistRule.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/validation/CompanySymbolNotExistRule.java index b2d477732..197ddca25 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/validation/CompanySymbolNotExistRule.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/validation/CompanySymbolNotExistRule.java @@ -16,9 +16,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.Optional; -/** - * Проверка наличия компании с переданными в запросе companySymbol и companySymbolCode (реквизиты) - */ public class CompanySymbolNotExistRule implements IValidationRule> { @Override public Optional validate(ImdgValidationContext context) { diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/validation/CompanySymbolOfSymbolNewRequestNotExistRule.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/validation/CompanySymbolOfSymbolNewRequestNotExistRule.java index f8dba7678..c9f14c880 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/validation/CompanySymbolOfSymbolNewRequestNotExistRule.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/validation/CompanySymbolOfSymbolNewRequestNotExistRule.java @@ -13,9 +13,6 @@ import java.util.Collection; import java.util.Map; import java.util.Optional; -/** - * Проверка наличия CompanySymbols с переданными в запросе companySymbol и companyId - */ public class CompanySymbolOfSymbolNewRequestNotExistRule implements IValidationRule> { @Override public Optional validate(ImdgValidationContext context) { diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java index 3767a109c..0c3da7137 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ClearingMemberCategoryServiceTest.java @@ -15,7 +15,6 @@ import ru.clearing.platform.dictionary.ClearingCategoryDictionary; import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.*; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryNewRequest; @@ -98,7 +97,6 @@ class ClearingMemberCategoryServiceTest { @Test void clearingMemberCategoryNew() throws InterruptedException { - //ARRANGE String clearingMemberCategory = CLEARING_CATEGORY_DICT_CODE; ClearingMemberCategoryNewRequest memberCategoryNewRequest = new ClearingMemberCategoryNewRequest(); memberCategoryNewRequest.setClearingMemberCategory(clearingMemberCategory); @@ -107,29 +105,17 @@ class ClearingMemberCategoryServiceTest { ClearingMemberCategory predictableClearingMemberCategory = new ClearingMemberCategory(); predictableClearingMemberCategory.setCompanyId(COMPANY_ID); predictableClearingMemberCategory.setClearingMemberCategory(clearingMemberCategory); - - //ACT String jsonString = getJsonStringForNew(memberCategoryNewRequest, ID); addRecordToKafka((MockConsumer) clearingMemberCategoryService.getConsumer(), TOPIC_MEMBER_CATEGORY_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ClearingMemberCategory resultNew = memberCategoryImdg.getFirstObjectBySQL(String.format("clearingMemberCategory = %s", clearingMemberCategory)); predictableClearingMemberCategory.setId(resultNew.getId()); MEMBER_CATEGORY_MATCHER.assertMatch(resultNew, predictableClearingMemberCategory); } - /** - * {@link ClearingMemberCategoryService#clearingMemberCategoryUpdate(BaseRequest)}
- * Тест проверяет обновление сущности {@link ClearingMemberCategory} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ClearingMemberCategoryUpdateRequest}:
- * {@link ClearingMemberCategoryUpdateRequest#id} - Идентификатор записи
- * {@link ClearingMemberCategoryUpdateRequest#clearingMemberCategory} - 1234
- */ @Test void clearingMemberCategoryUpdate() throws InterruptedException { - //ARRANGE String clearingMemberCategory = CLEARING_CATEGORY_DICT_CODE; ClearingMemberCategory existsClearingMemberCategory = new ClearingMemberCategory(); existsClearingMemberCategory.setClearingMemberCategory("0000"); @@ -144,27 +130,16 @@ class ClearingMemberCategoryServiceTest { predictableClearingMemberCategory.setCompanyId(COMPANY_ID); predictableClearingMemberCategory.setId(id); predictableClearingMemberCategory.setClearingMemberCategory(clearingMemberCategory); - - //ACT String jsonString = getJsonStringForUpdate(memberCategoryUpdateRequest, id); addRecordToKafka((MockConsumer) clearingMemberCategoryService.getConsumer(), TOPIC_MEMBER_CATEGORY_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(id, mockProducer); ClearingMemberCategory resultUpdating = memberCategoryImdg.getSingleObjectByID(id); MEMBER_CATEGORY_MATCHER.assertMatch(resultUpdating, predictableClearingMemberCategory); } - /** - * {@link ClearingMemberCategoryService#clearingMemberCategoryDelete(BaseRequest)}
- * Тест проверяет удаление сущности {@link ClearingMemberCategory} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- * {@link CommonDeleteRequest#id} - Идентификатор записи
- */ @Test void clearingMemberCategoryDelete() throws InterruptedException { - //ARRANGE String clearingMemberCategory = "0000"; ClearingMemberCategory existsClearingMemberCategory = new ClearingMemberCategory(); existsClearingMemberCategory.setClearingMemberCategory(clearingMemberCategory); @@ -173,12 +148,8 @@ class ClearingMemberCategoryServiceTest { CommonDeleteRequest memberCategoryDeleteRequest = new CommonDeleteRequest(); memberCategoryDeleteRequest.setId(id); - - //ACT String jsonString = getJsonStringForDelete(memberCategoryDeleteRequest, id); addRecordToKafka((MockConsumer) clearingMemberCategoryService.getConsumer(), TOPIC_MEMBER_CATEGORY_DELETE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(id, mockProducer); ClearingMemberCategory resultDeleting = memberCategoryImdg.getFirstObjectBySQL(String.format("clearingMemberCategory = %s", clearingMemberCategory)); diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java index bf5cdf895..4df44147c 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java @@ -17,7 +17,6 @@ import ru.spcex.clearing.company.config.validation.CompanyValidationConfig; import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyInfoUpdateRequest; import ru.spcex.clearing.test.MatcherFactory; @@ -71,8 +70,6 @@ class CompanyInfoServiceTest { private void init() { waitAvailableImdgProviderAndAddAdminWithDefaultId(); companyImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Company, Company.class); - - // Словари для теста, применяются в ValidationConfig putToDictionary(IMDGDistributedNames.Map_WorkflowStatusDictionary, new WorkflowStatusDictionary(), "ACTV"); putToDictionary(IMDGDistributedNames.Map_CompanySymbolDictionary, new CompanySymbolDictionary(), "CLRC"); putToDictionary(IMDGDistributedNames.Map_CorporationSoleTypeDictionary, new CorporationSoleTypeDictionary(), "GDIR"); @@ -82,7 +79,7 @@ class CompanyInfoServiceTest { putToDictionary(IMDGDistributedNames.Map_OrganizationTypeDictionary, new OrganizationTypeDictionary(), "NCRD"); } - private void putToDictionary(String mapName, D object, String code) { + private void putToDictionary(String mapName, D object, String code) { Imdg dMap = (Imdg) hazelcastServiceTest.getImdg(mapName, object.getClass()); object.setId(2L); object.setCode(code); @@ -90,24 +87,8 @@ class CompanyInfoServiceTest { dMap.insert(object); } - /** - * {@link CompanyInfoService#companyInfoUpdate(BaseRequest)}
- * Тест проверяет обновление сущности {@link CompanyInfo} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CompanyInfoUpdateRequest}:
- * {@link CompanyInfoUpdateRequest#id} - Идентификатор записи
- * {@link CompanyInfoUpdateRequest#corporationSoleType} - GDIR
- * {@link CompanyInfoUpdateRequest#countryCode} - RUS
- * {@link CompanyInfoUpdateRequest#description} - updated description
- * {@link CompanyInfoUpdateRequest#professionalSign} - ALWD
- * {@link CompanyInfoUpdateRequest#legalKind} - JURD
- * {@link CompanyInfoUpdateRequest#organizationType} - NCRD
- * {@link CompanyInfoUpdateRequest#residence} - RUS
- * {@link CompanyInfoUpdateRequest#shortNameEng} - updated shortNameEng
- * {@link CompanyInfoUpdateRequest#fullNameEng} - updated fullNameEng
- */ @Test void companyInfoUpdate() throws InterruptedException { - //ARRANGE CompanyInfo existsCompanyInfo = new CompanyInfo(); existsCompanyInfo.setId(ID); existsCompanyInfo.setCompanyId(ID); @@ -154,13 +135,9 @@ class CompanyInfoServiceTest { predictableCompanyInfo.setResidence("RUS"); predictableCompanyInfo.setShortNameEng("updated shortNameEng"); predictableCompanyInfo.setFullNameEng("updated fullNameEng"); - - //ACT String jsonString = getJsonStringForUpdate(companyInfoUpdateRequest, ID); addRecordToKafka((MockConsumer) companyInfoService.getConsumer(), TOPIC_COMPANY_INFO_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Company resultUpdating = companyImdg.getSingleObjectByID(ID); diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java index bb8a4bccc..4a4099be1 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java @@ -21,7 +21,6 @@ import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest; @@ -109,15 +108,8 @@ class CompanyServiceTest { } } - /** - * {@link CompanyService#deleteCompany(BaseRequest)}
- * Тест проверяет удаление сущности {@link Company} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- * {@link CommonDeleteRequest#id} - Идентификатор записи
- */ @Test void deleteCompany() throws InterruptedException { - //ARRANGE final Long ID = 101L; Company existsCompany = new Company(); existsCompany.setId(ID); @@ -126,21 +118,13 @@ class CompanyServiceTest { CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); commonDeleteRequest.setId(ID); - - //ACT String jsonString = getJsonStringForDelete(commonDeleteRequest, ID); addRecordToKafka((MockConsumer) companyService.getConsumer(), TOPIC_COMPANY_DELETE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); - - //Company resultDeleting = companyImdg.getSingleObjectByID(ID); Company resultDeleting = companyImdg.getFirstObjectBySQL("id=" + ID); Assertions.assertEquals(WorkflowStatus.Blocked.getKey(), resultDeleting.getWorkflowStatus()); { - // Hazelcast 3.12.4 возможно имеет ошибку с NearCache (https://github.com/hazelcast/hazelcast/issues/16577) и её устранили в версии 3.12.7+. - // метод устранения проблемы: вместо return map.get(paramLong); использовать return map.getEntryView(paramLong).getValue(); Company resultDeletingDirectGet = companyImdg.getSingleObjectByID(ID); if (!resultDeleting.getWorkflowStatus().equals(resultDeletingDirectGet.getWorkflowStatus())) { System.out.println("WARNING: Hazelcast error: WorkflowStatus " + resultDeletingDirectGet.getWorkflowStatus() + " and " + resultDeleting.getWorkflowStatus() + " together!"); @@ -149,32 +133,20 @@ class CompanyServiceTest { } - /** - * {@link CompanyService#createCompany(BaseRequest)}
- * Тест проверяет удаление сущности {@link Company} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- * {@link CommonDeleteRequest#id} - Идентификатор записи
- */ @Test void newCompany() throws InterruptedException { - //ARRANGE final Long ID = 102L; final String DESTINATION_COMPANY_NEW = Consts.DESTINATION_COMPANY_NEW; companyImdg.size(); CompanyNewRequest companyNewRequest = new CompanyNewRequest(); -// companyNewRequest.setId(ID); companyNewRequest.setCompanySymbol(CompanySymbol.CLRC.getKey()); companyNewRequest.setCompanySymbolValue("CLR-symbol ipo"); companyNewRequest.setShortName("ClrIPO"); companyNewRequest.setFullName("Clearing IPO"); companyNewRequest.setWorkflowStatus(WorkflowStatus.Active.getKey()); - - //ACT String jsonString = getJsonStringForNew(companyNewRequest, ID); addRecordToKafka((MockConsumer) companyService.getConsumer(), DESTINATION_COMPANY_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Company resultNew = companyImdg.getFirstObjectByFieldValues(Map.of("ShortName", "ClrIPO")); @@ -196,18 +168,13 @@ class CompanyServiceTest { companySymbolsImdg.insert(existCompanySymbols); CompanyNewRequest companyNewRequest = new CompanyNewRequest(); -// companyNewRequest.setId(ID); companyNewRequest.setCompanySymbol(CompanySymbol.CIO.getKey()); companyNewRequest.setCompanySymbolValue("test_value"); companyNewRequest.setShortName("ClrIPO"); companyNewRequest.setFullName("Clearing IPO"); companyNewRequest.setWorkflowStatus(WorkflowStatus.Active.getKey()); - - //ACT String jsonString = getJsonStringForNew(companyNewRequest, ID); addRecordToKafka((MockConsumer) companyService.getConsumer(), DESTINATION_COMPANY_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingWhenTryAddRecordAndCheckError(ID, mockProducer, String.valueOf(CompanyErrors.CompanyWithCompanySymbolAlreadyExist.getId()), diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java index dffd3056f..8e5bca6ac 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java @@ -17,7 +17,6 @@ import ru.spcex.clearing.company.config.validation.CompanyValidationConfig; import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolUpdateRequest; import ru.spcex.clearing.test.MatcherFactory; @@ -96,18 +95,8 @@ class CompanySymbolServiceTest { } } - /** - * {@link CompanySymbolService#companySymbolUpdate(BaseRequest)}
- * Тест проверяет обновление сущности {@link CompanySymbols} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CompanySymbolUpdateRequest}:
- * {@link CompanySymbolUpdateRequest#id} - Идентификатор записи
- * {@link CompanySymbolUpdateRequest#companyId} - Идентификатор записи
- * {@link CompanySymbolUpdateRequest#companySymbol} - 1234
- * {@link CompanySymbolUpdateRequest#companySymbolValue} - new companySymbolValue
- */ @Test void companySymbolUpdate() throws InterruptedException { - //ARRANGE String companySymbolValue = "newCompanySymbolValue"; CompanySymbols existsCompanySymbols = new CompanySymbols(); existsCompanySymbols.setId(ID); @@ -127,12 +116,8 @@ class CompanySymbolServiceTest { predictableCompanySymbols.setCompanyId(ID); predictableCompanySymbols.setCompanySymbol("CIO"); predictableCompanySymbols.setCompanySymbolValue(companySymbolValue); - - //ACT String jsonString = getJsonStringForUpdate(companySymbolUpdateRequest, ID); addRecordToKafka((MockConsumer) companySymbolService.getConsumer(), TOPIC_COMPANY_SYMBOL_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); CompanySymbols resultUpdating = companySymbolsImdg.getFirstObjectBySQL(String.format("companySymbolValue = %s", companySymbolValue)); diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ContactServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ContactServiceTest.java index 631608641..e09b09613 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ContactServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ContactServiceTest.java @@ -15,7 +15,6 @@ import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.ContactValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactUpdateRequest; @@ -84,7 +83,6 @@ class ContactServiceTest { } @Test void contactNew() throws InterruptedException { - //ARRANGE ContactNewRequest contactNewRequest = new ContactNewRequest(); contactNewRequest.setCompanyId(COMPANY_ID); contactNewRequest.setContactType(ContactTypes.adrs.getKey()); @@ -94,12 +92,8 @@ class ContactServiceTest { predictableContact.setCompanyId(COMPANY_ID); predictableContact.setContactType(ContactTypes.adrs.getKey()); predictableContact.setContactValue("value"); - - //ACT String jsonString = getJsonStringForNew(contactNewRequest, ID); addRecordToKafka((MockConsumer) contactService.getConsumer(), TOPIC_CONTACT_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Contact resultNew = contactImdg.getAllValues().iterator().next(); @@ -107,17 +101,8 @@ class ContactServiceTest { CONTACT_MATCHER.assertMatch(resultNew, predictableContact); } - /** - * {@link ContactService#contactUpdate(BaseRequest)}
- * Тест проверяет обновление сущности {@link Contact} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ContactUpdateRequest}:
- * {@link ContactUpdateRequest#id} - Идентификатор записи
- * {@link ContactUpdateRequest#contactType} - ADDR
- * {@link ContactUpdateRequest#contactValue} - new ContactValue
- */ @Test void contactUpdate() throws InterruptedException { - //ARRANGE Long existContactID; Contact existsContact = new Contact(); existsContact.setCompanyId(COMPANY_ID); @@ -135,12 +120,8 @@ class ContactServiceTest { predictableContact.setCompanyId(COMPANY_ID); predictableContact.setContactType(ContactTypes.adrs.getKey()); predictableContact.setContactValue("new ContactValue"); - - //ACT String jsonString = getJsonStringForUpdate(contactUpdateRequest, existContactID); addRecordToKafka((MockConsumer) contactService.getConsumer(), TOPIC_CONTACT_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(existContactID, mockProducer); Contact resultUpdating = contactImdg.getSingleObjectByID(existContactID); diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/MultiCompanyServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/MultiCompanyServiceTest.java index 67bd1f7f9..4e7589b8e 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/MultiCompanyServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/MultiCompanyServiceTest.java @@ -114,7 +114,7 @@ class MultiCompanyServiceTest { doc.setId(10002L); doc.setCompanyId(COMPANY_ID); doc.setDocumentType(DocumentTypes.form.getKey()); - doc.setIssueDate(LocalDate.now()); // тест может показать ложное срабатывание в 00:00:00.001 + doc.setIssueDate(LocalDate.now()); profileDocumentImdg.insert(doc); } diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ProfileDocumentServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ProfileDocumentServiceTest.java index acf59e7d6..38f1b9dce 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ProfileDocumentServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/ProfileDocumentServiceTest.java @@ -15,7 +15,6 @@ import ru.clearing.platform.dictionary.DocumentTypeDictionary; import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.*; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentNewRequest; @@ -110,14 +109,8 @@ class ProfileDocumentServiceTest { documentTypeDictionaryImdg.insert(documentTypeDictionary1); } - /** - * {@link ProfileDocumentService#profileDocumentNew(BaseRequest)}
- * Тест проверяет обновление сущности {@link ProfileDocument} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ProfileDocumentNewRequest}:
- */ @Test void newProfileDocument() { - //ARRANGE ProfileDocumentNewRequest profileDocumentNewRequest = new ProfileDocumentNewRequest(); profileDocumentNewRequest.setCompanyId(COMPANY_ID); profileDocumentNewRequest.setDocumentType(TEST_DOCUMENT_TYPE_ID); @@ -146,13 +139,9 @@ class ProfileDocumentServiceTest { predictableProfileDocument.setValidFromDate(profileDocumentNewRequest.getValidFromDate()); predictableProfileDocument.setValidToDate(profileDocumentNewRequest.getValidToDate()); predictableProfileDocument.setLink(profileDocumentNewRequest.getLink()); - - //ACT String jsonString = getJsonStringForNew(profileDocumentNewRequest, ID); addRecordToKafka((MockConsumer) profileDocumentService.getConsumer(), TOPIC_DESTINATION_PROFILE_DOCUMENT_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ProfileDocument resultNew = profileDocumentMap.getFirstObjectBySQL(String.format("companyId = %d", COMPANY_ID)); predictableProfileDocument.setId(resultNew.getId()); @@ -161,7 +150,6 @@ class ProfileDocumentServiceTest { @Test void updateProfileDocument() { - //ARRANGE ProfileDocument existsProfileDocument = new ProfileDocument(); existsProfileDocument.setId(ID); existsProfileDocument.setCompanyId(COMPANY_ID); @@ -207,23 +195,17 @@ class ProfileDocumentServiceTest { profileDocumentUpdateRequest.setValidFromDate(LocalDate.now()); profileDocumentUpdateRequest.setValidToDate(LocalDate.now().plus(1, ChronoUnit.DAYS)); profileDocumentUpdateRequest.setLink("new_link"); - - //ACT String jsonString = getJsonStringForUpdate(profileDocumentUpdateRequest, ID); addRecordToKafka((MockConsumer) profileDocumentService.getConsumer(), TOPIC_DESTINATION_PROFILE_DOCUMENT_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ProfileDocument resultUpdate = profileDocumentMap.getFirstObjectBySQL(String.format("companyId = %d", COMPANY_ID)); -// predictableProfileDocument.setId(resultUpdate.getId()); PROFILE_DOCUMENT_MATCHER.assertMatch(resultUpdate, predictableProfileDocument); } @Test void deleteProfileDocument() { - //ARRANGE ProfileDocument existsProfileDocument = new ProfileDocument(); existsProfileDocument.setId(PROFILE_DOCUMENT_ID); existsProfileDocument.setCompanyId(COMPANY_ID); @@ -242,13 +224,9 @@ class ProfileDocumentServiceTest { CommonDeleteRequest profileDocumentDeleteRequest = new CommonDeleteRequest(); profileDocumentDeleteRequest.setId(PROFILE_DOCUMENT_ID); - - //ACT String jsonString = getJsonStringForUpdate(profileDocumentDeleteRequest, ID); addRecordToKafka((MockConsumer) profileDocumentService.getConsumer(), TOPIC_DESTINATION_PROFILE_DOCUMENT_DELETE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ProfileDocument resultUpdate = profileDocumentMap.getSingleObjectByID(PROFILE_DOCUMENT_ID); Assertions.assertNull(resultUpdate); diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java index 520291439..484c8eba6 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java @@ -119,7 +119,6 @@ class RelationServiceTest { @Test void newRelation() { - //ARRANGE clearAllInImdg(relationMap); RelationNewRequest relationNewRequest = new RelationNewRequest(); relationNewRequest.setCompanyId(COMPANY_ID); @@ -134,22 +133,17 @@ class RelationServiceTest { predictableRelation.setServiceProduct("ZERO"); predictableRelation.setSupplierId(1L); predictableRelation.setServiceStatus("ACTV"); - - //ACT String jsonString = getJsonStringForNew(relationNewRequest, ID); addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); - Relation resultNew = relationMap.getFirstObjectBySQL("serviceStatus=ACTV"); // String.format("supplierId = %d", COMPANY_ID)); + Relation resultNew = relationMap.getFirstObjectBySQL("serviceStatus=ACTV"); predictableRelation.setId(resultNew.getId()); RELATION_MATCHER.assertMatch(resultNew, predictableRelation); } @Test void updateRelation() { - //ARRANGE Relation existsRelation = new Relation(); existsRelation.setId(ID); existsRelation.setConsumerId(COMPANY_ID); @@ -173,23 +167,17 @@ class RelationServiceTest { relationUpdateRequest.setId(RELATION_ID); relationUpdateRequest.setComment("Another Me - ONE"); relationUpdateRequest.setServiceStatus("ACTV"); - - //ACT String jsonString = getJsonStringForUpdate(relationUpdateRequest, ID); addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Relation resultUpdate = relationMap.getFirstObjectBySQL(String.format("id = %d", RELATION_ID)); -// predictableProfileDocument.setId(resultUpdate.getId()); RELATION_MATCHER.assertMatch(resultUpdate, predictableRelation); } @Test void deleteProfileDocument() { - //ARRANGE Relation existsRelation = new Relation(); existsRelation.setId(ID); existsRelation.setConsumerId(COMPANY_ID); @@ -202,16 +190,11 @@ class RelationServiceTest { CommonDeleteRequest profileDocumentDeleteRequest = new CommonDeleteRequest(); profileDocumentDeleteRequest.setId(RELATION_ID); - - //ACT String jsonString = getJsonStringForUpdate(profileDocumentDeleteRequest, ID); addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_DELETE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Relation resultUpdate = relationMap.getSingleObjectByID(RELATION_ID); -// Assertions.assertNull(resultUpdate); assertEquals(WorkflowStatus.Blocked.getKey(), resultUpdate.getServiceStatus()); } } \ No newline at end of file diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/config/KafkaSenderConfig.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/config/KafkaSenderConfig.java index bd4994aca..5891ef24c 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/config/KafkaSenderConfig.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/config/KafkaSenderConfig.java @@ -19,7 +19,6 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import java.util.function.Supplier; -//отдельный конфиг для sender чтобы сделать required false @Configuration public class KafkaSenderConfig { Logger log = LoggerFactory.getLogger(getClass()); diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/ResultContainer.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/ResultContainer.java index 14f144e2f..f729884f2 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/ResultContainer.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/ResultContainer.java @@ -7,11 +7,8 @@ import java.io.File; import java.time.LocalDateTime; import java.util.UUID; -/** - * Контейнер для передачи результата между стадиями - */ public class ResultContainer { - private String sourceName; // имя инициатора (файла) + private String sourceName; private UUID uuid; private Table tableForExport; private File fileForExport; diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/Table.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/Table.java index 24ae62a8e..2d7fcb4de 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/Table.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/Table.java @@ -15,19 +15,10 @@ public enum Table { S_DF56("DF-56", IMDGDistributedNames.Map_SDf56, SDf56.class); - /** - * Префикс имени файла для экспорта - */ private final String filePrefix; - /** - * Имя мапы hazelcast - */ private final String hazelcastMapName; - /** - * Класс объекта - */ private final Class entityClass; diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java index 582fdc00e..65165a2a1 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java @@ -23,9 +23,6 @@ import java.util.HashMap; import java.util.Map; import java.util.Objects; -/** - * Выгрузка данных из мапы hazelcast и их запись в файлы - */ @Component public class ExportFromHazelcast extends Stage implements InitializingBean { private final ExportDBFServiceSettings settings; @@ -129,19 +126,12 @@ public class ExportFromHazelcast extends Stage implements InitializingBean { return StageResult.OK; } - /** - * 1. Конструирует структуру DBF файлов для дальнейшей записи - * 2. Проверяет кодировку из настройки dbf.encoding - */ @Override public void afterPropertiesSet() { initExportFileStructure(); initDBFCharset(); } - /** - * Инициализация структуры выходных файлов (заголовки столбцов) - */ private void initExportFileStructure() { dbfFieldsForTable.put(Table.S_DF02, s_df02_converter.getDBFHeaders()); dbfFieldsForTable.put(Table.S_DF03, s_df03_converter.getDBFHeaders()); diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/Journal.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/Journal.java index f841d67d8..e2ed5faed 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/Journal.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/Journal.java @@ -12,8 +12,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.system.JournalSdf; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import java.io.File; -import java.io.IOException; -import java.nio.file.Files; import java.util.EnumMap; import java.util.Map; import java.util.function.Supplier; @@ -42,7 +40,6 @@ public class Journal extends Stage implements InitializingBean { return StageResult.COMPLETE; } JournalSdf journalSdf = new JournalSdf(); - //todo read file attibutes journalSdf.setRegistrationDate(resultContainer.getRegistrationDateTime().toLocalDate()); journalSdf.setRegistrationTime(resultContainer.getRegistrationDateTime().toLocalTime()); journalSdf.setRegistrationNumber(resultContainer.getGroupId()); @@ -50,16 +47,7 @@ public class Journal extends Stage implements InitializingBean { journalSdf.setDossierNumber(dossierNumber.get(resultContainer.getTableForExport())); journalSdf.setResultStatus(StageResult.ERROR.equals(resultContainer.getLastStageResult()) ? "NACK" : "ACK"); kafkaSender.get().sendRequestToQueue(EXPORT_COMPLETED, journalSdf); - - //удалим временный файл File dbfFile = resultContainer.getFileForExport(); -// try { -// log.debug("Uuid {}, delete temp file \"{}\"", resultContainer.getUuid(), dbfFile); -// Files.deleteIfExists(dbfFile.toPath()); -// } catch (IOException e) { -// throw new RuntimeException(e); -// } - // Надо сохранять для разбора истории и отладки по логам log.debug("Uuid {}, save temp file \"{}\"", resultContainer.getUuid(), dbfFile); return StageResult.COMPLETE; } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/PrepareDBFFile.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/PrepareDBFFile.java index 74775fae4..cb3946c2b 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/PrepareDBFFile.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/PrepareDBFFile.java @@ -20,9 +20,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -/** - * Создание DBF файла - */ @Component public class PrepareDBFFile extends Stage implements InitializingBean { public static final String SECTION = "S"; diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/CommandService.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/CommandService.java index d1a7c0bbe..4f2c85adf 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/CommandService.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/CommandService.java @@ -44,7 +44,7 @@ public class CommandService extends QueueConsumer implements InitializingBean { .setConsumer(r -> processSpecial(Table.S_DF02, r)) .forDestination(Consts.SDF02_PROCESS, callbacks::put); callback(SdfClearingRequest.class) - .setConsumer(r -> processSpecial(Table.S_DF03, r)) // todo необходимо в отдельную папку: "в отдельную директорию SettlementHouse_Fail (чтобы не отдавать такие файлы в ПРЦ" + .setConsumer(r -> processSpecial(Table.S_DF03, r)) .forDestination(Consts.SDF03_PROCESS, callbacks::put); callback(SdfClearingRequest.class) .setConsumer(r -> processSpecial(Table.S_DF05, r)) diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/DFConverter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/DFConverter.java index c8c15f2ad..dd954424a 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/DFConverter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/DFConverter.java @@ -15,11 +15,6 @@ public abstract class DFConverter { public abstract Object[] toObjectArray(T entity); public abstract DBFField[] getDBFHeaders(); - /** - * Приведение типов в соответствие (для записи) - * @param src исходный объект - * @return объект другого типа, если тип не поддерживается dbfWriter - */ protected Object typeMatch(Object src) { if (src instanceof Instant srcInstant) return Timestamp.from(srcInstant); if (src instanceof LocalDate srcLocalDate) return Date.valueOf(srcLocalDate); diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF07_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF07_Converter.java index 765bd53a6..018ff7514 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF07_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF07_Converter.java @@ -5,7 +5,6 @@ import com.linuxense.javadbf.DBFField; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.sdf.SDf07; -import java.math.BigDecimal; import java.util.LinkedList; import java.util.List; @@ -45,7 +44,7 @@ public class S_DF07_Converter extends DFConverter { dbfFields.add(new DBFField("MARKET", DBFDataType.CHARACTER, 1)); dbfFields.add(new DBFField("TYPE", DBFDataType.CHARACTER, 2)); dbfFields.add(new DBFField("DEAL", DBFDataType.CHARACTER, 10)); - dbfFields.add(new DBFField("CLIENTN", DBFDataType.CHARACTER, 254)); // если поставить длину 255, то: Length for CHARACTER must be between 1 and 254 + dbfFields.add(new DBFField("CLIENTN", DBFDataType.CHARACTER, 254)); dbfFields.add(new DBFField("INN", DBFDataType.CHARACTER, 12)); dbfFields.add(new DBFField("BIC", DBFDataType.CHARACTER, 9)); dbfFields.add(new DBFField("SPEC", DBFDataType.CHARACTER, 254)); diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF51_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF51_Converter.java index 41587938f..31865d37d 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF51_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF51_Converter.java @@ -15,7 +15,7 @@ public class S_DF51_Converter extends DFConverter { public Object[] toObjectArray(SDf51 entity) { List values = new LinkedList<>(); values.add(typeMatch(entity.getNumber())); - values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME + values.add(typeMatch(convertStrToLong(entity.getDatetime()))); return values.toArray(Object[]::new); } @@ -23,7 +23,7 @@ public class S_DF51_Converter extends DFConverter { public DBFField[] getDBFHeaders() { List dbfFields = new LinkedList<>(); dbfFields.add(new DBFField("NUMBER", DBFDataType.CHARACTER, 10)); - dbfFields.add(new DBFField("DATETIME", DBFDataType.NUMERIC, 13)); // UNIX TIME + dbfFields.add(new DBFField("DATETIME", DBFDataType.NUMERIC, 13)); return dbfFields.toArray(DBFField[]::new); } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF56_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF56_Converter.java index b9b0e8fb6..527d1b295 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF56_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF56_Converter.java @@ -14,8 +14,8 @@ public class S_DF56_Converter extends DFConverter { public Object[] toObjectArray(SDf56 entity) { List values = new LinkedList<>(); values.add(typeMatch(entity.getNumber())); - values.add(convertStrToBigDecimal(entity.getStart_datetime())); // UNIX DATE TIME - values.add(convertStrToBigDecimal(entity.getEnd_datetime())); // UNIX DATE TIME + values.add(convertStrToBigDecimal(entity.getStart_datetime())); + values.add(convertStrToBigDecimal(entity.getEnd_datetime())); values.add(typeMatch(entity.getAccount())); values.add(typeMatch(entity.getDeal())); return values.toArray(Object[]::new); diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/AbstractServiceTest.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/AbstractServiceTest.java index d4e8c0160..03d1673aa 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/AbstractServiceTest.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/AbstractServiceTest.java @@ -64,7 +64,6 @@ public abstract class AbstractServiceTest { Path path = Paths.get("src", "main", "resources"); String currentPath = path.toAbsolutePath().toString(); System.setProperty("spring.config.location", currentPath); -// Hazelcast.shutdownAll(); } protected void init() { diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplateTest.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplateTest.java index f560f5c11..53fe15e9f 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplateTest.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/logic/data/enums/FilenameTemplateTest.java @@ -25,10 +25,6 @@ class FilenameTemplateTest { List files = List.of(sftpFileInfo); int count = FilenameTemplate.df_section_dateTime.countSameFilesInDir("DF-02", files); assertEquals(1, count); - -// doReturn("DF-02_S_PRC230").when(lsEntry).getFilename(); -// count = FilenameTemplate.df_section_dateTime.countSameFilesInDir("DF-02", files); -// assertEquals(0, count); } @Test diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF02_Test.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF02_Test.java index 65ce96a4c..71e37a0e6 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF02_Test.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF02_Test.java @@ -29,9 +29,6 @@ class S_DF02_Test extends AbstractServiceTest { super.init(); } - /** - * Тест проверяет создание строк документа DBF .
- */ @Test void cdeateSdf() { Table table = Table.S_DF02; @@ -56,8 +53,6 @@ class S_DF02_Test extends AbstractServiceTest { sdfClearingRequest.setGroupId(generationId); String request = getJsonStringForNew(sdfClearingRequest, generationId); addRecordToKafka((MockConsumer) commandService.getConsumer(), Consts.SDF02_PROCESS, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF03_Test.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF03_Test.java index 02185e4a9..d7ab2cfcf 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF03_Test.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF03_Test.java @@ -29,9 +29,6 @@ class S_DF03_Test extends AbstractServiceTest { super.init(); } - /** - * Тест проверяет создание строк документа DBF .
- */ @Test void cdeateSdf() { Table table = Table.S_DF03; @@ -64,8 +61,6 @@ class S_DF03_Test extends AbstractServiceTest { sdfClearingRequest.setGroupId(generationId); String request = getJsonStringForNew(sdfClearingRequest, generationId); addRecordToKafka((MockConsumer) commandService.getConsumer(), Consts.SDF03_PROCESS, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF05_Test.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF05_Test.java index 6cd675cd1..8fcfaaad4 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF05_Test.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF05_Test.java @@ -32,9 +32,6 @@ class S_DF05_Test extends AbstractServiceTest { super.init(); } - /** - * Тест проверяет создание строк документа DBF .
- */ @Test void cdeateSdf() { Table table = Table.S_DF05; @@ -50,8 +47,6 @@ class S_DF05_Test extends AbstractServiceTest { sdfClearingRequest.setGroupId(generationId); String request = getJsonStringForNew(sdfClearingRequest, generationId); addRecordToKafka((MockConsumer) commandService.getConsumer(), Consts.SDF05_PROCESS, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF07_Test.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF07_Test.java index 52ff5b556..da9b8c079 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF07_Test.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF07_Test.java @@ -30,9 +30,6 @@ class S_DF07_Test extends AbstractServiceTest { super.init(); } - /** - * Тест проверяет создание строк документа DBF .
- */ @Test void cdeateSdf() { Table table = Table.S_DF07; @@ -55,8 +52,6 @@ class S_DF07_Test extends AbstractServiceTest { sdfClearingRequest.setGroupId(generationId); String request = getJsonStringForNew(sdfClearingRequest, generationId); addRecordToKafka((MockConsumer) commandService.getConsumer(), Consts.SDF07_PROCESS, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF51_Test.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF51_Test.java index ac4aa9048..2a266696c 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF51_Test.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF51_Test.java @@ -29,9 +29,6 @@ class S_DF51_Test extends AbstractServiceTest { super.init(); } - /** - * Тест проверяет создание строк документа DBF .
- */ @Test void cdeateSdf() { Table table = Table.S_DF51; @@ -45,8 +42,6 @@ class S_DF51_Test extends AbstractServiceTest { sdfClearingRequest.setGroupId(generationId); String request = getJsonStringForNew(sdfClearingRequest, generationId); addRecordToKafka((MockConsumer) commandService.getConsumer(), Consts.SDF51_PROCESS, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF53_Test.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF53_Test.java index 08e27f5dd..97ff48566 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF53_Test.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF53_Test.java @@ -14,7 +14,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.system.JournalSdf; import ru.spcex.platform.imdg.api.Imdg; import javax.annotation.PostConstruct; -import java.math.BigDecimal; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.timeout; @@ -30,9 +29,6 @@ class S_DF53_Test extends AbstractServiceTest { super.init(); } - /** - * Тест проверяет создание строк документа DBF .
- */ @Test void cdeateSdf() { Table table = Table.S_DF53; @@ -48,8 +44,6 @@ class S_DF53_Test extends AbstractServiceTest { sdfClearingRequest.setGroupId(generationId); String request = getJsonStringForNew(sdfClearingRequest, generationId); addRecordToKafka((MockConsumer) commandService.getConsumer(), Consts.SDF53_PROCESS, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF54_Test.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF54_Test.java index 0491a8c0d..6ef92e322 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF54_Test.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF54_Test.java @@ -29,9 +29,6 @@ class S_DF54_Test extends AbstractServiceTest { super.init(); } - /** - * Тест проверяет создание строк документа DBF .
- */ @Test void cdeateSdf() { Table table = Table.S_DF54; @@ -83,8 +80,6 @@ class S_DF54_Test extends AbstractServiceTest { sdfClearingRequest.setGroupId(generationId); String request = getJsonStringForNew(sdfClearingRequest, generationId); addRecordToKafka((MockConsumer) commandService.getConsumer(), Consts.SDF54_PROCESS, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF56_Test.java b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF56_Test.java index 4e7beff0d..6cca7d693 100644 --- a/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF56_Test.java +++ b/clearing-parent/dbf-exporter/src/test/java/ru/spcex/clearing/dbf/exporter/services/S_DF56_Test.java @@ -29,9 +29,6 @@ class S_DF56_Test extends AbstractServiceTest { super.init(); } - /** - * Тест проверяет создание строк документа DBF .
- */ @Test void cdeateSdf() { Table table = Table.S_DF56; @@ -48,8 +45,6 @@ class S_DF56_Test extends AbstractServiceTest { sdfClearingRequest.setGroupId(generationId); String request = getJsonStringForNew(sdfClearingRequest, generationId); addRecordToKafka((MockConsumer) commandService.getConsumer(), Consts.SDF56_PROCESS, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/config/settings/Store.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/config/settings/Store.java index a600f4717..288145328 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/config/settings/Store.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/config/settings/Store.java @@ -8,7 +8,6 @@ public class Store { private String outDir; private String outDirError; private boolean deleteSrcFiles = true; - //sftp settings private SftpInboundFolderSetting sftpIn; public String getSrcDir() { return srcDir; diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/ResultContainer.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/ResultContainer.java index fc5b7b7f2..505e2b6d5 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/ResultContainer.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/ResultContainer.java @@ -6,9 +6,6 @@ import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult; import java.io.File; import java.util.UUID; -/** - * Контейнер для передачи результата между стадиями - */ public class ResultContainer { private UUID uuid; private ETable dbfTable; diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/enums/ColumnType.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/enums/ColumnType.java index 12a7e0fac..9a070bdf1 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/enums/ColumnType.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/enums/ColumnType.java @@ -4,10 +4,6 @@ import com.linuxense.javadbf.DBFDataType; import java.sql.Types; -/** - * Типы данных в таблицах. - * Ставит в соответствие типы PostGRE и DBF - */ public enum ColumnType { VARCHAR(DBFDataType.CHARACTER, Types.VARCHAR), CHARACTER(DBFDataType.CHARACTER, Types.CHAR), diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/AbstractTable.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/AbstractTable.java index 46e566c02..3f046159b 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/AbstractTable.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/AbstractTable.java @@ -70,7 +70,6 @@ public abstract class AbstractTable { return (BigDecimal) value; } if (value instanceof String) { - //return BigDecimal.valueOf(Long.parseLong((String)value)); String str = ((String)value).trim(); if (str.isEmpty()) return null; return new BigDecimal(str); diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf52Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf52Table.java index 1a5fcaf1c..f0a6f994a 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf52Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf52Table.java @@ -25,7 +25,7 @@ public class SDf52Table extends AbstractTable { result.setDeal((String) entity[2]); result.setDate((String) entity[3]); BigDecimal status = (BigDecimal) entity[4]; - result.setStatus(status != null ? status.longValue() : null); // or safe universal type result.setStatus(anyNumberToLong(entity[4])); + result.setStatus(status != null ? status.longValue() : null); result.setFileName(filename); result.setGenerationTime(Instant.now()); result.setGenerationId(fileId); diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57Table.java index 30d75f562..6f10e3178 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57Table.java @@ -48,7 +48,7 @@ public class SDf57Table extends AbstractTable { } else if (entity[19] instanceof BigDecimal) { BigDecimal unixTime19 = (BigDecimal) entity[19]; if (unixTime19 != null) { - result.setExt_date(unixTime19.toString()); // unix time + result.setExt_date(unixTime19.toString()); } } else if (entity[19] != null) { result.setExt_date(String.valueOf(entity[19])); diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/DbfImportKafkaMessenger.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/DbfImportKafkaMessenger.java index c5f42d148..28f4dad68 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/DbfImportKafkaMessenger.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/DbfImportKafkaMessenger.java @@ -39,10 +39,6 @@ public class DbfImportKafkaMessenger implements InitializingBean { messengers.put(ETable.DF_57, groupId -> messageStatement(groupId, SdfTable.SDF_57)); } - /** - * отправляет в кафку сообщение, при необходимости - * (обрабатывается, например, в balance-service, clearing-service) - */ public void notifySystemIfNeeded(ETable table, Long groupId) { Consumer messenger = messengers.get(table); if (messenger != null) { diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ImportToDB.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ImportToDB.java index f0259951f..a1ac03cd8 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ImportToDB.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ImportToDB.java @@ -17,9 +17,6 @@ import java.io.InputStream; import java.nio.charset.Charset; import java.util.Map; -/** - * Заливка проверенных данных в базу - */ @Component public class ImportToDB extends Stage { private final ImportDBFServiceSettings settings; diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ValidateFields.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ValidateFields.java index 217206ccd..48b96ea94 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ValidateFields.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/stages/ValidateFields.java @@ -9,9 +9,6 @@ import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult; import java.nio.charset.Charset; -/** - * Фильтрация источника на предмет соответствия полей - */ @Component public class ValidateFields extends Stage implements InitializingBean { private final ImportDBFServiceSettings settings; @@ -26,9 +23,6 @@ public class ValidateFields extends Stage implements InitializingBean { return StageResult.OK; } - /** - * 1. Проверяет кодировку из настройки dbf.encoding-source - */ @Override public void afterPropertiesSet() throws Exception { initDBFCharset(); diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/LauncherCommandReceiver.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/LauncherCommandReceiver.java index 9eb424392..53eb8562a 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/LauncherCommandReceiver.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/LauncherCommandReceiver.java @@ -23,23 +23,20 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi this.importer = importer; } - /** - * В реальности не используется - */ @Override public void afterPropertiesSet() { callback(LauncherCommandRequest.class) .setConsumer(action -> importer.run(ETable.DF_04)) - .forDestination(Task.createOrderConfirm.topic(), callbacks::put); // CORC + .forDestination(Task.createOrderConfirm.topic(), callbacks::put); callback(LauncherCommandRequest.class) .setConsumer(action -> importer.run(ETable.DF_01)) - .forDestination(Task.accrualOfBalance.topic(), callbacks::put); // GBAL + .forDestination(Task.accrualOfBalance.topic(), callbacks::put); callback(LauncherCommandRequest.class) .setConsumer(action -> importer.run(ETable.DF_09)) - .forDestination(Task.getBalance.topic(), callbacks::put); // GBLD + .forDestination(Task.getBalance.topic(), callbacks::put); callback(LauncherCommandRequest.class) .setConsumer(action -> importer.run(ETable.DF_16)) - .forDestination(Task.additionOrDeleteOfBalance.topic(), callbacks::put); // ADBL + .forDestination(Task.additionOrDeleteOfBalance.topic(), callbacks::put); init(); } diff --git a/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06TableTest.java b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06TableTest.java index f8fcb3cec..605e82274 100644 --- a/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06TableTest.java +++ b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf06TableTest.java @@ -4,7 +4,8 @@ import org.junit.jupiter.api.Test; import java.math.BigDecimal; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; class SDf06TableTest { @@ -14,10 +15,10 @@ class SDf06TableTest { assertNull(table.anyNumberToBigDecimal(null)); assertNull(table.anyNumberToBigDecimal("")); assertNull(table.anyNumberToBigDecimal(" ")); - assertEquals(BigDecimal.valueOf(1234), table.anyNumberToBigDecimal("1234")); // это для INN + assertEquals(BigDecimal.valueOf(1234), table.anyNumberToBigDecimal("1234")); assertEquals(BigDecimal.valueOf(1234).setScale(0), table.anyNumberToBigDecimal(" 1234")); assertEquals(BigDecimal.valueOf(1234), table.anyNumberToBigDecimal(" 1234 ")); - assertEquals(new BigDecimal("100000000.0"), table.anyNumberToBigDecimal(" 100000000.0")); // это для SUM + assertEquals(new BigDecimal("100000000.0"), table.anyNumberToBigDecimal(" 100000000.0")); assertEquals(BigDecimal.ONE.scaleByPowerOfTen(3).setScale(2), table.anyNumberToBigDecimal(" 1000.00 ")); assertNull(table.anyNumberToBigDecimal(null)); } diff --git a/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf52TableTest.java b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf52TableTest.java index c2604b788..2cacb2d6a 100644 --- a/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf52TableTest.java +++ b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf52TableTest.java @@ -2,7 +2,6 @@ package ru.spcex.clearing.dbf.importer.logic.data.tables; import com.linuxense.javadbf.DBFReader; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -15,13 +14,10 @@ import java.io.InputStream; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; class SDf52TableTest { - // @Test todo тестовый файл DF-52_S_PRC2308251504_1.dbf не готов, включить тест, когда будет пример формата void getEntity() throws IOException { ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer = null; ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter = null; @@ -31,21 +27,17 @@ class SDf52TableTest { SDf52Table tableReader = new SDf52Table(); tableReader.setHazelcastService(hcSvs); - // ImportToDB - byte[] fileData = Files.readAllBytes(Path.of("src/test/resources/sdf/DF-52_S_PRC2308251504_1.dbf")); tableReader.setFilename("DF-52_S_PRC2308251504_1.dbf"); tableReader.setFileId(123L); - tableReader.bootMap(); // IMDGDistributedNames.Map_SDf57 + tableReader.bootMap(); int count = reader(fileData, tableReader); Assertions.assertEquals(1, count); -// Assertions.assertEquals(count, tableReader.map.size()); } int reader(byte[] source, AbstractTable table) throws IOException { -// byte[] source = resultContainer.getDbfSource(); - Charset sourceCharset = Charset.forName("cp866"); //settings.getCommon().getEncodingSource()); + Charset sourceCharset = Charset.forName("cp866"); int count = 0; try (InputStream is = new ByteArrayInputStream(source); @@ -53,13 +45,11 @@ class SDf52TableTest { for (int i = 0; i < dbfReader.getRecordCount(); i++) { Object[] entity = dbfReader.nextRecord(); if (entity == null) { -// log.warn("record index {} null", i); continue; } count++; SpcexObjectBase entityObj = table.getEntity(entity); Assertions.assertNotNull(entityObj); - //table.injectEntity(table.getEntity(entity)); } } return count; diff --git a/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57TableTest.java b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57TableTest.java index ec5ad0135..d80433749 100644 --- a/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57TableTest.java +++ b/clearing-parent/dbf-importer/src/test/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf57TableTest.java @@ -5,11 +5,9 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; -import ru.spcex.platform.utils.log.ExceptionUtils; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -31,33 +29,26 @@ class SDf57TableTest { HazelcastService hcSvs = new HazelcastService(taskExecutorHazelcastClientInitializer, taskExecutorIdGeneratorAwaiter, hazelcastClientParams); tableReader.setHazelcastService(hcSvs); - //tableReader.bootMap(); - - // ImportToDB - byte[] fileData = Files.readAllBytes(Path.of("src/test/resources/sdf/DF-57_S_PRC2306141135_1.dbf")); tableReader.setFilename("DF-57_S_PRC2306141135_1.dbf"); tableReader.setFileId(123L); - tableReader.bootMap(); // IMDGDistributedNames.Map_SDf57 + tableReader.bootMap(); int count = reader(fileData, tableReader); Assertions.assertEquals(10, count); } int reader(byte[] source, AbstractTable table) throws IOException { -// byte[] source = resultContainer.getDbfSource(); - Charset sourceCharset = Charset.forName("cp866"); //settings.getCommon().getEncodingSource()); + Charset sourceCharset = Charset.forName("cp866"); int count = 0; try (InputStream is = new ByteArrayInputStream(source); DBFReader dbfReader = new DBFReader(is, sourceCharset)) { for (int i = 0; i < dbfReader.getRecordCount(); i++) { Object[] entity = dbfReader.nextRecord(); if (entity == null) { -// log.warn("record index {} null", i); continue; } SpcexObjectBase entityObj = table.getEntity(entity); - //table.injectEntity(entityObj); count++; } } diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/AccountTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/AccountTypeDictionary.java index 00cfbfdc5..12442efe5 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/AccountTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/AccountTypeDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов счетов - * - * Dictionary DB table: ACCOUNT_TYPE_DICTIONARY - **/ public class AccountTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/AllowedDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/AllowedDictionary.java index 420b3eab8..5bfcbeaeb 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/AllowedDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/AllowedDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: ALLOWED_DICTIONARY - */ public class AllowedDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceDimensionDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceDimensionDictionary.java index 1ba6eff87..ee8bdc30e 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceDimensionDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceDimensionDictionary.java @@ -1,9 +1,4 @@ package ru.clearing.platform.dictionary; -/** - * Справочник размерностей балансов - * - * Dictionary DB table: BALANCE_DIMENSION_DICTIONARY - **/ public class BalanceDimensionDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BondTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BondTypeDictionary.java index e6b4be62b..5ec030a3e 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BondTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BondTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов облигаций - * - * Dictionary DB table: BOND_TYPE_DICTIONARY - **/ public class BondTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingAccountTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingAccountTypeDictionary.java index 7937910bd..6f3de1e94 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingAccountTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingAccountTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов клиринговых счетов - * - * Dictionary DB table: CLEARING_ACCOUNT_TYPE_DICTIONARY - **/ public class ClearingAccountTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingCategoryDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingCategoryDictionary.java index 72badda0d..ea574cfe9 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingCategoryDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingCategoryDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: CLEARING_CATEGORY_DICTIONARY - */ public class ClearingCategoryDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java index e7060078f..02a2679c1 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник результатов клиринга - * - * Dictionary DB table: CLEARING_STATUS_DICTIONARY - **/ @Deprecated public class ClearingStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CompanyRoleDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CompanyRoleDictionary.java index da38ceef2..238e77a84 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CompanyRoleDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CompanyRoleDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: COMPANY_ROLE_DICTIONARY - */ public class CompanyRoleDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CompanySymbolDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CompanySymbolDictionary.java index 318814cfe..d2480cd2a 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CompanySymbolDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CompanySymbolDictionary.java @@ -1,9 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: COMPANY_SYMBOL_DICTIONARY - * Словарь с дополнительным полем shortname - */ public class CompanySymbolDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ConnectionStateDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ConnectionStateDictionary.java index ed96817e5..81a14929c 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ConnectionStateDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ConnectionStateDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник состояний соединений - * - * Dictionary DB table: CONNECTION_STATE_DICTIONARY - **/ public class ConnectionStateDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ContactTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ContactTypeDictionary.java index 699b695f6..1e3ef336b 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ContactTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ContactTypeDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: CONTACT_TYPE_DICTIONARY - */ public class ContactTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CorporationSoleTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CorporationSoleTypeDictionary.java index 82d4d5a1c..671e7fa65 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CorporationSoleTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CorporationSoleTypeDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: CORPORATION_SOLE_TYPE_DICTIONARY - */ public class CorporationSoleTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CountryCodeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CountryCodeDictionary.java index 256e8f4f0..1ad2471ef 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CountryCodeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CountryCodeDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: COUNTRY_CODE_DICTIONARY - */ public class CountryCodeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CourierTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CourierTypeDictionary.java index 7b747a4f3..b88ed34fc 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CourierTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CourierTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Способ доставки документа - * - * Dictionary DB table: COURIER_TYPE_DICTIONARY - **/ public class CourierTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CurrencyCodeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CurrencyCodeDictionary.java index 2f8b2b247..784268d50 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CurrencyCodeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/CurrencyCodeDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник кодов валют - * - * Dictionary DB table: CURRENCY_CODE_DICTIONARY - **/ public class CurrencyCodeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DayStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DayStatusDictionary.java index 724217d17..0b7164425 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DayStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DayStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник торговых статусов - * - * Dictionary DB table: DAY_STATUS_DICTIONARY - **/ public class DayStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DepoAccountTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DepoAccountTypeDictionary.java index 1b86ce7ed..56e37cbab 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DepoAccountTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DepoAccountTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов депозитарных счетов - * - * Dictionary DB table: DEPO_ACCOUNT_TYPE_DICTIONARY - **/ public class DepoAccountTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/Dictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/Dictionary.java index fbbec4e53..4dbbe376c 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/Dictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/Dictionary.java @@ -2,9 +2,6 @@ package ru.clearing.platform.dictionary; import java.io.Serializable; -/** - * Словарь. - */ public interface Dictionary extends Serializable { Long getId(); diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DocumentTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DocumentTypeDictionary.java index fdc706d1d..77b68a51a 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DocumentTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DocumentTypeDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: DOCUMENT_TYPE_DICTIONARY - */ public class DocumentTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ErrorCodeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ErrorCodeDictionary.java index 7ebe051e7..bcb3db1d4 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ErrorCodeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ErrorCodeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Коды ошибок - * - * Dictionary DB table: ERROR_CODE_DICTIONARY - **/ public class ErrorCodeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java index 8a7dd4138..ed6d15d6d 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов изменений записей - * - * Dictionary DB table: EVENT_TYPE_DICTIONARY - **/ public class EventTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutDirectionDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutDirectionDictionary.java index 9950d0a5f..ce75f86e7 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutDirectionDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutDirectionDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник значений направления денежного потока - * - * Dictionary DB table: IN_OUT_DIRECTION_DICTIONARY - **/ public class InOutDirectionDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java index 4223a6a26..4949f1d7c 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов входящих и исходящих записей - *

- * Dictionary DB table: IN_OUT_S_DF_TYPE_DICTIONARY - **/ public class InOutSDfTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InstrumentTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InstrumentTypeDictionary.java index 2e3505b7f..146f10af4 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InstrumentTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InstrumentTypeDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов инструмента - * - * Dictionary DB table: INSTRUMENT_TYPE_DICTIONARY - **/ public class InstrumentTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/LegalKindDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/LegalKindDictionary.java index 68d5dcc9b..b5fb30fcf 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/LegalKindDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/LegalKindDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: LEGAL_KIND_DICTIONARY - */ public class LegalKindDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalPurposeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalPurposeDictionary.java index 2d151d1e4..f84040071 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalPurposeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalPurposeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник целей записей в журнале мониторинга и контроля - * - * Dictionary DB table: MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY - **/ public class ManagementJournalPurposeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalStatusDictionary.java index 8f49847bc..8617dc05e 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalStatusDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник статусов журнала мониторинга и контроля - * - * Dictionary DB table: MANAGEMENT_JOURNAL_STATUS_DICTIONARY - **/ public class ManagementJournalStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalTypeDictionary.java index 4377c7823..92e683453 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ManagementJournalTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов записей в журнале мониторинга и контроля - * - * Dictionary DB table: MANAGEMENT_JOURNAL_TYPE_DICTIONARY - **/ public class ManagementJournalTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketCodeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketCodeDictionary.java index 914007aab..cf13259cf 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketCodeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketCodeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник кодов рынков - * - * Dictionary DB table: MARKET_CODE_DICTIONARY - **/ public class MarketCodeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java index 82b7b83f5..29162a18e 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов торгов - *

- * Dictionary DB table: MARKET_TYPE_DICTIONARY - **/ public class MarketTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MoneyFlowSideDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MoneyFlowSideDictionary.java index 6c253d4d5..2fb573396 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MoneyFlowSideDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MoneyFlowSideDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник направлений денежного рынка - * - * Dictionary DB table: MONEY_FLOW_SIDE_DICTIONARY - **/ public class MoneyFlowSideDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java index bd9bc2b04..abd7cfc95 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник статусов сообщений - * - * Dictionary DB table: NOTIFICATION_STATUS_DICTIONARY - **/ public class NotificationStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java index 771901575..f659415e1 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов объектов - * - * Dictionary DB table: OBJECT_TYPE_DICTIONARY - **/ public class ObjectTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OperationStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OperationStatusDictionary.java index 383d108e6..217f18440 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OperationStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OperationStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник статусов операций - * - * Dictionary DB table: OPERATION_STATUS_DICTIONARY - **/ public class OperationStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OperationTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OperationTypeDictionary.java index 6c902ff25..d76a1ad79 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OperationTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OperationTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов операций - * - * Dictionary DB table: OPERATION_TYPE_DICTIONARY - **/ public class OperationTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OrganizationTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OrganizationTypeDictionary.java index def605aa6..010294803 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OrganizationTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/OrganizationTypeDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: ORGANIZATION_TYPE_DICTIONARY - */ public class OrganizationTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ParentDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ParentDictionary.java index c7301fcd5..9fb8769af 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ParentDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ParentDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник источников - * - * Dictionary DB table: PARENT_DICTIONARY - **/ public class ParentDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/PriorityDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/PriorityDictionary.java index 310a27da3..3207ce439 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/PriorityDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/PriorityDictionary.java @@ -1,9 +1,4 @@ package ru.clearing.platform.dictionary; -/** - * Справочник приоритетов отображения - * - * Dictionary DB table: PRIORITY_DICTIONARY - **/ public class PriorityDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryCapacityDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryCapacityDictionary.java index 5df412229..437c046de 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryCapacityDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryCapacityDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник символов регистров - источники средств - * - * Dictionary DB table: REGISTRY_CAPACITY_DICTIONARY - **/ public class RegistryCapacityDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryCodeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryCodeDictionary.java index 754f9bd77..27b607ad4 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryCodeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryCodeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник кодов регистров - * - * Dictionary DB table: REGISTRY_CODE_DICTIONARY - **/ public class RegistryCodeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryDesignationDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryDesignationDictionary.java index 01e1b1f74..983ca309b 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryDesignationDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryDesignationDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник символов регистров - назначения - * - * Dictionary DB table: REGISTRY_DESIGNATION_DICTIONARY - **/ public class RegistryDesignationDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryInstrumentTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryInstrumentTypeDictionary.java index 8ddb13d88..e0326e930 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryInstrumentTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryInstrumentTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник символов регистров - инструменты - * - * Dictionary DB table: REGISTRY_INSTRUMENT_TYPE_DICTIONARY - **/ public class RegistryInstrumentTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryStatusDictionary.java index 7bab1d6b3..aa6052cce 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryStatusDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник статусов регистров - * - * Dictionary DB table: REGISTRY_STATUS_DICTIONARY - **/ public class RegistryStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryUnitDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryUnitDictionary.java index 26affd2d0..323d3aabc 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryUnitDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/RegistryUnitDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник символов регистров - части регистров - * - * Dictionary DB table: REGISTRY_UNIT_DICTIONARY - **/ public class RegistryUnitDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ResultStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ResultStatusDictionary.java index 893bfef4b..32020910b 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ResultStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ResultStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Статус обработки - * - * Dictionary DB table: RESULT_STATUS_DICTIONARY - **/ public class ResultStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SectionDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SectionDictionary.java index 6b9004eb0..1416f45cb 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SectionDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SectionDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник секций - * - * Dictionary DB table: SECTION_DICTIONARY - **/ public class SectionDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceDictionary.java index 0c96c885d..89fe21b76 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник услуги - * - * Dictionary DB table: SERVICE_DICTIONARY - **/ public class ServiceDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceProductDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceProductDictionary.java index c1c9d2ab3..536511952 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceProductDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceProductDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник продукта для услуги - * - * Dictionary DB table: SERVICE_PRODUCT_DICTIONARY - **/ public class ServiceProductDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceStatusDictionary.java index fc219ea61..28238a163 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ServiceStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник услуги - * - * Dictionary DB table: SERVICE_STATUS_DICTIONARY - **/ public class ServiceStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionStatusDictionary.java index c09164d32..17e1e1417 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник статусов клиринговых сессий - * - * Dictionary DB table: SESSION_STATUS_DICTIONARY - **/ public class SessionStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionTypeDictionary.java index 93624f60d..1f87d081d 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SessionTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов клиринговых сессий - * - * Dictionary DB table: SESSION_TYPE_DICTIONARY - **/ public class SessionTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ShareTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ShareTypeDictionary.java index 3e945bcbc..0320388eb 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ShareTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ShareTypeDictionary.java @@ -1,9 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Dictionary DB table: SHARE_TYPE_DICTIONARY - **/ public class ShareTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; } \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SideDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SideDictionary.java index 7dbf76d64..dbd13e50e 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SideDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/SideDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник направлений - * - * Dictionary DB table: SIDE_DICTIONARY - **/ public class SideDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/StatementTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/StatementTypeDictionary.java index fc78b37b8..0b6384664 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/StatementTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/StatementTypeDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов поступлений/списаний от ПРЦ - * - * Dictionary DB table: STATEMENT_TYPE_DICTIONARY - **/ public class StatementTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TaskDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TaskDictionary.java index 791f61433..18ba7fed2 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TaskDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TaskDictionary.java @@ -1,11 +1,6 @@ package ru.clearing.platform.dictionary; -/** - * Справочник задач - * - * Dictionary DB table: TASK_DICTIONARY - **/ public class TaskDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TaskStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TaskStatusDictionary.java index cc3447d80..548077e94 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TaskStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TaskStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник статусов задач - *

- * Dictionary DB table: TASK_STATUS_DICTIONARY - **/ public class TaskStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TermTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TermTypeDictionary.java index e2880eea3..305538af6 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TermTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TermTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник видов инстурментов денежного рынка - * - * Dictionary DB table: TERM_TYPE_DICTIONARY - **/ public class TermTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryLevelDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryLevelDictionary.java index 6e3e3a96f..360b84059 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryLevelDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryLevelDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник уровней торгово-клиринговых регистров - * - * Dictionary DB table: TRADING_CLEARING_REGISTRY_LEVEL_DICTIONARY - **/ public class TradingClearingRegistryLevelDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryPurposeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryPurposeDictionary.java index fa81fe060..71a0045f3 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryPurposeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryPurposeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник областей применения - * - * Dictionary DB table: TRADING_CLEARING_REGISTRY_PURPOSE_DICTIONARY - **/ public class TradingClearingRegistryPurposeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryTypeDictionary.java index 8d14252bf..5c410e0b7 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryTypeDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TradingClearingRegistryTypeDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник типов торгово-клиринговых регистров - * - * Dictionary DB table: TRADING_CLEARING_REGISTRY_TYPE_DICTIONARY - **/ public class TradingClearingRegistryTypeDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; } \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java index 6228f8057..7c7957220 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Справочник статусов транзакций - *

- * Dictionary DB table: TRANSACTION_STATUS_DICTIONARY - **/ public class TransactionStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/UserRoleDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/UserRoleDictionary.java index 107b4bc36..8e18af820 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/UserRoleDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/UserRoleDictionary.java @@ -1,10 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Роли пользователей - * - * Dictionary DB table: USER_ROLE_DICTIONARY - **/ public class UserRoleDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/WorkflowStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/WorkflowStatusDictionary.java index 5864f07ee..96e5723a2 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/WorkflowStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/WorkflowStatusDictionary.java @@ -1,8 +1,5 @@ package ru.clearing.platform.dictionary; -/** - * Database table: WORKFLOW_STATUS_DICTIONARY - */ public class WorkflowStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/GatewayController.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/GatewayController.java index 39d5e65f0..333feaef7 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/GatewayController.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/GatewayController.java @@ -73,7 +73,6 @@ public class GatewayController { ) @ResponseBody public CommonResponse listingsFond(@RequestBody FondListingsRequest request) { -// request.validate(validTypes, List.of(Section.FOND)); executor.submit(() -> listingFondProcessor.process(request)); return createResponse(request, true); } @@ -92,7 +91,6 @@ public class GatewayController { ) @ResponseBody public CommonResponse listingsMM(@RequestBody MMListingsRequest request) { -// request.validate(validTypes, List.of(Section.MKR)); executor.submit(() -> listingMMProcessor.process(request)); return createResponse(request, true); } @@ -111,7 +109,6 @@ public class GatewayController { ) @ResponseBody public CommonResponse companies(@RequestBody CompaniesRequest request) { -// request.validate(validTypes, Collections.emptyList()); executor.submit(() -> companiesProcessor.process(request)); return createResponse(request, true); } @@ -176,9 +173,7 @@ public class GatewayController { private CommonResponse createCommonResponse(UUID uuid) { CommonResponse commonResponse = new CommonResponse(); commonResponse.setId(uuid); -// commonResponse.setType(request.getType()); commonResponse.setDatetime(Instant.now()); -// commonResponse.setSection(request.getSection()); return commonResponse; } } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/company/Company.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/company/Company.java index 87caa4036..c4f382be1 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/company/Company.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/company/Company.java @@ -6,9 +6,6 @@ import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithMapId; import java.util.UUID; -/** - * Компания участник - */ public class Company extends WithMapId { @JsonProperty("id") @ApiModelProperty( diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/request/OutboundRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/request/OutboundRequest.java index f32281507..5e788c368 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/request/OutboundRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/request/OutboundRequest.java @@ -48,7 +48,6 @@ public class OutboundRequest { ) private String section = ""; - // todo Пока так, чтобы отсылал null, в дальнейшем тип надо заменить на используемый в запросе. Возможно с помощью параметризации @JsonProperty("content") @ApiModelProperty( value = "Контент", example = "null" diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/CodeStatusComparator.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/CodeStatusComparator.java index 87be61427..0d0c54f88 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/CodeStatusComparator.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/CodeStatusComparator.java @@ -28,21 +28,16 @@ public class CodeStatusComparator implements Comparator { String securitySymbol2 = codeExtractor.apply(o2); String workflowStatus1 = workflowStatusExtractor.apply(o1); String workflowStatus2 = workflowStatusExtractor.apply(o2); - - //Если приходят несколько объектов с одним security.security_symbol и разными security.workflow_status, - // просьба сначала обрабатывать записи workflow_status="BLKD", а потом с workflow_status="ACTV". if (!Objects.equals(securitySymbol1, securitySymbol2)) { return Objects.compare(securitySymbol1, securitySymbol2, Comparator.naturalOrder()); } if (Objects.equals(workflowStatus1, workflowStatus2)) { return 0; } - //сначала достаем workflowStatus из объекта Function statusObtainer = ws -> { WorkflowStatus workflowStatus = IEnumKey.getEnumByKey(WorkflowStatus.class, ws); return Objects.requireNonNullElse(workflowStatus, WorkflowStatus.Active); }; - //потом устанавливаем очередносьб: сначала Blocked Function statusMapper = ws -> { if (WorkflowStatus.Blocked.equals(ws)) { return -1; diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/IssueCompanyService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/IssueCompanyService.java index dedc8c53e..2be4d6a75 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/IssueCompanyService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/IssueCompanyService.java @@ -55,9 +55,6 @@ public class IssueCompanyService { .filter(info -> info.getCompanyId().equals(companyId)).findFirst() .map(issuerCompanyRequestAdapter::toCompanyInfoRequest) .ifPresent(securityMkrGatewayRequest::setCompanyInfoUpdateRequest); - - //todo реализовать на стороне security-service обработку и правильную группировку -// kafkaSender.sendRequestToQueue(Consts.DESTINATION_ISSUER_COMPANY_GATEWAY_REQUEST, securityMkrGatewayRequest); } catch (Throwable e) { log.error("{}", ExceptionUtils.getStackTrace(e)); } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java index 2a2bf1707..fbb17fe52 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java @@ -44,7 +44,7 @@ public class CompanyRequestAdapter { public CompanyInfoUpdateRequest toCompanyInfoRequest(CompanyInfo companyInfo) { CompanyInfoUpdateRequest companyInfoUpdateRequest = new CompanyInfoUpdateRequest(); - companyInfoUpdateRequest.setCountryCode("RUS"); // todo в текущей версии ТЗ присылается в цифровом обозначении + companyInfoUpdateRequest.setCountryCode("RUS"); companyInfoUpdateRequest.setProfessionalSign(companyInfo.getProfessionalSign()); companyInfoUpdateRequest.setLegalKind(companyInfo.getLegalKind()); companyInfoUpdateRequest.setOrganizationType(companyInfo.getOrganizationType()); @@ -80,7 +80,6 @@ public class CompanyRequestAdapter { public ClientCodeNewRequest toClientRequest(Client client) { if (client.getMoneyAccount() != null) try { Account mAccount = accountMap.getSingleObjectByFieldValues(Map.of( - // "accountType", AccountType.Clrn.getKey(), or "accountType", AccountType.Info.getKey(), "account", client.getMoneyAccount() )); if (mAccount == null) { diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/SecurityRequestAdapter.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/SecurityRequestAdapter.java index f408dd343..caba02756 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/SecurityRequestAdapter.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/SecurityRequestAdapter.java @@ -6,7 +6,6 @@ import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.Fond import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.IncomeListing; import ru.spcex.clearing.gatewayapi.controller.inbound.request.listing.fond.Nominal; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*; -import ru.spcex.platform.utils.text.TextUtil; @Service public class SecurityRequestAdapter { @@ -50,9 +49,6 @@ public class SecurityRequestAdapter { ListingNewRequest listingNewRequest = new ListingNewRequest(); String code = incomeListing.getCode(); listingNewRequest.setMarket(code); -// if (!TextUtil.isEmpty(code)) { -// listingNewRequest.setSymbolCode(code.substring(0, Math.min(7, code.length()))); -// } listingNewRequest.setSymbolCode(incomeListing.getSymbolCode()); listingNewRequest.setSymbolName(incomeListing.getSymbolName()); listingNewRequest.setLotSize(incomeListing.getLotSize()); diff --git a/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/controller/AbstractControllerTest.java b/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/controller/AbstractControllerTest.java index 119897877..991a42da8 100644 --- a/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/controller/AbstractControllerTest.java +++ b/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/controller/AbstractControllerTest.java @@ -40,13 +40,11 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi TestConfig.class, ImdgTestConfig.class, KafkaTestConfig.class}) -//todo может быть указать пакедж а не список контроллеров @ExtendWith(SpringExtension.class) @WebMvcTest public abstract class AbstractControllerTest { protected static final MatcherFactoryWithJson.Matcher BASE_REQUEST_MATCHER = usingIgnoringFieldsComparatorForClass(BaseRequest.class,"userId"); -// protected static final MatcherFactoryWithJson.Matcher CUD_RESPONSE_MATCHER = usingIgnoringFieldsComparatorForClass(CudResponse.class); - protected static final AtomicLong currentId = new AtomicLong(); +protected static final AtomicLong currentId = new AtomicLong(); private static final CharacterEncodingFilter CHARACTER_ENCODING_FILTER = new CharacterEncodingFilter(); static { @@ -72,8 +70,7 @@ public abstract class AbstractControllerTest { mockMvc = MockMvcBuilders .webAppContextSetup(webApplicationContext) .addFilter(CHARACTER_ENCODING_FILTER) -// .apply(springSecurity()) - .build(); +.build(); imdgProvider.waitAvailable(); } diff --git a/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/controller/GatewayControllerTest.java b/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/controller/GatewayControllerTest.java index 02f93ba98..a770f8ea7 100644 --- a/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/controller/GatewayControllerTest.java +++ b/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/controller/GatewayControllerTest.java @@ -53,19 +53,13 @@ class GatewayControllerTest extends AbstractControllerTest{ securities.add(fondSecurity); request.setSecurities(securities); String req1 = writeValue(request); - //ACT MvcResult mvcResult = perform(MockMvcRequestBuilders.post(LISTING_FOND_URL) .contentType(MediaType.APPLICATION_JSON) .content(req)) - .andDo(print())//output to the log request and response - //ASSERT + .andDo(print()) .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) - //.andExpect(content().json(writeValue(expected))) .andReturn(); -// CudResponseTest cudResponseTest = readValue(mvcResult.getResponse().getContentAsString(), CudResponseTest.class); -// expected.setPayload(new QueueSuccessResponse(ActionType.NEW, cudResponseTest.getPayload().getId())); -// CUD_RESPONSE_MATCHER.assertMatch(cudResponseTest, expected); } String req = "{\n" + "\t\"id\": \"bbf4ccc0-bd9d-466d-9b2b-837e2bc3d35c\",\n" + diff --git a/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/service/CodeStatusComparatorTest.java b/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/service/CodeStatusComparatorTest.java index 7662ceaa5..8a5deea8f 100644 --- a/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/service/CodeStatusComparatorTest.java +++ b/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/service/CodeStatusComparatorTest.java @@ -34,9 +34,6 @@ class CodeStatusComparatorTest { security("8", "d", WorkflowStatus.Blocked.getKey()), security("5", "c", WorkflowStatus.Blocked.getKey()) ); - //signum(compare(x, y)) == -signum(compare(y, x)) for all x and y - //((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0. - //Finally, the implementor must ensure that compare(x, y)==0 implies that signum(compare(x, z))==signum(compare(y, z)) for all z fondSecurities.sort(comp); for (int i = 0; i < fondSecurities.size(); i++) { assertEquals(Integer.parseInt(fondSecurities.get(i).getShortName()), i + 1); diff --git a/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/service/GatewayServiceTest.java b/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/service/GatewayServiceTest.java index 83fbea1d2..e4056801b 100644 --- a/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/service/GatewayServiceTest.java +++ b/clearing-parent/gateway-api/src/test/java/ru/spcex/clearing/gatewayapi/service/GatewayServiceTest.java @@ -1,15 +1,4 @@ package ru.spcex.clearing.gatewayapi.service; public class GatewayServiceTest { - -// @Test -// public void makeContentByReportRequestTest() { -// GatewayService gatewayService = new GatewayService(null, null, null, -// null, null, null, null); -// ReportPart reportPart = new ReportPart(); -// reportPart.setFileName("KS_BR_PFX64_INFTYPE_1_111111111111111.csv"); -// Map content = gatewayService.makeContentByReportRequest(content, reportPart); -// Assertions.assertTrue(content.containsKey("inftype_1")); -// Assertions.assertEquals("KS_BR_PFX64_INFTYPE_1_111111111111111.csv", content.get("inftype_1")); -// } } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/AutoconfiguredMap.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/AutoconfiguredMap.java index d3d1b44ff..d0441d15f 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/AutoconfiguredMap.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/AutoconfiguredMap.java @@ -3,15 +3,7 @@ package ru.spcex.clearing.imdg.base; import com.hazelcast.core.MapLoader; public interface AutoconfiguredMap extends MapLoader { - /** - * - * @return IMDGDistributedNames.* - */ String getMapName(); - /** - * Список индексируемых полей, для быстрого поиска - * @return - */ String[] getIndexingField(); } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/BusinessObjectMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/BusinessObjectMapStore.java index 32b4b047a..bd49f5ee8 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/BusinessObjectMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/BusinessObjectMapStore.java @@ -6,22 +6,12 @@ import ru.clearing.classes.objects.BusinessObject; import java.sql.ResultSet; import java.sql.SQLException; -/** - * Шаблон для загрузки BusinessObject-ов. - */ public abstract class BusinessObjectMapStore extends ObjectBaseMapStore { public BusinessObjectMapStore(JdbcTemplate jdbcTemplate) { super(jdbcTemplate); } - /** - * Заполняет стандартные поля для BusinessObject из ResultSet - * - * @param businessObject дозаполнить стандартные поля этому объекту - * @param rs из ResultSet - * @throws SQLException - error - */ protected void fillBusinessObjectFields(BusinessObject businessObject, ResultSet rs) throws SQLException { fillBusinessObjectFields(businessObject, rs, "id"); } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/DictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/DictionaryMapStore.java index 1e8aff1d1..e12d1f08a 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/DictionaryMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/DictionaryMapStore.java @@ -14,9 +14,6 @@ import java.util.*; import static ru.spcex.clearing.imdg.base.ObjectBaseMapStore.MAX_IN_CLAUSE_SIZE; -/** - * Store для словарей стандартных - из ID, CODE, NAME. - */ public abstract class DictionaryMapStore implements MapLoader { private static final Logger log = LoggerFactory.getLogger(DictionaryMapStore.class); protected final JdbcTemplate jdbcTemplate; @@ -62,8 +59,6 @@ public abstract class DictionaryMapStore implements MapLoa log.trace("loadAll from dictionary {} {} keys", getTableName(), keys.size()); Map result = new HashMap<>(); long start = System.currentTimeMillis(); - - // загрузить данные по ключам частями, чтобы не выйти за ограничения базы по кол-ву элементов в in clause List keysSubList = new ArrayList<>(MAX_IN_CLAUSE_SIZE); for (Iterator iterator = keys.iterator(); iterator.hasNext(); ) { Long key = iterator.next(); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/DictionaryTMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/DictionaryTMapStore.java index bf4491ab2..1aa06c344 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/DictionaryTMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/DictionaryTMapStore.java @@ -3,9 +3,6 @@ package ru.spcex.clearing.imdg.base; import org.springframework.jdbc.core.JdbcTemplate; import ru.clearing.platform.dictionary.Dictionary; -/** - * Store для автонастраиваемых map словарей - */ public abstract class DictionaryTMapStore extends DictionaryMapStore implements AutoconfiguredMap { protected DictionaryTMapStore(JdbcTemplate jdbcTemplate) { super(jdbcTemplate); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java index 7c92626f9..5ccb20892 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java @@ -29,7 +29,7 @@ public abstract class ObjectBaseMapStore extends Simp List list = Collections.singletonList(id); try { rows = load(list); - } catch (Throwable e) { // one retry + } catch (Throwable e) { rows = load(list); } T obj = DataAccessUtils.singleResult(rows); @@ -52,8 +52,6 @@ public abstract class ObjectBaseMapStore extends Simp log.debug("loadAll from " + getTableName() + " " + keys.size() + " keys"); Map result = new HashMap<>(); long start = System.currentTimeMillis(); - - // загрузить данные по ключам частями, чтобы не выйти за ограничения базы по кол-ву элементов в in clause List keysSubList = new ArrayList<>(MAX_IN_CLAUSE_SIZE); for (Iterator iterator = keys.iterator(); iterator.hasNext(); ) { Long key = iterator.next(); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/SimpleObjectMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/SimpleObjectMapStore.java index 6a2bd0105..84d369d88 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/SimpleObjectMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/SimpleObjectMapStore.java @@ -20,11 +20,6 @@ import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; -/** - * MapStore для выгрузки обычных объектов - * - * @param - */ public abstract class SimpleObjectMapStore implements MapStore { private final static int BATCH_SIZE = 1000; protected final Logger log = LoggerFactory.getLogger(this.getClass()); @@ -92,7 +87,7 @@ public abstract class SimpleObjectMapStore implements jdbcTemplate.batchUpdate(sql, listOfID); } catch (Exception e) { log.error("SQL error at batch DELETE FROM {}\n{}", getTableName(), ExceptionUtils.getStackTrace(e)); - log.info("List of non deleted ID {}", collection); // показать список неудалённых UUID + log.info("List of non deleted ID {}", collection); throw e; } } @@ -122,13 +117,6 @@ public abstract class SimpleObjectMapStore implements return keys; } - /** - * Выгружает ID по таблице по условию dateField >= today - * - * @param dateField поле даты - * @param canBeGreat true - используется условие >= today, иначе строгое = - * @return ID's - */ public Iterable defaultLoadAllKeysOnTodayByField(String dateField, boolean canBeGreat) { LocalDate today = LocalDate.now(); log.debug("loadAllKeys from {} on {} {} today", getTableName(), dateField, canBeGreat ? ">=" : "="); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateEventMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateEventMapStore.java index 38d2dad01..21ea132c0 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateEventMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateEventMapStore.java @@ -42,21 +42,6 @@ public abstract class TemplateEventMapStore> extends BusinessEventMapStore { protected final int validateSize = getFields().length; @@ -21,24 +19,6 @@ public abstract class TemplateHistoryMapStore extends ObjectBaseMapStore implements AutoconfiguredMap { protected final int validateSize = getFields().length; @@ -20,26 +17,12 @@ public abstract class TemplateMapStore extends Object super(jdbcTemplate); } - /** - * @return IMDGDistributedNames.* - */ public abstract String getMapName(); - /** - * Список индексируемых полей, для быстрого поиска - * - * @return - */ public String[] getIndexingField() { return null; } - /** - * Десериализатор - * - * @param resultSet - * @return - */ protected abstract T objectReader(ResultSet resultSet) throws SQLException; @Override @@ -49,12 +32,6 @@ public abstract class TemplateMapStore extends Object (resultSet, i) -> objectReader(resultSet)); } - /** - * Сериализатор - * - * @param resultSet - * @return Object[] args - */ protected abstract Object[] objectToField(T resultSet); @Override diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ASecurityHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ASecurityHistoryMapStore.java index 682ed3093..27419710f 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ASecurityHistoryMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/ASecurityHistoryMapStore.java @@ -10,11 +10,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -/** - * Двойная запись в 2 таблицы: - * SECURITY_HISTORY - * *_SECURITY_HISTORY - */ public abstract class ASecurityHistoryMapStore> extends TemplateEventMapStore { protected final int validateSecuritySize; @@ -42,7 +37,7 @@ public abstract class ASecurityHistoryMapStore companyInfoToSQLArgs(@NonNull CompanyInfo companyInfo, CompanyHistory rootUpdate) { return new ArrayList<>(Arrays.asList( rootUpdate.getId(), @@ -98,7 +90,7 @@ public class CompanyHistoryMapStore extends BusinessEventMapStore { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ASecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ASecurityMapStore.java index f6fdd4400..baf58f808 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ASecurityMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ASecurityMapStore.java @@ -10,14 +10,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -/** - * Двойная запись в 2 таблицы: - * SECURITY_HISTORY - * *_SECURITY_HISTORY - * - * objectReader() надо использовать fillBySecurity(object, object.getSecurityId()); - * objectToField() требуется возвращать только поля в дополнительную таблицу, без полей для SECURITY - */ @Component public abstract class ASecurityMapStore extends TemplateMapStore { @@ -64,7 +56,7 @@ public abstract class ASecurityMapStore extends TemplateMap protected Object[] securityField(S object) { Object[] args = new Object[]{ - object.getId(), // SecurityId + object.getId(), TimeUtil.toDateFromInstant(object.getCreated()), TimeUtil.toDateFromInstant(object.getUpdated()), object.getInstrumentType(), diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java index ee0891db9..0b1f75e09 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java @@ -38,8 +38,7 @@ public class CompanyMapStore extends BusinessObjectMapStore { "id", "company_id", "corporation_sole_type", "country_code", "description", "professional_sign", "legal_kind", "organization_type", "residence", "short_name_eng", "full_name_eng" -// , "short_name", "full_name", "trading_code","clearing_code", "registration_code" - }; +}; } @Override @@ -83,7 +82,7 @@ public class CompanyMapStore extends BusinessObjectMapStore { }; batchArgs.add(args); if (company.getProfile() != null) { - company.getProfile().setId(company.getId());//todo для точного соответствия id = company.id + company.getProfile().setId(company.getId()); company.getProfile().setCompanyId(company.getId()); List companyInfoArgs = new ArrayList<>(); companyInfoArgs.addAll(companyInfoToSQLArgs(company.getProfile())); @@ -100,7 +99,7 @@ public class CompanyMapStore extends BusinessObjectMapStore { if (id == null) return null; List results = jdbcTemplate.query( - "SELECT * FROM COMPANY_INFO WHERE id = ?", new Object[]{id}, // id=comapny_id + "SELECT * FROM COMPANY_INFO WHERE id = ?", new Object[]{id}, (rs, rowNum) -> { CompanyInfo companyInfo = new CompanyInfo(); companyInfo.setId(rs.getObject("Id", Long.class)); @@ -114,11 +113,6 @@ public class CompanyMapStore extends BusinessObjectMapStore { companyInfo.setResidence(rs.getString("RESIDENCE")); companyInfo.setShortNameEng(rs.getString("SHORT_NAME_ENG")); companyInfo.setFullNameEng(rs.getString("FULL_NAME_ENG")); -// companyInfo.setShortName(rs.getString("SHORT_NAME")); -// companyInfo.setFullName(rs.getString("FULL_NAME")); -// companyInfo.setTradingCode(rs.getString("TRADING_CODE")); -// companyInfo.setClearingCode(rs.getString("CLEARING_CODE")); -// companyInfo.setRegistrationCode(rs.getString("REGISTRATION_CODE")); return companyInfo; } ); @@ -126,19 +120,12 @@ public class CompanyMapStore extends BusinessObjectMapStore { if (onceObject == null) { log.warn("No row in table COMPANY_INFO where id={}. Create empty ", id); onceObject = new CompanyInfo(); - onceObject.setId(id); // чтобы не потерять id + onceObject.setId(id); onceObject.setCompanyId(id); } return onceObject; } - /** - * Перечисление значений полей CompanyInfo. - * См. insertCompanyInfoStatement - * - * @param companyInfo должен быть заполнен id, company_id = company.id - * @return - */ protected List companyInfoToSQLArgs(@NonNull CompanyInfo companyInfo) { List companyInfoArgs = new ArrayList<>(Arrays.asList( companyInfo.getId(), @@ -152,11 +139,6 @@ public class CompanyMapStore extends BusinessObjectMapStore { companyInfo.getResidence(), companyInfo.getShortNameEng(), companyInfo.getFullNameEng() -// companyInfo.getShortName(), -// companyInfo.getFullName(), -// companyInfo.getTradingCode(), -// companyInfo.getClearingCode(), -// companyInfo.getRegistrationCode() )); return companyInfoArgs; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/EquitySecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/EquitySecurityMapStore.java index b03eca856..4ccc98559 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/EquitySecurityMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/EquitySecurityMapStore.java @@ -4,14 +4,9 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; @Component public class EquitySecurityMapStore extends ASecurityMapStore { @@ -33,7 +28,7 @@ public class EquitySecurityMapStore extends ASecurityMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "SECURITY_ID", "SHARE_TYPE"//, "LOT_SIZE" + "ID", "SECURITY_ID", "SHARE_TYPE" }; } @@ -45,7 +40,6 @@ public class EquitySecurityMapStore extends ASecurityMapStore { object.setId(resultSet.getObject("ID", Long.class)); object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); object.setShareType(resultSet.getObject("SHARE_TYPE", String.class)); -// object.setLotSize(resultSet.getObject("LOT_SIZE", BigDecimal.class)); fillBySecurity(object, object.getSecurityId()); return object; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyMarketSecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyMarketSecurityMapStore.java index aaaf918cd..285e47846 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyMarketSecurityMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyMarketSecurityMapStore.java @@ -44,18 +44,6 @@ public class MoneyMarketSecurityMapStore extends ASecurityMapStore { } } -// todo Сделать BusinessEventMapStore RelationUpdateMapStore \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SecurityMapStore.java index 7b876cd81..d48f17ed2 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SecurityMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SecurityMapStore.java @@ -10,7 +10,6 @@ import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -// Abstract table: ASecurityHistoryMapStore @Component public class SecurityMapStore extends TemplateMapStore { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/HazelcastConfiguration.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/HazelcastConfiguration.java index f6e601f92..07926f63b 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/HazelcastConfiguration.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/HazelcastConfiguration.java @@ -51,9 +51,8 @@ public class HazelcastConfiguration { ) ); - config.addMapConfig(poolMapConfigs.map_Company()); //todo убедиться, что CompanyMapStore extends BusinessObjectMapStore теперь будет TemplateMapStore. + config.addMapConfig(poolMapConfigs.map_Company()); config.addMapConfig(poolMapConfigs.map_CompanyHistory()); - // Автоподключение мап List autoMapCfg = poolMapConfigs.autoconfiguratorOfMapstorages(); for (MapConfig cfg : autoMapCfg) { config.addMapConfig(cfg); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/PoolMapConfigs.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/PoolMapConfigs.java index d5889abff..24f518c7f 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/PoolMapConfigs.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/PoolMapConfigs.java @@ -27,14 +27,13 @@ public class PoolMapConfigs { @Autowired private CompanyHistoryMapStore companyHistoryMapStore; - // Автоконфигурируемые мапсторы: @Autowired private List> listOfAutopluginStores; private MapStoreConfig makeDefaultMapStoreConfig(MapLoader mapBean) { return new MapStoreConfig() .setImplementation(mapBean) - ;//todo config: .setWriteDelaySeconds(configRoot.getIMDG().getDbSyncSeconds()); + ; } public ScheduledExecutorConfig makeDefaultScheduledExecutorConfig(String name) { @@ -50,8 +49,7 @@ public class PoolMapConfigs { .setName(mapName) .setInMemoryFormat(InMemoryFormat.OBJECT) .setMapStoreConfig(makeDefaultMapStoreConfig(mapBean)) -//fixme config: .setBackupCount(configRoot.getIMDG().getBackupCount()) - ; +; } private NearCacheConfig makeDefaultNearCacheConfig() { @@ -80,7 +78,6 @@ public class PoolMapConfigs { return makeDefaultMapConfig(IMDGDistributedNames.Map_CompanyHistory, companyHistoryMapStore); } - // @Qualifier("AutoconfiguredMapStore") public List autoconfiguratorOfMapstorages() { List out = new ArrayList<>(); HashSet existMapStores = new HashSet<>(); @@ -93,7 +90,7 @@ public class PoolMapConfigs { if (existMapStores.contains(mapStore.getMapName())) { throw new IllegalArgumentException("MapStore " + mapStore + " has wrong mapName=\"" + mapStore.getMapName() + "\" is duplicated"); } - existMapStores.add(mapStore.getMapName()); // IMDGDistributedNames + existMapStores.add(mapStore.getMapName()); MapConfig mapCfg = makeDefaultMapConfig(mapStore.getMapName(), mapStore); if (mapStore.getIndexingField() != null && mapStore.getIndexingField().length > 0) { if (log.isTraceEnabled()) { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanyRoleSetMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanyRoleSetMapStore.java index 25c972ccc..4b5282d94 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanyRoleSetMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanyRoleSetMapStore.java @@ -28,7 +28,7 @@ public class CompanyRoleSetMapStore extends TemplateMapStore { @Override public String[] getIndexingField() { - return new String[]{"companyId"};// список индексируемых полей + return new String[]{"companyId"}; } @Override diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java index b715b032e..c000cf4c9 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java @@ -19,7 +19,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.*; -//todo почистить класс public abstract class AbstractHazelcastLifecycleSupport implements InitializingBean, DisposableBean { private final Logger log = LoggerFactory.getLogger(this.getClass()); private final HazelcastInstance hazelcastServerInstance; @@ -32,22 +31,12 @@ public abstract class AbstractHazelcastLifecycleSupport implements InitializingB this.plannerAllTodayMaker = plannerAllTodayMaker; } - /** - * Рабочая версия БД. Треьуется вручную сверять с DDL.sql и накручивать эту переменную. - */ public abstract String getCheckDbVersion(); -// private final HazelcastClientListener clientListener; -// private final ITaskAdministrator startupTasksAdministrator; - /** - * Обязательная сверка у этих классов SerialVersionUID во время подключения к Storage. - */ public abstract Class[] getSerialVersionUIDClasses(); @Override public void afterPropertiesSet() { -// HazelcastCommon.loadClassesVersionsByStorage(hazelcastServerInstance, getSerialVersionUIDClasses()); -// databaseVersionCheck(); long loadTime = System.currentTimeMillis(); @@ -71,9 +60,6 @@ public abstract class AbstractHazelcastLifecycleSupport implements InitializingB String tableName = ((SimpleObjectMapStore) mapStore).getTableName(); maxKey = jdbcTemplate.queryForObject("select max(id) from " + tableName, Long.class); } else if (mapStore instanceof DictionaryMapStore) { - // для Dictionary не используется общий id генератор -// } else if (mapStore instanceof FrontendUserSessionMapStore) { -// // не используется общий id генератор } else { throw new RuntimeException("unknown map store implementation " + mapStore); } @@ -84,7 +70,7 @@ public abstract class AbstractHazelcastLifecycleSupport implements InitializingB }); } long maxKey = 0L; - int threadCount = Runtime.getRuntime().availableProcessors();// todo config * Config.get().getRoot().getSettings().getInitHazelcastThreadMultiplier(); + int threadCount = Runtime.getRuntime().availableProcessors(); log.info("Initializing threads count = {}", threadCount); ExecutorService executor = Executors.newWorkStealingPool(threadCount); try { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractUpdateMapService.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractUpdateMapService.java index e447f052c..016296d9e 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractUpdateMapService.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractUpdateMapService.java @@ -15,9 +15,6 @@ import java.time.Instant; public abstract class AbstractUpdateMapService implements InitializingBean, EntryAddedListener, EntryUpdatedListener, EntryRemovedListener { - /** - * EVENT_TYPE_DICTIONARY - */ protected final String EVENT_CREATE = "CRET"; protected final String EVENT_UPDATE = "UPDT"; protected final String EVENT_DELETE = "DELT"; @@ -56,7 +53,7 @@ public abstract class AbstractUpdateMapService implements InitializingBean, protected void createBusinessEvent(BusinessEvent businessEvent, String eventType) { businessEvent.setId(hazelcastServerInstance.getIdGenerator(IMDGDistributedNames.MAP_SEQUENCE_NAME).newId()); businessEvent.setEventTime(Instant.now()); - if (eventType != null && eventType.length() > 4) { // never + if (eventType != null && eventType.length() > 4) { eventType = eventType.substring(0, 4); } businessEvent.setEventType(eventType); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/HazelcastLifecycleSupport.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/HazelcastLifecycleSupport.java index bf249777b..a34c78d4c 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/HazelcastLifecycleSupport.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/HazelcastLifecycleSupport.java @@ -11,9 +11,6 @@ import ru.clearing.platform.dictionary.ConstDictionarySerializable; @Service public class HazelcastLifecycleSupport extends AbstractHazelcastLifecycleSupport { - /** - * Рабочая версия БД. Требуется вручную сверять с DDL.sql и накручивать эту переменную. - */ public static final String CHECK_DB_VERSION = "1.0"; private final Logger log = LoggerFactory.getLogger(this.getClass()); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java index b1c663d90..5d534f161 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java @@ -53,7 +53,7 @@ public class UpdateMapService extends AbstractUpdateMapService { hazelcastServerInstance.getMap(IMDGDistributedNames.Map_ClearingMemberCategory).addLocalEntryListener(this, Predicates.alwaysTrue(), true); hazelcastServerInstance.getMap(IMDGDistributedNames.Map_InformationAccount).addLocalEntryListener(this, Predicates.alwaysTrue(), true); hazelcastServerInstance.getMap(IMDGDistributedNames.Map_Relation).addLocalEntryListener(this, Predicates.alwaysTrue(), true); - hazelcastServerInstance.getMap(IMDGDistributedNames.Map_Security).addLocalEntryListener(this, Predicates.alwaysTrue(), true); // // Существуют наследники этой таблицы + hazelcastServerInstance.getMap(IMDGDistributedNames.Map_Security).addLocalEntryListener(this, Predicates.alwaysTrue(), true); hazelcastServerInstance.getMap(IMDGDistributedNames.Map_UserConnect).addLocalEntryListener(this, Predicates.alwaysTrue(), true); hazelcastServerInstance.getMap(IMDGDistributedNames.Map_User).addLocalEntryListener(this, Predicates.alwaysTrue(), true); hazelcastServerInstance.getMap(IMDGDistributedNames.Map_Currency).addLocalEntryListener(this, Predicates.alwaysTrue(), true); @@ -216,7 +216,7 @@ public class UpdateMapService extends AbstractUpdateMapService { hazelcastServerInstance.getMap(IMDGDistributedNames.Map_TradingClearingRegistryHistory).put(tradingClearingRegistryHistory.getId(), tradingClearingRegistryHistory); - } else if (value instanceof Security) { // Существуют наследники этой таблицы, по этому в последнюю очередь делать эту проверку. + } else if (value instanceof Security) { SecurityHistory securityHistory = new SecurityHistory(); createBusinessEvent(securityHistory, eventType); securityHistory.setObject((Security) value); diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java index 7886fe7b1..e9b72cd65 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java @@ -51,7 +51,6 @@ import static ru.spcex.clearing.imdg.utils.DbDataUtils.generatingRandomString; TestConfiguration.class, DbTestConnectionConfig.class}) @ExtendWith(SpringExtension.class) -//@TestPropertySource(properties = "spring.config.location=D:/repo/mfd/clearing/clearing-parent/imdg/src/main/resources") @TestPropertySource(locations = "/AllMapStoreTest.properties") public class AllMapStoreTest { private static final Long ID = 1000000L; private final Logger log = LoggerFactory.getLogger(this.getClass()); @@ -125,17 +124,14 @@ public class AllMapStoreTest { } } - // @Test public void checkAllMapStoreCreatedTest() throws SQLException { Assumptions.assumeTrue(false, "todo удалить если будет не нужна, пока не работает из-за не все mapStore готовы"); - //Поиск таблиц которым нужно добавить mapStore и вывод результата в консоль List nameTables = new ArrayList<>(); Connection jdbcConnection = DriverManager.getConnection("jdbc:postgresql://10.200.200.133:5432/postgres", "clearing", "Aa111111"); DatabaseMetaData md = jdbcConnection.getMetaData(); ResultSet rs = md.getTables(null, "clearing_tester", "%", new String[]{"TABLE"}); while (rs.next()) { String tableName = rs.getString("TABLE_NAME"); - //сущности для company_info и company_info_history включены соответственно в company и company_history, security используется с money_market_security для хранения MoneyMarketSecurity if (tableName.equalsIgnoreCase("company_info") || tableName.equalsIgnoreCase("company_info_history") || tableName.equalsIgnoreCase("security")) { continue; } @@ -209,8 +205,6 @@ public class AllMapStoreTest { } } - //todo удалить если будет не нужна, пока не работает из-за "deleteIsSupported() return false" в SimpleObjectMapStore. -// @Test public void checkDeletingForAllMapStoreTest() { Assumptions.assumeTrue(false, "todo удалить если будет не нужна, пока не работает из-за \"deleteIsSupported() return false\" в SimpleObjectMapStore."); saveBusinessObjectAndBusinessEventToMaps(); diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/DbTestConnectionConfig.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/DbTestConnectionConfig.java index 0aa13adc3..78c09f196 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/DbTestConnectionConfig.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/config/DbTestConnectionConfig.java @@ -8,7 +8,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.init.DatabasePopulator; -import org.springframework.jdbc.datasource.init.DatabasePopulatorUtils; import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; import ru.spcex.clearing.imdg.error.ModuleInitializeException; @@ -52,7 +51,6 @@ public class DbTestConnectionConfig { cpds.setNumHelperThreads(numHelperThreads); cpds.setCheckoutTimeout(timeoutSec * 1000); logTimeoutPart = String.format(" (timeout=%ds)", timeoutSec); -// DatabasePopulatorUtils.execute(createDatabasePopulator(), cpds); // пересоздание таблиц по DDL result = cpds; String OPERATION_DATABASE_CONNECTION_CHECK = String.format("Database [%s] connection check", dbPath); diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/CheckerBusinessMapStore.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/CheckerBusinessMapStore.java index 2de5f5fbe..e5fa6a098 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/CheckerBusinessMapStore.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/CheckerBusinessMapStore.java @@ -69,7 +69,7 @@ public class CheckerBusinessMapStore { try { theClass = theClass.getSuperclass(); method = theClass.getDeclaredMethod(settingOperation.getMethodName(), settingOperation.getParameterTypes()); - } catch (NoSuchMethodException exception2) { // Имеется некоторое наследование для удобства обработки данных. + } catch (NoSuchMethodException exception2) { theClass = theClass.getSuperclass(); log.debug("settingOperations for Superclass 2 " + theClass.getName()); method = theClass.getDeclaredMethod(settingOperation.getMethodName(), settingOperation.getParameterTypes()); @@ -86,7 +86,6 @@ public class CheckerBusinessMapStore { private final Class[] parameterTypes; private final Object[] params; - //сеттер для полей значения которых обрезаются при вставке в БД public SettingOperation(String methodName, Class[] parameterTypes, Object[] params) { this.methodName = methodName; this.parameterTypes = parameterTypes; diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index 4aabadced..2ad6cde37 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java @@ -51,9 +51,6 @@ public class RunnableMapNamesForTesting { private static void init() { checkerBusinessMapStores = new LinkedList<>(); checkerDictionaryMapStores = new LinkedList<>(); - - //business event -// businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_AccountBalanceHistory, AccountBalanceHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_AccountHistory, AccountHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_BankAccountHistory, BankAccountHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanyHistory, CompanyHistory.class, @@ -65,40 +62,29 @@ public class RunnableMapNamesForTesting { "object.lots", "object.quantity", "object.secondLegAmount") - /*new SettingOperation("object.firstLegAmount", new Object[]{new BigDecimal("850.640000000000000000")}), - new SettingOperation("object.interestAmount", new Object[]{new BigDecimal("851.640000000000000000")}), - new SettingOperation("object.lots", new Object[]{new BigDecimal("852.640000000000000000")}), - new SettingOperation("object.quantity", new Object[]{new BigDecimal("853.640000000000000000")}), - new SettingOperation("object.secondLegAmount", new Object[]{new BigDecimal("854.640000000000000000")})*/ )); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExecutionFondHistory, ExecutionFondHistory.class, usingIgnoringFieldsComparator( "object.interestAmount", "object.lots", "object.quantity", - "object.settlementAmount") - /*new SettingOperation("object.interestAmount", new Object[]{new BigDecimal("850.640000000000000000")}), - new SettingOperation("object.lots", new Object[]{new BigDecimal("851.640000000000000000")}), - new SettingOperation("object.quantity", new Object[]{new BigDecimal("852.640000000000000000")}), - new SettingOperation("object.settlementAmount", new Object[]{new BigDecimal("853.640000000000000000")})*/)); + "object.settlementAmount"))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_InformationAccountHistory, InformationAccountHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_RelationHistory, RelationHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SessionHistory, SessionHistory.class)); -// businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_SecurityHistory, SecurityHistory.class)); // parent table checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UserConnectHistory, UserConnectHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UserHistory, UserHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CurrencyHistory, CurrencyHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ListingHistory, ListingHistory.class, usingIgnoringFieldsComparator( - "object.lotSize") - /*new SettingOperation("object.lotSize", new Object[]{new BigDecimal("850.640000000000000000")}),*/)); + "object.lotSize"))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MarketHistory, MarketHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_NotificationHistory, NotificationHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanySymbolsHistory, CompanySymbolsHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ProfileDocumentHistory, ProfileDocumentHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ClearingMemberCategoryHistory, ClearingMemberCategoryHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MoneyMarketSecurityHistory, MoneyMarketSecurityHistory.class, - usingIgnoringFieldsComparator( // todo поправить тест для ASecurityHistoryMapStore + usingIgnoringFieldsComparator( "object.created", "object.updated", "object.fullName", "object.fullNameEng", "object.instrumentType", @@ -109,7 +95,7 @@ public class RunnableMapNamesForTesting { "object.uuid", "object.workflowStatus" ))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_EquitySecurityHistory, EquitySecurityHistory.class, - usingIgnoringFieldsComparator( // todo поправить тест для ASecurityHistoryMapStore + usingIgnoringFieldsComparator( "object.created", "object.updated", "object.fullName", "object.fullNameEng", "object.instrumentType", @@ -120,7 +106,7 @@ public class RunnableMapNamesForTesting { "object.uuid", "object.workflowStatus" ))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_FixedIncomeSecurityHistory, FixedIncomeSecurityHistory.class, - usingIgnoringFieldsComparator( // todo поправить тест для ASecurityHistoryMapStore + usingIgnoringFieldsComparator( "object.created", "object.updated", "object.fullName", "object.fullNameEng", "object.instrumentType", @@ -131,14 +117,9 @@ public class RunnableMapNamesForTesting { "object.uuid", "object.workflowStatus" ))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_FixedIncomeCashFlowHistory, FixedIncomeCashFlowHistory.class, - usingIgnoringFieldsComparator("object.accruedCoupon") - /* new SettingOperation("getObject.setAccruedCoupon", new Object[]{new BigDecimal("870.680000000000000000")})*/)); + usingIgnoringFieldsComparator("object.accruedCoupon"))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CouponPeriodHistory, CouponPeriodHistory.class, - usingIgnoringFieldsComparator("object.couponRate") - /* new SettingOperation("getObject.setCouponRate", new Object[]{new BigDecimal("870.680000000000000000")})*/)); - - //business object -// businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class)); + usingIgnoringFieldsComparator("object.couponRate"))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Account, Account.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ClearingCalendar, ClearingCalendar.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Company, Company.class, @@ -157,13 +138,12 @@ public class RunnableMapNamesForTesting { checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Planner, Planner.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_PlannerTemplate, PlannerTemplate.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Relation, Relation.class)); -// businessObjectAndBusinessEventForCheckMapStores.add(new BusinessObjectAndBusinessEventForCheckMapStore<>(IMDGDistributedNames.Map_Security, Security.class)); // класс наследуется checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Statement, Statement.class, new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("23.22")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UserConnect, UserConnect.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_User, User.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class - , usingIgnoringFieldsComparator( // todo поправить тест для ASecurityMapStore - проблема в заполнении securityId + , usingIgnoringFieldsComparator( "created", "updated", "fullName", "fullNameEng", "instrumentType", @@ -175,7 +155,7 @@ public class RunnableMapNamesForTesting { ) )); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class, - usingIgnoringFieldsComparator( // todo поправить тест для ASecurityMapStore + usingIgnoringFieldsComparator( "created", "updated", "fullName", "fullNameEng", "instrumentType", @@ -185,8 +165,6 @@ public class RunnableMapNamesForTesting { "shortName", "shortNameEng", "uuid", "workflowStatus" ))); - - //dictionary checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_AccountTypeDictionary, AccountTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_AllowedDictionary, AllowedDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingCategoryDictionary, ClearingCategoryDictionary.class)); @@ -248,8 +226,6 @@ public class RunnableMapNamesForTesting { checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_BalanceDimensionDictionary, BalanceDimensionDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_DepoAccountTypeDictionary, DepoAccountTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingAccountTypeDictionary, ClearingAccountTypeDictionary.class)); - - //object checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_BankAccount, BankAccount.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class)); @@ -302,7 +278,7 @@ public class RunnableMapNamesForTesting { new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class, - usingIgnoringFieldsComparator( // todo поправить тест для ASecurityHistoryMapStore + usingIgnoringFieldsComparator( "created", "updated", "fullName", "fullNameEng", "instrumentType", @@ -312,9 +288,8 @@ public class RunnableMapNamesForTesting { "shortName", "shortNameEng", "uuid", "workflowStatus", - "nominalValue" // только по точности не совпадает поле, но читается - )//, - //new SettingOperation("setNominalValue", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("25.25")}) + "nominalValue" + ) )); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MarketDataLiquidation, MarketDataLiquidation.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Notification, Notification.class)); diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/AbstractHistoryRowMapper.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/AbstractHistoryRowMapper.java index 00f746706..1b1e6c391 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/AbstractHistoryRowMapper.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/AbstractHistoryRowMapper.java @@ -58,8 +58,6 @@ public abstract class AbstractHistoryRowMapper implem protected String snakeCaseToCamelCase(String str) { StringBuilder builder = new StringBuilder(str); for (int i = 0; i < builder.length(); i++) { - - // Check char is underscore if (builder.charAt(i) == '_') { builder.deleteCharAt(i); builder.replace( diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/BusinessEventRowMapper.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/BusinessEventRowMapper.java index 0b04f8be5..25b41f218 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/BusinessEventRowMapper.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/BusinessEventRowMapper.java @@ -54,7 +54,6 @@ public class BusinessEventRowMapper extends AbstractHis setValueFildForObjectIfFildExists(historyObject, historyObject.getClass(), fildName, value); setValueFildForObjectIfFildExists(objectFild, objectFild.getClass(), fildName, value); } catch (TypeMismatchException | NotWritablePropertyException e) { - // Ignore } catch (ClassNotFoundException e) { throw new RuntimeException(e); } diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/DbDataUtils.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/DbDataUtils.java index f02c5a3c9..ca5cc0547 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/DbDataUtils.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/DbDataUtils.java @@ -18,15 +18,8 @@ import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -/** - * Утилитарный класс для работы с embedded базой. - * Так же используется для заполнения значений классов для подготовки вставки в базу - */ public final class DbDataUtils { private static final Logger log = LoggerFactory.getLogger(DbDataUtils.class); - /** - * Паттерн который проверяет что исполняемый скрипт пересоздает таблицу (recreate table * (*)) - */ private final static Pattern PATTERN_CREATE_TABLE = Pattern.compile( "(?m)(?i)^\\s*?(?:re)*(create\\s*?table\\s*?[^\\s$]+?\\s*?\\([\\S\\s]+?(?:\\);|^\\)\\s*?$))"); private final static Pattern PATTERN_ALTER_TABLE = Pattern.compile( @@ -39,15 +32,9 @@ public final class DbDataUtils { "(?i)^\\s*?create"); private static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("ddMMyyyy"); - /** - * Создавать объект этого типа нельзя - */ private DbDataUtils() { } - /** - * Создает пустую базу по DDL скрипту (только таблицы), так же проверяет скрипты DDL на валидность. - */ public static void executeAllDDL(List DDLs, JdbcTemplate jdbcTemplate) { Logger log = LoggerFactory.getLogger(DbDataUtils.class); log.info("Создание всех таблиц по DDL.sql"); @@ -61,26 +48,16 @@ public final class DbDataUtils { public static int executeOneDDL(String ddl, JdbcTemplate jdbcTemplate) { Logger log = LoggerFactory.getLogger(DbDataUtils.class); Matcher m = PATTERN_CREATE_TABLE.matcher(ddl); -// Matcher alterMatcher = PATTERN_ALTER_TABLE.matcher(ddl); List sqls = new ArrayList<>(); -// List alterSqls = new ArrayList<>(); while (m.find()) { String oneDDL = m.group(1); Matcher mr = PATTERN_CHANGE_CREATE_TO_RECREATE.matcher(oneDDL); oneDDL = mr.replaceAll("RECREATE"); sqls.add(oneDDL); } - -// while (alterMatcher.find()) { -// String oneDDL = alterMatcher.group(1); -// alterSqls.add(oneDDL); -// } log.info("Exec batch"); int[] result = jdbcTemplate.batchUpdate(sqls.toArray(new String[0])); -// int alterResult[] = jdbcTemplate.batchUpdate(alterSqls.toArray(new String[0])); log.info("Batch sql done"); - - // Для проставления версии БД int insertCount = 0; Matcher versionM = PATTERN_UPDATE_OR_INSERT_VERSIONDB.matcher(ddl); while (versionM.find()) { @@ -163,20 +140,14 @@ public final class DbDataUtils { field.setAccessible(true); Object value = field.get(object); values.put(field, value); - if (deepScan && isBusinessObject(value)) { // пройти внутрь наших классов - getObjectsFieldValues(value, values, deepScan); // go to deeper + if (deepScan && isBusinessObject(value)) { + getObjectsFieldValues(value, values, deepScan); } } } } } - /** - * Это наш класс и не примитив - * - * @param value объект, возможно clearing-объект. - * @return нужно ли применять deepScan - */ private static boolean isBusinessObject(Object value) { String classesClassPathPrefix = "ru.clearing.classes.objects"; return value != null && value.getClass().getName().startsWith(classesClassPathPrefix); @@ -206,14 +177,6 @@ public final class DbDataUtils { field.set(object, UUID.randomUUID()); } else if (typeField.getName().equals(Instant.class.getName())) { field.set(object, generatingRandomInstant(false)); -// } else if (typeField.getSimpleName().equals(CompanyInfo.class.getSimpleName())) { -// CompanyInfo companyInfo = new CompanyInfo(); -// fillObjectDefaultValues(companyInfo, CompanyInfo.class); -// field.set(object, companyInfo); -// } else if (typeField.getSuperclass().getName().equals(SpcexObjectBase.class.getName())) { -// Object objectField = typeField.getDeclaredConstructor().newInstance(); -// DbDataUtils.fillObjectDefaultValues(objectField, objectField.getClass()); -// field.set(object, objectField); } else { Object objectField = typeField.getDeclaredConstructor().newInstance(); fillObjectDefaultValues(objectField, objectField.getClass()); @@ -227,8 +190,8 @@ public final class DbDataUtils { } public static String generatingRandomString(int targetStringLength) { - int leftLimit = 97; // letter 'a' - int rightLimit = 122; // letter 'z' + int leftLimit = 97; + int rightLimit = 122; Random random = new Random(); return random.ints(leftLimit, rightLimit + 1) diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/MatcherFactory.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/MatcherFactory.java index e4f858eb6..e8b43a00f 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/MatcherFactory.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/MatcherFactory.java @@ -4,11 +4,6 @@ import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; -/** - * Factory for creating test matchers. - *

- * Comparing actual and expected objects via AssertJ - */ public class MatcherFactory { public static Matcher usingIgnoringFieldsComparator(String... fieldsToIgnore) { diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/SpcexObjectBaseRowMapper.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/SpcexObjectBaseRowMapper.java index ce1d441d2..a1e3a7ab9 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/SpcexObjectBaseRowMapper.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/SpcexObjectBaseRowMapper.java @@ -37,7 +37,6 @@ public class SpcexObjectBaseRowMapper extends Abstrac } setValueFildForObjectIfFildExists(object, object.getClass(), fildName, value); } catch (TypeMismatchException | NotWritablePropertyException e) { - // Ignore } catch (ClassNotFoundException e) { throw new RuntimeException(e); } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/KafkaConfig.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/KafkaConfig.java index 79c009425..414e3b7c5 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/KafkaConfig.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/KafkaConfig.java @@ -38,7 +38,7 @@ public class KafkaConfig { @Bean public ProducerFactory pf(ExportLimServiceSettings settings) { KafkaProducerSettings kafkaSettings = settings.getKafkaProducer(); - return KafkaProducerFactory.producerFactory(kafkaSettings); // Использует специальный сериализатор в JSON + return KafkaProducerFactory.producerFactory(kafkaSettings); } @Bean("kafkaTemplate") diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimFormat.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimFormat.java index d49aa149b..96570e556 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimFormat.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimFormat.java @@ -9,8 +9,6 @@ public class LimFormat { private static final DecimalFormat D_FORMAT_2; static { D_FORMAT_2 = new DecimalFormat("#0.00"); -// D_FORMAT_2.setMaximumFractionDigits(2); -// D_FORMAT_2.setMinimumFractionDigits(2); D_FORMAT_2.setGroupingUsed(false); D_FORMAT_2.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ENGLISH)); } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java index aa3a46ede..395fe2e5c 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java @@ -60,7 +60,6 @@ public abstract class AbstractExporterService { Path limFilePath = limFile.toPath(); try { - // todo возможная оптимизация: посмотреть размеры файлов, возможно обойтись без временного файла Files.write(limFilePath, getLimFileRows()); gateway.sendToSftp(limFile); } catch (IOException e) { diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/LauncherCommandReceiver.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/LauncherCommandReceiver.java index 9dea4ab50..5f01e93bb 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/LauncherCommandReceiver.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/LauncherCommandReceiver.java @@ -29,10 +29,10 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi public void afterPropertiesSet() { callback(LauncherCommandRequest.class) .setFunction(action -> moneyExporterService.process()) - .forDestination(Task.unloadingSession_LIMM.topic(), callbacks::put); // LIMM + .forDestination(Task.unloadingSession_LIMM.topic(), callbacks::put); callback(LauncherCommandRequest.class) .setFunction(action -> securityExporterService.process()) - .forDestination(Task.unloadingSession_LIMS.topic(), callbacks::put); // LIMS + .forDestination(Task.unloadingSession_LIMS.topic(), callbacks::put); init(); } } diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/AbstractServiceTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/AbstractServiceTest.java index 2552a3dbe..ce19dbd10 100644 --- a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/AbstractServiceTest.java +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/AbstractServiceTest.java @@ -99,7 +99,6 @@ public abstract class AbstractServiceTest { return registry; } - // see clearing-service RegistryUtil: public static String clearingCode(Registry ofRegistry) { return clearingCode(ofRegistry.getRegistryDesignation(), ofRegistry.getRegistryInstrumentType(), ofRegistry.getRegistryCapacity(), ofRegistry.getRegistryUnit()); } diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterServiceTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterServiceTest.java index bc857354d..42e80ae9c 100644 --- a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterServiceTest.java +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterServiceTest.java @@ -2,18 +2,9 @@ package ru.spcex.clearing.lim.exporter.services; import org.junit.jupiter.api.Test; import ru.spcex.clearing.lim.exporter.AbstractServiceTest; -import ru.spcex.clearing.lim.exporter.config.KafkaConfig; -import ru.spcex.clearing.lim.exporter.config.settings.ExportLimServiceSettings; -import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; -import ru.spcex.clearing.platform.messaging.service.sender.KafkaSenderBuilderImpl; -import ru.spcex.clearing.test.TestUtils; import javax.annotation.PostConstruct; -import java.time.LocalDateTime; - -import static org.junit.jupiter.api.Assertions.*; - class AbstractExporterServiceTest extends AbstractServiceTest { @PostConstruct public void init() { @@ -26,12 +17,5 @@ class AbstractExporterServiceTest extends AbstractServiceTest { String fileName = "limits_money_202305241832.lim"; moneyExporterService.sendLimExportedNotification(fileName); - //TestUtils.waitingSendAndCheckRecord(null, mockProducer); - - /* - Для интеграционного теста см. - KafkaProducerSettings kafkaSettings = settings.getKafkaProducer(); - return KafkaProducerFactory.producerFactory(kafkaSettings); // Использует специальный сериализатор в JSON - */ } } \ No newline at end of file diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java index 85986c05f..b7eff5c7a 100644 --- a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterServiceTest.java @@ -22,10 +22,6 @@ class MoneyExporterServiceTest extends AbstractServiceTest { super.init(); } - /** - * {@link MoneyExporterService#getLimFileRows()}
- * Тест проверяет создание строк документа lim.
- */ @Test void getLimFileRows() { clearAllInImdg(tradingClearingRegistryImdg); diff --git a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterServiceTest.java b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterServiceTest.java index c3938ce17..630b87f58 100644 --- a/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterServiceTest.java +++ b/clearing-parent/lim-exporter/src/test/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterServiceTest.java @@ -22,10 +22,6 @@ class SecurityExporterServiceTest extends AbstractServiceTest { super.init(); } - /** - * {@link SecurityExporterService#getLimFileRows()}
- * Тест проверяет создание строк документа lim.
- */ @Test void getLimFileRows() { clearAllInImdg(tradingClearingRegistryImdg); diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java index 35b78a684..5d9c1cf6f 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java @@ -134,20 +134,6 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements @Override public Optional isDuplicateInMap(Registry entity) { return Optional.empty(); - //для всех isDuplicateInMap: пока не используется, надо по критерию чистить мапу перед вставкой записей, preClearMap. -// Map> fieldValues = Map.of( -// "companyId", entity.getRegistryCode(), -// "sessionId", entity.getSessionId(), -// "securitySymbol", entity.getSecuritySymbol(), -// "clearingDate", entity.getClearingDate(), -// "account", entity.getAccount() -// ); -// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(admittedLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java index bdfabce94..b00d1d98b 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java @@ -130,12 +130,5 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements @Override public Optional isDuplicateInMap(Registry entity) { return Optional.empty(); -// Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); -// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(coveredLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java index 2a88c5690..a16c43e05 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java @@ -101,7 +101,7 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial private ImdgPredicate getPredicateForRegistries(Long companyId) { ImdgPredicateBuilder pb = registryMap.predicateBuilder(); RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AS_T); - if (companyId == null) // default use case + if (companyId == null) return pb.sql(codeSql.build()); else return pb.and( @@ -113,12 +113,5 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial @Override public Optional isDuplicateInMap(Registry entity) { return Optional.empty(); -// Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); -// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(depoBalanceRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java index 3e428210a..f6dfdec1d 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java @@ -78,7 +78,6 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme log.debug("Selected {} PaymentInstruction, do filter by account...", paymentInstructions.size()); Collection depoPaymentInstructions = new ArrayList<>(); for (PaymentInstruction paymentInstruction : paymentInstructions) { - // filter by accountType if (paymentInstruction.getCreditLeg_accountId() != null) { Account account = accountMap.getSingleObjectByID(paymentInstruction.getCreditLeg_accountId()); if (account == null) @@ -132,15 +131,5 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme @Override public Optional isDuplicateInMap(PaymentInstruction entity) { return Optional.empty(); -// Map> fieldValues = Map.of( -// "companyId", entity.getSenderId(), -// "sessionId", entity.getSessionId() -// ); -// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(depoPaymentInstructionRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java index 2b30ff310..ea0bdd24b 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java @@ -97,7 +97,6 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements private void insertExcludeLiabilitiesRegister(Registry registry) { log.trace("Started generating ExcludeLiabilitiesRegister entity..."); ExcludeLiabilitiesRegister excludeLiabilitiesRegister = new ExcludeLiabilitiesRegister(); - //hz communicating Session sessionBySessionId = sessionMap.getSingleObjectByID(registry.getSessionId()); Map> innPredicates = Map.of( "companySymbol", CompanySymbol.INN.getKey(), @@ -126,8 +125,7 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements } else if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { excludeLiabilitiesRegister.setCurrency(((FixedIncomeSecurity) security).getNominalCurrency()); } else if (InstrumentType.EQTY.equalsByKey(security.getInstrumentType())) { - // не заполняется Currency - } else { // never + } else { log.warn("Unexpected security[{}] type {}", security.getId(), security.getInstrumentType()); } } @@ -156,12 +154,5 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements @Override public Optional isDuplicateInMap(Registry entity) { return Optional.empty(); -// Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); -// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(excludeLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java index e57fcf143..bd011277a 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java @@ -73,12 +73,6 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ .setConsumer(this::executionRegisterNew) .forDestination(createRegistry_ECNR.topic(), callbacks::put); - - // TODO возможно deprecated -// callback(ExecutionRegisterOnSaveRequest.class) -// .setConsumer(this::executionRegisterOnSavingOfTrade) -// .forDestination(Consts.REGISTRY_EXECUTION_REGISTER_ON_SAVE, callbacks::put); - init(); } @@ -248,7 +242,6 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ } - // TODO возможно deprecated public void executionRegisterOnSavingOfTrade(BaseRequest userRequest) { ExecutionRegisterOnSaveRequest request = userRequest.getRequestPayload(); ExecutionCommon common = setUpExecutionCommon(request); @@ -261,7 +254,6 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ } } - // TODO возможно deprecated private void updateExecutionRegister(boolean isFond, ExecutionCommon common, ExecutionRegister registerToUpdate) { log.trace("Started updating ExecutionRegister entity..."); registerToUpdate.setSecurityId(common.getSecurityId()); @@ -274,7 +266,6 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ } - // todo возможно deprecated private ExecutionCommon setUpExecutionCommon(ExecutionRegisterOnSaveRequest request) { ExecutionFond fond = null; ExecutionDeposit deposit = null; @@ -327,14 +318,6 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ @Override public Optional isDuplicateInMap(ExecutionCommon entity) { return Optional.empty(); -// Map> map = Map.of("exchangeExecutionId", entity.getExchangeExecutionId(), -// "tradingDate", LocalDate.now()); //clarify timezone -// Optional message = fieldValuesValidator.apply(map).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(executionRegisterMap.getSingleObjectByFieldValues(map)); } } \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ICheckDuplicate.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ICheckDuplicate.java index 9f56227d0..f24db6c26 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ICheckDuplicate.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ICheckDuplicate.java @@ -2,13 +2,6 @@ package ru.spcex.clearing.registry.service; import java.util.Optional; -/** - * @param - тип объекта по которому мы будем проверять наличие дубликата - * @param - тип объекта (реестра) который мы нашли как дубликат - * */ public interface ICheckDuplicate { - /** - * @return возвращает optional с дубликатом - * */ Optional isDuplicateInMap(T entity); } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java index 5ccb096f9..217be4468 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java @@ -120,8 +120,7 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial } else if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { liabilitiesRegister.setCurrency(((FixedIncomeSecurity) security).getNominalCurrency()); } else if (InstrumentType.EQTY.equalsByKey(security.getInstrumentType())) { - // не заполняется Currency - } else { // never + } else { log.warn("Unexpected security[{}] type {}", security.getId(), security.getInstrumentType()); } } @@ -155,12 +154,5 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial @Override public Optional isDuplicateInMap(Registry entity) { return Optional.empty(); -// Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); -// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(liabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java index 826677d25..c1899cb94 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java @@ -1,8 +1,6 @@ package ru.spcex.clearing.registry.service; import org.apache.commons.lang3.tuple.MutablePair; -import org.apache.commons.lang3.tuple.MutableTriple; -import org.apache.commons.lang3.tuple.Triple; import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.producer.Producer; import org.slf4j.Logger; @@ -82,13 +80,6 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia log.warn("Found too many ({}) registries in group: {}", result.size(), result); } return result; -// return regGroups.values().stream().map((List regLst) -> { -// for (Registry r : regLst) -// if (RegistryUnit.T.equalsByKey(r.getRegistryUnit())) { -// return r;// приоритетно нужен AM_T -// } -// return regLst.iterator().next(); -// }).collect(Collectors.toList()); } public void moneyBalanceRegisterNew(BaseRequest userRequest) { @@ -103,9 +94,7 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia List> registerGroups = groupingRegistry(registries); preClearMap.preClearMap(); registerGroups.forEach((registryItems -> { -// if (isDuplicateInMap(registry).isEmpty()) { insertMoneyBalanceRegister(registryItems); -// } } )); log.debug("successfully processed"); @@ -127,9 +116,6 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia if (registry == null) registry = registryGroup.iterator().next(); log.trace("Group of {} registries: T={}; B={}; F={}", registryGroup.size(), registryForRemainderSum, registryForBlockedSum, registryForUnblockedSum); -// Registry registryForRemainderSum = registryMap.getFirstObjectByPredicate(getSqlForRemainderSum(registry.getCompanyId(), registry.getAccount())); -// Registry registryForBlockedSum = registryMap.getFirstObjectByPredicate(getSqlForBlockedSum(registry.getCompanyId(), registry.getAccount())); -// Registry registryForUnblockedSum = registryMap.getFirstObjectByPredicate(getSqlForUnblockedSum(registry.getCompanyId(), registry.getAccount())); Company company = companyMap.getFirstObjectByFieldValues(Map.of("id", 2L)); CompanySymbols companySymbol = companySymbolsMap.getFirstObjectByFieldValues(Map.of("companySymbol", CompanySymbol.INN.getKey(), "companyId", registry.getCompanyId())); String setHouseName = company != null ? company.getShortName() : null; @@ -213,14 +199,5 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia @Override public Optional isDuplicateInMap(Registry entity) { return Optional.empty(); -// Map fieldValues = new HashMap<>(); -// fieldValues.put("companyId", entity.getCompanyId()); -// fieldValues.put("sessionId", entity.getSessionId()); -// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(moneyBalanceRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java index 684f3437c..8f40b8a0c 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java @@ -74,7 +74,6 @@ public class MoneyPaymentInstructionRegisterService extends QueueConsumer implem log.debug("Selected {} PaymentInstruction, do filter by account...", paymentInstructions.size()); Collection moneyPaymentInstructions = new ArrayList<>(); for (PaymentInstruction paymentInstruction : paymentInstructions) { - // filter by accountType if (paymentInstruction.getCreditLeg_accountId() != null) { Account account = accountMap.getSingleObjectByID(paymentInstruction.getCreditLeg_accountId()); if (account == null) @@ -124,12 +123,5 @@ public class MoneyPaymentInstructionRegisterService extends QueueConsumer implem @Override public Optional isDuplicateInMap(PaymentInstruction entity) { return Optional.empty(); -// Map> fieldValuesCompanyIdSessionId = Map.of("senderId", entity.getSenderId(), "date", entity.getClearingDate()); -// Optional message = fieldValuesValidator.apply(fieldValuesCompanyIdSessionId).tillFirstError(); -// if (message.isPresent()) { -// log.warn("Illegal value in map for request to imdg: {}", message.get()); -// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); -// } -// return Optional.ofNullable(moneyPaymentInstructionRegisterMap.getFirstObjectByFieldValues(fieldValuesCompanyIdSessionId)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/util/PreClearMap.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/util/PreClearMap.java index ba80db4e7..845c5b479 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/util/PreClearMap.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/util/PreClearMap.java @@ -54,8 +54,6 @@ public class PreClearMap { return new PreClearMap<>(map, new PredicateBuilder() { @Override public ImdgPredicate query(ImdgPredicateBuilder pb, LocalDate date) { -// Instant atFrom = TimeUtil.localDateToInstant(date); -// Instant atTill = TimeUtil.localDateToInstant(date.plusDays(1)); Instant atFrom = TimeUtil.localDateToInstant(date).truncatedTo(ChronoUnit.DAYS); Instant atTill = TimeUtil.localDateToInstant(date.plusDays(1)).plus(1, ChronoUnit.DAYS).truncatedTo(ChronoUnit.DAYS); return pb.and(pb.greatEqual(fieldName, atFrom), pb.less(fieldName, atTill)); diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/validation/ValuesOfMapNonNullRule.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/validation/ValuesOfMapNonNullRule.java index 03746ec36..94df433d8 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/validation/ValuesOfMapNonNullRule.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/validation/ValuesOfMapNonNullRule.java @@ -7,9 +7,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Map; import java.util.Optional; -/** - * Проверка наличия компании с переданными в запросе companySymbol и companySymbolCode (реквизиты) - */ public class ValuesOfMapNonNullRule implements IValidationRule>> { @Override public Optional validate(ImdgValidationContext> context) { diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterServiceTest.java index 679d151c7..f9e4e8042 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterServiceTest.java @@ -40,7 +40,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; }) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) class AdmittedLiabilitiesRegisterServiceTest { - //consts private static int requestCount = 0; private static final String securitySymbol = "SYMBOL"; @@ -69,12 +68,9 @@ class AdmittedLiabilitiesRegisterServiceTest { @PostConstruct private void init() { ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId(); - - //initializing of imdg companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); admittedLiabilitiesRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_AdmittedLiabilitiesRegister, AdmittedLiabilitiesRegister.class); - // initialing objects for imdg repos Long securityId = 1L; Registry registry = new Registry(); @@ -101,8 +97,6 @@ class AdmittedLiabilitiesRegisterServiceTest { @Test @Order(1) void executionRegisterNewForClearingDate() { - - //making launcherCommand LauncherCommandRequest launcherCommandRequest = new LauncherCommandRequest(); String jsonString = TestUtils.getJsonStringForSystem(launcherCommandRequest, 0L); @@ -114,8 +108,6 @@ class AdmittedLiabilitiesRegisterServiceTest { jsonString); TestUtils.waitingSendAndCheckRecord(0L, producer); - - //take all values is procceed imdg Collection allValues = admittedLiabilitiesRegisterMap.getAllValues(); AdmittedLiabilitiesRegister admittedLiabilitiesRegister = allValues.iterator().next(); assertEquals(companyId, admittedLiabilitiesRegister.getCompanyId()); diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterServiceTest.java index d6484bfeb..4938d90e9 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterServiceTest.java @@ -68,12 +68,9 @@ class CoveredLiabilitiesRegisterServiceTest { @PostConstruct private void init() { ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId(); - - //initializing of imdg companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); coveredLiabilitiesRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CoveredLiabilitiesRegister, CoveredLiabilitiesRegister.class); - // initialing objects for imdg repos Long securityId = 1L; Registry registry = new Registry(); @@ -100,8 +97,6 @@ class CoveredLiabilitiesRegisterServiceTest { @Test @Order(1) void executionRegisterNewForClearingDate() { - - //making launcherCommand LauncherCommandRequest launcherCommandRequest = new LauncherCommandRequest(); String jsonString = TestUtils.getJsonStringForSystem(launcherCommandRequest, 0L); @@ -113,8 +108,6 @@ class CoveredLiabilitiesRegisterServiceTest { jsonString); TestUtils.waitingSendAndCheckRecord(0L, producer); - - //take all values is procceed imdg Collection allValues = coveredLiabilitiesRegisterMap.getAllValues(); CoveredLiabilitiesRegister coveredLiabilitiesRegister = allValues.iterator().next(); assertEquals(companyId, coveredLiabilitiesRegister.getCompanyId()); diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterServiceTest.java index ae73c8c99..31040a3a4 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterServiceTest.java @@ -64,11 +64,8 @@ class DepoBalanceRegisterServiceTest { @PostConstruct private void init() { ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId(); - - //initializing of imdg registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); depoBalanceRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoBalanceRegister, DepoBalanceRegister.class); - // initialing objects for imdg repos Long securityId = 1L; Registry registry = new Registry(); @@ -87,8 +84,6 @@ class DepoBalanceRegisterServiceTest { @Test @Order(1) void executionRegisterNewForClearingDate() { - - //making launcherCommand LauncherCommandRequest launcherCommandRequest = new LauncherCommandRequest(); String jsonString = TestUtils.getJsonStringForSystem(launcherCommandRequest, 0L); @@ -100,8 +95,6 @@ class DepoBalanceRegisterServiceTest { jsonString); TestUtils.waitingSendAndCheckRecord(0L, producer); - - //take all values is procceed imdg Collection allValues = depoBalanceRegisterMap.getAllValues(); DepoBalanceRegister depoBalanceRegister = allValues.iterator().next(); assertEquals(sessionId, depoBalanceRegister.getSessionId()); diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterServiceTest.java index 0a93a52af..c6cc17808 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterServiceTest.java @@ -72,15 +72,12 @@ class DepoPaymentInstructionRegisterServiceTest { @PostConstruct private void init() { ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId(); - - //initializing of imdg depoPaymentInstructionRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoPaymentInstructionRegister, DepoPaymentInstructionRegister.class); paymentInstructionMap = imdgProvider.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class); sessionMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); tradingClearingRegistryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); inOutDirectionDictionaryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class); accountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); - // initialing objects for imdg repos } @Test @@ -116,8 +113,6 @@ class DepoPaymentInstructionRegisterServiceTest { account.setId(TRADING_CLEARING_REGISTRY_DEPO_ACCOUNT_ID); account.setAccountType(AccountType.Depo.getKey()); accountMap.update(account); - - //making launcherCommand LauncherCommandRequest launcherCommandRequest = new LauncherCommandRequest(); String jsonString = TestUtils.getJsonStringForSystem(launcherCommandRequest, 0L); @@ -129,8 +124,6 @@ class DepoPaymentInstructionRegisterServiceTest { jsonString); TestUtils.waitingSendAndCheckRecord(0L, producer); - - //take all values is procceed imdg Collection allValues = depoPaymentInstructionRegisterMap.getAllValues(); DepoPaymentInstructionRegister depoPaymentInstructionRegister = allValues.iterator().next(); assertEquals(SESSION_ID, depoPaymentInstructionRegister.getSessionId()); diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterServiceTest.java index 735ac3811..2f79a9807 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterServiceTest.java @@ -110,7 +110,6 @@ class ExcludeLiabilitiesRegisterServiceTest { companySymbols.setCompanySymbol(CompanySymbol.INN.getKey()); companySymbols.setCompanySymbolValue(COMPANY_SYMBOL_VALUE); companySymbolMap.insert(companySymbols); - //making launcherCommand LauncherCommandRequest launcherCommandRequest = new LauncherCommandRequest(); String jsonString = TestUtils.getJsonStringForSystem(launcherCommandRequest, 0L); @@ -122,8 +121,6 @@ class ExcludeLiabilitiesRegisterServiceTest { jsonString); TestUtils.waitingSendAndCheckRecord(0L, producer); - - //take all values is procceed imdg Collection allValues = excludeLiabilitiesRegisterMap.getAllValues(); ExcludeLiabilitiesRegister excludeLiabilitiesRegister = allValues.iterator().next(); assertEquals(SESSION_ID, excludeLiabilitiesRegister.getSessionId()); diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterServiceTest.java index d842b4ee9..8dc677920 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterServiceTest.java @@ -113,7 +113,6 @@ class LiabilitiesRegisterServiceTest { companySymbols.setCompanySymbol(COMPANY_SYMBOL_INN); companySymbols.setCompanySymbolValue(COMPANY_SYMBOL_VALUE); companySymbolsMap.insert(companySymbols); - //making launcherCommand LauncherCommandRequest launcherCommandRequest = new LauncherCommandRequest(); String jsonString = TestUtils.getJsonStringForSystem(launcherCommandRequest, 0L); @@ -125,8 +124,6 @@ class LiabilitiesRegisterServiceTest { jsonString); TestUtils.waitingSendAndCheckRecord(0L, producer); - - //take all values is procceed imdg Collection allValues = liabilitiesRegisterMap.getAllValues(); LiabilitiesRegister liabilitiesRegister = allValues.iterator().next(); assertEquals(REGISTRY_COMPANY_ID, liabilitiesRegister.getCompanyId()); diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterServiceTest.java index 085ef2e32..527a274b5 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterServiceTest.java @@ -125,7 +125,6 @@ class MoneyBalanceRegisterServiceTest { account.setAccountType(AccountType.Info.getKey()); account.setAccount(ACCOUNT_ACCOUNT); accountMap.insert(account); - //making launcherCommand LauncherCommandRequest launcherCommandRequest = new LauncherCommandRequest(); launcherCommandRequest.setCompanyId(REGISTRY_COMPANY_ID); String jsonString = TestUtils.getJsonStringForSystem(launcherCommandRequest, 0L); @@ -137,8 +136,6 @@ class MoneyBalanceRegisterServiceTest { jsonString); TestUtils.waitingSendAndCheckRecord(0L, producer); - - //take all values is procceed imdg Collection allValues = moneyBalanceRegisterMap.getAllValues(); MoneyBalanceRegister moneyBalanceRegister = allValues.iterator().next(); assertEquals(REGISTRY_COMPANY_ID, moneyBalanceRegister.getCompanyId()); diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterServiceTest.java index 2eed6bcb9..d8738f836 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterServiceTest.java @@ -107,7 +107,6 @@ class MoneyPaymentInstructionRegisterServiceTest { account.setId(CREDITLEG_ACCOUNT_ID_CONST); account.setAccountType(AccountType.Clrn.getKey()); accountMap.update(account); - //making launcherCommand LauncherCommandRequest launcherCommandRequest = new LauncherCommandRequest(); String jsonString = TestUtils.getJsonStringForSystem(launcherCommandRequest, 0L); @@ -119,8 +118,6 @@ class MoneyPaymentInstructionRegisterServiceTest { jsonString); TestUtils.waitingSendAndCheckRecord(0L, producer); - - //take all values is procceed imdg Collection allValues = moneyPaymentInstructionRegisterMap.getAllValues(); MoneyPaymentInstructionRegister moneyPaymentInstructionRegister = allValues.iterator().next(); assertEquals(CREDITLEG_ACCOUNT_CONST, moneyPaymentInstructionRegister.getCreditLegAccount()); diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/util/PreClearMapTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/util/PreClearMapTest.java index e6b8a8add..e8548e02b 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/util/PreClearMapTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/util/PreClearMapTest.java @@ -7,11 +7,10 @@ import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.iml.hazelcast.adapter.predicate.ImdgPredicateBuilderHazelcast; -import ru.spcex.platform.utils.time.TimeUtil; import java.time.LocalDate; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; class PreClearMapTest { @@ -43,8 +42,5 @@ class PreClearMapTest { ImdgPredicate predicate = pcm.predicateBuilder.query(pb, dt); assertEquals("(dateField>=2023-09-28T00:00:00Z AND dateField<2023-09-30T00:00:00Z)", predicate.toString()); -// String expectedQuery = "(dateField>=" + TimeUtil.localDateToInstant(dt) + " AND dateField<" + TimeUtil.localDateToInstant(dt.plusDays(1)) + ")"; -// assertEquals("(dateField>=2023-09-28T21:00:00Z AND dateField<2023-09-29T21:00:00Z)", predicate.toString()); -// assertEquals(expectedQuery, predicate.toString()); } } \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/utils/MatcherFactory.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/utils/MatcherFactory.java index bd87052c0..b0fb3476b 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/utils/MatcherFactory.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/utils/MatcherFactory.java @@ -4,11 +4,6 @@ import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; -/** - * Factory for creating test matchers. - *

- * Comparing actual and expected objects via AssertJ - */ public class MatcherFactory { public static Matcher usingIgnoringFieldsComparator(String... fieldsToIgnore) { diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/utils/TestUtils.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/utils/TestUtils.java index 4795327bb..714ab8e80 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/utils/TestUtils.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/utils/TestUtils.java @@ -42,8 +42,6 @@ public class TestUtils { requestInfoUpdate.setId(id); requestInfoUpdate.setStatus(Success); predictableBaseRequest.setRequestPayload(requestInfoUpdate); - - //waiting for kafka producer send message (finale event) verify(mockProducer, timeout(30_000L).times(1)) .send(producerRecord.capture()); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java index 0492bb849..f11201d24 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java @@ -21,21 +21,4 @@ public class ReportsServiceApplication { System.exit(-1); } } - -/* для тестирования: - ReportsService reportsService = new ReportsService(); - reportsService.writeXML(); - test(context); - @Deprecated - public static void test(ConfigurableApplicationContext context) { - ImdgProvider imdg = context.getBean(ImdgProvider.class); - - ReportINACCNT_Collector collector = new ReportINACCNT_Collector(imdg); - ReportINACCNT report = collector.collectReportForClearingCode("test_clearing_code"); - XStream xStream = new XStream(new XppDriver(new NoNameCoder())); - xStream.processAnnotations(ReportINACCNT.class); - String out = xStream.toXML(report); - System.out.println(out); - } - */ } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/CSVReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/CSVReportBuilder.java index 6f07fde90..9e8a24cdb 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/CSVReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/CSVReportBuilder.java @@ -28,77 +28,36 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; -/** - * Класс для построения отчетов в формате CSV - * - * @param

тип параметров, используемых при построении отчета - */ public abstract class CSVReportBuilder { protected final Logger log = LoggerFactory.getLogger(getClass()); protected DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy'T'HH:mm:ss"); protected DateTimeFormatter dateTimeFormatter_YYMMDDHHmmssSSS = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS"); protected DateTimeFormatter dateFormatter_yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd"); - /** - * Возвращает списком значения CSV отчета. Каждый элемент списка - строка, элемент массива внутри списка - столбец. - */ protected abstract List getRows(); - /** - * Временной пояс для отчета - */ protected ZoneId getReportZoneId() { return ZoneId.of("Europe/Moscow"); } - /** - * Название отчета, используется для формирования имени отчета (без указания формата) - * - * @param params Параметры формирования отчета - */ protected String getReportFilename(P params) { return "%s_%s".formatted(getReportKey().getKey(), dateTimeFormatter_YYMMDDHHmmssSSS.format(LocalDateTime.now())); } - /** - * Тип отчета по {@link ReportBuilderType} - */ public abstract ReportBuilderType getReportType(); public abstract ReportKeys getReportKey(); - /** - * Тип параметров для построения отчетов - */ public abstract Class

getParamsClass(); - /** - * Класс отчета - */ public abstract Class getReportClass(); - /** - * Секция отчета (для конкретного отчета может быть перегружена) - */ public String getSection() { return null; } - /** - * Формирование отчета на основе параметров - * - * @param params Параметры формирования отчета - */ protected abstract void collect(P params); - /** - * Создает CSVWriter. Если требуется изменить параметры выходного CSV файла, этот метод следует переопределить. - * - * @param file Файл отчета - * @return Созданный CSVWriter - *

- * todo check it - */ protected ICSVWriter createCsvWriter(File file) throws IOException { Writer writer = new FileWriter(file); CSVWriterBuilder csvWriterBuilder = new CSVWriterBuilder(writer) @@ -129,7 +88,6 @@ public abstract class CSVReportBuilder { .build(); if (!rows.isEmpty()) sbc.write(rows); else { - // Для записи заголовков в пустой файл Constructor constructor = getReportClass().getDeclaredConstructor(); R obj = constructor.newInstance(); String[] headers = customStrategy.generateHeader(obj); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/EmptyParams.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/EmptyParams.java index 6cb5490b4..d76eb8fe1 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/EmptyParams.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/EmptyParams.java @@ -1,7 +1,4 @@ package ru.spcex.clearing.reports.builders; -/** - * Класс для формирования отчета без параметров - */ public class EmptyParams { } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/SessionIdParam.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/SessionIdParam.java index 1e5657052..b030d5a09 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/SessionIdParam.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/SessionIdParam.java @@ -2,9 +2,6 @@ package ru.spcex.clearing.reports.builders; import java.util.List; -/** - * Параметры для формирования отчета по SessionId - */ public class SessionIdParam { private List sessionId; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSCommissionTradesReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSCommissionTradesReportBuilder.java index d1e5fa40a..39f60f32f 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSCommissionTradesReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSCommissionTradesReportBuilder.java @@ -125,30 +125,6 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder reportRequestGREPValidator( Map> imdgForValidation @@ -116,8 +114,6 @@ public class ValidationConfig { }; } - // todo оставил бин валидатора на будущее, если в дальнейшем придется проверять запрос. в текущей версии, по факту, - // запрос не проверяется: в случае если sessionId не указан отчеты не строятся @Bean("reportRequestGRETValidator") public Function reportRequestGRETValidator( Map> imdgForValidation @@ -135,8 +131,6 @@ public class ValidationConfig { }; } - // todo оставил бин валидатора на будущее, если в дальнейшем придется проверять запрос. в текущей версии, по факту, - // запрос не проверяется: в случае если sessionId не указан отчеты не строятся @Bean("reportRequestGREFValidator") public Function reportRequestGREFValidator( Map> imdgForValidation diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/DOCXService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/DOCXService.java index fc2a0861c..1f1cf48e8 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/DOCXService.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/DOCXService.java @@ -18,45 +18,16 @@ import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import java.util.stream.Collectors; -/** - * todo Пока неизвестно нужны ли будут ещё эти уведомления, поэтому весь связанный код переместил в один пакет - *

- * Сервис для работы с DOCX файлами - * Читает шаблон .docx и во всех текстовых элементах меняет переданные ключи на соответствующие им значения - * Пример ключа по умолчанию: ${ключ} - *

- * При использовании нового шаблона, необходимо отредактировать docx документ так, чтобы ключ содержался в одном - * элементе. Для этого нужно вырезать ключ и в это же место вставить его как текст, без форматирования. Если нужно, - * идентификатору потом можно установить стиль, который будет применён к вставляемой строке. - */ public class DOCXService { private final Logger log = LoggerFactory.getLogger(getClass()); - /** - * Паттерн поиска ключей в файле по умолчанию - */ private final Pattern DEFAULT_KEY_PATTERN = Pattern.compile("\\$\\{.*?}"); - /** - * При инициализации сохраняет все имеющиеся ключи (ищет по маске keyPattern), найденные в текстовых элементах документа - */ private List keyPositions = new LinkedList<>(); - /** - * Паттерн поиска ключей в файле - */ private Pattern keyPattern = DEFAULT_KEY_PATTERN; - /** - * Файл шаблона - */ private URL templateFile; - /** - * Флаг инициализации - */ private boolean initialized = false; - /** - * (ре)Инициализация сервиса - */ public boolean init(URL templateFile, String keyPattern) { initialized = false; if (templateFile == null) { @@ -80,16 +51,6 @@ public class DOCXService { return true; } - /** - * Вставка значений в шаблон. Шаблон может содержать любое количество ключей, при этом эти ключи должны содержаться в - * valuesMap. - * - * @param outputFile Выходной файл. Должен быть либо файлом (будет перезаписан), либо отсутствовать - * @param valuesMap Мапа значений. В файле шаблона будут искаться ключи этой мапы и заменяться на соответствующие значения. - * @param checkKeys True - строгий режим, где будет проверено наличие всех ключей из файла в valuesMap. - * False - мягкий режим, отсутствующие ключи будут пропущены - * @return true - если вставка прошла успешно - */ public boolean insertValues(File outputFile, Map valuesMap, boolean checkKeys) throws Exception { @@ -143,11 +104,6 @@ public class DOCXService { return true; } - /** - * Проверка прочтённых ключей (keyPositions) и переданных (valuesMap.keySet()) на соответствие. - * Для успешной вставки мапа должна содержать все ключи, имеющиеся в файле. - * Метод вызывается для проверки только в строгом режиме - */ private boolean checkIntersection(Map valuesMap, List notPresentInMap) { Set keysFromMap = valuesMap.keySet(); Set keysFromFile = keyPositions.stream().map(keyPosition -> keyPosition.key).collect(Collectors.toSet()); @@ -163,9 +119,6 @@ public class DOCXService { return false; } - /** - * Вставка значений в элементы XWPFRun - */ private void insertValues(Map valuesMap) { for (KeyPositionInDoc keyPosition : keyPositions) { String key = keyPosition.key; @@ -182,10 +135,6 @@ public class DOCXService { } } - /** - * Сбор ключей из таблицы. - * Ячейка таблицы может являться как параграфом, так и таблицей, поэтому метод работает рекурсивно - */ private void collectKeysFromTable(XWPFTable srcTable) { for (XWPFTableRow row : srcTable.getRows()) { for (XWPFTableCell cell : row.getTableCells()) { @@ -200,9 +149,6 @@ public class DOCXService { } } - /** - * Сбор ключей из параграфа - */ private void collectKeysFromParagraph(XWPFParagraph paragraph) { XWPFRun runForConcat = null; int first = 0; @@ -222,12 +168,6 @@ public class DOCXService { String key = matcher.group(); keyPositions.add(new KeyPositionInDoc(key, run, currPos)); } - /** - * если ключ не нашли регуляркой но есть начало ключа "${" соберем ключ из фрагментов и отделим от текста - * например из фрагментов XWPFRun(учитывается только текст): - * [test , someText${, some, Key}/${ano, ther, Key}someText, test] - * получим [test , someText, ${someKey}, /, ${anotherKey}, someText, test] - */ if (needConcat) { concatText = concatText + currText; if (currText.contains("}")) { @@ -267,7 +207,6 @@ public class DOCXService { } } } catch (IndexOutOfBoundsException ignored) { - // can't get all max text position for XWPFRun } } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java index e1ac4bb34..1da170fb6 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/notifications/NotificationBuilder.java @@ -82,7 +82,6 @@ public abstract class NotificationBuilder { if (companySymbolsCollection.size() >= 1) { companySymbols = companySymbolsCollection.iterator().next(); } else { -// log.warn("CompanySymbols with sql {} not found", companySymbolsSql); return ""; } return companySymbols.getCompanySymbolValue(); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/NotificationService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/NotificationService.java index af693ac74..ad1bd01c3 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/NotificationService.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/NotificationService.java @@ -114,7 +114,6 @@ public class NotificationService extends QueueConsumer implements InitializingBe private void sendFilesToSftp(Collection files) { for (File file : files) { -// notificationsSftpGateway.sendToSftp(file); if (deleteAfterSend) { boolean delete = file.delete(); if (!delete) { diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/notifications/NCMPNotificationBuilderTest.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/notifications/NCMPNotificationBuilderTest.java index f5624dc34..f59d67da6 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/notifications/NCMPNotificationBuilderTest.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/notifications/NCMPNotificationBuilderTest.java @@ -77,8 +77,6 @@ class NCMPNotificationBuilderTest { companySymbols.setCompanySymbol("RGRC"); companySymbols.setCompanySymbolValue("RGRC test"); companySymbolsImdg.insert(companySymbols); - -// clearAllInImdg(accountImdg); Account account = new Account(); account.setId(consumerId); account.setCompanyId(consumerId); @@ -87,7 +85,6 @@ class NCMPNotificationBuilderTest { accountImdg.insert(account); } - // @Test//тест заполнения шаблона void buildNotification() { NCMPNotificationBuilder builder = new NCMPNotificationBuilder(imdgProvider); File outputFile = builder.buildNotification(consumerId); diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/notifications/NTCRNotificationBuilderTest.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/notifications/NTCRNotificationBuilderTest.java index 2788f0fc7..9011cfc72 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/notifications/NTCRNotificationBuilderTest.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/notifications/NTCRNotificationBuilderTest.java @@ -71,8 +71,7 @@ class NTCRNotificationBuilderTest { tradingClearingRegistryImdg.insert(tradingClearingRegistry); } -// @Test//тест заполнения шаблона - void buildNotification() { +void buildNotification() { NTCRNotificationBuilder builder = new NTCRNotificationBuilder(imdgProvider); File outputFile = builder.buildNotification(consumerId); try { diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java index bb13c0e57..33157d0cd 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/DOCXServiceTest.java @@ -32,8 +32,7 @@ class DOCXServiceTest { file.delete(); } -// @Test//для отладки алгоритма объединения ключей в методе DOCXService.collectKeysFromParagraph(XWPFParagraph paragraph) - void normalize() { +void normalize() { List data = Arrays.asList(new String[]{"test ", "someText${", "some", "Key}/${ano", "ther", "Key}someText", "test"}); String concatText = ""; @@ -83,7 +82,6 @@ class DOCXServiceTest { } } catch (IndexOutOfBoundsException ignored) { - // can't get all max text position for XWPFRun } } System.out.println(data.toString()); diff --git a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_BP.java b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_BP.java index bb242d6dc..124223b60 100644 --- a/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_BP.java +++ b/clearing-parent/reports-service/src/test/java/ru/spcex/clearing/reports/services/ReportServiceTest_BP.java @@ -194,8 +194,6 @@ public class ReportServiceTest_BP { testExecutionFond.setSessionId(TEST_SESSION_ID_3); executionFondImdg.update(testExecutionFond); - - // TEST INFTYPE_1 testExecutionFond.setTradingDate(LocalDate.now().minus(10, ChronoUnit.DAYS)); testExecutionFond.setSettlementDate(LocalDate.now()); testExecutionFond.setCoverageStatus(Allowed.ALLOWED.getKey()); @@ -247,8 +245,6 @@ public class ReportServiceTest_BP { testExecutionFond.setSessionId(TEST_SESSION_ID_3); executionFondImdg.update(testExecutionFond); - - // TEST INFTYPE_2 testExecutionFond.setTradingDate(LocalDate.now()); testExecutionFond.setSettlementDate(LocalDate.now()); testExecutionFond.setCoverageStatus(Allowed.ALLOWED.getKey()); @@ -297,8 +293,6 @@ public class ReportServiceTest_BP { final LocalDate oldExecutionFondTradingDate = testExecutionFond.getTradingDate(); final LocalDate oldExecutionFondSettlementDate = testExecutionFond.getSettlementDate(); final String oldExecutionFondCoverageStatus = testExecutionFond.getCoverageStatus(); - - // TEST INFTYPE_3 testExecutionFond.setSettlementDate(LocalDate.now().plus(10, ChronoUnit.DAYS)); testExecutionFond.setTradingDate(LocalDate.now().plus(10, ChronoUnit.DAYS)); testExecutionFond.setCoverageStatus(Allowed.ALLOWED.getKey()); @@ -347,8 +341,6 @@ public class ReportServiceTest_BP { final LocalDate oldExecutionFondTradingDate = testExecutionFond.getTradingDate(); final LocalDate oldExecutionFondSettlementDate = testExecutionFond.getSettlementDate(); final String oldExecutionFondCoverageStatus = testExecutionFond.getCoverageStatus(); - - // TEST INFTYPE_4 testExecutionFond.setSessionId(TEST_SESSION_ID_1); testExecutionFond.setSettlementDate(LocalDate.now()); testExecutionFond.setTradingDate(LocalDate.now().plus(10, ChronoUnit.DAYS)); @@ -509,7 +501,6 @@ public class ReportServiceTest_BP { testExecutionFond.setCounterPartyId(TEST_COUNTER_PARTY_ID_1); testExecutionFond.setCoverageStatus(TEST_COVERAGE_STATUS_1); testExecutionFond.setSessionId(TEST_SESSION_ID_1); -// testExecutionFond.setClearingDate(TEST_CLEARING_DATE_1); testExecutionFond.setClearingDate(LocalDate.now()); Long TEST_EXCHANGE_ORDER_ID = 20007L; testExecutionFond.setExchangeOrderId(TEST_EXCHANGE_ORDER_ID); diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java index 75f864dc1..1a2818eb7 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java @@ -47,10 +47,6 @@ public class PlannerTemplateValidationConfig { PlannerTemplateNewRequest::getTask, IMDGDistributedNames.Map_TaskDictionary, TaskDictionary.class), -// TimeNotBeforeRule.instance("taskTime", -// PlannerTemplateNewRequest::getTaskTime, -// true, -// false), DictionaryPresentRule.instance("taskStatus", PlannerTemplateNewRequest::getTaskStatus, IMDGDistributedNames.Map_TaskStatusDictionary, @@ -105,10 +101,6 @@ public class PlannerTemplateValidationConfig { IMDGDistributedNames.Map_TaskDictionary, TaskDictionary.class, false), -// TimeNotBeforeRule.instance("taskTime", -// PlannerTemplateUpdateRequest::getTaskTime, -// false, -// false), DictionaryPresentRule.instance("taskStatus", PlannerTemplateUpdateRequest::getTaskStatus, IMDGDistributedNames.Map_TaskStatusDictionary, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/error/ValidationError.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/error/ValidationError.java index 68c1e5fb7..83c2025a5 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/error/ValidationError.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/error/ValidationError.java @@ -6,7 +6,7 @@ public enum ValidationError implements IErrorEnumId { UserVerifyDenial(18001L), EmptyRequiredValue(18002L), WrongDictionaryValue(18003L), - WrongEnumValue(777L), //todo set code + WrongEnumValue(777L), RecordNotFound(7006L), TaskForPastDate(7016L), TaskForPastTime(7011L), diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/ClearingCalendarService.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/ClearingCalendarService.java index 87c5db89a..138512543 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/ClearingCalendarService.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/ClearingCalendarService.java @@ -102,7 +102,6 @@ public class ClearingCalendarService extends QueueConsumer implements Initializi clearingCalendar.setDayStatus(req.getDayStatus()); clearingCalendarMap.insert(clearingCalendar); log.debug("successfully processed, new id {}", clearingCalendar.getId()); - //если clearingCalendar.getClearingDate() сегодняшний день необходимо проверить/добавить plannerTemplate createPlannerAllTodayFromPlannerTemplateIfIsValidWorkday(clearingCalendar); return null; } @@ -124,7 +123,6 @@ public class ClearingCalendarService extends QueueConsumer implements Initializi clearingCalendar.setUpdated(updated); clearingCalendarMap.update(clearingCalendar); log.debug("successfully processed, new id {}", clearingCalendar.getId()); - //если clearingCalendar.getClearingDate() сегодняшний день необходимо проверить/добавить plannerTemplate createPlannerAllTodayFromPlannerTemplateIfIsValidWorkday(clearingCalendar); return null; } @@ -165,17 +163,13 @@ public class ClearingCalendarService extends QueueConsumer implements Initializi public void deleteFromPlannerAllTodayMap() { LocalDate currentDate = LocalDate.now(); boolean isWeekend = Arrays.asList(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY).contains(currentDate.getDayOfWeek()); - //проверим есть ли другие записи clearingCalendar с таким же clearingDate, если они актуальные ничего не удаляем Collection clearingCalendars = clearingCalendarMap.getCollectionObjectsByFieldValues(Map.of("dayStatus", DayStatus.Workday.getKey(), "clearingDate", currentDate)); if (clearingCalendars != null && !clearingCalendars.isEmpty()) { for (ClearingCalendar calendar : clearingCalendars) { - //если будет хоть один валидные ClearingCalendar на сегодня на основании которого(и plannerTemplate -ов) могли быть созданы PlannerAllToday - //ничего проверять\удалять дальше не будем if (isValidWorkday(calendar, isWeekend)) return; } } - //удалим все PlannerAllToday созданные на основании plannerTemplate кроме созданных на основании planner Collection values = plannerAllTodayMap.getCollectionObjectsByFieldValues(Map.of("parent", Parent.Template.getKey())); values.forEach(plannerAllToday -> { diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/LauncherSender.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/LauncherSender.java index 9dc370d41..3219c479d 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/LauncherSender.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/LauncherSender.java @@ -35,7 +35,6 @@ public class LauncherSender { Object toRequest; LauncherCommandRequest taskRunnerCommandRequest = new LauncherCommandRequest(); taskRunnerCommandRequest.setTaskName(byTask.getTask()); -// taskRunnerCommandRequest.setMarket(byTask.getMarket()); taskRunnerCommandRequest.setSection(byTask.getSection()); taskRunnerCommandRequest.setSessionType(byTask.getSessionType()); taskRunnerCommandRequest.setCompanyId(byTask.getCompanyId()); @@ -47,13 +46,13 @@ public class LauncherSender { request.setId(idGenerator.nextId()); request.setActionType(ActionType.NEW); request.setUserId(userId); - request.setRequestPayload(toRequest);// iAction.toRequest() + request.setRequestPayload(toRequest); return request; } public void sendCommandToQueue(Task toTaskQueue, PlannerAllToday task, Long userId) { BaseRequest request = makeCmdRequest(task, userId); - String destination = toTaskQueue.topic(); // "launcher-" + getKey() + String destination = toTaskQueue.topic(); log.debug("Send command {} to {}", toTaskQueue, destination); Future send = kafka.send(new ProducerRecord<>(destination, request)); try { diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/LauncherService.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/LauncherService.java index 6f0185097..efb88c432 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/LauncherService.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/LauncherService.java @@ -12,7 +12,6 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.scheduler.Launcher; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.payment.PIClearingOutbondActionNewRequest; @@ -102,7 +101,7 @@ public class LauncherService extends QueueConsumer implements InitializingBean { final String destination = Consts.PAYMENT_INSTRUCTION_CLEARING_OUTBOUND_ACTION; BaseRequest request = new BaseRequest<>(); - request.setId(userRequest.getId()); // для уведомлений фронтэнда + request.setId(userRequest.getId()); request.setActionType(userRequest.getActionType()); request.setRequestPayload(req); request.setUserId(userRequest.getUserId()); @@ -122,9 +121,6 @@ public class LauncherService extends QueueConsumer implements InitializingBean { } } - /** - * Требуется вернуть статус Processing, т.к. окончательный Success/Error будет потом - */ RequestInfoUpdate makeTempRoutingResponse(BaseRequest about) { RequestInfoUpdate successRouting = new RequestInfoUpdate(); successRouting.setId(about.getId()); diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/PlannerService.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/PlannerService.java index 80aca5e96..5489f2e88 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/PlannerService.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/PlannerService.java @@ -97,7 +97,6 @@ public class PlannerService extends QueueConsumer implements InitializingBean { planner.setClearingDate(req.getClearingDate()); planner.setSection(req.getSection()); planner.setSessionType(req.getSessionType()); -// planner.setMarket(req.getSection()); planner.setTaskStatus(req.getTaskStatus()); planner.setCompanyId(req.getCompanyId()); planner.setSecurityId(req.getSecurityId()); @@ -129,7 +128,6 @@ public class PlannerService extends QueueConsumer implements InitializingBean { planner.setTask(req.getTask()); planner.setTaskTime(req.getTaskTime()); planner.setClearingDate(req.getClearingDate()); -// planner.setMarket(req.getSection()); planner.setSection(req.getSection()); planner.setSessionType(req.getSessionType()); planner.setTaskStatus(req.getTaskStatus()); diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/PlannerTemplateService.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/PlannerTemplateService.java index 62fecb1bc..43dc0a517 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/PlannerTemplateService.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/PlannerTemplateService.java @@ -98,7 +98,6 @@ public class PlannerTemplateService extends QueueConsumer implements Initializin plannerTemplate.setUpdated(created); plannerTemplate.setTask(req.getTask()); plannerTemplate.setTaskTime(req.getTaskTime()); -// plannerTemplate.setMarket(Market.mkrs.getKey()); plannerTemplate.setSection(req.getSection()); plannerTemplate.setSessionType(req.getSessionType()); plannerTemplate.setTaskStatus(req.getTaskStatus()); @@ -179,7 +178,6 @@ public class PlannerTemplateService extends QueueConsumer implements Initializin private boolean todayWorkDay() { LocalDate currentDate = LocalDate.now(); boolean isWeekend = Arrays.asList(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY).contains(currentDate.getDayOfWeek()); - //проверим есть ли другие записи clearingCalendar с таким же clearingDate, если они актуальные ничего не удаляем Collection clearingCalendars = clearingCalendarMap.getCollectionObjectsByFieldValues(Map.of("clearingDate", currentDate)); if (clearingCalendars != null && !clearingCalendars.isEmpty()) { for (ClearingCalendar calendar : clearingCalendars) { diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java index 9b0cd4010..7d6d92c0f 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/TaskManager.java @@ -27,14 +27,10 @@ import static ru.spcex.clearing.imdg.IMDGDistributedNames.Map_PlannerAllToday; import static ru.spcex.platform.enumeration.Status.*; import static ru.spcex.platform.utils.enumeration.IEnumKey.getEnumByKey; -/** - * Планировщик задач, расписание берёт из Hazelcast map. - *

- */ @Service("userReportTask") public class TaskManager implements InitializingBean, AutoCloseable { private static final Logger log = LoggerFactory.getLogger(TaskManager.class); - public static final Long systemId = 0L;//для системных задач по договоренности, должен быть пользователь с правами админа и id=0L + public static final Long systemId = 0L; private final TaskScheduler taskScheduler; private final ImdgProvider imdgProvider; @@ -71,7 +67,6 @@ public class TaskManager implements InitializingBean, AutoCloseable { callbacks.put(Process.update, this::entryUpdated); callbacks.put(Process.delete, this::entryRemoved); scheduledJobs = new ConcurrentHashMap<>(); - //если сервис стартовал раньше imdg, дождемся создания всех PlannerAllToday. imdgProvider.waitAvailable(); updateScheduler(); process(); @@ -81,7 +76,6 @@ public class TaskManager implements InitializingBean, AutoCloseable { outputExecutor.submit(() -> { while (!closed.get()) { try { - //процесс ожидает пока появится новое сообщение в очереди Map.Entry entry = plannerQueue.take(); callbacks.get(entry.getKey()).accept(entry.getValue()); } catch (InterruptedException e) { @@ -94,23 +88,20 @@ public class TaskManager implements InitializingBean, AutoCloseable { }); } - // --- Обработчики PlannerAllToday --- public void entryAdded(PlannerAllToday task) { String taskStatus = task.getTaskStatus(); if (taskStatus == null) { log.warn("Task skipped, {} task status not recognized", task.getTask()); return; } - if (Active.equalsByKey(taskStatus)) { //&& ACTIVE.equalsById(task.getTaskStatusId()) + if (Active.equalsByKey(taskStatus)) { addOrUpdateActiveTask(task); } } public void entryUpdated(PlannerAllToday plannerAllToday) { - PlannerAllToday task = plannerAllTodayMap.getSingleObjectByID(plannerAllToday.getId());//event.getValue(); - PlannerAllToday oldTask = plannerAllToday;//event.getOldValue(); - - //если таск относится к другому обработчику, пропускаем + PlannerAllToday task = plannerAllTodayMap.getSingleObjectByID(plannerAllToday.getId()); + PlannerAllToday oldTask = plannerAllToday; if (!Objects.equals(task.getTask(), oldTask.getTask())) { log.debug("Trying to cancel task type {} and add task type {}", oldTask.getTask(), task.getTask()); @@ -120,9 +111,9 @@ public class TaskManager implements InitializingBean, AutoCloseable { log.warn("Task skipped, {} task status not recognized", task.getTask()); return; } - if (Active.equalsByKey(taskStatus)) { //&& ACTIVE.equalsById(task.getTaskStatusId()) + if (Active.equalsByKey(taskStatus)) { addOrUpdateActiveTask(task); - } else if (Cancel.equalsByKey(taskStatus)) { //&& TaskStatuses.CANCEL.equalsById(task.getTaskStatusId()) + } else if (Cancel.equalsByKey(taskStatus)) { if (removeTask(task.getTask(), task.getId())) log.debug("Task {} was successfully deleted after update to cancel", task.getTask()); else log.debug("No task {} for deleted after update to cancel", task.getTask()); @@ -156,7 +147,6 @@ public class TaskManager implements InitializingBean, AutoCloseable { } } - // --- Планирование задач --- protected void updateScheduler() { Collection schedulerAllTodays = plannerAllTodayMap.getAllValues(); Collection sortedSchedulers = @@ -167,7 +157,6 @@ public class TaskManager implements InitializingBean, AutoCloseable { } } - // --- Работа с задачами --- private void addOrUpdateActiveTask(PlannerAllToday task) { LocalTime taskTime = task.getTaskTime(); Task taskType = getEnumByKey(Task.class, task.getTask()); @@ -188,16 +177,14 @@ public class TaskManager implements InitializingBean, AutoCloseable { log.debug("Task skipped - taskType {} time {} with status CANCEL", Objects.requireNonNull(taskType).getKey(), taskTime); return; } - //чтобы не получилось, что старый таск не успели отменить а новый уже создали. if (taskTime.isBefore(LocalTime.now().plusSeconds(1))) { log.debug("Task skipped - taskTime {} is before now, taskType {}", taskTime, task.getTask()); return; } - //пришел активный таск log.debug("Adding task type {}, time {}", Objects.requireNonNull(taskType).getKey(), taskTime); ScheduledFuture future = taskScheduler.schedule(() -> doJob(task), LocalDateTime.of(LocalDate.now(), taskTime).atZone(ZoneId.systemDefault()).toInstant()); ScheduledFuture oldFuture = scheduledJobs.put(task.getId(), future); - if (oldFuture != null && !oldFuture.isCancelled()) { //for synchronization, never + if (oldFuture != null && !oldFuture.isCancelled()) { log.warn("Tasks were added simultaneously, cancel former one"); boolean success = oldFuture.cancel(false); log.warn("Cancelling task " + (success ? "success" : "fail")); @@ -213,13 +200,10 @@ public class TaskManager implements InitializingBean, AutoCloseable { return future.cancel(false); } - // --- Реализация выполнения задач --- - protected void doJob(PlannerAllToday task) { Task taskE = getEnumByKey(Task.class, task.getTask()); if (taskE != null) { log.debug("LauncherCommandRequest received"); - // 1. cохранить команду Instant created = Instant.now(); Launcher launcher = new Launcher(); launcher.setTask(task.getTask()); @@ -227,7 +211,6 @@ public class TaskManager implements InitializingBean, AutoCloseable { launcher.setCreated(created); launcher.setUpdated(created); launcherMap.insert(launcher); - // 2. отправить сообщение launcherSender.sendCommandToQueue(taskE, task, systemId); log.debug("Successfully processed, new id {}", launcher.getId()); } diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateAfterTodayRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateAfterTodayRule.java index 804131d46..c33a244b3 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateAfterTodayRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateAfterTodayRule.java @@ -9,27 +9,12 @@ import java.time.LocalDate; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля с LocalDate. Условие проверки: поверяемая дата > текущая дата - * @param Класс проверяемого объекта - */ public record DateAfterTodayRule(String fieldName, Function getter, boolean required) implements IValidationRule> { - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемой даты - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - */ public static DateAfterTodayRule instance(String fieldName, Function getter, boolean required) { return new DateAfterTodayRule<>(fieldName, getter, required); } - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемой даты - * @param Класс проверяемого объекта - */ public static DateAfterTodayRule instance(String fieldName, Function getter) { return new DateAfterTodayRule<>(fieldName, getter, true); } diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateNotBeforeRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateNotBeforeRule.java index b1df393c6..aaa94d43e 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateNotBeforeRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateNotBeforeRule.java @@ -9,27 +9,12 @@ import java.time.LocalDate; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля с LocalDate. Условие проверки: поверяемая дата >= текущая дата - * @param Класс проверяемого объекта - */ public record DateNotBeforeRule(String fieldName, Function getter, boolean required) implements IValidationRule> { - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемой даты - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - */ public static DateNotBeforeRule instance(String fieldName, Function getter, boolean required) { return new DateNotBeforeRule<>(fieldName, getter, required); } - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемой даты - * @param Класс проверяемого объекта - */ public static DateNotBeforeRule instance(String fieldName, Function getter) { return new DateNotBeforeRule<>(fieldName, getter, true); } diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DictionaryPresentRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DictionaryPresentRule.java index 999f484bb..395d7bb12 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DictionaryPresentRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DictionaryPresentRule.java @@ -13,26 +13,12 @@ import java.util.Collection; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля с кодом из словаря (таблицы *_dictionary) - * @param Класс проверяемого объекта - * @param Класс словаря - */ public record DictionaryPresentRule(String fieldName, Function getter, String dictionaryName, Class dictionaryClass, boolean required) implements IValidationRule> { - /** - * @param fieldName Название поля - * @param getter Метод получения проверяемого значения - * @param dictionaryName Название словаря (см. IMDGDistributedNames) - * @param dictionaryClass Класс словаря (классы *Dictionary.class) - * @param required Флаг обязательности - * @param Класс проверяемого объекта - * @param Класс словаря - */ public static DictionaryPresentRule instance(String fieldName, Function getter, String dictionaryName, @@ -41,14 +27,6 @@ public record DictionaryPresentRule(String fiel return new DictionaryPresentRule<>(fieldName, getter, dictionaryName, dictionaryClass, required); } - /** - * @param fieldName Название поля - * @param getter Метод получения проверяемого значения - * @param dictionaryName Название словаря (см. IMDGDistributedNames) - * @param dictionaryClass Класс словаря (классы *Dictionary.class) - * @param Класс проверяемого объекта - * @param Класс словаря - */ public static DictionaryPresentRule instance(String fieldName, Function getter, String dictionaryName, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java index 39e53a19a..43ff328ef 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java @@ -9,24 +9,11 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля со значением из множества (enum) - * @param Класс проверяемого объекта - * @param Enum - */ public record EnumPresentRule(String fieldName, Function getter, E[] enumValues, boolean required) implements IValidationRule> { - /** - * @param fieldName Название поля - * @param getter Метод получения проверяемого значения - * @param enumValues Значения из проверяемого множества (Enum.values()) - * @param required Флаг обязательности - * @param Класс проверяемого объекта - * @param Enum - */ public static EnumPresentRule instance(String fieldName, Function getter, E[] enumValues, @@ -34,13 +21,6 @@ public record EnumPresentRule(String fieldName, return new EnumPresentRule<>(fieldName, getter, enumValues, required); } - /** - * @param fieldName Название поля - * @param getter Метод получения проверяемого значения - * @param enumValues Значения из проверяемого множества (Enum.values()) - * @param Класс проверяемого объекта - * @param Enum - */ public static EnumPresentRule instance(String fieldName, Function getter, E[] enumValues) { diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/FieldRequiredRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/FieldRequiredRule.java index 4abc90b45..80c3e5600 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/FieldRequiredRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/FieldRequiredRule.java @@ -8,19 +8,8 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -/** - * Проверка обязательности поля (not null) - * @param Класс проверяемого объекта - * @param Класс проверяемого значения - */ public record FieldRequiredRule(String fieldName, Function getter) implements IValidationRule> { - /** - * @param fieldName Название поля - * @param getter Метод получения значения - * @param Класс проверяемого объекта - * @param Класс проверяемого значения - */ public static FieldRequiredRule instance(String fieldName, Function getter) { return new FieldRequiredRule<>(fieldName, getter); } diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/IdPresentRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/IdPresentRule.java index e87377b56..bcc2f8810 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/IdPresentRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/IdPresentRule.java @@ -10,11 +10,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -/** - * Проверка наличия связанного по Id объекта в базе - * @param Класс проверяемого объекта - * @param Класс связанного объекта - */ public record IdPresentRule( String fieldName, Function idGetter, @@ -25,17 +20,6 @@ public record IdPresentRule( boolean required ) implements IValidationRule> { - /** - * @param fieldName Название поля, содержащего Id - * @param idGetter Метод получения Id - * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) - * @param mapClass Класс связанного объекта - * @param idNotPresentError Ошибка, которая будет возвращена, если Id не найден - * @param required Флаг обязательности - * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом - * @param Класс проверяемого объекта - * @param Класс связанного объекта - */ @SafeVarargs public static IdPresentRule instance(String fieldName, Function idGetter, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/TimeNotBeforeRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/TimeNotBeforeRule.java index 59144522f..90f14d285 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/TimeNotBeforeRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/TimeNotBeforeRule.java @@ -10,55 +10,23 @@ import java.time.LocalTime; import java.util.Optional; import java.util.function.Function; -/** - * Проверка поля с LocalTime. Условие проверки: проверяемое время >= текущее время - * - * @param Класс проверяемого объекта - */ public record TimeNotBeforeRule(String fieldName, Function getter, boolean required, boolean isToday, Function getterForDate) implements IValidationRule> { - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемого времени - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - * @param isToday Флаг что дата сегодняшняя - */ public static TimeNotBeforeRule instance(String fieldName, Function getter, boolean required, boolean isToday) { return new TimeNotBeforeRule<>(fieldName, getter, required, isToday, null); } - /** - * - * @param fieldName - * @param getter - * @param required - * @param getterForDate аналог isToday - * @param - * @return - */ public static TimeNotBeforeRule instance(String fieldName, Function getter, boolean required, Function getterForDate) { return new TimeNotBeforeRule<>(fieldName, getter, required, true, getterForDate); } - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемого времени - * @param required Флаг обязательности поля - * @param Класс проверяемого объекта - */ public static TimeNotBeforeRule instance(String fieldName, Function getter, boolean required) { return new TimeNotBeforeRule<>(fieldName, getter, required, true, null); } - /** - * @param fieldName Название поля класса, используется для передачи ошибки - * @param getter Метод получения проверяемого времени - * @param Класс проверяемого объекта - */ public static TimeNotBeforeRule instance(String fieldName, Function getter) { return new TimeNotBeforeRule<>(fieldName, getter, true,true, null); } diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java index b0d9ab911..0dbcc0bec 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java @@ -149,7 +149,6 @@ public abstract class AbstractServiceTest { planner.setClearingDate(LocalDate.now()); planner.setSection(Section.MKR.getKey()); planner.setSessionType(sessionType); -// planner.setMarket(mkrs.getKey()); planner.setTaskStatus(Status.Active.getKey()); planner.setCompanyId(companyId); planner.setSecurityId(testSecurityId); diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/ClearingCalendarServiceTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/ClearingCalendarServiceTest.java index a27ae47f3..d25d22712 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/ClearingCalendarServiceTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/ClearingCalendarServiceTest.java @@ -8,7 +8,6 @@ import ru.clearing.classes.statics.data.scheduler.ClearingCalendar; import ru.clearing.classes.statics.data.scheduler.Planner; import ru.clearing.classes.statics.data.scheduler.PlannerAllToday; import ru.clearing.classes.statics.data.scheduler.PlannerTemplate; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.ClearingCalendarNewRequest; @@ -50,14 +49,8 @@ class ClearingCalendarServiceTest extends AbstractServiceTest { clearAllInImdg(plannerAllTodayImdg); } - /** - * {@link ClearingCalendarService#newClearingCalendar(BaseRequest)}(BaseRequest)}
- * Тест проверяет создание сущности {@link ClearingCalendar} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ClearingCalendarNewRequest}:
- */ @Test public void newClearingCalendar() { - //ARRANGE ClearingCalendar clearingCalendar = new ClearingCalendar(); clearingCalendar.setClearingDate(LocalDate.now()); clearingCalendar.setCompanyId(newCompanyId); @@ -69,12 +62,8 @@ class ClearingCalendarServiceTest extends AbstractServiceTest { clearingCalendarNewRequest.setClearingDate(clearingCalendar.getClearingDate()); clearingCalendarNewRequest.setCompanyId(clearingCalendar.getCompanyId()); clearingCalendarNewRequest.setDayStatus(clearingCalendar.getDayStatus()); - - //ACT String jsonString = getJsonStringForNew(clearingCalendarNewRequest, ID); addRecordToKafka((MockConsumer) clearingCalendarService.getConsumer(), TOPIC_CLEARING_CALENDAR_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ClearingCalendar clearingCalendarRes = clearingCalendarImdg.getFirstObjectBySQL(String.format("companyId = %s", clearingCalendar.getCompanyId())); @@ -83,14 +72,8 @@ class ClearingCalendarServiceTest extends AbstractServiceTest { checkPlannerAllTodayByPlannerTemplate(plannerTemplate); } - /** - * {@link ClearingCalendarService#updateClearingCalendar(BaseRequest)}(BaseRequest)}
- * Тест проверяет создание сущности {@link ClearingCalendar} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ClearingCalendarUpdateRequest}:
- */ @Test public void updateClearingCalendar() { - //ARRANGE ClearingCalendar clearingCalendar = new ClearingCalendar(); clearingCalendar.setId(currentID.getAndIncrement()); clearingCalendar.setClearingDate(LocalDate.now()); @@ -107,12 +90,8 @@ class ClearingCalendarServiceTest extends AbstractServiceTest { clearingCalendarNewRequest.setClearingDate(clearingCalendar.getClearingDate()); clearingCalendarNewRequest.setCompanyId(clearingCalendar.getCompanyId()); clearingCalendarNewRequest.setDayStatus(clearingCalendar.getDayStatus()); - - //ACT String jsonString = getJsonStringForUpdate(clearingCalendarNewRequest, ID); addRecordToKafka((MockConsumer) clearingCalendarService.getConsumer(), TOPIC_CLEARING_CALENDAR_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); ClearingCalendar clearingCalendarRes = clearingCalendarImdg.getFirstObjectBySQL(String.format("companyId = %s", clearingCalendar.getCompanyId())); @@ -122,14 +101,8 @@ class ClearingCalendarServiceTest extends AbstractServiceTest { } - /** - * {@link ClearingCalendarService#deleteClearingCalendar(BaseRequest)}(BaseRequest)}
- * Тест проверяет удаление сущности {@link ru.clearing.classes.statics.data.scheduler.ClearingCalendar} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- */ @Test public void deleteClearingCalendar() { - //ARRANGE clearAllInImdg(clearingCalendarImdg); ClearingCalendar clearingCalendar = getClearingCalendar(); clearingCalendarImdg.insert(clearingCalendar); @@ -142,30 +115,19 @@ class ClearingCalendarServiceTest extends AbstractServiceTest { CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); commonDeleteRequest.setId(id); - - //ACT String jsonString = getJsonStringForDelete(commonDeleteRequest, id); addRecordToKafka((MockConsumer) clearingCalendarService.getConsumer(), TOPIC_CLEARING_CALENDAR_DELETE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(id, mockProducer); ClearingCalendar plannerTemplateRes = clearingCalendarImdg.getFirstObjectBySQL(String.format("companyId = %s", clearingCalendar.getCompanyId())); assertNull(plannerTemplateRes); PlannerAllToday plannerAllTodayRes = plannerAllTodayImdg.getFirstObjectBySQL(String.format("companyId = %s", plannerTemplate.getCompanyId())); assertNull(plannerAllTodayRes); - - //добавим в clearingCalendarImdg валидный clearingCalendar на случай если тесты plannerTemplate еще не отработали clearingCalendarImdg.insert(clearingCalendar); } - /** - * {@link ClearingCalendarService#deleteFromPlannerAllTodayMap()}}
- * Тест проверяет удаление сущности {@link ru.clearing.classes.statics.data.scheduler.PlannerAllToday} в Hazelcast.
- */ @Test public void deleteFromPlannerAllTodayMap() { - //проверка удаления PlannerAllToday Planner planner = getPlanner(newCompanyId); planner.setId(12L); planner.setTaskStatus(Status.Active.getKey()); @@ -177,21 +139,15 @@ class ClearingCalendarServiceTest extends AbstractServiceTest { plannerTemplate.setId(13L); plannerTemplate.setCompanyId(updateCompanyId); plannerAllTodayImdg.insert(PlannerAllTodayBuilder.builder().append(plannerTemplate).build()); - - //ни чего не должно быть удалено ест валидный clearingCalendar clearingCalendarService.deleteFromPlannerAllTodayMap(); assertEquals(2, plannerAllTodayImdg.getAllValues().size()); checkPlannerAllTodayByPlanner(planner); checkPlannerAllTodayByPlannerTemplate(plannerTemplate); - - //сейчас удалятся только созданные на основании plannerTemplate clearAllInImdg(clearingCalendarImdg); clearingCalendarService.deleteFromPlannerAllTodayMap(); checkPlannerAllTodayByPlanner(planner); assertEquals(1, plannerAllTodayImdg.getAllValues().size()); - - //добавим в clearingCalendarImdg валидный clearingCalendar на случай если тесты plannerTemplate еще не отработали clearingCalendarImdg.insert(getClearingCalendar()); } } \ No newline at end of file diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/LauncherServiceTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/LauncherServiceTest.java index 49dca5ead..bb47dbf22 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/LauncherServiceTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/LauncherServiceTest.java @@ -9,7 +9,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.scheduler.Launcher; -import ru.clearing.classes.statics.data.scheduler.Planner; import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -18,7 +17,6 @@ import ru.spcex.clearing.scheduler.AbstractServiceTest; import ru.spcex.clearing.test.MatcherFactory; import javax.annotation.PostConstruct; - import java.math.BigDecimal; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -52,14 +50,8 @@ class LauncherServiceTest extends AbstractServiceTest { clearAllInImdg(plannerAllTodayImdg); } - /** - * {@link LauncherService#newLauncher(BaseRequest)}(BaseRequest)}
- * Тест проверяет создание сущности {@link Planner} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link LauncherCommandRequest}:
- */ @Test public void newPlanner() { - //ARRANGE Launcher launcher = new Launcher(); launcher.setSenderId(defaultAdminId); launcher.setTask(accountBlock.getKey()); @@ -86,12 +78,8 @@ class LauncherServiceTest extends AbstractServiceTest { predictableBaseRequest.setId(ID); predictableBaseRequest.setUserId(launcher.getSenderId()); predictableBaseRequest.setActionType(ActionType.NEW); - - //ACT String jsonString = getJsonStringForNew(launcherCommandRequest, ID); addRecordToKafka((MockConsumer) launcherService.getConsumer(), TOPIC_LAUNCHER_NEW, PARTITION, 0, jsonString); - - //ASSERT ArgumentCaptor captor = getCaptor(mockProducer); verify(mockProducer, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/PlannerServiceTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/PlannerServiceTest.java index f0d8e2d1d..62016111f 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/PlannerServiceTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/PlannerServiceTest.java @@ -6,7 +6,6 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.scheduler.Planner; import ru.clearing.classes.statics.data.scheduler.PlannerAllToday; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerNewRequest; @@ -43,14 +42,8 @@ class PlannerServiceTest extends AbstractServiceTest { clearAllInImdg(plannerAllTodayImdg); } - /** - * {@link PlannerService#newPlanner(BaseRequest)}(BaseRequest)}
- * Тест проверяет создание сущности {@link ru.clearing.classes.statics.data.scheduler.Planner} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link PlannerNewRequest}:
- */ @Test public void newPlanner() { - //ARRANGE Long ID = currentID.getAndIncrement(); Planner planner = getPlanner(newCompanyId); @@ -63,12 +56,8 @@ class PlannerServiceTest extends AbstractServiceTest { plannerNewRequest.setClearingDate(planner.getClearingDate()); plannerNewRequest.setCompanyId(planner.getCompanyId()); plannerNewRequest.setSecurityId(planner.getSecurityId()); - - //ACT String jsonString = getJsonStringForUpdate(plannerNewRequest, ID); addRecordToKafka((MockConsumer) plannerService.getConsumer(), TOPIC_PLANNER_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Planner plannerReq = plannerImdg.getFirstObjectBySQL(String.format("companyId = %s", planner.getCompanyId())); @@ -77,14 +66,8 @@ class PlannerServiceTest extends AbstractServiceTest { checkPlannerAllTodayByPlanner(planner); } - /** - * {@link PlannerService#updatePlanner(BaseRequest)}(BaseRequest)}
- * Тест проверяет создание сущности {@link ru.clearing.classes.statics.data.scheduler.Planner} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link PlannerUpdateRequest}:
- */ @Test public void updateScheduler() { - //ARRANGE Planner planner = getPlanner(newCompanyId); plannerImdg.insert(planner); planner.setCompanyId(updateCompanyId); @@ -99,12 +82,8 @@ class PlannerServiceTest extends AbstractServiceTest { plannerUpdateRequest.setClearingDate(planner.getClearingDate()); plannerUpdateRequest.setCompanyId(planner.getCompanyId()); plannerUpdateRequest.setSecurityId(planner.getSecurityId()); - - //ACT String jsonString = getJsonStringForUpdate(plannerUpdateRequest, planner.getId()); addRecordToKafka((MockConsumer) plannerService.getConsumer(), TOPIC_PLANNER_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(planner.getId(), mockProducer); Planner plannerReq = plannerImdg.getFirstObjectBySQL(String.format("companyId = %s", planner.getCompanyId())); @@ -113,14 +92,8 @@ class PlannerServiceTest extends AbstractServiceTest { checkPlannerAllTodayByPlanner(planner); } - /** - * {@link PlannerService#deletePlanner(BaseRequest)}(BaseRequest)}
- * Тест проверяет удаление сущности {@link ru.clearing.classes.statics.data.scheduler.Planner} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- */ @Test public void deletePlanner() { - //ARRANGE clearAllInImdg(plannerImdg); Planner planner = getPlanner(deleteCompanyId); plannerImdg.insert(planner); @@ -131,12 +104,8 @@ class PlannerServiceTest extends AbstractServiceTest { CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); commonDeleteRequest.setId(plannerId); - - //ACT String jsonString = getJsonStringForDelete(commonDeleteRequest, plannerId); addRecordToKafka((MockConsumer) plannerService.getConsumer(), TOPIC_PLANNER_DELETE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(plannerId, mockProducer); Planner plannerReq = plannerImdg.getFirstObjectBySQL(String.format("companyId = %s", planner.getCompanyId())); @@ -145,24 +114,14 @@ class PlannerServiceTest extends AbstractServiceTest { assertNull(plannerAllTodayRes); } - /** - * {@link PlannerService#cudPlannerAllToday(Planner)}(BaseRequest)}
- * Тест проверяет добавление, обновление, удаление сущности {@link ru.clearing.classes.statics.data.scheduler.PlannerAllToday} в Hazelcast.
- * Входной запрос {@link Planner}:
- */ @Test public void cudPlannerAllToday() { - //проверка добавления Planner planner = getPlanner(newCompanyId); plannerService.cudPlannerAllToday(planner); checkPlannerAllTodayByPlanner(planner); - - //проверка обновления planner.setCompanyId(updateCompanyId); plannerService.cudPlannerAllToday(planner); checkPlannerAllTodayByPlanner(planner); - - //проверка удаления всех PlannerAllToday planner.setTaskStatus(Status.Cancel.getKey()); plannerAllTodayImdg.insert(PlannerAllTodayBuilder.builder().append(planner).build()); plannerService.cudPlannerAllToday(planner); diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/PlannerTemplateServiceTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/PlannerTemplateServiceTest.java index aa7e79ea4..92bb4200d 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/PlannerTemplateServiceTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/PlannerTemplateServiceTest.java @@ -5,7 +5,6 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.scheduler.PlannerAllToday; import ru.clearing.classes.statics.data.scheduler.PlannerTemplate; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerTemplateNewRequest; @@ -37,14 +36,8 @@ class PlannerTemplateServiceTest extends AbstractServiceTest { super.init(); } - /** - * {@link PlannerTemplateService#newPlannerTemplate(BaseRequest)}(BaseRequest)}
- * Тест проверяет создание сущности {@link ru.clearing.classes.statics.data.scheduler.PlannerTemplate} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link PlannerTemplateNewRequest}:
- */ @Test public void newPlannerTemplateInQueue() throws InterruptedException { - //ARRANGE PlannerTemplate plannerTemplate = getPlannerTemplate(newCompanyId); PlannerTemplateNewRequest templateNewRequest = new PlannerTemplateNewRequest(); @@ -55,12 +48,8 @@ class PlannerTemplateServiceTest extends AbstractServiceTest { templateNewRequest.setTaskStatus(plannerTemplate.getTaskStatus()); templateNewRequest.setCompanyId(plannerTemplate.getCompanyId()); templateNewRequest.setSecurityId(plannerTemplate.getSecurityId()); - - //ACT String jsonString = getJsonStringForNew(templateNewRequest, ID); addRecordToKafka((MockConsumer) plannerTemplateService.getConsumer(), TOPIC_PLANNER_TEMPLATE_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); PlannerTemplate plannerTemplateRes = plannerTemplateImdg.getFirstObjectBySQL(String.format("companyId = %s", plannerTemplate.getCompanyId())); @@ -69,14 +58,8 @@ class PlannerTemplateServiceTest extends AbstractServiceTest { checkPlannerAllTodayByPlannerTemplate(plannerTemplate); } - /** - * {@link PlannerTemplateService#updatePlannerTemplate(BaseRequest)}(BaseRequest)}
- * Тест проверяет обновление сущности {@link ru.clearing.classes.statics.data.scheduler.PlannerTemplate} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link PlannerTemplateUpdateRequest}:
- */ @Test public void updatePlannerTemplate() throws InterruptedException { - //ARRANGE PlannerTemplate plannerTemplate = getPlannerTemplate(newCompanyId); plannerTemplateImdg.insert(plannerTemplate); plannerTemplate.setCompanyId(updateCompanyId); @@ -90,12 +73,8 @@ class PlannerTemplateServiceTest extends AbstractServiceTest { plannerTemplateUpdateRequest.setTaskStatus(plannerTemplate.getTaskStatus()); plannerTemplateUpdateRequest.setCompanyId(plannerTemplate.getCompanyId()); plannerTemplateUpdateRequest.setSecurityId(plannerTemplate.getSecurityId()); - - //ACT String jsonString = getJsonStringForUpdate(plannerTemplateUpdateRequest, ID); addRecordToKafka((MockConsumer) plannerTemplateService.getConsumer(), TOPIC_PLANNER_TEMPLATE_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); PlannerTemplate plannerTemplateRes = plannerTemplateImdg.getFirstObjectBySQL(String.format("companyId = %s", plannerTemplate.getCompanyId())); @@ -104,14 +83,8 @@ class PlannerTemplateServiceTest extends AbstractServiceTest { checkPlannerAllTodayByPlannerTemplate(plannerTemplate); } - /** - * {@link PlannerTemplateService#deletePlannerTemplate(BaseRequest)}(BaseRequest)}
- * Тест проверяет удаление сущности {@link ru.clearing.classes.statics.data.scheduler.PlannerTemplate} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- */ @Test public void deletePlannerTemplate() throws InterruptedException { - //ARRANGE PlannerTemplate plannerTemplate = getPlannerTemplate(newCompanyId); long id = plannerTemplate.getId(); @@ -121,12 +94,8 @@ class PlannerTemplateServiceTest extends AbstractServiceTest { CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); commonDeleteRequest.setId(id); - - //ACT String jsonString = getJsonStringForDelete(commonDeleteRequest, id); addRecordToKafka((MockConsumer) plannerTemplateService.getConsumer(), TOPIC_PLANNER_TEMPLATE_DELETE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(id, mockProducer); PlannerTemplate plannerTemplateRes = plannerTemplateImdg.getFirstObjectBySQL(String.format("companyId = %s", plannerTemplate.getCompanyId())); diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/TaskManagerTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/TaskManagerTest.java index 05dce2934..26b1d66c3 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/TaskManagerTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/service/TaskManagerTest.java @@ -36,56 +36,32 @@ class TaskManagerTest extends AbstractServiceTest { super.init(); } - /** - * {@link TaskManager#entryAdded(PlannerAllToday)}}
- * Тест проверяет создание и отправку LauncherCommandRequest в Apache Kafka.
- * Входной запрос {@link PlannerAllToday}:
- */ @Test void entryAdded() { - //ARRANGE PlannerAllToday plannerAllToday = getPlannerAllToday(Task.createOrder.getKey()); - //ACT addToPlannerQueue(TaskManager.Process.add, plannerAllToday); - //ASSERT waitingWhenAddedLauncherCommandRequestAndCheckIt(getEnumByKey(Task.class, plannerAllToday.getTask()), plannerAllToday, systemId); } - /** - * {@link TaskManager#entryUpdated(PlannerAllToday)}}
- * Тест проверяет создание и отправку LauncherCommandRequest в Apache Kafka.
- * Входной запрос {@link PlannerAllToday}:
- */ @Test void entryUpdated() { - //ARRANGE PlannerAllToday plannerAllToday = getPlannerAllToday(Task.createReport_GREP.getKey()); PlannerAllToday oldPlanner = getPlannerAllToday(Task.createReport_GREP.getKey()); plannerAllToday.setId(oldPlanner.getId()); plannerAllTodayImdg.insert(plannerAllToday); addToPlannerQueue(TaskManager.Process.add, oldPlanner); - //ACT addToPlannerQueue(TaskManager.Process.update, oldPlanner); - //ASSERT waitingWhenAddedLauncherCommandRequestAndCheckIt(getEnumByKey(Task.class, plannerAllToday.getTask()), plannerAllToday, systemId); } - /** - * {@link TaskManager#entryRemoved(PlannerAllToday)}}
- * Тест проверяет создание и отправку LauncherCommandRequest в Apache Kafka.
- * Входной запрос {@link PlannerAllToday}:
- */ @Test void entryRemoved() { - //ARRANGE PlannerAllToday plannerAllToday = getPlannerAllToday(Task.createOrder.getKey()); PlannerAllToday oldPlanner = getPlannerAllToday(Task.createReport_GREP.getKey()); addToPlannerQueue(TaskManager.Process.add, oldPlanner); addToPlannerQueue(TaskManager.Process.delete, oldPlanner); - //ACT addToPlannerQueue(TaskManager.Process.add, plannerAllToday); - //ASSERT waitingWhenAddedLauncherCommandRequestAndCheckIt(getEnumByKey(Task.class, plannerAllToday.getTask()), plannerAllToday, systemId); } @@ -102,7 +78,6 @@ class TaskManagerTest extends AbstractServiceTest { BaseRequest predictableBaseRequest = launcherSender.makeCmdRequest(plannerAllToday, userId); ArgumentCaptor producerRecord = getCaptor(mockProducer); - //waiting for kafka producer send message (finale event) verify(mockProducer, timeout(30_000L).times(1)) .send(producerRecord.capture()); diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/errors/SecuritiesError.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/errors/SecuritiesError.java index 1055707b8..f92548865 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/errors/SecuritiesError.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/errors/SecuritiesError.java @@ -4,7 +4,7 @@ import ru.spcex.platform.utils.enumeration.IErrorEnumId; public enum SecuritiesError implements IErrorEnumId { GeneralError(1000L), - UserVerifyDenial(1001L), // 'Нет прав на проведение данной операции + UserVerifyDenial(1001L), RequiredFieldIsEmpty(1002L), DictionaryNotFound(1003L), WrongFieldValue(1004L), @@ -15,12 +15,12 @@ public enum SecuritiesError implements IErrorEnumId { CouponPeriodNotFound(1014L), CurrencyAlreadyExists(1015L), CurrencyNotFound(1016L), - ListingAlreadyExist(1017L), // Инструмент на режиме %s уже существует - ListingNotFound(1018L), // Инструмент на режиме %s не найден - MarketNotFound(1020L), // Режим %s не найден - ListingOnMMSCreatedBySystem(1021L), // Информиция об инструментах Денежного рынка на режимах добавляется автоматически. - ListingOnMMSUpdatedBySystem(1022L), // Информиция об инструментах Денежного рынка на режимах изменяется автоматически. - ListingOnMMSDeletedBySystem(1023L), // Информиция об инструментах Денежного рынка на режимах блокируется автоматически. + ListingAlreadyExist(1017L), + ListingNotFound(1018L), + MarketNotFound(1020L), + ListingOnMMSCreatedBySystem(1021L), + ListingOnMMSUpdatedBySystem(1022L), + ListingOnMMSDeletedBySystem(1023L), ; private final Long id; diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/CurrencyService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/CurrencyService.java index 9ad133b26..b9845d2dc 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/CurrencyService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/CurrencyService.java @@ -74,7 +74,7 @@ public class CurrencyService extends QueueConsumer implements InitializingBean { currency.setCurrencyCode(req.getCurrencyCode()); currencyImdg.insert(currency); log.debug("successfully processed, request id {}, new object id {}", userRequest.getId(), currency.getId()); - return null; // default success + return null; } private RequestInfoUpdate updateCurrency(BaseRequest userRequest) { diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java index 91199a8ad..7c552a552 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java @@ -144,8 +144,6 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin } else if (companySymbols.size() > 1) { log.warn("For {} = {} found {} company_symbol, use first", CompanySymbol.UUID.getKey(), byUuid, companySymbols.size()); } - - // Проверяем, что в базе помимо реквизита есть компания Long companyId = companySymbols.iterator().next().getCompanyId(); Company company = companyImdg.getSingleObjectByID(companyId); if (company == null || !WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { @@ -176,7 +174,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin private RequestInfoUpdate newSecurities(BaseRequest baseRequest) { log.debug("SecurityFondGatewayRequest id={} received", baseRequest.getId()); SecurityFondGatewayRequest req = (SecurityFondGatewayRequest) baseRequest.getRequestPayload(); - Long companyId = findCompany(req.getUuid());//issuerId findCompany + Long companyId = findCompany(req.getUuid()); if (companyId == null) { log.debug("CompanyId (issuer) not found."); } else { @@ -270,7 +268,6 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin } catch (ValidationException expected) { log.warn("At request {} for securityId={} has error when create or update listing: {}", baseRequest.getId(), securityId, messageResolver.resolve(expected.getEnumMsg())); -// return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg()); } } @@ -292,13 +289,12 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin } catch (ValidationException expected) { log.warn("At request {} for securityId={} has error when create or update couponPeriod: {}", baseRequest.getId(), securityId, messageResolver.resolve(expected.getEnumMsg())); -// return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg()); } } for (FixedIncomeCashFlowNewRequest partRequest : (List) req.getFixedIncomesCashFlow()) { try { - partRequest.setSecuritySymbol(String.valueOf(securityId)); // не getSecuritySymbol + partRequest.setSecuritySymbol(String.valueOf(securityId)); FixedIncomeCashFlow existFixedIncomeCashFlow = findFixedIncomeCashFlow(partRequest); if (existFixedIncomeCashFlow == null) { log.trace("For company[{}] do new FixedIncomeCashFlow", companyId); @@ -313,12 +309,11 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin } catch (ValidationException expected) { log.warn("At request {} for securityId={} has error when create or update fixedIncomeCashFlow: {}", baseRequest.getId(), securityId, messageResolver.resolve(expected.getEnumMsg())); -// return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg()); } } log.debug("successfully processed, request id {}", baseRequest.getId()); - return null; // default success + return null; } Listing findListing(ListingNewRequest byRequest) { @@ -340,7 +335,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin ImdgPredicateBuilder pb = couponPeriodImdg.predicateBuilder(); CouponPeriod existCouponPeriod = couponPeriodImdg.getFirstObjectByPredicate(pb.and( pb.equals("securityId", byRequest.getSecurityId()), - pb.equals("number", byRequest.getNumber()) // предикатом на случай null, но такого не должно быть + pb.equals("number", byRequest.getNumber()) )); if (existCouponPeriod == null) @@ -453,8 +448,6 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin return updateRequest; } - // --- DESTINATION_GATEWAY_MONEY_MARKET_SECURITY --- - private RequestInfoUpdate newMoneyMarketSecurity(BaseRequest baseRequest) { log.debug("MoneyMarketSecurityNewRequest id={} received", baseRequest.getId()); MoneyMarketSecurityNewGatewayRequest gatewayReq = baseRequest.getRequestPayload(); diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/ListingService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/ListingService.java index 1ba0cd4e8..eea057994 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/ListingService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/ListingService.java @@ -96,7 +96,7 @@ public class ListingService extends QueueConsumer implements InitializingBean { validationHelper.validateTillFirstErrorAndThrow(req, validation.listingNewValidator()); Security security = securitySelector.selectSecurityById(req.getSecurityId()); - if (security == null) { // never + if (security == null) { log.error("Security not found {}", req.getSecurityId()); } @@ -108,16 +108,16 @@ public class ListingService extends QueueConsumer implements InitializingBean { listing.setMarket(req.getMarket()); listing.setLotSize(req.getLotSize()); if (req.getSymbolCode() != null) { - listing.setSymbolCode(req.getSymbolCode()); // listing.setSymbolCode(req.getSymbolCode()); + listing.setSymbolCode(req.getSymbolCode()); } else { if (security != null) listing.setSymbolCode(security.getSecuritySymbol()); } if (req.getSymbolName() != null) { - listing.setSymbolName(req.getSymbolName()); // api-gateway + listing.setSymbolName(req.getSymbolName()); } else { if (security != null) - listing.setSymbolName(security.getFullName()); // req.getSymbolName + listing.setSymbolName(security.getFullName()); } listing.setTradingCurrency(req.getTradingCurrency()); if (StringUtils.isEmpty(req.getWorkflowStatus())) { @@ -148,10 +148,10 @@ public class ListingService extends QueueConsumer implements InitializingBean { Listing listing = listingImdg.getSingleObjectByID(req.getId()); Security security = securitySelector.selectSecurityById(req.getSecurityId()); - if (security == null) { // never + if (security == null) { log.error("Security not found {}", req.getSecurityId()); } - if (listing == null) { //never + if (listing == null) { log.error("listing not found {}", req.getId()); } diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java index f548609ee..18e0e690d 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java @@ -54,7 +54,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial private final ValidationHelper validationHelper; private final RequestHelper requestHelper; private final IMessageResolver messageResolver; - private final ListingService listingService; // для синхронизации + private final ListingService listingService; @Autowired public MoneyMarketSecurityService(Consumer kafkaQueue, @@ -156,7 +156,6 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial transaction.beginTransaction(); Imdg moneyMarketSecurityTxMap = transaction.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class); Imdg listingTxMap = transaction.getImdg(IMDGDistributedNames.Map_Listing, Listing.class); - //одним скопом выполняем реквест moneyMarketSecurityTxMap.insert(mms); Listing listing = ListingBuilder.builder() .append(mms).append(req).build(); @@ -168,7 +167,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial throw e; } } - return mms; // default success + return mms; } private RequestInfoUpdate updateMoneyMarket(BaseRequest userRequest) { diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/CouponPeriodNewValidationRule.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/CouponPeriodNewValidationRule.java index 0858ee7d4..0198a969f 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/CouponPeriodNewValidationRule.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/CouponPeriodNewValidationRule.java @@ -10,7 +10,6 @@ import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.validation.IValidationRule; import java.util.HashMap; -import java.util.Map; import java.util.Optional; public enum CouponPeriodNewValidationRule implements IValidationRule> { @@ -24,7 +23,7 @@ public enum CouponPeriodNewValidationRule implements IValidationRule imdgDictionary = context.obtainMap(IMDGDistributedNames.Map_CouponPeriod, SpcexObjectBase.class); HashMap fields = new HashMap<>(); fields.put("securityId", action.getSecurityId()); - fields.put("number", action.getNumber()); // may be null, but never + fields.put("number", action.getNumber()); SpcexObjectBase couponPeriod = imdgDictionary.getFirstObjectByFieldValues(fields); if (couponPeriod != null) { return of(SecuritiesError.CouponPeriodAlreadyExists, "securityId"); diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCodeByDictionary.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCodeByDictionary.java index f6b606276..4b2808f15 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCodeByDictionary.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCodeByDictionary.java @@ -12,7 +12,7 @@ import java.util.Map; import java.util.Optional; import java.util.function.Function; -@Deprecated // use common validator ru.spcex.clearing.validation.common.rules.DictionaryPresentRule +@Deprecated public class HaveValidCodeByDictionary implements IValidationRule> { String mapName; String errArg; diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCompanyId.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCompanyId.java index b4f45a65b..e3bc55353 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCompanyId.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/HaveValidCompanyId.java @@ -11,7 +11,7 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; -@Deprecated // use common validator +@Deprecated public class HaveValidCompanyId implements IValidationRule> { Function idGetter; String errArg; diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/MmsDeleteValidationRule.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/MmsDeleteValidationRule.java index 0da4c011b..0b79b5acf 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/MmsDeleteValidationRule.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/MmsDeleteValidationRule.java @@ -16,7 +16,6 @@ public enum MmsDeleteValidationRule implements IValidationRule validate(ImdgValidationContext context) { MoneyMarketSecurity mms = context.getStoredObject(Stored.PresentById); - //проверка только если PresentById найдет объект и сохранит его if (mms != null && !Status.Active.getKey().equals(mms.getWorkflowStatus())) { return of(SecuritiesError.InstrumentNotActive, mms.getSecuritySymbol()); } else { diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/MmsUpdateValidationRule.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/MmsUpdateValidationRule.java index 5906e76c9..5153aece6 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/MmsUpdateValidationRule.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/MmsUpdateValidationRule.java @@ -16,7 +16,6 @@ public enum MmsUpdateValidationRule implements IValidationRule validate(ImdgValidationContext context) { MoneyMarketSecurity mms = context.getStoredObject(Stored.PresentById); - //проверка только если PresentById найдет объект и сохранит его if (mms != null && !Status.Active.getKey().equals(mms.getWorkflowStatus())) { return of(SecuritiesError.InstrumentNotActive, mms.getSecuritySymbol()); } else { diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/WorkflowStatusActv.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/WorkflowStatusActv.java index 9fe998a70..e1f9974eb 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/WorkflowStatusActv.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/WorkflowStatusActv.java @@ -16,7 +16,6 @@ public class WorkflowStatusActv implements IValidationRule validate(ImdgValidationContext context) { WithWorkflowStatus object = context.getStoredObject(Stored.PresentById); - //проверка только если PresentById найдет объект и сохранит его if (object != null && object.getWorkflowStatus() == null) { return of(SecuritiesError.RequiredFieldIsEmpty, "workflowStatus"); } else if (object != null && !Status.Active.getKey().equals(object.getWorkflowStatus())) { diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CouponPeriodServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CouponPeriodServiceTest.java index 0f1105c37..58cb481c0 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CouponPeriodServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CouponPeriodServiceTest.java @@ -4,7 +4,6 @@ import org.apache.kafka.clients.consumer.MockConsumer; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.instrument.issue.CouponPeriod; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CouponPeriodNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CouponPeriodUpdateRequest; @@ -34,11 +33,6 @@ public class CouponPeriodServiceTest extends AbstractServiceTest { super.init(); } - /** - * {@link CouponPeriodService#newCouponPeriod(BaseRequest)}
- * Тест проверяет генерацию сущности {@link CouponPeriod} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CouponPeriodNewRequest}:
- */ @Test public void testNewCurrency() { clearAllInImdg(couponPeriodImdg); @@ -56,14 +50,9 @@ public class CouponPeriodServiceTest extends AbstractServiceTest { request.setPeriodStartDate(LocalDate.ofEpochDay(0)); request.setCouponRate(BigDecimal.TEN); request.setNumber(Long.MAX_VALUE); - - - //ACT String jsonString = getJsonStringForNew(request, ID); addRecordToKafka((MockConsumer) couponPeriodService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); CouponPeriod result = couponPeriodImdg.getFirstObjectBySQL(String.format("securityId = %s", currencyPrediction.getSecurityId())); @@ -71,11 +60,6 @@ public class CouponPeriodServiceTest extends AbstractServiceTest { COUPON_PERIOD_MATCHER.assertMatch(result, currencyPrediction); } - /** - * {@link CouponPeriodService#updateCouponPeriod(BaseRequest)} - * Тест проверяет обновление сущности {@link CouponPeriod} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CouponPeriodUpdateRequest}:
- */ @Test public void testUpdateCurrency() { clearAllInImdg(couponPeriodImdg); @@ -106,13 +90,9 @@ public class CouponPeriodServiceTest extends AbstractServiceTest { request.setSecurityId(securityId); request.setPeriodEndDate(testStartDate); request.setPeriodStartDate(testEndDate); - - //ACT String jsonString = getJsonStringForUpdate(request, id); addRecordToKafka((MockConsumer) couponPeriodService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(id, mockProducer); CouponPeriod result = couponPeriodImdg.getFirstObjectBySQL(String.format("securityId = %s", predictableCoupon.getSecurityId())); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CurrencyServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CurrencyServiceTest.java index 0ed07c7ef..03da391b5 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CurrencyServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/CurrencyServiceTest.java @@ -4,7 +4,6 @@ import org.apache.kafka.clients.consumer.MockConsumer; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.misc.Currency; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CurrencyNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.CurrencyUpdateRequest; @@ -31,11 +30,6 @@ public class CurrencyServiceTest extends AbstractServiceTest { super.init(); } - /** - * {@link CurrencyService#newCurrency(BaseRequest)}
- * Тест проверяет генерацию сущности {@link Currency} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CurrencyNewRequest}:
- */ @Test public void testNewCurrency() { clearAllInImdg(currencyImdg); @@ -47,13 +41,9 @@ public class CurrencyServiceTest extends AbstractServiceTest { final CurrencyNewRequest request = new CurrencyNewRequest(); request.setCountryCode(countryCode); request.setCurrencyCode(currencyCode); - - //ACT String jsonString = getJsonStringForNew(request, ID); addRecordToKafka((MockConsumer) currencyService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Currency result = currencyImdg.getFirstObjectBySQL(String.format("countryCode = %s", currencyPrediction.getCountryCode())); @@ -61,11 +51,6 @@ public class CurrencyServiceTest extends AbstractServiceTest { CURRENCY_MATCHER.assertMatch(result, currencyPrediction); } - /** - * {@link CurrencyService#updateCurrency(BaseRequest)} - * Тест проверяет обновление сущности {@link Currency} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CurrencyUpdateRequest}:
- */ @Test public void testUpdateCurrency() { clearAllInImdg(currencyImdg); @@ -80,13 +65,9 @@ public class CurrencyServiceTest extends AbstractServiceTest { request.setId(ID); request.setCountryCode(countryCode); request.setCurrencyCode(currencyCode); - - //ACT String jsonString = getJsonStringForUpdate(request, ID); addRecordToKafka((MockConsumer) currencyService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); Currency result = currencyImdg.getFirstObjectBySQL(String.format("countryCode = %s", currencyPrediction.getCountryCode())); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java index 236029adf..6fbfcc627 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/EquitySecurityServiceTest.java @@ -6,7 +6,6 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity; import ru.clearing.classes.statics.data.misc.Listing; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.EquitySecurityNewRequest; @@ -35,11 +34,6 @@ public class EquitySecurityServiceTest extends AbstractServiceTest { super.init(); } - /** - * {@link EquitySecurityService#newEquity(BaseRequest)}
- * Тест проверяет генерацию сущности {@link EquitySecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link EquitySecurityNewRequest}:
- */ @Test public void testNewEquity() { clearAllInImdg(equitySecurityImdg); @@ -49,13 +43,9 @@ public class EquitySecurityServiceTest extends AbstractServiceTest { final EquitySecurityNewRequest request = getEquitySecurityNewRequest(equityPrediction); Listing listingPrediction = ListingBuilder.builder() .append(equityPrediction).append(request).build(); - - //ACT String jsonString = getJsonStringForNew(request, ID); addRecordToKafka((MockConsumer) equitySecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); EquitySecurity equityResult = equitySecurityImdg.getFirstObjectBySQL(String.format("fullName = %s", equityPrediction.getFullName())); @@ -65,9 +55,6 @@ public class EquitySecurityServiceTest extends AbstractServiceTest { Listing listingResult = listingImdg.getFirstObjectByFieldValues(Map.of("securityId", equityPrediction.getId())); Assertions.assertNull(listingResult); -// listingPrediction.setId(listingResult.getId()); -// listingPrediction.setSecurityId(listingResult.getSecurityId()); -// LISTING_MATCHER.assertMatch(listingResult, listingPrediction); } public Listing updateListingByEquity(EquitySecurity equitySecurity, Listing listing) { @@ -81,11 +68,6 @@ public class EquitySecurityServiceTest extends AbstractServiceTest { return listing; } - /** - * {@link EquitySecurityService#updateEquity(BaseRequest)} - * Тест проверяет обновление сущности {@link EquitySecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link EquitySecurityUpdateRequest}:
- */ @Test public void testUpdateEquity() { clearAllInImdg(equitySecurityImdg); @@ -98,35 +80,17 @@ public class EquitySecurityServiceTest extends AbstractServiceTest { equityPrediction.setFullName(fullName); equityPrediction.setLotSize(BigDecimal.valueOf(updateLotSize)); final EquitySecurityUpdateRequest request = getEquitySecurityUpdateRequest(equityPrediction); -// Listing listingPrediction = new Listing(); -// listingPrediction = equitySecurityService.updateListingByEquity(equityPrediction, listingPrediction); -// listingImdg.insert(listingPrediction); - - //ACT String jsonString = getJsonStringForUpdate(request, ID); addRecordToKafka((MockConsumer) equitySecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); EquitySecurity equityResult = equitySecurityImdg.getFirstObjectBySQL(String.format("fullName = %s", equityPrediction.getFullName())); equityPrediction.setId(equityResult.getId()); equityPrediction.setSecurityId(equityResult.getSecurityId()); EQUITY_SECURITY_MATCHER.assertMatch(equityResult, equityPrediction); - -// Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", equityPrediction.getId())); -// listingPrediction.setId(listingResult.getId()); -// listingPrediction.setSecurityId(listingResult.getSecurityId()); -// LISTING_MATCHER.assertMatch(listingResult, listingPrediction); } - /** - * {@link EquitySecurityService#deleteEquity(BaseRequest)}
- * Тест проверяет удаление сущности {@link EquitySecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- * {@link CommonDeleteRequest#id} - Идентификатор записи
- */ @Test public void testDeleteEquity() { clearAllInImdg(equitySecurityImdg); @@ -137,30 +101,18 @@ public class EquitySecurityServiceTest extends AbstractServiceTest { equityPrediction.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey()); Listing listingPrediction = new Listing(); -// listingPrediction = equitySecurityService.updateListingByEquity(equityPrediction, listingPrediction); -// listingImdg.insert(listingPrediction); -// listingPrediction.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey()); CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); commonDeleteRequest.setId(ID); - - //ACT String jsonString = getJsonStringForDelete(commonDeleteRequest, ID); addRecordToKafka((MockConsumer) equitySecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); EquitySecurity equityResult = equitySecurityImdg.getFirstObjectBySQL(String.format("fullName = %s", equityPrediction.getFullName())); equityPrediction.setId(equityResult.getId()); equityPrediction.setSecurityId(equityResult.getSecurityId()); EQUITY_SECURITY_MATCHER.assertMatch(equityResult, equityPrediction); - -// Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", equityPrediction.getId())); -// listingPrediction.setId(listingResult.getId()); -// listingPrediction.setSecurityId(listingResult.getSecurityId()); -// LISTING_MATCHER.assertMatch(listingResult, listingPrediction); } private EquitySecurity getEquitySecurity() { diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeCashFlowServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeCashFlowServiceTest.java index cbc899bbf..47e7450a0 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeCashFlowServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeCashFlowServiceTest.java @@ -79,7 +79,6 @@ class FixedIncomeCashFlowServiceTest { @Test void fixedIncomeCashFlowNewTest() { - //ARRANGE clearAllInImdg(fixedIncomeCashFlowImdg); FixedIncomeCashFlowNewRequest newRequest = new FixedIncomeCashFlowNewRequest(); newRequest.setSecuritySymbol(SECURITY_SYMBOL_STR); @@ -94,13 +93,9 @@ class FixedIncomeCashFlowServiceTest { predictableFixedIncomeCashFlow.setAccruedCoupon(TEST_BIG_DECIMAL); predictableFixedIncomeCashFlow.setNumber(TEST_LONG); predictableFixedIncomeCashFlow.setValueDate(TEST_DATE); - - //ACT String jsonString = getJsonStringForNew(newRequest, ID); addRecordToKafka((MockConsumer) fixedIncomeCashFlowService.getConsumer(), TOPIC_FIXED_INCOME_CASH_FLOW_NEW, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); FixedIncomeCashFlow resultNew = fixedIncomeCashFlowImdg.getFirstObjectBySQL(String.format("securityId = %s", SECURITY_SYMBOL_STR)); predictableFixedIncomeCashFlow.setId(resultNew.getId()); @@ -109,7 +104,6 @@ class FixedIncomeCashFlowServiceTest { @Test void fixedIncomeCashFlowUpdateTest() { - //ARRANGE FixedIncomeCashFlow existFixedIncomeCashFlow = new FixedIncomeCashFlow(); existFixedIncomeCashFlow.setSecurityId(SECURITY_SYMBOL_LONG); existFixedIncomeCashFlow.setNominalValue(BigDecimal.ZERO); @@ -132,13 +126,9 @@ class FixedIncomeCashFlowServiceTest { predictableFixedIncomeCashFlow.setAccruedCoupon(TEST_BIG_DECIMAL); predictableFixedIncomeCashFlow.setNumber(TEST_LONG); predictableFixedIncomeCashFlow.setValueDate(TEST_DATE); - - //ACT String jsonString = getJsonStringForUpdate(updateRequest, id); addRecordToKafka((MockConsumer) fixedIncomeCashFlowService.getConsumer(), TOPIC_FIXED_INCOME_CASH_FLOW_UPDATE, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(id, mockProducer); FixedIncomeCashFlow resultUpdate = fixedIncomeCashFlowImdg.getFirstObjectBySQL(String.format("securityId = %s", SECURITY_SYMBOL_STR)); predictableFixedIncomeCashFlow.setId(id); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java index c6479a851..1d6280249 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/FixedIncomeSecurityServiceTest.java @@ -6,7 +6,6 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity; import ru.clearing.classes.statics.data.misc.Listing; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.FixedIncomeSecurityNewRequest; @@ -35,11 +34,6 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest { super.init(); } - /** - * {@link FixedIncomeSecurityService#newFixedIncome(BaseRequest)}
- * Тест проверяет генерацию сущности {@link FixedIncomeSecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link FixedIncomeSecurityNewRequest}:
- */ @Test public void newFixedIncome() { clearAllInImdg(fixedIncomeSecurityImdg); @@ -49,13 +43,9 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest { final FixedIncomeSecurityNewRequest request = getFixedIncomeSecurityNewRequest(fixedIncomePrediction); Listing listingPrediction = ListingBuilder.builder() .append(fixedIncomePrediction).append(request).build(); - - //ACT String jsonString = getJsonStringForNew(request, ID); addRecordToKafka((MockConsumer) fixedIncomeSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); FixedIncomeSecurity equityResult = fixedIncomeSecurityImdg.getFirstObjectBySQL(String.format("fullName = %s", fixedIncomePrediction.getFullName())); @@ -65,9 +55,6 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest { Listing listingResult = listingImdg.getFirstObjectByFieldValues(Map.of("securityId", fixedIncomePrediction.getId())); Assertions.assertNull(listingResult); -// listingPrediction.setId(listingResult.getId()); -// listingPrediction.setSecurityId(listingResult.getSecurityId()); -// LISTING_MATCHER.assertMatch(listingResult, listingPrediction); } public Listing updateListingByFixedIncome(FixedIncomeSecurity fixedIncomeSecurity, Listing listing) { @@ -80,11 +67,6 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest { listing.setUpdated(fixedIncomeSecurity.getUpdated()); return listing; } - /** - * {@link FixedIncomeSecurityService#updateFixedIncome(BaseRequest)} - * Тест проверяет обновление сущности {@link FixedIncomeSecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link FixedIncomeSecurityUpdateRequest}:
- */ @Test public void updateFixedIncome() { clearAllInImdg(moneyMarketSecurityMap); @@ -98,35 +80,17 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest { fixedIncomePrediction.setFullName(fullName); fixedIncomePrediction.setLotSize(BigDecimal.valueOf(updateLotSize)); final FixedIncomeSecurityUpdateRequest request = getFixedIncomeSecurityUpdateRequest(fixedIncomePrediction); -// Listing listingPrediction = new Listing(); -// listingPrediction = fixedIncomeSecurityService.updateListingByFixedIncome(fixedIncomePrediction, listingPrediction); -// listingImdg.insert(listingPrediction); - - //ACT String jsonString = getJsonStringForUpdate(request, ID); addRecordToKafka((MockConsumer) fixedIncomeSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); FixedIncomeSecurity equityResult = fixedIncomeSecurityImdg.getFirstObjectBySQL(String.format("fullName = %s", fixedIncomePrediction.getFullName())); fixedIncomePrediction.setId(equityResult.getId()); fixedIncomePrediction.setSecurityId(equityResult.getSecurityId()); FIXED_INCOME_SECURITY_MATCHER.assertMatch(equityResult, fixedIncomePrediction); - -// Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", fixedIncomePrediction.getId())); -// listingPrediction.setId(listingResult.getId()); -// listingPrediction.setSecurityId(listingResult.getSecurityId()); -// LISTING_MATCHER.assertMatch(listingResult, listingPrediction); } - /** - * {@link FixedIncomeSecurityService#deleteFixedIncome(BaseRequest)}
- * Тест проверяет удаление сущности {@link FixedIncomeSecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- * {@link CommonDeleteRequest#id} - Идентификатор записи
- */ @Test public void deleteFixedIncome() { clearAllInImdg(moneyMarketSecurityMap); @@ -137,30 +101,18 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest { fixedIncomePrediction.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey()); Listing listingPrediction = new Listing(); -// listingPrediction = fixedIncomeSecurityService.updateListingByFixedIncome(fixedIncomePrediction, listingPrediction); -// listingImdg.insert(listingPrediction); -// listingPrediction.setWorkflowStatus(ru.spcex.platform.enumeration.Status.Blocked.getKey()); CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); commonDeleteRequest.setId(ID); - - //ACT String jsonString = getJsonStringForDelete(commonDeleteRequest, ID); addRecordToKafka((MockConsumer) fixedIncomeSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); FixedIncomeSecurity equityResult = fixedIncomeSecurityImdg.getFirstObjectBySQL(String.format("fullName = %s", fixedIncomePrediction.getFullName())); fixedIncomePrediction.setId(equityResult.getId()); fixedIncomePrediction.setSecurityId(equityResult.getSecurityId()); FIXED_INCOME_SECURITY_MATCHER.assertMatch(equityResult, fixedIncomePrediction); - -// Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", fixedIncomePrediction.getId())); -// listingPrediction.setId(listingResult.getId()); -// listingPrediction.setSecurityId(listingResult.getSecurityId()); -// LISTING_MATCHER.assertMatch(listingResult, listingPrediction); } private FixedIncomeSecurity getFixedIncomeSecurity() { diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java index 3e78596d8..4ecbe3dad 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java @@ -12,15 +12,15 @@ import static ru.spcex.clearing.securities.service.AbstractServiceTest.*; class MoneyMarketSecurityFactory { - private String nominalCurrency = currencyCode; // (linked to currencyCode) + private String nominalCurrency = currencyCode; private Long id = 0L; - private Long securityId = 0L;// (linked to security) + private Long securityId = 0L; private String description = "tsetse"; private BigDecimal lotSize = BigDecimal.valueOf(341.0); private LocalDate startDate = LocalDate.ofEpochDay(0); private LocalDate endDate = LocalDate.now(); private BigDecimal nominalValue = BigDecimal.valueOf(11.0); - private String instrumentType = RATE; // (linked to instrumentType) + private String instrumentType = RATE; private String fullName = "estat"; private String shortName = "esasdftat"; private String securitySymbol = "sdfafd"; diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java index 98da455b2..97c059ba8 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceTest.java @@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Autowired; import ru.clearing.classes.statics.data.misc.Listing; import ru.clearing.classes.statics.data.security.MoneyMarketSecurity; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest; @@ -45,18 +44,6 @@ public class MoneyMarketSecurityServiceTest extends AbstractServiceTest { moneyMarketSecurityFactory.setId(ID); } - /** - * {@link MoneyMarketSecurityService#newMoneyMarket(BaseRequest)}
- * Тест проверяет генерацию сущности {@link MoneyMarketSecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link MoneyMarketSecurityNewRequest}:
- * {@link MoneyMarketSecurityNewRequest#lotSize} - 1.0
- * {@link MoneyMarketSecurityNewRequest#startDate} - текущее колличество секунд с 1970-01-01T00:00:00Z.
- * {@link MoneyMarketSecurityNewRequest#endDate} - текущее колличество секунд с 1970-01-01T00:00:00Z.
- * {@link MoneyMarketSecurityNewRequest#nominalValue} - 1.0
- * {@link MoneyMarketSecurityNewRequest#nominalCurrency} - 1L
- * {@link MoneyMarketSecurityNewRequest#instrumentType} - "sdgaga"
- * {@link MoneyMarketSecurityNewRequest#fullName} - "estat"
- */ @Test public void testNewMoneyMarketSecurity() { clearAllInImdg(moneyMarketSecurityMap); @@ -68,13 +55,9 @@ public class MoneyMarketSecurityServiceTest extends AbstractServiceTest { .getMoneyMarketSecurityNewRequest(); Listing listingPrediction = ListingBuilder.builder() .append(moneyMarketSecurityPrediction).append(keyRequest).build(); - - //ACT String jsonString = getJsonStringForNew(keyRequest, ID); addRecordToKafka((MockConsumer) moneyMarketSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); MoneyMarketSecurity moneyMarketSecurityResult = moneyMarketSecurityMap.getFirstObjectBySQL(String.format("fullName = %s", moneyMarketSecurityFactory.getFullName())); @@ -88,53 +71,6 @@ public class MoneyMarketSecurityServiceTest extends AbstractServiceTest { LISTING_MATCHER.assertMatch(listingResult, listingPrediction); } -// @Test todo тест с проверкой валидатора -// public void testNewMoneyMarketSecurity2() { -// clearAllInImdg(moneyMarketSecurityMap); -// final String TOPIC = Consts.DESTINATION_MONEY_MARKET_SECURITY_NEW; -// -// final MoneyMarketSecurity moneyMarketSecurityPrediction = moneyMarketSecurityFactory -// .getMoneyMarketSecurity(); -// final MoneyMarketSecurityNewRequest keyRequest = moneyMarketSecurityFactory -// .getMoneyMarketSecurityNewRequest(); -// Listing listingPrediction = ListingBuilder.builder() -// .append(moneyMarketSecurityPrediction).append(keyRequest).build(); -// -// // Создание копии инструмента - не должен задублировать его -// MoneyMarketSecurity existMMS = new MoneyMarketSecurity(); -// existMMS.setId(123L); -// existMMS.setSecuritySymbol(keyRequest.getSecuritySymbol()); -// existMMS.setWorkflowStatus(WorkflowStatus.Active.getKey()); -// moneyMarketSecurityMap.insert(existMMS); -// -// //ACT -// String jsonString = getJsonStringForNew(keyRequest, ID); -// -// addRecordToKafka((MockConsumer) moneyMarketSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); -// -// //ASSERT -// waitingWhenTryAddRecordAndCheckError(ID, mockProducer, -// "1010" //SecuritiesError.InstrumentAlreadyExists -// , Arrays.asList("")); -// waitingSendAndCheckRecord(ID, mockProducer); -// -// MoneyMarketSecurity moneyMarketSecurityResult = moneyMarketSecurityMap.getSingleObjectBySQL(String.format("fullName = %s", moneyMarketSecurityFactory.getFullName())); -// moneyMarketSecurityPrediction.setId(moneyMarketSecurityResult.getId()); -// moneyMarketSecurityPrediction.setSecurityId(moneyMarketSecurityResult.getSecurityId()); -// MONEY_MARKET_SECURITY_MATCHER.assertMatch(moneyMarketSecurityResult, moneyMarketSecurityPrediction); -// -// Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", moneyMarketSecurityPrediction.getId())); -// listingPrediction.setId(listingResult.getId()); -// listingPrediction.setSecurityId(listingResult.getSecurityId()); -// LISTING_MATCHER.assertMatch(listingResult, listingPrediction); -// } - - /** - * {@link MoneyMarketSecurityService#deleteMoneyMarket(BaseRequest)}
- * Тест проверяет удаление сущности {@link MoneyMarketSecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- * {@link CommonDeleteRequest#id} - Идентификатор записи
- */ @Test public void testDeleteMoneyMarket() { clearAllInImdg(moneyMarketSecurityMap); @@ -152,13 +88,9 @@ public class MoneyMarketSecurityServiceTest extends AbstractServiceTest { CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); commonDeleteRequest.setId(ID); - - //ACT String jsonString = getJsonStringForDelete(commonDeleteRequest, ID); addRecordToKafka((MockConsumer) moneyMarketSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); MoneyMarketSecurity moneyMarketSecurityResult = moneyMarketSecurityMap.getFirstObjectBySQL(String.format("fullName = %s", moneyMarketSecurityFactory.getFullName())); @@ -170,16 +102,6 @@ public class MoneyMarketSecurityServiceTest extends AbstractServiceTest { LISTING_MATCHER.assertMatch(listingResult, listingPrediction); } - /** - * {@link MoneyMarketSecurityService#updateMoneyMarket(BaseRequest)} - * Тест проверяет обновление сущности {@link MoneyMarketSecurity} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link MoneyMarketSecurityUpdateRequest}:
- * {@link MoneyMarketSecurityUpdateRequest#fullName} - sfgsdfg
- * {@link MoneyMarketSecurityUpdateRequest#instrumentType} - qwerqwe
- * {@link MoneyMarketSecurityUpdateRequest#nominalCurrency} - RUB
- * {@link MoneyMarketSecurityUpdateRequest#nominalValue} - 2.0
- * {@link MoneyMarketSecurityUpdateRequest#endDate} - текущее колличество секунд с 1970-01-01T00:00:00Z + (24 * 3600)
- */ @Test public void testUpdateMoneyMarket() { clearAllInImdg(moneyMarketSecurityMap); @@ -201,13 +123,9 @@ public class MoneyMarketSecurityServiceTest extends AbstractServiceTest { listingPrediction = moneyMarketSecurityService.updateListingByMms(moneyMarketSecurityPrediction, listingPrediction); listingImdg.insert(listingPrediction); listingPrediction.setLotSize(updateLotSize); - - //ACT String jsonString = getJsonStringForUpdate(keyRequest, ID); addRecordToKafka((MockConsumer) moneyMarketSecurityService.getConsumer(), TOPIC, PARTITION, 0, jsonString); - - //ASSERT waitingSendAndCheckRecord(ID, mockProducer); MoneyMarketSecurity moneyMarketSecurityResult = moneyMarketSecurityMap.getFirstObjectBySQL(String.format("fullName = %s", moneyMarketSecurityFactory.getFullName())); diff --git a/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/UserRoleVerification.java b/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/UserRoleVerification.java index 4141b7725..fb24f7010 100644 --- a/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/UserRoleVerification.java +++ b/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/UserRoleVerification.java @@ -19,14 +19,6 @@ import ru.spcex.platform.utils.error.ValidationException; import java.util.Collection; import java.util.Objects; -/** - * Проверка дополнительных прав пользователя. - *

- * Основная проверка прав осуществляется на frontend-api, и использовать этот компонент дополнительно не требуется. - *

- * Использовать @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE), требует задание роли через setRoleForVerification(role). - * Либо роль можно задать во втором конструкторе, переопределив её где требуется (если используется scope prototype) - */ public class UserRoleVerification { protected Logger log = LoggerFactory.getLogger(getClass()); @@ -45,7 +37,6 @@ public class UserRoleVerification { this.roleVerificationError = roleVerificationError; } - //нужен чтобы спринг мог создать бин private UserRoleVerification(){} public UserRoleVerification(ImdgProvider imdg, IMessageResolver messageResolver, @@ -106,44 +97,4 @@ public class UserRoleVerification { this.roleForVerification = roleForVerification; return this; } - -// public UserRoleVerification(ImdgProvider imdg, UserRole roleForVerification, IErrorEnumId roleVerificationError) { -// userRoleSessions = imdg.getImdg(IMDGDistributedNames.Map_UserRoleSession, UserRoleSession.class); -// companyRoleSet = imdg.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class); -// this.roleForVerification = roleForVerification; -// this.roleVerificationError = roleVerificationError; -// } -// protected Imdg companyRoleSet; -// protected Imdg users; -// -// public boolean userHasRole(Long userId, Long companyId, String userRole) { -// String query = String.format("userId=%s and companyId=%s and userRole=%s and status=%s", -// userId, companyId, userRole, Status.Active.getKey()); -// Collection roles = userRoleSessions.getCollectionIdsBySQL(query); -// log.trace("userHasRole: found {} roles by query: {}", roles.size(), query); -// return !roles.isEmpty(); -// } - - // userIsEnabled & exist - frontend-api validation - - -// public boolean userHasRole(Long userId, Long companyId, IEnumKey role) { -// return userHasRole(userId, companyId, role == null ? null : role.getKey()); -// } - -// public boolean userHasRoleOnObject(Long userId, BusinessObject /*todo WithUserId / WithCompany */ bObject) { -// todo impl -// return true; -// } - - -// public boolean companyHasRole(Long companyId, String companyRole) { -// String query = String.format("companyId=%s and companyRole=%s and workflowStatus=%s", -// companyId, companyRole, Status.Active.getKey()); -// Collection roles = companyRoleSet.getCollectionIdsBySQL(query); -// log.trace("companyHasRole: found {} roles by query: {}", roles.size(), query); -// if (roles.isEmpty()) return false; - //todo impl -// return true; -// } } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/config/KafkaConfig.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/config/KafkaConfig.java index 69df8cc0a..ee5b1b881 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/config/KafkaConfig.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/config/KafkaConfig.java @@ -10,12 +10,12 @@ import org.springframework.context.annotation.Scope; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.core.ProducerFactory; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; -import ru.spcex.clearing.swt.exporter.config.settings.ExportSwtServiceSettings; import ru.spcex.clearing.platform.messaging.config.KafkaConsumerFactory; import ru.spcex.clearing.platform.messaging.config.KafkaProducerFactory; +import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; import ru.spcex.clearing.platform.messaging.service.RequestInfo; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.swt.exporter.config.settings.ExportSwtServiceSettings; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -38,7 +38,7 @@ public class KafkaConfig { @Bean public ProducerFactory pf(ExportSwtServiceSettings settings) { KafkaProducerSettings kafkaSettings = settings.getKafkaProducer(); - return KafkaProducerFactory.producerFactory(kafkaSettings); // Использует специальный сериализатор в JSON + return KafkaProducerFactory.producerFactory(kafkaSettings); } @Bean("kafkaTemplate") diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/config/settings/ExportSwtServiceSettings.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/config/settings/ExportSwtServiceSettings.java index 84e8a9d1e..b170fad95 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/config/settings/ExportSwtServiceSettings.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/config/settings/ExportSwtServiceSettings.java @@ -18,7 +18,6 @@ public class ExportSwtServiceSettings { private SftpOutboundFolderSetting sftpOut; private String docOut; - //todo ??? private Long interval public SftpOutboundFolderSetting getSftpOut() { diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java index cac9e5189..ca9b061a5 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterService.java @@ -33,7 +33,7 @@ public abstract class AbstractExporterService { public static final Charset ENCODING = Charset.forName("windows-1251"); protected final SwtTable type; protected final Imdg sdfImdg; - private final DateTimeFormatter dtFileNameFormatter = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS");// YYMMDDHHmmssSSS + private final DateTimeFormatter dtFileNameFormatter = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS"); private final DateTimeFormatter dtInFileHeaderFormatter = DateTimeFormatter.ofPattern("yyyyMMdd'/'HHmm"); private final KafkaSender kafkaSender; protected final FileStorage fileStorage; @@ -84,7 +84,7 @@ public abstract class AbstractExporterService { data = outBuffer.toByteArray(); } fileStorage.saveFile(fileName, data); - } catch (Exception e) { // IOException, ... + } catch (Exception e) { log.error("Failed export {} file", fileName); sendSwtExportedNotification(exportAt, null, ResultStatuses.notSuccess); throw new RuntimeException(e); @@ -117,12 +117,6 @@ public abstract class AbstractExporterService { } - /** - * @param type DF-09 - * @param section bond/fund/"" - * @param atTime LocalDateTime.now(), если null - текущее время - * @return пример "KS_RDC_DF-12_bond_220907151804503.txt" - */ protected String formatFileName(String type, String section, LocalDateTime atTime) { Objects.requireNonNull(type); if (section == null) section = ""; @@ -132,21 +126,17 @@ public abstract class AbstractExporterService { return String.format("KS_RDC_%s_%s%s.txt", type, section, dt); } - // Выборка protected Collection selectItems(Long groupId) { return sdfImdg.getCollectionObjectsBySQL("generationId = %d".formatted(groupId)); } - // Конвертация (поля см. meta.xml) protected abstract String convertRecord(T record, ConvertionContext context); -// protected abstract String[] swtHeader(); - protected void makeSWTData(SWTHeaderData header, Collection records, OutputStream outStream) { try (PrintWriter out = new PrintWriter(outStream, false, ENCODING)) { out.print(header.buildString()); int totalSize = records.size(); - int counter = totalSize == 0 ? 0 : 1; // нумерация начинается с 1 + int counter = totalSize == 0 ? 0 : 1; for (T row : records) { ConvertionContext context = new ConvertionContext(mapClass, counter, totalSize); String data = convertRecord(row, context); diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/LauncherCommandReceiver.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/LauncherCommandReceiver.java index fd1f6062c..4d07007a7 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/LauncherCommandReceiver.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/LauncherCommandReceiver.java @@ -28,9 +28,6 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi @Override public void afterPropertiesSet() { -// callback(LauncherCommandRequest.class) -// .setConsumer(this::exportAll) -// .forDestination(Task.unloadingSession_LIMM.topic(), callbacks::put); // todo task name? callback(SwtExporterRequest.class) .setConsumer(this::exportSpecial) .forDestination(Consts.SWT_EXPORTER, callbacks::put); @@ -63,7 +60,5 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi } } } - //log.error("SWT export not execute for type \"{}\" - unknown command", req.getType()); - //todo return error? } } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java index 3030212c0..4fde52dbc 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09Exporter.java @@ -60,7 +60,6 @@ public class DF09Exporter extends AbstractExporterService { return swtHeaderData; } - // Выборка отсортированная @Override protected Collection selectItems(Long groupId) { List orderedList = new ArrayList<>(super.selectItems(groupId)); diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java index 3ffcf1729..2d5ec5dac 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF12Exporter.java @@ -57,10 +57,6 @@ public class DF12Exporter extends AbstractExporterService { @Override protected String getDocumentNameForJournal() { - //todo Выбор: - // Распоряжение на проведение операций по итогам клиринга (Фондовая секция) - //или - // Распоряжение на проведение операций по итогам клиринга (ОФЗ, ОБР) return "Распоряжение на проведение операций по итогам клиринга (Фондовая секция / ОФЗ, ОБР)"; } @@ -69,8 +65,7 @@ public class DF12Exporter extends AbstractExporterService { @Override protected String convertRecord(SDf12 record, ConvertionContext context) { StringBuilder stringBuilder = new StringBuilder(); - if (!Objects.equals(lastHeader20, record.getOutDocument())) { // header, тег :20: должен быть 1 раз только в начале документа - //stringBuilder.append(":20:").append(record.getOutDocument()).append(SWTHeaderData.LINE_SEPARATOR); + if (!Objects.equals(lastHeader20, record.getOutDocument())) { log.warn("SWT generationId={} last header :20: was \"{}\" but next record OutDocument=\"{}\"", record.getGenerationId(), lastHeader20, record.getOutDocument()); lastHeader20 = record.getOutDocument(); @@ -110,7 +105,5 @@ public class DF12Exporter extends AbstractExporterService { @Override protected void writeFooter(PrintWriter out, Collection records, int counter) { -// String footerCheckSum = counter + lineSeparator + records.size() + lineSeparator; -// out.print(footerCheckSum); } } diff --git a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF14Exporter.java b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF14Exporter.java index a17a2b7b1..13112e72d 100644 --- a/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF14Exporter.java +++ b/clearing-parent/swt-exporter/src/main/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF14Exporter.java @@ -57,10 +57,6 @@ public class DF14Exporter extends AbstractExporterService { @Override protected String getDocumentNameForJournal() { - //todo Выбор: - // Уведомление о завершении расчетов (ОФЗ, ОБР) - //или - // Уведомление о завершении расчетов (ОФЗ, ОБР) return "Уведомление о завершении расчетов (ОФЗ, ОБР)"; } @@ -84,6 +80,5 @@ public class DF14Exporter extends AbstractExporterService { @Override protected void writeFooter(PrintWriter out, Collection records, int counter) { - // нет специального конца файла } } diff --git a/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterServiceTest.java b/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterServiceTest.java index 5f42cc630..b78a14d8e 100644 --- a/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterServiceTest.java +++ b/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/AbstractExporterServiceTest.java @@ -23,7 +23,6 @@ public class AbstractExporterServiceTest extends AbstractServiceTest { String fileName = "KS_RDC_DF-14_bond_221005134616035.txt"; moneyExporterService.sendSwtExportedNotification(LocalDateTime.now(), 1L, ResultStatuses.notSuccess); - //TestUtils.waitingSendAndCheckRecord(null, mockProducer); } @Test diff --git a/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09ExporterTest.java b/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09ExporterTest.java index 68d43283e..547fd6272 100644 --- a/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09ExporterTest.java +++ b/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF09ExporterTest.java @@ -12,11 +12,11 @@ import ru.spcex.platform.utils.time.TimeUtil; import java.io.ByteArrayOutputStream; import java.io.OutputStream; import java.time.LocalDate; -import java.time.LocalTime; import java.util.ArrayList; import java.util.Collection; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; class DF09ExporterTest { @@ -60,9 +60,6 @@ class DF09ExporterTest { ByteArrayOutputStream outBytes = new ByteArrayOutputStream(); exporter.makeSWTData(header, records, outBytes); String out = outBytes.toString(); -// try { -// FileUtils.write(new File("E:\\test_encode.txt"), out, "windows-1251"); -// } catch (Exception e){} assertTrue(out.length() > 35); out=out.replaceAll("Date/Time.*","Date/Time:XXXX"); out=out.replaceAll(":20:.*",":20:XXXX"); @@ -76,7 +73,6 @@ class DF09ExporterTest { "test3:4567:test5:test6:test7\r\n" + "DEPO:450:SECCODE:SPB:OK\r\n" + "5017", out); - // Тест проверяет переносы строк: windows-1251 /r/n } private static class TestableExporter extends DF09Exporter { diff --git a/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11ExporterTest.java b/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11ExporterTest.java index 6a684c58b..a2ea4e0a2 100644 --- a/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11ExporterTest.java +++ b/clearing-parent/swt-exporter/src/test/java/ru/spcex/clearing/swt/exporter/services/exportimpl/DF11ExporterTest.java @@ -24,10 +24,6 @@ import static ru.spcex.clearing.test.config.KafkaTestConfig.getCaptor; class DF11ExporterTest extends AbstractExporterServiceTest { - /** - * Тест проверяет создание строк документа DF-11 .
- */ -// @Test void cdeateSdf() { SwtTable type = SwtTable.SDF_11; Imdg map = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf11, SDf11.class); @@ -47,8 +43,6 @@ class DF11ExporterTest extends AbstractExporterServiceTest { swtExporterRequest.setType(type.getKey()); String request = getJsonStringForNew(swtExporterRequest, generationId); addRecordToKafka((MockConsumer) commandReceiver.getConsumer(), Consts.SWT_EXPORTER, 0, 0, request); - - //waiting for kafka send message (finale event) ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/controller/LauncherCommandReceiver.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/controller/LauncherCommandReceiver.java index 1ca177ca6..97875dbbc 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/controller/LauncherCommandReceiver.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/controller/LauncherCommandReceiver.java @@ -24,20 +24,17 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi this.importer = importer; } - /** - * В реальности не используется - */ @Override public void afterPropertiesSet() { callback(LauncherCommandRequest.class) .setConsumer(action -> importer.run(ETable.S_DF_08)) - .forDestination(Task.createOrderConfirm.topic(), callbacks::put); // CORC + .forDestination(Task.createOrderConfirm.topic(), callbacks::put); callback(LauncherCommandRequest.class) .setConsumer(action -> importer.run(ETable.S_DF_10)) - .forDestination(Task.accrualOfBalance.topic(), callbacks::put); // GBAL + .forDestination(Task.accrualOfBalance.topic(), callbacks::put); callback(LauncherCommandRequest.class) .setConsumer(action -> importer.run(ETable.S_DF_13)) - .forDestination(Task.getBalance.topic(), callbacks::put); // GBLD + .forDestination(Task.getBalance.topic(), callbacks::put); init(); } } diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/ResultContainer.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/ResultContainer.java index de88522e4..ad014d709 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/ResultContainer.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/ResultContainer.java @@ -6,9 +6,6 @@ import ru.spcex.clearing.swt.importer.logic.data.enums.StageResult; import java.io.File; import java.util.UUID; -/** - * Контейнер для передачи результата между стадиями - */ public class ResultContainer { private UUID uuid; private ETable swtTable; diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/enums/ColumnType.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/enums/ColumnType.java index 2a1f5a751..fddd13a5a 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/enums/ColumnType.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/data/enums/ColumnType.java @@ -4,10 +4,6 @@ import com.linuxense.javadbf.DBFDataType; import java.sql.Types; -/** - * Типы данных в таблицах. - * Ставит в соответствие типы PostGRE и DBF - */ public enum ColumnType { VARCHAR(DBFDataType.CHARACTER, Types.VARCHAR), CHARACTER(DBFDataType.CHARACTER, Types.CHAR), diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/ImportToDB.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/ImportToDB.java index 929dd799c..8723e7021 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/ImportToDB.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/ImportToDB.java @@ -23,9 +23,6 @@ import java.util.concurrent.atomic.AtomicInteger; import static ru.spcex.clearing.swt.importer.readers.ValidationResult.SUCSESS; -/** - * Заливка проверенных данных в базу - */ @Component public class ImportToDB extends Stage { private final ImportSWTServiceSettings settings; diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/SWTImportKafkaMessenger.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/SWTImportKafkaMessenger.java index f3d575196..5399aaec8 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/SWTImportKafkaMessenger.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/SWTImportKafkaMessenger.java @@ -35,10 +35,6 @@ public class SWTImportKafkaMessenger implements InitializingBean { messengers.put(ETable.S_DF_21, groupId -> messageBalance(groupId, SdfTable.SDF_21)); } - /** - * отправляет в кафку сообщение, при необходимости - * (обрабатывается, например, в balance-service, clearing-service) - */ public void notifySystemIfNeeded(ETable table, Long groupId) { Consumer messenger = messengers.get(table); if (messenger != null) { diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/ValidateFields.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/ValidateFields.java index d29b5261c..0b1d2f7c0 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/ValidateFields.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/logic/stages/ValidateFields.java @@ -9,9 +9,6 @@ import ru.spcex.clearing.swt.importer.logic.data.enums.StageResult; import java.nio.charset.Charset; -/** - * Фильтрация источника на предмет соответствия полей - */ @Component public class ValidateFields extends Stage implements InitializingBean { private final ImportSWTServiceSettings settings; @@ -26,9 +23,6 @@ public class ValidateFields extends Stage implements InitializingBean { return StageResult.OK; } - /** - * 1. Проверяет кодировку из настройки swt.encoding-source - */ @Override public void afterPropertiesSet() throws Exception { initSWTCharset(); diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/AbstractTemplate.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/AbstractTemplate.java index f5f02491a..78ee5c2d0 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/AbstractTemplate.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/AbstractTemplate.java @@ -12,13 +12,6 @@ import java.util.function.Consumer; import static ru.spcex.clearing.swt.importer.readers.ValidationResult.SUCSESS; -/** - * Класс не потокобезопасен. - * Требуется пересоздавать экземпляры класса перед применением. - * Используйте getSDf21Template(), getSDf20Template(). - * - * @see SWTReader - */ public abstract class AbstractTemplate { protected Logger log = LoggerFactory.getLogger(getClass()); protected Scanner scanner; diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/SWTRecord.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/SWTRecord.java index f8836df97..6f4e3a886 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/SWTRecord.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/SWTRecord.java @@ -17,7 +17,7 @@ public class SWTRecord implements Cloneable { private String valFor23Tag; private String valFor30Tag; private String valFor35ATag; - private String[] valFor35BTag;//Код ценной бумаги:наименование:тип + private String[] valFor35BTag; private String valFor60ATag; private String valFor62ATag; private String valFor66ATag; diff --git a/clearing-parent/swt-importer/src/test/java/ru/spcex/clearing/swt/importer/logic/stages/ImportToDBTest.java b/clearing-parent/swt-importer/src/test/java/ru/spcex/clearing/swt/importer/logic/stages/ImportToDBTest.java index 49596bb9d..c72bd05b4 100644 --- a/clearing-parent/swt-importer/src/test/java/ru/spcex/clearing/swt/importer/logic/stages/ImportToDBTest.java +++ b/clearing-parent/swt-importer/src/test/java/ru/spcex/clearing/swt/importer/logic/stages/ImportToDBTest.java @@ -52,8 +52,7 @@ class ImportToDBTest { waitAvailableImdgProviderAndAddAdminWithDefaultId(); } -// @Test - void process() throws IOException { +void process() throws IOException { ETable eTable = ETable.S_DF_20; File swtFile = new File("D:\\repo\\mfd\\clearing\\clearing-parent\\swt-importer\\src\\test\\java\\ru\\spcex\\clearing\\swt\\importer\\files\\RDC_KS_DF-20_230717163911161.txt"); ResultContainer resultContainer = createNewTask(eTable, swtFile); diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/ImdgService.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/ImdgService.java index d5eb9dff6..a87924e62 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/ImdgService.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/ImdgService.java @@ -1,6 +1,5 @@ package ru.spcex.clearing.test; -import com.hazelcast.config.MapStoreConfig; import com.hazelcast.core.DistributedObject; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.IMap; @@ -40,12 +39,10 @@ public class ImdgService { long loadTime = System.currentTimeMillis(); int count = 0; - HashSet ignoreUpdateMap = new HashSet<>(); // Эти мапы не должны обновляться + HashSet ignoreUpdateMap = new HashSet<>(); ignoreUpdateMap.add(IMDGDistributedNames.Map_RequestInfo); ignoreUpdateMap.add(HazelcastHelper.CLEARING_SYSTEM_MAP); ignoreUpdateMap.add(HazelcastHelper.STATE_OF_IMDG_SERVER); - - // no mapstore: ignoreUpdateMap.add(IMDGDistributedNames.Map_LiabilitiesClaimsAssets); ignoreUpdateMap.add(IMDGDistributedNames.Map_AccountBalance); ignoreUpdateMap.add(IMDGDistributedNames.Map_KeyRate); @@ -55,11 +52,9 @@ public class ImdgService { try { List> tasks = new ArrayList<>(); - // На сервере так: Collection mapNames = hazelcastServerInstance.getConfig().getMapConfigs().keySet(); - // На клиенте: List mapNames = new ArrayList<>(); for (DistributedObject object : hazelcastServerInstance.getDistributedObjects()) { - if (object instanceof IMap) // MapProxyImpl + if (object instanceof IMap) mapNames.add(((IMap) object).getName()); } for (String mapName : mapNames) { @@ -70,8 +65,6 @@ public class ImdgService { AtomicInteger errorCount=new AtomicInteger(0); tasks.add(() -> { Long maxKey = null; -// MapStoreConfig mapStoreConfig = hazelcastServerInstance.getConfig().getMapConfig(mapName).getMapStoreConfig(); -// if (mapStoreConfig != null && mapStoreConfig.isEnabled()) { try { long start = System.currentTimeMillis(); log.debug("evict map {}", mapName); @@ -90,8 +83,6 @@ public class ImdgService { log.trace("{} max(id)={}", mapName, maxKey); } catch (IllegalArgumentException e) { - // когда нет MapStore: java.lang.IllegalArgumentException: First you should configure a map store at com.hazelcast.util.Preconditions.checkTrue(Preconditions.java:327) - // Такая ошибка обычно возникает во время разработки при частичном перезапуске IMDG (без отключения тестового сервиса) при работе над мапами. log.error("Can not reload map \"{}\" cause: {}", mapName, ExceptionUtils.getStackTrace(e)); if (warningMsgs != null) warningMsgs.add("Can not load from map \"" + mapName + "\" " + e.getMessage()); @@ -105,7 +96,7 @@ public class ImdgService { }); } long maxKey = 0L; - int threadCount = 2; //Runtime.getRuntime().availableProcessors(); + int threadCount = 2; log.info("Initializing threads count = {}", threadCount); ExecutorService executor = Executors.newWorkStealingPool(threadCount); try { diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/TestApiClearingApplication.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/TestApiClearingApplication.java index 130b48087..f624617ea 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/TestApiClearingApplication.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/TestApiClearingApplication.java @@ -2,25 +2,10 @@ package ru.spcex.clearing.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; @SpringBootApplication public class TestApiClearingApplication { public static void main(String[] args) { - -// ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(SpringEnableComponentScanConfig.class); -// StartupInfo startupInfo = context.getBean(StartupInfo.class); -// startupInfo.logStart(); -// try { -// ProcessorService processorService = context.getBean(ProcessorService.class); -// processorService.process(); -// } finally { -// startupInfo.logEnd(); -// context.close(); -// } - - //todo not spring boot, please SpringApplication springApplication = new SpringApplication(TestApiClearingApplication.class); springApplication.run(args); } diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/ImdgConfig.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/ImdgConfig.java index e564bce32..d8efa391c 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/ImdgConfig.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/ImdgConfig.java @@ -2,15 +2,16 @@ package ru.spcex.clearing.test.config; import com.hazelcast.client.HazelcastClient; import com.hazelcast.client.config.ClientConfig; -import com.hazelcast.core.*; +import com.hazelcast.core.HazelcastInstance; +import com.hazelcast.core.ILock; +import com.hazelcast.core.IMap; +import com.hazelcast.core.IdGenerator; import com.hazelcast.query.Predicate; import com.hazelcast.query.Predicates; import com.hazelcast.query.SqlPredicate; -import org.mockito.Mockito; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -21,9 +22,7 @@ import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgIdGeneratorHazelcast; -import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgTransactionalHazelcast; import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; import ru.spcex.platform.imdg.iml.hazelcast.util.HazelcastHelper; import ru.spcex.platform.utils.log.ExceptionUtils; @@ -37,13 +36,8 @@ public class ImdgConfig { @Autowired @Bean public ImdgProvider imdgProvider( -// @Qualifier("taskExecutorHazelcastClientInitializer") ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer, -// @Qualifier("taskExecutorIdGeneratorAwaiter") ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter, TestServiceSettings clientSetting, HazelcastInstance hcInstance ) { -// ImdgProvider imdg = new HazelcastService(taskExecutorHazelcastClientInitializer, -// taskExecutorIdGeneratorAwaiter, -// clientSetting.getHazelcast()); ImdgProvider imdg = new ImdgProvider() { @Override @@ -84,7 +78,6 @@ public class ImdgConfig { settingsElementHazelcastClient.getInstanceName(), settingsElementHazelcastClient.getNearCacheConfig() ); -// hazelcastInstance = Mockito.mock(HazelcastInstance.class); // debug log.info("Hazelcast: client created, trying connect to server ({}) ...", settingsElementHazelcastClient.getClusterMembers()); hazelcastInstance = HazelcastClient.newHazelcastClient(clientConfig); log.info("Hazelcast: client created and connected"); @@ -115,7 +108,6 @@ public class ImdgConfig { public void lockAndPerform(Runnable operation) { ILock hzLock = null; try { - //в качестве альтернативы getCPSubsystem, поддерживается только при 3+ нодах хазелкаста hzLock = hzInstance.getLock(mapName); hzLock.lock(); operation.run(); @@ -145,10 +137,6 @@ public class ImdgConfig { return map.get(paramLong); } - /** - * возвращает объект удовлетворяющий условиям - * не проверяет, если удовлетворяющих условиям > 1 - */ @SuppressWarnings("unchecked") @Override public T getFirstObjectByFieldValues(Map> conditions) { @@ -195,13 +183,10 @@ public class ImdgConfig { public Collection getCollectionObjectsBySQL(String paramString) { SqlPredicate sqlPredicate = new SqlPredicate(paramString); Collection found = map.values(sqlPredicate); - List result = new ArrayList<>(found); // Hazelcast может вернуть proxy-коллекцию + List result = new ArrayList<>(found); return result; } - /** - * возвращает коллекцию объектов, удовлетворяющий условиям на поля - */ @SuppressWarnings("unchecked") @Override public Collection getCollectionObjectsByFieldValues(Map> conditions) { diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/JsonUtil.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/JsonUtil.java index 92f524927..ce0811fbe 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/JsonUtil.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/JsonUtil.java @@ -15,7 +15,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -// todo it is copy-paste from test-clearing public class JsonUtil { public static List readValues(String json, Class clazz) { @@ -54,16 +53,11 @@ public class JsonUtil { private static final ObjectMapper MAPPER = new JacksonObjectMapper(); private JacksonObjectMapper() { - //настройки Ильи configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); - //модуль для корректной сериализации LocalDateTime в поля JSON - JavaTimeModule модуль библиотеки jackson-datatype-jsr310 registerModule(new JavaTimeModule()); configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); - //запрещаем доступ ко всем полям и методам класса и потом разрешаем доступ только к полям, нужны чтобы не было лишних полей из-за методов как: public ActionType getActionType() у BankAccountNewAction setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); - //не сериализуем null-поля -// setSerializationInclusion(JsonInclude.Include.NON_NULL); } public static ObjectMapper getMapper() { diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/KafkaConfig.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/KafkaConfig.java index 953b8ecf0..0b7db5410 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/KafkaConfig.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/KafkaConfig.java @@ -1,20 +1,15 @@ package ru.spcex.clearing.test.config; -import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.producer.Producer; -import org.mockito.Mockito; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Scope; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.core.ProducerFactory; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.config.KafkaConsumerFactory; import ru.spcex.clearing.platform.messaging.config.KafkaProducerFactory; import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; import ru.spcex.clearing.platform.messaging.service.RequestInfo; @@ -27,19 +22,11 @@ import ru.spcex.platform.imdg.api.ImdgProvider; @Configuration public class KafkaConfig { Logger log = LoggerFactory.getLogger(getClass()); -// @Autowired -// @Bean -// @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) -// public Consumer createConsumer(TestServiceSettings settings) { -// return KafkaConsumerFactory.consumer(settings.getKafkaConsumer()); -//// return Mockito.mock(Consumer.class); -// } @Autowired @Bean public Producer createProducer(TestServiceSettings settings) { return KafkaProducerFactory.producer(settings.getKafkaProducer()); -// return Mockito.mock(Producer.class); } @Bean @@ -50,7 +37,6 @@ public class KafkaConfig { return null; } return KafkaProducerFactory.producerFactory(kafkaSettings); -// return Mockito.mock(ProducerFactory.class); } @Autowired(required = false) @@ -78,7 +64,5 @@ public class KafkaConfig { return imdg::insert; }) .build(); - -// return Mockito.mock(KafkaSender.class); } } diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/settings/ControllerSettings.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/settings/ControllerSettings.java index 15a7adc6a..eefd0a4e4 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/settings/ControllerSettings.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/config/settings/ControllerSettings.java @@ -1,8 +1,5 @@ package ru.spcex.clearing.test.config.settings; -/** - * Debug config - */ public class ControllerSettings { private String port; private String contextPath; diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/Controller.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/Controller.java index 0170ecf63..0c3fe754f 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/Controller.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/Controller.java @@ -1,7 +1,6 @@ package ru.spcex.clearing.test.controller; import com.sun.net.httpserver.HttpExchange; -import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -36,14 +35,8 @@ public class Controller extends HttpServerSimpleFramework { @Override protected void createContextPages(HttpServer server, String baseUrl) throws IOException { server.createContext(baseUrl, new RedirectPage(baseUrl, baseUrl+"index.html")); - //server.createContext(baseUrl + "/favicon.ico", staticPageFromResource("pages/favicon.ico", null).contentType="image/icon"); server.createContext(baseUrl + "index.html", staticPageFromResource("pages/index.html", null)); - - // Database server.createContext(baseUrl + "imdg/reload", new ImdgHandler()); - //server.createContext(baseUrl+"db/info", new ImdgInfoHandler()); - - // Message server.createContext(baseUrl + "message.html", staticPageFromResource("pages/message.html", null)); server.createContext(baseUrl + "message.do", new KafkaHandler()); } diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/HttpServerSimpleFramework.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/HttpServerSimpleFramework.java index 66a89d0f3..5f82f94b1 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/HttpServerSimpleFramework.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/HttpServerSimpleFramework.java @@ -4,6 +4,11 @@ import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; import java.io.*; import java.net.InetSocketAddress; @@ -14,16 +19,6 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; -import org.apache.commons.lang3.exception.ExceptionUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; - -/** - * Простой HTTP server и фреимворк для HTML5 страниц. - * Только для отладки. - */ public abstract class HttpServerSimpleFramework implements InitializingBean, DisposableBean { protected final Logger log = LoggerFactory.getLogger(getClass()); protected HttpServer server; @@ -46,7 +41,7 @@ public abstract class HttpServerSimpleFramework implements InitializingBean, Dis try { log.info("Server star at port {} with url \"{}\"", port, baseUrl); this.server = HttpServer.create(new InetSocketAddress(port), 0); - server.setExecutor(null); // default + server.setExecutor(null); createContextPages(server, baseUrl); server.start(); } catch (Throwable t) { @@ -97,7 +92,7 @@ public abstract class HttpServerSimpleFramework implements InitializingBean, Dis log.info("{} request by user \"{}\" {} url {}", getClass().getSimpleName(), he.getRemoteAddress().getAddress(), he.getRequestMethod(), he.getRequestURI()); he.sendResponseHeaders(200, 0); - he.setAttribute("Content-Type", "text/html; charset=windows-1251"); // or "text/plain или text/html; charset=windows-1251" + he.setAttribute("Content-Type", "text/html; charset=windows-1251"); try (OutputStream os = he.getResponseBody()) { writeLine(os, "\n\n"); writeLine(os, "

"); @@ -121,7 +116,7 @@ public abstract class HttpServerSimpleFramework implements InitializingBean, Dis public static class RedirectPage implements HttpHandler { protected final Logger log = LoggerFactory.getLogger(getClass()); - protected String myUrl; // для редиректа с корня / + protected String myUrl; protected String toUrl; public RedirectPage(String myUrl, String toUrl) { @@ -146,7 +141,7 @@ public abstract class HttpServerSimpleFramework implements InitializingBean, Dis he.getRequestURI(), he.getRemoteAddress().getAddress().getHostAddress(), toUrl); Headers responseHeaders = he.getResponseHeaders(); responseHeaders.set("Location", toUrl); - he.sendResponseHeaders(301, 0); // https://developer.mozilla.org/ru/docs/Web/HTTP/Redirections + he.sendResponseHeaders(301, 0); he.close(); } } @@ -189,7 +184,7 @@ public abstract class HttpServerSimpleFramework implements InitializingBean, Dis try (OutputStream os = he.getResponseBody()) { os.write(content.getBytes(encoding)); } catch (Exception err) { - he.sendResponseHeaders(500, 0); // too late + he.sendResponseHeaders(500, 0); log.error("StaticPage error {}", ExceptionUtils.getStackTrace(err)); } } diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/kafka/AnyKafkaMessageAction.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/kafka/AnyKafkaMessageAction.java index 146cc7246..e69de29bb 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/kafka/AnyKafkaMessageAction.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/kafka/AnyKafkaMessageAction.java @@ -1,59 +0,0 @@ -//package ru.spcex.clearing.test.controller.kafka; -// -//import com.fasterxml.jackson.annotation.JsonProperty; -//import com.fasterxml.jackson.annotation.JsonRawValue; -//import com.fasterxml.jackson.databind.JsonNode; -//import io.swagger.annotations.ApiModelProperty; -//import ru.spcex.clearing.platform.messaging.domain.ActionType; -//import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; -// -//public class AnyKafkaMessageAction /*implements IAction*/ { -// @ApiModelProperty(value = "полное имя класса payload для BaseRequest", example = "ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest") -// @JsonProperty -// private String fullClassName; -// @JsonProperty -// private String topicName; -// @JsonRawValue -// public String json; -// -// @JsonProperty("json") -// private void unpackRawJson(JsonNode json) { -// this.json = json.toString(); -// } -// -//// @Override -// public TradingClearingRegistryNewRequest toRequest() { -// var req = new TradingClearingRegistryNewRequest(); -// return req; -// } -// -// @ApiModelProperty(hidden = true) -//// @Override -// public ActionType getActionType() { -// return ActionType.SYSTEM; -// } -// -// public String getFullClassName() { -// return fullClassName; -// } -// -// public void setFullClassName(String fullClassName) { -// this.fullClassName = fullClassName; -// } -// -// public String getTopicName() { -// return topicName; -// } -// -// public void setTopicName(String topicName) { -// this.topicName = topicName; -// } -// -// public String getJson() { -// return json; -// } -// -// public void setJson(String json) { -// this.json = json; -// } -//} diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/kafka/KafkaApiController.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/kafka/KafkaApiController.java index 3d930fd85..e69de29bb 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/kafka/KafkaApiController.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/kafka/KafkaApiController.java @@ -1,88 +0,0 @@ -//package ru.spcex.clearing.test.controller.kafka; -// -//import com.fasterxml.jackson.core.JsonProcessingException; -//import com.fasterxml.jackson.databind.JavaType; -//import com.fasterxml.jackson.databind.ObjectMapper; -//import io.swagger.annotations.ApiOperation; -//import io.swagger.annotations.ApiParam; -//import io.swagger.annotations.ApiResponse; -//import io.swagger.annotations.ApiResponses; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.http.MediaType; -//import org.springframework.stereotype.Controller; -//import org.springframework.util.ClassUtils; -//import org.springframework.web.bind.annotation.RequestBody; -//import org.springframework.web.bind.annotation.RequestMapping; -//import org.springframework.web.bind.annotation.RequestMethod; -//import org.springframework.web.bind.annotation.ResponseBody; -//import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; -//import ru.spcex.platform.utils.enumeration.EnumMessage; -//import ru.spcex.platform.utils.enumeration.IErrorEnumId; -//import ru.spcex.platform.utils.error.ValidationException; -//import ru.spcex.platform.utils.text.TextUtil; -// -//@Controller -//@RequestMapping("/anonymous/kafka-api") -//public class KafkaApiController { -// private final Logger log = LoggerFactory.getLogger(getClass()); -// private final KafkaSender kafkaSender; -// private static final ObjectMapper json = new ObjectMapper(); -// static { -// } -// -// enum BackEndError implements IErrorEnumId { -// ValidationError(9000L), -// UnknownJsonProperty(9001L), -// FailedToReadHttpMessage(9002L), -// KeycloakRepeatedRoles(9003L), -// DictionaryNotFound(9004L), -// ResourceNotFound(9005L) -// ; -// private final Long id; -// -// BackEndError(Long id) { -// this.id = id; -// } -// -// @Override -// public Long getId() { -// return id; -// } -// } -// -// @Autowired -// public KafkaApiController(KafkaSender kafkaSender) { -// this.kafkaSender = kafkaSender; -// } -// -// @ApiOperation(value = "Test backend-api availability.") -// @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = String.class)}) -// @RequestMapping(method = RequestMethod.POST, path = "/any/message", produces = MediaType.TEXT_PLAIN_VALUE) -// @ResponseBody -// public String processGet(@ApiParam(value = "Параметры команды в JSON формате.", required = true) -// @RequestBody AnyKafkaMessageAction bankAccountNewAction) throws ClassNotFoundException, ValidationException, JsonProcessingException { -// log.info("Call test method for backend-api controller"); -// validate(bankAccountNewAction); -// Class parameterType = ClassUtils.forName(bankAccountNewAction.getFullClassName(), ClassUtils.getDefaultClassLoader()); -// JavaType requestType = json.getTypeFactory().constructSimpleType(parameterType, null); -// Object obj = json.readValue(bankAccountNewAction.getJson(), requestType); -// Long idOfBaseRequestMessage = kafkaSender.sendRequestToQueue(bankAccountNewAction.getTopicName(), obj); -// log.debug("Test message to topic {} with request id={}", bankAccountNewAction.getTopicName(), idOfBaseRequestMessage); -// return "success: baseRequest.id = " + idOfBaseRequestMessage; -// } -// -// private void validate(AnyKafkaMessageAction bankAccountNewAction) throws ValidationException { -// if (TextUtil.isEmpty(bankAccountNewAction.getTopicName())) { -// throw new ValidationException(new EnumMessage(BackEndError.ValidationError, "topicName")); -// } -// if (TextUtil.isEmpty(bankAccountNewAction.getFullClassName())) { -// throw new ValidationException(new EnumMessage(BackEndError.ValidationError, "fullClassName")); -// } -// if (TextUtil.isEmpty(bankAccountNewAction.getJson())) { -// throw new ValidationException(new EnumMessage(BackEndError.ValidationError, "json")); -// } -// } -// -//} diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/ImapEvent.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/ImapEvent.java index d6b74267b..4c529dfd0 100644 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/ImapEvent.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/ImapEvent.java @@ -39,14 +39,13 @@ public class ImapEvent { } public void waitWhenHappened() throws InterruptedException { - //running timer task as daemon thread Timer timer = new Timer(true); timer.scheduleAtFixedRate(new TimerTask() { boolean secondRan; @Override public void run() { - checkEventHappened.set(secondRan);//если что-то пойдет не так не тормозить основной поток + checkEventHappened.set(secondRan); secondRan = true; } }, 0, 30 * 1000); @@ -55,7 +54,6 @@ public class ImapEvent { checkEventHappened.wait(100); } } - //preparing hazelcastImdgProvider for next test iMap.removeEntryListener(listenerAdding); iMap.removeEntryListener(listenerUpdating); iMap.removeEntryListener(listenerRemoving); diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/MatcherFactory.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/MatcherFactory.java index 6b5f60c45..c255df04e 100644 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/MatcherFactory.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/MatcherFactory.java @@ -4,11 +4,6 @@ import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; -/** - * Factory for creating test matchers. - *

- * Comparing actual and expected objects via AssertJ - */ public class MatcherFactory { public static Matcher usingIgnoringFieldsComparator(String... fieldsToIgnore) { diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/TestObjectCreator.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/TestObjectCreator.java index 1cb6d557f..d43303fd2 100644 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/TestObjectCreator.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/TestObjectCreator.java @@ -15,10 +15,6 @@ public class TestObjectCreator { this.hazelcastServiceTest = hazelcastServiceTest; } - /** - * Создаёт пользователя администратора - * @param userId - */ public void createUserAdmin(Long userId) { Imdg userImdg = hazelcastServiceTest.getImdg( IMDGDistributedNames.Map_User, User.class @@ -38,18 +34,4 @@ public class TestObjectCreator { userRoleSession.setStatus(WorkflowStatus.Active.getKey()); userRoleSessionImdg.insert(userRoleSession); } - -// public void fillWorkflowStatusDictionary() { -// Imdg workflowStatusDictionaryImdg = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class); -// WorkflowStatusDictionary ws1 = new WorkflowStatusDictionary(); -// ws1.setId(1L); -// ws1.setCode(WorkflowStatus.Active.getKey()); -// ws1.setName("Active"); -// workflowStatusDictionaryImdg.insert(ws1); -// WorkflowStatusDictionary ws2 = new WorkflowStatusDictionary(); -// ws2.setId(2L); -// ws2.setCode(WorkflowStatus.Blocked.getKey()); -// ws2.setName("Blocked"); -// workflowStatusDictionaryImdg.insert(ws2); -// } } diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/TestUtils.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/TestUtils.java index e903ef4d4..b3a843806 100644 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/TestUtils.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/TestUtils.java @@ -43,7 +43,6 @@ public class TestUtils { private static final ObjectMapper objectMapper = new ObjectMapper(); public static void waitingSendAndCheckRecord(Long id, Producer mockProducer, ArgumentCaptor producerRecord) { - //waiting for kafka send message (finale event) verify(mockProducer, timeout(30_000L).times(1)) .send(producerRecord.capture()); checkRecord(id, producerRecord); @@ -51,7 +50,6 @@ public class TestUtils { public static void waitingSendAndCheckRecord(Long id, Producer mockProducer) { ArgumentCaptor producerRecord = getCaptor(mockProducer); - //waiting for kafka send message (finale event) verify(mockProducer, timeout(30_000L).times(1)) .send(producerRecord.capture()); checkRecord(id, producerRecord); @@ -59,7 +57,6 @@ public class TestUtils { public static void waitingSendAndCheckRecord(Long id, KafkaTemplate kafkaTemplate) { ArgumentCaptor producerRecord = getCaptor(kafkaTemplate); - //waiting for kafka send message (finale event) verify(kafkaTemplate, timeout(30_000L).times(1)) .send(producerRecord.capture()); checkRecord(id, producerRecord); @@ -68,8 +65,6 @@ public class TestUtils { public static void waitingSendAndReceiveAndCheckRecord(Long id, KafkaTemplate kafkaTemplate) { ReplyingKafkaTemplate rplKafkaTemplate = (ReplyingKafkaTemplate) kafkaTemplate; ArgumentCaptor producerRecord = getCaptor(kafkaTemplate); - - //waiting for kafka send message (finale event) verify(rplKafkaTemplate, timeout(30_000L).times(1)) .sendAndReceive(producerRecord.capture()); checkRecord(id, producerRecord); @@ -103,8 +98,6 @@ public class TestUtils { String errorsMessage = "(%s) args [%s]".formatted(errorCode, String.join(", ", errorMessageArgs)); requestInfoUpdate.setMessage(errorsMessage); predictableBaseRequest.setRequestPayload(requestInfoUpdate); - - //waiting for kafka producer send message (finale event) verify(mockProducer, timeout(30_000L).times(1)) .send(producerRecord.capture()); @@ -204,7 +197,7 @@ public class TestUtils { public static void clearImdg(Imdg imdg) { if (imdg instanceof ImdgHazelcast) { - ((ImdgHazelcast)imdg).clear(); // test API + ((ImdgHazelcast)imdg).clear(); return; } Collection values = imdg.getAllValues(); diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/config/KafkaTestConfig.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/config/KafkaTestConfig.java index 0e8ff9860..b3400dfab 100644 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/config/KafkaTestConfig.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/config/KafkaTestConfig.java @@ -43,7 +43,6 @@ public class KafkaTestConfig { public final static Map, ArgumentCaptor> producerCaptors = new HashMap<>(); public final static Map, ArgumentCaptor> templateCaptors = new HashMap<>(); - //из-за очисткой перед каждым тестом(MockReset.withSettings(MockReset.AFTER) необходимо каждый раз обновлять doReturn public static ArgumentCaptor getCaptor(Producer mockProducer){ ArgumentCaptor captor = producerCaptors.get(mockProducer); setFuture(captor, mockProducer); @@ -61,8 +60,6 @@ public class KafkaTestConfig { doReturn(future).when(mockProducer).send(captor.capture()); } public static void setFuture(ArgumentCaptor recordArgumentCaptor, ReplyingKafkaTemplate kafkaTemplate){ - - //sendToQueueWaitForAnswer RequestReplyFuture replyFuture = spy(RequestReplyFuture.class); doReturn(replyFuture).when(kafkaTemplate).sendAndReceive(recordArgumentCaptor.capture()); @@ -76,8 +73,6 @@ public class KafkaTestConfig { } } doReturn(null).when(consumerRecord).value(); - - //sendRequestToQueue ListenableFuture> send = mock(ListenableFuture.class); doReturn(send).when(kafkaTemplate).send(recordArgumentCaptor.capture()); try { @@ -89,8 +84,7 @@ public class KafkaTestConfig { } } -// @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) - @Bean("mockProducer") +@Bean("mockProducer") public Producer kafkaProducer() { Producer mockProducer = mock(MockProducer.class, MockReset.withSettings(MockReset.AFTER)); ArgumentCaptor recordArgumentCaptor = ArgumentCaptor.forClass(ProducerRecord.class); diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/json/JsonUtil.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/json/JsonUtil.java index 7a64a96b6..8a8e489db 100644 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/json/JsonUtil.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/json/JsonUtil.java @@ -54,16 +54,11 @@ public class JsonUtil { private static final ObjectMapper MAPPER = new JacksonObjectMapper(); private JacksonObjectMapper() { - //настройки Ильи configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); - //модуль для корректной сериализации LocalDateTime в поля JSON - JavaTimeModule модуль библиотеки jackson-datatype-jsr310 registerModule(new JavaTimeModule()); configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); - //запрещаем доступ ко всем полям и методам класса и потом разрешаем доступ только к полям, нужны чтобы не было лишних полей из-за методов как: public ActionType getActionType() у BankAccountNewAction setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); - //не сериализуем null-поля -// setSerializationInclusion(JsonInclude.Include.NON_NULL); } public static ObjectMapper getMapper() { diff --git a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/json/MatcherFactoryWithJson.java b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/json/MatcherFactoryWithJson.java index 1824063ef..c951d833e 100644 --- a/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/json/MatcherFactoryWithJson.java +++ b/clearing-parent/test-clearing/src/main/java/ru/spcex/clearing/test/json/MatcherFactoryWithJson.java @@ -9,12 +9,6 @@ import java.io.UnsupportedEncodingException; import java.util.List; import java.util.function.BiConsumer; -/** - * Factory for creating test matchers. - *

- * Comparing actual and expected objects via AssertJ - * Support converting json MvcResult to objects for comparation. - */ public class MatcherFactoryWithJson { public static Matcher usingAssertionsForClass(Class clazz, BiConsumer assertion, BiConsumer, Iterable> iterableAssertion) { diff --git a/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/services/LauncherCommandReceiver.java b/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/services/LauncherCommandReceiver.java index 0d92824f2..86ab4c148 100644 --- a/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/services/LauncherCommandReceiver.java +++ b/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/services/LauncherCommandReceiver.java @@ -26,7 +26,7 @@ public class LauncherCommandReceiver extends QueueConsumer implements Initializi public void afterPropertiesSet() { callback(LauncherCommandRequest.class) .setConsumer(action -> importer.process(true)) - .forDestination(Task.getOfTrades.topic(), callbacks::put); // GTRD + .forDestination(Task.getOfTrades.topic(), callbacks::put); init(); } } diff --git a/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/services/TradeImporterService.java b/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/services/TradeImporterService.java index 5454cee89..8fa5481af 100644 --- a/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/services/TradeImporterService.java +++ b/clearing-parent/trade-importer/src/main/java/ru/spcex/clearing/trade/importer/services/TradeImporterService.java @@ -76,14 +76,12 @@ public class TradeImporterService { if (isValidTrades(tradesDb) && fillNessessaryFields(tradesDb)) { STrades sTrades = getSTradesFromImdg(tradesDb, sTradesImdg); if (sTrades != null && byCommand) { - // Обновление всех полей объекта из БД tradesDb.setId(sTrades.getId()); tradesDb.setCreated(sTrades.getCreated()); tradesDb.setUpdated(currentInstant); sTradesImdg.update(tradesDb); updated++; } else if (sTrades == null) { - // Создание объекта из БД tradesDb.setCreated(currentInstant); tradesDb.setUpdated(currentInstant); sTradesImdg.insert(tradesDb); @@ -107,9 +105,6 @@ public class TradeImporterService { } } - /** - * returns OK - everything is kk - */ private boolean fillNessessaryFields(STrades tradesDb) { Consumer logErr = (st) -> log.error("strades {} {} {}", tradesDb.getTradeDate(), tradesDb.getTradeNum(), st); try { diff --git a/clearing-parent/trade-importer/src/test/java/ru/spcex/clearing/trade/importer/config/config/DbTestConnectionConfig.java b/clearing-parent/trade-importer/src/test/java/ru/spcex/clearing/trade/importer/config/config/DbTestConnectionConfig.java index d295c5f19..87a83b8df 100644 --- a/clearing-parent/trade-importer/src/test/java/ru/spcex/clearing/trade/importer/config/config/DbTestConnectionConfig.java +++ b/clearing-parent/trade-importer/src/test/java/ru/spcex/clearing/trade/importer/config/config/DbTestConnectionConfig.java @@ -36,7 +36,6 @@ public class DbTestConnectionConfig { String OPERATION_DATABASE_CONNECTION_CHECK = String.format("Database [%s] connection check", dbUrl); try { Connection conn = cpds.getConnection(); -// conn.close(); log.info("{}: success", OPERATION_DATABASE_CONNECTION_CHECK); return cpds; } catch (Throwable e) { diff --git a/clearing-parent/trade-importer/src/test/java/ru/spcex/clearing/trade/importer/services/TradeImporterServiceTest.java b/clearing-parent/trade-importer/src/test/java/ru/spcex/clearing/trade/importer/services/TradeImporterServiceTest.java index 12f55e0c9..a43a7a981 100644 --- a/clearing-parent/trade-importer/src/test/java/ru/spcex/clearing/trade/importer/services/TradeImporterServiceTest.java +++ b/clearing-parent/trade-importer/src/test/java/ru/spcex/clearing/trade/importer/services/TradeImporterServiceTest.java @@ -45,7 +45,6 @@ class TradeImporterServiceTest extends AbstractServiceTest { Path path = Paths.get("src", "main", "resources"); String currentPath = path.toAbsolutePath().toString(); System.setProperty("spring.config.location", currentPath); -// Hazelcast.shutdownAll(); } @BeforeEach @@ -53,19 +52,11 @@ class TradeImporterServiceTest extends AbstractServiceTest { clearAllInImdg(sTradesImdg); } - /** - * {@link TradeImporterService#process(boolean)}
- * Тест проверяет обновление сущности {@link STrades}.
- * Входной запрос {@link LauncherCommandRequest}:
- */ -// @Test //для работы теста нужна тестовая база Microsoft SQL с данными void process() { STrades sTrade = getSTrade(); Long id = sTradesImdg.insert(sTrade); addRecordToKafka((MockConsumer) launcherCommandReceiver.getConsumer(), Task.getOfTrades.topic(), 0, 1, getJsonStringForNew(new LauncherCommandRequest(),0)); - - //waiting for kafka producer send message ArgumentCaptor captor = getCaptor(kafkaTemplate); verify(kafkaTemplate, timeout(30_000L).times(1)) .send(captor.capture()); @@ -75,11 +66,6 @@ class TradeImporterServiceTest extends AbstractServiceTest { assertEquals(sTrades.getId(), id); } - /** - * {@link TradeImporterService#process(boolean)}
- * Тест проверяет обновление сущности {@link STrades}.
- * Входной запрос {@link LauncherCommandRequest}:
- */ @Test void getSTradesFromImdg(){ STrades sTrade = getSTrade(); diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java index 528c77777..c77c2b1e4 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java @@ -19,7 +19,7 @@ import ru.spcex.platform.enumeration.Status; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; -@Deprecated // KeyRate was deleted +@Deprecated @Service public class KeyRateService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/UserService.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/UserService.java index d2562ac71..5a3c67bfd 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/UserService.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/UserService.java @@ -230,7 +230,6 @@ public class UserService extends QueueConsumer implements InitializingBean { public static class RoleAction { String roleName; - //------поля при обновления----- Status newStatus; UserRoleSession roleToChange; diff --git a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateServiceDisabled.java b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateServiceDisabled.java index dd7a3b93c..4c40c5d29 100644 --- a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateServiceDisabled.java +++ b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateServiceDisabled.java @@ -88,16 +88,6 @@ public class KeyRateServiceDisabled { keyRateService.afterPropertiesSet(); } - /** - * {@link KeyRateService#newKeyRate(BaseRequest)} - * Тест проверяет генерацию сущности {@link KeyRate} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link KeyRateNewRequest}:
- * {@link KeyRateNewRequest#keyRate} - 0.5
- * {@link KeyRateNewRequest#document} - "Test"
- * {@link KeyRateNewRequest#startDate} - текущее колличество секунд с 1970-01-01T00:00:00Z.
- * {@link KeyRateNewRequest#endDate} - текущее колличество секунд с 1970-01-01T00:00:00Z.
- */ -// @Test public void testNewKeyRate() throws InterruptedException { final String TOPIC = Consts.DESTINATION_KEY_RATE_NEW; final String MAP = IMDGDistributedNames.Map_KeyRate; @@ -159,13 +149,6 @@ public class KeyRateServiceDisabled { iMap.removeEntryListener(listenerID); } - /** - * {@link KeyRateService#deleteKeyRate(BaseRequest)}
- * Тест проверяет удаление сущности {@link KeyRate} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CommonDeleteRequest}:
- * {@link CommonDeleteRequest#id} - Идентификатор записи
- */ -// @Test public void testDeleteKeyRate() throws InterruptedException { final String TOPIC = Consts.DESTINATION_KEY_RATE_DELETE; final String MAP = IMDGDistributedNames.Map_KeyRate; @@ -224,16 +207,6 @@ public class KeyRateServiceDisabled { iMap.removeEntryListener(listenerID); } - /** - * {@link KeyRateService#updateKeyRate(BaseRequest)} - * Тест проверяет генерацию сущности {@link KeyRate} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link KeyRateUpdateRequest}:
- * {@link KeyRateUpdateRequest#keyRate} - 5
- * {@link KeyRateUpdateRequest#document} - "Update"
- * {@link KeyRateUpdateRequest#startDate} - текущее колличество секунд с 1970-01-01T00:00:00Z + (24 * 3600)
- * {@link KeyRateUpdateRequest#endDate} - текущее колличество секунд с 1970-01-01T00:00:00Z + (24 * 3600)
- */ -// @Test public void testUpdateKeyRate() throws InterruptedException { final String TOPIC = Consts.DESTINATION_KEY_RATE_UPDATE; final String MAP = IMDGDistributedNames.Map_KeyRate; diff --git a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/utils/MatcherFactory.java b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/utils/MatcherFactory.java index 06162be8f..a431542a5 100644 --- a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/utils/MatcherFactory.java +++ b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/utils/MatcherFactory.java @@ -1,13 +1,9 @@ package ru.spcex.clearing.utility.utils; import java.util.Arrays; + import static org.assertj.core.api.Assertions.assertThat; -/** - * Factory for creating test matchers. - *

- * Comparing actual and expected objects via AssertJ - */ public class MatcherFactory { public static Matcher usingIgnoringFieldsComparator(String... fieldsToIgnore) { diff --git a/platform-parent/platform-classes-base/src/main/java/ru/spcex/platform/classes/base/SpcexObjectBase.java b/platform-parent/platform-classes-base/src/main/java/ru/spcex/platform/classes/base/SpcexObjectBase.java index b43f7ff35..184a92bc4 100644 --- a/platform-parent/platform-classes-base/src/main/java/ru/spcex/platform/classes/base/SpcexObjectBase.java +++ b/platform-parent/platform-classes-base/src/main/java/ru/spcex/platform/classes/base/SpcexObjectBase.java @@ -4,9 +4,6 @@ import ru.spcex.platform.classes.base.interfaces.WithId; import java.io.Serializable; -/** - * Long ID - based primary key object - */ public abstract class SpcexObjectBase implements WithId, Serializable { protected Long id; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java index e4e2085f3..447239f5a 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java @@ -2,7 +2,7 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -@Deprecated // Словарь balanceAccountTypeDictionary удалён +@Deprecated public enum BalanceAccountType implements IEnumKey { Active("ACTV"), Blocked("BLKD"); diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BondType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BondType.java index 423e427aa..a65ac7795 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BondType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BondType.java @@ -3,13 +3,13 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum BondType implements IEnumKey { - Z("Z"), // Дисконтная облигация - F("F"), // Купонная облигация с постоянным купоном - V("V"), // Купонная облигация с переменным купоном - C("C"), // Купонная облигация банка России - E("E"), // Биржевая облигация - I("I"), // Облигация с индексированным номиналом - M("M"), // Облигация с амортизацией долга + Z("Z"), + F("F"), + V("V"), + C("C"), + E("E"), + I("I"), + M("M"), ; private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingCategory.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingCategory.java index e9aa5181e..a13941e82 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingCategory.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingCategory.java @@ -2,18 +2,15 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -/** - * CLEARING_CATEGORY_DICTIONARY - */ public enum ClearingCategory implements IEnumKey { undefined(UNDEFINED_VALUE), - C("C"), // Категория «Ц» - Банк России - B("B"), // Категория «Б» - Кредитная организация ДР - F("F"), // Категория «Ф» - Участник рынка РЦБ - I("I"), // Категория «И» - Инициатор по ТБС - V("V"), // Категория «В» - Инициатор по ТКС - T("T"), // Категория «Т» - Участник товарного рынка - K("K"); // Категория «К» - Участник клиринга - Контроллер + C("C"), + B("B"), + F("F"), + I("I"), + V("V"), + T("T"), + K("K"); private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java index 82526ebaa..4b861c8fd 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java @@ -2,7 +2,7 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -@Deprecated // словарь ClearingStatusDictionary удалён +@Deprecated public enum ClearingStatus implements IEnumKey { OK("OK"), FAIL("FAIL"), diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ContactTypes.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ContactTypes.java index 647335612..609393172 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ContactTypes.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ContactTypes.java @@ -2,21 +2,18 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -/** - * CONTACT_TYPE_DICTIONARY - */ public enum ContactTypes implements IEnumKey { - adrs("ADRS"), // Адрес - post("POST"), // Почтовый адрес - cont("CONT"), // Контактное лицо - mail("MAIL"), // Электронная почта - phon("PHON"), // Телефон - gdir("GDIR"), // Генеральный директор - trst("TRST"), // Доверенное лицо - fax("FAX"), // Факс - info("INFO"), // Контактная информация - cmnt("CMNT"), // Примечание - web("WEB"), // Веб-сайт + adrs("ADRS"), + post("POST"), + cont("CONT"), + mail("MAIL"), + phon("PHON"), + gdir("GDIR"), + trst("TRST"), + fax("FAX"), + info("INFO"), + cmnt("CMNT"), + web("WEB"), ; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/CurrencyCode.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/CurrencyCode.java index e0fd13c1a..7c073a3fa 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/CurrencyCode.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/CurrencyCode.java @@ -4,7 +4,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey; public enum CurrencyCode implements IEnumKey { RUB("RUB"), - RUR("RUR") //fixme may be remove to separate enum + RUR("RUR") ; private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/DocumentTypes.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/DocumentTypes.java index 68bd9d1ce..09dd29661 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/DocumentTypes.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/DocumentTypes.java @@ -2,33 +2,30 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -/** - * DOCUMENT_TYPE_DICTIONARY - */ public enum DocumentTypes implements IEnumKey { - pasp("PASP"), // Паспорт - icrt("ICRT"), // Удостоверение личности - prxy("PRXY"), // Доверенность - cntr("CNTR"), // Договор клиринга - regs("REGS"), // Регистрация - form("FORM"), // Анкета участника - ogrn("OGRN"), // ОГРН - licb("LICB"), // Банковская лицензия - licp("LICP"), // Лицензия проф. участника - plac("PLAC"), // Регистрация по месту пребывания - inn("INN"), // ИНН - cio("CIO"), // КИО - licr("LICR"), // Брокерская лицензия - licd("LICD"), // Номер дилерской лицензии - lict("LICT"), // Номер лицензии по управлению ЦБ - licc("LICC"), // Номер лицензии по брокерской деятельности ПФИ (производных финансовых инструментов) - licf("LICF"), // Номер лицензии форекс-дилера - fin("FIN"), // Финансовая отчетность - trst("TRST"), // Полномочия должностных лиц - pmkr("PMKR"), // Распоряжение на списание МКР - taut("TAUT"), // Допуск к торгам - edoc("EDOC"), // Договор об электронном взаимодействии - xcnt("XCNT"); // Документ о расторжении Договора клиринга + pasp("PASP"), + icrt("ICRT"), + prxy("PRXY"), + cntr("CNTR"), + regs("REGS"), + form("FORM"), + ogrn("OGRN"), + licb("LICB"), + licp("LICP"), + plac("PLAC"), + inn("INN"), + cio("CIO"), + licr("LICR"), + licd("LICD"), + lict("LICT"), + licc("LICC"), + licf("LICF"), + fin("FIN"), + trst("TRST"), + pmkr("PMKR"), + taut("TAUT"), + edoc("EDOC"), + xcnt("XCNT"); private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/InstrumentType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/InstrumentType.java index 079ef799b..0b91f57da 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/InstrumentType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/InstrumentType.java @@ -3,9 +3,9 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum InstrumentType implements IEnumKey { - BOND("BOND"), // Долевые ценные бумаги (акции) - EQTY("EQTY"), // Долговые ценные бумаги (облигации) - RATE("RATE"), // Инструмент Денежного рынка + BOND("BOND"), + EQTY("EQTY"), + RATE("RATE"), CRNC ("CRNC") ; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Priority.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Priority.java index 11eb55544..9a0732b84 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Priority.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Priority.java @@ -2,13 +2,9 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -/** - * Для Notification.priority - * priority_dictionary - */ public enum Priority implements IEnumKey { - HIGH("HIGH"), // Высокий - LOW("LOW"); // Низкий + HIGH("HIGH"), + LOW("LOW"); private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryCapacity.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryCapacity.java index 4a7f28e72..9ceacb55f 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryCapacity.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryCapacity.java @@ -2,7 +2,6 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -//todo фиксированные ли это значения? расшифровки подъедут? public enum RegistryCapacity implements IEnumKey { A("A"), B("B"), diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java index dee144f70..e2e6be328 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportBuilderType.java @@ -2,10 +2,6 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -/** - * Идентификатор отчета - * todo сделать для них dictionary - */ public enum ReportBuilderType implements IEnumKey { EXECUTED_DEAL_REPORT("executed-deal-report"), UNFULFILLED_DEAL_REPORT("unfulfilled-deal-report"), diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportType.java index 29d023232..81e5206b3 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ReportType.java @@ -2,10 +2,6 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -/** - * Идентификатор отчета - * todo сделать для них dictionary - */ public enum ReportType implements IEnumKey { PFX64("PFX64"), PFX65("PFX65"), diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ResultStatuses.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ResultStatuses.java index 54660b5ce..f2c93a105 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ResultStatuses.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ResultStatuses.java @@ -2,12 +2,9 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; -/** - * ResultStatusDictionary - */ public enum ResultStatuses implements IEnumKey { - notSuccess("NACK"), // Неуспешно - success("ACK"); // Успешно + notSuccess("NACK"), + success("ACK"); private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java index 9b3cd0317..951ef27f1 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java @@ -3,9 +3,9 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumId; public enum Sender implements IEnumId { - One(1L), /* СПВБ */ - Prc(2L), /* ПРЦ */ - Rdc(3L); /* РДЦ */ + One(1L), + Prc(2L), + Rdc(3L); private final Long key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ServiceProduct.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ServiceProduct.java index 7272851d8..b584d6d0a 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ServiceProduct.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ServiceProduct.java @@ -3,8 +3,8 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum ServiceProduct implements IEnumKey { - PRNT("PRNT"), // Расчет обязательств с процентом - ZERO("ZERO") // Расчет обязательств без процента (по умолчанию) + PRNT("PRNT"), + ZERO("ZERO") ; private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ShareType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ShareType.java index 51744d51a..ad37d5619 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ShareType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ShareType.java @@ -3,8 +3,8 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum ShareType implements IEnumKey { - S("S"), // Обыкновенная акция - P("P"), // Привилегированная акция + S("S"), + P("P"), ; private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java index aa5a7e74e..690f1ae8d 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java @@ -3,57 +3,57 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum Task implements IEnumKey { - accrualOfBalance("GBAL"),//Зачисление остатков - accountBlock("ABLK"),//Блокировка счета - additionOrDeleteOfBalance("ADBL"),//Дозачисление/списание остатков - getOfTrades("GTRD"),//Получение сделок из Торговой системы - getVerification("GVER"),// Запуск сверки - @Deprecated /* todo GBLD удаляется по CLS-267, CLS-275 */ getBalance("GBLD"),// Поступление средств - startOfClearing("SCLR"),// Запуск клиринговой сессии - startOfB0("IPO0"),// Запуск клиринговой сессии - startOfT0("TRDT"),// Запуск клиринговой сессии - startOfPreClearing("SPRC"),// Запуск преклиринга - startPostClearing("SPOC"),// Запуск постклиринга + accrualOfBalance("GBAL"), + accountBlock("ABLK"), + additionOrDeleteOfBalance("ADBL"), + getOfTrades("GTRD"), + getVerification("GVER"), + @Deprecated getBalance("GBLD"), + startOfClearing("SCLR"), + startOfB0("IPO0"), + startOfT0("TRDT"), + startOfPreClearing("SPRC"), + startPostClearing("SPOC"), createOrder("CORD"), createOrderConfirm("CORC"), - getAllBalance("GALB"), // Запрос остатков по всем счетам (отправка ДФ-51, ДФ-56 для получения ответа ДФ-01, ДФ-57) - createReport_GREP("GREP"), // Создание отчёта (report-service) RPRT нескольких видов, этот GREP - createDealsReport_GRET("GRET"), // Формирование отчетности по сделкам - createDealsReport_GREF("GREF"), // Формирование финальной отчетности по сделкам - unloadingSession_LIMM("LIMM"),//Выгрузка в торговую систему остатков по деньгам - unloadingSession_LIMS("LIMS"),//Выгрузка в торговую систему остатков по бумагам - liquidationSession_LIQU("LIQU"),//Ликвидационная сессия по обязательтсвам участника - startSession_STRM("STRM"),//Начало торговой сессии секции МКР - terminationSession_ETRM("ETRM"),//Завершение торговой сессии секции МКР + getAllBalance("GALB"), + createReport_GREP("GREP"), + createDealsReport_GRET("GRET"), + createDealsReport_GREF("GREF"), + unloadingSession_LIMM("LIMM"), + unloadingSession_LIMS("LIMS"), + liquidationSession_LIQU("LIQU"), + startSession_STRM("STRM"), + terminationSession_ETRM("ETRM"), startTime_SDEP("SDEP"), endTime_EDEP("EDEP"), - startSession_SIPO("SIPO"),//Начало торговой сессии по первичным торгам - terminationSession_EIPO("EIPO"),//Завершение торговой сессии по первичным торгам - startSession_STRF("STRF"),//Начало торговой сессии по вторичным торгам - terminationSession_ETRF("ETRF"),//Завершение торговой сессии по вторичным торгам - reconciliationRequest_RCHK("RCHK"),//Запрос на сверку активов - createRegistry_GRYT("GRYT"),//Сформировать регистр на текущий день - createRegistry_GRRT("GRRT"),//Сформировать реестр на текущий день - createRegistry_GBRR("GBRR"),//Сформировать реестр на текущий день - createRegistry_GORD("GORD"), // Формирование реестра распоряжений, направленных расчетному депозитарию - createRegistry_GORR("GORR"), // Формирование реестра распоряжений, направленных расчетному депозитарию - createRegistry_GCMR("GCMR"), // Формирование реестра участников клиринга - createRegistry_GSRR("GSRR"), // Формирование реестра отправленных отчетов - createRegistry_GACA("GACA"), // Создание файла остатков CSV по клиринговым счетам - createRegistry_ADLR("ADLR"), // формирование admittedLiabilitiesRegister - createRegistry_CDLR("CDLR"), // формирование coveredLiabilitiesRegister - createRegistry_EXLR("EXLR"), // формирование excludeLiabilitiesRegister - createRegistry_LBSR("LBSR"), // формирование liabilitiesRegister - createRegistry_ECNR("ECNR"), // формирование executionRegister - createRegistry_STRS("STRS"), // Начало торговой сессии - createRegistry_ETRS("ETRS"), // Завершение торговой сессии - forming_CMBA("CMBA"), // Формирование распоряжения на перевод с ТБС - creatingFile_GAIA("GAIA"), // Создание файла остатков CSV по внутренним информацион.счетам - loadParty_LOCM("LOCM"), // Загрузка участников - loadIssue_LOSC("LOSC"), // Загрузка инструментов - dbfExport_OUTV("OUTV"), // для dbf-exporter сообщение на создание файла ДФ-54 - sdf05WithCode9Final("FDFF"), //Формирование ДФ-05 с кодом 9 (финальный) - checkSdfPair("CHDF"),//Проверка наличия пары ДФ-01/ДФ-57 и ДФ-08/ДФ-21 + startSession_SIPO("SIPO"), + terminationSession_EIPO("EIPO"), + startSession_STRF("STRF"), + terminationSession_ETRF("ETRF"), + reconciliationRequest_RCHK("RCHK"), + createRegistry_GRYT("GRYT"), + createRegistry_GRRT("GRRT"), + createRegistry_GBRR("GBRR"), + createRegistry_GORD("GORD"), + createRegistry_GORR("GORR"), + createRegistry_GCMR("GCMR"), + createRegistry_GSRR("GSRR"), + createRegistry_GACA("GACA"), + createRegistry_ADLR("ADLR"), + createRegistry_CDLR("CDLR"), + createRegistry_EXLR("EXLR"), + createRegistry_LBSR("LBSR"), + createRegistry_ECNR("ECNR"), + createRegistry_STRS("STRS"), + createRegistry_ETRS("ETRS"), + forming_CMBA("CMBA"), + creatingFile_GAIA("GAIA"), + loadParty_LOCM("LOCM"), + loadIssue_LOSC("LOSC"), + dbfExport_OUTV("OUTV"), + sdf05WithCode9Final("FDFF"), + checkSdfPair("CHDF"), ; private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TermType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TermType.java index a3cbb46e7..2960aceee 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TermType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TermType.java @@ -3,9 +3,9 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum TermType implements IEnumKey { - S("S"), // Срочный - V("V"), // До востребования - K("K"), // Комбинированный + S("S"), + V("V"), + K("K"), ; private final String key; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryType.java index cd3e2e4e3..2e3a26d33 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryType.java @@ -3,16 +3,16 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum TradingClearingRegistryType implements IEnumKey { - Owner_A("A"), // Владелец - Client_B("B"), // Клиентский - Trustee_C("C"), // Попечитель - TrusteeManager_D("D"), // Доверительный управляющий - Issuer_E("E"), // Эмитент - ToThePlacementOrRedeem_Z("Z"), // К размещению/выкупу - DepoBond_H("H"), // Депо по учету облигаций - DepoOfShares_T("T"), // Депо по учету акций - DepoOfTrustedBond_N("N"), // Депо по учету облигаций с попечителем - DepoOfTrustedShares_S("S"), // Депо по учету акций с попечителем + Owner_A("A"), + Client_B("B"), + Trustee_C("C"), + TrusteeManager_D("D"), + Issuer_E("E"), + ToThePlacementOrRedeem_Z("Z"), + DepoBond_H("H"), + DepoOfShares_T("T"), + DepoOfTrustedBond_N("N"), + DepoOfTrustedShares_S("S"), ; private final String key; diff --git a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgHazelcast.java b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgHazelcast.java index 1722b07a8..792e93494 100644 --- a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgHazelcast.java +++ b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgHazelcast.java @@ -83,7 +83,6 @@ public class ImdgHazelcast implements Imdg { public void lockAndPerform(Runnable operation) { ILock hzLock = null; try { - //в качестве альтернативы getCPSubsystem, поддерживается только при 3+ нодах хазелкаста hzLock = hzInstance.getLock(mapName); hzLock.lock(); operation.run(); @@ -108,9 +107,6 @@ public class ImdgHazelcast implements Imdg { map.remove(paramT.getId()); } - /** - * Только для тестирования. Очистка map. - */ public void clear() { map.clear(); } @@ -120,10 +116,6 @@ public class ImdgHazelcast implements Imdg { return map.get(paramLong); } - /** - * возвращает объект удовлетворяющий условиям - * не проверяет, если удовлетворяющих условиям > 1 - */ @SuppressWarnings("unchecked") @Override public T getFirstObjectByFieldValues(Map> conditions) { @@ -189,9 +181,6 @@ public class ImdgHazelcast implements Imdg { } - /** - * возвращает коллекцию объектов, удовлетворяющий условиям на поля - */ @SuppressWarnings("unchecked") @Override public Collection getCollectionObjectsByFieldValues(Map> conditions) { @@ -271,7 +260,6 @@ public class ImdgHazelcast implements Imdg { } - // Predicate API @Override public Collection getCollectionObjectsByPredicate(ImdgPredicate predicateImdg) { Predicate hazelcastPredicate = ((ImdgPredicateHazelcast) predicateImdg).getRawPredicate(); diff --git a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java index d3849b462..ebf61148b 100644 --- a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java +++ b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/adapter/ImdgTransactionalHazelcast.java @@ -38,7 +38,6 @@ public class ImdgTransactionalHazelcast implements Im public void lockAndPerform(Runnable operation) { ILock hzLock = null; try { - //в качестве альтернативы getCPSubsystem, поддерживается только при 3+ нодах хазелкаста hzLock = hzInstance.getLock(mapName); hzLock.lock(); operation.run(); @@ -68,10 +67,6 @@ public class ImdgTransactionalHazelcast implements Im return map.get(paramLong); } - /** - * возвращает объект удовлетворяющий условиям - * не проверяет, если удовлетворяющих условиям > 1 - */ @SuppressWarnings("unchecked") @Override public T getFirstObjectByFieldValues(Map> conditions) { @@ -118,13 +113,10 @@ public class ImdgTransactionalHazelcast implements Im public Collection getCollectionObjectsBySQL(String paramString) { SqlPredicate sqlPredicate = new SqlPredicate(paramString); Collection found = map.values(sqlPredicate); - List result = new ArrayList<>(found); // Hazelcast может вернуть proxy-коллекцию + List result = new ArrayList<>(found); return result; } - /** - * возвращает коллекцию объектов, удовлетворяющий условиям на поля - */ @SuppressWarnings("unchecked") @Override public Collection getCollectionObjectsByFieldValues(Map> conditions) { diff --git a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/service/HazelcastServiceBase.java b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/service/HazelcastServiceBase.java index 4d3fc0bd3..1d13ef356 100644 --- a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/service/HazelcastServiceBase.java +++ b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/service/HazelcastServiceBase.java @@ -27,7 +27,6 @@ import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; public abstract class HazelcastServiceBase -// implements IHazelcastService implements ImdgProvider { protected final Logger log = LoggerFactory.getLogger(this.getClass()); @@ -89,11 +88,10 @@ public abstract class HazelcastServiceBase log.info("Hazelcast: client created and connected"); } -// @Override - public void reinitializeHazelcastClient() { +public void reinitializeHazelcastClient() { try { createHazelcastClient(); - Thread.sleep(100); // await for skip CLIENT_CONNECTED event. See warn "Hazelcast already available, but has call onAvailable() again." + Thread.sleep(100); awaitGeneratorId(); hazelcastInstance.getLifecycleService().addLifecycleListener((LifecycleEvent event) -> { switch (event.getState()) { @@ -115,7 +113,7 @@ public abstract class HazelcastServiceBase protected void onAvailable() { if (isAvailableNow) { log.warn("Hazelcast already available, but has call onAvailable() again. Ignore."); - return; // пропустить + return; } isAvailableNow = false; synchronized (hazelcastStatusSubscribers) { @@ -144,7 +142,7 @@ public abstract class HazelcastServiceBase log.warn(ExceptionUtils.getStackTrace(e)); } }); - if (isAvailableNow) { // never: если успел проскочить между isAvailableNow = false и synchronized + if (isAvailableNow) { log.warn("Concurrent call onAvailable() and onUnavailable(). Stacktrace: {}", ExceptionUtils.getStackTrace(new ConcurrentModificationException("Warning"))); isAvailableNow = false; } @@ -171,7 +169,6 @@ public abstract class HazelcastServiceBase protected void awaitGeneratorId() { taskExecutorIdGeneratorAwaiter.execute(() -> { try { - // ожидание инициализации Storage (только после инициализации IDGenerator начинать работу). boolean done = false; while (!done) { log.debug("Execute awaitGeneratorId()"); @@ -191,22 +188,19 @@ public abstract class HazelcastServiceBase } } } - // проверка версии классов -// HazelcastCommon.verifyVersionClientsClasses(hazelcastInstance); } catch (Throwable e) { log.error("Error at awaitGeneratorId(): {}", ExceptionUtils.getStackTrace(e)); } }); } -// @Override - public void statusSubscribe(IHazelcastClusterStatus clusterStatus) { +public void statusSubscribe(IHazelcastClusterStatus clusterStatus) { log.trace("hazelcastStatusSubscribers add> {}", clusterStatus); synchronized (hazelcastStatusSubscribers) { - if (hazelcastStatusSubscribers.contains(clusterStatus)) // never + if (hazelcastStatusSubscribers.contains(clusterStatus)) throw new IllegalStateException("ClusterStatus listener " + clusterStatus + " already added!"); hazelcastStatusSubscribers.add(clusterStatus); - if (isAvailableNow) { // register now + if (isAvailableNow) { log.trace("hazelcastStatusSubscribers added and call now> {}", clusterStatus); try { clusterStatus.getAvailable(hazelcastInstance); @@ -217,8 +211,7 @@ public abstract class HazelcastServiceBase } } -// @Override - public HazelcastInstance getHazelcast() { +public HazelcastInstance getHazelcast() { return hazelcastInstance; } @@ -279,11 +272,6 @@ public abstract class HazelcastServiceBase } } - /** - * Переподключение во время транзакции не предусмотрено. - * Транзакция - объект с коротким жизненным циклом. - * @return - */ @Override public ImdgTransaction newTransaction() { ImdgTransactionProviderHazelcast transactionalContext = new ImdgTransactionProviderHazelcast(); @@ -311,7 +299,6 @@ public abstract class HazelcastServiceBase return imdgId; } - // @Override public void waitTillReadyState() throws InterruptedException { boolean done = false; int sleepCount = 0; @@ -334,8 +321,7 @@ public abstract class HazelcastServiceBase } } -// @Override - public void shutdown() { +public void shutdown() { isAvailableNow = false; if (hazelcastInstance != null) hazelcastInstance.shutdown(); diff --git a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/util/HazelcastHelper.java b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/util/HazelcastHelper.java index 605849f15..1efd4228d 100644 --- a/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/util/HazelcastHelper.java +++ b/platform-parent/platform-imdg-api-hazelcast-impl/src/main/java/ru/spcex/platform/imdg/iml/hazelcast/util/HazelcastHelper.java @@ -56,30 +56,12 @@ public final class HazelcastHelper { } - /** - * Создаёт клиента HazelcastInstance, подключённого по настрйокам ClientConfig. - * Ожидает готовности Storage, инициализирует TextErrorService. - * В случае ошибок делает повторение попыток создания клиента. - *

- * Пример получения ClientConfig: - * - * HazelcastHelper.getClientConfig( - * Config.get().getHazelcastSettings().getClusterMembers(), - * Config.get().getHazelcastSettings().getLogin(), - * Config.get().getHazelcastSettings().getPassword() - * ) - * - * - * @param hzClientConfig - * @return HazelcastClient - */ public HazelcastInstance makeHazelcastClientAndWaitTillReady(ClientConfig hzClientConfig) { HazelcastInstance instance = null; - // ожидание инициализации Storage (только после инициализации IDGenerator начинать работу). boolean done = false; while (!done) { try { - instance = HazelcastClient.newHazelcastClient(hzClientConfig);// createHzClient(); + instance = HazelcastClient.newHazelcastClient(hzClientConfig); waitTillReadyState(instance); log.info("Hazelcast: TextErrorService done"); done = true; @@ -96,8 +78,6 @@ public final class HazelcastHelper { } } } - // проверка версии классов -// HazelcastCommon.verifyVersionClientsClasses(instance); return instance; } @@ -111,7 +91,6 @@ public final class HazelcastHelper { } log.info("IMDG connected!"); } catch (HazelcastException hcEx) { - // проброс InterruptException из Hazelcast if (hcEx instanceof HazelcastException && hcEx.getCause() instanceof InterruptedException) throw new InterruptedException("Can not obtain IMDG for check state, cause has interrupted. " + hcEx); throw hcEx; diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index d4fd82a6b..ee3b35993 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -1,8 +1,5 @@ package ru.spcex.clearing.imdg; -/** - * Список имён распределённых объектов - */ public final class IMDGDistributedNames { public static final String Map_Company = "Map_Company"; public static final String Map_CompanyHistory = "Map_CompanyHistory"; diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/Imdg.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/Imdg.java index 9beb042df..458d998bb 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/Imdg.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/Imdg.java @@ -72,30 +72,18 @@ public interface Imdg { throw new UnsupportedOperationException("not implemented projectionsAttributeBySql"); } - /** - * при необходимости ввести ImdgAggregator - */ default Long aggregateLongMax(String fieldName, ImdgPredicate predicate) { throw new UnsupportedOperationException("not implemented aggregate"); } - /** - * при необходимости ввести ImdgAggregator - */ default T aggregateByMax(String fieldName, ImdgPredicate predicate) { throw new UnsupportedOperationException("not implemented aggregate"); } - /** - * при необходимости ввести ImdgProjection - */ default Collection projectSingleAttribute(String fieldName, ImdgPredicate predicate) { throw new UnsupportedOperationException("not implemented projectSingleAttribute"); } - /** - * при необходимости ввести ImdgProjection - */ default Collection projectSingleAttribute(String fieldName) { return projectSingleAttribute(fieldName, null); } @@ -104,17 +92,14 @@ public interface Imdg { throw new UnsupportedOperationException("not implemented size"); } - // Predicate API default Collection getCollectionObjectsByPredicate(ImdgPredicate predicate) { throw new UnsupportedOperationException("not implemented getCollectionObjectsByPredicate"); } - // Predicate API default T getSingleObjectByPredicate(ImdgPredicate predicate) { throw new UnsupportedOperationException("not implemented getSingleObjectByPredicate"); } - // Predicate API default T getFirstObjectByPredicate(ImdgPredicate predicate) { throw new UnsupportedOperationException("not implemented getFirstObjectByPredicate"); } diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/ImdgProvider.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/ImdgProvider.java index 4ff60bf67..dc21e66c6 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/ImdgProvider.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/ImdgProvider.java @@ -3,9 +3,6 @@ package ru.spcex.platform.imdg.api; import ru.spcex.platform.classes.base.SpcexObjectBase; public interface ImdgProvider { - /** - * пока простой интерфейс для получения доступа к мапам - */ Imdg getImdg(String key, Class clazz); ImdgId getImdgIdGenerator(); diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/ImdgTransaction.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/ImdgTransaction.java index bd1f2eb32..a9da990e7 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/ImdgTransaction.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/ImdgTransaction.java @@ -1,9 +1,5 @@ package ru.spcex.platform.imdg.api; -/** - * из TransactionalContext тоже можно доставать мапы - * поэтому объект транзацкии тоже является ImdgProvider - */ public interface ImdgTransaction extends ImdgProvider { void commitTransaction(); diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/SecuritySelector.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/SecuritySelector.java index c7c1a375e..896684ca9 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/SecuritySelector.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/api/predicate/specific/SecuritySelector.java @@ -43,6 +43,6 @@ public class SecuritySelector { security = retriever.apply(moneyMarketSecurityImdg); if (security != null) return security; security = retriever.apply(equitySecurity); - return security;// null + return security; } } diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/ImdgValidationContext.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/ImdgValidationContext.java index 8e1ea71a4..08cb95d65 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/ImdgValidationContext.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/ImdgValidationContext.java @@ -43,9 +43,6 @@ public class ImdgValidationContext implements IValidatorContext { } } - /** - * !!!не использовать один Enum в разных местах - */ public void storeObject(Enum storedObject, Object anyObject) { storedObjects.put(storedObject, anyObject); } diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/Stored.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/Stored.java index d52c0c27f..9fa1ee2c8 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/Stored.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/Stored.java @@ -1,12 +1,6 @@ package ru.spcex.platform.imdg.validation; -/** - * !!!не использовать один Enum в разных местах - по энуму на один класс IValidationRule. - */ public enum Stored { - /** - * если выполняется проверка наличия объекта по Id (см. ru.spcex.platform.imdg.validation.rule.PresentById) - */ PresentById, AnltAccount diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/AnltAccLoad.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/AnltAccLoad.java index de655ef5b..fbb51a366 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/AnltAccLoad.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/AnltAccLoad.java @@ -15,9 +15,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; -/** - * В рексевте необходим интерфейс WithId - */ public class AnltAccLoad implements IValidationRule> { private final IErrorEnumId errorEnum; diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/PresentById.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/PresentById.java index ed124b62b..1da49900d 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/PresentById.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/platform/imdg/validation/rule/PresentById.java @@ -10,9 +10,6 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; -/** - * В рексевте необходим интерфейс WithId - */ public class PresentById implements IValidationRule> { private final String mapName; private final IErrorEnumId errorEnum; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/config/KafkaConsumerFactory.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/config/KafkaConsumerFactory.java index 26e7209f8..d06d4660f 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/config/KafkaConsumerFactory.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/config/KafkaConsumerFactory.java @@ -29,7 +29,6 @@ public class KafkaConsumerFactory { public static ConsumerFactory consumerFactory(KafkaConsumerSettings kafkaSettings) { Map props = new HashMap<>(); - //Properties props = new Properties(); props.put("bootstrap.servers", kafkaSettings.getBootstrapServers()); if (kafkaSettings.getGroupId() != null && kafkaSettings.getGroupId().length() > 0) { props.put("group.id", kafkaSettings.getGroupId()); @@ -38,7 +37,6 @@ public class KafkaConsumerFactory { props.put("session.timeout.ms", kafkaSettings.getSessionTimeoutMs().toString()); props.put("auto.offset.reset", kafkaSettings.getAutoOffsetReset()); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); -// props.put("value.deserializer", JsonDeserializer.class.getName()); props.put("value.deserializer", ErrorHandlingDeserializer.class.getName()); props.put(ErrorHandlingDeserializer.VALUE_DESERIALIZER_CLASS, JsonDeserializer.class.getName()); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/config/KafkaProducerFactory.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/config/KafkaProducerFactory.java index fdae5c834..29a75da14 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/config/KafkaProducerFactory.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/config/KafkaProducerFactory.java @@ -15,28 +15,14 @@ import java.util.Properties; public class KafkaProducerFactory { public static Producer producer(KafkaProducerSettings kafkaSettings) { Properties kafkaProps = new Properties(); - - //Assign localhost id kafkaProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaSettings.getBootstrapServers()); - - //Set acknowledgements for producer requests. kafkaProps.put(ProducerConfig.ACKS_CONFIG, kafkaSettings.getAcks()); - - //If the request fails, the producer can automatically retry, kafkaProps.put(ProducerConfig.RETRIES_CONFIG, kafkaSettings.getRetries()); - - //Specify buffer size in config kafkaProps.put(ProducerConfig.BATCH_SIZE_CONFIG, kafkaSettings.getBatchSize()); - - //Reduce the no of requests less than 0 kafkaProps.put(ProducerConfig.LINGER_MS_CONFIG, kafkaSettings.getLingerMs()); - //The buffer.memory controls the total amount of memory available to the producer for buffering. kafkaProps.put(ProducerConfig.BUFFER_MEMORY_CONFIG, kafkaSettings.getBufferMemory()); kafkaProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); kafkaProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class.getName()); -// kafkaProps.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); - //ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); - // prop.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, Employee.class.getName()); return new KafkaProducer<>(kafkaProps); @@ -44,22 +30,12 @@ public class KafkaProducerFactory { public static ProducerFactory producerFactory(KafkaProducerSettings kafkaSettings) { Map kafkaProps = new HashMap<>(); - ////Assign localhost id kafkaProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafkaSettings.getBootstrapServers()); - // - ////Set acknowledgements for producer requests. kafkaProps.put(ProducerConfig.ACKS_CONFIG, kafkaSettings.getAcks()); - // - ////If the request fails, the producer can automatically retry, kafkaProps.put(ProducerConfig.RETRIES_CONFIG, kafkaSettings.getRetries()); kafkaProps.put(ProducerConfig.RECONNECT_BACKOFF_MS_CONFIG, 10000); - // - ////Specify buffer size in config kafkaProps.put(ProducerConfig.BATCH_SIZE_CONFIG, kafkaSettings.getBatchSize()); - // - ////Reduce the no of requests less than 0 kafkaProps.put(ProducerConfig.LINGER_MS_CONFIG, kafkaSettings.getLingerMs()); - ////The buffer.memory controls the total amount of memory available to the producer for buffering. kafkaProps.put(ProducerConfig.BUFFER_MEMORY_CONFIG, kafkaSettings.getBufferMemory()); kafkaProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); kafkaProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class.getName()); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/BaseRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/BaseRequest.java index e97fb4513..2e265da93 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/BaseRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/BaseRequest.java @@ -9,25 +9,13 @@ import java.util.HashMap; import java.util.Map; public class BaseRequest implements WithId { - /** - * Идентификатор запроса - */ @JsonProperty private Long id; - /** - * Тип запроса - */ @JsonProperty private ActionType actionType; - /** - * Параметры запроса - */ @JsonProperty private T requestPayload; - /** - * ID пользователя, приславшего запрос. - */ @JsonProperty private Long userId; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index f1035f463..add4c0414 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -104,8 +104,8 @@ public interface Consts { String DESTINATION_CLIENT_CODE_UPDATE = "client-code-update"; String DESTINATION_CLIENT_CODE_DELETE = "client-code-delete"; - String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; // не путать с REGISTRY_NEW - @Deprecated // сейчас в бизнес-логике автосоздание ТКР не используется + String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; + @Deprecated String DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW = "trading-clearing-registry-auto-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update"; String DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK = "trading-clearing-registry-block"; @@ -180,7 +180,6 @@ public interface Consts { String REGISTRY_EXECUTION_REGISTER_UPDATE = "registry-execution-register-update"; String REGISTRY_IDENTIFICATION_FUNDS = "registry-identification-funds"; - //TODO IS IT NEEDED RIGHT HERE? String REGISTRY_CONTRACT_REGISTER_NEW = "registry-contract-register-new"; String REGISTRY_BALANCE_REGISTER_NEW = "registry-balance-register-new"; String REGISTRY_UNCOVERED_DEAL_REGISTER_NEW = "registry-uncovered-deal-register-new"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountUpdateRequest.java index 5ee6fc958..a29f18f0f 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountUpdateRequest.java @@ -4,25 +4,25 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class BankAccountUpdateRequest { @JsonProperty - public Long id; //Идентификатор записи + public Long id; @JsonProperty - public String bankIdentificationCode;//Банковский идентификационный код (БИК) + public String bankIdentificationCode; @JsonProperty - public String bankName;//Наименование банка + public String bankName; @JsonProperty - public String correspondentAccount;//Корреспондентский счет + public String correspondentAccount; @JsonProperty - public String correspondentAccountName;//Наименование корреспондентского счета + public String correspondentAccountName; @JsonProperty - public String currency;//Идентификатор валюты + public String currency; @JsonProperty - public String destination;//Назначение + public String destination; @JsonProperty - public String taxpayerIdentificationNumber;//Идентификационный номер налогоплательщика (ИНН) + public String taxpayerIdentificationNumber; @JsonProperty - public String taxRegistrationReasonCode;//Код причины постановки (КПП) + public String taxRegistrationReasonCode; @JsonProperty - public String account;//Номер счета + public String account; public Long getId() { return id; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/ClientCodeUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/ClientCodeUpdateRequest.java index e4bf6f8eb..695864a51 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/ClientCodeUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/ClientCodeUpdateRequest.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class ClientCodeUpdateRequest { @JsonProperty - public Long id; //Идентификатор записи + public Long id; @JsonProperty private Long companyId; @JsonProperty diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/sdf01/AccountSdf01Request.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/sdf01/AccountSdf01Request.java index 990408cc8..fdd8e7f11 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/sdf01/AccountSdf01Request.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/sdf01/AccountSdf01Request.java @@ -4,9 +4,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; -/** - * SDF01 / SDF08 - */ public class AccountSdf01Request { @JsonProperty diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/balance/StatementRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/balance/StatementRequest.java index 8f8b90c37..f2db73c29 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/balance/StatementRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/balance/StatementRequest.java @@ -11,8 +11,6 @@ public class StatementRequest { private Long groupId; @JsonProperty private SdfTable table; - //------------------- - //from account-service creation @JsonProperty List accountCreationResults = new ArrayList<>(); @JsonProperty diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/clearing/Sdf56And51Request.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/clearing/Sdf56And51Request.java index aabf1a854..1027f4de7 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/clearing/Sdf56And51Request.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/clearing/Sdf56And51Request.java @@ -8,13 +8,7 @@ import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSeriali import java.time.Instant; -/** - * попросили сделать максимально одновременные запросы - */ public class Sdf56And51Request { - /** - * поля для DF-16 - */ @JsonProperty private Long df56Number; @JsonSerialize(using = InstantSerializer.class) @@ -26,9 +20,6 @@ public class Sdf56And51Request { @JsonProperty private Instant eDateTime; - /** - * поля для DF-51 - */ @JsonProperty private Long df51Number; @JsonSerialize(using = InstantSerializer.class) diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/CompanyNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/CompanyNewRequest.java index c35be1c47..17d372121 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/CompanyNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/CompanyNewRequest.java @@ -22,7 +22,6 @@ public class CompanyNewRequest { @JsonProperty private String initiatorCode; - // for update, это поле может использоваться в gateway-api @JsonProperty private Long id; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/CompanySymbolUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/CompanySymbolUpdateRequest.java index fb637060e..1d6011436 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/CompanySymbolUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/CompanySymbolUpdateRequest.java @@ -9,7 +9,7 @@ public class CompanySymbolUpdateRequest { @JsonProperty private Long companyId; @JsonProperty - @Deprecated // todo новая мета без этого поля + @Deprecated private String companySymbol; @JsonProperty private String companySymbolValue; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ExecutionRegisterOnSaveRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ExecutionRegisterOnSaveRequest.java index 46650b5ff..e27dd8391 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ExecutionRegisterOnSaveRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ExecutionRegisterOnSaveRequest.java @@ -61,7 +61,6 @@ public class ExecutionRegisterOnSaveRequest { @JsonProperty private LocalDate clearingDate; - //execution fond @JsonProperty private BigDecimal firstLegAmount; @JsonProperty @@ -83,7 +82,6 @@ public class ExecutionRegisterOnSaveRequest { @JsonProperty private String securityCode; - //execution deposit @JsonProperty private Long exchangeOrderId; @JsonProperty diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/NotificationRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/NotificationRequest.java index 5a542d32f..93cedfb0b 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/NotificationRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/NotificationRequest.java @@ -2,13 +2,7 @@ package ru.spcex.clearing.platform.messaging.domain.cud.reports; import com.fasterxml.jackson.annotation.JsonProperty; -/** - * Запрос на формирование уведомления - */ public class NotificationRequest { - /** - * Идентификатор участника клиринга - */ @JsonProperty protected Long consumerId; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequest.java index 78ed940e9..dc392c6e0 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequest.java @@ -1,16 +1,8 @@ package ru.spcex.clearing.platform.messaging.domain.cud.reports; import com.fasterxml.jackson.annotation.JsonProperty; -import ru.spcex.platform.enumeration.ReportBuilderType; -/** - * Запрос отчёта (без параметров) report-service - */ public class ReportRequest { - /** - * Идентификатор отчёта - * см. {@link ReportBuilderType} - */ @JsonProperty public String reportId; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithPeriod.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithPeriod.java index 983d92d8e..0b1c3a35c 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithPeriod.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithPeriod.java @@ -8,9 +8,6 @@ import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSeria import java.time.LocalDate; -/** - * Запрос отчёта с периодом report-service - */ public class ReportRequestWithPeriod extends ReportRequest { @JsonSerialize(using = LocalDateSerializer.class) @JsonDeserialize(using = LocalDateDeserializer.class) diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithRegistryId.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithRegistryId.java index 9dd2ff2b1..8ca620605 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithRegistryId.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithRegistryId.java @@ -2,13 +2,7 @@ package ru.spcex.clearing.platform.messaging.domain.cud.reports; import com.fasterxml.jackson.annotation.JsonProperty; -/** - * Запрос на построение отчета по SessionId, RegistryId - */ public class ReportRequestWithRegistryId extends ReportRequest { - /** - * Идентификатор сессии - */ @JsonProperty public Long sessionId; @JsonProperty diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionId.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionId.java index c065ad6b4..bde0ff300 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionId.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionId.java @@ -2,13 +2,7 @@ package ru.spcex.clearing.platform.messaging.domain.cud.reports; import com.fasterxml.jackson.annotation.JsonProperty; -/** - * Запрос на построение отчета по SessionId - */ public class ReportRequestWithSessionId extends ReportRequest { - /** - * Идентификатор сессии - */ @JsonProperty public Long sessionId; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionIdList.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionIdList.java index d5f9bce77..6e685d9d4 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionIdList.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionIdList.java @@ -4,13 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; -/** - * Запрос на построение отчета по списку SessionId - */ public class ReportRequestWithSessionIdList extends ReportRequest { - /** - * Идентификатор сессии - */ @JsonProperty public List sessionId; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/JournalEventExportedRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/JournalEventExportedRequest.java index 099c346a4..98d1068c1 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/JournalEventExportedRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/JournalEventExportedRequest.java @@ -26,10 +26,6 @@ public class JournalEventExportedRequest { private String documentName; @JsonProperty private String dossierNumber; - /** - * ACK при успешной загрузке - * NACK при ошибке загрузки - */ @JsonProperty private String resultStatus; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/logic/functional/BuilderConsumerStep.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/logic/functional/BuilderConsumerStep.java index 0a7bb7f01..224b7b1c7 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/logic/functional/BuilderConsumerStep.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/logic/functional/BuilderConsumerStep.java @@ -5,19 +5,7 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import java.util.function.Consumer; import java.util.function.Function; -/** - * консьюмеры умеют обновлять RequestInfo в мапе хазелкаста.
- * нам это нужно, например, когда хотим дать возможность узнать пользователю о статусе выполняемой команды.
- * (см. RequestStatusController - в нем пользователь по ID может получить инфу о ранее отправленном запросе) - */ public interface BuilderConsumerStep { - /** - * без обновления RequestInfo в мапе - * - */ BuilderDestinationStep setConsumer(Consumer> consumer); - /** - * с обновлением RequestInfo в мапе - */ BuilderDestinationStep setFunction(Function, Object> function); } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/logic/functional/ConsumerSpecificClass.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/logic/functional/ConsumerSpecificClass.java index 0b6e96404..5799dd20b 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/logic/functional/ConsumerSpecificClass.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/logic/functional/ConsumerSpecificClass.java @@ -6,18 +6,8 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; -/** - * вспомогательный класс - * callback для пришедшего сообщения из очереди - */ public class ConsumerSpecificClass implements BuilderConsumerStep, BuilderDestinationStep { - /** - * какой payload будет в BaseRequest - */ private Class clazz; - /** - * действие-обработчик реквеста (метод из конкретного менеджера) - */ private java.util.function.Consumer> consumer; private java.util.function.Function, Object> function; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/JsonDeserializer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/JsonDeserializer.java index ca0ceb998..36a25ec68 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/JsonDeserializer.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/JsonDeserializer.java @@ -32,24 +32,14 @@ public class JsonDeserializer implements Deserializer { @Override public Object deserialize(String topic, Headers headers, byte[] data) { try { -// ObjectReader deserReader = null; -// JavaType javaType = this.typeMapper.toJavaType(headers); -// if (javaType != null) { -// deserReader = this.json.readerFor(javaType); -// } -// if (deserReader == null) { -// throw new RuntimeException("couldn't serialize kafka message without headers (need type info)"); -// } Header header = headers.lastHeader(ClearingKafkaHeader.BaseRequestTypeParameter.getKey()); if (header == null) { throw new RuntimeException("couldn't serialize kafka message without header '" + ClearingKafkaHeader.BaseRequestTypeParameter.getKey() + "' (need type info)"); } String typeParameterClassName = new String(header.value(), StandardCharsets.UTF_8); -// JavaType parameterType = json.getTypeFactory().constructType(ClassUtils.forName(typeParameterClassName, ClassUtils.getDefaultClassLoader())); Class parameterType = ClassUtils.forName(typeParameterClassName, ClassUtils.getDefaultClassLoader()); JavaType requestType = json.getTypeFactory().constructParametricType(BaseRequest.class, parameterType); - //... headers.remove(ClearingKafkaHeader.BaseRequestTypeParameter.getKey()); return json.readValue(new String(data, StandardCharsets.UTF_8), requestType); } catch (IOException | ClassNotFoundException e) { diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/JsonSerializer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/JsonSerializer.java index e819ab119..37869a932 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/JsonSerializer.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/JsonSerializer.java @@ -10,11 +10,9 @@ import java.nio.charset.StandardCharsets; public class JsonSerializer implements Serializer { private final ObjectMapper json; -// private final Jackson2JavaTypeMapper typeMapper; public JsonSerializer() { this.json = new ObjectMapper(); -// this.typeMapper = new DefaultJackson2JavaTypeMapper(); } @Override @@ -32,17 +30,9 @@ public class JsonSerializer implements Serializer { if (data == null) { return null; } - //if (this.addTypeInfo && headers != null) { - //Class clazz = callback.getClazz(); - //JavaType payloadType = json.getTypeFactory().constructParametricType(BaseRequest.class, clazz); - //JavaType payloadType = json.getTypeFactory().constructParametricType(BaseRequest.class, clazz); - //JavaType payloadType = json.getTypeFactory().constructCollectionLikeType(BaseRequest.class, clazz); - //failed to use Jackson2JavaTypeMapper with parametrized BaseRequest - //this.typeMapper.fromJavaType(payloadType, headers); BaseRequest req = (BaseRequest) data; Class clazz = req.getRequestPayload().getClass(); headers.add(new RecordHeader(ClearingKafkaHeader.BaseRequestTypeParameter.getKey(), clazz.getName().getBytes(StandardCharsets.UTF_8))); return serialize(topic, data); -// } } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/LogFormatter.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/LogFormatter.java index 620ade474..0fb9c33d0 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/LogFormatter.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/serialization/LogFormatter.java @@ -6,9 +6,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.spcex.platform.utils.log.ExceptionUtils; -/** - * Для удобной записи в лог объектов. - */ public class LogFormatter { static Logger log = LoggerFactory.getLogger(LogFormatter.class); static final ObjectMapper json; @@ -26,12 +23,6 @@ public class LogFormatter { } } - /** - * Для записи сложного объекта в лог уровней trace/debug - конвертация выполняется только по toString - * - * @param o - * @return - */ public static Object toStringWrapper(final Object o) { if (o == null) return String.valueOf(null); return new Object() { diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java index bfe4c6cb4..f8f5bdb3e 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java @@ -35,9 +35,6 @@ import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; -/** - * утилитный класс для обработки сообщений из очереди - */ public class QueueConsumer implements AutoCloseable { protected final Map> callbacks; private final Logger log = LoggerFactory.getLogger(getClass()); @@ -61,13 +58,6 @@ public class QueueConsumer implements AutoCloseable { } } - /** - * используем этот конструктор, если хотим класть - * в кафку "ответ" - информацию о статусе обработки команд - * - * @param kafkaQueue - * @param kafkaResponseQueue - */ public QueueConsumer(Consumer kafkaQueue, Producer kafkaResponseQueue) { this(kafkaQueue); this.producer = kafkaResponseQueue; @@ -146,12 +136,10 @@ public class QueueConsumer implements AutoCloseable { }); } - //мб перенести в другой класс private void sendErrorResponse(BaseRequest o, Header correlationId) { outputExecutor.submit(() -> { try { Future send; - //default response BaseRequest req = new BaseRequest<>(); RequestInfoUpdate success = new RequestInfoUpdate(); success.setId(o.getId()); @@ -184,7 +172,6 @@ public class QueueConsumer implements AutoCloseable { if (response != null) { req.setRequestPayload(response); } else { - //default response RequestInfoUpdate success = new RequestInfoUpdate(); success.setId(o.getId()); success.setStatus(Status.Success); @@ -207,12 +194,6 @@ public class QueueConsumer implements AutoCloseable { } - /** - * Валидация запроса - * - * @param Класс проверяемого запроса - * @return null если ошибок нет - */ @Deprecated public RequestInfoUpdate validate(BaseRequest userRequest, Function validatorBuilder, @@ -242,7 +223,6 @@ public class QueueConsumer implements AutoCloseable { outputExecutor.shutdown(); } - // нужен для тестов поскольку у каждого сервиса свой consumer public Consumer getConsumer() { return consumer; } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java index 39ec6b504..923e0d168 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java @@ -46,7 +46,6 @@ public class KafkaSender { request.setId(idGenerator.get()); request.setActionType(ActionType.SYSTEM); request.setRequestPayload(requestPayload); - //сохраняет данные о запросе в хранилище saveRequestToStorage(destination, request); ProducerRecord prdRec = new ProducerRecord<>(destination, request); if (correlationId != null) { @@ -65,9 +64,6 @@ public class KafkaSender { return request.getId(); } - /** - * Вариант метода для случая, когда хотим додждаться ответа от другого сервиса через кафку - */ public R sendToQueueWaitForAnswer(String destination, Object requestPayload) { if (!(kafkaTemplate instanceof ReplyingKafkaTemplate)) { throw new IllegalStateException("kafkaTemplate is not ReplyingKafkaTemplate"); @@ -76,14 +72,11 @@ public class KafkaSender { request.setId(idGenerator.get()); request.setActionType(ActionType.SYSTEM); request.setRequestPayload(requestPayload); - //сохраняет данные о запросе в хранилище saveRequestToStorage(destination, request); ProducerRecord prdRec = new ProducerRecord<>(destination, request); ReplyingKafkaTemplate rplKafkaTemplate = (ReplyingKafkaTemplate) kafkaTemplate; RequestReplyFuture replyFuture = rplKafkaTemplate.sendAndReceive(prdRec); - //can be used to extract Producer metadata - //SendResult sendResult = replyFuture.getSendFuture().get(10, TimeUnit.SECONDS); Object value = null; try { ConsumerRecord consumerRecord = replyFuture.get(10, TimeUnit.SECONDS); @@ -122,7 +115,6 @@ public class KafkaSender { @Deprecated void setProducer(Producer kafka) { -// this.kafka = kafka; } void setIdGenerator(Supplier idGenerator) { diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/EnumMessage.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/EnumMessage.java index fc8093067..10a650b15 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/EnumMessage.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/EnumMessage.java @@ -5,10 +5,6 @@ import java.util.Collections; public class EnumMessage { private final IEnumId subject; - /** - * Параметры для подстановки в текст сообщения. Все Serializable. - * args not null. - */ private Object[] args; public EnumMessage(IEnumId subject) { diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/IEnumId.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/IEnumId.java index f2a161277..4e5060a31 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/IEnumId.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/IEnumId.java @@ -6,10 +6,6 @@ import java.util.Objects; public interface IEnumId extends Serializable { Long UNDEFINED_VALUE = Long.MIN_VALUE; - /** - * Проверяет что среди данного набора Enum, присутствует элемент с данным id - * id может быть null - */ static & IEnumId> boolean contains(java.lang.Long id, T... enumSet) { for (T e : enumSet) { if (Objects.equals(id, e.getId())) @@ -26,10 +22,6 @@ public interface IEnumId extends Serializable { return false; } - /** - * Проверяет что среди всех Enum данного класса, присутствует элемент с данным id - * id может быть null - */ static & IEnumId> boolean contains(Class enumClass, Long id) { for (T e : enumClass.getEnumConstants()) { if (Objects.equals(id, e.getId())) @@ -38,12 +30,6 @@ public interface IEnumId extends Serializable { return false; } - /** - * Возвращает Enum по id, если в заданном классе такой определен - * id может быть null - * - * @return Enum если нашел, иначе null - */ static & IEnumId> T getEnumById(Class enumClass, Long id) { for (T e : enumClass.getEnumConstants()) { if (Objects.equals(id, e.getId())) diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/IEnumKey.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/IEnumKey.java index 981f8694f..7556cd761 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/IEnumKey.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/IEnumKey.java @@ -10,10 +10,6 @@ public interface IEnumKey extends Serializable { return key != null && getKey().equalsIgnoreCase(key); } - /** - * Проверяет что среди данного набора Enum, присутствует элемент с данным id - * id может быть null - */ static & IEnumKey> boolean contains(String id, T... enumSet) { for (T e : enumSet) { if (Objects.equals(id, e.getKey())) @@ -30,10 +26,6 @@ public interface IEnumKey extends Serializable { return false; } - /** - * Проверяет что среди всех Enum данного класса, присутствует элемент с данным id - * id может быть null - */ static & IEnumKey> boolean contains(String key, Class enumClass) { for (T e : enumClass.getEnumConstants()) { if (Objects.equals(key, e.getKey())) @@ -42,12 +34,6 @@ public interface IEnumKey extends Serializable { return false; } - /** - * Возвращает Enum по id, если в заданном классе такой определен - * id может быть null - * - * @return Enum если нашел, иначе null - */ static & IEnumKey> T getEnumByKey(Class enumClass, String key) { for (T e : enumClass.getEnumConstants()) { if (Objects.equals(key, e.getKey())) diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/SpringPropertiesMessageResolver.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/SpringPropertiesMessageResolver.java index f086c0970..8034252ea 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/SpringPropertiesMessageResolver.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/enumeration/SpringPropertiesMessageResolver.java @@ -4,9 +4,6 @@ import org.springframework.context.support.ResourceBundleMessageSource; import java.util.Locale; -/** - * Если в зависимостях не будет spring-context, кинет NoClassDefFound - */ public class SpringPropertiesMessageResolver implements IMessageResolver { private final ResourceBundleMessageSource errorMessages; private Locale locale; diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/error/ClearingBaseException.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/error/ClearingBaseException.java index 6a5c0b4e0..66d48f1a9 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/error/ClearingBaseException.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/error/ClearingBaseException.java @@ -27,11 +27,6 @@ public class ClearingBaseException extends Exception { this.enumMsg = new EnumMessage(code); } -// public ClearingBaseException(String message, Throwable cause) { -// super(message, cause); -// this.enumMsg = new EnumMessage(ClearingError.GeneralError); -// } - public EnumMessage getEnumMsg() { return enumMsg; } diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/number/BigDecimalUtil.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/number/BigDecimalUtil.java index b238d0f1e..c52c3381d 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/number/BigDecimalUtil.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/number/BigDecimalUtil.java @@ -1,14 +1,11 @@ package ru.spcex.platform.utils.number; -import org.springframework.util.StringUtils; import ru.spcex.platform.utils.text.TextUtil; import java.math.BigDecimal; public class BigDecimalUtil { -// private final Pattern numberPattern = Pattern.compile("\\d+([.,]\\d+)?"); - public static BigDecimal parse(String number) { if (number == null) { return null; @@ -21,31 +18,18 @@ public class BigDecimalUtil { } } - /** - * для парсинга вида '-00001234'/'00000123' - * @param number - * @return - */ public static BigDecimal parseLeadingZeroes(String number) { try { return new BigDecimal(number); } catch (Throwable e) { - //оставил чтобы стукнул NLP если где-то окажется неровный формат чтобы уточнить поведение return null; } } - /** - * Для кейсов когда есть String поле с десятичной частью, и хотим ограничить число знаков после запятой - */ public static String limitDecimalPlaces(String number, int decimalPlaces) { return limitDecimalPlaces(number, decimalPlaces, false); } - /** - * Для кейсов когда есть String поле с десятичной частью, и хотим ограничить число знаков после запятой - * @param fillZero - дополнить 0 если не хватает знаков дробной части - */ public static String limitDecimalPlaces(String number, int decimalPlaces, boolean fillZero) { if (number == null) { return null; diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/time/TimeUtil.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/time/TimeUtil.java index 43624f183..ead402cae 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/time/TimeUtil.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/time/TimeUtil.java @@ -11,9 +11,6 @@ public class TimeUtil { public static final DateTimeFormatter PROPERTY_DATE_FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy"); public static ZoneId zone = ZoneId.systemDefault(); - /** - * метод чтобы парсить в инстант даты типа yyyy-MM-dd, dd.MM.yyyy и т.д. - */ public static Instant parseInstantDt(String date, DateTimeFormatter formatter) { return LocalDate.parse(date, formatter).atStartOfDay(zone).toInstant(); } @@ -81,12 +78,6 @@ public class TimeUtil { return zoned.toLocalDateTime(); } - /** - * Начало дня по текущей временной зоне. - * - * @param from - * @return - */ public static Instant startOfDay(Instant from) { ZonedDateTime zdtStart = from.atZone(ZoneId.systemDefault()); zdtStart = zdtStart.truncatedTo(ChronoUnit.DAYS); diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/IValidationRule.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/IValidationRule.java index d5a3f8be7..e35ee7fa8 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/IValidationRule.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/IValidationRule.java @@ -5,30 +5,17 @@ import ru.spcex.platform.utils.enumeration.IErrorEnumId; import java.util.Optional; -/** - * Правило валидации, описывающее какую ошибку возвращать и при каких условиях - * Все необходимые данные берет из контекста - * @param контекст - */ public interface IValidationRule { Optional validate(C context); - /** - * для логов - */ default String ruleName() { return getClass().getSimpleName(); } - /** - * если у валидатора был вызван метод проверить все, этот метод может использоваться для более тонкой настройки - * по дефолту - выполнять проверку даже если предыдущие выполнены с ошибками - */ default boolean runIfErrorsPresent() { return true; } - //*************** методы для сокращения кода *************** default Optional of(IErrorEnumId error) { return Optional.of(new EnumMessage(error)); } diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/IValidator.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/IValidator.java index 36f9b3608..b06c5dec8 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/IValidator.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/IValidator.java @@ -6,37 +6,15 @@ import ru.spcex.platform.utils.enumeration.EnumMessage; import java.util.Collection; import java.util.Optional; -/** - * Валидатор, в который можно добавлять правила проверок. - * Будет выполнять их в том порядке, в котором их добавляли - */ public interface IValidator { - /** - * метод для добавления правил валидации - * если положить правило с некорректными типами, при вызове validate будет ClassCastException - */ void addRule(IValidationRule rule); - /** - * если хотим добавить проверки другого валидатора
- * они будут выполняться только если проверки этого успешно пройдены - * возвращает себя - */ IValidator chain(IValidator anotherValidator); - /** - * валидирует все (подходит для случаев когда проверки не полагаются на то что предыдущие проверки прошли нормально) - */ Collection validateAll(); - /** - * валидирует до первой ошибки - */ Optional tillFirstError(); - /** - * валидирует все, возвращает первую ошибку - для совместимости - */ Optional validateAllReturnFirst(); default S getStored(Enum storedObject) { diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/ValidatorImpl.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/ValidatorImpl.java index 416e854e2..4ca7c1fc8 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/ValidatorImpl.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/validation/ValidatorImpl.java @@ -10,9 +10,6 @@ import java.util.Collection; import java.util.List; import java.util.Optional; -/** - * Валидатор, предназначенный для правил у которых есть "контекст" валидации - */ public class ValidatorImpl implements IValidator { private final Logger log = LoggerFactory.getLogger(getClass()); private List> rules = new ArrayList<>(); @@ -21,7 +18,7 @@ public class ValidatorImpl implements IValidator { public ValidatorImpl(C context) {this.context = context;} - public ValidatorImpl(C context, IValidationRule... rules) { // + public ValidatorImpl(C context, IValidationRule... rules) { this.context = context; for (IValidationRule rule : rules) { addRule(rule);