diff --git a/clearing-parent/account-service/pom.xml b/clearing-parent/account-service/pom.xml index 215a70afa..cc3103e57 100644 --- a/clearing-parent/account-service/pom.xml +++ b/clearing-parent/account-service/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 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 781ae04ba..1a98c6b2c 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 @@ -302,7 +302,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali } public String generateInfoAccount(Long currencyCodeId, Long id) { - return "%d%d%08d%d".formatted(39911, currencyCodeId, id, 7000); + return "%d%03d%08d%d".formatted(39911, currencyCodeId, id, 7000); } public synchronized Long accountNextId(String currency) { @@ -316,6 +316,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali * @return infoCounter++ */ public synchronized Long accountNextId(String currency, Long currencyCodeId) { + String idWithTrailingZero = String.format("%03d", currencyCodeId); if (currency == null) currency = CurrencyCode.RUB.getKey(); // default AtomicLong infoCounter = infoCounterByCurrency.get(currency); @@ -338,7 +339,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali infoCounter = new AtomicLong(1); log.debug("No account information on map. n={}", infoCounter.get()); } else { - Pattern accPattern = Pattern.compile("39911%d([0-9]{8})7000".formatted(currencyCodeId)); + Pattern accPattern = Pattern.compile("39911%s([0-9]{8})7000".formatted(idWithTrailingZero)); int maxN = 1; int parsedCount = 0; String lastAccount = null; // for debug 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 675c3d7bb..646decd21 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 @@ -49,7 +49,9 @@ import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.util.security.UserRoleVerification; 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.CompanySymbol; +import ru.spcex.platform.enumeration.CurrencyCode; import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.Status; import static ru.spcex.platform.enumeration.Task.makeFiles_MTCR; @@ -460,13 +462,13 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini return requestHelper.makeErrorResponse(userRequest, AccountError.WrongFieldValue, "MoneyAccountId", req.getMoneyAccountId()); } if (tradingClearingRegistry.getDepoAccountId() != null && // но можно с null заменить - req.getDepoAccountId() != null && !req.getDepoAccountId().equals(tradingClearingRegistry.getDepoAccountId())) { + req.getDepoAccountId() != null && !req.getDepoAccountId().equals(tradingClearingRegistry.getDepoAccountId())) { return requestHelper.makeErrorResponse(userRequest, AccountError.WrongFieldValue, "DepoAccountId", req.getDepoAccountId()); } // tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); if (req.getStatus() != null && !Objects.equals(req.getStatus(), tradingClearingRegistry.getStatus()) - || req.getDepoAccountId() != null && !req.getDepoAccountId().equals(tradingClearingRegistry.getDepoAccountId()) + || req.getDepoAccountId() != null && !req.getDepoAccountId().equals(tradingClearingRegistry.getDepoAccountId()) ) { Instant now = Instant.now(); tradingClearingRegistry.setUpdated(now); @@ -586,6 +588,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini MoneyAccountMsgResponse moneyAccountMsg = new MoneyAccountMsgResponse(); moneyAccountMsg.setAccount(moneyAccount.getAccount()); moneyAccountMsg.setCurrCode(StringUtils.hasText(moneyAccount.getCurrency()) ? moneyAccount.getCurrency() : "RUB"); + getEksAccount(moneyAccount).ifPresent(moneyAccountMsg::setEksAccount); moneyAccountMsg.setActive(Status.Active.equalsByKey(moneyAccount.getStatus())); tkr.getMoneyAccounts().add(moneyAccountMsg); } @@ -600,6 +603,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini Account additionalAcc = accountImdg.getSingleObjectByID(tkrList.getAccountId()); MoneyAccountMsgResponse moneyAccountMsg = new MoneyAccountMsgResponse(); moneyAccountMsg.setAccount(additionalAcc.getAccount()); + getEksAccount(additionalAcc).ifPresent(moneyAccountMsg::setEksAccount); moneyAccountMsg.setCurrCode(StringUtils.hasText(additionalAcc.getCurrency()) ? additionalAcc.getCurrency() : "RUB"); moneyAccountMsg.setActive(Status.Active.equalsByKey(additionalAcc.getStatus())); tkr.getMoneyAccounts().add(moneyAccountMsg); @@ -610,6 +614,22 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini return Optional.empty(); } + private Optional getEksAccount(Account account) { + if (AccountType.Info.equalsByKey(account.getAccountType())) { + String currency = StringUtils.hasText(account.getCurrency()) ? account.getCurrency() : CurrencyCode.RUB.getKey(); + Account anltAcc = accountImdg.getFirstObjectByFieldValues( + Map.of( + "currency", currency, + "accountType", AccountType.Anlt.getKey() + ) + ); + if (anltAcc != null) { + return Optional.of(anltAcc.getAccount()); + } + } + return Optional.empty(); + } + /** * company-service сообщение об успешном добавлении ТКР клиента с параметром tradingClearingRegistry.code */ diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayClientCodeValidationRule.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayClientCodeValidationRule.java index a61c012ef..8add6baf9 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayClientCodeValidationRule.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/GatewayClientCodeValidationRule.java @@ -35,7 +35,7 @@ public enum GatewayClientCodeValidationRule implements IValidationRule companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); Company company = companyImdg.getFirstObjectByFieldValues( - Map.of("trading_code", String.valueOf(tradingCode)) + Map.of("tradingCode", String.valueOf(tradingCode)) ); if (company == null) { return of(AccountError.COMPANY_NOT_FOUND_GTW, "trading_code"); @@ -62,6 +62,9 @@ public enum GatewayClientCodeValidationRule implements IValidationRule clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/sdf/SdfsController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/sdf/SdfsController.java index e94098463..df8b94763 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/sdf/SdfsController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/sdf/SdfsController.java @@ -237,6 +237,19 @@ public class SdfsController extends AbstractQueueController { return response; } + @ApiOperation(value = "get all S_DF51") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) + @RequestMapping(value = "s-df51", method = RequestMethod.GET) + @ResponseBody + public CommonGetAllResponse getAllSdf51() { + Collection> all = stateLoader.getAllMetaTransform( + IMDGDistributedNames.Map_SDf51, + SDf51.class); + CommonGetAllResponse response = new CommonGetAllResponse(); + response.fromEntity(all); + return response; + } + @ApiOperation(value = "get all S_DF52") @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) @RequestMapping(value = "s-df52", method = RequestMethod.GET) 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 ac1bab32d..e34d26163 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -1,5 +1,5 @@ - + diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.json b/clearing-parent/backend-api/src/main/resources/meta/meta.json index 9f45f5642..ac22b7d00 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.json +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.json @@ -1,6 +1,6 @@ { - "version": "3.12.0.94", + "version": "3.12.2.95", "enums": { @@ -4627,6 +4627,10 @@ {"code": "tradingClearingRegistryId", "type": 1,"name": "Торгово-клиринговый регистр","shortname": "Торгово-клиринговый регистр","link": "tradingClearingRegistry","linkCode": "code","required": true } + , + {"code": "securitySymbol", + "type": 2,"length": 255,"dbname": "Код инструмента","name": "Наименование инструмента/валюты","shortname": "Инструмент/валюта","searchable": false,"sortable": false,"visible": false + } ] } , diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index 3a423ccc6..25d069830 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + @@ -1074,6 +1074,7 @@ + diff --git a/clearing-parent/backend-api/src/test/resources/meta.json b/clearing-parent/backend-api/src/test/resources/meta.json index 9f45f5642..ac22b7d00 100644 --- a/clearing-parent/backend-api/src/test/resources/meta.json +++ b/clearing-parent/backend-api/src/test/resources/meta.json @@ -1,6 +1,6 @@ { - "version": "3.12.0.94", + "version": "3.12.2.95", "enums": { @@ -4627,6 +4627,10 @@ {"code": "tradingClearingRegistryId", "type": 1,"name": "Торгово-клиринговый регистр","shortname": "Торгово-клиринговый регистр","link": "tradingClearingRegistry","linkCode": "code","required": true } + , + {"code": "securitySymbol", + "type": 2,"length": 255,"dbname": "Код инструмента","name": "Наименование инструмента/валюты","shortname": "Инструмент/валюта","searchable": false,"sortable": false,"visible": false + } ] } , diff --git a/clearing-parent/balance-service/pom.xml b/clearing-parent/balance-service/pom.xml index 66a5d8323..aab2e200d 100644 --- a/clearing-parent/balance-service/pom.xml +++ b/clearing-parent/balance-service/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 diff --git a/clearing-parent/classes/pom.xml b/clearing-parent/classes/pom.xml index 4b429ea58..ca4ef67b7 100644 --- a/clearing-parent/classes/pom.xml +++ b/clearing-parent/classes/pom.xml @@ -12,7 +12,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 diff --git a/clearing-parent/cleaning-builders/pom.xml b/clearing-parent/cleaning-builders/pom.xml index bfbd01794..0ed45026a 100644 --- a/clearing-parent/cleaning-builders/pom.xml +++ b/clearing-parent/cleaning-builders/pom.xml @@ -6,13 +6,13 @@ ru.spcex.clearing clearing-parent - SPCEX-3.12.0.0 + SPCEX-3.12.2 cleaning-builders cleaning-builders Cleaning builders module - SPCEX-3.12.0.0 + SPCEX-3.12.2 jar @@ -26,7 +26,7 @@ ru.spcex.clearing classes - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/clearing-service/pom.xml b/clearing-parent/clearing-service/pom.xml index 0bd5a4a3c..3cde43965 100644 --- a/clearing-parent/clearing-service/pom.xml +++ b/clearing-parent/clearing-service/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 diff --git a/clearing-parent/clearing-validation/pom.xml b/clearing-parent/clearing-validation/pom.xml index a1e0d19fd..613ad8e2f 100644 --- a/clearing-parent/clearing-validation/pom.xml +++ b/clearing-parent/clearing-validation/pom.xml @@ -8,12 +8,12 @@ clearing-validation Clearing-module, dependency version of platform-utils jar - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 @@ -35,13 +35,13 @@ ru.spcex.clearing classes - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile ru.spcex.clearing dictionary - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/company-service/pom.xml b/clearing-parent/company-service/pom.xml index 8b337a655..bdb62c081 100644 --- a/clearing-parent/company-service/pom.xml +++ b/clearing-parent/company-service/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 diff --git a/clearing-parent/db-scripts/pom.xml b/clearing-parent/db-scripts/pom.xml index 6eb0dcd2c..1a8e3c7c0 100644 --- a/clearing-parent/db-scripts/pom.xml +++ b/clearing-parent/db-scripts/pom.xml @@ -7,12 +7,12 @@ db-scripts db-scripts db-scripts for PostgreSQL - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 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 7ba3386d5..38db50870 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql @@ -1,5 +1,5 @@ -- DB version: 3.12 --- DATA version: 3.12.0.92 +-- DATA version: 3.12.2.93 /* Dictionaries */ @@ -196,6 +196,14 @@ INSERT INTO CURRENCY_CODE_DICTIONARY(ID, CODE, NAME) values (978, 'EUR', 'Евр INSERT INTO CURRENCY_CODE_DICTIONARY(ID, CODE, NAME) values (156, 'CNY', 'Китайский Юань') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO CURRENCY_CODE_DICTIONARY(ID, CODE, NAME) values (398, 'KZT', 'Тенге') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO CURRENCY_CODE_DICTIONARY(ID, CODE, NAME) values (51, 'AMD', 'Армянский драм') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO CURRENCY_CODE_DICTIONARY(ID, CODE, NAME) values (417, 'KGS', 'Com') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO CURRENCY_CODE_DICTIONARY(ID, CODE, NAME) values (933, 'BYN', 'Белорусский рубль') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO CURRENCY_PAIR_DICTIONARY(ID, CODE, BASE_CURRENCY, QUOTE_CURRENCY, MAJOR_SIGN) values (1, 'EUR/RUB', 'EUR', 'RUB', 'CONV') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, BASE_CURRENCY = EXCLUDED.BASE_CURRENCY, QUOTE_CURRENCY = EXCLUDED.QUOTE_CURRENCY, MAJOR_SIGN = EXCLUDED.MAJOR_SIGN; INSERT INTO CURRENCY_PAIR_DICTIONARY(ID, CODE, BASE_CURRENCY, QUOTE_CURRENCY, MAJOR_SIGN) values (2, 'USD/RUB', 'USD', 'RUB', 'CONV') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, BASE_CURRENCY = EXCLUDED.BASE_CURRENCY, QUOTE_CURRENCY = EXCLUDED.QUOTE_CURRENCY, MAJOR_SIGN = EXCLUDED.MAJOR_SIGN; diff --git a/clearing-parent/dbf-exporter/pom.xml b/clearing-parent/dbf-exporter/pom.xml index 7e50425af..efc16040f 100644 --- a/clearing-parent/dbf-exporter/pom.xml +++ b/clearing-parent/dbf-exporter/pom.xml @@ -7,12 +7,12 @@ dbf-exporter dbf-exporter DBF exporter for DBF files - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 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 0a04e133e..c38ddd3f7 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 @@ -47,6 +47,8 @@ public class PrepareDBFFile extends Stage implements InitializingBean { List files = new ArrayList<>(); log.trace("Get files from SFTP paths: {}", settings.getStore().getOutPayValDir().values()); for (String path : settings.getStore().getOutPayValDir().values()) { + if (!path.endsWith("/")) // без "/" на конце папки пишет ошибку: Caused by: com.jcraft.jsch.SftpException: No such file + path += "/"; files.addAll(gateway.listFiles(path)); } log.info("There are {} files on the sFTP server in the search directories.", files.size()); diff --git a/clearing-parent/dbf-exporter/src/main/resources/application.properties b/clearing-parent/dbf-exporter/src/main/resources/application.properties index 0bdbdcaa5..1f8e20723 100644 --- a/clearing-parent/dbf-exporter/src/main/resources/application.properties +++ b/clearing-parent/dbf-exporter/src/main/resources/application.properties @@ -7,10 +7,10 @@ export-dbf-service.hazelcast.password=dev-pass export-dbf-service.common.encoding=cp866 export-dbf-service.common.threads-count=10 -export-dbf-service.store.local-temp-dir=D:\\docs and T3\\clearing\\dbf\\ +export-dbf-service.store.local-temp-dir=D:\\docs and T3\\clearing\\dbf # код валюты должен быть в верхнем регистре, например для рублей - "RUB" (*.RUB=export/rub/).RUB=export/rub/ -export-dbf-service.store.out-pay-val-dir.RUB=export/rub/ -export-dbf-service.store.out-pay-val-dir.EUR=export/eur/ +export-dbf-service.store.out-pay-val-dir.RUB=export/rub +export-dbf-service.store.out-pay-val-dir.EUR=export/eur export-dbf-service.store.user:tester export-dbf-service.store.password=password export-dbf-service.store.server-ip=10.230.238.53 diff --git a/clearing-parent/dbf-importer/pom.xml b/clearing-parent/dbf-importer/pom.xml index c8d3fb9a3..c85fe85e7 100644 --- a/clearing-parent/dbf-importer/pom.xml +++ b/clearing-parent/dbf-importer/pom.xml @@ -8,12 +8,12 @@ dbf-importer dbf-importer DBF loader for DBF files - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/FileChecker.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/FileChecker.java index 778b5b04e..47ab54498 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/FileChecker.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/services/FileChecker.java @@ -78,6 +78,8 @@ public class FileChecker { List files = new ArrayList<>(); log.trace("Load from SFTP paths: {}", settings.getStore().getSftpIn().getSftpSrcPayValDir().values()); for (String path : settings.getStore().getSftpIn().getSftpSrcPayValDir().values()) { + if (!path.endsWith("/")) // без "/" на конце папки пишет ошибку: Caused by: com.jcraft.jsch.SftpException: No such file + path += "/"; files.addAll(gateway.listFiles(path)); } if (files.size() > 0) log.info("Loaded from SFTP files count={}", files.size()); diff --git a/clearing-parent/dbf-importer/src/main/resources/application.properties b/clearing-parent/dbf-importer/src/main/resources/application.properties index 7957a0c9e..d077d0320 100644 --- a/clearing-parent/dbf-importer/src/main/resources/application.properties +++ b/clearing-parent/dbf-importer/src/main/resources/application.properties @@ -14,8 +14,8 @@ import-dbf-service.common.insert-batch-size=100 import-dbf-service.common.threads-count=10 #sftpSrcDir -import-dbf-service.store.sftp-in.sftp-src-pay-val-dir.rub=clearing_importer_sftp/rub/ -import-dbf-service.store.sftp-in.sftp-src-pay-val-dir.eur=clearing_importer_sftp/eur/ +import-dbf-service.store.sftp-in.sftp-src-pay-val-dir.rub=clearing_importer_sftp/rub +import-dbf-service.store.sftp-in.sftp-src-pay-val-dir.eur=clearing_importer_sftp/eur import-dbf-service.store.sftp-in.sftp-src-dir=clearing_importer_sftp import-dbf-service.store.sftp-in.user=user import-dbf-service.store.sftp-in.password=********* diff --git a/clearing-parent/dictionary/pom.xml b/clearing-parent/dictionary/pom.xml index 025beaafb..f8e17b996 100644 --- a/clearing-parent/dictionary/pom.xml +++ b/clearing-parent/dictionary/pom.xml @@ -8,12 +8,12 @@ Clearing dictionary Clearing dictionary jar - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 diff --git a/clearing-parent/extdb-importer/pom.xml b/clearing-parent/extdb-importer/pom.xml index 2ca1b08ba..6102377bb 100644 --- a/clearing-parent/extdb-importer/pom.xml +++ b/clearing-parent/extdb-importer/pom.xml @@ -4,12 +4,12 @@ ru.spcex.clearing clearing-parent - SPCEX-3.12.0.0 + SPCEX-3.12.2 extdb-importer extdb-importer Extdb importer module. Аналог trade-importer. - SPCEX-3.12.0.0 + SPCEX-3.12.2 jar diff --git a/clearing-parent/gateway-api/pom.xml b/clearing-parent/gateway-api/pom.xml index 52a3a6402..7b8ff352d 100644 --- a/clearing-parent/gateway-api/pom.xml +++ b/clearing-parent/gateway-api/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 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 bfb4c19bc..b0a17024d 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 @@ -186,7 +186,7 @@ public class GatewayController { log.debug("Received message: {}", request); executor.submit(() -> { operationService.checkAssetsAndSendMessage(request); - notificationService.updateGatewayResultInMap(request); + notificationService.sendToJournal(request); }); return createCommonResponse(request.getId()); } @@ -206,6 +206,7 @@ public class GatewayController { log.debug("Received message: {}", request); executor.submit(() -> { tkrService.processedTkrRequest(request); + notificationService.sendToJournal(request); }); return createCommonResponse(request.getId()); } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/WithId.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/WithId.java new file mode 100644 index 000000000..20b815104 --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/WithId.java @@ -0,0 +1,7 @@ +package ru.spcex.clearing.gatewayapi.controller.inbound.request; + +import java.util.UUID; + +public interface WithId { + UUID getId(); +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/WithResult.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/WithResult.java new file mode 100644 index 000000000..15cb83155 --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/WithResult.java @@ -0,0 +1,5 @@ +package ru.spcex.clearing.gatewayapi.controller.inbound.request; + +public interface WithResult { + Boolean getResult(); +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/limit/LimitRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/limit/LimitRequest.java index 12af846e5..330a689bc 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/limit/LimitRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/limit/LimitRequest.java @@ -1,10 +1,11 @@ package ru.spcex.clearing.gatewayapi.controller.inbound.request.limit; -import com.fasterxml.jackson.annotation.JsonProperty; - import java.util.UUID; +import com.fasterxml.jackson.annotation.JsonProperty; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithId; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithResult; -public class LimitRequest { +public class LimitRequest implements WithId, WithResult { @JsonProperty("result") private Boolean result; @JsonProperty("description") @@ -16,6 +17,7 @@ public class LimitRequest { @JsonProperty("error_file") private String errorFile; + @Override public Boolean getResult() { return result; } @@ -32,6 +34,7 @@ public class LimitRequest { this.description = description; } + @Override public UUID getId() { return id; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/operations/OperationsRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/operations/OperationsRequest.java index 41a9a3d24..34eb6f62e 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/operations/OperationsRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/operations/OperationsRequest.java @@ -1,10 +1,11 @@ package ru.spcex.clearing.gatewayapi.controller.inbound.request.operations; -import com.fasterxml.jackson.annotation.JsonProperty; - import java.util.UUID; +import com.fasterxml.jackson.annotation.JsonProperty; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithId; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithResult; -public class OperationsRequest { +public class OperationsRequest implements WithId, WithResult { @JsonProperty("id") private UUID id; @JsonProperty("result") @@ -12,6 +13,7 @@ public class OperationsRequest { @JsonProperty("description") private String description; + @Override public UUID getId() { return id; } @@ -20,6 +22,7 @@ public class OperationsRequest { this.id = id; } + @Override public Boolean getResult() { return result; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/MoneyAccount.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/MoneyAccount.java index 343e67137..e0b916aa7 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/MoneyAccount.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/MoneyAccount.java @@ -7,6 +7,8 @@ public class MoneyAccount { private String currCode; @JsonProperty("account") private String account; + @JsonProperty("eks_account") + private String eksAccount; @JsonProperty("status") private String status; @@ -26,6 +28,14 @@ public class MoneyAccount { this.account = account; } + public String getEksAccount() { + return eksAccount; + } + + public void setEksAccount(String eksAccount) { + this.eksAccount = eksAccount; + } + public String getStatus() { return status; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/TkrError.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/TkrError.java new file mode 100644 index 000000000..aa2b1a303 --- /dev/null +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/TkrError.java @@ -0,0 +1,46 @@ +package ru.spcex.clearing.gatewayapi.controller.inbound.request.tkr.request; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class TkrError { + @JsonProperty("trading_code") + private Integer tradingCode; + @JsonProperty("client_code") + private String clientCode; + @JsonProperty("tkr_code") + private String tkrCode; + @JsonProperty("error_message") + private String errorMessage; + + public Integer getTradingCode() { + return tradingCode; + } + + public void setTradingCode(Integer tradingCode) { + this.tradingCode = tradingCode; + } + + public String getClientCode() { + return clientCode; + } + + public void setClientCode(String clientCode) { + this.clientCode = clientCode; + } + + public String getTkrCode() { + return tkrCode; + } + + public void setTkrCode(String tkrCode) { + this.tkrCode = tkrCode; + } + + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } +} diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/TkrRequest.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/TkrRequest.java index d41efeee2..af5425a37 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/TkrRequest.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/inbound/request/tkr/request/TkrRequest.java @@ -6,8 +6,10 @@ import java.util.UUID; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateTimeDeserializer; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithId; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithResult; -public class TkrRequest { +public class TkrRequest implements WithId, WithResult { @JsonProperty("id") private UUID id; @JsonDeserialize(using = LocalDateTimeDeserializer.class) @@ -17,7 +19,12 @@ public class TkrRequest { private String type; @JsonProperty("sent_info_accounts") private List infoAccount; + @JsonProperty("errors") + private List errors; + @JsonProperty("result") + private Boolean result; + @Override public UUID getId() { return id; } @@ -49,4 +56,22 @@ public class TkrRequest { public void setInfoAccount(List infoAccount) { this.infoAccount = infoAccount; } + + public List getErrors() { + + return errors; + } + + public void setErrors(List errors) { + this.errors = errors; + } + + @Override + public Boolean getResult() { + return result; + } + + public void setResult(Boolean result) { + this.result = result; + } } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/response/ErrorResponse.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/response/ErrorResponse.java index ab67bbe2a..589f5ce4b 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/response/ErrorResponse.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/controller/outbound/response/ErrorResponse.java @@ -1,14 +1,14 @@ package ru.spcex.clearing.gatewayapi.controller.outbound.response; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; - import java.util.HashMap; import java.util.Map; import java.util.UUID; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithId; -public class ErrorResponse { +public class ErrorResponse implements WithId { @JsonProperty("id") private UUID id; @JsonProperty("message") @@ -22,6 +22,7 @@ public class ErrorResponse { unknownProperties.put(key, value); } + @Override public UUID getId() { return id; } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java index d6945199e..9234f6239 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/GatewayService.java @@ -282,6 +282,10 @@ public class GatewayService extends QueueConsumer implements InitializingBean { if (reportRequest.getRequestId() != null) { outboundRequest.setId(reportRequest.getRequestId()); } + GatewayResult gatewayResult = GatewayResultBuilder.builder() + .outboundRequest(outboundRequest) + .build(); + gatewayResultImdg.insert(gatewayResult); String url = formingInboundUrl(inboundServerSettings.getPathLOCM()); HttpEntity r = makeDefaultRequest(outboundRequest); ResponseEntity response = restTemplate.exchange(url, HttpMethod.POST, r, SuccessResponse.class); diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/NotificationService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/NotificationService.java index 157e85c4b..781395eb1 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/NotificationService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/NotificationService.java @@ -1,11 +1,16 @@ package ru.spcex.clearing.gatewayapi.service; +import java.time.Instant; +import java.util.List; +import java.util.Map; +import java.util.UUID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.register.GatewayResult; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithId; +import ru.spcex.clearing.gatewayapi.controller.inbound.request.WithResult; import ru.spcex.clearing.gatewayapi.controller.inbound.request.limit.LimitRequest; -import ru.spcex.clearing.gatewayapi.controller.inbound.request.operations.OperationsRequest; import ru.spcex.clearing.gatewayapi.controller.outbound.request.OutboundRequest; import ru.spcex.clearing.gatewayapi.controller.outbound.response.ErrorResponse; import ru.spcex.clearing.gatewayapi.enums.OutboundRequestType; @@ -20,11 +25,6 @@ import ru.spcex.platform.enumeration.ResultStatuses; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; -import java.time.Instant; -import java.util.List; -import java.util.Map; -import java.util.UUID; - @Service public class NotificationService { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -50,9 +50,9 @@ public class NotificationService { return; } log.info("Receive request: uuid = {}, file = {} with result = {} and sending section = {}.", - request.getId(), request.getLogFile(), request.getResult(), outboundReq.getSection()); + request.getId(), request.getLogFile(), request.getResult(), outboundReq.getSection()); - updateGatewayResultInMap(request); + sendToJournal(request); newRequest.setObjectType(ObjectType.rgst.getKey()); newRequest.setComment(request.getDescription()); @@ -67,63 +67,12 @@ public class NotificationService { kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, newRequest); } - public void updateGatewayResultInMap(LimitRequest request) { - if (request.getId() == null || request.getResult() == null) { - log.warn("GatewayResult not found because LimitRequest not valid: {}", LogFormatter.toString(request)); - return; - } - GatewayResult gatewayResult = gatewayResultImdg.getFirstObjectByFieldValues(Map.of("requestId", request.getId().toString())); - if (gatewayResult == null) { - log.warn("GatewayResult by requestId = {} not found in map", request.getId().toString()); - return; - } - gatewayResult.setUpdated(Instant.now()); - gatewayResult.setGatewayResultStatus(request.getResult() ? ResultStatuses.success.getKey() : ResultStatuses.notSuccess.getKey()); - gatewayResult.setResult(LogFormatter.toString(request)); - gatewayResultImdg.update(gatewayResult); - log.info("Updated gatewayResult: {} in map", LogFormatter.toString(gatewayResult)); - } - - public void updateGatewayResultInMap(OperationsRequest request) { - if (request.getId() == null || request.getResult() == null) { - log.warn("GatewayResult not found because OperationsRequest not valid: {}", LogFormatter.toString(request)); - return; - } - GatewayResult gatewayResult = gatewayResultImdg.getFirstObjectByFieldValues(Map.of("requestId", request.getId().toString())); - if (gatewayResult == null) { - log.warn("GatewayResult by requestId = {} not found in map", request.getId().toString()); - return; - } - gatewayResult.setUpdated(Instant.now()); - gatewayResult.setGatewayResultStatus(request.getResult() ? ResultStatuses.success.getKey() : ResultStatuses.notSuccess.getKey()); - gatewayResult.setResult(LogFormatter.toString(request)); - gatewayResultImdg.update(gatewayResult); - log.info("Updated gatewayResult: {} in map", LogFormatter.toString(gatewayResult)); - } - - public void updateGatewayResultInMap(ErrorResponse response) { - if (response.getId() == null) { - log.warn("GatewayResult not found because OperationsRequest not valid: {}", LogFormatter.toString(response)); - return; - } - GatewayResult gatewayResult = gatewayResultImdg.getFirstObjectByFieldValues(Map.of("requestId", response.getId().toString())); - if (gatewayResult == null) { - log.warn("GatewayResult by requestId = {} not found in map", response.getId().toString()); - return; - } - gatewayResult.setUpdated(Instant.now()); - gatewayResult.setGatewayResultStatus(ResultStatuses.notSuccess.getKey()); - gatewayResult.setResult(LogFormatter.toString(response)); - gatewayResultImdg.update(gatewayResult); - log.info("Updated gatewayResult: {} in map", LogFormatter.toString(gatewayResult)); - } - public void sendErrorNotification(ErrorResponse response, OutboundRequest request) { NotificationNewRequest newRequest = new NotificationNewRequest(); - updateGatewayResultInMap(response); + sendErrorToJournal(response); if (OutboundRequestType.FILL_LIMITS.equalsByKey(request.getType()) && request.getContent() != null && request.getContent().size() > 0) log.info("Receive ErrorResponse: uuid = {}, file = {}, sending type = {} and section = {}.", - response.getId(), request.getContent().get("file"), request.getType(), request.getSection()); + response.getId(), request.getContent().get("file"), request.getType(), request.getSection()); else log.info("Receive ErrorResponse: uuid = {}, sending type = {} and section = {}.", response.getId(), request.getType(), request.getSection()); newRequest.setObjectType(ObjectType.rgst.getKey()); @@ -133,6 +82,39 @@ public class NotificationService { kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, newRequest); } + public void sendToJournal(T request) { + if (request.getResult() == null) { + log.warn("GatewayResult not found because LimitRequest not valid: {}", LogFormatter.toString(request)); + return; + } + updateResult(request, ResultStatuses.successOrNot(request.getResult())); + } + + public void sendErrorToJournal(ErrorResponse response) { + updateResult(response, ResultStatuses.notSuccess); + } + + private void updateResult(T request, ResultStatuses resultStatus) { + if (request.getId() == null) { + log.warn("Request without id: {}; skipping...", LogFormatter.toString(request)); + return; + } + GatewayResult gatewayResult = gatewayResultImdg.getFirstObjectByFieldValues(Map.of("requestId", request.getId().toString())); + if (gatewayResult == null) { + log.warn("GatewayResult by requestId = {} not found in map", request.getId().toString()); + return; + } + gatewayResult.setUpdated(Instant.now()); + gatewayResult.setGatewayResultStatus(resultStatus.getKey()); + String res = LogFormatter.toString(request); + if (res.length() > 1000){ + res = res.substring(0, 1000); + } + gatewayResult.setResult(res); + gatewayResultImdg.update(gatewayResult); + log.info("Updated gatewayResult: {} in map", LogFormatter.toString(gatewayResult)); + } + public boolean canProcess(String type) { return supportedTypes.contains(type); } diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/TkrService.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/TkrService.java index 56cb53eda..2aad05490 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/TkrService.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/TkrService.java @@ -23,6 +23,9 @@ public class TkrService { } public void processedTkrRequest(TkrRequest tkrRequest) { + if (tkrRequest.getErrors() != null && !tkrRequest.getErrors().isEmpty()) { + return; + } List tkrAccountsForCheck = tkrRequest.getInfoAccount() .stream().filter(infoAccount -> TypeOperations.CHECK.equalsByKey(infoAccount.getTypeOperationClient())) .map(tkrAdapter::toTkrResponse) diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/builders/GatewayResultBuilder.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/builders/GatewayResultBuilder.java index 4f7a77464..fc48dd78a 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/builders/GatewayResultBuilder.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/builders/GatewayResultBuilder.java @@ -1,5 +1,6 @@ package ru.spcex.clearing.gatewayapi.service.builders; +import java.time.Instant; import ru.clearing.classes.statics.data.register.GatewayResult; import ru.spcex.clearing.gatewayapi.controller.outbound.request.OutboundRequest; import ru.spcex.clearing.gatewayapi.enums.OutboundRequestType; @@ -7,9 +8,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.clearing.AssetOperationRe import ru.spcex.clearing.platform.messaging.serialization.LogFormatter; import ru.spcex.platform.enumeration.InOutDirection; import ru.spcex.platform.enumeration.Section; - -import java.time.Instant; - import static ru.spcex.platform.utils.enumeration.IEnumKey.getEnumByKey; public class GatewayResultBuilder { @@ -39,6 +37,8 @@ public class GatewayResultBuilder { this.nameRequest = getNameReqByAsset(section, direction); else if (OutboundRequestType.FILL_LIMITS.equalsByKey(outboundRequest.getType())) this.nameRequest = getNameReqByLim(section); + else if (OutboundRequestType.MEMBER_RESPONSE_TKR.equalsByKey(outboundRequest.getType())) + this.nameRequest = "Выгрузка ТКР"; return this; } @@ -49,6 +49,9 @@ public class GatewayResultBuilder { outboundRequest.setUpdated(now); outboundRequest.setRequestId(requestId); outboundRequest.setNameRequest(nameRequest); + if (request.length() > 1000){ + request = request.substring(0, 1000); + } outboundRequest.setRequest(request); return outboundRequest; } diff --git a/clearing-parent/imdg-hist/pom.xml b/clearing-parent/imdg-hist/pom.xml index 8b2482d60..ba705f0b2 100644 --- a/clearing-parent/imdg-hist/pom.xml +++ b/clearing-parent/imdg-hist/pom.xml @@ -5,12 +5,12 @@ 4.0.0 imdg-hist jar - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 @@ -36,13 +36,13 @@ ru.spcex.clearing classes - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile ru.spcex.clearing dictionary - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile @@ -82,7 +82,7 @@ ru.spcex.clearing cleaning-builders - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/imdg/pom.xml b/clearing-parent/imdg/pom.xml index c4dd1fd87..b80c1df9a 100644 --- a/clearing-parent/imdg/pom.xml +++ b/clearing-parent/imdg/pom.xml @@ -7,12 +7,12 @@ imdg Clearing in memory data grid jar - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 @@ -32,13 +32,13 @@ ru.spcex.clearing classes - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile ru.spcex.clearing dictionary - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile @@ -89,7 +89,7 @@ ru.spcex.clearing cleaning-builders - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/lim-exporter/pom.xml b/clearing-parent/lim-exporter/pom.xml index 8ac959990..482693941 100644 --- a/clearing-parent/lim-exporter/pom.xml +++ b/clearing-parent/lim-exporter/pom.xml @@ -3,13 +3,13 @@ 4.0.0 lim-exporter Lim exporter - SPCEX-3.12.0.0 + SPCEX-3.12.2 jar ru.spcex.clearing clearing-parent - SPCEX-3.12.0.0 + SPCEX-3.12.2 @@ -35,7 +35,7 @@ ru.spcex.clearing classes - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/pom.xml b/clearing-parent/pom.xml index e1950d101..edbdd62da 100644 --- a/clearing-parent/pom.xml +++ b/clearing-parent/pom.xml @@ -7,12 +7,12 @@ _parent_clearing Clearing parent module pom - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 diff --git a/clearing-parent/registry-service/pom.xml b/clearing-parent/registry-service/pom.xml index fac1ee152..7dc5a0e01 100644 --- a/clearing-parent/registry-service/pom.xml +++ b/clearing-parent/registry-service/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 diff --git a/clearing-parent/reports-service/pom.xml b/clearing-parent/reports-service/pom.xml index c67e07b28..a79cbfba0 100644 --- a/clearing-parent/reports-service/pom.xml +++ b/clearing-parent/reports-service/pom.xml @@ -8,12 +8,12 @@ reports-service reports-service Service for creating reports - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepCashNettoReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepCashNettoReport.java index 5feee9809..05981229a 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepCashNettoReport.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/bean/KSRepCashNettoReport.java @@ -63,6 +63,19 @@ public class KSRepCashNettoReport { @CsvDate(value = "dd.MM.yyyy") private LocalDate trExecDate; + + public KSRepCashNettoReport cloneWithoutValues() { + KSRepCashNettoReport result = new KSRepCashNettoReport(); + result.setFirmId(firmId); + result.setSessionId(sessionId); + result.setSessionDate(sessionDate); + result.setAccount(account); + result.setTkr(tkr); + result.setDate(date); + result.setLotCurrency(lotCurrency); + return result; + } + public String getFirmId() { return firmId; } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepCashNettoReportBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepCashNettoReportBuilder.java index b76ee09ed..8f6e33288 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepCashNettoReportBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/builders/ks/KSRepCashNettoReportBuilder.java @@ -26,6 +26,7 @@ import ru.spcex.platform.enumeration.RegistryDesignation; import ru.spcex.platform.enumeration.RegistryTradingParams; import ru.spcex.platform.enumeration.ReportBuilderType; import ru.spcex.platform.enumeration.ReportKeys; +import ru.spcex.platform.enumeration.Section; import ru.spcex.platform.enumeration.SessionType; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -125,8 +126,6 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder sessionTypeForValue = Set.of( SessionType.IPOT, SessionType.TRDT, @@ -215,44 +215,59 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder registries = new ArrayList<>(); + List accounts = new ArrayList<>(); + try (CSVReader csvReader = new CSVReaderBuilder( + new FileReader( + getClass().getClassLoader().getResource("expected_reports_csv/ks/ksRepCashNetto_registries.csv").getFile() + ) + ).withSkipLines(1) + .withCSVParser(parser) + .build()) { + do { + String[] row = csvReader.readNext(); + if (row == null) break; + Registry registry = new Registry(); + registry.setSessionId(sessionId); + registry.setClearingDate(LocalDate.now()); + registry.setTradingCode(row[1]); + registry.setTradingClearingRegistry(row[14]); + registry.setRegistryDesignation(row[8]); + registry.setRegistryInstrumentType(row[9]); + registry.setRegistryCapacity(row[10]); + registry.setRegistryUnit(row[11]); + registry.setRegistryCode(row[12]); + registry.setAccountType(row[6]); + registry.setAccount(row[7]); + if (row[6].equalsIgnoreCase(AccountType.Info.getKey())) { + Account account = new Account(); + account.setCompanyId(1L); + account.setAccountType(AccountType.Anlt.getKey()); + account.setAccount(row[7]); + accountImdg.insert(account); + accounts.add(account); + } + registry.setSessionType(row[42]); + registry.setSection(row[47]); + registry.setBalance(new BigDecimal(row[18].replace(',', '.'))); + registry.setSecuritySymbol(row[17]); + registryImdg.insert(registry); + registries.add(registry); + } while (true); + } + + String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L); + + TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(), + Consts.CREATE_REPORT_FOR_SESSION_ID, + reportRequestWithSessionIdCnt++, + 0, + jsonString); + + TestUtils.waitingSendAndCheckRecord(0L, producer); + + File outFile = outFolder.listFiles()[0]; + File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/ks/KS_REP_CASH_NETTO_extended_expected.csv").getFile()); + compareCSVFiles(expectedFile, outFile, Arrays.asList("SESSION_ID", "DATE", "ACCOUNT", "SESSION_DATE", "TR_EXECDATE")); + + for (Registry registry : registries) registryImdg.delete(registry); + for (Account account : accounts) accountImdg.delete(account); + sessionImdg.delete(session); + } + private void compareCSVFiles(File expectedFile, File actualFile, List columnsForSkip) throws IOException, CsvValidationException { if (columnsForSkip == null) columnsForSkip = Collections.emptyList(); @@ -1204,7 +1320,14 @@ public class ReportServiceTest_KS { String expected = expectedLine[expectedIdx]; String actual = actualLine[actualIdx]; lineEqual = expected.equals(actual); - if (!lineEqual) break; + if (!lineEqual) { + if (bigDecimalPattern.matcher(expected).find() && bigDecimalPattern.matcher(actual).find()) { + BigDecimal actualBD = new BigDecimal(actual.replace(',', '.')); + BigDecimal expectedBD = new BigDecimal(expected.replace(',', '.')); + lineEqual = Math.abs(actualBD.subtract(expectedBD).compareTo(bigDecimalZero)) <= 0; + } + if (!lineEqual) break; + } } if (lineEqual) { findEqual = true; diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv index ba386487c..f671ff6a5 100644 --- a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_expected.csv @@ -1,3 +1,3 @@ "FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","TKR","VALUE","DATE","OBL_VALUE","REQ_VALUE","LOT_CURRENCY","CURRENCY_NETTO","TR_EXECDATE" -"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","TKR","22.22","03.06.2024",,,,, -"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT_FROM_ACCOUNT","TKR",,"03.06.2024","22.22","44.44",,, +"TRADING_CODE","146","20.01.1970T02:49:58","ACCOUNT","TKR","22.22","26.06.2024",,,,, +"TRADING_CODE","146","20.01.1970T02:49:58","ACCOUNT_FROM_ACCOUNT","TKR",,"26.06.2024","22.22","44.44",,, diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_extended_expected.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_extended_expected.csv new file mode 100644 index 000000000..ca75c8e60 --- /dev/null +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/KS_REP_CASH_NETTO_extended_expected.csv @@ -0,0 +1,16 @@ +"FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","TKR","VALUE","DATE","OBL_VALUE","REQ_VALUE","LOT_CURRENCY","CURRENCY_NETTO","TR_EXECDATE" +"95","2","20.01.1970T02:49:58","30411810300000002049","0095CAT00001",,"27.06.2024",,,"UZS","-10000","27.06.2024" +"8","2","20.01.1970T02:49:58","3,04118607E+019","0008MAT00001",,"27.06.2024",,,"UZS","10000","27.06.2024" +"8","2","20.01.1970T02:49:58","3,041181E+019","0008CAT00001","9743.90","27.06.2024",,,"RUB",, +"8","2","20.01.1970T02:49:58","3,041181E+019","0008CAT00001",,"27.06.2024","0.00","7000000000.00","RUB",, +"8","2","20.01.1970T02:49:58","3,04118102E+019","0008MAT00001",,"27.06.2024",,,"RUB","-69.75","27.06.2024" +"472","2","20.01.1970T02:49:58","3,04118605E+019","0472CAT00001",,"27.06.2024",,,"UZS","-10000000","27.06.2024" +"302","2","20.01.1970T02:49:58","3,04118107E+019","0302MAT00001",,"27.06.2024","10000000000.00","0.00","RUB",, +"472","2","20.01.1970T02:49:58","3,04111569E+019","0472CAT00001",,"27.06.2024",,,"CNY","10","27.06.2024" +"472","2","20.01.1970T02:49:58","3,0411810101E+019","0472CAT00001","-9743.90","27.06.2024",,,"RUB",, +"472","2","20.01.1970T02:49:58","3,0411810101E+019","0472CAT00001",,"27.06.2024",,,"RUB","69627.92","27.06.2024" +"45","2","20.01.1970T02:49:58","3,04118103E+019","0045CAT00001",,"27.06.2024","0.00","3000000000.00","RUB",, +"234","2","20.01.1970T02:49:58","3,99118100000003E+019","0234CAT00001",,"27.06.2024",,,"RUB","-69627.92","27.06.2024" +"234","2","20.01.1970T02:49:58","3,99118100000003E+019","0234CAT00001",,"27.06.2024",,,"UZS","10000000","27.06.2024" +"95","2","20.01.1970T02:49:58","30411810300000002094","0095CAT00001",,"27.06.2024",,,"RUB","69.75","27.06.2024" +"234","2","20.01.1970T02:49:58","3,99118100000003E+019","0234CAT00001",,"27.06.2024",,,"CNY","-10","27.06.2024" diff --git a/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/ksRepCashNetto_registries.csv b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/ksRepCashNetto_registries.csv new file mode 100644 index 000000000..ee191b2e6 --- /dev/null +++ b/clearing-parent/reports-service/src/test/resources/expected_reports_csv/ks/ksRepCashNetto_registries.csv @@ -0,0 +1,19 @@ +company_id;trading_code;clearing_code;short_name;full_name;account_id;account_type;account;registry_designation;registry_instrument_type;registry_capacity;registry_unit;registry_code;trading_clearing_registry_id;trading_clearing_registry;registry_status;security_id;security_symbol;balance;open_balance;close_balance;credit;debit;settled_credit;settled_debit;check_balance;diff_balance;plan_balance;balance_dimension;settlement_date;settlement_code;trading_date;clearing_date;refund_date;value_date;price;contract;counter_party_id;comment;parent_id;group_id;session_id;session_type;payment_id;id;created_at;updated_at;section +4500120;95;95;Банк ВТБ (ПАО);Банк ВТБ (публичное акционерное общество);4410078;CLRN;30411810300000002094;C;M;A;T;CMAT;21240012;0095CAT00001;CLRD;643;RUB;69,75;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;80162;(null);(null);507;47580029;UNIT;(null);47580094;24.06.2024 14:16;24.06.2024 15:19;CURR +80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;38690096;CLRN;3,04118607E+019;C;M;A;T;CMAT;130040;0008MAT00001;CLRD;860;UZS;10000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;4500120;(null);(null);507;47580029;UNIT;(null);47580076;24.06.2024 14:16;24.06.2024 15:19;CURR +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;38690028;CLRN;3,04111569E+019;C;M;A;T;CMAT;1860016;0472CAT00001;CLRD;156;CNY;10;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;4500072;(null);(null);508;47580029;UNIT;(null);47580074;24.06.2024 14:16;24.06.2024 15:19;CURR +80136;45;45;АО "АБ "РОССИЯ";Акционерное общество «Акционерный Банк «РОССИЯ»;130023;CLRN;3,04118103E+019;C;M;A;T;CMAT;1860025;0045CAT00001;CLRD;643;RUB;3000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;17,12;DT1000S001U/240624/45/24062400000001;80074;(null);(null);24062400000001;47580029;UNIT;(null);47580072;24.06.2024 14:16;24.06.2024 15:19;MKR +4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";47130002;INFO;3,99118600000001E+019;C;M;A;T;CMAT;47130004;0234CAT00001;CLRD;860;UZS;10000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;80022;(null);(null);1518298;47580029;UNIT;(null);47580093;24.06.2024 14:16;24.06.2024 15:19;CURR +80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130013;CLRN;3,041181E+019;C;M;A;T;CMAT;1930000;0008CAT00001;CLRD;643;RUB;7000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;16,88;DT1000S001U/240624/8/24062400000002;80074;(null);(null);24062400000002;47580029;UNIT;(null);47580079;24.06.2024 14:16;24.06.2024 15:19;MKR +4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";4410023;INFO;3,99118100000003E+019;C;M;A;T;CMAT;47130004;0234CAT00001;CLRD;643;RUB;129,58;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;80022;(null);(null);508;47580029;UNIT;(null);47580073;24.06.2024 14:16;24.06.2024 15:19;CURR +80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130013;CLRN;3,041181E+019;C;M;A;T;CMAT;1930000;0008CAT00001;CLRD;643;RUB;9743,9;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;97;(null);80022;(null);(null);1461034;47580029;UNIT;(null);47580085;24.06.2024 14:16;24.06.2024 15:19;FOND +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;C;M;A;T;CMAT;1860016;0472CAT00001;CLRD;643;RUB;69757,5;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;4500072;(null);(null);1518298;47580029;UNIT;(null);47580090;24.06.2024 14:16;24.06.2024 15:19;CURR +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;38690032;CLRN;3,04118605E+019;L;M;A;T;LMAT;1860016;0472CAT00001;CLRD;860;UZS;10000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;4500072;(null);(null);1518298;47580029;UNIT;(null);47580075;24.06.2024 14:16;24.06.2024 15:19;CURR +4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";47130000;INFO;3,99111560000002E+019;L;M;A;T;LMAT;47130004;0234CAT00001;CLRD;156;CNY;10;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;80022;(null);(null);508;47580029;UNIT;(null);47580087;24.06.2024 14:16;24.06.2024 15:19;CURR +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;L;M;A;T;LMAT;1860016;0472CAT00001;CLRD;643;RUB;129,58;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;12,9575;38840004;4500072;(null);(null);508;47580029;UNIT;(null);47580083;24.06.2024 14:16;24.06.2024 15:19;CURR +80022;472;472;ПАО "Промсвязьбанк";Публичное акционерное общество «Промсвязьбанк» ;130005;CLRN;3,0411810101E+019;L;M;A;T;LMAT;1860016;0472CAT00001;CLRD;643;RUB;9743,9;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;97;(null);80162;(null);(null);1461034;47580029;UNIT;(null);47580095;24.06.2024 14:16;24.06.2024 15:19;FOND +80074;302;302;Комитет финансов СПб;Комитет финансов Санкт-Петербурга;130019;CLRN;3,04118107E+019;L;M;A;T;LMAT;130034;0302MAT00001;CLRD;643;RUB;7000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;16,88;DT1000S001U/240624/8/24062400000002;80162;(null);(null);24062400000002;47580029;UNIT;(null);47580089;24.06.2024 14:16;24.06.2024 15:19;MKR +4500072;234;234;Банк "ВБРР" (АО);Акционерное общество "Всероссийский банк развития регионов";4410023;INFO;3,99118100000003E+019;L;M;A;T;LMAT;47130004;0234CAT00001;CLRD;643;RUB;69757,5;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7575;38840005;80022;(null);(null);1518298;47580029;UNIT;(null);47580078;24.06.2024 14:16;24.06.2024 15:19;CURR +80074;302;302;Комитет финансов СПб;Комитет финансов Санкт-Петербурга;130019;CLRN;3,04118107E+019;L;M;A;T;LMAT;130034;0302MAT00001;CLRD;643;RUB;3000000000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;25.06.2024;24.06.2024;17,12;DT1000S001U/240624/45/24062400000001;80136;(null);(null);24062400000001;47580029;UNIT;(null);47580086;24.06.2024 14:16;24.06.2024 15:19;MKR +80162;8;8;ПАО Сбербанк;Публичное акционерное общество «Сбербанк России»;130017;CLRN;3,04118102E+019;L;M;A;T;LMAT;130040;0008MAT00001;CLRD;643;RUB;69,75;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;4500120;(null);(null);507;47580029;UNIT;(null);47580084;24.06.2024 14:16;24.06.2024 15:19;CURR +4500120;95;95;Банк ВТБ (ПАО);Банк ВТБ (публичное акционерное общество);38690016;CLRN;30411810300000002049;L;M;A;T;LMAT;21240012;0095CAT00001;CLRD;860;UZS;10000;(null);(null);0;0;0;0;0;0;0;MONY;24.06.2024;T0;24.06.2024;24.06.2024;(null);24.06.2024;69,7515;38840009;80162;(null);(null);507;47580029;UNIT;(null);47580088;24.06.2024 14:16;24.06.2024 15:19;CURR diff --git a/clearing-parent/scheduler-service/pom.xml b/clearing-parent/scheduler-service/pom.xml index a124316d1..e6fb3147d 100644 --- a/clearing-parent/scheduler-service/pom.xml +++ b/clearing-parent/scheduler-service/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 @@ -51,7 +51,7 @@ ru.spcex.clearing cleaning-builders - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/securities-service/pom.xml b/clearing-parent/securities-service/pom.xml index 5435328f6..6ef96b96e 100644 --- a/clearing-parent/securities-service/pom.xml +++ b/clearing-parent/securities-service/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 diff --git a/clearing-parent/security-util/pom.xml b/clearing-parent/security-util/pom.xml index 0b8b93141..f4342880d 100644 --- a/clearing-parent/security-util/pom.xml +++ b/clearing-parent/security-util/pom.xml @@ -8,12 +8,12 @@ security-util clearing Clearing misc util for verify user roles jar - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 @@ -35,13 +35,13 @@ ru.spcex.clearing classes - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile ru.spcex.clearing dictionary - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/swt-exporter/pom.xml b/clearing-parent/swt-exporter/pom.xml index 4e80b149d..cc2027993 100644 --- a/clearing-parent/swt-exporter/pom.xml +++ b/clearing-parent/swt-exporter/pom.xml @@ -3,13 +3,13 @@ 4.0.0 swt-exporter Swt exporter - SPCEX-3.12.0.0 + SPCEX-3.12.2 jar ru.spcex.clearing clearing-parent - SPCEX-3.12.0.0 + SPCEX-3.12.2 @@ -35,7 +35,7 @@ ru.spcex.clearing classes - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/swt-importer/pom.xml b/clearing-parent/swt-importer/pom.xml index 6af92ad22..f2cba6c8b 100644 --- a/clearing-parent/swt-importer/pom.xml +++ b/clearing-parent/swt-importer/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 diff --git a/clearing-parent/test-clearing/pom.xml b/clearing-parent/test-clearing/pom.xml index 373e7a210..ae40c9a6c 100644 --- a/clearing-parent/test-clearing/pom.xml +++ b/clearing-parent/test-clearing/pom.xml @@ -4,11 +4,11 @@ ru.spcex.clearing clearing-parent - SPCEX-3.12.0.0 + SPCEX-3.12.2 test-clearing Test-clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 ru.spcex.platform diff --git a/clearing-parent/trade-importer/pom.xml b/clearing-parent/trade-importer/pom.xml index 8a66ded02..7849da863 100644 --- a/clearing-parent/trade-importer/pom.xml +++ b/clearing-parent/trade-importer/pom.xml @@ -4,12 +4,12 @@ ru.spcex.clearing clearing-parent - SPCEX-3.12.0.0 + SPCEX-3.12.2 trade-importer trade-importer Trade importer module - SPCEX-3.12.0.0 + SPCEX-3.12.2 jar @@ -51,7 +51,7 @@ ru.spcex.clearing classes - SPCEX-3.12.0.0 + SPCEX-3.12.2 compile diff --git a/clearing-parent/utility-service/pom.xml b/clearing-parent/utility-service/pom.xml index 53afc795e..e8bdfc165 100644 --- a/clearing-parent/utility-service/pom.xml +++ b/clearing-parent/utility-service/pom.xml @@ -5,7 +5,7 @@ clearing-parent ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 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..3eb2be166 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 @@ -19,4 +19,8 @@ public enum ResultStatuses implements IEnumKey { public String getKey() { return key; } + + public static ResultStatuses successOrNot(final Boolean val){ + return val ? ResultStatuses.success : ResultStatuses.notSuccess; + } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/MoneyAccountMsgResponse.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/MoneyAccountMsgResponse.java index b00774f43..58f4f1661 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/MoneyAccountMsgResponse.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/gateway/MoneyAccountMsgResponse.java @@ -7,6 +7,8 @@ public class MoneyAccountMsgResponse { private String currCode; @JsonProperty("account") private String account; + @JsonProperty("eks_account") + private String eksAccount; @JsonProperty("is_active") private Boolean isActive; @@ -26,6 +28,14 @@ public class MoneyAccountMsgResponse { this.account = account; } + public String getEksAccount() { + return eksAccount; + } + + public void setEksAccount(String eksAccount) { + this.eksAccount = eksAccount; + } + public Boolean getActive() { return isActive; } diff --git a/platform-parent/pom.xml b/platform-parent/pom.xml index cc593c931..ae4d3423b 100644 --- a/platform-parent/pom.xml +++ b/platform-parent/pom.xml @@ -14,7 +14,7 @@ ru.spcex.clearing clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 diff --git a/pom.xml b/pom.xml index 9873e8c60..a99f160f4 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ __parent_ROOT Clearing main parent pom - SPCEX-3.12.0.0 + SPCEX-3.12.2 clearing-parent @@ -24,7 +24,7 @@ 17 Maven - SPCEX-3.12.0.0 + SPCEX-3.12.2 2.6.3 diff --git a/z-distr/pom.xml b/z-distr/pom.xml index 11862b00d..a929b2126 100644 --- a/z-distr/pom.xml +++ b/z-distr/pom.xml @@ -5,7 +5,7 @@ clearing ru.spcex.clearing - SPCEX-3.12.0.0 + SPCEX-3.12.2 4.0.0 @@ -17,6 +17,7 @@ ${project.basedir}/target/clearing ${project.basedir}/target/clearing/settings ${project.basedir}/target/clearing/bin + ${project.basedir}/target/clearing/services ${project.basedir}/target/clearing/db @@ -124,6 +125,10 @@ ${folder_root_clearing_backend-api}/target/backend-api.jar ${folder.clearing.distr.bin}/backend-api.jar + + ${folder_root_clearing_backend-api}/target/backend-api.jar + ${folder.clearing.distr.services}/backend-api/backend-api.jar + ${folder_root_clearing_backend-api}/src/main/resources/application.properties ${folder.clearing.distr.settings}/backend-api/application.properties @@ -151,6 +156,10 @@ ${folder_root_clearing_securities-service}/target/securities-service.jar ${folder.clearing.distr.bin}/securities-service.jar + + ${folder_root_clearing_securities-service}/target/securities-service.jar + ${folder.clearing.distr.services}/securities-service/securities-service.jar + ${folder_root_clearing_securities-service}/src/main/resources/application.properties ${folder.clearing.distr.settings}/securities-service/application.properties @@ -170,6 +179,10 @@ ${folder_root_clearing_imdg}/target/imdg-exec.jar ${folder.clearing.distr.bin}/imdg.jar + + ${folder_root_clearing_imdg}/target/imdg-exec.jar + ${folder.clearing.distr.services}/imdg/imdg.jar + ${folder_root_clearing_imdg}/src/main/resources/application.properties ${folder.clearing.distr.settings}/imdg/application.properties @@ -190,6 +203,10 @@ ${folder_root_clearing_imdg_hist}/target/imdg-hist.jar ${folder.clearing.distr.bin}/imdg-hist.jar + + ${folder_root_clearing_imdg_hist}/target/imdg-hist.jar + ${folder.clearing.distr.services}/imdg-hist/imdg-hist.jar + ${folder_root_clearing_imdg_hist}/src/main/resources/application.properties ${folder.clearing.distr.settings}/imdg-hist/application.properties @@ -210,6 +227,10 @@ ${folder_root_dbf-exporter}/target/dbf-exporter.jar ${folder.clearing.distr.bin}/dbf-exporter.jar + + ${folder_root_dbf-exporter}/target/dbf-exporter.jar + ${folder.clearing.distr.services}/dbf-exporter/dbf-exporter.jar + ${folder_root_dbf-exporter}/src/main/resources/application.properties ${folder.clearing.distr.settings}/dbf-exporter/application.properties @@ -229,6 +250,10 @@ ${folder_root_dbf-importer}/target/dbf-importer.jar ${folder.clearing.distr.bin}/dbf-importer.jar + + ${folder_root_dbf-importer}/target/dbf-importer.jar + ${folder.clearing.distr.services}/dbf-importer/dbf-importer.jar + ${folder_root_dbf-importer}/src/main/resources/application.properties ${folder.clearing.distr.settings}/dbf-importer/application.properties @@ -249,6 +274,10 @@ ${folder_root_lim-exporter}/target/lim-exporter.jar ${folder.clearing.distr.bin}/lim-exporter.jar + + ${folder_root_lim-exporter}/target/lim-exporter.jar + ${folder.clearing.distr.services}/lim-exporter/lim-exporter.jar + ${folder_root_lim-exporter}/src/main/resources/application.properties ${folder.clearing.distr.settings}/lim-exporter/application.properties @@ -268,6 +297,10 @@ ${folder_root_swt-exporter}/target/swt-exporter.jar ${folder.clearing.distr.bin}/swt-exporter.jar + + ${folder_root_swt-exporter}/target/swt-exporter.jar + ${folder.clearing.distr.services}/swt-exporter/swt-exporter.jar + ${folder_root_swt-exporter}/src/main/resources/application.properties ${folder.clearing.distr.settings}/swt-exporter/application.properties @@ -287,6 +320,10 @@ ${folder_root_swt-importer}/target/swt-importer.jar ${folder.clearing.distr.bin}/swt-importer.jar + + ${folder_root_swt-importer}/target/swt-importer.jar + ${folder.clearing.distr.services}/swt-importer/swt-importer.jar + ${folder_root_swt-importer}/src/main/resources/application.properties ${folder.clearing.distr.settings}/swt-importer/application.properties @@ -306,6 +343,10 @@ ${folder_root_trade-importer}/target/trade-importer.jar ${folder.clearing.distr.bin}/trade-importer.jar + + ${folder_root_trade-importer}/target/trade-importer.jar + ${folder.clearing.distr.services}/trade-importer/trade-importer.jar + ${folder_root_trade-importer}/src/main/resources/application.properties ${folder.clearing.distr.settings}/trade-importer/application.properties @@ -325,6 +366,10 @@ ${folder_root_extdb-importer}/target/extdb-importer.jar ${folder.clearing.distr.bin}/extdb-importer.jar + + ${folder_root_extdb-importer}/target/extdb-importer.jar + ${folder.clearing.distr.services}/extdb-importer/extdb-importer.jar + ${folder_root_extdb-importer}/src/main/resources/application.properties ${folder.clearing.distr.settings}/extdb-importer/application.properties @@ -344,6 +389,10 @@ ${folder_root_account-service}/target/account-service.jar ${folder.clearing.distr.bin}/account-service.jar + + ${folder_root_account-service}/target/account-service.jar + ${folder.clearing.distr.services}/account-service/account-service.jar + ${folder_root_account-service}/src/main/resources/application.properties ${folder.clearing.distr.settings}/account-service/application.properties @@ -363,6 +412,10 @@ ${folder_root_company-service}/target/company-service.jar ${folder.clearing.distr.bin}/company-service.jar + + ${folder_root_company-service}/target/company-service.jar + ${folder.clearing.distr.services}/company-service/company-service.jar + ${folder_root_company-service}/src/main/resources/application.properties ${folder.clearing.distr.settings}/company-service/application.properties @@ -382,6 +435,10 @@ ${folder_root_clearing-service}/target/clearing-service.jar ${folder.clearing.distr.bin}/clearing-service.jar + + ${folder_root_clearing-service}/target/clearing-service.jar + ${folder.clearing.distr.services}/clearing-service/clearing-service.jar + ${folder_root_clearing-service}/src/main/resources/application.properties ${folder.clearing.distr.settings}/clearing-service/application.properties @@ -401,6 +458,10 @@ ${folder_root_scheduler-service}/target/scheduler-service.jar ${folder.clearing.distr.bin}/scheduler-service.jar + + ${folder_root_scheduler-service}/target/scheduler-service.jar + ${folder.clearing.distr.services}/scheduler-service/scheduler-service.jar + ${folder_root_scheduler-service}/src/main/resources/application.properties ${folder.clearing.distr.settings}/scheduler-service/application.properties @@ -420,6 +481,10 @@ ${folder_root_reports-service}/target/reports-service.jar ${folder.clearing.distr.bin}/reports-service.jar + + ${folder_root_reports-service}/target/reports-service.jar + ${folder.clearing.distr.services}/reports-service/reports-service.jar + ${folder_root_reports-service}/src/main/resources/application.properties ${folder.clearing.distr.settings}/reports-service/application.properties @@ -439,6 +504,10 @@ ${folder_root_registry-service}/target/registry-service.jar ${folder.clearing.distr.bin}/registry-service.jar + + ${folder_root_registry-service}/target/registry-service.jar + ${folder.clearing.distr.services}/registry-service/registry-service.jar + ${folder_root_registry-service}/src/main/resources/application.properties ${folder.clearing.distr.settings}/registry-service/application.properties @@ -458,6 +527,10 @@ ${folder_root_utility-service}/target/utility-service.jar ${folder.clearing.distr.bin}/utility-service.jar + + ${folder_root_utility-service}/target/utility-service.jar + ${folder.clearing.distr.services}/utility-service/utility-service.jar + ${folder_root_utility-service}/src/main/resources/application.properties ${folder.clearing.distr.settings}/utility-service/application.properties @@ -480,6 +553,10 @@ ${folder.clearing.distr.bin}/gateway-api.jar + + ${folder_root_gateway-api}/target/gateway-api.jar + ${folder.clearing.distr.services}/gateway-api/gateway-api.jar + ${folder_root_gateway-api}/src/main/resources/application.properties