diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java index c7909a465..f62f6e24c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java @@ -453,6 +453,7 @@ public class Sdf57Executor extends AbstractExecutor { Company cmp = stmtCmpAcc.company(); Account acc = stmtCmpAcc.account(); Optional asts = createRegistryIfNeeded.apply(stmtCmpAcc); + InOutDirection direction = IEnumKey.getEnumByKey(InOutDirection.class, stmt.getInOutDirection()); if (accountIsAnlt(acc)) { AnltSearcher.AnltSearch searchResult = anltSearcher.loadByAnlt(stmt.getComment(), sdf57.getPay_val()); if (searchResult.isFound()) { @@ -505,11 +506,8 @@ public class Sdf57Executor extends AbstractExecutor { }); //DMAU подразумевает увеличение остатка поля balance и credit registry.code=DMAU String genTime = formatInstant(sdf57.getGenerationTime(), readableDateTime); - notification.sendNotification(ObjectType.rgst, - ("Зачисление средств на регистр невыясненных денежных средств. " - + "Дата и время поступления: %s. " - + "ID платежного поручения: %d").formatted(genTime, sdf57.getDbfId()), - Priority.HIGH); + String ntfMsg = dmauNotificationText(direction, genTime, sdf57); + notification.sendNotification(ObjectType.rgst, ntfMsg, Priority.HIGH); } } else if (OperationStatus.Executed.equalsByKey(stmt.getOperationStatus())) { if (asts.isPresent()) { @@ -555,6 +553,25 @@ public class Sdf57Executor extends AbstractExecutor { return result; } + private String dmauNotificationText(InOutDirection direction, String genTime, SDf57 sdf57) { + if (direction == null) return "notification error: unknown direction null"; + switch (direction) { + case in -> { + return ("Зачисление средств на регистр невыясненных денежных средств. " + + "Дата и время поступления: %s. " + + "ID платежного поручения: %d").formatted(genTime, sdf57.getDbfId()); + } + case out -> { + return ("Списание средств с регистра невыясненных денежных средств %s. " + + "Дата и время списания: %s. " + + "Объем списания: %s").formatted( + sdf57.getAcc_deb(), genTime, sdf57.getSum_deb() + ); + } + default -> {return "notification error: unknown direction " + direction;} + } + } + private boolean accountIsAnlt(Account account) { if (account == null) return false; boolean anlt = AccountType.Anlt.getKey().equals(account.getAccountType()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/payment/WithdrawalFundsService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/payment/WithdrawalFundsService.java index 72b75624a..05cba3432 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/payment/WithdrawalFundsService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/payment/WithdrawalFundsService.java @@ -157,7 +157,7 @@ public class WithdrawalFundsService { sdf54Imdg.insert(sDf54); log.info("created sdf54.id={}", sDf54.getId()); - Registry d__i = dmiService.createDmi(payload.getAmount(), assets.a__t()); + Registry d__i = dmiService.createDmi(payload.getAmount().negate(), assets.a__t()); d__i.setComment(sDf54.getDocnm_ref()); rgsImdg.insert(d__i); log.debug("created {}.id={}; recalculating assests...", d__i.getRegistryCode(), d__i.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/WithdrawalFundsValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/WithdrawalFundsValidationRule.java index 652a1030f..d23b21e83 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/WithdrawalFundsValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/WithdrawalFundsValidationRule.java @@ -21,6 +21,9 @@ public enum WithdrawalFundsValidationRule implements IValidationRule