изменил(упростил) логику gatewa
This commit is contained in:
parent
1cd52cd2c3
commit
e704b8d70c
28 changed files with 485 additions and 316 deletions
|
|
@ -68,23 +68,21 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
Function<CompanyNewRequest, IValidator> companyUpdateRequestValidator,
|
Function<CompanyNewRequest, IValidator> companyUpdateRequestValidator,
|
||||||
@Qualifier("CompanyDeleteRequestValidator")
|
@Qualifier("CompanyDeleteRequestValidator")
|
||||||
Function<CommonDeleteRequest, IValidator> companyDeleteRequestValidator,
|
Function<CommonDeleteRequest, IValidator> companyDeleteRequestValidator,
|
||||||
|
|
||||||
CompanySymbolService companySymbolService,
|
CompanySymbolService companySymbolService,
|
||||||
AccountNotificationHelper accountNotification,
|
AccountNotificationHelper accountNotification,
|
||||||
RelationService relationService
|
RelationService relationService) {
|
||||||
) {
|
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.requestHelper = requestHelper.setLogger(log);
|
this.requestHelper = requestHelper.setLogger(log);
|
||||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
userRoleVerification.setRoleForVerification(UserRole.Admin);
|
this.userRoleVerification.setRoleForVerification(UserRole.Admin);
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.companyNewRequestValidator = companyNewRequestValidator;
|
this.companyNewRequestValidator = companyNewRequestValidator;
|
||||||
this.companyUpdateRequestValidator = companyUpdateRequestValidator;
|
this.companyUpdateRequestValidator = companyUpdateRequestValidator;
|
||||||
this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
||||||
this.companySymbolService = companySymbolService;
|
this.companySymbolService = companySymbolService;
|
||||||
companySymbolService.setCompanyService(this);
|
this.companySymbolService.setCompanyService(this);
|
||||||
this.accountNotification = accountNotification;
|
this.accountNotification = accountNotification;
|
||||||
this.relationService = relationService;
|
this.relationService = relationService;
|
||||||
|
|
||||||
|
|
@ -105,7 +103,6 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
callback(CompanyNewRequest.class)
|
callback(CompanyNewRequest.class)
|
||||||
.setFunction(request -> requestHelper.requestFunction(this::updateCompany, request))
|
.setFunction(request -> requestHelper.requestFunction(this::updateCompany, request))
|
||||||
.forDestination(Consts.DESTINATION_COMPANY_UPDATE, callbacks::put);
|
.forDestination(Consts.DESTINATION_COMPANY_UPDATE, callbacks::put);
|
||||||
|
|
||||||
callback(AccountTerminationRequest.class)
|
callback(AccountTerminationRequest.class)
|
||||||
.setFunction(request -> requestHelper.requestFunction(this::finishCompanyTermination, request))
|
.setFunction(request -> requestHelper.requestFunction(this::finishCompanyTermination, request))
|
||||||
.forDestination(Consts.ACCOUNT_TERMINATION_STEP2, callbacks::put);
|
.forDestination(Consts.ACCOUNT_TERMINATION_STEP2, callbacks::put);
|
||||||
|
|
|
||||||
|
|
@ -96,14 +96,14 @@ public class MultiCompanyService
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterPropertiesSet() {
|
public void afterPropertiesSet() {
|
||||||
callback(MultiCompanyRequest.class)
|
callback(CompanyGatewayRequest.class)
|
||||||
.setFunction(request -> requestHelper.requestFunction(this::processMultiRequest, request))
|
.setFunction(request -> requestHelper.requestFunction(this::processMultiRequest, request))
|
||||||
.forDestination(Consts.DESTINATION_COMPANY_MULTIREQUEST, callbacks::put);
|
.forDestination(Consts.DESTINATION_COMPANY_MULTIREQUEST, callbacks::put);
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized RequestInfoUpdate processMultiRequest(BaseRequest<MultiCompanyRequest> baseRequest) {
|
private synchronized RequestInfoUpdate processMultiRequest(BaseRequest<CompanyGatewayRequest> baseRequest) {
|
||||||
MultiCompanyRequest req = baseRequest.getRequestPayload();
|
CompanyGatewayRequest req = baseRequest.getRequestPayload();
|
||||||
log.debug("company-batch-new request received, BaseRequest.id = {}", baseRequest.getId());
|
log.debug("company-batch-new request received, BaseRequest.id = {}", baseRequest.getId());
|
||||||
{ // Валидация
|
{ // Валидация
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(baseRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(baseRequest);
|
||||||
|
|
@ -312,7 +312,7 @@ public class MultiCompanyService
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fillCompanyId(MultiCompanyRequest req, Long companyId) {
|
void fillCompanyId(CompanyGatewayRequest req, Long companyId) {
|
||||||
if (req.getCompany() != null) {
|
if (req.getCompany() != null) {
|
||||||
req.getCompany().setId(companyId);
|
req.getCompany().setId(companyId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||||
import ru.clearing.classes.statics.data.profile.Contact;
|
import ru.clearing.classes.statics.data.profile.Contact;
|
||||||
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
||||||
import ru.clearing.platform.dictionary.CompanySymbolDictionary;
|
import ru.clearing.platform.dictionary.CompanySymbolDictionary;
|
||||||
import ru.clearing.platform.dictionary.WorkflowStatusDictionary;
|
|
||||||
import ru.spcex.clearing.company.config.BeanConfiguration;
|
import ru.spcex.clearing.company.config.BeanConfiguration;
|
||||||
import ru.spcex.clearing.company.config.validation.*;
|
import ru.spcex.clearing.company.config.validation.*;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
@ -26,7 +25,6 @@ import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
@ -160,7 +158,7 @@ class MultiCompanyServiceTest {
|
||||||
@Test
|
@Test
|
||||||
void fillCompanyId() {
|
void fillCompanyId() {
|
||||||
{
|
{
|
||||||
MultiCompanyRequest testReq = new MultiCompanyRequest();
|
CompanyGatewayRequest testReq = new CompanyGatewayRequest();
|
||||||
testReq.setCompany(new CompanyNewRequest());
|
testReq.setCompany(new CompanyNewRequest());
|
||||||
testReq.setProfileDocuments(null);
|
testReq.setProfileDocuments(null);
|
||||||
testReq.setCompanySymbols(null);
|
testReq.setCompanySymbols(null);
|
||||||
|
|
@ -174,7 +172,7 @@ class MultiCompanyServiceTest {
|
||||||
assertNotNull(testReq.getClientCodes());
|
assertNotNull(testReq.getClientCodes());
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
MultiCompanyRequest testReq = new MultiCompanyRequest();
|
CompanyGatewayRequest testReq = new CompanyGatewayRequest();
|
||||||
testReq.setCompany(new CompanyNewRequest());
|
testReq.setCompany(new CompanyNewRequest());
|
||||||
testReq.setCompanyInfo(new CompanyInfoUpdateRequest());
|
testReq.setCompanyInfo(new CompanyInfoUpdateRequest());
|
||||||
multiCompanyService.fillCompanyId(testReq, COMPANY_ID);
|
multiCompanyService.fillCompanyId(testReq, COMPANY_ID);
|
||||||
|
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
package ru.spcex.clearing.dbf.importer.logic.data.tables;
|
|
||||||
|
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf09;
|
|
||||||
import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable;
|
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|
||||||
|
|
||||||
import java.time.Instant;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public class SDf09Table extends AbstractTable<SDf09> {
|
|
||||||
|
|
||||||
private static final String PREFIX = ETable.DF_09.name();
|
|
||||||
private static final Class<SDf09> CLAZZ = SDf09.class;
|
|
||||||
private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf09;
|
|
||||||
|
|
||||||
public SDf09Table() {
|
|
||||||
super(PREFIX, CLAZZ, NAME_OF_HZ_MAP);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SDf09 getEntity(Object[] entity) {
|
|
||||||
SDf09 result = new SDf09();
|
|
||||||
|
|
||||||
// result.setAccount((String) entity[0]);
|
|
||||||
// result.setSum((BigDecimal) entity[1]);
|
|
||||||
// result.setMarket((String) entity[2]);
|
|
||||||
// result.setType((String) entity[3]);
|
|
||||||
// result.setNumber((BigDecimal) entity[4]);
|
|
||||||
// result.setInn((BigDecimal) entity[5]);
|
|
||||||
// result.setFileName(filename);
|
|
||||||
result.setGenerationTime(Instant.now());
|
|
||||||
result.setGenerationId(fileId);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
package ru.spcex.clearing.dbf.importer.logic.data.tables;
|
|
||||||
|
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf16;
|
|
||||||
import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable;
|
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.time.Instant;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public class SDf16Table extends AbstractTable<SDf16> {
|
|
||||||
|
|
||||||
private static final String PREFIX = ETable.DF_16.name();
|
|
||||||
private static final Class<SDf16> CLAZZ = SDf16.class;
|
|
||||||
private static final String NAME_OF_HZ_MAP = IMDGDistributedNames.Map_SDf16;
|
|
||||||
|
|
||||||
public SDf16Table() {
|
|
||||||
super(PREFIX, CLAZZ, NAME_OF_HZ_MAP);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SDf16 getEntity(Object[] entity) {
|
|
||||||
SDf16 result = new SDf16();
|
|
||||||
// result.setDate(TimeUtil.strToInstant((String) entity[0]));
|
|
||||||
result.setAccount((String) entity[0]);
|
|
||||||
result.setSum((BigDecimal) entity[1]);
|
|
||||||
result.setMarket((String) entity[2]);
|
|
||||||
result.setType((String) entity[3]);
|
|
||||||
result.setInn((BigDecimal) entity[4]);
|
|
||||||
result.setBic((BigDecimal) entity[5]);
|
|
||||||
result.setSpec((String) entity[6]);
|
|
||||||
result.setNumber((BigDecimal) entity[7]);
|
|
||||||
result.setFileName(filename);
|
|
||||||
result.setGenerationTime(Instant.now());
|
|
||||||
result.setGenerationId(fileId);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -7,7 +7,7 @@ import ru.spcex.clearing.gatewayapi.logic.Processor;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesKafkaMessenger;
|
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesKafkaMessenger;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
|
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.companies.PrepareMemberCompanies;
|
import ru.spcex.clearing.gatewayapi.logic.companies.PrepareMemberCompaniesLegacy;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.listings_fond.*;
|
import ru.spcex.clearing.gatewayapi.logic.listings_fond.*;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.listings_mm.MMListingsRequestParam;
|
import ru.spcex.clearing.gatewayapi.logic.listings_mm.MMListingsRequestParam;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.listings_mm.PrepareExchangeInstruments;
|
import ru.spcex.clearing.gatewayapi.logic.listings_mm.PrepareExchangeInstruments;
|
||||||
|
|
@ -50,7 +50,7 @@ public class ProcessorConfiguration {
|
||||||
public Processor<CompaniesRequestParam> companiesRequestProcessor(ImdgProvider imdgProvider, KafkaSender kafkaSender) {
|
public Processor<CompaniesRequestParam> companiesRequestProcessor(ImdgProvider imdgProvider, KafkaSender kafkaSender) {
|
||||||
Processor<CompaniesRequestParam> processor = new Processor<>();
|
Processor<CompaniesRequestParam> processor = new Processor<>();
|
||||||
List<Stage<CompaniesRequestParam>> pipeline = new ArrayList<>();
|
List<Stage<CompaniesRequestParam>> pipeline = new ArrayList<>();
|
||||||
pipeline.add(new PrepareMemberCompanies());
|
pipeline.add(new PrepareMemberCompaniesLegacy());
|
||||||
pipeline.add(new CompaniesKafkaMessenger(kafkaSender, imdgProvider));
|
pipeline.add(new CompaniesKafkaMessenger(kafkaSender, imdgProvider));
|
||||||
processor.setPipeline(pipeline);
|
processor.setPipeline(pipeline);
|
||||||
return processor;
|
return processor;
|
||||||
|
|
|
||||||
|
|
@ -14,18 +14,22 @@ import ru.spcex.clearing.gatewayapi.exception.GatewayException;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.Processor;
|
import ru.spcex.clearing.gatewayapi.logic.Processor;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
|
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
|
||||||
|
import ru.spcex.clearing.gatewayapi.logic.companies.CompanyProcessor;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.listings_fond.FondListingsRequestParam;
|
import ru.spcex.clearing.gatewayapi.logic.listings_fond.FondListingsRequestParam;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.listings_mm.MMListingsRequestParam;
|
import ru.spcex.clearing.gatewayapi.logic.listings_mm.MMListingsRequestParam;
|
||||||
import ru.spcex.clearing.gatewayapi.request.CommonRequest;
|
import ru.spcex.clearing.gatewayapi.request.CommonRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.request.company.CompaniesRequest;
|
import ru.spcex.clearing.gatewayapi.request.company.CompaniesRequest;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.limit.LimitRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.request.listing.fond.FondListingsRequest;
|
import ru.spcex.clearing.gatewayapi.request.listing.fond.FondListingsRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.request.listing.mkr.MMListingsRequest;
|
import ru.spcex.clearing.gatewayapi.request.listing.mkr.MMListingsRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
|
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
|
|
@ -37,6 +41,7 @@ public class GatewayController {
|
||||||
private final Processor<FondListingsRequestParam> fondListingsRequestProcessor;
|
private final Processor<FondListingsRequestParam> fondListingsRequestProcessor;
|
||||||
private final Processor<MMListingsRequestParam> mmListingsRequestProcessor;
|
private final Processor<MMListingsRequestParam> mmListingsRequestProcessor;
|
||||||
private final Processor<CompaniesRequestParam> companiesRequestProcessor;
|
private final Processor<CompaniesRequestParam> companiesRequestProcessor;
|
||||||
|
private final CompanyProcessor companiesProcessor;
|
||||||
private final ExecutorService executor;
|
private final ExecutorService executor;
|
||||||
|
|
||||||
private List<String> validTypes = Arrays.asList("DAY_START", "ON_DEMAND");
|
private List<String> validTypes = Arrays.asList("DAY_START", "ON_DEMAND");
|
||||||
|
|
@ -46,11 +51,12 @@ public class GatewayController {
|
||||||
@Qualifier("fondListingsRequestProcessor") Processor<FondListingsRequestParam> fondListingsRequestProcessor,
|
@Qualifier("fondListingsRequestProcessor") Processor<FondListingsRequestParam> fondListingsRequestProcessor,
|
||||||
@Qualifier("mmListingsRequestProcessor") Processor<MMListingsRequestParam> mmListingsRequestProcessor,
|
@Qualifier("mmListingsRequestProcessor") Processor<MMListingsRequestParam> mmListingsRequestProcessor,
|
||||||
@Qualifier("companiesRequestProcessor") Processor<CompaniesRequestParam> companiesRequestProcessor,
|
@Qualifier("companiesRequestProcessor") Processor<CompaniesRequestParam> companiesRequestProcessor,
|
||||||
@Qualifier("gatewayExecutor") ExecutorService executor) {
|
CompanyProcessor companiesProcessor, @Qualifier("gatewayExecutor") ExecutorService executor) {
|
||||||
this.messageResolver = messageResolver;
|
this.messageResolver = messageResolver;
|
||||||
this.fondListingsRequestProcessor = fondListingsRequestProcessor;
|
this.fondListingsRequestProcessor = fondListingsRequestProcessor;
|
||||||
this.mmListingsRequestProcessor = mmListingsRequestProcessor;
|
this.mmListingsRequestProcessor = mmListingsRequestProcessor;
|
||||||
this.companiesRequestProcessor = companiesRequestProcessor;
|
this.companiesRequestProcessor = companiesRequestProcessor;
|
||||||
|
this.companiesProcessor = companiesProcessor;
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,16 +128,29 @@ public class GatewayController {
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public CommonResponse companies(@RequestBody CompaniesRequest request) {
|
public CommonResponse companies(@RequestBody CompaniesRequest request) {
|
||||||
// request.validate(validTypes, Collections.emptyList());
|
// request.validate(validTypes, Collections.emptyList());
|
||||||
CompaniesRequestParam requestParam = new CompaniesRequestParam(request);
|
|
||||||
executor.submit(() -> {
|
executor.submit(() -> {
|
||||||
ProcessResult processResult = companiesRequestProcessor.process(requestParam);
|
companiesProcessor.process(request);
|
||||||
if (processResult.getError() != null) {
|
|
||||||
log.warn("Exception while process listing_mm: {}", processResult.getError());
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
return createResponse(request, true);
|
return createResponse(request, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "Экспорт участников в клиринговую систему")
|
||||||
|
@ApiResponses(value = {
|
||||||
|
@ApiResponse(code = 200, message = "OK", response = CommonResponse.class),
|
||||||
|
@ApiResponse(code = 400, message = "Ошибка валидации", response = CommonResponse.class)
|
||||||
|
})
|
||||||
|
@RequestMapping(
|
||||||
|
path = "/limits",
|
||||||
|
method = RequestMethod.POST,
|
||||||
|
consumes = MediaType.APPLICATION_JSON_VALUE,
|
||||||
|
produces = MediaType.APPLICATION_JSON_VALUE
|
||||||
|
)
|
||||||
|
@ResponseBody
|
||||||
|
public CommonResponse limits(@RequestBody LimitRequest request) {
|
||||||
|
log.debug("Received message: {}", request);
|
||||||
|
return createResponseByLimit(request.getId());
|
||||||
|
}
|
||||||
|
|
||||||
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
|
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@ExceptionHandler(GatewayException.class)
|
@ExceptionHandler(GatewayException.class)
|
||||||
|
|
@ -155,4 +174,12 @@ public class GatewayController {
|
||||||
return commonResponse;
|
return commonResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private CommonResponse createResponseByLimit(UUID uuid) {
|
||||||
|
CommonResponse commonResponse = new CommonResponse();
|
||||||
|
commonResponse.setId(uuid);
|
||||||
|
// commonResponse.setType(request.getType());
|
||||||
|
commonResponse.setDatetime(Instant.now());
|
||||||
|
// commonResponse.setSection(request.getSection());
|
||||||
|
return commonResponse;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package ru.spcex.clearing.gatewayapi.logic;
|
package ru.spcex.clearing.gatewayapi.logic;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.spcex.clearing.gatewayapi.errors.GatewayError;
|
import ru.spcex.clearing.gatewayapi.errors.GatewayError;
|
||||||
|
|
@ -11,14 +12,14 @@ public class Processor<T> {
|
||||||
private List<Stage<T>> pipeline;
|
private List<Stage<T>> pipeline;
|
||||||
|
|
||||||
public ProcessResult process(T param) {
|
public ProcessResult process(T param) {
|
||||||
try {
|
for (Stage<T> stage : pipeline) {
|
||||||
for (Stage<T> stage : pipeline) {
|
try {
|
||||||
ProcessResult processResult = stage.process(param);
|
ProcessResult processResult = stage.process(param);
|
||||||
if (processResult != null) return processResult;
|
if (processResult != null) return processResult;
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
log.warn("Stage : {} have not been complete successful: {}", stage.getClass(), ExceptionUtils.getMessage(e));
|
||||||
|
return new ProcessResult(GatewayError.InternalError);
|
||||||
}
|
}
|
||||||
} catch (RuntimeException e) {
|
|
||||||
log.error("", e);
|
|
||||||
return new ProcessResult(GatewayError.InternalError);
|
|
||||||
}
|
}
|
||||||
return new ProcessResult();
|
return new ProcessResult();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package ru.spcex.clearing.gatewayapi.logic.companies;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
|
||||||
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
||||||
import ru.spcex.clearing.gatewayapi.request.company.*;
|
import ru.spcex.clearing.gatewayapi.request.company.*;
|
||||||
|
|
@ -25,20 +24,20 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
private final KafkaSender kafkaSender;
|
private final KafkaSender kafkaSender;
|
||||||
private final Imdg<Company> companyImdg;
|
private final Imdg<ru.clearing.classes.statics.data.company.Company> companyImdg;
|
||||||
|
|
||||||
public CompaniesKafkaMessenger(KafkaSender kafkaSender, ImdgProvider imdgProvider) {
|
public CompaniesKafkaMessenger(KafkaSender kafkaSender, ImdgProvider imdgProvider) {
|
||||||
this.kafkaSender = kafkaSender;
|
this.kafkaSender = kafkaSender;
|
||||||
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, ru.clearing.classes.statics.data.company.Company.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProcessResult process(CompaniesRequestParam param) {
|
public ProcessResult process(CompaniesRequestParam param) {
|
||||||
List<MemberCompany> companyList = param.getMemberCompanyList();
|
List<Company> companyList = param.getMemberCompanyList();
|
||||||
for (MemberCompany company : companyList) {
|
for (Company company : companyList) {
|
||||||
if (company.isInvalidData()) continue;
|
if (company.isInvalidData()) continue;
|
||||||
|
|
||||||
MultiCompanyRequest multiCompanyRequest = new MultiCompanyRequest();
|
CompanyGatewayRequest multiCompanyRequest = new CompanyGatewayRequest();
|
||||||
|
|
||||||
CompanyNewRequest companyNewRequest = new CompanyNewRequest();
|
CompanyNewRequest companyNewRequest = new CompanyNewRequest();
|
||||||
companyNewRequest.setShortName(company.getShortName());
|
companyNewRequest.setShortName(company.getShortName());
|
||||||
|
|
@ -51,7 +50,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
||||||
companyNewRequest.setInitiatorCode(company.getInitiatorCode());
|
companyNewRequest.setInitiatorCode(company.getInitiatorCode());
|
||||||
multiCompanyRequest.setCompany(companyNewRequest);
|
multiCompanyRequest.setCompany(companyNewRequest);
|
||||||
|
|
||||||
MemberCompanyInfo companyInfo = company.getCompanyInfo();
|
CompanyInfo companyInfo = company.getCompanyInfo();
|
||||||
CompanyInfoUpdateRequest companyInfoUpdateRequest = new CompanyInfoUpdateRequest();
|
CompanyInfoUpdateRequest companyInfoUpdateRequest = new CompanyInfoUpdateRequest();
|
||||||
companyInfoUpdateRequest.setCountryCode("RUS"); // todo в текущей версии ТЗ присылается в цифровом обозначении
|
companyInfoUpdateRequest.setCountryCode("RUS"); // todo в текущей версии ТЗ присылается в цифровом обозначении
|
||||||
companyInfoUpdateRequest.setProfessionalSign(companyInfo.getProfessionalSign());
|
companyInfoUpdateRequest.setProfessionalSign(companyInfo.getProfessionalSign());
|
||||||
|
|
@ -60,7 +59,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
||||||
companyInfoUpdateRequest.setResidence(companyInfo.getResidence());
|
companyInfoUpdateRequest.setResidence(companyInfo.getResidence());
|
||||||
multiCompanyRequest.setCompanyInfo(companyInfoUpdateRequest);
|
multiCompanyRequest.setCompanyInfo(companyInfoUpdateRequest);
|
||||||
|
|
||||||
for (MemberCompanySymbols companySymbols : company.getMemberCompanySymbolsList()) {
|
for (CompanySymbols companySymbols : company.getMemberCompanySymbolsList()) {
|
||||||
if (companySymbols.isInvalidData()) continue;
|
if (companySymbols.isInvalidData()) continue;
|
||||||
CompanySymbolNewRequest companySymbolNewRequest = new CompanySymbolNewRequest();
|
CompanySymbolNewRequest companySymbolNewRequest = new CompanySymbolNewRequest();
|
||||||
companySymbolNewRequest.setCompanySymbol(companySymbols.getCompanySymbol());
|
companySymbolNewRequest.setCompanySymbol(companySymbols.getCompanySymbol());
|
||||||
|
|
@ -68,7 +67,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
||||||
multiCompanyRequest.getCompanySymbols().add(companySymbolNewRequest);
|
multiCompanyRequest.getCompanySymbols().add(companySymbolNewRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MemberContact contact : company.getContactList()) {
|
for (Contact contact : company.getContactList()) {
|
||||||
if (contact.isInvalidData()) continue;
|
if (contact.isInvalidData()) continue;
|
||||||
ContactNewRequest contactNewRequest = new ContactNewRequest();
|
ContactNewRequest contactNewRequest = new ContactNewRequest();
|
||||||
contactNewRequest.setContactType(contact.getContactType());
|
contactNewRequest.setContactType(contact.getContactType());
|
||||||
|
|
@ -76,7 +75,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
||||||
multiCompanyRequest.getContacts().add(contactNewRequest);
|
multiCompanyRequest.getContacts().add(contactNewRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MemberProfileDocument profileDocument : company.getProfileDocumentList()) {
|
for (ProfileDocument profileDocument : company.getProfileDocumentList()) {
|
||||||
if (profileDocument.isInvalidData()) continue;
|
if (profileDocument.isInvalidData()) continue;
|
||||||
ProfileDocumentNewRequest profileDocumentNewRequest = new ProfileDocumentNewRequest();
|
ProfileDocumentNewRequest profileDocumentNewRequest = new ProfileDocumentNewRequest();
|
||||||
profileDocumentNewRequest.setDocumentType(profileDocument.getDocumentType());
|
profileDocumentNewRequest.setDocumentType(profileDocument.getDocumentType());
|
||||||
|
|
@ -88,7 +87,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
||||||
multiCompanyRequest.getProfileDocuments().add(profileDocumentNewRequest);
|
multiCompanyRequest.getProfileDocuments().add(profileDocumentNewRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MemberClient client : company.getClientList()) {
|
for (Client client : company.getClientList()) {
|
||||||
if (client.isInvalidData()) continue;
|
if (client.isInvalidData()) continue;
|
||||||
|
|
||||||
if (!company.isAlreadyExist() || !client.isAlreadyExist()) {
|
if (!company.isAlreadyExist() || !client.isAlreadyExist()) {
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package ru.spcex.clearing.gatewayapi.logic.companies;
|
package ru.spcex.clearing.gatewayapi.logic.companies;
|
||||||
|
|
||||||
import ru.spcex.clearing.gatewayapi.request.company.CompaniesRequest;
|
import ru.spcex.clearing.gatewayapi.request.company.CompaniesRequest;
|
||||||
import ru.spcex.clearing.gatewayapi.request.company.MemberCompany;
|
import ru.spcex.clearing.gatewayapi.request.company.Company;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class CompaniesRequestParam {
|
public class CompaniesRequestParam {
|
||||||
private final CompaniesRequest companiesRequest;
|
private final CompaniesRequest companiesRequest;
|
||||||
private List<MemberCompany> memberCompanyList = new ArrayList<>();
|
private List<Company> memberCompanyList = new ArrayList<>();
|
||||||
|
|
||||||
public CompaniesRequestParam(CompaniesRequest companiesRequest) {
|
public CompaniesRequestParam(CompaniesRequest companiesRequest) {
|
||||||
this.companiesRequest = companiesRequest;
|
this.companiesRequest = companiesRequest;
|
||||||
|
|
@ -18,11 +18,11 @@ public class CompaniesRequestParam {
|
||||||
return companiesRequest;
|
return companiesRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberCompany> getMemberCompanyList() {
|
public List<Company> getMemberCompanyList() {
|
||||||
return memberCompanyList;
|
return memberCompanyList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMemberCompanyList(List<MemberCompany> memberCompanyList) {
|
public void setMemberCompanyList(List<Company> memberCompanyList) {
|
||||||
this.memberCompanyList = memberCompanyList;
|
this.memberCompanyList = memberCompanyList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.logic.companies;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.company.*;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyGatewayRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class CompanyProcessor {
|
||||||
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
|
private final CompanyRequestAdapter companyRequestAdapter;
|
||||||
|
private final KafkaSender kafkaSender;
|
||||||
|
|
||||||
|
public CompanyProcessor(CompanyRequestAdapter companyRequestAdapter,
|
||||||
|
KafkaSender kafkaSender) {
|
||||||
|
this.companyRequestAdapter = companyRequestAdapter;
|
||||||
|
this.kafkaSender = kafkaSender;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void process(CompaniesRequest request) {
|
||||||
|
List<Company> companyList = request.getCompanyList();
|
||||||
|
for (Company memberCompany : companyList) {
|
||||||
|
UUID companyId = memberCompany.getId();
|
||||||
|
log.debug("Grouping by companyId: {}", companyId);
|
||||||
|
List<CompanyClearingCategory> companyClearingCategories = groupByCompanyId(request.getCompanyClearingCategoryList(), companyId);
|
||||||
|
List<CompanySymbols> companySymbols = groupByCompanyId(request.getMemberCompanySymbolsList(), companyId);
|
||||||
|
List<Contact> contacts = groupByCompanyId(request.getContactList(), companyId);
|
||||||
|
List<ProfileDocument> profileDocuments = groupByCompanyId(request.getProfileDocumentList(), companyId);
|
||||||
|
List<Client> clients = groupByCompanyId(request.getClientList(), companyId);
|
||||||
|
|
||||||
|
List<CompanySymbolNewRequest> companySymbolNewRequests = companySymbols.stream().
|
||||||
|
map(companyRequestAdapter::toCompanySymbolsRequest).toList();
|
||||||
|
List<ContactNewRequest> contactNewRequests = contacts.stream().
|
||||||
|
map(companyRequestAdapter::toContactRequest).toList();
|
||||||
|
List<ProfileDocumentNewRequest> profileDocumentNewRequests = profileDocuments.stream().
|
||||||
|
map(companyRequestAdapter::toProfileDocumentRequest).toList();
|
||||||
|
List<ClientCodeNewRequest> clientCodeNewRequests = clients.stream().
|
||||||
|
map(companyRequestAdapter::toClientRequest).toList();
|
||||||
|
|
||||||
|
CompanyGatewayRequest companyGatewayRequest = new CompanyGatewayRequest();
|
||||||
|
companyGatewayRequest.setCompany(companyRequestAdapter.toCompanyRequest(memberCompany));
|
||||||
|
request.getCompanyInfoList()
|
||||||
|
.stream()
|
||||||
|
.filter(info -> info.getCompanyId().equals(companyId)).findFirst()
|
||||||
|
.map(companyRequestAdapter::toCompanyInfoRequest)
|
||||||
|
.ifPresent(companyGatewayRequest::setCompanyInfo);
|
||||||
|
companyGatewayRequest.setCompanySymbols(companySymbolNewRequests);
|
||||||
|
companyGatewayRequest.setContacts(contactNewRequests);
|
||||||
|
companyGatewayRequest.setProfileDocuments(profileDocumentNewRequests);
|
||||||
|
companyGatewayRequest.setClientCodes(clientCodeNewRequests);
|
||||||
|
|
||||||
|
kafkaSender.sendRequestToQueue(Consts.DESTINATION_COMPANY_MULTIREQUEST, companyGatewayRequest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T extends WithCompanyId> List<T> groupByCompanyId(List<T> listToProcess, UUID companyId) {
|
||||||
|
return listToProcess.stream().filter(t -> t.getCompanyId().equals(companyId)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.logic.companies;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.company.*;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.*;
|
||||||
|
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class CompanyRequestAdapter {
|
||||||
|
|
||||||
|
public CompanyNewRequest toCompanyRequest(Company company) {
|
||||||
|
CompanyNewRequest companyNewRequest = new CompanyNewRequest();
|
||||||
|
companyNewRequest.setShortName(company.getShortName());
|
||||||
|
companyNewRequest.setFullName(company.getFullName());
|
||||||
|
companyNewRequest.setCompanySymbol(CompanySymbol.UUID.getKey());
|
||||||
|
companyNewRequest.setCompanySymbolValue(company.getId().toString());
|
||||||
|
companyNewRequest.setTradingCode(company.getTradingCode());
|
||||||
|
companyNewRequest.setClearingCode(company.getClearingCode());
|
||||||
|
companyNewRequest.setRegistrationCode(company.getRegistrationCode());
|
||||||
|
companyNewRequest.setInitiatorCode(company.getInitiatorCode());
|
||||||
|
return companyNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CompanyInfoUpdateRequest toCompanyInfoRequest(CompanyInfo companyInfo) {
|
||||||
|
CompanyInfoUpdateRequest companyInfoUpdateRequest = new CompanyInfoUpdateRequest();
|
||||||
|
companyInfoUpdateRequest.setCountryCode("RUS"); // todo в текущей версии ТЗ присылается в цифровом обозначении
|
||||||
|
companyInfoUpdateRequest.setProfessionalSign(companyInfo.getProfessionalSign());
|
||||||
|
companyInfoUpdateRequest.setLegalKind(companyInfo.getLegalKind());
|
||||||
|
companyInfoUpdateRequest.setOrganizationType(companyInfo.getOrganizationType());
|
||||||
|
companyInfoUpdateRequest.setResidence(companyInfo.getResidence());
|
||||||
|
return companyInfoUpdateRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CompanySymbolNewRequest toCompanySymbolsRequest(CompanySymbols companySymbols) {
|
||||||
|
CompanySymbolNewRequest companySymbolNewRequest = new CompanySymbolNewRequest();
|
||||||
|
companySymbolNewRequest.setCompanySymbol(companySymbols.getCompanySymbol());
|
||||||
|
companySymbolNewRequest.setCompanySymbolValue(companySymbols.getCompanySymbolValue());
|
||||||
|
return companySymbolNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ContactNewRequest toContactRequest(Contact contact) {
|
||||||
|
ContactNewRequest contactNewRequest = new ContactNewRequest();
|
||||||
|
contactNewRequest.setContactType(contact.getContactType());
|
||||||
|
contactNewRequest.setContactValue(contact.getContactValue());
|
||||||
|
return contactNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProfileDocumentNewRequest toProfileDocumentRequest(ProfileDocument profileDocument) {
|
||||||
|
ProfileDocumentNewRequest profileDocumentNewRequest = new ProfileDocumentNewRequest();
|
||||||
|
profileDocumentNewRequest.setDocumentType(profileDocument.getDocumentType());
|
||||||
|
profileDocumentNewRequest.setIssueDate(profileDocument.getIssueDate());
|
||||||
|
profileDocumentNewRequest.setIssuer(profileDocument.getIssuer());
|
||||||
|
profileDocumentNewRequest.setNumber(profileDocument.getNumber());
|
||||||
|
profileDocumentNewRequest.setValidToDate(profileDocument.getValidToDate());
|
||||||
|
profileDocumentNewRequest.setLink(profileDocument.getLink());
|
||||||
|
return profileDocumentNewRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClientCodeNewRequest toClientRequest(Client client) {
|
||||||
|
ClientCodeNewRequest clientCodeNewRequest = new ClientCodeNewRequest();
|
||||||
|
clientCodeNewRequest.setCode(client.getClientCode());
|
||||||
|
clientCodeNewRequest.setMoneyAccountId(client.getMoneyAccountId());
|
||||||
|
clientCodeNewRequest.setDepoAccountId(client.getDepoAccountId());
|
||||||
|
return clientCodeNewRequest;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||||
import ru.spcex.clearing.gatewayapi.request.company.*;
|
import ru.spcex.clearing.gatewayapi.request.company.*;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -12,16 +13,16 @@ import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
public class PrepareMemberCompaniesLegacy extends Stage<CompaniesRequestParam> {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProcessResult process(CompaniesRequestParam param) {
|
public ProcessResult process(CompaniesRequestParam param) {
|
||||||
CompaniesRequest request = param.getCompaniesRequest();
|
CompaniesRequest request = param.getCompaniesRequest();
|
||||||
|
|
||||||
List<MemberCompany> companyList = request.getCompanyList();
|
List<Company> companyList = request.getCompanyList();
|
||||||
Map<UUID, MemberCompany> companyForUUID = new HashMap<>();
|
Map<UUID, Company> companyForUUID = new HashMap<>();
|
||||||
for (MemberCompany memberCompany : companyList) {
|
for (Company memberCompany : companyList) {
|
||||||
if (companyForUUID.containsKey(memberCompany.getId())) {
|
if (companyForUUID.containsKey(memberCompany.getId())) {
|
||||||
log.warn("For company.id {} found > 1 element from request, use first", memberCompany.getId());
|
log.warn("For company.id {} found > 1 element from request, use first", memberCompany.getId());
|
||||||
memberCompany.setInvalidData(true);
|
memberCompany.setInvalidData(true);
|
||||||
|
|
@ -30,10 +31,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
companyForUUID.put(memberCompany.getId(), memberCompany);
|
companyForUUID.put(memberCompany.getId(), memberCompany);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberCompanyInfo> companyInfoList = request.getCompanyInfoList();
|
List<CompanyInfo> companyInfoList = request.getCompanyInfoList();
|
||||||
for (MemberCompanyInfo companyInfo : companyInfoList) {
|
for (CompanyInfo companyInfo : companyInfoList) {
|
||||||
UUID companyInfoUUID = companyInfo.getCompanyId();
|
UUID companyInfoUUID = companyInfo.getCompanyId();
|
||||||
MemberCompany company = companyForUUID.get(companyInfoUUID);
|
Company company = companyForUUID.get(companyInfoUUID);
|
||||||
if (company == null) {
|
if (company == null) {
|
||||||
log.warn("For company_info.company_id {} not found company, company_info skipped", companyInfoUUID);
|
log.warn("For company_info.company_id {} not found company, company_info skipped", companyInfoUUID);
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -41,10 +42,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
company.setCompanyInfo(companyInfo);
|
company.setCompanyInfo(companyInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberCompanySymbols> memberCompanySymbolsList = param.getCompaniesRequest().getMemberCompanySymbolsList();
|
List<CompanySymbols> memberCompanySymbolsList = param.getCompaniesRequest().getMemberCompanySymbolsList();
|
||||||
for (MemberCompanySymbols memberCompanySymbols : memberCompanySymbolsList) {
|
for (CompanySymbols memberCompanySymbols : memberCompanySymbolsList) {
|
||||||
UUID memberCompanySymbolsUUID = memberCompanySymbols.getCompanyId();
|
UUID memberCompanySymbolsUUID = memberCompanySymbols.getCompanyId();
|
||||||
MemberCompany memberCompany = companyForUUID.get(memberCompanySymbolsUUID);
|
Company memberCompany = companyForUUID.get(memberCompanySymbolsUUID);
|
||||||
if (memberCompany == null) {
|
if (memberCompany == null) {
|
||||||
log.warn("For company_symbols ({} = {}) not found company, company_symbols skipped",
|
log.warn("For company_symbols ({} = {}) not found company, company_symbols skipped",
|
||||||
memberCompanySymbols.getCompanySymbol(),
|
memberCompanySymbols.getCompanySymbol(),
|
||||||
|
|
@ -55,10 +56,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
memberCompany.getMemberCompanySymbolsList().add(memberCompanySymbols);
|
memberCompany.getMemberCompanySymbolsList().add(memberCompanySymbols);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberContact> memberContactList = param.getCompaniesRequest().getContactList();
|
List<Contact> memberContactList = param.getCompaniesRequest().getContactList();
|
||||||
for (MemberContact memberContact : memberContactList) {
|
for (Contact memberContact : memberContactList) {
|
||||||
UUID memberContactUUID = memberContact.getCompanyId();
|
UUID memberContactUUID = memberContact.getCompanyId();
|
||||||
MemberCompany memberCompany = companyForUUID.get(memberContactUUID);
|
Company memberCompany = companyForUUID.get(memberContactUUID);
|
||||||
if (memberCompany == null) {
|
if (memberCompany == null) {
|
||||||
log.warn("For contact ({} = {}) not found company, skipped",
|
log.warn("For contact ({} = {}) not found company, skipped",
|
||||||
memberContact.getContactType(),
|
memberContact.getContactType(),
|
||||||
|
|
@ -69,10 +70,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
memberCompany.getContactList().add(memberContact);
|
memberCompany.getContactList().add(memberContact);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberCompanyClearingCategory> companyClearingCategoryList = param.getCompaniesRequest().getCompanyClearingCategoryList();
|
List<CompanyClearingCategory> companyClearingCategoryList = param.getCompaniesRequest().getCompanyClearingCategoryList();
|
||||||
for (MemberCompanyClearingCategory companyClearingCategory : companyClearingCategoryList) {
|
for (CompanyClearingCategory companyClearingCategory : companyClearingCategoryList) {
|
||||||
UUID companyClearingCategoryUUID = companyClearingCategory.getCompanyId();
|
UUID companyClearingCategoryUUID = companyClearingCategory.getCompanyId();
|
||||||
MemberCompany memberCompany = companyForUUID.get(companyClearingCategoryUUID);
|
Company memberCompany = companyForUUID.get(companyClearingCategoryUUID);
|
||||||
if (memberCompany == null) {
|
if (memberCompany == null) {
|
||||||
log.warn("For company_clearing_category ({}) not found company, skipped", companyClearingCategory.getCategory());
|
log.warn("For company_clearing_category ({}) not found company, skipped", companyClearingCategory.getCategory());
|
||||||
companyClearingCategory.setInvalidData(true);
|
companyClearingCategory.setInvalidData(true);
|
||||||
|
|
@ -81,10 +82,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
memberCompany.getCompanyClearingCategoryList().add(companyClearingCategory);
|
memberCompany.getCompanyClearingCategoryList().add(companyClearingCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberProfileDocument> memberProfileDocumentList = param.getCompaniesRequest().getProfileDocumentList();
|
List<ProfileDocument> memberProfileDocumentList = param.getCompaniesRequest().getProfileDocumentList();
|
||||||
for (MemberProfileDocument memberProfileDocument : memberProfileDocumentList) {
|
for (ProfileDocument memberProfileDocument : memberProfileDocumentList) {
|
||||||
UUID profileDocumentUUID = memberProfileDocument.getCompanyId();
|
UUID profileDocumentUUID = memberProfileDocument.getCompanyId();
|
||||||
MemberCompany memberCompany = companyForUUID.get(profileDocumentUUID);
|
Company memberCompany = companyForUUID.get(profileDocumentUUID);
|
||||||
if (memberCompany == null) {
|
if (memberCompany == null) {
|
||||||
log.warn("For profile_document (document_type {}) not found company, skipped", memberProfileDocument.getDocumentType());
|
log.warn("For profile_document (document_type {}) not found company, skipped", memberProfileDocument.getDocumentType());
|
||||||
memberProfileDocument.setInvalidData(true);
|
memberProfileDocument.setInvalidData(true);
|
||||||
|
|
@ -93,10 +94,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
memberCompany.getProfileDocumentList().add(memberProfileDocument);
|
memberCompany.getProfileDocumentList().add(memberProfileDocument);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberClient> memberClientList = param.getCompaniesRequest().getClientList();
|
List<Client> memberClientList = param.getCompaniesRequest().getClientList();
|
||||||
for (MemberClient memberClient : memberClientList) {
|
for (Client memberClient : memberClientList) {
|
||||||
UUID clientUUID = memberClient.getCompanyId();
|
UUID clientUUID = memberClient.getCompanyId();
|
||||||
MemberCompany memberCompany = companyForUUID.get(clientUUID);
|
Company memberCompany = companyForUUID.get(clientUUID);
|
||||||
if (memberCompany == null) {
|
if (memberCompany == null) {
|
||||||
log.warn("For client (client_code {}) not found company, skipped", memberClient.getClientCode());
|
log.warn("For client (client_code {}) not found company, skipped", memberClient.getClientCode());
|
||||||
memberClient.setInvalidData(true);
|
memberClient.setInvalidData(true);
|
||||||
|
|
@ -105,7 +106,7 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
memberCompany.getClientList().add(memberClient);
|
memberCompany.getClientList().add(memberClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberCompany> filteredIssuerCompany = companyList.stream()
|
List<Company> filteredIssuerCompany = companyList.stream()
|
||||||
.filter(memberCompany -> !memberCompany.isInvalidData())
|
.filter(memberCompany -> !memberCompany.isInvalidData())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
@ -116,4 +117,7 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private <T extends WithCompanyId> List<T> groupByCompanyId(List<T> listToProcess, UUID companyId) {
|
||||||
|
return listToProcess.stream().filter(t -> t.getCompanyId().equals(companyId)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3,10 +3,6 @@ package ru.spcex.clearing.gatewayapi.logic.legacy;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.clearing.classes.statics.data.account.*;
|
import ru.clearing.classes.statics.data.account.*;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
|
||||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
|
||||||
import ru.clearing.classes.statics.data.profile.Contact;
|
|
||||||
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
|
||||||
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
||||||
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
|
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
|
||||||
|
|
@ -26,10 +22,10 @@ import java.util.stream.Collectors;
|
||||||
public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
private final Imdg<Company> companyImdg;
|
private final Imdg<ru.clearing.classes.statics.data.company.Company> companyImdg;
|
||||||
private final Imdg<CompanySymbols> companySymbolsImdg;
|
private final Imdg<ru.clearing.classes.statics.data.company.CompanySymbols> companySymbolsImdg;
|
||||||
private final Imdg<Contact> contactImdg;
|
private final Imdg<ru.clearing.classes.statics.data.profile.Contact> contactImdg;
|
||||||
private final Imdg<ProfileDocument> profileDocumentImdg;
|
private final Imdg<ru.clearing.classes.statics.data.profile.ProfileDocument> profileDocumentImdg;
|
||||||
private final Imdg<ClientCode> clientCodeImdg;
|
private final Imdg<ClientCode> clientCodeImdg;
|
||||||
private final Imdg<Account> accountImdg;
|
private final Imdg<Account> accountImdg;
|
||||||
private final Imdg<ClearingAccount> clearingAccountImdg;
|
private final Imdg<ClearingAccount> clearingAccountImdg;
|
||||||
|
|
@ -37,10 +33,10 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
private final Imdg<DepoAccount> depoAccountImdg;
|
private final Imdg<DepoAccount> depoAccountImdg;
|
||||||
|
|
||||||
public CheckMemberCompanyExist(ImdgProvider imdgProvider) {
|
public CheckMemberCompanyExist(ImdgProvider imdgProvider) {
|
||||||
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, ru.clearing.classes.statics.data.company.Company.class);
|
||||||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, ru.clearing.classes.statics.data.company.CompanySymbols.class);
|
||||||
contactImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, Contact.class);
|
contactImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, ru.clearing.classes.statics.data.profile.Contact.class);
|
||||||
profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
|
profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ru.clearing.classes.statics.data.profile.ProfileDocument.class);
|
||||||
clientCodeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClientCode, ClientCode.class);
|
clientCodeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClientCode, ClientCode.class);
|
||||||
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||||
clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
|
clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
|
||||||
|
|
@ -51,13 +47,13 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProcessResult process(CompaniesRequestParam param) {
|
public ProcessResult process(CompaniesRequestParam param) {
|
||||||
List<MemberCompany> companyList = param.getMemberCompanyList();
|
List<Company> companyList = param.getMemberCompanyList();
|
||||||
|
|
||||||
for (MemberCompany company : companyList) {
|
for (Company company : companyList) {
|
||||||
List<MemberCompanySymbols> companySymbolsList = company.getMemberCompanySymbolsList();
|
List<CompanySymbols> companySymbolsList = company.getMemberCompanySymbolsList();
|
||||||
|
|
||||||
Map<CompanySymbol, String> companySymbolMap = new HashMap<>();
|
Map<CompanySymbol, String> companySymbolMap = new HashMap<>();
|
||||||
for (MemberCompanySymbols memberCompanySymbol : companySymbolsList) {
|
for (CompanySymbols memberCompanySymbol : companySymbolsList) {
|
||||||
if (
|
if (
|
||||||
!memberCompanySymbol.isInvalidData() &&
|
!memberCompanySymbol.isInvalidData() &&
|
||||||
!CompanySymbol.CIO.equalsByKey(memberCompanySymbol.getCompanySymbol()) &&
|
!CompanySymbol.CIO.equalsByKey(memberCompanySymbol.getCompanySymbol()) &&
|
||||||
|
|
@ -76,10 +72,10 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Проверяем реквизиты на необходимость обновления
|
// Проверяем реквизиты на необходимость обновления
|
||||||
for (MemberCompanySymbols companySymbols : companySymbolsList) {
|
for (CompanySymbols companySymbols : companySymbolsList) {
|
||||||
if (companySymbols.isInvalidData()) continue;
|
if (companySymbols.isInvalidData()) continue;
|
||||||
|
|
||||||
Collection<CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
|
Collection<ru.clearing.classes.statics.data.company.CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
|
||||||
Map.of(
|
Map.of(
|
||||||
"companyId", companyId,
|
"companyId", companyId,
|
||||||
"companySymbol", companySymbols.getCompanySymbol()
|
"companySymbol", companySymbols.getCompanySymbol()
|
||||||
|
|
@ -88,7 +84,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
if (companySymbolsFromImdg.isEmpty()) {
|
if (companySymbolsFromImdg.isEmpty()) {
|
||||||
companySymbols.setAlreadyExist(false);
|
companySymbols.setAlreadyExist(false);
|
||||||
} else {
|
} else {
|
||||||
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
ru.clearing.classes.statics.data.company.CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||||
if (companySymbolsFromImdg.size() > 1) {
|
if (companySymbolsFromImdg.size() > 1) {
|
||||||
log.warn("For company_symbols ({}={}) found > 1 own company_symbols, " +
|
log.warn("For company_symbols ({}={}) found > 1 own company_symbols, " +
|
||||||
"update first (company_symbols.id = {})",
|
"update first (company_symbols.id = {})",
|
||||||
|
|
@ -103,11 +99,11 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
|
|
||||||
// Проверяем контакты, документы и клиентов на необходимость обновления
|
// Проверяем контакты, документы и клиентов на необходимость обновления
|
||||||
if (company.isAlreadyExist()) {
|
if (company.isAlreadyExist()) {
|
||||||
List<MemberContact> contactList = company.getContactList();
|
List<Contact> contactList = company.getContactList();
|
||||||
for (MemberContact contact : contactList) {
|
for (Contact contact : contactList) {
|
||||||
if (contact.isInvalidData()) continue;
|
if (contact.isInvalidData()) continue;
|
||||||
|
|
||||||
Collection<Contact> contactsFromImdg = contactImdg.getCollectionObjectsByFieldValues(
|
Collection<ru.clearing.classes.statics.data.profile.Contact> contactsFromImdg = contactImdg.getCollectionObjectsByFieldValues(
|
||||||
Map.of(
|
Map.of(
|
||||||
"companyId", companyId,
|
"companyId", companyId,
|
||||||
"contactType", contact.getContactType()
|
"contactType", contact.getContactType()
|
||||||
|
|
@ -116,7 +112,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
if (contactsFromImdg.isEmpty()) {
|
if (contactsFromImdg.isEmpty()) {
|
||||||
contact.setAlreadyExist(false);
|
contact.setAlreadyExist(false);
|
||||||
} else {
|
} else {
|
||||||
Contact contactFromImdg = contactsFromImdg.iterator().next();
|
ru.clearing.classes.statics.data.profile.Contact contactFromImdg = contactsFromImdg.iterator().next();
|
||||||
if (contactsFromImdg.size() > 1) {
|
if (contactsFromImdg.size() > 1) {
|
||||||
log.warn("Found contact > 1 for contact_type {}, update first (id = {})",
|
log.warn("Found contact > 1 for contact_type {}, update first (id = {})",
|
||||||
contactFromImdg.getContactType(),
|
contactFromImdg.getContactType(),
|
||||||
|
|
@ -127,11 +123,11 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberProfileDocument> memberProfileDocumentList = company.getProfileDocumentList();
|
List<ProfileDocument> memberProfileDocumentList = company.getProfileDocumentList();
|
||||||
for (MemberProfileDocument memberProfileDocument : memberProfileDocumentList) {
|
for (ProfileDocument memberProfileDocument : memberProfileDocumentList) {
|
||||||
if (memberProfileDocument.isInvalidData()) continue;
|
if (memberProfileDocument.isInvalidData()) continue;
|
||||||
|
|
||||||
Collection<ProfileDocument> profileDocumentsFromImdg = profileDocumentImdg.getCollectionObjectsByFieldValues(
|
Collection<ru.clearing.classes.statics.data.profile.ProfileDocument> profileDocumentsFromImdg = profileDocumentImdg.getCollectionObjectsByFieldValues(
|
||||||
Map.of(
|
Map.of(
|
||||||
"companyId", companyId,
|
"companyId", companyId,
|
||||||
"documentType", memberProfileDocument.getDocumentType()
|
"documentType", memberProfileDocument.getDocumentType()
|
||||||
|
|
@ -140,7 +136,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
if (profileDocumentsFromImdg.isEmpty()) {
|
if (profileDocumentsFromImdg.isEmpty()) {
|
||||||
memberProfileDocument.setAlreadyExist(false);
|
memberProfileDocument.setAlreadyExist(false);
|
||||||
} else {
|
} else {
|
||||||
ProfileDocument profileDocument = profileDocumentsFromImdg.iterator().next();
|
ru.clearing.classes.statics.data.profile.ProfileDocument profileDocument = profileDocumentsFromImdg.iterator().next();
|
||||||
if (profileDocumentsFromImdg.size() > 1) {
|
if (profileDocumentsFromImdg.size() > 1) {
|
||||||
log.warn("Found profile_document > 1 for document_type {} (company.id {}), update first (id = {})",
|
log.warn("Found profile_document > 1 for document_type {} (company.id {}), update first (id = {})",
|
||||||
memberProfileDocument.getDocumentType(),
|
memberProfileDocument.getDocumentType(),
|
||||||
|
|
@ -152,8 +148,8 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberClient> memberClientList = company.getClientList();
|
List<Client> memberClientList = company.getClientList();
|
||||||
for (MemberClient memberClient : memberClientList) {
|
for (Client memberClient : memberClientList) {
|
||||||
if (memberClient.isInvalidData()) continue;
|
if (memberClient.isInvalidData()) continue;
|
||||||
|
|
||||||
Collection<ClientCode> clientCodesFromImdg = clientCodeImdg.getCollectionObjectsByFieldValues(
|
Collection<ClientCode> clientCodesFromImdg = clientCodeImdg.getCollectionObjectsByFieldValues(
|
||||||
|
|
@ -183,7 +179,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MemberCompany> filteredMemberCompany = companyList.stream()
|
List<Company> filteredMemberCompany = companyList.stream()
|
||||||
.filter(memberCompany -> !memberCompany.isInvalidData())
|
.filter(memberCompany -> !memberCompany.isInvalidData())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
@ -192,7 +188,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fillMemberClientMoneyOrDepoAccountId(MemberCompany company, MemberClient client) {
|
private void fillMemberClientMoneyOrDepoAccountId(Company company, Client client) {
|
||||||
String moneyAccount = client.getMoneyAccount();
|
String moneyAccount = client.getMoneyAccount();
|
||||||
Collection<Account> accountFromImdg = accountImdg.getCollectionObjectsByFieldValues(
|
Collection<Account> accountFromImdg = accountImdg.getCollectionObjectsByFieldValues(
|
||||||
Map.of("account", moneyAccount)
|
Map.of("account", moneyAccount)
|
||||||
|
|
@ -248,14 +244,14 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
|
|
||||||
|
|
||||||
private Long getCompanyIdForCompanySymbols(String uuid, Map<CompanySymbol, String> INNorCIO) {
|
private Long getCompanyIdForCompanySymbols(String uuid, Map<CompanySymbol, String> INNorCIO) {
|
||||||
Collection<CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
|
Collection<ru.clearing.classes.statics.data.company.CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
|
||||||
Map.of(
|
Map.of(
|
||||||
"companySymbol", CompanySymbol.UUID.getKey(),
|
"companySymbol", CompanySymbol.UUID.getKey(),
|
||||||
"companySymbolValue", uuid
|
"companySymbolValue", uuid
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
if (!companySymbolsFromImdg.isEmpty()) {
|
if (!companySymbolsFromImdg.isEmpty()) {
|
||||||
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
ru.clearing.classes.statics.data.company.CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||||
if (companySymbolsFromImdg.size() > 1) {
|
if (companySymbolsFromImdg.size() > 1) {
|
||||||
log.warn("For UUID found > 1 company_symbols, use first (id = {})", companySymbolFromImdg.getId());
|
log.warn("For UUID found > 1 company_symbols, use first (id = {})", companySymbolFromImdg.getId());
|
||||||
}
|
}
|
||||||
|
|
@ -276,8 +272,8 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||||
if (companySymbolsFromImdg.size() > 1)
|
if (companySymbolsFromImdg.size() > 1)
|
||||||
log.warn("For {} = {} found > 1 company_symbols, use first", companySymbol.getKey(), companySymbolValue);
|
log.warn("For {} = {} found > 1 company_symbols, use first", companySymbol.getKey(), companySymbolValue);
|
||||||
|
|
||||||
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
ru.clearing.classes.statics.data.company.CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||||
Company companyFromImdg = companyImdg.getSingleObjectByID(companySymbolFromImdg.getCompanyId());
|
ru.clearing.classes.statics.data.company.Company companyFromImdg = companyImdg.getSingleObjectByID(companySymbolFromImdg.getCompanyId());
|
||||||
|
|
||||||
if (companyFromImdg == null) {
|
if (companyFromImdg == null) {
|
||||||
// Случай, когда реквизиты есть, а компании нет (по сути данных ошибка в мапе)
|
// Случай, когда реквизиты есть, а компании нет (по сути данных ошибка в мапе)
|
||||||
|
|
|
||||||
|
|
@ -67,9 +67,9 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProcessResult process(CompaniesRequestParam param) {
|
public ProcessResult process(CompaniesRequestParam param) {
|
||||||
List<MemberCompany> memberCompanyList = param.getMemberCompanyList();
|
List<Company> memberCompanyList = param.getMemberCompanyList();
|
||||||
|
|
||||||
for (MemberCompany company : memberCompanyList) {
|
for (Company company : memberCompanyList) {
|
||||||
if (company.isInvalidData()) continue;
|
if (company.isInvalidData()) continue;
|
||||||
|
|
||||||
if (StringUtils.isEmpty(company.getShortName())) {
|
if (StringUtils.isEmpty(company.getShortName())) {
|
||||||
|
|
@ -78,7 +78,7 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MemberCompanyClearingCategory companyClearingCategory : company.getCompanyClearingCategoryList()) {
|
for (CompanyClearingCategory companyClearingCategory : company.getCompanyClearingCategoryList()) {
|
||||||
String workflowStatusStr = companyClearingCategory.getWorkflowStatus();
|
String workflowStatusStr = companyClearingCategory.getWorkflowStatus();
|
||||||
ServiceStatus workflowStatus = IEnumKey.getEnumByKey(ServiceStatus.class, workflowStatusStr);
|
ServiceStatus workflowStatus = IEnumKey.getEnumByKey(ServiceStatus.class, workflowStatusStr);
|
||||||
if (!validWorkflowStatus.contains(workflowStatus)) {
|
if (!validWorkflowStatus.contains(workflowStatus)) {
|
||||||
|
|
@ -94,7 +94,7 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MemberCompanySymbols companySymbols : company.getMemberCompanySymbolsList()) {
|
for (CompanySymbols companySymbols : company.getMemberCompanySymbolsList()) {
|
||||||
String companySymbolStr = companySymbols.getCompanySymbol();
|
String companySymbolStr = companySymbols.getCompanySymbol();
|
||||||
CompanySymbol companySymbol = IEnumKey.getEnumByKey(CompanySymbol.class, companySymbolStr);
|
CompanySymbol companySymbol = IEnumKey.getEnumByKey(CompanySymbol.class, companySymbolStr);
|
||||||
if (!validCompanySymbols.contains(companySymbol)) {
|
if (!validCompanySymbols.contains(companySymbol)) {
|
||||||
|
|
@ -108,7 +108,7 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MemberContact contact : company.getContactList()) {
|
for (Contact contact : company.getContactList()) {
|
||||||
|
|
||||||
String contactTypeStr = contact.getContactType();
|
String contactTypeStr = contact.getContactType();
|
||||||
ContactTypes contactType = IEnumKey.getEnumByKey(ContactTypes.class, contactTypeStr);
|
ContactTypes contactType = IEnumKey.getEnumByKey(ContactTypes.class, contactTypeStr);
|
||||||
|
|
@ -124,7 +124,7 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MemberProfileDocument memberProfileDocument : company.getProfileDocumentList()) {
|
for (ProfileDocument memberProfileDocument : company.getProfileDocumentList()) {
|
||||||
String documentTypeStr = memberProfileDocument.getDocumentType();
|
String documentTypeStr = memberProfileDocument.getDocumentType();
|
||||||
DocumentTypes documentType = IEnumKey.getEnumByKey(DocumentTypes.class, documentTypeStr);
|
DocumentTypes documentType = IEnumKey.getEnumByKey(DocumentTypes.class, documentTypeStr);
|
||||||
if (!validDocumentTypes.contains(documentType)) {
|
if (!validDocumentTypes.contains(documentType)) {
|
||||||
|
|
@ -153,7 +153,7 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MemberClient memberClient : company.getClientList()) {
|
for (Client memberClient : company.getClientList()) {
|
||||||
if (StringUtils.isEmpty(memberClient.getClientCode())) {
|
if (StringUtils.isEmpty(memberClient.getClientCode())) {
|
||||||
log.warn("client_code is null or empty for client, company.id {}", company.getId());
|
log.warn("client_code is null or empty for client, company.id {}", company.getId());
|
||||||
memberClient.setInvalidData(true);
|
memberClient.setInvalidData(true);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public interface WithCompanyId {
|
||||||
|
UUID getCompanyId();
|
||||||
|
}
|
||||||
|
|
@ -3,11 +3,12 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class MemberClient extends WithMapId {
|
public class Client extends WithMapId implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на company",
|
value = "Ссылка на company",
|
||||||
|
|
@ -44,6 +45,7 @@ public class MemberClient extends WithMapId {
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private Long depoAccountId = null;
|
private Long depoAccountId = null;
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
@ -10,86 +10,86 @@ import java.util.List;
|
||||||
public class CompaniesRequest extends CommonRequest {
|
public class CompaniesRequest extends CommonRequest {
|
||||||
@JsonProperty("company")
|
@JsonProperty("company")
|
||||||
@ApiModelProperty(value = "Список компаний")
|
@ApiModelProperty(value = "Список компаний")
|
||||||
private List<MemberCompany> companyList = new ArrayList<>();
|
private List<Company> companyList = new ArrayList<>();
|
||||||
|
|
||||||
@JsonProperty("company_info")
|
@JsonProperty("company_info")
|
||||||
@ApiModelProperty(value = "Список профилей участников")
|
@ApiModelProperty(value = "Список профилей участников")
|
||||||
private List<MemberCompanyInfo> companyInfoList = new ArrayList<>();
|
private List<CompanyInfo> companyInfoList = new ArrayList<>();
|
||||||
|
|
||||||
@JsonProperty("company_clearing_category")
|
@JsonProperty("company_clearing_category")
|
||||||
@ApiModelProperty(value = "Список категорий участников клиринга")
|
@ApiModelProperty(value = "Список категорий участников клиринга")
|
||||||
private List<MemberCompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
private List<CompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
||||||
|
|
||||||
@JsonProperty("company_symbols")
|
@JsonProperty("company_symbols")
|
||||||
@ApiModelProperty(value = "Список реквизитов участников")
|
@ApiModelProperty(value = "Список реквизитов участников")
|
||||||
private List<MemberCompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
private List<CompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
||||||
|
|
||||||
@JsonProperty("contact")
|
@JsonProperty("contact")
|
||||||
@ApiModelProperty(value = "Список контактов участников")
|
@ApiModelProperty(value = "Список контактов участников")
|
||||||
private List<MemberContact> contactList = new ArrayList<>();
|
private List<Contact> contactList = new ArrayList<>();
|
||||||
|
|
||||||
@JsonProperty("profile_document")
|
@JsonProperty("profile_document")
|
||||||
@ApiModelProperty(value = "Список документов участников")
|
@ApiModelProperty(value = "Список документов участников")
|
||||||
private List<MemberProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
private List<ProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
||||||
|
|
||||||
@JsonProperty("client")
|
@JsonProperty("client")
|
||||||
@ApiModelProperty(value = "Список клиентов участников")
|
@ApiModelProperty(value = "Список клиентов участников")
|
||||||
private List<MemberClient> memberClientList = new ArrayList<>();
|
private List<Client> memberClientList = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
public List<MemberCompany> getCompanyList() {
|
public List<Company> getCompanyList() {
|
||||||
return companyList;
|
return companyList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCompanyList(List<MemberCompany> companyList) {
|
public void setCompanyList(List<Company> companyList) {
|
||||||
this.companyList = companyList;
|
this.companyList = companyList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberCompanyInfo> getCompanyInfoList() {
|
public List<CompanyInfo> getCompanyInfoList() {
|
||||||
return companyInfoList;
|
return companyInfoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCompanyInfoList(List<MemberCompanyInfo> companyInfoList) {
|
public void setCompanyInfoList(List<CompanyInfo> companyInfoList) {
|
||||||
this.companyInfoList = companyInfoList;
|
this.companyInfoList = companyInfoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberCompanyClearingCategory> getCompanyClearingCategoryList() {
|
public List<CompanyClearingCategory> getCompanyClearingCategoryList() {
|
||||||
return companyClearingCategoryList;
|
return companyClearingCategoryList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCompanyClearingCategoryList(List<MemberCompanyClearingCategory> companyClearingCategoryList) {
|
public void setCompanyClearingCategoryList(List<CompanyClearingCategory> companyClearingCategoryList) {
|
||||||
this.companyClearingCategoryList = companyClearingCategoryList;
|
this.companyClearingCategoryList = companyClearingCategoryList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberCompanySymbols> getMemberCompanySymbolsList() {
|
public List<CompanySymbols> getMemberCompanySymbolsList() {
|
||||||
return memberCompanySymbolsList;
|
return memberCompanySymbolsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMemberCompanySymbolsList(List<MemberCompanySymbols> memberCompanySymbolsList) {
|
public void setMemberCompanySymbolsList(List<CompanySymbols> memberCompanySymbolsList) {
|
||||||
this.memberCompanySymbolsList = memberCompanySymbolsList;
|
this.memberCompanySymbolsList = memberCompanySymbolsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberContact> getContactList() {
|
public List<Contact> getContactList() {
|
||||||
return contactList;
|
return contactList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setContactList(List<MemberContact> contactList) {
|
public void setContactList(List<Contact> contactList) {
|
||||||
this.contactList = contactList;
|
this.contactList = contactList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberProfileDocument> getProfileDocumentList() {
|
public List<ProfileDocument> getProfileDocumentList() {
|
||||||
return memberProfileDocumentList;
|
return memberProfileDocumentList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProfileDocumentList(List<MemberProfileDocument> memberProfileDocumentList) {
|
public void setProfileDocumentList(List<ProfileDocument> memberProfileDocumentList) {
|
||||||
this.memberProfileDocumentList = memberProfileDocumentList;
|
this.memberProfileDocumentList = memberProfileDocumentList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberClient> getClientList() {
|
public List<Client> getClientList() {
|
||||||
return memberClientList;
|
return memberClientList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setClientList(List<MemberClient> memberClientList) {
|
public void setClientList(List<Client> memberClientList) {
|
||||||
this.memberClientList = memberClientList;
|
this.memberClientList = memberClientList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* Компания участник
|
* Компания участник
|
||||||
*/
|
*/
|
||||||
public class MemberCompany extends WithMapId {
|
public class Company extends WithMapId {
|
||||||
@JsonProperty("id")
|
@JsonProperty("id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Идентификатор участника",
|
value = "Идентификатор участника",
|
||||||
|
|
@ -65,27 +65,27 @@ public class MemberCompany extends WithMapId {
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private MemberCompanyInfo companyInfo;
|
private CompanyInfo companyInfo;
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private List<MemberCompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
private List<CompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private List<MemberCompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
private List<CompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private List<MemberContact> contactList = new ArrayList<>();
|
private List<Contact> contactList = new ArrayList<>();
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private List<MemberProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
private List<ProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
||||||
|
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private List<MemberClient> memberClientList = new ArrayList<>();
|
private List<Client> memberClientList = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
public UUID getId() {
|
public UUID getId() {
|
||||||
|
|
@ -144,51 +144,51 @@ public class MemberCompany extends WithMapId {
|
||||||
this.initiatorCode = initiatorCode;
|
this.initiatorCode = initiatorCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MemberCompanyInfo getCompanyInfo() {
|
public CompanyInfo getCompanyInfo() {
|
||||||
return companyInfo;
|
return companyInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCompanyInfo(MemberCompanyInfo companyInfo) {
|
public void setCompanyInfo(CompanyInfo companyInfo) {
|
||||||
this.companyInfo = companyInfo;
|
this.companyInfo = companyInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberCompanyClearingCategory> getCompanyClearingCategoryList() {
|
public List<CompanyClearingCategory> getCompanyClearingCategoryList() {
|
||||||
return companyClearingCategoryList;
|
return companyClearingCategoryList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCompanyClearingCategoryList(List<MemberCompanyClearingCategory> companyClearingCategoryList) {
|
public void setCompanyClearingCategoryList(List<CompanyClearingCategory> companyClearingCategoryList) {
|
||||||
this.companyClearingCategoryList = companyClearingCategoryList;
|
this.companyClearingCategoryList = companyClearingCategoryList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberCompanySymbols> getMemberCompanySymbolsList() {
|
public List<CompanySymbols> getMemberCompanySymbolsList() {
|
||||||
return memberCompanySymbolsList;
|
return memberCompanySymbolsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMemberCompanySymbolsList(List<MemberCompanySymbols> memberCompanySymbolsList) {
|
public void setMemberCompanySymbolsList(List<CompanySymbols> memberCompanySymbolsList) {
|
||||||
this.memberCompanySymbolsList = memberCompanySymbolsList;
|
this.memberCompanySymbolsList = memberCompanySymbolsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberContact> getContactList() {
|
public List<Contact> getContactList() {
|
||||||
return contactList;
|
return contactList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setContactList(List<MemberContact> contactList) {
|
public void setContactList(List<Contact> contactList) {
|
||||||
this.contactList = contactList;
|
this.contactList = contactList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberProfileDocument> getProfileDocumentList() {
|
public List<ProfileDocument> getProfileDocumentList() {
|
||||||
return memberProfileDocumentList;
|
return memberProfileDocumentList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProfileDocumentList(List<MemberProfileDocument> memberProfileDocumentList) {
|
public void setProfileDocumentList(List<ProfileDocument> memberProfileDocumentList) {
|
||||||
this.memberProfileDocumentList = memberProfileDocumentList;
|
this.memberProfileDocumentList = memberProfileDocumentList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<MemberClient> getClientList() {
|
public List<Client> getClientList() {
|
||||||
return memberClientList;
|
return memberClientList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setClientList(List<MemberClient> memberClientList) {
|
public void setClientList(List<Client> memberClientList) {
|
||||||
this.memberClientList = memberClientList;
|
this.memberClientList = memberClientList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2,11 +2,12 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class MemberCompanyClearingCategory extends WithMapId {
|
public class CompanyClearingCategory extends WithMapId implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на company",
|
value = "Ссылка на company",
|
||||||
|
|
@ -45,6 +46,7 @@ public class MemberCompanyClearingCategory extends WithMapId {
|
||||||
private String workflowStatus;
|
private String workflowStatus;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
@ -2,10 +2,11 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class MemberCompanyInfo {
|
public class CompanyInfo implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на company",
|
value = "Ссылка на company",
|
||||||
|
|
@ -56,7 +57,7 @@ public class MemberCompanyInfo {
|
||||||
)
|
)
|
||||||
private String residence;
|
private String residence;
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
@ -2,11 +2,12 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class MemberCompanySymbols extends WithMapId {
|
public class CompanySymbols extends WithMapId implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на company",
|
value = "Ссылка на company",
|
||||||
|
|
@ -42,7 +43,7 @@ public class MemberCompanySymbols extends WithMapId {
|
||||||
)
|
)
|
||||||
private String companySymbolValue;
|
private String companySymbolValue;
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
@ -2,11 +2,12 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class MemberContact extends WithMapId {
|
public class Contact extends WithMapId implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на компанию",
|
value = "Ссылка на компанию",
|
||||||
|
|
@ -34,7 +35,7 @@ public class MemberContact extends WithMapId {
|
||||||
)
|
)
|
||||||
private String contactValue;
|
private String contactValue;
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
@ -4,12 +4,13 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||||
|
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class MemberProfileDocument extends WithMapId {
|
public class ProfileDocument extends WithMapId implements WithCompanyId {
|
||||||
@JsonProperty("company_id")
|
@JsonProperty("company_id")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
value = "Ссылка на company",
|
value = "Ссылка на company",
|
||||||
|
|
@ -73,6 +74,7 @@ public class MemberProfileDocument extends WithMapId {
|
||||||
)
|
)
|
||||||
private String link;
|
private String link;
|
||||||
|
|
||||||
|
@Override
|
||||||
public UUID getCompanyId() {
|
public UUID getCompanyId() {
|
||||||
return companyId;
|
return companyId;
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
package ru.spcex.clearing.gatewayapi.request.limit;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class LimitRequest {
|
||||||
|
@JsonProperty("result")
|
||||||
|
private String result;
|
||||||
|
@JsonProperty("description")
|
||||||
|
private String description;
|
||||||
|
@JsonProperty("id")
|
||||||
|
private UUID id;
|
||||||
|
@JsonProperty("log_file")
|
||||||
|
private String logFile;
|
||||||
|
@JsonProperty("error_file")
|
||||||
|
private String errorFile;
|
||||||
|
|
||||||
|
public String getResult() {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResult(String result) {
|
||||||
|
this.result = result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(UUID id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLogFile() {
|
||||||
|
return logFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLogFile(String logFile) {
|
||||||
|
this.logFile = logFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getErrorFile() {
|
||||||
|
return errorFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorFile(String errorFile) {
|
||||||
|
this.errorFile = errorFile;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -186,7 +186,7 @@ public class ExchangeInstrument extends WithMapId {
|
||||||
value = "Номер принятия Решения об утверждении Спецификации биржевого инструмента",
|
value = "Номер принятия Решения об утверждении Спецификации биржевого инструмента",
|
||||||
example = "070323-01"
|
example = "070323-01"
|
||||||
)
|
)
|
||||||
private LocalDate specificationApprovalNumber;
|
private String specificationApprovalNumber;
|
||||||
|
|
||||||
@JsonProperty("workflow_status")
|
@JsonProperty("workflow_status")
|
||||||
@ApiModelProperty(
|
@ApiModelProperty(
|
||||||
|
|
@ -332,11 +332,11 @@ public class ExchangeInstrument extends WithMapId {
|
||||||
this.specificationApprovalDate = specificationApprovalDate;
|
this.specificationApprovalDate = specificationApprovalDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalDate getSpecificationApprovalNumber() {
|
public String getSpecificationApprovalNumber() {
|
||||||
return specificationApprovalNumber;
|
return specificationApprovalNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSpecificationApprovalNumber(LocalDate specificationApprovalNumber) {
|
public void setSpecificationApprovalNumber(String specificationApprovalNumber) {
|
||||||
this.specificationApprovalNumber = specificationApprovalNumber;
|
this.specificationApprovalNumber = specificationApprovalNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.http.*;
|
import org.springframework.http.*;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.client.HttpClientErrorException;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import ru.spcex.clearing.gatewayapi.config.GatewayApiSettings;
|
import ru.spcex.clearing.gatewayapi.config.GatewayApiSettings;
|
||||||
import ru.spcex.clearing.gatewayapi.config.InboundServerSettings;
|
import ru.spcex.clearing.gatewayapi.config.InboundServerSettings;
|
||||||
|
|
@ -100,9 +101,14 @@ public class GatewayService extends QueueConsumer implements InitializingBean {
|
||||||
inboundRequest.setContent(content);
|
inboundRequest.setContent(content);
|
||||||
HttpEntity<InboundRequest> request = new HttpEntity<>(inboundRequest, httpHeaders);
|
HttpEntity<InboundRequest> request = new HttpEntity<>(inboundRequest, httpHeaders);
|
||||||
|
|
||||||
ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
|
try {
|
||||||
Map bodyResponse = response.getBody();
|
ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
|
||||||
log.debug("Limit request complete, response: {}", bodyResponse);
|
Map bodyResponse = response.getBody();
|
||||||
|
log.debug("Limit request complete, response: {}", bodyResponse);
|
||||||
|
} catch (HttpClientErrorException httpClientErrorException) {
|
||||||
|
//ignore
|
||||||
|
// log.warn("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void requestOnDemandSecurity(BaseRequest<GatewayTaskRequest> userRequest) {
|
public void requestOnDemandSecurity(BaseRequest<GatewayTaskRequest> userRequest) {
|
||||||
|
|
@ -128,6 +134,7 @@ public class GatewayService extends QueueConsumer implements InitializingBean {
|
||||||
Map bodyResponse = response.getBody();
|
Map bodyResponse = response.getBody();
|
||||||
log.debug("LOSC task 1/2 complete (FOND section), response: {}", bodyResponse);
|
log.debug("LOSC task 1/2 complete (FOND section), response: {}", bodyResponse);
|
||||||
|
|
||||||
|
inboundRequest.setId(UUID.randomUUID());
|
||||||
inboundRequest.setSection(Section.MKR.getKey());
|
inboundRequest.setSection(Section.MKR.getKey());
|
||||||
request = new HttpEntity<>(inboundRequest, httpHeaders);
|
request = new HttpEntity<>(inboundRequest, httpHeaders);
|
||||||
response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
|
response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
|
||||||
|
|
|
||||||
|
|
@ -1,81 +1,81 @@
|
||||||
package ru.spcex.clearing.platform.messaging.domain.cud.company;
|
package ru.spcex.clearing.platform.messaging.domain.cud.company;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class MultiCompanyRequest {
|
public class CompanyGatewayRequest {
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
String uuid;
|
String uuid;
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
CompanyNewRequest company;
|
CompanyNewRequest company;
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
CompanyInfoUpdateRequest companyInfo;
|
CompanyInfoUpdateRequest companyInfo;
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
List<ProfileDocumentNewRequest> profileDocuments = new ArrayList<>();
|
List<ProfileDocumentNewRequest> profileDocuments = new ArrayList<>();
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
List<CompanySymbolNewRequest> companySymbols = new ArrayList<>();
|
List<CompanySymbolNewRequest> companySymbols = new ArrayList<>();
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
List<ContactNewRequest> contacts = new ArrayList<>();
|
List<ContactNewRequest> contacts = new ArrayList<>();
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
List<ClientCodeNewRequest> clientCodes = new ArrayList<>();
|
List<ClientCodeNewRequest> clientCodes = new ArrayList<>();
|
||||||
|
|
||||||
public String getUuid() {
|
public String getUuid() {
|
||||||
return uuid;
|
return uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUuid(String uuid) {
|
public void setUuid(String uuid) {
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompanyNewRequest getCompany() {
|
public CompanyNewRequest getCompany() {
|
||||||
return company;
|
return company;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCompany(CompanyNewRequest company) {
|
public void setCompany(CompanyNewRequest company) {
|
||||||
this.company = company;
|
this.company = company;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompanyInfoUpdateRequest getCompanyInfo() {
|
public CompanyInfoUpdateRequest getCompanyInfo() {
|
||||||
return companyInfo;
|
return companyInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCompanyInfo(CompanyInfoUpdateRequest companyInfo) {
|
public void setCompanyInfo(CompanyInfoUpdateRequest companyInfo) {
|
||||||
this.companyInfo = companyInfo;
|
this.companyInfo = companyInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ProfileDocumentNewRequest> getProfileDocuments() {
|
public List<ProfileDocumentNewRequest> getProfileDocuments() {
|
||||||
return profileDocuments;
|
return profileDocuments;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProfileDocuments(List<ProfileDocumentNewRequest> profileDocuments) {
|
public void setProfileDocuments(List<ProfileDocumentNewRequest> profileDocuments) {
|
||||||
this.profileDocuments = profileDocuments;
|
this.profileDocuments = profileDocuments;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CompanySymbolNewRequest> getCompanySymbols() {
|
public List<CompanySymbolNewRequest> getCompanySymbols() {
|
||||||
return companySymbols;
|
return companySymbols;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCompanySymbols(List<CompanySymbolNewRequest> companySymbols) {
|
public void setCompanySymbols(List<CompanySymbolNewRequest> companySymbols) {
|
||||||
this.companySymbols = companySymbols;
|
this.companySymbols = companySymbols;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ContactNewRequest> getContacts() {
|
public List<ContactNewRequest> getContacts() {
|
||||||
return contacts;
|
return contacts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setContacts(List<ContactNewRequest> contacts) {
|
public void setContacts(List<ContactNewRequest> contacts) {
|
||||||
this.contacts = contacts;
|
this.contacts = contacts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ClientCodeNewRequest> getClientCodes() {
|
public List<ClientCodeNewRequest> getClientCodes() {
|
||||||
return clientCodes;
|
return clientCodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setClientCodes(List<ClientCodeNewRequest> clientCodes) {
|
public void setClientCodes(List<ClientCodeNewRequest> clientCodes) {
|
||||||
this.clientCodes = clientCodes;
|
this.clientCodes = clientCodes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Reference in a new issue