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

View file

@ -44,7 +44,13 @@ public class CompanyRequestAdapter {
public CompanyInfoUpdateRequest toCompanyInfoRequest(CompanyInfo companyInfo) { public CompanyInfoUpdateRequest toCompanyInfoRequest(CompanyInfo companyInfo) {
CompanyInfoUpdateRequest companyInfoUpdateRequest = new CompanyInfoUpdateRequest(); 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.setProfessionalSign(companyInfo.getProfessionalSign());
companyInfoUpdateRequest.setLegalKind(companyInfo.getLegalKind()); companyInfoUpdateRequest.setLegalKind(companyInfo.getLegalKind());
companyInfoUpdateRequest.setOrganizationType(companyInfo.getOrganizationType()); companyInfoUpdateRequest.setOrganizationType(companyInfo.getOrganizationType());