поправлены баги при создании компаний и инструментов
This commit is contained in:
parent
8da9583854
commit
343277caa3
10 changed files with 108 additions and 54 deletions
|
|
@ -2,8 +2,8 @@ package ru.spcex.clearing.company.config.validation;
|
|||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.platform.dictionary.ClearingCategoryDictionary;
|
||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
|
@ -11,10 +11,8 @@ import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteReques
|
|||
import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest;
|
||||
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||
import ru.spcex.clearing.validation.common.rules.EnumPresentRule;
|
||||
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.enumeration.ClearingCategory;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
|
|
@ -44,8 +42,7 @@ public class ClearingMemberCategoryValidationConfig {
|
|||
IMDGDistributedNames.Map_Company,
|
||||
Company.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.CompanyNotFound,
|
||||
company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled),
|
||||
CompanyErrors.CompanyNotFound),
|
||||
DictionaryPresentRule.instance("clearingMemberCategory",
|
||||
ClearingMemberCategoryNewRequest::getClearingMemberCategory,
|
||||
IMDGDistributedNames.Map_ClearingCategoryDictionary,
|
||||
|
|
|
|||
|
|
@ -28,11 +28,8 @@ import ru.spcex.platform.imdg.api.ImdgTransaction;
|
|||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
|
||||
import static ru.spcex.platform.utils.enumeration.IEnumKey.getEnumByKey;
|
||||
|
||||
@Service
|
||||
public class ClearingMemberCategoryService extends QueueConsumer implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
|
@ -85,7 +82,7 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
|
|||
init();
|
||||
}
|
||||
|
||||
private RequestInfoUpdate clearingMemberCategoryNew(BaseRequest<ClearingMemberCategoryNewRequest> userRequest) {
|
||||
protected RequestInfoUpdate clearingMemberCategoryNew(BaseRequest<ClearingMemberCategoryNewRequest> userRequest) {
|
||||
log.debug("ClearingMemberCategoryNewRequest received {}", userRequest.getId());
|
||||
|
||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteReques
|
|||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
|
|
@ -66,11 +65,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
ValidationHelper validationHelper,
|
||||
UserRoleVerification userRoleVerification,
|
||||
@Qualifier("companyNewRequestValidator")
|
||||
Function<CompanyNewRequest, IValidator> companyNewRequestValidator,
|
||||
Function<CompanyNewRequest, IValidator> companyNewRequestValidator,
|
||||
@Qualifier("companyUpdateRequestValidator")
|
||||
Function<CompanyNewRequest, IValidator> companyUpdateRequestValidator,
|
||||
Function<CompanyNewRequest, IValidator> companyUpdateRequestValidator,
|
||||
@Qualifier("CompanyDeleteRequestValidator")
|
||||
Function<CommonDeleteRequest, IValidator> companyDeleteRequestValidator,
|
||||
Function<CommonDeleteRequest, IValidator> companyDeleteRequestValidator,
|
||||
CompanySymbolService companySymbolService,
|
||||
AccountNotificationHelper accountNotification,
|
||||
RelationService relationService) {
|
||||
|
|
@ -127,7 +126,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
}
|
||||
create(companyNewRequest);
|
||||
}
|
||||
case UPDATE -> update((CompanyNewRequest) request.getRequestPayload());
|
||||
case UPDATE -> update((CompanyNewRequest) request.getRequestPayload(), true);
|
||||
}
|
||||
return requestInfoUpdate;
|
||||
}
|
||||
|
|
@ -144,7 +143,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
company.setTradingCode(companyNewRequest.getTradingCode());
|
||||
company.setClearingCode(companyNewRequest.getClearingCode());
|
||||
company.setRegistrationCode(companyNewRequest.getRegistrationCode());
|
||||
company.setWorkflowStatus(companyNewRequest.getWorkflowStatus());
|
||||
if (companyNewRequest.getWorkflowStatus() != null) {
|
||||
company.setWorkflowStatus(companyNewRequest.getWorkflowStatus());
|
||||
} else {
|
||||
company.setWorkflowStatus(WorkflowStatus.Active.getKey());
|
||||
}
|
||||
fillNewCompanyInfo(company, companyNewRequest);
|
||||
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
|
|
@ -178,13 +181,14 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
|||
return company.getId();
|
||||
}
|
||||
|
||||
public synchronized void update(CompanyNewRequest updateRequest) throws ValidationException {
|
||||
IValidator validator = companyUpdateRequestValidator.apply(updateRequest);
|
||||
Optional<EnumMessage> error = validator.tillFirstError();
|
||||
if (error.isPresent()) {
|
||||
throw new ValidationException(error.get());
|
||||
public synchronized void update(CompanyNewRequest updateRequest, boolean validationIsEnable) throws ValidationException {
|
||||
if (validationIsEnable) {
|
||||
IValidator validator = companyUpdateRequestValidator.apply(updateRequest);
|
||||
Optional<EnumMessage> error = validator.tillFirstError();
|
||||
if (error.isPresent()) {
|
||||
throw new ValidationException(error.get());
|
||||
}
|
||||
}
|
||||
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
transaction.beginTransaction();
|
||||
boolean txOk = false;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
|
|||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.profile.Contact;
|
||||
|
|
@ -54,12 +55,14 @@ public class MultiCompanyService
|
|||
final ContactService contactService;
|
||||
final AccountNotificationHelper accountNotification;
|
||||
final RelationService relationService;
|
||||
final ClearingMemberCategoryService clearingMemberCategoryService;
|
||||
|
||||
final ImdgProvider imdgProvider;
|
||||
final Imdg<Company> companyIMap;
|
||||
final Imdg<CompanySymbols> companySymbolsImdg;
|
||||
final Imdg<ProfileDocument> profileDocumentImdg;
|
||||
final Imdg<Contact> contactImdg;
|
||||
final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
|
||||
@Autowired
|
||||
public MultiCompanyService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
||||
|
|
@ -74,8 +77,8 @@ public class MultiCompanyService
|
|||
AccountNotificationHelper accountNotification,
|
||||
RelationService relationService,
|
||||
ValidationHelper validationHelper,
|
||||
UserRoleVerification userRoleVerification
|
||||
) {
|
||||
UserRoleVerification userRoleVerification,
|
||||
ClearingMemberCategoryService clearingMemberCategoryService) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.requestHelper = requestHelper.setLogger(log);
|
||||
|
|
@ -92,6 +95,8 @@ public class MultiCompanyService
|
|||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
profileDocumentImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
|
||||
contactImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, Contact.class);
|
||||
clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
||||
this.clearingMemberCategoryService = clearingMemberCategoryService;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -123,7 +128,7 @@ public class MultiCompanyService
|
|||
fillCompanyId(req, companyId);
|
||||
} else {
|
||||
fillCompanyId(req, companyId);
|
||||
companyService.update(req.getCompany());
|
||||
companyService.update(req.getCompany(), false);
|
||||
}
|
||||
|
||||
RequestInfoUpdate replyI;
|
||||
|
|
@ -171,6 +176,20 @@ public class MultiCompanyService
|
|||
validateReply(companyId, "contactUpdate", replyI);
|
||||
}
|
||||
}
|
||||
|
||||
for (ClearingMemberCategoryNewRequest partRequest : req.getCategories()) {
|
||||
ClearingMemberCategory existCategory = findCategory(partRequest);
|
||||
if (existCategory == null) {
|
||||
log.trace("For company[{}] do new category", companyId);
|
||||
replyI = clearingMemberCategoryService.clearingMemberCategoryNew(wrapRequest(baseRequest, partRequest, ActionType.NEW));
|
||||
validateReply(companyId, "contactNew", replyI);
|
||||
} else {
|
||||
log.trace("For company[{}] do update category[{}]", companyId, existCategory.getId());
|
||||
ClearingMemberCategoryUpdateRequest partUpdateRequest = createUpdateRequest(existCategory, partRequest);
|
||||
replyI = clearingMemberCategoryService.clearingMemberCategoryUpdate(wrapRequest(baseRequest, partUpdateRequest, ActionType.UPDATE));
|
||||
validateReply(companyId, "categoryUpdate", replyI);
|
||||
}
|
||||
}
|
||||
txOk = true;
|
||||
} catch (ValidationException vex) {
|
||||
log.error("For companyId={} error: {}", companyId, ExceptionUtils.getStackTrace(vex));
|
||||
|
|
@ -229,6 +248,17 @@ public class MultiCompanyService
|
|||
return allCS.iterator().next();
|
||||
}
|
||||
|
||||
ClearingMemberCategory findCategory(ClearingMemberCategoryNewRequest partRequest) {
|
||||
Map<String, Comparable<?>> query = new HashMap<>();
|
||||
query.put("companyId", partRequest.getCompanyId());
|
||||
Collection<ClearingMemberCategory> allCS = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(query);
|
||||
if (allCS.isEmpty())
|
||||
return null;
|
||||
if (allCS.size() > 1)
|
||||
log.warn("Fount {} ClearingMemberCategory by: {}", allCS.size(), query);
|
||||
return allCS.iterator().next();
|
||||
}
|
||||
|
||||
ProfileDocumentUpdateRequest createUpdateRequest(ProfileDocument existDocument, ProfileDocumentNewRequest partRequest) {
|
||||
ProfileDocumentUpdateRequest r = new ProfileDocumentUpdateRequest();
|
||||
r.setId(existDocument.getId());
|
||||
|
|
@ -264,6 +294,13 @@ public class MultiCompanyService
|
|||
return r;
|
||||
}
|
||||
|
||||
ClearingMemberCategoryUpdateRequest createUpdateRequest(ClearingMemberCategory existCategory, ClearingMemberCategoryNewRequest partRequest) {
|
||||
ClearingMemberCategoryUpdateRequest r = new ClearingMemberCategoryUpdateRequest();
|
||||
r.setId(existCategory.getId());
|
||||
r.setClearingMemberCategory(partRequest.getClearingMemberCategory());
|
||||
return r;
|
||||
}
|
||||
|
||||
Long getCompanyIdForCompanySymbols(String uuid, CompanyNewRequest cnr) {
|
||||
CompanySymbols companySymbol = null;
|
||||
if (StringUtils.isNotEmpty(uuid)) {
|
||||
|
|
@ -339,5 +376,8 @@ public class MultiCompanyService
|
|||
for (ContactNewRequest c : req.getContacts()) {
|
||||
c.setCompanyId(companyId);
|
||||
}
|
||||
for (ClearingMemberCategoryNewRequest c : req.getCategories()) {
|
||||
c.setCompanyId(companyId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.SecurityFondGatew
|
|||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.platform.enumeration.InstrumentType;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
|
@ -34,6 +35,7 @@ public class SecurityService {
|
|||
public void sendRequest(FondListingsRequest request) {
|
||||
List<FondSecurity> securityList = request.getSecurities();
|
||||
for (FondSecurity security : securityList) {
|
||||
log.debug("process security uuid: {}", security.getId());
|
||||
UUID securityId = security.getId();
|
||||
log.debug("Grouping by securityId: {}", securityId);
|
||||
List<IncomeListing> incomeListings = groupByCompanyId(request.getListingList(), securityId);
|
||||
|
|
@ -48,16 +50,22 @@ public class SecurityService {
|
|||
map(securityRequestAdapter::toFixedIncomeCashFlowRequest).toList();
|
||||
|
||||
SecurityFondGatewayRequest securityGatewayRequest;
|
||||
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
|
||||
FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security);
|
||||
securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest);
|
||||
fillRequest(securityGatewayRequest, security, listingRequests, couponPeriodRequests, cashFlowRequests);
|
||||
kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_BOND_GATEWAY, securityGatewayRequest);
|
||||
} else {
|
||||
EquitySecurityNewRequest equitySecurityNewRequest = securityRequestAdapter.toEquitySecurityNewRequest(security);
|
||||
securityGatewayRequest = new EquitySecurityGatewayRequest(equitySecurityNewRequest);
|
||||
fillRequest(securityGatewayRequest, security, listingRequests, couponPeriodRequests, cashFlowRequests);
|
||||
kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_EQTY_GATEWAY, securityGatewayRequest);
|
||||
try {
|
||||
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
|
||||
FixedIncomeSecurityNewRequest fixedIncomeSecurityNewRequest = securityRequestAdapter.toFixedIncomeSecurityRequest(security);
|
||||
securityGatewayRequest = new FixedIncomeGatewayRequest(fixedIncomeSecurityNewRequest);
|
||||
fillRequest(securityGatewayRequest, security, listingRequests, couponPeriodRequests, cashFlowRequests);
|
||||
log.debug("Send request to DESTINATION_SECURITY_BOND_GATEWAY");
|
||||
kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_BOND_GATEWAY, securityGatewayRequest);
|
||||
} else {
|
||||
EquitySecurityNewRequest equitySecurityNewRequest = securityRequestAdapter.toEquitySecurityNewRequest(security);
|
||||
securityGatewayRequest = new EquitySecurityGatewayRequest(equitySecurityNewRequest);
|
||||
fillRequest(securityGatewayRequest, security, listingRequests, couponPeriodRequests, cashFlowRequests);
|
||||
log.debug("Send request to DESTINATION_SECURITY_BOND_GATEWAY");
|
||||
kafkaSender.sendRequestToQueue(Consts.DESTINATION_SECURITY_EQTY_GATEWAY, securityGatewayRequest);
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
log.error("{}", ExceptionUtils.getStackTrace(e));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import ru.spcex.clearing.gatewayapi.controller.inbound.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;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
|
||||
@Service
|
||||
public class CompanyRequestAdapter {
|
||||
|
|
@ -19,6 +20,7 @@ public class CompanyRequestAdapter {
|
|||
companyNewRequest.setClearingCode(company.getClearingCode());
|
||||
companyNewRequest.setRegistrationCode(company.getRegistrationCode());
|
||||
companyNewRequest.setInitiatorCode(company.getInitiatorCode());
|
||||
companyNewRequest.setWorkflowStatus(WorkflowStatus.Active.getKey());
|
||||
return companyNewRequest;
|
||||
}
|
||||
|
||||
|
|
@ -64,4 +66,10 @@ public class CompanyRequestAdapter {
|
|||
clientCodeNewRequest.setDepoAccountId(client.getDepoAccountId());
|
||||
return clientCodeNewRequest;
|
||||
}
|
||||
|
||||
public ClearingMemberCategoryNewRequest toCategoryRequest(CompanyClearingCategory companyClearingCategory) {
|
||||
ClearingMemberCategoryNewRequest categoryNewRequest = new ClearingMemberCategoryNewRequest();
|
||||
categoryNewRequest.setClearingMemberCategory(companyClearingCategory.getCategory());
|
||||
return categoryNewRequest;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ public class SecurityRequestAdapter {
|
|||
fixedIncomeSecurityNewRequest.setNominalValue(fondSecurity.getNominalValue());
|
||||
fixedIncomeSecurityNewRequest.setNominalCurrency(fondSecurity.getNominalCurrency());
|
||||
fixedIncomeSecurityNewRequest.setMaturityDate(fondSecurity.getMaturityDate());
|
||||
fixedIncomeSecurityNewRequest.setCouponFrequency(fondSecurity.getCouponFrequency().longValue());
|
||||
if (fondSecurity.getCouponFrequency() != null) {
|
||||
fixedIncomeSecurityNewRequest.setCouponFrequency(fondSecurity.getCouponFrequency().longValue());
|
||||
}
|
||||
fixedIncomeSecurityNewRequest.setShortNameEng(fondSecurity.getShortNameEng());
|
||||
fixedIncomeSecurityNewRequest.setFullNameEng(fondSecurity.getFullNameEng());
|
||||
fixedIncomeSecurityNewRequest.setWorkflowStatus(fondSecurity.getWorkflowStatus());
|
||||
|
|
|
|||
|
|
@ -8,10 +8,7 @@ import ru.spcex.clearing.gatewayapi.controller.inbound.request.company.*;
|
|||
import ru.spcex.clearing.gatewayapi.service.adapter.CompanyRequestAdapter;
|
||||
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.domain.cud.company.*;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -50,6 +47,8 @@ public class CompanyProcessor {
|
|||
map(companyRequestAdapter::toProfileDocumentRequest).toList();
|
||||
List<ClientCodeNewRequest> clientCodeNewRequests = clients.stream().
|
||||
map(companyRequestAdapter::toClientRequest).toList();
|
||||
List<ClearingMemberCategoryNewRequest> categories = companyClearingCategories.stream().
|
||||
map(companyRequestAdapter::toCategoryRequest).toList();
|
||||
|
||||
CompanyGatewayRequest companyGatewayRequest = new CompanyGatewayRequest();
|
||||
companyGatewayRequest.setCompany(companyRequestAdapter.toCompanyRequest(memberCompany));
|
||||
|
|
@ -62,6 +61,7 @@ public class CompanyProcessor {
|
|||
companyGatewayRequest.setContacts(contactNewRequests);
|
||||
companyGatewayRequest.setProfileDocuments(profileDocumentNewRequests);
|
||||
companyGatewayRequest.setClientCodes(clientCodeNewRequests);
|
||||
companyGatewayRequest.setCategories(categories);
|
||||
|
||||
kafkaSender.sendRequestToQueue(Consts.DESTINATION_COMPANY_GATEWAY_REQUEST, companyGatewayRequest);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package ru.spcex.clearing.securities.service.cud;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.apache.kafka.clients.producer.Producer;
|
||||
import org.slf4j.Logger;
|
||||
|
|
@ -150,6 +151,9 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
|||
}
|
||||
|
||||
<T extends Security> T findSecurityBySecuritySymbol(Imdg<T> imdg, String securitySymbol) {
|
||||
if (StringUtils.isEmpty(securitySymbol)) {
|
||||
return null;
|
||||
}
|
||||
Collection<T> securities = imdg.getCollectionObjectsByFieldValues(
|
||||
Map.of("securitySymbol", securitySymbol)
|
||||
);
|
||||
|
|
@ -194,21 +198,6 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
|||
security = fixedIncomeSecurityService.updateFixedIncome0(updateRequest);
|
||||
}
|
||||
}
|
||||
if (InstrumentType.EQTY.equalsByKey(req.getSecurityType())) {
|
||||
EquitySecurityGatewayRequest equitySecurityGatewayRequest = (EquitySecurityGatewayRequest) req;
|
||||
EquitySecurityNewRequest equityRequest = equitySecurityGatewayRequest.getSecurity();
|
||||
equityRequest.setIssuerId(companyId);
|
||||
log.trace("EquitySecurityNewRequest - FOND");
|
||||
String securitySymbol = equityRequest.getSecuritySymbol();
|
||||
security = findSecurityBySecuritySymbol(equitySecurityImdg, securitySymbol);
|
||||
|
||||
if (security == null) {
|
||||
security = equitySecurityService.newEquity0(equityRequest);
|
||||
} else {
|
||||
EquitySecurityUpdateRequest updateRequest = toUpdateRequest(security, equityRequest);
|
||||
security = equitySecurityService.updateEquity0(updateRequest);
|
||||
}
|
||||
}
|
||||
} catch (ValidationException expected) {
|
||||
log.warn("Error create or update issue: {}", expected.toString());
|
||||
return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg());
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public class CompanyGatewayRequest {
|
|||
List<ContactNewRequest> contacts = new ArrayList<>();
|
||||
@JsonProperty
|
||||
List<ClientCodeNewRequest> clientCodes = new ArrayList<>();
|
||||
List<ClearingMemberCategoryNewRequest> categories = new ArrayList<>();
|
||||
|
||||
public String getUuid() {
|
||||
return uuid;
|
||||
|
|
@ -78,4 +79,12 @@ public class CompanyGatewayRequest {
|
|||
public void setClientCodes(List<ClientCodeNewRequest> clientCodes) {
|
||||
this.clientCodes = clientCodes;
|
||||
}
|
||||
|
||||
public List<ClearingMemberCategoryNewRequest> getCategories() {
|
||||
return categories;
|
||||
}
|
||||
|
||||
public void setCategories(List<ClearingMemberCategoryNewRequest> categories) {
|
||||
this.categories = categories;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue