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 016fdc2d0..f2b9524c1 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 @@ -6,6 +6,7 @@ import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.BankAccount; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.CurrencyCodeDictionary; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; @@ -45,6 +46,7 @@ public class BankAccountValidationConfig { addImdg.accept(IMDGDistributedNames.Map_Account); addImdg.accept(IMDGDistributedNames.Map_BankAccount); addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); addImdg.accept(IMDGDistributedNames.Map_CurrencyCodeDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", @@ -83,7 +85,14 @@ public class BankAccountValidationConfig { AccountError.RequiredFieldEmpty), FieldRequiredRule.instance("bankName", BankAccountNewRequest::getBankName, - AccountError.RequiredFieldEmpty) + AccountError.RequiredFieldEmpty), + DictionaryPresentRule.instance("status", + BankAccountNewRequest::getStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false) ); }; } 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 61c7bc016..0deacb3c4 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 @@ -5,8 +5,10 @@ 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.ClearingAccountTypeDictionary; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClearingAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClearingAccountUpdateRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; @@ -43,6 +45,7 @@ public class ClearingAccountValidationConfig { addImdg.accept(IMDGDistributedNames.Map_Company); addImdg.accept(IMDGDistributedNames.Map_ClearingAccount); addImdg.accept(IMDGDistributedNames.Map_ClearingAccountTypeDictionary); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", ClearingAccountNewRequest::getCompanyId, @@ -75,7 +78,14 @@ public class ClearingAccountValidationConfig { IMDGDistributedNames.Map_ClearingAccountTypeDictionary, ClearingAccountTypeDictionary.class, AccountError.RequiredFieldEmpty, - AccountError.WrongFieldValue) + AccountError.WrongFieldValue), + DictionaryPresentRule.instance("status", + ClearingAccountNewRequest::getStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false) ); }; } 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 91e417aa7..bf2b8f955 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 @@ -4,9 +4,12 @@ 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.WorkflowStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewRequest; +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.platform.classes.base.SpcexObjectBase; @@ -39,6 +42,7 @@ public class DepoAccountValidationConfig { addImdg.accept(IMDGDistributedNames.Map_Company); addImdg.accept(IMDGDistributedNames.Map_Account); addImdg.accept(IMDGDistributedNames.Map_DepoAccount); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", DepoAccountNewRequest::getCompanyId, @@ -68,7 +72,14 @@ public class DepoAccountValidationConfig { }), FieldRequiredRule.instance("depoAccountType", DepoAccountNewRequest::getDepoAccountType, - AccountError.RequiredFieldEmpty) + AccountError.RequiredFieldEmpty), + DictionaryPresentRule.instance("status", + DepoAccountNewRequest::getStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false) ); }; } 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 ca5c6342e..6bd1165c5 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 @@ -135,6 +135,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { account.setAccountType(req.getAccountType()); if (req.getStatus() == null) { account.setStatus(WorkflowStatus.Active.getKey()); + log.trace("Status not set in request. Use default: {}", account.getStatus()); } else { account.setStatus(req.getStatus()); } 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 95e422f71..6c7dc1b8e 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 @@ -102,7 +102,12 @@ public class BankAccountService extends QueueConsumer implements InitializingBea Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Bank.getKey()); - account.setStatus(WorkflowStatus.Active.getKey()); + if (req.getStatus() == null) { + log.trace("Status not set in request. Use default: {}", account.getStatus()); + account.setStatus(WorkflowStatus.Active.getKey()); + } else { + account.setStatus(req.getStatus()); + } account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); 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 113c2cad0..c777929e2 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 @@ -107,8 +107,12 @@ public class ClearingAccountService extends QueueConsumer implements Initializin Instant now = Instant.now(); Account account = new Account(); account.setAccount(req.getAccount()); - account.setAccountType(AccountType.Clrn.getKey()); - account.setStatus(ServiceStatus.Active.getKey()); + account.setAccountType(AccountType.Clrn.getKey());if (req.getStatus() == null) { + account.setStatus(WorkflowStatus.Active.getKey()); + log.trace("Status not set in request. Use default: {}", account.getStatus()); + } else { + account.setStatus(req.getStatus()); + } account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); 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 596136ebd..f176bc2e9 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 @@ -27,6 +27,7 @@ import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.SdfTable; import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -88,7 +89,12 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Depo.getKey()); - account.setStatus(ServiceStatus.Active.getKey()); + if (req.getStatus() == null) { + account.setStatus(WorkflowStatus.Active.getKey()); + log.trace("Status not set in request. Use default: {}", account.getStatus()); + } else { + account.setStatus(req.getStatus()); + } account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); 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 d2565cf70..cf29e3b9c 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 @@ -26,6 +26,7 @@ import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -106,6 +107,8 @@ public class InformationAccountService extends QueueConsumer implements Initiali RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, infoAccountNewRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; + InformationAccountNewRequest req = userRequest.getRequestPayload(); + Long newId = informationAccountImdg.nextIDSequenceFor(); Long infoSequenceId = accountNextId(); String accountValue = generateInfoAccount(infoSequenceId); @@ -127,8 +130,13 @@ public class InformationAccountService extends QueueConsumer implements Initiali Account account = new Account(); account.setAccount(accountValue); account.setAccountType(AccountType.Info.getKey()); - account.setStatus(ServiceStatus.Active.getKey());//fixme !!! - account.setCompanyId(userRequest.getRequestPayload().getCompanyId()); + if (req.getStatus() == null) { + account.setStatus(WorkflowStatus.Active.getKey()); + log.trace("Status not set in request. Use default: {}", account.getStatus()); + } else { + account.setStatus(req.getStatus()); + } + account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); requestInfoUpdate = accountService.fillAccountFromRelation(account, userRequest.getId(), true); @@ -150,7 +158,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali informationAccount.setId(newId); informationAccount.setAccountId(accountId); informationAccount.setClearingAccountId(anltAccount.getId()); - informationAccount.setCompanyId(userRequest.getRequestPayload().getCompanyId()); + informationAccount.setCompanyId(req.getCompanyId()); informationAccountId = informationAccountImdg.insert(informationAccount); txOk = true; } finally { diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountNewRequest.java index 640ea0c19..76f32994d 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountNewRequest.java @@ -22,6 +22,8 @@ public class BankAccountNewRequest { @JsonProperty public String account; @JsonProperty + public String status; + @JsonProperty public Long companyId; public String getBankIdentificationCode() { @@ -96,6 +98,14 @@ public class BankAccountNewRequest { this.account = account; } + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + public Long getCompanyId() { return companyId; } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/ClearingAccountNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/ClearingAccountNewRequest.java index 2de9404db..a7c59f69c 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/ClearingAccountNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/ClearingAccountNewRequest.java @@ -12,6 +12,8 @@ public class ClearingAccountNewRequest { @JsonProperty public Long companyId; + @JsonProperty + public String status; public String getAccount() { return account; @@ -36,4 +38,12 @@ public class ClearingAccountNewRequest { public void setCompanyId(Long companyId) { this.companyId = companyId; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/DepoAccountNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/DepoAccountNewRequest.java index efc416b62..17616e47a 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/DepoAccountNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/DepoAccountNewRequest.java @@ -12,6 +12,9 @@ public class DepoAccountNewRequest { @JsonProperty public Long companyId; + @JsonProperty + public String status; + public String getAccount() { return account; @@ -36,4 +39,12 @@ public class DepoAccountNewRequest { public void setCompanyId(Long companyId) { this.companyId = companyId; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/InformationAccountNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/InformationAccountNewRequest.java index 6b7b9636f..ffb372ec0 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/InformationAccountNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/InformationAccountNewRequest.java @@ -6,6 +6,9 @@ public class InformationAccountNewRequest { @JsonProperty public Long companyId; + @JsonProperty + private String status; + public Long getCompanyId() { return companyId; } @@ -13,4 +16,12 @@ public class InformationAccountNewRequest { public void setCompanyId(Long companyId) { this.companyId = companyId; } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } }