etreschenkov 2025-09-01 17:24:10 +03:00
parent be519bc4c4
commit 2e6e453f69
2 changed files with 26 additions and 14 deletions

View file

@ -1,6 +1,9 @@
package ru.spcex.clearing.company.service;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.producer.Producer;
import org.slf4j.Logger;
@ -20,7 +23,6 @@ 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;
@ -34,10 +36,6 @@ 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
public class CompanySymbolService extends QueueConsumer implements InitializingBean {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -113,12 +111,14 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB
public Long create(CompanySymbolNewRequest symbolRequest) throws ValidationException {
log.debug("CompanySymbolNewRequest received");
{ // validate
if (!symbolRequest.getCompanySymbol().equals("TAXN")) {
IValidator validator = companySymbolNewRequestValidator.apply(symbolRequest);
Optional<EnumMessage> error = validator.tillFirstError();
if (error.isPresent()) {
throw new ValidationException(error.get());
}
}
}
CompanySymbols companySymbols = create(symbolRequest.companyId, symbolRequest.getCompanySymbol(),
symbolRequest.getCompanySymbolValue());
@ -139,7 +139,9 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB
boolean txOk = false;
try {
Imdg<CompanySymbols> companySymbolsTMap = transaction.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
if (!newSymbol.getCompanySymbol().equals("TAXN")) {
companySymbolsTMap.update(newSymbol);
}
Imdg<Company> companyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class);
Company company = companyMap.getSingleObjectByID(newSymbol.getCompanyId());
@ -163,9 +165,11 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(symbolRequest);
if (requestInfoUpdate != null) return requestInfoUpdate;
if (!req.getCompanySymbol().equals("TAXN")) {
requestInfoUpdate = validationHelper.validateTillFirstError(symbolRequest, companySymbolUpdateRequestValidator);
if (requestInfoUpdate != null) return requestInfoUpdate;
}
}
CompanySymbols companySymbols;
ImdgTransaction transaction = imdgProvider.newTransaction();
transaction.beginTransaction();
@ -183,7 +187,9 @@ public class CompanySymbolService extends QueueConsumer implements InitializingB
companySymbols.setCompanySymbol(req.getCompanySymbol());
}
companySymbols.setCompanySymbolValue(req.getCompanySymbolValue());
if (!companySymbols.getCompanySymbol().equals("TAXN")) {
companySymbolsTMap.update(companySymbols);
}
companyService.updateCompanyBySymbol(transaction, companySymbols, false);
txOk = true;
} catch (ClearingBaseException e) {

View file

@ -44,7 +44,13 @@ public class CompanyRequestAdapter {
public CompanyInfoUpdateRequest toCompanyInfoRequest(CompanyInfo companyInfo) {
CompanyInfoUpdateRequest companyInfoUpdateRequest = new CompanyInfoUpdateRequest();
companyInfoUpdateRequest.setCountryCode("RUS"); // todo в текущей версии ТЗ присылается в цифровом обозначении
String resCountryCode;
switch (companyInfo.getCountryCode()) {
case 643 -> resCountryCode = "RUS";
case 998 -> resCountryCode = "WRLD";
default -> resCountryCode = "XTRN";
}
companyInfoUpdateRequest.setCountryCode(resCountryCode);
companyInfoUpdateRequest.setProfessionalSign(companyInfo.getProfessionalSign());
companyInfoUpdateRequest.setLegalKind(companyInfo.getLegalKind());
companyInfoUpdateRequest.setOrganizationType(companyInfo.getOrganizationType());