http://jira.mfd.msk:8088/browse/CLS-301 fix bad logic and search company for company symbols, if company not found in request

This commit is contained in:
akulikov 2023-05-30 20:02:33 +03:00
parent f99398ea12
commit 587da25d0c
5 changed files with 192 additions and 209 deletions

View file

@ -61,6 +61,21 @@
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-validation</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>test-clearing</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View file

@ -14,11 +14,12 @@ 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 ru.spcex.platform.utils.enumeration.IEnumKey;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
@ -52,109 +53,35 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
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 = {} > 1 company_symbols, update first (id = {})", company.getId(), companySymbolFromImdg.getId());
}
companyFound = true;
company.setAlreadyExist(true);
company.setMapId(companySymbolFromImdg.getId());
Map<CompanySymbol, String> companySymbolMap = new HashMap<>();
for (MemberCompanySymbols memberCompanySymbol : companySymbolsList) {
if (
!memberCompanySymbol.isInvalidData() &&
!CompanySymbol.CIO.equalsByKey(memberCompanySymbol.getCompanySymbol()) &&
!CompanySymbol.INN.equalsByKey(memberCompanySymbol.getCompanySymbol())
) continue;
companySymbolMap.put(IEnumKey.getEnumByKey(CompanySymbol.class, memberCompanySymbol.getCompanySymbol()), memberCompanySymbol.getCompanySymbolValue());
}
Long companyId = getCompanyIdForCompanySymbols(company.getId().toString(), companySymbolMap);
// Если по 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()) {
if (companyId != null) {
company.setAlreadyExist(true);
company.setMapId(companyId);
} else {
company.setAlreadyExist(false);
continue;
}
// Реквизиты найдены, ищем по ним company.id
for (MemberCompanySymbols companySymbols : companySymbolsListINNorCIO) {
// Проверяем реквизиты на необходимость обновления
for (MemberCompanySymbols companySymbols : companySymbolsList) {
if (companySymbols.isInvalidData()) continue;
companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Collection<CompanySymbols> 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()
"companyId", companyId,
"companySymbol", companySymbols.getCompanySymbol()
)
);
if (companySymbolsFromImdg.isEmpty()) {
@ -181,7 +108,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
Collection<Contact> contactsFromImdg = contactImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"companyId", companyId,
"contactType", contact.getContactType()
)
);
@ -205,7 +132,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
Collection<ProfileDocument> profileDocumentsFromImdg = profileDocumentImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"companyId", companyId,
"documentType", memberProfileDocument.getDocumentType()
)
);
@ -216,7 +143,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
if (profileDocumentsFromImdg.size() > 1) {
log.warn("Found profile_document > 1 for document_type {} (company.id {}), update first (id = {})",
memberProfileDocument.getDocumentType(),
company.getMapId(),
companyId,
profileDocument.getId());
}
memberProfileDocument.setAlreadyExist(true);
@ -230,7 +157,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
Collection<ClientCode> clientCodesFromImdg = clientCodeImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"companyId", companyId,
"code", memberClient.getClientCode()
)
);
@ -241,7 +168,7 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
if (clientCodesFromImdg.size() > 1) {
log.warn("Found client_code > 1 for code {} (company.id {}), update first (id = {})",
clientCode.getCode(),
company.getMapId(),
companyId,
clientCode.getId());
}
memberClient.setAlreadyExist(true);
@ -256,11 +183,9 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
}
List<MemberCompany> filteredMemberCompany = companyList.stream()
.filter(issuerCompany -> !issuerCompany.isInvalidData())
.filter(memberCompany -> !memberCompany.isInvalidData())
.collect(Collectors.toList());
// todo check list is empty
param.setMemberCompanyList(filteredMemberCompany);
return null;
@ -319,4 +244,50 @@ public class CheckMemberCompanyExist extends Stage<CompaniesRequestParam> {
}
}
}
private Long getCompanyIdForCompanySymbols(String uuid, Map<CompanySymbol, String> INNorCIO) {
Collection<CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companySymbol", CompanySymbol.UUID.getKey(),
"companySymbolValue", uuid
)
);
if (!companySymbolsFromImdg.isEmpty()) {
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
if (companySymbolsFromImdg.size() > 1) {
log.warn("For UUID found > 1 company_symbols, use first (id = {})", companySymbolFromImdg.getId());
}
return companySymbolFromImdg.getCompanyId();
}
for (Map.Entry<CompanySymbol, String> entry : INNorCIO.entrySet()) {
CompanySymbol companySymbol = entry.getKey();
String companySymbolValue = entry.getValue();
companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companySymbol", companySymbol.getKey(),
"companySymbolValue", companySymbolValue
)
);
if (!companySymbolsFromImdg.isEmpty()) {
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());
if (companyFromImdg == null) {
// Случай, когда реквизиты есть, а компании нет (по сути данных ошибка в мапе)
log.error("For own company_symbols (id = {}) company not found (map error)", companySymbolFromImdg.getId());
} else {
return companyFromImdg.getId();
}
}
}
return null;
}
}

View file

@ -14,11 +14,12 @@ 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 ru.spcex.platform.utils.enumeration.IEnumKey;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
public class CheckIssuerCompanyExist extends Stage<FondListingsRequestParam> {
@ -39,109 +40,35 @@ public class CheckIssuerCompanyExist extends Stage<FondListingsRequestParam> {
List<IssuerCompany> companyList = param.getIssuerCompanyList();
for (IssuerCompany company : companyList) {
boolean companyFound = false;
List<IssuerCompanySymbols> companySymbolsList = company.getIssuerCompanySymbolsList();
// Пытаемся найти компанию по 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());
Map<CompanySymbol, String> companySymbolMap = new HashMap<>();
for (IssuerCompanySymbols issuerCompanySymbol : companySymbolsList) {
if (
!issuerCompanySymbol.isInvalidData() &&
!CompanySymbol.CIO.equalsByKey(issuerCompanySymbol.getCompanySymbol()) &&
!CompanySymbol.INN.equalsByKey(issuerCompanySymbol.getCompanySymbol())
) continue;
companySymbolMap.put(IEnumKey.getEnumByKey(CompanySymbol.class, issuerCompanySymbol.getCompanySymbol()), issuerCompanySymbol.getCompanySymbolValue());
}
Long companyId = getCompanyIdForCompanySymbols(company.getId().toString(), companySymbolMap);
// Если по UUID не нашли, пытаемся найти по INN или CIO
List<IssuerCompanySymbols> companySymbolsListINNorCIO = companySymbolsList.stream()
.filter(issuerCompanySymbols ->
!issuerCompanySymbols.isInvalidData() &&
(
CompanySymbol.CIO.equalsByKey(issuerCompanySymbols.getCompanySymbol()) ||
CompanySymbol.INN.equalsByKey(issuerCompanySymbols.getCompanySymbol())
)
).collect(Collectors.toList());
// Для компании не найдены реквизиты, значит создаем новую компанию
if (companySymbolsListINNorCIO.isEmpty()) {
if (companyId != null) {
company.setAlreadyExist(true);
company.setMapId(companyId);
} else {
company.setAlreadyExist(false);
continue;
}
// Реквизиты найдены, ищем по ним company.id
for (IssuerCompanySymbols companySymbols : companySymbolsListINNorCIO) {
// Проверяем реквизиты на необходимость обновления
for (IssuerCompanySymbols companySymbols : companySymbolsList) {
if (companySymbols.isInvalidData()) continue;
companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Collection<CompanySymbols> 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.id = {}, {} = {}) 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 (IssuerCompanySymbols companySymbols : companySymbolsList) {
if (companySymbols.isInvalidData() || companySymbols.getMapId() == null) continue;
companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companyId", company.getMapId(),
"companySymbol", companySymbols.getCompanySymbol(),
"companySymbolValue", companySymbols.getCompanySymbolValue()
"companyId", companyId,
"companySymbol", companySymbols.getCompanySymbol()
)
);
if (companySymbolsFromImdg.isEmpty()) {
@ -193,10 +120,53 @@ public class CheckIssuerCompanyExist extends Stage<FondListingsRequestParam> {
.filter(issuerCompany -> !issuerCompany.isInvalidData())
.collect(Collectors.toList());
// todo check list is empty
param.setIssuerCompanyList(filteredIssuerCompany);
return null;
}
private Long getCompanyIdForCompanySymbols(String uuid, Map<CompanySymbol, String> INNorCIO) {
Collection<CompanySymbols> companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companySymbol", CompanySymbol.UUID.getKey(),
"companySymbolValue", uuid
)
);
if (!companySymbolsFromImdg.isEmpty()) {
CompanySymbols companySymbolFromImdg = companySymbolsFromImdg.iterator().next();
if (companySymbolsFromImdg.size() > 1) {
log.warn("For UUID found > 1 company_symbols, use first (id = {})", companySymbolFromImdg.getId());
}
return companySymbolFromImdg.getCompanyId();
}
for (Map.Entry<CompanySymbol, String> entry : INNorCIO.entrySet()) {
CompanySymbol companySymbol = entry.getKey();
String companySymbolValue = entry.getValue();
companySymbolsFromImdg = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companySymbol", companySymbol.getKey(),
"companySymbolValue", companySymbolValue
)
);
if (!companySymbolsFromImdg.isEmpty()) {
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());
if (companyFromImdg == null) {
// Случай, когда реквизиты есть, а компании нет (по сути данных ошибка в мапе)
log.error("For own company_symbols (id = {}) company not found (map error)", companySymbolFromImdg.getId());
} else {
return companyFromImdg.getId();
}
}
}
return null;
}
}

View file

@ -2,6 +2,8 @@ package ru.spcex.clearing.gatewayapi.logic.listings_fond;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
import ru.spcex.clearing.gatewayapi.logic.ProcessResult;
@ -14,12 +16,15 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.enumeration.InstrumentType;
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.UUID;
public class SendMessageToSecurityServiceWithFondSecurities extends Stage<FondListingsRequestParam> {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -27,12 +32,16 @@ public class SendMessageToSecurityServiceWithFondSecurities extends Stage<FondLi
private final KafkaSender kafkaSender;
private final Imdg<FixedIncomeSecurity> fixedIncomeSecurityImdg;
private final Imdg<EquitySecurity> equitySecurityImdg;
private final Imdg<CompanySymbols> companySymbolsImdg;
private final Imdg<Company> companyImdg;
public SendMessageToSecurityServiceWithFondSecurities(KafkaSender kafkaSender, ImdgProvider imdgProvider) {
this.kafkaSender = kafkaSender;
this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class);
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
this.companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
}
@Override
@ -40,10 +49,34 @@ public class SendMessageToSecurityServiceWithFondSecurities extends Stage<FondLi
List<FondSecurity> securityList = param.getSecurities();
for (FondSecurity security : securityList) {
if (security.isInvalidData()) continue;
Long companyId;
if (security.getIssuerCompany() == null || security.getIssuerCompany().getMapId() == null) {
log.warn("Can't insert security.UUID {}, company not found for parameter issuerId", security.getId());
security.setInvalidData(true);
continue;
// Пытаемся найти компанию по UUID
UUID companyUUID = security.getIssuerId();
Collection<CompanySymbols> companySymbols = companySymbolsImdg.getCollectionObjectsByFieldValues(
Map.of(
"companySymbol", CompanySymbol.UUID.getKey(),
"companySymbolValue", companyUUID.toString()
)
);
if (companySymbols.isEmpty()) {
log.warn("Can't insert security.id {}, company not found for parameter issuerId", security.getId());
security.setInvalidData(true);
continue;
} else if (companySymbols.size() > 1) {
log.warn("For {} = {} found > 1 company_symbol, use first", CompanySymbol.UUID.getKey(), companyUUID);
}
// Проверяем, что в базе помимо реквизита есть компания
companyId = companySymbols.iterator().next().getCompanyId();
Company company = companyImdg.getSingleObjectByID(companyId);
if (company == null) {
log.warn("Can't insert security: not found company with id {}", companyId);
security.setInvalidData(true);
continue;
}
} else {
companyId = security.getIssuerCompany().getMapId();
}
Long securityId;
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
@ -58,7 +91,7 @@ public class SendMessageToSecurityServiceWithFondSecurities extends Stage<FondLi
fixedIncomeSecurityNewRequest.setNominalCurrency(security.getNominalCurrency());
fixedIncomeSecurityNewRequest.setMaturityDate(security.getMaturityDate());
fixedIncomeSecurityNewRequest.setCouponFrequency(security.getCouponFrequency());
fixedIncomeSecurityNewRequest.setIssuerId(security.getIssuerCompany().getMapId());
fixedIncomeSecurityNewRequest.setIssuerId(companyId);
fixedIncomeSecurityNewRequest.setShortNameEng(security.getShortNameEng());
fixedIncomeSecurityNewRequest.setFullNameEng(security.getFullNameEng());
fixedIncomeSecurityNewRequest.setWorkflowStatus(security.getWorkflowStatus());
@ -76,7 +109,7 @@ public class SendMessageToSecurityServiceWithFondSecurities extends Stage<FondLi
fixedIncomeSecurityUpdateRequest.setNominalCurrency(security.getNominalCurrency());
fixedIncomeSecurityUpdateRequest.setMaturityDate(security.getMaturityDate());
fixedIncomeSecurityUpdateRequest.setCouponFrequency(security.getCouponFrequency());
fixedIncomeSecurityUpdateRequest.setIssuerId(security.getIssuerCompany().getMapId());
fixedIncomeSecurityUpdateRequest.setIssuerId(companyId);
fixedIncomeSecurityUpdateRequest.setShortNameEng(security.getShortNameEng());
fixedIncomeSecurityUpdateRequest.setFullNameEng(security.getFullNameEng());
fixedIncomeSecurityUpdateRequest.setWorkflowStatus(security.getWorkflowStatus());
@ -91,7 +124,7 @@ public class SendMessageToSecurityServiceWithFondSecurities extends Stage<FondLi
equitySecurityNewRequest.setFullName(security.getFullName());
equitySecurityNewRequest.setIsin(security.getIsin());
equitySecurityNewRequest.setShareType(security.getShareType());
equitySecurityNewRequest.setIssuerId(security.getIssuerCompany().getMapId());
equitySecurityNewRequest.setIssuerId(companyId);
equitySecurityNewRequest.setShortNameEng(security.getShortNameEng());
equitySecurityNewRequest.setFullNameEng(security.getFullNameEng());
equitySecurityNewRequest.setWorkflowStatus(security.getWorkflowStatus());
@ -105,7 +138,7 @@ public class SendMessageToSecurityServiceWithFondSecurities extends Stage<FondLi
equitySecurityUpdateRequest.setFullName(security.getFullName());
equitySecurityUpdateRequest.setIsin(security.getIsin());
equitySecurityUpdateRequest.setShareType(security.getShareType());
equitySecurityUpdateRequest.setIssuerId(security.getIssuerCompany().getMapId());
equitySecurityUpdateRequest.setIssuerId(companyId);
equitySecurityUpdateRequest.setShortNameEng(security.getShortNameEng());
equitySecurityUpdateRequest.setFullNameEng(security.getFullNameEng());
equitySecurityUpdateRequest.setWorkflowStatus(security.getWorkflowStatus());

View file

@ -29,12 +29,6 @@ public class ValidateIncomeSecurities extends Stage<FondListingsRequestParam> {
for (FondSecurity fondSecurity : securities) {
if (fondSecurity.isInvalidData()) continue;
if (fondSecurity.getIssuerCompany() == null) {
log.warn("For security.id {} not found company, skipped", fondSecurity.getId());
fondSecurity.setInvalidData(true);
continue;
}
String instrumentTypeStr = fondSecurity.getInstrumentType();
InstrumentType instrumentType = IEnumKey.getEnumByKey(InstrumentType.class, instrumentTypeStr);
if (instrumentType != InstrumentType.BOND && instrumentType != InstrumentType.EQTY) {