report requests
This commit is contained in:
parent
0e58782a4c
commit
a2873620a3
7 changed files with 74 additions and 39 deletions
|
|
@ -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<ReportRequestFromExecution, IValidator> reportRequestFromExecutionValidator(
|
||||
public Function<ReportRequestWithSessionId, IValidator> reportRequestFromExecutionValidator(
|
||||
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
||||
) {
|
||||
return reportRequestFromExecution -> {
|
||||
ImdgValidationContext<ReportRequestFromExecution> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(reportRequestFromExecution);
|
||||
return reportRequestWithSessionId -> {
|
||||
ImdgValidationContext<ReportRequestWithSessionId> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(reportRequestWithSessionId);
|
||||
|
||||
Consumer<String> 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<ReportRequestFromRegistry, IValidator> reportRequestFromRegistryValidator(
|
||||
public Function<ReportRequest, IValidator> reportRequestFromRegistryValidator(
|
||||
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
||||
) {
|
||||
return reportRequestFromRegistry -> {
|
||||
ImdgValidationContext<ReportRequestFromRegistry> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(reportRequestFromRegistry);
|
||||
return reportRequest -> {
|
||||
ImdgValidationContext<ReportRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(reportRequest);
|
||||
|
||||
Consumer<String> 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,
|
||||
|
|
|
|||
|
|
@ -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<ReportRequestFromExecution, IValidator> reportRequestFromExecutionValidator;
|
||||
private final Function<ReportRequestFromRegistry, IValidator> reportRequestFromRegistryValidator;
|
||||
private final Function<ReportRequestWithSessionId, IValidator> reportRequestFromExecutionValidator;
|
||||
private final Function<ReportRequest, IValidator> reportRequestFromRegistryValidator;
|
||||
|
||||
public ReportService(Consumer<String, Object> kafkaQueue,
|
||||
Producer<String, Object> kafkaResponseQueue,
|
||||
|
|
@ -35,9 +37,9 @@ public class ReportService extends QueueConsumer implements InitializingBean {
|
|||
UserRoleVerification userRoleVerification,
|
||||
ValidationHelper validationHelper,
|
||||
@Qualifier("reportRequestFromExecutionValidator")
|
||||
Function<ReportRequestFromExecution, IValidator> reportRequestFromExecutionValidator,
|
||||
Function<ReportRequestWithSessionId, IValidator> reportRequestFromExecutionValidator,
|
||||
@Qualifier("reportRequestFromRegistryValidator")
|
||||
Function<ReportRequestFromRegistry, IValidator> reportRequestFromRegistryValidator) {
|
||||
Function<ReportRequest, IValidator> 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<ReportRequestFromRegistry> userRequest) {
|
||||
public RequestInfoUpdate createReport(BaseRequest<ReportRequest> 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<ReportRequestFromExecution> userRequest) {
|
||||
public RequestInfoUpdate createReportForSessionId(BaseRequest<ReportRequestWithSessionId> 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<ReportRequestWithSessionIdList> userRequest) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public RequestInfoUpdate createReportForPeriod(BaseRequest<ReportRequestWithPeriod> userRequest) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.reports;
|
||||
|
||||
/**
|
||||
* Запрос на построение отчета на основе Registry
|
||||
*/
|
||||
public class ReportRequestFromRegistry extends ReportRequest {
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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 {
|
||||
/**
|
||||
* Идентификатор сессии
|
||||
*/
|
||||
|
|
@ -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<Long> sessionId;
|
||||
|
||||
public List<Long> getSessionId() {
|
||||
return sessionId;
|
||||
}
|
||||
|
||||
public void setSessionId(List<Long> sessionId) {
|
||||
this.sessionId = sessionId;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue