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 e21714ee3..333e2bc34 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 @@ -121,7 +121,15 @@ public class CompanyService extends QueueConsumer implements InitializingBean { try { ActionType actionType = request.getActionType(); switch (actionType) { - case NEW -> create((CompanyNewRequest) request.getRequestPayload()); + case NEW -> { + CompanyNewRequest companyNewRequest = (CompanyNewRequest) request.getRequestPayload(); + IValidator validator = companyNewRequestValidator.apply(companyNewRequest); + Optional error = validator.tillFirstError(); + if (error.isPresent()){ + return new RequestInfoUpdate(request.getId(), Status.Error, error.get().toString()); + } + create(companyNewRequest); + } case UPDATE -> update((CompanyNewRequest) request.getRequestPayload()); } } catch (ValidationException e) { @@ -132,12 +140,6 @@ public class CompanyService extends QueueConsumer implements InitializingBean { 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()); 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 7cb7ecba8..244eaeb0f 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 @@ -120,7 +120,9 @@ public class MultiCompanyService if (companyId == null) { companyId = companyService.create(req.getCompany()); log.debug("The companyId={}", companyId); + fillCompanyId(req, companyId); } else { + fillCompanyId(req, companyId); companyService.update(req.getCompany()); } @@ -144,20 +146,18 @@ public class MultiCompanyService } } - //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 (CompanySymbolNewRequest partRequest : req.getCompanySymbols()) { + CompanySymbols existSymbol = findCompanySymbols(partRequest); + if (existSymbol == null) { + log.trace("For company[{}] do new companySymbol", companyId); + Long id = companySymbolService.create(partRequest); + } 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) {