From 81456f3d2eddb8a2391823efefe6bb65cae2d10d Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 27 Sep 2023 11:06:52 +0300 Subject: [PATCH 1/8] =?UTF-8?q?dbf-exporter=20=D0=BE=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D1=8F=D1=82=D1=8C=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20(?= =?UTF-8?q?=D0=B2=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B5=20export-dbf-service.st?= =?UTF-8?q?ore.local-temp-dir)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dbf/exporter/logic/stages/Journal.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/Journal.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/Journal.java index 302c2400c..f841d67d8 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/Journal.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/Journal.java @@ -53,12 +53,14 @@ public class Journal extends Stage implements InitializingBean { //удалим временный файл File dbfFile = resultContainer.getFileForExport(); - try { - log.debug("Uuid {}, delete tem file \"{}\"", resultContainer.getUuid(), dbfFile); - Files.deleteIfExists(dbfFile.toPath()); - } catch (IOException e) { - throw new RuntimeException(e); - } +// try { +// log.debug("Uuid {}, delete temp file \"{}\"", resultContainer.getUuid(), dbfFile); +// Files.deleteIfExists(dbfFile.toPath()); +// } catch (IOException e) { +// throw new RuntimeException(e); +// } + // Надо сохранять для разбора истории и отладки по логам + log.debug("Uuid {}, save temp file \"{}\"", resultContainer.getUuid(), dbfFile); return StageResult.COMPLETE; } From 60cff01fe20d09e25f7ea913aaa4ac0807f977e2 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 27 Sep 2023 13:14:05 +0300 Subject: [PATCH 2/8] backend-api utility-service http://jira.mfd.msk:8088/browse/CLS-550 --- .../cud/registry/NotificationUpdateAction.java | 12 ++++++++++++ .../backend-api/src/main/resources/meta/meta.json | 14 ++++++++++---- .../backend-api/src/main/resources/meta/meta.xml | 11 ++++++----- .../backend-api/src/test/resources/meta.json | 14 ++++++++++---- .../utility/service/NotificationService.java | 1 + .../cud/utilities/NotificationUpdateRequest.java | 11 +++++++++++ 6 files changed, 50 insertions(+), 13 deletions(-) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java index daaf6b126..824f095c2 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java @@ -13,12 +13,16 @@ public class NotificationUpdateAction implements IAction - + @@ -1610,18 +1610,19 @@ - - + + - + - + + diff --git a/clearing-parent/backend-api/src/test/resources/meta.json b/clearing-parent/backend-api/src/test/resources/meta.json index 2df744b57..d6d7ba3c1 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.8.0.55", + "version": "3.8.0.56", "enums": { @@ -6961,11 +6961,11 @@ } , {"code": "updatedAt", - "field": "updated","type": 4,"webtype": "5","dbname": "Дата-время изменения записи","name": "Время прочтения записи","shortname": "Прочитано","searchable": true,"sortable": true + "field": "updated","type": 4,"webtype": "5","dbname": "Дата-время изменения записи","name": "Время изменения записи","shortname": "Изменено","searchable": true,"sortable": true } , {"code": "senderId", - "type": 1,"dbname": "Идентификатор компании-отправителя","name": "Наименование компании-отправителя","shortname": "Отправитель","searchable": true,"sortable": true,"link": "company","ignore": true + "type": 1,"dbname": "Идентификатор отправителя","name": "Наименование отправителя","shortname": "Отправитель","searchable": true,"sortable": true,"visible": true,"link": "userCls","linkCode": "identifier" } , {"code": "addresseeId", @@ -6981,7 +6981,7 @@ } , {"code": "notificationStatus", - "type": 12,"dbname": "Код статуса сообщения","name": "Наименование статуса сообщения","shortname": "Статус","searchable": true,"sortable": true,"visible": true,"link": "notificationStatus","ignore": true + "type": 12,"dbname": "Код статуса сообщения","name": "Наименование статуса сообщения","shortname": "Статус","searchable": true,"sortable": true,"visible": true,"link": "notificationStatus" } , {"code": "comment", @@ -6997,6 +6997,8 @@ "name": "Изменение статуса сообщения", + "class": "ru.spcex.clearing.backendapi.controller.request.cud.registry.NotificationUpdateAction", + "fields": [ {"code": "id", "type": 1,"name": "Идентификатор записи","shortname": "ID","link": "notification","linkCode": "id","required": true @@ -7005,6 +7007,10 @@ {"code": "notificationStatus", "type": 12,"name": "Наименование статуса сообщения","shortname": "Статус","link": "notificationStatus","required": true } + , + {"code": "senderId", + "type": 1,"name": "Наименование отправителя","shortname": "Отправитель","visible": false,"required": true + } ] } ] diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java index 9585acf82..d8adb6d2c 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java @@ -68,6 +68,7 @@ public class NotificationService extends QueueConsumer implements InitializingBe throw new NullPointerException("Notification by id:{" + id + "} is null!"); } notification.setNotificationStatus(request.getNotificationStatus()); + notification.setSenderId(request.getSenderId()); notification.setUpdated(Instant.now()); notificationMap.update(notification); sendFeedbackString(notification); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/NotificationUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/NotificationUpdateRequest.java index 3a14578d3..b2f0a1fd2 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/NotificationUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/NotificationUpdateRequest.java @@ -9,6 +9,9 @@ public class NotificationUpdateRequest { @JsonProperty public String notificationStatus; + @JsonProperty + public Long senderId; + public Long getId() { return id; } @@ -24,4 +27,12 @@ public class NotificationUpdateRequest { public void setNotificationStatus(String notificationStatus) { this.notificationStatus = notificationStatus; } + + public Long getSenderId() { + return senderId; + } + + public void setSenderId(Long senderId) { + this.senderId = senderId; + } } From 1c9de78f5e09f50a6509272d21b2eb80c6f5de76 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 27 Sep 2023 15:13:22 +0300 Subject: [PATCH 3/8] =?UTF-8?q?=20http://jira.mfd.msk:8088/browse/CLS-500?= =?UTF-8?q?=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=205426?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clearing-parent/backend-api/src/main/resources/meta/data.xml | 2 +- .../src/main/java/ru/spcex/clearing/error/ClearingError.java | 1 + .../clearing/service/validation/RefundDateValidationRule.java | 2 +- clearing-parent/db-scripts/src/main/resources/db/DATA.sql | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) 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 19a11c86b..34cbeb614 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -466,7 +466,7 @@ - + diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java index b3ca256ca..77f155ee0 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java @@ -28,6 +28,7 @@ public enum ClearingError implements IErrorEnumId { NewDealsNotFound(5423L), IdentifiedFundsExceedObligations(5424L), ObligationsAlreadyCalculated(5425L), + RefundDtLessThatValueDt(5426L), ActiveSessionIsPresent(5428L), AccountIsNotMatchedWithCompany(5429L), RgsWrongCode(5430L), diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java index 97035600f..0e52d3834 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java @@ -60,7 +60,7 @@ public enum RefundDateValidationRule implements IValidationRule Date: Wed, 27 Sep 2023 18:39:35 +0300 Subject: [PATCH 4/8] DM*V creation for MEDM session --- .../ru/spcex/clearing/session/stage/IntermediateMkrSession.java | 1 + .../session/stage/impl/FormingPaymentInstructionAssets.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java index 269d0553c..2aad817aa 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java @@ -105,6 +105,7 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ inspectionObligations.setSessionType(sessionType()); inspectionObligations.setSection(section()); formingPaymentInstructionDeals.setSection(section()); + formingPaymentInstructionDeals.setSessionType(sessionType()); imdgProvider.waitAvailable(); initSessionIfPresent(); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java index df3838a63..3d755ab78 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionAssets.java @@ -130,7 +130,7 @@ public class FormingPaymentInstructionAssets implements ISessionStage { private StageResult formingPaymentInstructions(FormingPaymentInstructionPayload payload) { Long sessionId = payload.getSessionId(); - if (SessionType.FINL.equals(sessionType)) { + if (SessionType.FINL.equals(sessionType) || SessionType.MEDM.equals(sessionType)) { dmvSrv.createDmv(sessionId); } Collection AMBregistries = selectAMBRegistries(sessionId); From 495155989134ccbfafebced38d075d49586ce19a Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 28 Sep 2023 10:28:09 +0300 Subject: [PATCH 5/8] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-550=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=B4=D0=BE=D0=B2=D0=B5=D1=80=D1=8F=D1=82=D1=8C?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D1=8E=20=D1=83=D0=BA=D0=B0=D0=B7=D1=8B=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D1=81=D0=B2=D0=BE=D0=B9=20userId,=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=B0=20=D0=B1=D1=8D=D0=BA=D0=B5=D0=BD=D0=B4?= =?UTF-8?q?=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cud/registry/NotificationUpdateAction.java | 11 ----------- .../backend-api/src/main/resources/meta/meta.json | 6 +----- .../backend-api/src/main/resources/meta/meta.xml | 3 +-- .../backend-api/src/test/resources/meta.json | 6 +----- .../clearing/utility/service/NotificationService.java | 2 +- .../cud/utilities/NotificationUpdateRequest.java | 11 ----------- 6 files changed, 4 insertions(+), 35 deletions(-) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java index 824f095c2..9c82a128b 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java @@ -13,16 +13,12 @@ public class NotificationUpdateAction implements IAction - + @@ -1622,7 +1622,6 @@ - diff --git a/clearing-parent/backend-api/src/test/resources/meta.json b/clearing-parent/backend-api/src/test/resources/meta.json index d6d7ba3c1..f38db6df2 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.8.0.56", + "version": "3.8.0.57", "enums": { @@ -7007,10 +7007,6 @@ {"code": "notificationStatus", "type": 12,"name": "Наименование статуса сообщения","shortname": "Статус","link": "notificationStatus","required": true } - , - {"code": "senderId", - "type": 1,"name": "Наименование отправителя","shortname": "Отправитель","visible": false,"required": true - } ] } ] diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java index d8adb6d2c..ffce5e90c 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java @@ -68,7 +68,7 @@ public class NotificationService extends QueueConsumer implements InitializingBe throw new NullPointerException("Notification by id:{" + id + "} is null!"); } notification.setNotificationStatus(request.getNotificationStatus()); - notification.setSenderId(request.getSenderId()); + notification.setSenderId(notificationUpdateRequestBaseRequest.getUserId()); notification.setUpdated(Instant.now()); notificationMap.update(notification); sendFeedbackString(notification); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/NotificationUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/NotificationUpdateRequest.java index b2f0a1fd2..3a14578d3 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/NotificationUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/NotificationUpdateRequest.java @@ -9,9 +9,6 @@ public class NotificationUpdateRequest { @JsonProperty public String notificationStatus; - @JsonProperty - public Long senderId; - public Long getId() { return id; } @@ -27,12 +24,4 @@ public class NotificationUpdateRequest { public void setNotificationStatus(String notificationStatus) { this.notificationStatus = notificationStatus; } - - public Long getSenderId() { - return senderId; - } - - public void setSenderId(Long senderId) { - this.senderId = senderId; - } } From 83ff343c921dc3138cd6930d7313a5ae7c6400e6 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 28 Sep 2023 10:28:09 +0300 Subject: [PATCH 6/8] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-550=20?= =?UTF-8?q?=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B8=D0=BB=20=D0=BB=D0=BE=D0=B3?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/spcex/clearing/utility/service/NotificationService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java index ffce5e90c..9fe152254 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/NotificationService.java @@ -62,7 +62,7 @@ public class NotificationService extends QueueConsumer implements InitializingBe private void notificationUpdateRequest(BaseRequest notificationUpdateRequestBaseRequest) { NotificationUpdateRequest request = notificationUpdateRequestBaseRequest.getRequestPayload(); Long id = request == null ? null : request.getId(); - log.info("Starting notificationUpdateRequest {} processing by id: {} ...", notificationUpdateRequestBaseRequest.getId(), id); + log.info("Starting notificationUpdateRequest {} processing by id: {} from user {}", notificationUpdateRequestBaseRequest.getId(), id, notificationUpdateRequestBaseRequest.getUserId()); Notification notification = notificationMap.getSingleObjectByID(id); if (notification == null) { throw new NullPointerException("Notification by id:{" + id + "} is null!"); From 03aa29413c7bb12d02cea6f736094c557a7183bb Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 28 Sep 2023 11:41:49 +0300 Subject: [PATCH 7/8] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-550=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D1=82=D0=BD=D0=B0=D1=8F=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=B8=D0=BC=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cud/registry/NotificationUpdateAction.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java index 9c82a128b..86877ab36 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/registry/NotificationUpdateAction.java @@ -13,6 +13,10 @@ public class NotificationUpdateAction implements IAction Date: Thu, 28 Sep 2023 13:21:29 +0300 Subject: [PATCH 8/8] =?UTF-8?q?platform-messaging=20http://jira.mfd.msk:80?= =?UTF-8?q?88/browse/CLS-280=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=BA=D0=B8,=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BE=D1=82=D0=BA=D0=BB=D1=8E=D1=87=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B8=D0=BA=D0=B0=D1=82=D1=8B,=20?= =?UTF-8?q?=D1=82.=D0=BA.=20=D0=BD=D0=B0=D0=B4=D0=BE=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=20=D0=BD=D0=BE=D0=B2=D0=BE=D0=B5?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BB=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdmittedLiabilitiesRegisterService.java | 40 ++-- .../CoveredLiabilitiesRegisterService.java | 35 +-- .../service/DepoBalanceRegisterService.java | 34 ++- ...DepoPaymentInstructionRegisterService.java | 34 +-- .../ExcludeLiabilitiesRegisterService.java | 45 ++-- .../service/ExecutionRegisterService.java | 17 +- .../service/LiabilitiesRegisterService.java | 15 +- .../service/MoneyBalanceRegisterService.java | 40 ++-- ...oneyPaymentInstructionRegisterService.java | 15 +- .../registry/ContractRegisterNewRequest.java | 215 ------------------ 10 files changed, 155 insertions(+), 335 deletions(-) delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ContractRegisterNewRequest.java diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java index 695136146..6b6694401 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java @@ -23,6 +23,7 @@ import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.enumeration.RegistryUnit; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.validation.IValidator; @@ -42,7 +43,7 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements private final Imdg admittedLiabilitiesRegisterMap; private final Imdg registryMap; private final Imdg companyMap; - private final Imdg securityMap; + private final SecuritySelector securitySelector; private final Function, IValidator> fieldValuesValidator; @Autowired @@ -54,7 +55,7 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements this.admittedLiabilitiesRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_AdmittedLiabilitiesRegister, AdmittedLiabilitiesRegister.class); this.registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - this.securityMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class); + this.securitySelector = new SecuritySelector<>(imdgProvider, Security.class); this.fieldValuesValidator = fieldValuesValidator; } @@ -90,13 +91,12 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements log.trace("Started generating AdmittedLiabilitiesRegister entity..."); AdmittedLiabilitiesRegister admittedLiabilitiesRegister = new AdmittedLiabilitiesRegister(); Company company = companyMap.getFirstObjectByFieldValues(Map.of("id", 1L)); - Security security = securityMap.getFirstObjectByFieldValues(Map.of("id", registry.getSecurityId())); - String securitySymbol = security != null ? security.getSecuritySymbol() : null; - String securityFullName = security != null ? security.getShortName() : null; - String companyFullName = security != null ? company.getFullName() : null; + Security security = securitySelector.selectSecurityById(registry.getSecurityId()); + String securityFullName = security != null ? security.getFullName() : null; + String companyFullName = company != null ? company.getFullName() : null; admittedLiabilitiesRegister.setCompanyFullName(companyFullName); admittedLiabilitiesRegister.setSessionId(registry.getSessionId()); - admittedLiabilitiesRegister.setSecuritySymbol(securitySymbol); + admittedLiabilitiesRegister.setSecuritySymbol(registry.getSecuritySymbol()); admittedLiabilitiesRegister.setSecurityFullName(securityFullName); admittedLiabilitiesRegister.setCompanyId(registry.getCompanyId()); admittedLiabilitiesRegister.setClearingCode(registry.getClearingCode()); @@ -113,7 +113,7 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + "registryUnit = '%s' and " + - "registryStatus in ('%s','%s','%s','%s','%s')" + "registryStatus in ('%s','%s','%s','%s','%s', '%s')" , RegistryDesignation.O.getKey(), RegistryInstrumentType.S.getKey(), @@ -123,19 +123,27 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements RegistryStatus.NACK.getKey(), RegistryStatus.UNCV.getKey(), RegistryStatus.NACC.getKey(), - RegistryStatus.FAIL.getKey() + RegistryStatus.FAIL.getKey(), + RegistryStatus.CLRD.getKey() ); } @Override public Optional isDuplicateInMap(Registry entity) { - Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); - Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(admittedLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); + return Optional.empty(); +// Map> fieldValues = Map.of( +// "companyId", entity.getRegistryCode(), +// "sessionId", entity.getSessionId(), +// "securitySymbol", entity.getSecuritySymbol(), +// "clearingDate", entity.getClearingDate(), +// "account", entity.getAccount() +// ); +// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(admittedLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java index 1b402c147..1b3928e62 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java @@ -23,6 +23,7 @@ import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.enumeration.RegistryUnit; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.validation.IValidator; @@ -42,7 +43,7 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements private final Imdg coveredLiabilitiesRegisterMap; private final Imdg registryMap; private final Imdg companyMap; - private final Imdg securityMap; + private final SecuritySelector securitySelector; private final Function, IValidator> fieldValuesValidator; @Autowired @@ -54,7 +55,7 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements this.coveredLiabilitiesRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CoveredLiabilitiesRegister, CoveredLiabilitiesRegister.class); this.registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - this.securityMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class); + this.securitySelector = new SecuritySelector<>(imdgProvider, Security.class); this.fieldValuesValidator = fieldValuesValidator; } @@ -91,13 +92,12 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements log.trace("insert CoveredLiabilitiesRegister in map..."); CoveredLiabilitiesRegister coveredLiabilitiesRegister = new CoveredLiabilitiesRegister(); Company company = companyMap.getFirstObjectByFieldValues(Map.of("id", 1L)); - Security security = securityMap.getFirstObjectByFieldValues(Map.of("id", registry.getSecurityId())); - String securitySymbol = security != null ? security.getSecuritySymbol() : null; - String securityFullName = security != null ? security.getShortName() : null; - String companyFullName = security != null ? company.getFullName() : null; + Security security = securitySelector.selectSecurityById(registry.getSecurityId()); + String securityFullName = security != null ? security.getFullName() : null; + String companyFullName = company != null ? company.getFullName() : null; coveredLiabilitiesRegister.setCompanyFullName(companyFullName); coveredLiabilitiesRegister.setSessionId(registry.getSessionId()); - coveredLiabilitiesRegister.setSecuritySymbol(securitySymbol); + coveredLiabilitiesRegister.setSecuritySymbol(registry.getSecuritySymbol()); coveredLiabilitiesRegister.setSecurityFullName(securityFullName); coveredLiabilitiesRegister.setCompanyId(registry.getCompanyId()); coveredLiabilitiesRegister.setClearingCode(registry.getClearingCode()); @@ -114,22 +114,25 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + "registryUnit = '%s' and " + - "registryStatus = '%s'", + "registryStatus in ('%s', '%s')", RegistryDesignation.O.getKey(), RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), - RegistryStatus.OK.getKey()); + RegistryStatus.OK.getKey(), + RegistryStatus.CLRD.getKey() + ); } @Override public Optional isDuplicateInMap(Registry entity) { - Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); - Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(coveredLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); + return Optional.empty(); +// Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); +// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(coveredLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java index 6caaa8f23..59122d989 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java @@ -60,10 +60,6 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial public void depoBalanceRegisterNew(BaseRequest userRequest) { log.debug("LauncherCommandRequest received from {}", createRegistry_GRRT.topic()); - if (userRequest.getRequestPayload().getCompanyId() == null) { - log.debug("No companyId in LauncherCommandRequest.id={}", userRequest.getId()); - return; - } ImdgPredicate prdctForRegistries = getPredicateForRegistries(userRequest.getRequestPayload().getCompanyId()); Collection registries = registryMap.getCollectionObjectsByPredicate(prdctForRegistries); log.trace("Started searching depoBalanceRegister in register by '{}'", prdctForRegistries); @@ -84,14 +80,12 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial log.trace("Started generating DepoBalanceRegister entity..."); DepoBalanceRegister depoBalanceRegister = new DepoBalanceRegister(); depoBalanceRegister.setUpdated(Instant.now()); - depoBalanceRegister.setCreated(Instant.now()); + depoBalanceRegister.setCreated(depoBalanceRegister.getUpdated()); depoBalanceRegister.setCompanyId(registry.getCompanyId()); depoBalanceRegister.setSessionId(registry.getSessionId()); depoBalanceRegister.setDepoCode(registry.getAccountType()); depoBalanceRegister.setQuantity(registry.getCloseBalance()); depoBalanceRegister.setSecuritySymbol(registry.getSecuritySymbol()); - depoBalanceRegister.setCreated(Instant.now()); - depoBalanceRegister.setUpdated(Instant.now()); depoBalanceRegisterMap.insert(depoBalanceRegister); log.debug("inserted successfully DepoBalanceRegister entity with id: {}", depoBalanceRegister.getId()); } @@ -99,20 +93,24 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial private ImdgPredicate getPredicateForRegistries(Long companyId) { ImdgPredicateBuilder pb = registryMap.predicateBuilder(); RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AS_T); - return pb.and( - pb.equals("companyId", companyId), - pb.sql(codeSql.build()) - ); + if (companyId == null) // default use case + return pb.sql(codeSql.build()); + else + return pb.and( + pb.equals("companyId", companyId), + pb.sql(codeSql.build()) + ); } @Override public Optional isDuplicateInMap(Registry entity) { - Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); - Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(depoBalanceRegisterMap.getFirstObjectByFieldValues(fieldValues)); + return Optional.empty(); +// Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); +// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(depoBalanceRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java index c1bceb5e7..52c7a7e3a 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java @@ -89,34 +89,38 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme private void insertDepoPaymentInstructionRegister(PaymentInstruction paymentInstruction) { log.trace("Started generating DepoPaymentInstructionRegister entity..."); DepoPaymentInstructionRegister depoPaymentInstructionRegister = new DepoPaymentInstructionRegister(); - TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryMap.getFirstObjectByFieldValues(Map.of("depoAccountId", paymentInstruction.getCreditLeg_accountId())); + TradingClearingRegistry tradingClearingRegistry = paymentInstruction.getSenderId() == null ? null : tradingClearingRegistryMap.getFirstObjectByFieldValues(Map.of("companyId", paymentInstruction.getSenderId())); InOutDirectionDictionary inOutDirectionDictionary = InOutDirectionDictionaryMap.getFirstObjectByFieldValues(Map.of("code", paymentInstruction.getCreditLeg_direction())); depoPaymentInstructionRegister.setCreated(Instant.now()); depoPaymentInstructionRegister.setUpdated(Instant.now()); depoPaymentInstructionRegister.setCompanyId(paymentInstruction.getSenderId()); - depoPaymentInstructionRegister.setTradingClearingRegistryType(tradingClearingRegistry.getTradingClearingRegistryType()); - depoPaymentInstructionRegister.setTradingClearingRegistry(tradingClearingRegistry.getCode()); + if (tradingClearingRegistry == null) { + log.warn("For paymentInstruction[{}].CreditLeg_accountId={} can not find TradingClearingRegistry.", + paymentInstruction.getId(), paymentInstruction.getCreditLeg_accountId()); + } else { + depoPaymentInstructionRegister.setTradingClearingRegistryType(tradingClearingRegistry.getTradingClearingRegistryType()); + depoPaymentInstructionRegister.setTradingClearingRegistry(tradingClearingRegistry.getCode()); + } depoPaymentInstructionRegister.setCbCode("RNCB-BE-01"); depoPaymentInstructionRegister.setQuantity(paymentInstruction.getCreditLeg_amount()); depoPaymentInstructionRegister.setDirection(inOutDirectionDictionary.getId()); depoPaymentInstructionRegister.setSessionId(paymentInstruction.getSessionId()); - depoPaymentInstructionRegister.setCreated(Instant.now()); - depoPaymentInstructionRegister.setUpdated(Instant.now()); depoPaymentInstructionRegisterMap.insert(depoPaymentInstructionRegister); log.debug("inserted successfully DepoBalanceRegister entity with id: {}", depoPaymentInstructionRegister.getId()); } @Override public Optional isDuplicateInMap(PaymentInstruction entity) { - Map> fieldValues = Map.of( - "companyId", entity.getSenderId(), - "sessionId", entity.getSessionId() - ); - Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(depoPaymentInstructionRegisterMap.getFirstObjectByFieldValues(fieldValues)); + return Optional.empty(); +// Map> fieldValues = Map.of( +// "companyId", entity.getSenderId(), +// "sessionId", entity.getSessionId() +// ); +// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(depoPaymentInstructionRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java index e5fd393f6..b00e34806 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java @@ -7,10 +7,12 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity; import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.register.ExcludeLiabilitiesRegister; import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.security.MoneyMarketSecurity; +import ru.clearing.classes.statics.data.security.Security; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -20,6 +22,7 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; 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.predicate.specific.SecuritySelector; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.time.TimeUtil; import ru.spcex.platform.utils.validation.IValidator; @@ -42,7 +45,7 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements private final Imdg registryMap; private final Imdg sessionMap; private final Imdg companySymbolMap; - private final Imdg moneyMarketSecurityMap; + private final SecuritySelector securitySelector; private final Function, IValidator> fieldValuesValidator; @Autowired @@ -55,7 +58,7 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements this.registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); this.sessionMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.companySymbolMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, ru.clearing.classes.statics.data.company.CompanySymbols.class); - this.moneyMarketSecurityMap = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class); + this.securitySelector = new SecuritySelector<>(imdgProvider, Security.class); this.fieldValuesValidator = fieldValuesValidator; } @@ -97,17 +100,30 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements Map> innPredicates = Map.of("companySymbol", CompanySymbol.INN.getKey(), "companyId", registry.getCompanyId()); ru.clearing.classes.statics.data.company.CompanySymbols companySymbol = companySymbolMap.getFirstObjectByFieldValues(innPredicates); - MoneyMarketSecurity moneyMarketSecurity = moneyMarketSecurityMap.getFirstObjectByFieldValues(Map.of("securityId", registry.getSecurityId())); + Security security = securitySelector.selectSecurityById(registry.getSecurityId()); excludeLiabilitiesRegister.setSessionId(registry.getSessionId()); excludeLiabilitiesRegister.setValidFromDate(sessionBySessionId.getClearingDate()); excludeLiabilitiesRegister.setValidToDate(validToDate); excludeLiabilitiesRegister.setCompanyId(registry.getCompanyId()); + excludeLiabilitiesRegister.setCompanyFullName(registry.getFullName()); excludeLiabilitiesRegister.setInn(companySymbol.getCompanySymbolValue()); excludeLiabilitiesRegister.setRegistryCode(registry.getRegistryCode()); excludeLiabilitiesRegister.setAccount(registry.getAccount()); excludeLiabilitiesRegister.setRegistryStatus(registry.getRegistryStatus()); - excludeLiabilitiesRegister.setCurrency(moneyMarketSecurity.getNominalCurrency()); + if (security == null) { + log.warn("Security id={} not found for registry id={}", registry.getSecurityId(), registry.getId()); + } else { + if (InstrumentType.RATE.equalsByKey(security.getInstrumentType())) { + excludeLiabilitiesRegister.setCurrency(((MoneyMarketSecurity) security).getNominalCurrency()); + } else if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { + excludeLiabilitiesRegister.setCurrency(((FixedIncomeSecurity) security).getNominalCurrency()); + } else if (InstrumentType.EQTY.equalsByKey(security.getInstrumentType())) { + // не заполняется Currency + } else { // never + log.warn("Unexpected security[{}] type {}", security.getId(), security.getInstrumentType()); + } + } excludeLiabilitiesRegister.setSumLiabilities(registry.getBalance()); excludeLiabilitiesRegister.setSettlementDate(registry.getSettlementDate()); excludeLiabilitiesRegister.setCreated(Instant.now()); @@ -120,22 +136,25 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + "registryUnit = '%s' and " + - "registryStatus = '%s'", + "registryStatus in ('%s', '%s')", RegistryDesignation.O.getKey(), RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(), RegistryUnit.T.getKey(), - RegistryStatus.FAIL.getKey()); + RegistryStatus.FAIL.getKey(), + RegistryStatus.UNCV.getKey() + ); } @Override public Optional isDuplicateInMap(Registry entity) { - Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); - Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(excludeLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); + return Optional.empty(); +// Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); +// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(excludeLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java index 59b30cc16..4f41ab830 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java @@ -283,14 +283,15 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ @Override public Optional isDuplicateInMap(ExecutionCommon entity) { - Map> map = Map.of("exchangeExecutionId", entity.getExchangeExecutionId(), - "tradingDate", LocalDate.now()); //clarify timezone - Optional message = fieldValuesValidator.apply(map).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(executionRegisterMap.getSingleObjectByFieldValues(map)); + return Optional.empty(); +// Map> map = Map.of("exchangeExecutionId", entity.getExchangeExecutionId(), +// "tradingDate", LocalDate.now()); //clarify timezone +// Optional message = fieldValuesValidator.apply(map).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(executionRegisterMap.getSingleObjectByFieldValues(map)); } } \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java index 13814069e..ea22fa856 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java @@ -150,12 +150,13 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial @Override public Optional isDuplicateInMap(Registry entity) { - Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); - Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(liabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); + return Optional.empty(); +// Map> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId()); +// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(liabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java index 4e3f4ac09..4924a68a0 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java @@ -28,6 +28,7 @@ import ru.spcex.platform.utils.validation.IValidator; import java.text.MessageFormat; import java.time.Instant; import java.util.Collection; +import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.function.Function; @@ -69,10 +70,6 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia public void moneyBalanceRegisterNew(BaseRequest userRequest) { log.debug("LauncherCommandRequest received from {}", createRegistry_GBRR.topic()); - if (userRequest.getRequestPayload().getCompanyId() == null) { - log.warn("LauncherCommandRequest.id={} without companyId", userRequest.getId()); - return; - } ImdgPredicate sqlConditionForRegistry = getSqlForRegistries(userRequest.getRequestPayload().getCompanyId()); Collection registries = registryMap.getCollectionObjectsByPredicate(sqlConditionForRegistry); if (registries == null) { @@ -128,10 +125,15 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia private ImdgPredicate getSqlForRegistries(Long companyId) { ImdgPredicateBuilder pb = registryMap.predicateBuilder(); - ImdgPredicate prdct = pb.and( - pb.equals("companyId", companyId), - pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM__).build()) - ); + ImdgPredicate prdct; + if (companyId == null) { + prdct = pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM__).build()); + } else { + prdct = pb.and( + pb.equals("companyId", companyId), + pb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM__).build()) + ); + } log.trace("sql predicate for registries {}", prdct); return prdct; } @@ -171,17 +173,15 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia @Override public Optional isDuplicateInMap(Registry entity) { - Map> fieldValues = Map.of( - "companyId", - entity.getCompanyId(), - "sessionId", - entity.getSessionId() - ); - Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(moneyBalanceRegisterMap.getFirstObjectByFieldValues(fieldValues)); + return Optional.empty(); +// Map fieldValues = new HashMap<>(); +// fieldValues.put("companyId", entity.getCompanyId()); +// fieldValues.put("sessionId", entity.getSessionId()); +// Optional message = fieldValuesValidator.apply(fieldValues).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(moneyBalanceRegisterMap.getFirstObjectByFieldValues(fieldValues)); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java index 825e12950..fd38b554c 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java @@ -92,12 +92,13 @@ public class MoneyPaymentInstructionRegisterService extends QueueConsumer implem @Override public Optional isDuplicateInMap(PaymentInstruction entity) { - Map> fieldValuesCompanyIdSessionId = Map.of("senderId", entity.getSenderId(), "date", entity.getClearingDate()); - Optional message = fieldValuesValidator.apply(fieldValuesCompanyIdSessionId).tillFirstError(); - if (message.isPresent()) { - log.warn("Illegal value in map for request to imdg: {}", message.get()); - throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); - } - return Optional.ofNullable(moneyPaymentInstructionRegisterMap.getFirstObjectByFieldValues(fieldValuesCompanyIdSessionId)); + return Optional.empty(); +// Map> fieldValuesCompanyIdSessionId = Map.of("senderId", entity.getSenderId(), "date", entity.getClearingDate()); +// Optional message = fieldValuesValidator.apply(fieldValuesCompanyIdSessionId).tillFirstError(); +// if (message.isPresent()) { +// log.warn("Illegal value in map for request to imdg: {}", message.get()); +// throw new IllegalArgumentException(MessageFormat.format("Illegal value in request to imdg: {0}", message.get())); +// } +// return Optional.ofNullable(moneyPaymentInstructionRegisterMap.getFirstObjectByFieldValues(fieldValuesCompanyIdSessionId)); } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ContractRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ContractRegisterNewRequest.java deleted file mode 100644 index 29c58cef3..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ContractRegisterNewRequest.java +++ /dev/null @@ -1,215 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.registry; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.time.Instant; -import java.time.LocalDate; - -@Deprecated // Не используется. Возможно артефакт мёржа. -public class ContractRegisterNewRequest { - - @JsonProperty - private String name; - - @JsonProperty - private String number; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate issueDate; - - @JsonProperty - private String companyFullName; - - @JsonProperty - private Long companyId; - - @JsonProperty - private String documentType; - - @JsonProperty - private String issuePlace; - - @JsonProperty - private String issuer; - - @JsonProperty - private String issuerCode; - - @JsonProperty - private String place; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate validFromDate; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate validToDate; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate closeDate; - - @JsonProperty - private String comment; - - @JsonProperty - private Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant updatedAt; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public LocalDate getCloseDate() { - return closeDate; - } - - public void setCloseDate(LocalDate closeDate) { - this.closeDate = closeDate; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public String getNumber() { - return number; - } - - public void setNumber(String number) { - this.number = number; - } - - public LocalDate getIssueDate() { - return issueDate; - } - - public void setIssueDate(LocalDate issueDate) { - this.issueDate = issueDate; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } - - public String getDocumentType() { - return documentType; - } - - public void setDocumentType(String documentType) { - this.documentType = documentType; - } - - public String getIssuePlace() { - return issuePlace; - } - - public void setIssuePlace(String issuePlace) { - this.issuePlace = issuePlace; - } - - public String getIssuer() { - return issuer; - } - - public void setIssuer(String issuer) { - this.issuer = issuer; - } - - public String getIssuerCode() { - return issuerCode; - } - - public void setIssuerCode(String issuerCode) { - this.issuerCode = issuerCode; - } - - public String getPlace() { - return place; - } - - public void setPlace(String place) { - this.place = place; - } - - public LocalDate getValidFromDate() { - return validFromDate; - } - - public void setValidFromDate(LocalDate validFromDate) { - this.validFromDate = validFromDate; - } - - public LocalDate getValidToDate() { - return validToDate; - } - - public void setValidToDate(LocalDate validToDate) { - this.validToDate = validToDate; - } -} \ No newline at end of file