изменил(упростил) логику 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,
|
||||
@Qualifier("CompanyDeleteRequestValidator")
|
||||
Function<CommonDeleteRequest, IValidator> companyDeleteRequestValidator,
|
||||
|
||||
CompanySymbolService companySymbolService,
|
||||
AccountNotificationHelper accountNotification,
|
||||
RelationService relationService
|
||||
) {
|
||||
RelationService relationService) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.requestHelper = requestHelper.setLogger(log);
|
||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||
this.userRoleVerification = userRoleVerification;
|
||||
userRoleVerification.setRoleForVerification(UserRole.Admin);
|
||||
this.userRoleVerification.setRoleForVerification(UserRole.Admin);
|
||||
this.validationHelper = validationHelper;
|
||||
this.companyNewRequestValidator = companyNewRequestValidator;
|
||||
this.companyUpdateRequestValidator = companyUpdateRequestValidator;
|
||||
this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
||||
this.companySymbolService = companySymbolService;
|
||||
companySymbolService.setCompanyService(this);
|
||||
this.companySymbolService.setCompanyService(this);
|
||||
this.accountNotification = accountNotification;
|
||||
this.relationService = relationService;
|
||||
|
||||
|
|
@ -105,7 +103,6 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
callback(CompanyNewRequest.class)
|
||||
.setFunction(request -> requestHelper.requestFunction(this::updateCompany, request))
|
||||
.forDestination(Consts.DESTINATION_COMPANY_UPDATE, callbacks::put);
|
||||
|
||||
callback(AccountTerminationRequest.class)
|
||||
.setFunction(request -> requestHelper.requestFunction(this::finishCompanyTermination, request))
|
||||
.forDestination(Consts.ACCOUNT_TERMINATION_STEP2, callbacks::put);
|
||||
|
|
|
|||
|
|
@ -96,14 +96,14 @@ public class MultiCompanyService
|
|||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(MultiCompanyRequest.class)
|
||||
callback(CompanyGatewayRequest.class)
|
||||
.setFunction(request -> requestHelper.requestFunction(this::processMultiRequest, request))
|
||||
.forDestination(Consts.DESTINATION_COMPANY_MULTIREQUEST, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
private synchronized RequestInfoUpdate processMultiRequest(BaseRequest<MultiCompanyRequest> baseRequest) {
|
||||
MultiCompanyRequest req = baseRequest.getRequestPayload();
|
||||
private synchronized RequestInfoUpdate processMultiRequest(BaseRequest<CompanyGatewayRequest> baseRequest) {
|
||||
CompanyGatewayRequest req = baseRequest.getRequestPayload();
|
||||
log.debug("company-batch-new request received, BaseRequest.id = {}", baseRequest.getId());
|
||||
{ // Валидация
|
||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(baseRequest);
|
||||
|
|
@ -312,7 +312,7 @@ public class MultiCompanyService
|
|||
return r;
|
||||
}
|
||||
|
||||
void fillCompanyId(MultiCompanyRequest req, Long companyId) {
|
||||
void fillCompanyId(CompanyGatewayRequest req, Long companyId) {
|
||||
if (req.getCompany() != null) {
|
||||
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.ProfileDocument;
|
||||
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.validation.*;
|
||||
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 javax.annotation.PostConstruct;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
|
@ -160,7 +158,7 @@ class MultiCompanyServiceTest {
|
|||
@Test
|
||||
void fillCompanyId() {
|
||||
{
|
||||
MultiCompanyRequest testReq = new MultiCompanyRequest();
|
||||
CompanyGatewayRequest testReq = new CompanyGatewayRequest();
|
||||
testReq.setCompany(new CompanyNewRequest());
|
||||
testReq.setProfileDocuments(null);
|
||||
testReq.setCompanySymbols(null);
|
||||
|
|
@ -174,7 +172,7 @@ class MultiCompanyServiceTest {
|
|||
assertNotNull(testReq.getClientCodes());
|
||||
}
|
||||
{
|
||||
MultiCompanyRequest testReq = new MultiCompanyRequest();
|
||||
CompanyGatewayRequest testReq = new CompanyGatewayRequest();
|
||||
testReq.setCompany(new CompanyNewRequest());
|
||||
testReq.setCompanyInfo(new CompanyInfoUpdateRequest());
|
||||
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.companies.CompaniesKafkaMessenger;
|
||||
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_mm.MMListingsRequestParam;
|
||||
import ru.spcex.clearing.gatewayapi.logic.listings_mm.PrepareExchangeInstruments;
|
||||
|
|
@ -50,7 +50,7 @@ public class ProcessorConfiguration {
|
|||
public Processor<CompaniesRequestParam> companiesRequestProcessor(ImdgProvider imdgProvider, KafkaSender kafkaSender) {
|
||||
Processor<CompaniesRequestParam> processor = new Processor<>();
|
||||
List<Stage<CompaniesRequestParam>> pipeline = new ArrayList<>();
|
||||
pipeline.add(new PrepareMemberCompanies());
|
||||
pipeline.add(new PrepareMemberCompaniesLegacy());
|
||||
pipeline.add(new CompaniesKafkaMessenger(kafkaSender, imdgProvider));
|
||||
processor.setPipeline(pipeline);
|
||||
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.Processor;
|
||||
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_mm.MMListingsRequestParam;
|
||||
import ru.spcex.clearing.gatewayapi.request.CommonRequest;
|
||||
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.mkr.MMListingsRequest;
|
||||
import ru.spcex.clearing.gatewayapi.response.CommonResponse;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
@Controller
|
||||
|
|
@ -37,6 +41,7 @@ public class GatewayController {
|
|||
private final Processor<FondListingsRequestParam> fondListingsRequestProcessor;
|
||||
private final Processor<MMListingsRequestParam> mmListingsRequestProcessor;
|
||||
private final Processor<CompaniesRequestParam> companiesRequestProcessor;
|
||||
private final CompanyProcessor companiesProcessor;
|
||||
private final ExecutorService executor;
|
||||
|
||||
private List<String> validTypes = Arrays.asList("DAY_START", "ON_DEMAND");
|
||||
|
|
@ -46,11 +51,12 @@ public class GatewayController {
|
|||
@Qualifier("fondListingsRequestProcessor") Processor<FondListingsRequestParam> fondListingsRequestProcessor,
|
||||
@Qualifier("mmListingsRequestProcessor") Processor<MMListingsRequestParam> mmListingsRequestProcessor,
|
||||
@Qualifier("companiesRequestProcessor") Processor<CompaniesRequestParam> companiesRequestProcessor,
|
||||
@Qualifier("gatewayExecutor") ExecutorService executor) {
|
||||
CompanyProcessor companiesProcessor, @Qualifier("gatewayExecutor") ExecutorService executor) {
|
||||
this.messageResolver = messageResolver;
|
||||
this.fondListingsRequestProcessor = fondListingsRequestProcessor;
|
||||
this.mmListingsRequestProcessor = mmListingsRequestProcessor;
|
||||
this.companiesRequestProcessor = companiesRequestProcessor;
|
||||
this.companiesProcessor = companiesProcessor;
|
||||
this.executor = executor;
|
||||
}
|
||||
|
||||
|
|
@ -122,16 +128,29 @@ public class GatewayController {
|
|||
@ResponseBody
|
||||
public CommonResponse companies(@RequestBody CompaniesRequest request) {
|
||||
// request.validate(validTypes, Collections.emptyList());
|
||||
CompaniesRequestParam requestParam = new CompaniesRequestParam(request);
|
||||
executor.submit(() -> {
|
||||
ProcessResult processResult = companiesRequestProcessor.process(requestParam);
|
||||
if (processResult.getError() != null) {
|
||||
log.warn("Exception while process listing_mm: {}", processResult.getError());
|
||||
}
|
||||
companiesProcessor.process(request);
|
||||
});
|
||||
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)
|
||||
@ResponseBody
|
||||
@ExceptionHandler(GatewayException.class)
|
||||
|
|
@ -155,4 +174,12 @@ public class GatewayController {
|
|||
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;
|
||||
|
||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.spcex.clearing.gatewayapi.errors.GatewayError;
|
||||
|
|
@ -11,14 +12,14 @@ public class Processor<T> {
|
|||
private List<Stage<T>> pipeline;
|
||||
|
||||
public ProcessResult process(T param) {
|
||||
try {
|
||||
for (Stage<T> stage : pipeline) {
|
||||
for (Stage<T> stage : pipeline) {
|
||||
try {
|
||||
ProcessResult processResult = stage.process(param);
|
||||
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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package ru.spcex.clearing.gatewayapi.logic.companies;
|
|||
|
||||
import org.slf4j.Logger;
|
||||
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.Stage;
|
||||
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 KafkaSender kafkaSender;
|
||||
private final Imdg<Company> companyImdg;
|
||||
private final Imdg<ru.clearing.classes.statics.data.company.Company> companyImdg;
|
||||
|
||||
public CompaniesKafkaMessenger(KafkaSender kafkaSender, ImdgProvider imdgProvider) {
|
||||
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
|
||||
public ProcessResult process(CompaniesRequestParam param) {
|
||||
List<MemberCompany> companyList = param.getMemberCompanyList();
|
||||
for (MemberCompany company : companyList) {
|
||||
List<Company> companyList = param.getMemberCompanyList();
|
||||
for (Company company : companyList) {
|
||||
if (company.isInvalidData()) continue;
|
||||
|
||||
MultiCompanyRequest multiCompanyRequest = new MultiCompanyRequest();
|
||||
CompanyGatewayRequest multiCompanyRequest = new CompanyGatewayRequest();
|
||||
|
||||
CompanyNewRequest companyNewRequest = new CompanyNewRequest();
|
||||
companyNewRequest.setShortName(company.getShortName());
|
||||
|
|
@ -51,7 +50,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
|||
companyNewRequest.setInitiatorCode(company.getInitiatorCode());
|
||||
multiCompanyRequest.setCompany(companyNewRequest);
|
||||
|
||||
MemberCompanyInfo companyInfo = company.getCompanyInfo();
|
||||
CompanyInfo companyInfo = company.getCompanyInfo();
|
||||
CompanyInfoUpdateRequest companyInfoUpdateRequest = new CompanyInfoUpdateRequest();
|
||||
companyInfoUpdateRequest.setCountryCode("RUS"); // todo в текущей версии ТЗ присылается в цифровом обозначении
|
||||
companyInfoUpdateRequest.setProfessionalSign(companyInfo.getProfessionalSign());
|
||||
|
|
@ -60,7 +59,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
|||
companyInfoUpdateRequest.setResidence(companyInfo.getResidence());
|
||||
multiCompanyRequest.setCompanyInfo(companyInfoUpdateRequest);
|
||||
|
||||
for (MemberCompanySymbols companySymbols : company.getMemberCompanySymbolsList()) {
|
||||
for (CompanySymbols companySymbols : company.getMemberCompanySymbolsList()) {
|
||||
if (companySymbols.isInvalidData()) continue;
|
||||
CompanySymbolNewRequest companySymbolNewRequest = new CompanySymbolNewRequest();
|
||||
companySymbolNewRequest.setCompanySymbol(companySymbols.getCompanySymbol());
|
||||
|
|
@ -68,7 +67,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
|||
multiCompanyRequest.getCompanySymbols().add(companySymbolNewRequest);
|
||||
}
|
||||
|
||||
for (MemberContact contact : company.getContactList()) {
|
||||
for (Contact contact : company.getContactList()) {
|
||||
if (contact.isInvalidData()) continue;
|
||||
ContactNewRequest contactNewRequest = new ContactNewRequest();
|
||||
contactNewRequest.setContactType(contact.getContactType());
|
||||
|
|
@ -76,7 +75,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
|||
multiCompanyRequest.getContacts().add(contactNewRequest);
|
||||
}
|
||||
|
||||
for (MemberProfileDocument profileDocument : company.getProfileDocumentList()) {
|
||||
for (ProfileDocument profileDocument : company.getProfileDocumentList()) {
|
||||
if (profileDocument.isInvalidData()) continue;
|
||||
ProfileDocumentNewRequest profileDocumentNewRequest = new ProfileDocumentNewRequest();
|
||||
profileDocumentNewRequest.setDocumentType(profileDocument.getDocumentType());
|
||||
|
|
@ -88,7 +87,7 @@ public class CompaniesKafkaMessenger extends Stage<CompaniesRequestParam> {
|
|||
multiCompanyRequest.getProfileDocuments().add(profileDocumentNewRequest);
|
||||
}
|
||||
|
||||
for (MemberClient client : company.getClientList()) {
|
||||
for (Client client : company.getClientList()) {
|
||||
if (client.isInvalidData()) continue;
|
||||
|
||||
if (!company.isAlreadyExist() || !client.isAlreadyExist()) {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
package ru.spcex.clearing.gatewayapi.logic.companies;
|
||||
|
||||
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.List;
|
||||
|
||||
public class CompaniesRequestParam {
|
||||
private final CompaniesRequest companiesRequest;
|
||||
private List<MemberCompany> memberCompanyList = new ArrayList<>();
|
||||
private List<Company> memberCompanyList = new ArrayList<>();
|
||||
|
||||
public CompaniesRequestParam(CompaniesRequest companiesRequest) {
|
||||
this.companiesRequest = companiesRequest;
|
||||
|
|
@ -18,11 +18,11 @@ public class CompaniesRequestParam {
|
|||
return companiesRequest;
|
||||
}
|
||||
|
||||
public List<MemberCompany> getMemberCompanyList() {
|
||||
public List<Company> getMemberCompanyList() {
|
||||
return memberCompanyList;
|
||||
}
|
||||
|
||||
public void setMemberCompanyList(List<MemberCompany> memberCompanyList) {
|
||||
public void setMemberCompanyList(List<Company> 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 ru.spcex.clearing.gatewayapi.logic.ProcessResult;
|
||||
import ru.spcex.clearing.gatewayapi.logic.Stage;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||
import ru.spcex.clearing.gatewayapi.request.company.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
|
@ -12,16 +13,16 @@ import java.util.Map;
|
|||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
||||
public class PrepareMemberCompaniesLegacy extends Stage<CompaniesRequestParam> {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@Override
|
||||
public ProcessResult process(CompaniesRequestParam param) {
|
||||
CompaniesRequest request = param.getCompaniesRequest();
|
||||
|
||||
List<MemberCompany> companyList = request.getCompanyList();
|
||||
Map<UUID, MemberCompany> companyForUUID = new HashMap<>();
|
||||
for (MemberCompany memberCompany : companyList) {
|
||||
List<Company> companyList = request.getCompanyList();
|
||||
Map<UUID, Company> companyForUUID = new HashMap<>();
|
||||
for (Company memberCompany : companyList) {
|
||||
if (companyForUUID.containsKey(memberCompany.getId())) {
|
||||
log.warn("For company.id {} found > 1 element from request, use first", memberCompany.getId());
|
||||
memberCompany.setInvalidData(true);
|
||||
|
|
@ -30,10 +31,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
companyForUUID.put(memberCompany.getId(), memberCompany);
|
||||
}
|
||||
|
||||
List<MemberCompanyInfo> companyInfoList = request.getCompanyInfoList();
|
||||
for (MemberCompanyInfo companyInfo : companyInfoList) {
|
||||
List<CompanyInfo> companyInfoList = request.getCompanyInfoList();
|
||||
for (CompanyInfo companyInfo : companyInfoList) {
|
||||
UUID companyInfoUUID = companyInfo.getCompanyId();
|
||||
MemberCompany company = companyForUUID.get(companyInfoUUID);
|
||||
Company company = companyForUUID.get(companyInfoUUID);
|
||||
if (company == null) {
|
||||
log.warn("For company_info.company_id {} not found company, company_info skipped", companyInfoUUID);
|
||||
continue;
|
||||
|
|
@ -41,10 +42,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
company.setCompanyInfo(companyInfo);
|
||||
}
|
||||
|
||||
List<MemberCompanySymbols> memberCompanySymbolsList = param.getCompaniesRequest().getMemberCompanySymbolsList();
|
||||
for (MemberCompanySymbols memberCompanySymbols : memberCompanySymbolsList) {
|
||||
List<CompanySymbols> memberCompanySymbolsList = param.getCompaniesRequest().getMemberCompanySymbolsList();
|
||||
for (CompanySymbols memberCompanySymbols : memberCompanySymbolsList) {
|
||||
UUID memberCompanySymbolsUUID = memberCompanySymbols.getCompanyId();
|
||||
MemberCompany memberCompany = companyForUUID.get(memberCompanySymbolsUUID);
|
||||
Company memberCompany = companyForUUID.get(memberCompanySymbolsUUID);
|
||||
if (memberCompany == null) {
|
||||
log.warn("For company_symbols ({} = {}) not found company, company_symbols skipped",
|
||||
memberCompanySymbols.getCompanySymbol(),
|
||||
|
|
@ -55,10 +56,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
memberCompany.getMemberCompanySymbolsList().add(memberCompanySymbols);
|
||||
}
|
||||
|
||||
List<MemberContact> memberContactList = param.getCompaniesRequest().getContactList();
|
||||
for (MemberContact memberContact : memberContactList) {
|
||||
List<Contact> memberContactList = param.getCompaniesRequest().getContactList();
|
||||
for (Contact memberContact : memberContactList) {
|
||||
UUID memberContactUUID = memberContact.getCompanyId();
|
||||
MemberCompany memberCompany = companyForUUID.get(memberContactUUID);
|
||||
Company memberCompany = companyForUUID.get(memberContactUUID);
|
||||
if (memberCompany == null) {
|
||||
log.warn("For contact ({} = {}) not found company, skipped",
|
||||
memberContact.getContactType(),
|
||||
|
|
@ -69,10 +70,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
memberCompany.getContactList().add(memberContact);
|
||||
}
|
||||
|
||||
List<MemberCompanyClearingCategory> companyClearingCategoryList = param.getCompaniesRequest().getCompanyClearingCategoryList();
|
||||
for (MemberCompanyClearingCategory companyClearingCategory : companyClearingCategoryList) {
|
||||
List<CompanyClearingCategory> companyClearingCategoryList = param.getCompaniesRequest().getCompanyClearingCategoryList();
|
||||
for (CompanyClearingCategory companyClearingCategory : companyClearingCategoryList) {
|
||||
UUID companyClearingCategoryUUID = companyClearingCategory.getCompanyId();
|
||||
MemberCompany memberCompany = companyForUUID.get(companyClearingCategoryUUID);
|
||||
Company memberCompany = companyForUUID.get(companyClearingCategoryUUID);
|
||||
if (memberCompany == null) {
|
||||
log.warn("For company_clearing_category ({}) not found company, skipped", companyClearingCategory.getCategory());
|
||||
companyClearingCategory.setInvalidData(true);
|
||||
|
|
@ -81,10 +82,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
memberCompany.getCompanyClearingCategoryList().add(companyClearingCategory);
|
||||
}
|
||||
|
||||
List<MemberProfileDocument> memberProfileDocumentList = param.getCompaniesRequest().getProfileDocumentList();
|
||||
for (MemberProfileDocument memberProfileDocument : memberProfileDocumentList) {
|
||||
List<ProfileDocument> memberProfileDocumentList = param.getCompaniesRequest().getProfileDocumentList();
|
||||
for (ProfileDocument memberProfileDocument : memberProfileDocumentList) {
|
||||
UUID profileDocumentUUID = memberProfileDocument.getCompanyId();
|
||||
MemberCompany memberCompany = companyForUUID.get(profileDocumentUUID);
|
||||
Company memberCompany = companyForUUID.get(profileDocumentUUID);
|
||||
if (memberCompany == null) {
|
||||
log.warn("For profile_document (document_type {}) not found company, skipped", memberProfileDocument.getDocumentType());
|
||||
memberProfileDocument.setInvalidData(true);
|
||||
|
|
@ -93,10 +94,10 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
memberCompany.getProfileDocumentList().add(memberProfileDocument);
|
||||
}
|
||||
|
||||
List<MemberClient> memberClientList = param.getCompaniesRequest().getClientList();
|
||||
for (MemberClient memberClient : memberClientList) {
|
||||
List<Client> memberClientList = param.getCompaniesRequest().getClientList();
|
||||
for (Client memberClient : memberClientList) {
|
||||
UUID clientUUID = memberClient.getCompanyId();
|
||||
MemberCompany memberCompany = companyForUUID.get(clientUUID);
|
||||
Company memberCompany = companyForUUID.get(clientUUID);
|
||||
if (memberCompany == null) {
|
||||
log.warn("For client (client_code {}) not found company, skipped", memberClient.getClientCode());
|
||||
memberClient.setInvalidData(true);
|
||||
|
|
@ -105,7 +106,7 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
memberCompany.getClientList().add(memberClient);
|
||||
}
|
||||
|
||||
List<MemberCompany> filteredIssuerCompany = companyList.stream()
|
||||
List<Company> filteredIssuerCompany = companyList.stream()
|
||||
.filter(memberCompany -> !memberCompany.isInvalidData())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
|
|
@ -116,4 +117,7 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
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.LoggerFactory;
|
||||
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.Stage;
|
||||
import ru.spcex.clearing.gatewayapi.logic.companies.CompaniesRequestParam;
|
||||
|
|
@ -26,10 +22,10 @@ import java.util.stream.Collectors;
|
|||
public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
private final Imdg<Company> companyImdg;
|
||||
private final Imdg<CompanySymbols> companySymbolsImdg;
|
||||
private final Imdg<Contact> contactImdg;
|
||||
private final Imdg<ProfileDocument> profileDocumentImdg;
|
||||
private final Imdg<ru.clearing.classes.statics.data.company.Company> companyImdg;
|
||||
private final Imdg<ru.clearing.classes.statics.data.company.CompanySymbols> companySymbolsImdg;
|
||||
private final Imdg<ru.clearing.classes.statics.data.profile.Contact> contactImdg;
|
||||
private final Imdg<ru.clearing.classes.statics.data.profile.ProfileDocument> profileDocumentImdg;
|
||||
private final Imdg<ClientCode> clientCodeImdg;
|
||||
private final Imdg<Account> accountImdg;
|
||||
private final Imdg<ClearingAccount> clearingAccountImdg;
|
||||
|
|
@ -37,10 +33,10 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
private final Imdg<DepoAccount> depoAccountImdg;
|
||||
|
||||
public CheckMemberCompanyExist(ImdgProvider imdgProvider) {
|
||||
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
contactImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, Contact.class);
|
||||
profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
|
||||
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, ru.clearing.classes.statics.data.company.Company.class);
|
||||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, ru.clearing.classes.statics.data.company.CompanySymbols.class);
|
||||
contactImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, ru.clearing.classes.statics.data.profile.Contact.class);
|
||||
profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ru.clearing.classes.statics.data.profile.ProfileDocument.class);
|
||||
clientCodeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClientCode, ClientCode.class);
|
||||
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||
clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
|
||||
|
|
@ -51,13 +47,13 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
|
||||
@Override
|
||||
public ProcessResult process(CompaniesRequestParam param) {
|
||||
List<MemberCompany> companyList = param.getMemberCompanyList();
|
||||
List<Company> companyList = param.getMemberCompanyList();
|
||||
|
||||
for (MemberCompany company : companyList) {
|
||||
List<MemberCompanySymbols> companySymbolsList = company.getMemberCompanySymbolsList();
|
||||
for (Company company : companyList) {
|
||||
List<CompanySymbols> companySymbolsList = company.getMemberCompanySymbolsList();
|
||||
|
||||
Map<CompanySymbol, String> companySymbolMap = new HashMap<>();
|
||||
for (MemberCompanySymbols memberCompanySymbol : companySymbolsList) {
|
||||
for (CompanySymbols memberCompanySymbol : companySymbolsList) {
|
||||
if (
|
||||
!memberCompanySymbol.isInvalidData() &&
|
||||
!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;
|
||||
|
||||
Collection<CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
|
||||
Collection<ru.clearing.classes.statics.data.company.CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
|
||||
Map.of(
|
||||
"companyId", companyId,
|
||||
"companySymbol", companySymbols.getCompanySymbol()
|
||||
|
|
@ -88,7 +84,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
if (companySymbolsFromImdg.isEmpty()) {
|
||||
companySymbols.setAlreadyExist(false);
|
||||
} else {
|
||||
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||
ru.clearing.classes.statics.data.company.CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||
if (companySymbolsFromImdg.size() > 1) {
|
||||
log.warn("For company_symbols ({}={}) found > 1 own company_symbols, " +
|
||||
"update first (company_symbols.id = {})",
|
||||
|
|
@ -103,11 +99,11 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
|
||||
// Проверяем контакты, документы и клиентов на необходимость обновления
|
||||
if (company.isAlreadyExist()) {
|
||||
List<MemberContact> contactList = company.getContactList();
|
||||
for (MemberContact contact : contactList) {
|
||||
List<Contact> contactList = company.getContactList();
|
||||
for (Contact contact : contactList) {
|
||||
if (contact.isInvalidData()) continue;
|
||||
|
||||
Collection<Contact> contactsFromImdg = contactImdg.getCollectionObjectsByFieldValues(
|
||||
Collection<ru.clearing.classes.statics.data.profile.Contact> contactsFromImdg = contactImdg.getCollectionObjectsByFieldValues(
|
||||
Map.of(
|
||||
"companyId", companyId,
|
||||
"contactType", contact.getContactType()
|
||||
|
|
@ -116,7 +112,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
if (contactsFromImdg.isEmpty()) {
|
||||
contact.setAlreadyExist(false);
|
||||
} else {
|
||||
Contact contactFromImdg = contactsFromImdg.iterator().next();
|
||||
ru.clearing.classes.statics.data.profile.Contact contactFromImdg = contactsFromImdg.iterator().next();
|
||||
if (contactsFromImdg.size() > 1) {
|
||||
log.warn("Found contact > 1 for contact_type {}, update first (id = {})",
|
||||
contactFromImdg.getContactType(),
|
||||
|
|
@ -127,11 +123,11 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
}
|
||||
}
|
||||
|
||||
List<MemberProfileDocument> memberProfileDocumentList = company.getProfileDocumentList();
|
||||
for (MemberProfileDocument memberProfileDocument : memberProfileDocumentList) {
|
||||
List<ProfileDocument> memberProfileDocumentList = company.getProfileDocumentList();
|
||||
for (ProfileDocument memberProfileDocument : memberProfileDocumentList) {
|
||||
if (memberProfileDocument.isInvalidData()) continue;
|
||||
|
||||
Collection<ProfileDocument> profileDocumentsFromImdg = profileDocumentImdg.getCollectionObjectsByFieldValues(
|
||||
Collection<ru.clearing.classes.statics.data.profile.ProfileDocument> profileDocumentsFromImdg = profileDocumentImdg.getCollectionObjectsByFieldValues(
|
||||
Map.of(
|
||||
"companyId", companyId,
|
||||
"documentType", memberProfileDocument.getDocumentType()
|
||||
|
|
@ -140,7 +136,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
if (profileDocumentsFromImdg.isEmpty()) {
|
||||
memberProfileDocument.setAlreadyExist(false);
|
||||
} else {
|
||||
ProfileDocument profileDocument = profileDocumentsFromImdg.iterator().next();
|
||||
ru.clearing.classes.statics.data.profile.ProfileDocument profileDocument = profileDocumentsFromImdg.iterator().next();
|
||||
if (profileDocumentsFromImdg.size() > 1) {
|
||||
log.warn("Found profile_document > 1 for document_type {} (company.id {}), update first (id = {})",
|
||||
memberProfileDocument.getDocumentType(),
|
||||
|
|
@ -152,8 +148,8 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
}
|
||||
}
|
||||
|
||||
List<MemberClient> memberClientList = company.getClientList();
|
||||
for (MemberClient memberClient : memberClientList) {
|
||||
List<Client> memberClientList = company.getClientList();
|
||||
for (Client memberClient : memberClientList) {
|
||||
if (memberClient.isInvalidData()) continue;
|
||||
|
||||
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())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
|
|
@ -192,7 +188,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
return null;
|
||||
}
|
||||
|
||||
private void fillMemberClientMoneyOrDepoAccountId(MemberCompany company, MemberClient client) {
|
||||
private void fillMemberClientMoneyOrDepoAccountId(Company company, Client client) {
|
||||
String moneyAccount = client.getMoneyAccount();
|
||||
Collection<Account> accountFromImdg = accountImdg.getCollectionObjectsByFieldValues(
|
||||
Map.of("account", moneyAccount)
|
||||
|
|
@ -248,14 +244,14 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
|
|||
|
||||
|
||||
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(
|
||||
"companySymbol", CompanySymbol.UUID.getKey(),
|
||||
"companySymbolValue", uuid
|
||||
)
|
||||
);
|
||||
if (!companySymbolsFromImdg.isEmpty()) {
|
||||
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||
ru.clearing.classes.statics.data.company.CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||
if (companySymbolsFromImdg.size() > 1) {
|
||||
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)
|
||||
log.warn("For {} = {} found > 1 company_symbols, use first", companySymbol.getKey(), companySymbolValue);
|
||||
|
||||
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||
Company companyFromImdg = companyImdg.getSingleObjectByID(companySymbolFromImdg.getCompanyId());
|
||||
ru.clearing.classes.statics.data.company.CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
|
||||
ru.clearing.classes.statics.data.company.Company companyFromImdg = companyImdg.getSingleObjectByID(companySymbolFromImdg.getCompanyId());
|
||||
|
||||
if (companyFromImdg == null) {
|
||||
// Случай, когда реквизиты есть, а компании нет (по сути данных ошибка в мапе)
|
||||
|
|
|
|||
|
|
@ -67,9 +67,9 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
|
||||
@Override
|
||||
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 (StringUtils.isEmpty(company.getShortName())) {
|
||||
|
|
@ -78,7 +78,7 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
|
|||
continue;
|
||||
}
|
||||
|
||||
for (MemberCompanyClearingCategory companyClearingCategory : company.getCompanyClearingCategoryList()) {
|
||||
for (CompanyClearingCategory companyClearingCategory : company.getCompanyClearingCategoryList()) {
|
||||
String workflowStatusStr = companyClearingCategory.getWorkflowStatus();
|
||||
ServiceStatus workflowStatus = IEnumKey.getEnumByKey(ServiceStatus.class, workflowStatusStr);
|
||||
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();
|
||||
CompanySymbol companySymbol = IEnumKey.getEnumByKey(CompanySymbol.class, companySymbolStr);
|
||||
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();
|
||||
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();
|
||||
DocumentTypes documentType = IEnumKey.getEnumByKey(DocumentTypes.class, documentTypeStr);
|
||||
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())) {
|
||||
log.warn("client_code is null or empty for client, company.id {}", company.getId());
|
||||
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.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class MemberClient extends WithMapId {
|
||||
public class Client extends WithMapId implements WithCompanyId {
|
||||
@JsonProperty("company_id")
|
||||
@ApiModelProperty(
|
||||
value = "Ссылка на company",
|
||||
|
|
@ -44,6 +45,7 @@ public class MemberClient extends WithMapId {
|
|||
@JsonIgnore
|
||||
private Long depoAccountId = null;
|
||||
|
||||
@Override
|
||||
public UUID getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
|
@ -10,86 +10,86 @@ import java.util.List;
|
|||
public class CompaniesRequest extends CommonRequest {
|
||||
@JsonProperty("company")
|
||||
@ApiModelProperty(value = "Список компаний")
|
||||
private List<MemberCompany> companyList = new ArrayList<>();
|
||||
private List<Company> companyList = new ArrayList<>();
|
||||
|
||||
@JsonProperty("company_info")
|
||||
@ApiModelProperty(value = "Список профилей участников")
|
||||
private List<MemberCompanyInfo> companyInfoList = new ArrayList<>();
|
||||
private List<CompanyInfo> companyInfoList = new ArrayList<>();
|
||||
|
||||
@JsonProperty("company_clearing_category")
|
||||
@ApiModelProperty(value = "Список категорий участников клиринга")
|
||||
private List<MemberCompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
||||
private List<CompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
||||
|
||||
@JsonProperty("company_symbols")
|
||||
@ApiModelProperty(value = "Список реквизитов участников")
|
||||
private List<MemberCompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
||||
private List<CompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
||||
|
||||
@JsonProperty("contact")
|
||||
@ApiModelProperty(value = "Список контактов участников")
|
||||
private List<MemberContact> contactList = new ArrayList<>();
|
||||
private List<Contact> contactList = new ArrayList<>();
|
||||
|
||||
@JsonProperty("profile_document")
|
||||
@ApiModelProperty(value = "Список документов участников")
|
||||
private List<MemberProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
||||
private List<ProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
||||
|
||||
@JsonProperty("client")
|
||||
@ApiModelProperty(value = "Список клиентов участников")
|
||||
private List<MemberClient> memberClientList = new ArrayList<>();
|
||||
private List<Client> memberClientList = new ArrayList<>();
|
||||
|
||||
|
||||
public List<MemberCompany> getCompanyList() {
|
||||
public List<Company> getCompanyList() {
|
||||
return companyList;
|
||||
}
|
||||
|
||||
public void setCompanyList(List<MemberCompany> companyList) {
|
||||
public void setCompanyList(List<Company> companyList) {
|
||||
this.companyList = companyList;
|
||||
}
|
||||
|
||||
public List<MemberCompanyInfo> getCompanyInfoList() {
|
||||
public List<CompanyInfo> getCompanyInfoList() {
|
||||
return companyInfoList;
|
||||
}
|
||||
|
||||
public void setCompanyInfoList(List<MemberCompanyInfo> companyInfoList) {
|
||||
public void setCompanyInfoList(List<CompanyInfo> companyInfoList) {
|
||||
this.companyInfoList = companyInfoList;
|
||||
}
|
||||
|
||||
public List<MemberCompanyClearingCategory> getCompanyClearingCategoryList() {
|
||||
public List<CompanyClearingCategory> getCompanyClearingCategoryList() {
|
||||
return companyClearingCategoryList;
|
||||
}
|
||||
|
||||
public void setCompanyClearingCategoryList(List<MemberCompanyClearingCategory> companyClearingCategoryList) {
|
||||
public void setCompanyClearingCategoryList(List<CompanyClearingCategory> companyClearingCategoryList) {
|
||||
this.companyClearingCategoryList = companyClearingCategoryList;
|
||||
}
|
||||
|
||||
public List<MemberCompanySymbols> getMemberCompanySymbolsList() {
|
||||
public List<CompanySymbols> getMemberCompanySymbolsList() {
|
||||
return memberCompanySymbolsList;
|
||||
}
|
||||
|
||||
public void setMemberCompanySymbolsList(List<MemberCompanySymbols> memberCompanySymbolsList) {
|
||||
public void setMemberCompanySymbolsList(List<CompanySymbols> memberCompanySymbolsList) {
|
||||
this.memberCompanySymbolsList = memberCompanySymbolsList;
|
||||
}
|
||||
|
||||
public List<MemberContact> getContactList() {
|
||||
public List<Contact> getContactList() {
|
||||
return contactList;
|
||||
}
|
||||
|
||||
public void setContactList(List<MemberContact> contactList) {
|
||||
public void setContactList(List<Contact> contactList) {
|
||||
this.contactList = contactList;
|
||||
}
|
||||
|
||||
public List<MemberProfileDocument> getProfileDocumentList() {
|
||||
public List<ProfileDocument> getProfileDocumentList() {
|
||||
return memberProfileDocumentList;
|
||||
}
|
||||
|
||||
public void setProfileDocumentList(List<MemberProfileDocument> memberProfileDocumentList) {
|
||||
public void setProfileDocumentList(List<ProfileDocument> memberProfileDocumentList) {
|
||||
this.memberProfileDocumentList = memberProfileDocumentList;
|
||||
}
|
||||
|
||||
public List<MemberClient> getClientList() {
|
||||
public List<Client> getClientList() {
|
||||
return memberClientList;
|
||||
}
|
||||
|
||||
public void setClientList(List<MemberClient> memberClientList) {
|
||||
public void setClientList(List<Client> memberClientList) {
|
||||
this.memberClientList = memberClientList;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import java.util.UUID;
|
|||
/**
|
||||
* Компания участник
|
||||
*/
|
||||
public class MemberCompany extends WithMapId {
|
||||
public class Company extends WithMapId {
|
||||
@JsonProperty("id")
|
||||
@ApiModelProperty(
|
||||
value = "Идентификатор участника",
|
||||
|
|
@ -65,27 +65,27 @@ public class MemberCompany extends WithMapId {
|
|||
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonIgnore
|
||||
private MemberCompanyInfo companyInfo;
|
||||
private CompanyInfo companyInfo;
|
||||
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonIgnore
|
||||
private List<MemberCompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
||||
private List<CompanyClearingCategory> companyClearingCategoryList = new ArrayList<>();
|
||||
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonIgnore
|
||||
private List<MemberCompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
||||
private List<CompanySymbols> memberCompanySymbolsList = new ArrayList<>();
|
||||
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonIgnore
|
||||
private List<MemberContact> contactList = new ArrayList<>();
|
||||
private List<Contact> contactList = new ArrayList<>();
|
||||
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonIgnore
|
||||
private List<MemberProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
||||
private List<ProfileDocument> memberProfileDocumentList = new ArrayList<>();
|
||||
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonIgnore
|
||||
private List<MemberClient> memberClientList = new ArrayList<>();
|
||||
private List<Client> memberClientList = new ArrayList<>();
|
||||
|
||||
|
||||
public UUID getId() {
|
||||
|
|
@ -144,51 +144,51 @@ public class MemberCompany extends WithMapId {
|
|||
this.initiatorCode = initiatorCode;
|
||||
}
|
||||
|
||||
public MemberCompanyInfo getCompanyInfo() {
|
||||
public CompanyInfo getCompanyInfo() {
|
||||
return companyInfo;
|
||||
}
|
||||
|
||||
public void setCompanyInfo(MemberCompanyInfo companyInfo) {
|
||||
public void setCompanyInfo(CompanyInfo companyInfo) {
|
||||
this.companyInfo = companyInfo;
|
||||
}
|
||||
|
||||
public List<MemberCompanyClearingCategory> getCompanyClearingCategoryList() {
|
||||
public List<CompanyClearingCategory> getCompanyClearingCategoryList() {
|
||||
return companyClearingCategoryList;
|
||||
}
|
||||
|
||||
public void setCompanyClearingCategoryList(List<MemberCompanyClearingCategory> companyClearingCategoryList) {
|
||||
public void setCompanyClearingCategoryList(List<CompanyClearingCategory> companyClearingCategoryList) {
|
||||
this.companyClearingCategoryList = companyClearingCategoryList;
|
||||
}
|
||||
|
||||
public List<MemberCompanySymbols> getMemberCompanySymbolsList() {
|
||||
public List<CompanySymbols> getMemberCompanySymbolsList() {
|
||||
return memberCompanySymbolsList;
|
||||
}
|
||||
|
||||
public void setMemberCompanySymbolsList(List<MemberCompanySymbols> memberCompanySymbolsList) {
|
||||
public void setMemberCompanySymbolsList(List<CompanySymbols> memberCompanySymbolsList) {
|
||||
this.memberCompanySymbolsList = memberCompanySymbolsList;
|
||||
}
|
||||
|
||||
public List<MemberContact> getContactList() {
|
||||
public List<Contact> getContactList() {
|
||||
return contactList;
|
||||
}
|
||||
|
||||
public void setContactList(List<MemberContact> contactList) {
|
||||
public void setContactList(List<Contact> contactList) {
|
||||
this.contactList = contactList;
|
||||
}
|
||||
|
||||
public List<MemberProfileDocument> getProfileDocumentList() {
|
||||
public List<ProfileDocument> getProfileDocumentList() {
|
||||
return memberProfileDocumentList;
|
||||
}
|
||||
|
||||
public void setProfileDocumentList(List<MemberProfileDocument> memberProfileDocumentList) {
|
||||
public void setProfileDocumentList(List<ProfileDocument> memberProfileDocumentList) {
|
||||
this.memberProfileDocumentList = memberProfileDocumentList;
|
||||
}
|
||||
|
||||
public List<MemberClient> getClientList() {
|
||||
public List<Client> getClientList() {
|
||||
return memberClientList;
|
||||
}
|
||||
|
||||
public void setClientList(List<MemberClient> memberClientList) {
|
||||
public void setClientList(List<Client> memberClientList) {
|
||||
this.memberClientList = memberClientList;
|
||||
}
|
||||
}
|
||||
|
|
@ -2,11 +2,12 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class MemberCompanyClearingCategory extends WithMapId {
|
||||
public class CompanyClearingCategory extends WithMapId implements WithCompanyId {
|
||||
@JsonProperty("company_id")
|
||||
@ApiModelProperty(
|
||||
value = "Ссылка на company",
|
||||
|
|
@ -45,6 +46,7 @@ public class MemberCompanyClearingCategory extends WithMapId {
|
|||
private String workflowStatus;
|
||||
|
||||
|
||||
@Override
|
||||
public UUID getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
|
@ -2,10 +2,11 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class MemberCompanyInfo {
|
||||
public class CompanyInfo implements WithCompanyId {
|
||||
@JsonProperty("company_id")
|
||||
@ApiModelProperty(
|
||||
value = "Ссылка на company",
|
||||
|
|
@ -56,7 +57,7 @@ public class MemberCompanyInfo {
|
|||
)
|
||||
private String residence;
|
||||
|
||||
|
||||
@Override
|
||||
public UUID getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
|
@ -2,11 +2,12 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class MemberCompanySymbols extends WithMapId {
|
||||
public class CompanySymbols extends WithMapId implements WithCompanyId {
|
||||
@JsonProperty("company_id")
|
||||
@ApiModelProperty(
|
||||
value = "Ссылка на company",
|
||||
|
|
@ -42,7 +43,7 @@ public class MemberCompanySymbols extends WithMapId {
|
|||
)
|
||||
private String companySymbolValue;
|
||||
|
||||
|
||||
@Override
|
||||
public UUID getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
|
@ -2,11 +2,12 @@ package ru.spcex.clearing.gatewayapi.request.company;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class MemberContact extends WithMapId {
|
||||
public class Contact extends WithMapId implements WithCompanyId {
|
||||
@JsonProperty("company_id")
|
||||
@ApiModelProperty(
|
||||
value = "Ссылка на компанию",
|
||||
|
|
@ -34,7 +35,7 @@ public class MemberContact extends WithMapId {
|
|||
)
|
||||
private String contactValue;
|
||||
|
||||
|
||||
@Override
|
||||
public UUID getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
|
@ -4,12 +4,13 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
|||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithCompanyId;
|
||||
import ru.spcex.clearing.gatewayapi.request.WithMapId;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.UUID;
|
||||
|
||||
public class MemberProfileDocument extends WithMapId {
|
||||
public class ProfileDocument extends WithMapId implements WithCompanyId {
|
||||
@JsonProperty("company_id")
|
||||
@ApiModelProperty(
|
||||
value = "Ссылка на company",
|
||||
|
|
@ -73,6 +74,7 @@ public class MemberProfileDocument extends WithMapId {
|
|||
)
|
||||
private String link;
|
||||
|
||||
@Override
|
||||
public UUID getCompanyId() {
|
||||
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 = "Номер принятия Решения об утверждении Спецификации биржевого инструмента",
|
||||
example = "070323-01"
|
||||
)
|
||||
private LocalDate specificationApprovalNumber;
|
||||
private String specificationApprovalNumber;
|
||||
|
||||
@JsonProperty("workflow_status")
|
||||
@ApiModelProperty(
|
||||
|
|
@ -332,11 +332,11 @@ public class ExchangeInstrument extends WithMapId {
|
|||
this.specificationApprovalDate = specificationApprovalDate;
|
||||
}
|
||||
|
||||
public LocalDate getSpecificationApprovalNumber() {
|
||||
public String getSpecificationApprovalNumber() {
|
||||
return specificationApprovalNumber;
|
||||
}
|
||||
|
||||
public void setSpecificationApprovalNumber(LocalDate specificationApprovalNumber) {
|
||||
public void setSpecificationApprovalNumber(String specificationApprovalNumber) {
|
||||
this.specificationApprovalNumber = specificationApprovalNumber;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.HttpClientErrorException;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import ru.spcex.clearing.gatewayapi.config.GatewayApiSettings;
|
||||
import ru.spcex.clearing.gatewayapi.config.InboundServerSettings;
|
||||
|
|
@ -100,9 +101,14 @@ public class GatewayService extends QueueConsumer implements InitializingBean {
|
|||
inboundRequest.setContent(content);
|
||||
HttpEntity<InboundRequest> request = new HttpEntity<>(inboundRequest, httpHeaders);
|
||||
|
||||
ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
|
||||
Map bodyResponse = response.getBody();
|
||||
log.debug("Limit request complete, response: {}", bodyResponse);
|
||||
try {
|
||||
ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
|
||||
Map bodyResponse = response.getBody();
|
||||
log.debug("Limit request complete, response: {}", bodyResponse);
|
||||
} catch (HttpClientErrorException httpClientErrorException) {
|
||||
//ignore
|
||||
// log.warn("");
|
||||
}
|
||||
}
|
||||
|
||||
public void requestOnDemandSecurity(BaseRequest<GatewayTaskRequest> userRequest) {
|
||||
|
|
@ -128,6 +134,7 @@ public class GatewayService extends QueueConsumer implements InitializingBean {
|
|||
Map bodyResponse = response.getBody();
|
||||
log.debug("LOSC task 1/2 complete (FOND section), response: {}", bodyResponse);
|
||||
|
||||
inboundRequest.setId(UUID.randomUUID());
|
||||
inboundRequest.setSection(Section.MKR.getKey());
|
||||
request = new HttpEntity<>(inboundRequest, httpHeaders);
|
||||
response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
|
||||
|
|
|
|||
|
|
@ -1,81 +1,81 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.company;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MultiCompanyRequest {
|
||||
@JsonProperty
|
||||
String uuid;
|
||||
|
||||
@JsonProperty
|
||||
CompanyNewRequest company;
|
||||
@JsonProperty
|
||||
CompanyInfoUpdateRequest companyInfo;
|
||||
@JsonProperty
|
||||
List<ProfileDocumentNewRequest> profileDocuments = new ArrayList<>();
|
||||
@JsonProperty
|
||||
List<CompanySymbolNewRequest> companySymbols = new ArrayList<>();
|
||||
@JsonProperty
|
||||
List<ContactNewRequest> contacts = new ArrayList<>();
|
||||
@JsonProperty
|
||||
List<ClientCodeNewRequest> clientCodes = new ArrayList<>();
|
||||
|
||||
public String getUuid() {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
public void setUuid(String uuid) {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
public CompanyNewRequest getCompany() {
|
||||
return company;
|
||||
}
|
||||
|
||||
public void setCompany(CompanyNewRequest company) {
|
||||
this.company = company;
|
||||
}
|
||||
|
||||
public CompanyInfoUpdateRequest getCompanyInfo() {
|
||||
return companyInfo;
|
||||
}
|
||||
|
||||
public void setCompanyInfo(CompanyInfoUpdateRequest companyInfo) {
|
||||
this.companyInfo = companyInfo;
|
||||
}
|
||||
|
||||
public List<ProfileDocumentNewRequest> getProfileDocuments() {
|
||||
return profileDocuments;
|
||||
}
|
||||
|
||||
public void setProfileDocuments(List<ProfileDocumentNewRequest> profileDocuments) {
|
||||
this.profileDocuments = profileDocuments;
|
||||
}
|
||||
|
||||
public List<CompanySymbolNewRequest> getCompanySymbols() {
|
||||
return companySymbols;
|
||||
}
|
||||
|
||||
public void setCompanySymbols(List<CompanySymbolNewRequest> companySymbols) {
|
||||
this.companySymbols = companySymbols;
|
||||
}
|
||||
|
||||
public List<ContactNewRequest> getContacts() {
|
||||
return contacts;
|
||||
}
|
||||
|
||||
public void setContacts(List<ContactNewRequest> contacts) {
|
||||
this.contacts = contacts;
|
||||
}
|
||||
|
||||
public List<ClientCodeNewRequest> getClientCodes() {
|
||||
return clientCodes;
|
||||
}
|
||||
|
||||
public void setClientCodes(List<ClientCodeNewRequest> clientCodes) {
|
||||
this.clientCodes = clientCodes;
|
||||
}
|
||||
}
|
||||
package ru.spcex.clearing.platform.messaging.domain.cud.company;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CompanyGatewayRequest {
|
||||
@JsonProperty
|
||||
String uuid;
|
||||
|
||||
@JsonProperty
|
||||
CompanyNewRequest company;
|
||||
@JsonProperty
|
||||
CompanyInfoUpdateRequest companyInfo;
|
||||
@JsonProperty
|
||||
List<ProfileDocumentNewRequest> profileDocuments = new ArrayList<>();
|
||||
@JsonProperty
|
||||
List<CompanySymbolNewRequest> companySymbols = new ArrayList<>();
|
||||
@JsonProperty
|
||||
List<ContactNewRequest> contacts = new ArrayList<>();
|
||||
@JsonProperty
|
||||
List<ClientCodeNewRequest> clientCodes = new ArrayList<>();
|
||||
|
||||
public String getUuid() {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
public void setUuid(String uuid) {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
public CompanyNewRequest getCompany() {
|
||||
return company;
|
||||
}
|
||||
|
||||
public void setCompany(CompanyNewRequest company) {
|
||||
this.company = company;
|
||||
}
|
||||
|
||||
public CompanyInfoUpdateRequest getCompanyInfo() {
|
||||
return companyInfo;
|
||||
}
|
||||
|
||||
public void setCompanyInfo(CompanyInfoUpdateRequest companyInfo) {
|
||||
this.companyInfo = companyInfo;
|
||||
}
|
||||
|
||||
public List<ProfileDocumentNewRequest> getProfileDocuments() {
|
||||
return profileDocuments;
|
||||
}
|
||||
|
||||
public void setProfileDocuments(List<ProfileDocumentNewRequest> profileDocuments) {
|
||||
this.profileDocuments = profileDocuments;
|
||||
}
|
||||
|
||||
public List<CompanySymbolNewRequest> getCompanySymbols() {
|
||||
return companySymbols;
|
||||
}
|
||||
|
||||
public void setCompanySymbols(List<CompanySymbolNewRequest> companySymbols) {
|
||||
this.companySymbols = companySymbols;
|
||||
}
|
||||
|
||||
public List<ContactNewRequest> getContacts() {
|
||||
return contacts;
|
||||
}
|
||||
|
||||
public void setContacts(List<ContactNewRequest> contacts) {
|
||||
this.contacts = contacts;
|
||||
}
|
||||
|
||||
public List<ClientCodeNewRequest> getClientCodes() {
|
||||
return clientCodes;
|
||||
}
|
||||
|
||||
public void setClientCodes(List<ClientCodeNewRequest> clientCodes) {
|
||||
this.clientCodes = clientCodes;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue