fix after commit 5a158cec (CURRENCY.ID for RUB always should be hardcoded)

This commit is contained in:
etreschenkov 2024-05-29 19:25:24 +03:00
parent 8449e13e1c
commit 2406152394
2 changed files with 9 additions and 5 deletions

View file

@ -34,6 +34,7 @@ import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.clearing.util.security.UserRoleVerification;
import ru.spcex.clearing.validation.common.ValidationHelper;
import ru.spcex.platform.enumeration.AccountType;
import ru.spcex.platform.enumeration.CurrencyCode;
import ru.spcex.platform.enumeration.DepoAccountType;
import ru.spcex.platform.enumeration.Sender;
import ru.spcex.platform.enumeration.ServiceStatus;
@ -137,20 +138,21 @@ public class AccountService extends QueueConsumer implements InitializingBean {
CorrespondentAccountNewRequest req = userRequest.getRequestPayload();
Currency currency = validator.getStored(Stored.currency);
String currencyCode = req.getCurrency() == null ? CurrencyCode.RUB.getKey() : req.getCurrency();
Long currencyCodeId = CurrencyCode.RUB.getKey().equals(currencyCode) ? 810 : currency.getId();
Instant now = Instant.now();
Account account = new Account();
account.setCompanyId(req.getCompanyId());
account.setAccount(req.getAccount());
if (AccountType.Info.equalsByKey(req.getAccountType())) {
Long infoSequenceId = informationAccountService.accountNextId(currency.getCurrencyCode(), currency.getId());
Long infoSequenceId = informationAccountService.accountNextId(currencyCode, currencyCodeId);
String accountValue = informationAccountService.generateInfoAccount(currency.getId(), infoSequenceId);
String accountValue = informationAccountService.generateInfoAccount(currencyCodeId, infoSequenceId);
log.trace("New info-account SequenceId={} account={}", infoSequenceId, accountValue);
account.setAccount(accountValue);
}
account.setAccountType(req.getAccountType());
account.setCurrency(currency.getCurrencyCode());
account.setCurrency(currencyCode);
if (req.getStatus() == null) {
account.setStatus(WorkflowStatus.Active.getKey());
log.trace("Status not set in request. Use default: {}", account.getStatus());

View file

@ -4,6 +4,7 @@ import java.util.Optional;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import ru.spcex.platform.classes.base.interfaces.WithCurrency;
import ru.spcex.platform.enumeration.CurrencyCode;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
@ -32,8 +33,9 @@ public class CurrencyCodeValidationRule implements IValidationRule<ImdgValidatio
}
Imdg<SpcexObjectBase> curImdg = context.obtainMap(IMDGDistributedNames.Map_Currency, SpcexObjectBase.class);
ImdgPredicateBuilder pb = curImdg.predicateBuilder();
String currencyCode = obj.currency() == null ? CurrencyCode.RUB.getKey() : obj.currency();
SpcexObjectBase currency = curImdg.getFirstObjectByPredicate(
pb.equals("currencyCode", obj.currency())
pb.equals("currencyCode", currencyCode)
);
if (currency == null) {
return of(errEnum, obj.currency());