diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java index c38638049..99cb5f87b 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/validation/ValidationConfig.java @@ -5,8 +5,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.company.Company; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestFromExecution; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestFromRegistry; +import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId; import ru.spcex.clearing.reports.errors.ReportError; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.clearing.validation.common.rules.EnumPresentRule; @@ -45,19 +45,19 @@ public class ValidationConfig { } @Bean("reportRequestFromExecutionValidator") - public Function reportRequestFromExecutionValidator( + public Function reportRequestFromExecutionValidator( Map> imdgForValidation ) { - return reportRequestFromExecution -> { - ImdgValidationContext context = new ImdgValidationContext<>(); - context.setValidatedObject(reportRequestFromExecution); + return reportRequestWithSessionId -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(reportRequestWithSessionId); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); // todo add dictionary for check reportId return new ValidatorImpl<>(context, EnumPresentRule.instance("reportId", - ReportRequestFromExecution::getReportId, + ReportRequestWithSessionId::getReportId, new ReportType[]{ ReportType.OPERATIONAL_LIABILITIES_CLAIMS, ReportType.SUMMARY_LIABILITIES_CLAIMS, @@ -68,26 +68,26 @@ public class ValidationConfig { ReportError.WrongFieldValue, ReportError.RequiredFieldEmpty), FieldRequiredRule.instance("sessionId", - ReportRequestFromExecution::getSessionId, + ReportRequestWithSessionId::getSessionId, ReportError.RequiredFieldEmpty) ); }; } @Bean("reportRequestFromRegistryValidator") - public Function reportRequestFromRegistryValidator( + public Function reportRequestFromRegistryValidator( Map> imdgForValidation ) { - return reportRequestFromRegistry -> { - ImdgValidationContext context = new ImdgValidationContext<>(); - context.setValidatedObject(reportRequestFromRegistry); + return reportRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(reportRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); // todo add dictionary for check reportId return new ValidatorImpl<>(context, EnumPresentRule.instance("reportId", - ReportRequestFromRegistry::getReportId, + reportRequest::getReportId, new ReportType[]{ ReportType.OPERATIONAL_MONEY_CHANGE, ReportType.SUMMARY_MONEY_CHANGE, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java index 4665d9d52..9e9c041f3 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportService.java @@ -7,8 +7,10 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestFromExecution; -import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestFromRegistry; +import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithPeriod; +import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionId; +import ru.spcex.clearing.platform.messaging.domain.cud.reports.ReportRequestWithSessionIdList; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; @@ -25,8 +27,8 @@ public class ReportService extends QueueConsumer implements InitializingBean { private final IMessageResolver messageResolver; private final UserRoleVerification userRoleVerification; private final ValidationHelper validationHelper; - private final Function reportRequestFromExecutionValidator; - private final Function reportRequestFromRegistryValidator; + private final Function reportRequestFromExecutionValidator; + private final Function reportRequestFromRegistryValidator; public ReportService(Consumer kafkaQueue, Producer kafkaResponseQueue, @@ -35,9 +37,9 @@ public class ReportService extends QueueConsumer implements InitializingBean { UserRoleVerification userRoleVerification, ValidationHelper validationHelper, @Qualifier("reportRequestFromExecutionValidator") - Function reportRequestFromExecutionValidator, + Function reportRequestFromExecutionValidator, @Qualifier("reportRequestFromRegistryValidator") - Function reportRequestFromRegistryValidator) { + Function reportRequestFromRegistryValidator) { super(kafkaQueue, kafkaResponseQueue); this.imdgProvider = imdgProvider; this.messageResolver = messageResolver; @@ -49,15 +51,21 @@ public class ReportService extends QueueConsumer implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { - callback(ReportRequestFromRegistry.class) - .setConsumer(this::createReportFromRegistry) - .forDestination(Consts.DESTINATION_CREATE_REPORT_FROM_REGISTRY, callbacks::put); - callback(ReportRequestFromExecution.class) - .setConsumer(this::createReportFromExecution) - .forDestination(Consts.DESTINATION_CREATE_REPORT_FROM_EXECUTION, callbacks::put); + callback(ReportRequest.class) + .setFunction(this::createReport) + .forDestination(Consts.DESTINATION_CREATE_REPORT, callbacks::put); + callback(ReportRequestWithSessionId.class) + .setFunction(this::createReportForSessionId) + .forDestination(Consts.DESTINATION_CREATE_REPORT_FOR_SESSION_ID, callbacks::put); + callback(ReportRequestWithSessionIdList.class) + .setFunction(this::createReportForSessionIdList) + .forDestination(Consts.DESTINATION_CREATE_REPORT_FOR_SESSION_ID, callbacks::put); + callback(ReportRequestWithPeriod.class) + .setFunction(this::createReportForPeriod) + .forDestination(Consts.DESTINATION_CREATE_REPORT_FOR_PERIOD, callbacks::put); } - public RequestInfoUpdate createReportFromRegistry(BaseRequest userRequest) { + public RequestInfoUpdate createReport(BaseRequest userRequest) { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return null; @@ -67,7 +75,7 @@ public class ReportService extends QueueConsumer implements InitializingBean { return null; } - public RequestInfoUpdate createReportFromExecution(BaseRequest userRequest) { + public RequestInfoUpdate createReportForSessionId(BaseRequest userRequest) { RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return null; @@ -77,5 +85,13 @@ public class ReportService extends QueueConsumer implements InitializingBean { return null; } + public RequestInfoUpdate createReportForSessionIdList(BaseRequest userRequest) { + return null; + } + + public RequestInfoUpdate createReportForPeriod(BaseRequest userRequest) { + return null; + } + } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index e9fd627f3..cd605265f 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -71,8 +71,10 @@ public interface Consts { String DESTINATION_BANK_ACCOUNT_UPDATE = "bank-account-update"; String DESTINATION_BANK_ACCOUNT_NEW = "bank-account-new"; - String DESTINATION_CREATE_REPORT_FROM_REGISTRY = "destination-create-report-from-registry"; - String DESTINATION_CREATE_REPORT_FROM_EXECUTION = "destination-create-report-from-execution"; + String DESTINATION_CREATE_REPORT = "destination-create-report"; + String DESTINATION_CREATE_REPORT_FOR_SESSION_ID = "destination-create-report-for-session-id"; + String DESTINATION_CREATE_REPORT_FOR_SESSION_ID_LIST = "destination-create-report-for-session-id-list"; + String DESTINATION_CREATE_REPORT_FOR_PERIOD = "destination-create-report-for-period"; @Deprecated String ACCOUNT_NEW_SDF01 = "account-new-sdf01"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestFromRegistry.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestFromRegistry.java deleted file mode 100644 index f35d0a717..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestFromRegistry.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.reports; - -/** - * Запрос на построение отчета на основе Registry - */ -public class ReportRequestFromRegistry extends ReportRequest { -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportWithPeriodRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithPeriod.java similarity index 95% rename from platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportWithPeriodRequest.java rename to platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithPeriod.java index 4f4c80c75..aca91be94 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportWithPeriodRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithPeriod.java @@ -11,7 +11,7 @@ import java.time.LocalDate; /** * Запрос отчёта с периодом report-service */ -public class ReportWithPeriodRequest extends ReportRequest { +public class ReportRequestWithPeriod extends ReportRequest { @JsonSerialize(using = LocalDateSerializer.class) @JsonDeserialize(using = LocalDateDeserializer.class) @JsonProperty diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestFromExecution.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionId.java similarity index 71% rename from platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestFromExecution.java rename to platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionId.java index 0ed78564b..c5c2cd857 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestFromExecution.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionId.java @@ -3,9 +3,9 @@ package ru.spcex.clearing.platform.messaging.domain.cud.reports; import com.fasterxml.jackson.annotation.JsonProperty; /** - * Запрос на построение отчета на основе ExecutionDeposit/Fond + * Запрос на построение отчета по SessionId */ -public class ReportRequestFromExecution extends ReportRequest { +public class ReportRequestWithSessionId extends ReportRequest { /** * Идентификатор сессии */ diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionIdList.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionIdList.java new file mode 100644 index 000000000..3b85f542e --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/reports/ReportRequestWithSessionIdList.java @@ -0,0 +1,24 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.reports; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +/** + * Запрос на построение отчета по списку SessionId + */ +public class ReportRequestWithSessionIdList extends ReportRequest { + /** + * Идентификатор сессии + */ + @JsonProperty + protected List sessionId; + + public List getSessionId() { + return sessionId; + } + + public void setSessionId(List sessionId) { + this.sessionId = sessionId; + } +}