ValidateMemberCompanies, CheckMemberCompanyExist

This commit is contained in:
akulikov 2023-05-27 12:29:16 +03:00
parent 53fab62830
commit 0881e1182b
14 changed files with 451 additions and 46 deletions

View file

@ -20,8 +20,8 @@ public class PipelineConfiguration {
pipeline.add(new PrepareIssuerCompanies());
pipeline.add(new ValidateIncomeSecurities());
pipeline.add(new ValidateIssuerCompanies());
pipeline.add(new CheckSecurityExist(imdgProvider));
pipeline.add(new CheckCompanyExist(imdgProvider));
pipeline.add(new CheckFondSecurityExist(imdgProvider));
pipeline.add(new CheckIssuerCompanyExist(imdgProvider));
pipeline.add(new SendMessageToCompanyService(kafkaSender, imdgProvider));
pipeline.add(new SendMessageToSecurityService(kafkaSender, imdgProvider));
return pipeline;

View file

@ -0,0 +1,257 @@
package ru.spcex.clearing.gatewayapi.logic.companies;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.account.ClientCode;
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.request.objects.*;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
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<ClientCode> clientCodeImdg;
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);
clientCodeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClientCode, ClientCode.class);
}
@Override
public ProcessResult process(CompaniesRequestParam param) {
List<MemberCompany> companyList = param.getMemberCompanyList();
for (MemberCompany company : companyList) {
boolean companyFound = false;
List<MemberCompanySymbols> companySymbolsList = company.getMemberCompanySymbolsList();
// Пытаемся найти компанию по UUID
Collection<CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companySymbol", "UUID",
"companySymbolValue", company.getId()
)
);
if (!companySymbolsFromImdg.isEmpty()) {
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
if (companySymbolsFromImdg.size() > 1) {
log.warn("For UUID found > 1 company_symbols, update first (id = {})", companySymbolFromImdg.getId());
}
companyFound = true;
company.setAlreadyExist(true);
company.setMapId(companySymbolFromImdg.getId());
}
// Если по UUID не нашли, пытаемся найти по INN или CIO
List<MemberCompanySymbols> companySymbolsListINNorCIO = companySymbolsList.stream()
.filter(issuerCompanySymbols ->
!issuerCompanySymbols.isInvalidData() &&
(
CompanySymbol.CIO.equalsByKey(issuerCompanySymbols.getCompanySymbol()) ||
CompanySymbol.INN.equalsByKey(issuerCompanySymbols.getCompanySymbol())
)
).collect(Collectors.toList());
// Для компании не найдены реквизиты, значит создаем новую компанию
if (companySymbolsListINNorCIO.isEmpty()) {
company.setAlreadyExist(false);
continue;
}
// Реквизиты найдены, ищем по ним company.id
for (MemberCompanySymbols companySymbols : companySymbolsListINNorCIO) {
if (companySymbols.isInvalidData()) continue;
companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companySymbol", companySymbols.getCompanySymbol(),
"companySymbolValue", companySymbols.getCompanySymbolValue()
)
);
if (companySymbolsFromImdg.isEmpty()) {
companySymbols.setAlreadyExist(false);
} else {
if (companySymbolsFromImdg.size() > 1)
log.warn("For {} found > 1 company_symbols, use first", companySymbols.getCompanySymbol());
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
Company companyFromImdg = companyImdg.getSingleObjectByID(companySymbolFromImdg.getCompanyId());
if (companyFromImdg == null) {
// Случай, когда реквизиты есть, а компании нет (по сути данных ошибка в мапе)
log.warn("For own company_symbols (id = {}) company not found", companySymbolFromImdg.getId());
companySymbols.setAlreadyExist(false);
continue;
} else if (companyFound) {
// Случай, когда по переданным реквизитам найдено несколько компании
if (!Objects.equals(company.getMapId(), companyFromImdg.getId())) {
log.warn("For company_symbols (company.UUID = {}, {} = {}) found > 1 company (company.id = {}), " +
"company_symbols skipped",
company.getId(),
companySymbols.getCompanySymbol(),
companySymbols.getCompanySymbolValue(),
companyFromImdg.getId());
companySymbols.setInvalidData(true);
continue;
}
} else {
// Самый вероятный случай: компания найдена по реквизитам
companyFound = true;
company.setAlreadyExist(true);
company.setMapId(companyFromImdg.getId());
}
companySymbols.setAlreadyExist(true);
companySymbols.setMapId(companySymbolsFromImdg.iterator().next().getId());
}
}
// Если компания реквизиты есть, а компании нет. Маловероятный кейс
if (!companyFound) {
company.setAlreadyExist(false);
continue;
}
// Проверяем оставшиеся реквизиты на необходимость обновления
for (MemberCompanySymbols companySymbols : companySymbolsList) {
if (companySymbols.isInvalidData() || companySymbols.getMapId() == null) continue;
companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"companySymbol", companySymbols.getCompanySymbol(),
"companySymbolValue", companySymbols.getCompanySymbolValue()
)
);
if (companySymbolsFromImdg.isEmpty()) {
companySymbols.setAlreadyExist(false);
} else {
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
if (companySymbolsFromImdg.size() > 1) {
log.warn("For company_symbols ({}={}) found > 1 own company_symbols, " +
"update first (company_symbols.id = {})",
companySymbols.getCompanySymbol(),
companySymbols.getCompanySymbolValue(),
companySymbolFromImdg.getId());
}
companySymbols.setAlreadyExist(true);
companySymbols.setMapId(companySymbolFromImdg.getId());
}
}
// Проверяем контакты, документы и клиентов на необходимость обновления
if (company.isAlreadyExist()) {
List<MemberContact> contactList = company.getContactList();
for (MemberContact contact : contactList) {
if (contact.isInvalidData()) continue;
Collection<Contact> contactsFromImdg = contactImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"contactType", contact.getContactType()
)
);
if (contactsFromImdg.isEmpty()) {
contact.setAlreadyExist(false);
} else {
Contact contactFromImdg = contactsFromImdg.iterator().next();
if (contactsFromImdg.size() > 1) {
log.warn("Found contact > 1 for contactType {}, update first (id = {})",
contactFromImdg.getContactType(),
contactFromImdg.getId());
}
contact.setAlreadyExist(true);
contact.setMapId(contactFromImdg.getId());
}
}
List<MemberProfileDocument> memberProfileDocumentList = company.getProfileDocumentList();
for (MemberProfileDocument memberProfileDocument : memberProfileDocumentList) {
if (memberProfileDocument.isInvalidData()) continue;
Collection<ProfileDocument> profileDocumentsFromImdg = profileDocumentImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"documentType", memberProfileDocument.getDocumentType()
)
);
if (profileDocumentsFromImdg.isEmpty()) {
memberProfileDocument.setAlreadyExist(false);
} else {
ProfileDocument profileDocument = profileDocumentsFromImdg.iterator().next();
if (profileDocumentsFromImdg.size() > 1) {
log.warn("Found profileDocument > 1 for documentType {} (companyId {}), update first (id = {})",
memberProfileDocument.getDocumentType(),
company.getMapId(),
profileDocument.getId());
}
memberProfileDocument.setAlreadyExist(true);
memberProfileDocument.setMapId(profileDocument.getId());
}
}
List<MemberClient> memberClientList = company.getClientList();
for (MemberClient memberClient : memberClientList) {
if (memberClient.isInvalidData()) continue;
Collection<ClientCode> clientCodesFromImdg = clientCodeImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"code", memberClient.getClientCode()
)
);
if (clientCodesFromImdg.isEmpty()) {
memberClient.setAlreadyExist(false);
} else {
ClientCode clientCode = clientCodesFromImdg.iterator().next();
if (clientCodesFromImdg.size() > 1) {
log.warn("Found clientCode > 1 for code {} (companyId {}), update first (id = {})",
clientCode.getCode(),
company.getMapId(),
clientCode.getId());
}
memberClient.setAlreadyExist(true);
memberClient.setMapId(clientCode.getId());
}
}
}
}
List<MemberCompany> filteredMemberCompany = companyList.stream()
.filter(issuerCompany -> !issuerCompany.isInvalidData())
.collect(Collectors.toList());
// todo check list is empty
param.setMemberCompanyList(filteredMemberCompany);
return null;
}
}

View file

@ -82,28 +82,28 @@ public class PrepareMemberCompanies extends Stage<CompaniesRequestParam> {
memberCompany.getCompanyClearingCategoryList().add(companyClearingCategory);
}
List<ProfileDocument> profileDocumentList = param.getCompaniesRequest().getProfileDocumentList();
for (ProfileDocument profileDocument : profileDocumentList) {
UUID profileDocumentUUID = profileDocument.getCompanyId();
List<MemberProfileDocument> memberProfileDocumentList = param.getCompaniesRequest().getProfileDocumentList();
for (MemberProfileDocument memberProfileDocument : memberProfileDocumentList) {
UUID profileDocumentUUID = memberProfileDocument.getCompanyId();
MemberCompany memberCompany = companyForUUID.get(profileDocumentUUID);
if (memberCompany == null) {
log.warn("For profileDocument (documentType {}) not found company, skipped", profileDocument.getDocumentType());
profileDocument.setInvalidData(true);
log.warn("For profileDocument (documentType {}) not found company, skipped", memberProfileDocument.getDocumentType());
memberProfileDocument.setInvalidData(true);
continue;
}
memberCompany.getProfileDocumentList().add(profileDocument);
memberCompany.getProfileDocumentList().add(memberProfileDocument);
}
List<Client> clientList = param.getCompaniesRequest().getClientList();
for (Client client : clientList) {
UUID clientUUID = client.getCompanyId();
List<MemberClient> memberClientList = param.getCompaniesRequest().getClientList();
for (MemberClient memberClient : memberClientList) {
UUID clientUUID = memberClient.getCompanyId();
MemberCompany memberCompany = companyForUUID.get(clientUUID);
if (memberCompany == null) {
log.warn("For client (clientCode {}) not found company, skipped", client.getClientCode());
client.setInvalidData(true);
log.warn("For client (clientCode {}) not found company, skipped", memberClient.getClientCode());
memberClient.setInvalidData(true);
continue;
}
memberCompany.getClientList().add(client);
memberCompany.getClientList().add(memberClient);
}
List<MemberCompany> filteredIssuerCompany = companyList.stream()

View file

@ -5,13 +5,58 @@ 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.objects.MemberCompany;
import ru.spcex.clearing.gatewayapi.request.objects.*;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.utils.enumeration.IEnumKey;
import java.util.Arrays;
import java.util.List;
public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final List<CompanySymbol> validCompanySymbols = Arrays.asList(
CompanySymbol.INN,
CompanySymbol.CIO,
CompanySymbol.OGRN,
CompanySymbol.CPP,
CompanySymbol.OCPO,
CompanySymbol.BIC,
CompanySymbol.LICB,
CompanySymbol.LICR,
CompanySymbol.LICD,
CompanySymbol.LICT,
CompanySymbol.LICC,
CompanySymbol.LICF
);
private final List<ContactTypes> validContactTypes = Arrays.asList(
ContactTypes.adrs,
ContactTypes.cont,
ContactTypes.mail,
ContactTypes.gdir,
ContactTypes.trst,
ContactTypes.fax,
ContactTypes.info,
ContactTypes.web
);
private final List<DocumentTypes> validDocumentTypes = Arrays.asList(
DocumentTypes.cntr,
DocumentTypes.form,
DocumentTypes.licb,
DocumentTypes.licr,
DocumentTypes.licd,
DocumentTypes.lict,
DocumentTypes.licc,
DocumentTypes.licf,
DocumentTypes.edoc,
DocumentTypes.xcnt
);
private final List<ServiceStatus> validWorkflowStatus = List.of(ServiceStatus.values());
private final List<ClearingCategory> validClearingCategory = List.of(ClearingCategory.values());
@Override
public ProcessResult process(CompaniesRequestParam param) {
List<MemberCompany> memberCompanyList = param.getMemberCompanyList();
@ -25,7 +70,92 @@ public class ValidateMemberCompanies extends Stage<CompaniesRequestParam> {
continue;
}
// todo in progress...
for (MemberCompanyClearingCategory companyClearingCategory : company.getCompanyClearingCategoryList()) {
String workflowStatusStr = companyClearingCategory.getWorkflowStatus();
ServiceStatus workflowStatus = IEnumKey.getEnumByKey(ServiceStatus.class, workflowStatusStr);
if (!validWorkflowStatus.contains(workflowStatus)) {
log.warn("Invalid workflow_status {} for company_clearing_category for company.UUID {}, skipped", workflowStatus, company.getId());
companyClearingCategory.setInvalidData(true);
}
String clearingCategoryStr = companyClearingCategory.getCategory();
ClearingCategory clearingCategory = IEnumKey.getEnumByKey(ClearingCategory.class, clearingCategoryStr);
if (!validClearingCategory.contains(clearingCategory)) {
log.warn("Invalid category {} for company_clearing_category for company.UUID {}, skipped", workflowStatus, company.getId());
companyClearingCategory.setInvalidData(true);
}
}
for (MemberCompanySymbols companySymbols : company.getMemberCompanySymbolsList()) {
String companySymbolStr = companySymbols.getCompanySymbol();
CompanySymbol companySymbol = IEnumKey.getEnumByKey(CompanySymbol.class, companySymbolStr);
if (!validCompanySymbols.contains(companySymbol)) {
log.warn("Invalid companySymbol {} for company.UUID {}, skipped", companySymbolStr, company.getId());
companySymbols.setInvalidData(true);
}
if (StringUtils.isEmpty(companySymbols.getCompanySymbolValue())) {
log.warn("Empty or null companySymbolValue for company.UUID {}, skipped", companySymbols.getCompanySymbolValue());
companySymbols.setInvalidData(true);
}
}
for (MemberContact contact : company.getContactList()) {
String contactTypeStr = contact.getContactType();
ContactTypes contactType = IEnumKey.getEnumByKey(ContactTypes.class, contactTypeStr);
if (!validContactTypes.contains(contactType)) {
log.warn("Invalid contact_type {} for company.UUID {}, skipped", contactTypeStr, company.getId());
contact.setInvalidData(true);
}
if (StringUtils.isEmpty(contact.getContactValue())) {
log.warn("Empty or null contact_value for contact {}, company.UUID {}", contactTypeStr, company.getId());
contact.setInvalidData(true);
}
}
for (MemberProfileDocument memberProfileDocument : company.getProfileDocumentList()) {
String documentTypeStr = memberProfileDocument.getDocumentType();
DocumentTypes documentType = IEnumKey.getEnumByKey(DocumentTypes.class, documentTypeStr);
if (!validDocumentTypes.contains(documentType)) {
log.warn("Invalid document_type {} for profile_document for company.UUID {}, skipped", documentTypeStr, company.getId());
memberProfileDocument.setInvalidData(true);
}
if (memberProfileDocument.getIssueDate() == null) {
log.warn("issue_date is null for profile_document, company.UUID {}", company.getId());
memberProfileDocument.setInvalidData(true);
}
if (StringUtils.isEmpty(memberProfileDocument.getIssuer())) {
log.warn("issuer is null or empty for profile_document, company.UUID {}", company.getId());
memberProfileDocument.setInvalidData(true);
}
if (StringUtils.isEmpty(memberProfileDocument.getNumber())) {
log.warn("number is null or empty for profile_document, company.UUID {}", company.getId());
memberProfileDocument.setInvalidData(true);
}
if (memberProfileDocument.getValidToDate() == null) {
log.warn("valid_to_date is null for profile_document, company.UUID {}", company.getId());
memberProfileDocument.setInvalidData(true);
}
}
for (MemberClient memberClient : company.getClientList()) {
if (StringUtils.isEmpty(memberClient.getClientCode())) {
log.warn("client_code is null or empty for client, company.UUID {}", company.getId());
memberClient.setInvalidData(true);
}
if (StringUtils.isEmpty(memberClient.getMoneyAccount()) && StringUtils.isEmpty(memberClient.getDepoAccount())) {
log.warn("money_account and depo_account is null or empty for client, company.UUID {}", company.getId());
memberClient.setInvalidData(true);
}
}
}

View file

@ -22,7 +22,7 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
public class CheckSecurityExist extends Stage<FondListingsRequestParam> {
public class CheckFondSecurityExist extends Stage<FondListingsRequestParam> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<EquitySecurity> equitySecurityImdg;
@ -31,7 +31,7 @@ public class CheckSecurityExist extends Stage<FondListingsRequestParam> {
private final Imdg<CouponPeriod> couponPeriodImdg;
private final Imdg<FixedIncomeCashFlow> fixedIncomeCashFlowImdg;
public CheckSecurityExist(ImdgProvider imdgProvider) {
public CheckFondSecurityExist(ImdgProvider imdgProvider) {
equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class);
listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);

View file

@ -21,14 +21,14 @@ import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
public class CheckCompanyExist extends Stage<FondListingsRequestParam> {
public class CheckIssuerCompanyExist extends Stage<FondListingsRequestParam> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<Company> companyImdg;
private final Imdg<CompanySymbols> companySymbolsImdg;
private final Imdg<Contact> contactImdg;
public CheckCompanyExist(ImdgProvider imdgProvider) {
public CheckIssuerCompanyExist(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);
@ -135,10 +135,11 @@ public class CheckCompanyExist extends Stage<FondListingsRequestParam> {
// Проверяем оставшиеся реквизиты на необходимость обновления
for (IssuerCompanySymbols companySymbols : companySymbolsList) {
if (companySymbols.isInvalidData() || companySymbols.getMapId() != null) continue;
if (companySymbols.isInvalidData() || companySymbols.getMapId() == null) continue;
companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"companySymbol", companySymbols.getCompanySymbol(),
"companySymbolValue", companySymbols.getCompanySymbolValue()
)
@ -160,13 +161,16 @@ public class CheckCompanyExist extends Stage<FondListingsRequestParam> {
}
// Проверяем контакты на необходимость обновления
if (company.isAlreadyExist()) {
if (company.isAlreadyExist() && company.getMapId() != null) {
List<IssuerContact> contactList = company.getIssuerContactList();
for (IssuerContact contact : contactList) {
if (contact.isInvalidData()) continue;
Collection<Contact> contactsFromImdg = contactImdg.getCollectionObjectsByFieldValues(
Map.of("contactType", contact.getContactType())
Map.of(
"companyId", company.getMapId(),
"contactType", contact.getContactType()
)
);
if (contactsFromImdg.isEmpty()) {
contact.setAlreadyExist(false);

View file

@ -22,6 +22,7 @@ public class ValidateIssuerCompanies extends Stage<FondListingsRequestParam> {
private final List<CompanySymbol> validCompanySymbols = Arrays.asList(
CompanySymbol.OCVD,
CompanySymbol.INN,
CompanySymbol.CIO,
CompanySymbol.CPP,
CompanySymbol.OCPO,
CompanySymbol.BIC,

View file

@ -29,11 +29,11 @@ public class CompaniesRequest extends BaseRequest {
@JsonProperty("profile_document")
@ApiModelProperty(value = "Список документов участников")
private List<ProfileDocument> profileDocumentList;
private List<MemberProfileDocument> memberProfileDocumentList;
@JsonProperty("client")
@ApiModelProperty(value = "Список клиентов участников")
private List<Client> clientList;
private List<MemberClient> memberClientList;
public List<MemberCompany> getCompanyList() {
@ -76,19 +76,19 @@ public class CompaniesRequest extends BaseRequest {
this.contactList = contactList;
}
public List<ProfileDocument> getProfileDocumentList() {
return profileDocumentList;
public List<MemberProfileDocument> getProfileDocumentList() {
return memberProfileDocumentList;
}
public void setProfileDocumentList(List<ProfileDocument> profileDocumentList) {
this.profileDocumentList = profileDocumentList;
public void setProfileDocumentList(List<MemberProfileDocument> memberProfileDocumentList) {
this.memberProfileDocumentList = memberProfileDocumentList;
}
public List<Client> getClientList() {
return clientList;
public List<MemberClient> getClientList() {
return memberClientList;
}
public void setClientList(List<Client> clientList) {
this.clientList = clientList;
public void setClientList(List<MemberClient> memberClientList) {
this.memberClientList = memberClientList;
}
}

View file

@ -25,6 +25,7 @@ public class IssuerCompanySymbols extends WithMapId {
· OCPO
· BIC
· OGRN
· CIO
""",
example = "INN"
)
@ -36,6 +37,7 @@ public class IssuerCompanySymbols extends WithMapId {
Значения для company_symbol:
Для OCVD - Регистрационные данные\\ОКВЭД
Для INN - Основные сведения\\ИНН
Для CIO - Основные сведения\\CIO
Для CPP - Основные сведения\\КПП
Для OCPO - Основные сведения\\ОКПО
Для BIC - Основные сведения\\БИК

View file

@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import java.util.UUID;
public class Client extends WithMapId {
public class MemberClient extends WithMapId {
@JsonProperty("company_id")
@ApiModelProperty(
value = "Ссылка на company",

View file

@ -75,10 +75,10 @@ public class MemberCompany extends WithMapId {
private List<MemberContact> contactList = new ArrayList<>();
@JsonIgnore
private List<ProfileDocument> profileDocumentList = new ArrayList<>();
private List<MemberProfileDocument> memberProfileDocumentList = new ArrayList<>();
@JsonIgnore
private List<Client> clientList = new ArrayList<>();
private List<MemberClient> memberClientList = new ArrayList<>();
public UUID getId() {
@ -169,19 +169,19 @@ public class MemberCompany extends WithMapId {
this.contactList = contactList;
}
public List<ProfileDocument> getProfileDocumentList() {
return profileDocumentList;
public List<MemberProfileDocument> getProfileDocumentList() {
return memberProfileDocumentList;
}
public void setProfileDocumentList(List<ProfileDocument> profileDocumentList) {
this.profileDocumentList = profileDocumentList;
public void setProfileDocumentList(List<MemberProfileDocument> memberProfileDocumentList) {
this.memberProfileDocumentList = memberProfileDocumentList;
}
public List<Client> getClientList() {
return clientList;
public List<MemberClient> getClientList() {
return memberClientList;
}
public void setClientList(List<Client> clientList) {
this.clientList = clientList;
public void setClientList(List<MemberClient> memberClientList) {
this.memberClientList = memberClientList;
}
}

View file

@ -8,7 +8,7 @@ import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
import java.time.LocalDate;
import java.util.UUID;
public class ProfileDocument extends WithMapId {
public class MemberProfileDocument extends WithMapId {
@JsonProperty("company_id")
@ApiModelProperty(
value = "Ссылка на company",

View file

@ -13,7 +13,14 @@ public enum CompanySymbol implements IEnumKey {
UUID("UUID"),
TRDC("TRDC"),
CLRC("CLRC"),
RGRC("RGRC");
RGRC("RGRC"),
LICB("LICB"),
LICR("LICR"),
LICD("LICD"),
LICT("LICT"),
LICC("LICC"),
LICF("LICF"),
;
private final String key;

View file

@ -19,6 +19,10 @@ public enum DocumentTypes implements IEnumKey {
inn("INN"), // ИНН
cio("CIO"), // КИО
licr("LICR"), // Брокерская лицензия
licd("LICD"), // Номер дилерской лицензии
lict("LICT"), // Номер лицензии по управлению ЦБ
licc("LICC"), // Номер лицензии по брокерской деятельности ПФИ (производных финансовых инструментов)
licf("LICF"), // Номер лицензии форекс-дилера
fin("FIN"), // Финансовая отчетность
trst("TRST"), // Полномочия должностных лиц
pmkr("PMKR"), // Распоряжение на списание МКР