From 142c534aa240baa6fdc2a6f5d101355eecade1a9 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Mon, 19 Jun 2023 17:00:10 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-259 --- .../company/service/CompanyService.java | 226 +++++------------- .../company/service/CompanySymbolService.java | 94 ++++---- .../company/service/MultiCompanyService.java | 40 ++-- .../messaging/service/RequestInfoUpdate.java | 2 +- 4 files changed, 133 insertions(+), 229 deletions(-) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java index fbf0a6c69..e623e917d 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java @@ -13,6 +13,7 @@ import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.classes.statics.data.profile.CompanyInfo; import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountTerminationRequest; @@ -20,6 +21,7 @@ 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; @@ -37,6 +39,7 @@ import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; import java.util.Objects; +import java.util.Optional; import java.util.function.Function; @Service @@ -63,11 +66,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean { ValidationHelper validationHelper, UserRoleVerification userRoleVerification, @Qualifier("companyNewRequestValidator") - Function companyNewRequestValidator, + Function companyNewRequestValidator, @Qualifier("companyUpdateRequestValidator") - Function companyUpdateRequestValidator, + Function companyUpdateRequestValidator, @Qualifier("CompanyDeleteRequestValidator") - Function companyDeleteRequestValidator, + Function companyDeleteRequestValidator, CompanySymbolService companySymbolService, AccountNotificationHelper accountNotification, RelationService relationService) { @@ -98,10 +101,10 @@ public class CompanyService extends QueueConsumer implements InitializingBean { .setFunction(request -> requestHelper.requestFunction(this::blockCompanyAfterDocument, request)) .forDestination(Consts.DESTINATION_COMPANY_BLOCK, callbacks::put); callback(CompanyNewRequest.class) - .setFunction(request -> requestHelper.requestFunction(this::createCompany, request)) + .setFunction(request -> requestHelper.requestFunction(this::processBaseRequest, request)) .forDestination(Consts.DESTINATION_COMPANY_NEW, callbacks::put); callback(CompanyNewRequest.class) - .setFunction(request -> requestHelper.requestFunction(this::updateCompany, request)) + .setFunction(request -> requestHelper.requestFunction(this::processBaseRequest, request)) .forDestination(Consts.DESTINATION_COMPANY_UPDATE, callbacks::put); callback(AccountTerminationRequest.class) .setFunction(request -> requestHelper.requestFunction(this::finishCompanyTermination, request)) @@ -109,41 +112,58 @@ public class CompanyService extends QueueConsumer implements InitializingBean { init(); } - private synchronized RequestInfoUpdate createCompany(BaseRequest companyNewRequestBaseRequest) throws ValidationException { - CompanyNewRequest req = companyNewRequestBaseRequest.getRequestPayload(); - log.debug("company-new request received, BaseRequest.id = {}", companyNewRequestBaseRequest.getId()); - { // Валидация - RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyNewRequestBaseRequest); - if (requestInfoUpdate != null) return requestInfoUpdate; + private RequestInfoUpdate processBaseRequest(BaseRequest request) { + RequestInfoUpdate requestInfoUpdate = null; + // Валидация + requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(request); + if (requestInfoUpdate != null) return requestInfoUpdate; - requestInfoUpdate = validationHelper.validateTillFirstError(companyNewRequestBaseRequest, companyNewRequestValidator); - if (requestInfoUpdate != null) return requestInfoUpdate; + try { + ActionType actionType = request.getActionType(); + switch (actionType) { + case NEW -> create((CompanyNewRequest) request.getRequestPayload()); + case UPDATE -> update((CompanyNewRequest) request.getRequestPayload()); + } + } catch (ValidationException e) { + requestInfoUpdate = new RequestInfoUpdate(request.getId(), Status.Error, e.getMessage()); } + return requestInfoUpdate; + } + + public synchronized Long create(CompanyNewRequest companyNewRequest) throws ValidationException { + log.debug("creating new company"); + IValidator validator = companyNewRequestValidator.apply(companyNewRequest); + Optional error = validator.tillFirstError(); + if (error.isPresent()) { + throw new ValidationException(error.get()); + } + + Instant now = Instant.now(); Company company = new Company(); company.setId(idSequence.nextId()); - Instant now = Instant.now(); company.setCreated(now); company.setUpdated(now); - - company.setShortName(req.getShortName()); - company.setFullName(req.getFullName()); + company.setShortName(companyNewRequest.getShortName()); + company.setFullName(companyNewRequest.getFullName()); + company.setTradingCode(companyNewRequest.getTradingCode()); + company.setClearingCode(companyNewRequest.getClearingCode()); + company.setRegistrationCode(companyNewRequest.getRegistrationCode()); + company.setWorkflowStatus(companyNewRequest.getWorkflowStatus()); + fillNewCompanyInfo(company, companyNewRequest); ImdgTransaction transaction = imdgProvider.newTransaction(); transaction.beginTransaction(); boolean txOk = false; try { - if (req.getCompanySymbol() != null) { - CompanySymbols newSymbol = companySymbolService.createCompanySymbol(transaction, company.getId(), req.getCompanySymbol(), req.getCompanySymbolValue()); - updateCompanyBySymbol(company, newSymbol, false); + if (companyNewRequest.getCompanySymbol() != null) { + CompanySymbols companySymbols = companySymbolService.create(company.getId(), companyNewRequest.getCompanySymbol(), + companyNewRequest.getCompanySymbolValue()); + log.debug("Creating companySymbols with id: {} by company.id: {} done", companySymbols.getId(), company.getId()); } - - company.setWorkflowStatus(req.getWorkflowStatus()); - fillNewCompanyInfo(company, req); - Imdg companyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class); companyMap.insert(company); log.debug("company-new request processed, BaseRequest.id = {}, company.id={}", - companyNewRequestBaseRequest.getId(), company.getId()); + companyNewRequest.getId(), company.getId()); txOk = true; } finally { if (txOk) @@ -152,48 +172,25 @@ public class CompanyService extends QueueConsumer implements InitializingBean { transaction.rollbackTransaction(); } accountNotification.makeInfoAccount(company.getId()); - return null; + return company.getId(); } - void fillNewCompanyInfo(Company company, CompanyNewRequest req) { - if (company.getProfile() == null) - company.setProfile(new CompanyInfo()); - CompanyInfo ci = company.getProfile(); - ci.setId(company.getId()); - ci.setCompanyId(company.getId()); - //todo раскоментировать, когда в реквест добавят новые поля: - // req.getWorkflowStatus() - //ci.setCorporationSoleType(req.getCorporationSoleType()); -// ci.setCountryCode(req.getCountryCode()); -// ci.setDescription(req.getDescription()); -// ci.setProfessionalSign(req.getProfessionalSign()); -// ci.setLegalKind(req.getLegalKind()); -// ci.setOrganizationType(req.getOrganizationType()); -// ci.setResidence(req.getResidence()); -// ci.setShortNameEng(req.getShortNameEng()); -// ci.setFullNameEng(req.getFullNameEng()); - } - - - private synchronized RequestInfoUpdate updateCompany(BaseRequest companyUpdateRequestBaseRequest) throws ValidationException { - CompanyNewRequest updateRequest = companyUpdateRequestBaseRequest.getRequestPayload(); - { // Валидация, - RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyUpdateRequestBaseRequest); - if (requestInfoUpdate != null) return requestInfoUpdate; - - requestInfoUpdate = validationHelper.validateTillFirstError(companyUpdateRequestBaseRequest, companyUpdateRequestValidator); - if (requestInfoUpdate != null) return requestInfoUpdate; + public synchronized void update(CompanyNewRequest updateRequest) throws ValidationException { + IValidator validator = companyUpdateRequestValidator.apply(updateRequest); + Optional error = validator.tillFirstError(); + if (error.isPresent()) { + throw new ValidationException(error.get()); } + ImdgTransaction transaction = imdgProvider.newTransaction(); transaction.beginTransaction(); boolean txOk = false; try { Imdg companyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class); - Company company = companyMap.getSingleObjectByID(updateRequest.getId()); if (company == null) { log.trace("Company {} not found", updateRequest.getId()); - return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyNotFound, updateRequest.getId()); + throw new ValidationException(new EnumMessage(CompanyErrors.CompanyNotFound)); } // if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { // log.trace("Company {} not active: {}", company.getId(), company.getWorkflowStatus()); @@ -207,8 +204,6 @@ public class CompanyService extends QueueConsumer implements InitializingBean { if (updateRequest.getCompanySymbol() != null || updateRequest.getCompanySymbolValue() != null) { log.trace("Request field CompanySymbol, CompanySymbolValue ignore for update company request."); } -// CompanySymbols не обновляем - String prevStatus = company.getWorkflowStatus(); if (updateRequest.getWorkflowStatus() != null) { @@ -229,7 +224,6 @@ public class CompanyService extends QueueConsumer implements InitializingBean { else transaction.rollbackTransaction(); } - return null; } protected void updateCompanyBySymbol(Company company, CompanySymbols companySymbol, boolean shouldBeDeleted) { @@ -374,112 +368,6 @@ public class CompanyService extends QueueConsumer implements InitializingBean { return null; } - - public synchronized Company createOrUpdateCompany(BaseRequest companyNewRequestBaseRequest, Long existCompanyId) throws ValidationException { - CompanyNewRequest req = companyNewRequestBaseRequest.getRequestPayload(); - log.debug("company new or update, request {}, existCOmpanyId={}", companyNewRequestBaseRequest.getId(), existCompanyId); - { // Валидация - RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyNewRequestBaseRequest); - if (requestInfoUpdate != null) - throw new ValidationException(CompanyErrors.GeneralError, requestInfoUpdate.getMessage()); -// requestInfoUpdate = validationHelper.validateTillFirstError(companyNewRequestBaseRequest, companyNewRequestValidator); -// if (requestInfoUpdate != null) throw new ValidationException(CompanyErrors.GeneralError, requestInfoUpdate.getMessage()); - } - - Company company = null; - if (existCompanyId != null) { - company = companyIMap.getSingleObjectByID(existCompanyId); - if (company == null) { - throw new ValidationException(CompanyErrors.CompanyNotFound, String.valueOf(existCompanyId)); - } - } - - if (company == null) { - // #createCompany - company = new Company(); - company.setId(idSequence.nextId()); - Instant now = Instant.now(); - company.setCreated(now); - company.setUpdated(now); - log.debug("Create new company {}", company.getId()); - - company.setShortName(req.getShortName()); - company.setFullName(req.getFullName()); - company.setTradingCode(req.getTradingCode()); - company.setClearingCode(req.getClearingCode()); - company.setRegistrationCode(req.getRegistrationCode()); -// company.setInitiatorCode(req.getInitiatorCode()); - - ImdgTransaction transaction = imdgProvider.newTransaction(); - transaction.beginTransaction(); - boolean txOk = false; - try { - if (req.getCompanySymbol() != null) { - CompanySymbols newSymbol = companySymbolService.createCompanySymbol(transaction, company.getId(), req.getCompanySymbol(), req.getCompanySymbolValue()); - updateCompanyBySymbol(company, newSymbol, false); - } - - company.setWorkflowStatus(req.getWorkflowStatus()); - fillNewCompanyInfo(company, req); - - Imdg companyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class); - companyMap.insert(company); - log.debug("company-new request processed, BaseRequest.id = {}, company.id={}", - companyNewRequestBaseRequest.getId(), company.getId()); - txOk = true; - } finally { - if (txOk) - transaction.commitTransaction(); - else - transaction.rollbackTransaction(); - } - accountNotification.makeInfoAccount(company.getId()); - } else { - log.debug("Update exist company {}", company.getId()); - company.setUpdated(Instant.now()); - // #updateCompany - - company.setUpdated(Instant.now()); - company.setShortName(req.getShortName()); - company.setFullName(req.getFullName()); - company.setTradingCode(req.getTradingCode()); - company.setClearingCode(req.getClearingCode()); - company.setRegistrationCode(req.getRegistrationCode()); - - if (req.getCompanySymbol() != null || req.getCompanySymbolValue() != null) { - log.trace("Request field CompanySymbol, CompanySymbolValue ignore for update company request."); - } -// CompanySymbols не обновляем - ImdgTransaction transaction = imdgProvider.newTransaction(); - transaction.beginTransaction(); - boolean txOk = false; - try { - String prevStatus = company.getWorkflowStatus(); - if (req.getWorkflowStatus() != null) { - company.setWorkflowStatus(req.getWorkflowStatus()); - if (!Objects.equals(prevStatus, company.getWorkflowStatus())) { - relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); - } else { - log.trace("Status was not changed"); - } - } else { - log.trace("Null new WorkflowStatus"); - } - Imdg companyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class); - companyMap.update(company); - txOk = true; - } finally { - if (txOk) - transaction.commitTransaction(); - else - transaction.rollbackTransaction(); - } - } - - return company; - } - - /** * Блокировка компании после блокировки счетов * @@ -520,4 +408,12 @@ public class CompanyService extends QueueConsumer implements InitializingBean { } return null; } + + void fillNewCompanyInfo(Company company, CompanyNewRequest req) { + if (company.getProfile() == null) + company.setProfile(new CompanyInfo()); + CompanyInfo ci = company.getProfile(); + ci.setId(company.getId()); + ci.setCompanyId(company.getId()); + } } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java index 221da629a..f3d128b79 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -19,6 +20,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolNewR import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanySymbolUpdateRequest; 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; @@ -29,9 +31,11 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.error.ClearingBaseException; +import ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.validation.IValidator; import java.util.Objects; +import java.util.Optional; import java.util.function.Function; @Service @@ -54,11 +58,11 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB ValidationHelper validationHelper, UserRoleVerification userRoleVerification, @Qualifier("companySymbolNewRequestValidator") - Function companySymbolNewRequestValidator, + Function companySymbolNewRequestValidator, @Qualifier("companySymbolDeleteRequestValidator") - Function companySymbolDeleteRequestValidator, + Function companySymbolDeleteRequestValidator, @Qualifier("companySymbolUpdateRequestValidator") - Function companySymbolUpdateRequestValidator + Function companySymbolUpdateRequestValidator ) { super(kafkaQueue, kafkaProducer); this.imdgProvider = imdgProvider; @@ -76,7 +80,7 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB @Override public void afterPropertiesSet() { callback(CompanySymbolNewRequest.class) - .setFunction(this::companySymbolNew) + .setFunction(this::processBaseRequest) .forDestination(Consts.DESTINATION_COMPANY_SYMBOL_NEW, callbacks::put); callback(CompanySymbolUpdateRequest.class) .setFunction(this::companySymbolUpdate) @@ -87,40 +91,60 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB init(); } + private RequestInfoUpdate processBaseRequest(BaseRequest request) { + RequestInfoUpdate requestInfoUpdate = null; + // Валидация + requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(request); + if (requestInfoUpdate != null) return requestInfoUpdate; + + try { + create((CompanySymbolNewRequest) request.getRequestPayload()); + } catch (ValidationException e) { + requestInfoUpdate = new RequestInfoUpdate(request.getId(), Status.Error, e.getMessage()); + } + return requestInfoUpdate; + } + public void setCompanyService(CompanyService companyService) { this.companyService = companyService; } - public RequestInfoUpdate companySymbolNew(BaseRequest symbolRequest) { - CompanySymbolNewRequest req = symbolRequest.getRequestPayload(); - log.debug("CompanySymbolNewRequest received, id={}", symbolRequest.getId()); + public Long create(CompanySymbolNewRequest symbolRequest) throws ValidationException { + log.debug("CompanySymbolNewRequest received"); { // validate - RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(symbolRequest); - if (requestInfoUpdate != null) return requestInfoUpdate; - - requestInfoUpdate = validationHelper.validateTillFirstError(symbolRequest, companySymbolNewRequestValidator); - if (requestInfoUpdate != null) return requestInfoUpdate; + IValidator validator = companySymbolNewRequestValidator.apply(symbolRequest); + Optional error = validator.tillFirstError(); + if (error.isPresent()) { + throw new ValidationException(error.get()); + } } + CompanySymbols companySymbols = create(symbolRequest.companyId, symbolRequest.getCompanySymbol(), + symbolRequest.getCompanySymbolValue()); + log.debug("successfully processed, id {}", companySymbols.getId()); + return null; + } - CompanySymbols companySymbols = new CompanySymbols(); - companySymbols.setId(idSequence.nextId()); - companySymbols.setCompanyId(req.getCompanyId()); - companySymbols.setCompanySymbol(req.getCompanySymbol()); - companySymbols.setCompanySymbolValue(req.getCompanySymbolValue()); - + public CompanySymbols create(Long companyId, String companySymbol, String companySymbolValue) { + Objects.requireNonNull(companyId); + CompanySymbols newSymbol = new CompanySymbols(); + newSymbol.setId(idSequence.nextId()); + newSymbol.setCompanyId(companyId); + newSymbol.setCompanySymbol(companySymbol); + newSymbol.setCompanySymbolValue(companySymbolValue); + log.debug("Created new companySymbols.id={} for company {}", newSymbol.getId(), companyId); ImdgTransaction transaction = imdgProvider.newTransaction(); transaction.beginTransaction(); boolean txOk = false; try { Imdg companySymbolsTMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - companySymbolsTMap.update(companySymbols); - try { - companyService.updateCompanyBySymbol(transaction, companySymbols, false); - } catch (ClearingBaseException e) { - return requestHelper.makeErrorResponse(symbolRequest, e.getEnumMsg()); - } + companySymbolsTMap.update(newSymbol); + + Imdg companyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class); + Company company = companyMap.getSingleObjectByID(newSymbol.getCompanyId()); + companyService.updateCompanyBySymbol(company, newSymbol, false); + companyMap.update(company); txOk = true; } finally { if (txOk) @@ -128,9 +152,7 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB else transaction.rollbackTransaction(); } - - log.debug("successfully processed, id {}", companySymbols.getId()); - return null; + return newSymbol; } public RequestInfoUpdate companySymbolUpdate(BaseRequest symbolRequest) { @@ -210,22 +232,4 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB log.debug("successfully processed, id {}", companySymbols.getId()); return null; } - - public CompanySymbols createCompanySymbol(ImdgTransaction transaction, Long companyId, String companySymbol, String companySymbolValue) { - Objects.requireNonNull(companyId); - CompanySymbols newSymbol = new CompanySymbols(); - newSymbol.setId(idSequence.nextId()); - newSymbol.setCompanyId(companyId); - newSymbol.setCompanySymbol(companySymbol); - newSymbol.setCompanySymbolValue(companySymbolValue); - log.debug("Created new companySymbols.id={} for company {}", newSymbol.getId(), companyId); - if (transaction == null) { - Imdg companySymbolsTMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - companySymbolsTMap.insert(newSymbol); - } else { - Imdg tMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); - tMap.insert(newSymbol); - } - return newSymbol; - } } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java index 4f7992d6d..7cb7ecba8 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java @@ -117,12 +117,14 @@ public class MultiCompanyService companyId = getCompanyIdForCompanySymbols(req.getUuid(), req.getCompany()); log.debug("For request {} (uuid {}) company {}.", baseRequest.getId(), req.getUuid(), companyId == null ? "not found" : ("found, id=" + companyId)); - RequestInfoUpdate replyI; - Company company = companyService.createOrUpdateCompany(wrapRequest(baseRequest, req.getCompany(), null), companyId); - companyId = company.getId(); - log.debug("The companyId={}", companyId); - fillCompanyId(req, companyId); + if (companyId == null) { + companyId = companyService.create(req.getCompany()); + log.debug("The companyId={}", companyId); + } else { + companyService.update(req.getCompany()); + } + RequestInfoUpdate replyI; if (req.getCompanyInfo() != null) { log.trace("For company {} do update CompanyInfo", companyId); replyI = companyInfoService.companyInfoUpdate(wrapRequest(baseRequest, req.getCompanyInfo(), null)); @@ -141,19 +143,21 @@ public class MultiCompanyService validateReply(companyId, "profileDocumentUpdate", replyI); } } - for (CompanySymbolNewRequest partRequest : req.getCompanySymbols()) { - CompanySymbols existSymbol = findCompanySymbols(partRequest); - if (existSymbol == null) { - log.trace("For company[{}] do new companySymbol", companyId); - replyI = companySymbolService.companySymbolNew(wrapRequest(baseRequest, partRequest, ActionType.NEW)); - validateReply(companyId, "companySymbolNew", replyI); - } else { - log.trace("For company[{}] do update companySymbol[{}]", companyId, existSymbol.getId()); - CompanySymbolUpdateRequest partUpdateRequest = createUpdateRequest(existSymbol, partRequest); - replyI = companySymbolService.companySymbolUpdate(wrapRequest(baseRequest, partUpdateRequest, ActionType.UPDATE)); - validateReply(companyId, "companySymbolUpdate", replyI); - } - } + + //todo по идее эта логика выполнена в companyService.create(req.getCompany()) +// for (CompanySymbolNewRequest partRequest : req.getCompanySymbols()) { +// CompanySymbols existSymbol = findCompanySymbols(partRequest); +// if (existSymbol == null) { +// log.trace("For company[{}] do new companySymbol", companyId); +// Long id = companySymbolService.create(partRequest); +// validateReply(companyId, "companySymbolNew", replyI); +// } else { +// log.trace("For company[{}] do update companySymbol[{}]", companyId, existSymbol.getId()); +// CompanySymbolUpdateRequest partUpdateRequest = createUpdateRequest(existSymbol, partRequest); +// replyI = companySymbolService.companySymbolUpdate(wrapRequest(baseRequest, partUpdateRequest, ActionType.UPDATE)); +// validateReply(companyId, "companySymbolUpdate", replyI); +// } +// } for (ContactNewRequest partRequest : req.getContacts()) { Contact existContact = findContact(partRequest); if (existContact == null) { diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/RequestInfoUpdate.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/RequestInfoUpdate.java index fd0610311..77444032c 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/RequestInfoUpdate.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/RequestInfoUpdate.java @@ -7,7 +7,7 @@ public class RequestInfoUpdate { public RequestInfoUpdate() {} - public RequestInfoUpdate(Long id, Status status, Long errorId, String message) { + public RequestInfoUpdate(Long id, Status status, String message) { this.id = id; this.status = status; this.message = message;