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 47f1ec0a6..3d47a3de6 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 @@ -171,7 +171,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { } else if (AccountType.Info.equalsByKey(account.getAccountType())) makeInfoPart(imdgTransaction, account); else if (AccountType.Depo.equalsByKey(account.getAccountType())) - makeDepoPart(imdgTransaction, account); + makeDepoPart(imdgTransaction, account, req); else if (AccountType.Clrn.equalsByKey(account.getAccountType())) makeClrnPart(imdgTransaction, account); else { @@ -210,17 +210,22 @@ public class AccountService extends QueueConsumer implements InitializingBean { log.debug("For account id={} make InformationAccount id={}", account.getId(), infoId); } - protected void makeDepoPart(ImdgTransaction imdgTransaction, Account account) { - Imdg depoAccountMap = imdgTransaction.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class);; + protected void makeDepoPart(ImdgTransaction imdgTransaction, Account account, CorrespondentAccountNewRequest req) { + Imdg depoAccountMap = imdgTransaction.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); DepoAccount depoAcc = new DepoAccount(); depoAcc.setAccountId(account.getId()); depoAcc.setCompanyId(account.getCompanyId()); + 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); } protected void makeClrnPart(ImdgTransaction imdgTransaction, Account account) { - Imdg clearingAccountMap = imdgTransaction.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);; + Imdg clearingAccountMap = imdgTransaction.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); ClearingAccount clnrAcc = new ClearingAccount(); clnrAcc.setAccountId(account.getId()); clnrAcc.setCompanyId(account.getCompanyId()); 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 6d52d2c31..f8b99f355 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 @@ -23,10 +23,7 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; 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.enumeration.*; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -114,7 +111,11 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea depoAccount = new DepoAccount(); depoAccount.setCompanyId(req.getCompanyId()); depoAccount.setAccountId(accountId); - depoAccount.setDepoAccountType(req.getDepoAccountType()); + if (account.getAccount() != null && account.getAccount().contains("BC")) { + depoAccount.setDepoAccountType(DepoAccountType.C.getKey()); + } else { + depoAccount.setDepoAccountType(req.getDepoAccountType()); + } depoAccountId = depoAccountImdg.insert(depoAccount); txOk = true; } finally { @@ -188,7 +189,11 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea DepoAccount depoAccount = new DepoAccount(); depoAccount.setCompanyId(accountReq.getCompanyId()); depoAccount.setAccountId(accountId); - depoAccount.setDepoAccountType(accountReq.getAccountType()); + if (account.getAccount() != null && account.getAccount().contains("BC")) { + depoAccount.setDepoAccountType(DepoAccountType.C.getKey()); + } else { + depoAccount.setDepoAccountType(accountReq.getAccountType()); + } depoAccountId = depoAccountImdg.insert(depoAccount); diff --git a/clearing-parent/backend-api/src/main/resources/meta/data.xml b/clearing-parent/backend-api/src/main/resources/meta/data.xml index d1f1433a2..af61a3193 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -214,7 +214,7 @@ - + diff --git a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql index 180986141..ff5748823 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql @@ -429,7 +429,7 @@ INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'A', 'Сче INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'B', 'Счет клиента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'C', 'Счет попечителя') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'C', 'Счет нерезидента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO DEPO_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'D', 'Счет доверительного управляющего') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/DepoAccountType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/DepoAccountType.java new file mode 100644 index 000000000..efbc02ebc --- /dev/null +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/DepoAccountType.java @@ -0,0 +1,18 @@ +package ru.spcex.platform.enumeration; + +import ru.spcex.platform.utils.enumeration.IEnumKey; + +public enum DepoAccountType implements IEnumKey { + A("A"), B("B"), C("C"), D("D"); + + private final String key; + + DepoAccountType(String key) { + this.key = key; + } + + @Override + public String getKey() { + return key; + } +}