После зачисления с DMAU должно быть обращение в ТС
При DM_V поменять направление, затем закоментировать отправку в ТС.
This commit is contained in:
parent
caeece00f3
commit
11f6ea0b84
2 changed files with 50 additions and 33 deletions
|
|
@ -12,11 +12,14 @@ import ru.spcex.clearing.error.ClearingError;
|
|||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.notification.NotificationSender;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.AssetOperationListRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.AssetOperationRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.CreateRegistryRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.*;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.clearing.service.builder.PaymentInstructionBuilderV2;
|
||||
import ru.spcex.clearing.service.integration.GatewayRequestCreator;
|
||||
import ru.spcex.clearing.service.registry.AssetTBFProcessing;
|
||||
|
|
@ -42,12 +45,11 @@ import ru.spcex.platform.utils.validation.IValidator;
|
|||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static ru.spcex.clearing.session.stage.impl.GatewayRequester.mapError;
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||
|
||||
@Service
|
||||
|
|
@ -66,6 +68,7 @@ public class RegistryService {
|
|||
private final GatewayRequester gateway;
|
||||
private final TradingTimeService trdTime;
|
||||
private final NotificationSender notification;
|
||||
private final KafkaSender kafkaSender;
|
||||
|
||||
private final IMessageResolver msgResolver;
|
||||
private final RequestHelper reqHelp;
|
||||
|
|
@ -81,7 +84,7 @@ public class RegistryService {
|
|||
GatewayRequester gateway,
|
||||
TradingTimeService tradingTimeService,
|
||||
NotificationSender notification,
|
||||
IMessageResolver msgResolver,
|
||||
KafkaSender kafkaSender, IMessageResolver msgResolver,
|
||||
RequestHelper reqHelp,
|
||||
UserRoleVerification rights,
|
||||
AssetTBFProcessing assets) {
|
||||
|
|
@ -97,6 +100,7 @@ public class RegistryService {
|
|||
this.gateway = gateway;
|
||||
this.trdTime = tradingTimeService;
|
||||
this.notification = notification;
|
||||
this.kafkaSender = kafkaSender;
|
||||
this.assets = assets;
|
||||
this.gateway.setName("RgsService|DM*V");
|
||||
this.msgResolver = msgResolver;
|
||||
|
|
@ -207,24 +211,24 @@ public class RegistryService {
|
|||
return reqHelp.error(req.getId(), err.get());
|
||||
}
|
||||
Registry rgs = validator.getStored(Stored.PresentById);
|
||||
Supplier<AssetOperationRequest> gtwBuilder = () -> GatewayRequestCreator.from(rgs);
|
||||
Optional<Boolean> gatewayOk;
|
||||
if (trdTime.isTradingTime()) {
|
||||
gatewayOk = gateway.gatewayRequestAndWait(gtwBuilder);
|
||||
} else {
|
||||
log.debug("RegistryChangeStatusExtractRequest rgs.id={} not sending gateway request", rgs.getId());
|
||||
gatewayOk = Optional.of(true);
|
||||
}
|
||||
if (gatewayOk.isEmpty() || !gatewayOk.get()) {
|
||||
String gtwErr = msgResolver.resolve(mapError(gatewayOk));
|
||||
log.error("{}.id={} {}",
|
||||
rgs.getRegistryCode(),
|
||||
rgs.getId(),
|
||||
gtwErr);
|
||||
notification.sendNotification(ObjectType.rgst,
|
||||
"Отметка о получении выписки: %s".formatted(gtwErr),
|
||||
Priority.HIGH);
|
||||
}
|
||||
//Supplier<AssetOperationRequest> gtwBuilder = () -> GatewayRequestCreator.from(rgs, InOutDirection.in);
|
||||
//Optional<Boolean> gatewayOk;
|
||||
//if (trdTime.isTradingTime()) {
|
||||
// gatewayOk = gateway.gatewayRequestAndWait(gtwBuilder);
|
||||
//} else {
|
||||
// log.debug("RegistryChangeStatusExtractRequest rgs.id={} not sending gateway request", rgs.getId());
|
||||
// gatewayOk = Optional.of(true);
|
||||
//}
|
||||
//if (gatewayOk.isEmpty() || !gatewayOk.get()) {
|
||||
// String gtwErr = msgResolver.resolve(mapError(gatewayOk));
|
||||
// log.error("{}.id={} {}",
|
||||
// rgs.getRegistryCode(),
|
||||
// rgs.getId(),
|
||||
// gtwErr);
|
||||
// notification.sendNotification(ObjectType.rgst,
|
||||
// "Отметка о получении выписки: %s".formatted(gtwErr),
|
||||
// Priority.HIGH);
|
||||
//}
|
||||
rgs.setRegistryStatus(payload.getRegistryStatus());
|
||||
log.debug("changing registry.id={} status to {}", rgs.getId(), payload.getRegistryStatus());
|
||||
registryImdg.update(rgs);
|
||||
|
|
@ -281,22 +285,19 @@ public class RegistryService {
|
|||
.build();
|
||||
pmt.setTransactionStatus(TransactionStatus.ok.getKey());
|
||||
pmtImdg.insert(pmt);
|
||||
//BankAccount bnkAcc = bnkAccImdg.getFirstObjectBySQL("accountId = %d".formatted(accDeb.getId()));
|
||||
// if (bnkAcc != null) {
|
||||
// pmt.setAddresseeBankName(bnkAcc.getBankIdentificationCode());
|
||||
// pmt.setDebit_csAccount(bnkAcc.getCorrespondentAccount());
|
||||
// }
|
||||
// Currency currency = currImdg.getFirstObjectBySQL("currencyCode = '%s'".formatted(CurrencyCode.RUB.getKey()));
|
||||
// if (currency != null) {
|
||||
// pmt.setCreditLeg_securityId(currency.getId());
|
||||
// pmt.setDebitLeg_securityId(currency.getId());
|
||||
// }
|
||||
// pmt.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
registryImdg.update(dmau);
|
||||
registryImdg.update(asts.a__t());
|
||||
assets.process(asts.a__b(), asts.a__t(), asts.a__f(), BigDecimal.ZERO);
|
||||
log.debug("IdentificationFundsRequest.id={} dmau.id={} am*t.id={} payment_instruction.id={}",
|
||||
req.getId(), dmau.getId(), asts.a__t().getId(), pmt.getId());
|
||||
if (trdTime.isTradingTime()) {
|
||||
log.trace("sending gateway request for IdentificationFundsRequest.id={} dmau.id={}",
|
||||
req.getId(), dmau.getId());
|
||||
kafkaSender.sendRequestToQueue(Consts.ASSET_OPERATION,
|
||||
gatewayRequest(dmau, payload.getBalance(),
|
||||
accCompTcr.getCompany().getTradingCode(),
|
||||
asts.a__t().getTradingClearingRegistry()));
|
||||
}
|
||||
return reqHelp.success(req.getId());
|
||||
}
|
||||
|
||||
|
|
@ -516,4 +517,16 @@ public class RegistryService {
|
|||
return new RequestInfoUpdate(req.getId(), Status.Success, null);
|
||||
}
|
||||
|
||||
private AssetOperationListRequest gatewayRequest(Registry dmau, BigDecimal balance, String tradingCode, String tcrCode) {
|
||||
AssetOperationListRequest gatewayRequest = new AssetOperationListRequest();
|
||||
AssetOperationRequest req = GatewayRequestCreator.from(
|
||||
dmau.getId(),
|
||||
null,
|
||||
balance,
|
||||
InOutDirection.in,
|
||||
tradingCode,
|
||||
tcrCode);
|
||||
gatewayRequest.setAssetOperationRequests(List.of(req));
|
||||
return gatewayRequest;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,10 +23,14 @@ public class GatewayRequestCreator {
|
|||
}
|
||||
|
||||
public static AssetOperationRequest from(Registry rgs) {
|
||||
return from(rgs, InOutDirection.out);
|
||||
}
|
||||
|
||||
public static AssetOperationRequest from(Registry rgs, InOutDirection dir) {
|
||||
return from(rgs.getId(),
|
||||
null,
|
||||
BigDecimalUtil.safeBD(rgs.getBalance()).abs(),
|
||||
InOutDirection.out,
|
||||
dir,
|
||||
rgs.getTradingCode(),
|
||||
rgs.getTradingClearingRegistry());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue