diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanySymbolValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanySymbolValidationConfig.java index 0585c211f..08a313415 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanySymbolValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/CompanySymbolValidationConfig.java @@ -73,7 +73,15 @@ public class CompanySymbolValidationConfig { IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class, CompanyErrors.RequiredFieldEmpty, - CompanyErrors.CompanyInfoNotFound + CompanyErrors.CompanyInfoNotFound, + (CompanySymbols existSymbol) -> { + assert existSymbol.getId().equals(context.getValidatedObject().getId()); + if (context.getValidatedObject().getCompanySymbol() == null) + return null; + // сейчас в коде предусмотрено редактирование-смена типа, но пока в ТЗ это не делали + return existSymbol.getCompanySymbol().equals(context.getValidatedObject().getCompanySymbol()) + ? null : CompanyErrors.EditCompanySymbols; + } ), FieldRequiredRule.instance("companyId", CompanySymbolUpdateRequest::getCompanyId, CompanyErrors.RequiredFieldEmpty), diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java index feaa34f50..824f55545 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java @@ -21,7 +21,6 @@ public enum CompanyErrors implements IErrorEnumId { CategoryAlreadySet(3017L), // Компании %s уже присвоена категория %s. CompanyAlreadyHasLiabilities(3018L), // У компании %s присутствуют обязательства. CompanyWithCompanySymbolAlreadyExist(3019L), // Компания с %s = %s уже создана" (где первый %s - companySymbol, второй %s - companySymbolValue) - @Deprecated EditCompanySymbols(3020L), // Тип реквизита компании %s не может быть изменен. EditContactType(3021L), // Тип контакта компании %s не может быть изменен. TradingClearingRegistryNotFound(3022L), // ТКР с %s не найден 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 ac69dc9fc..3d3cc40e0 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 @@ -176,7 +176,7 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB if (companySymbols == null) { throw new ClearingBaseException(new EnumMessage(CompanyErrors.CompanyInfoNotFound, req.getId())); } - if (!companySymbols.getCompanySymbol().equalsIgnoreCase(req.getCompanySymbol())) { + if (req.getCompanySymbol() != null && !companySymbols.getCompanySymbol().equalsIgnoreCase(req.getCompanySymbol())) { log.debug("Change CompanySymbol[{}].CompanySymbol from \"{}\" to \"{}\"", companySymbols.getId(), companySymbols.getCompanySymbol(), req.getCompanySymbol()); companyService.updateCompanyBySymbol(transaction, companySymbols, true);