diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java index 0506c16f0..ddaf951a4 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java @@ -30,6 +30,7 @@ import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; +import ru.spcex.platform.utils.number.BigDecimalUtil; import ru.spcex.platform.utils.time.TimeUtil; import ru.spcex.platform.utils.validation.IValidator; @@ -154,15 +155,15 @@ public class StatementService extends QueueConsumer implements InitializingBean private Statement createFlow(SDf01 sdf01, Company company, Account account) { Statement statement = new Statement(); statement.setAddresseeId(company.getId()); - statement.setSenderId(2L);// fixme справочник + statement.setSenderId(Sender.Prc.getId()); statement.setCreated(Instant.now()); statement.setClearingDate(TimeUtil.today()); - statement.setStatementType(StatementType.full.getKey()); //fixme справочник + statement.setStatementType(StatementType.full.getKey()); statement.setAccountId(account.getId()); - statement.setAccount(sdf01.getAccount()); //fixme - statement.setInOutDirection(InOutDirection.in.getKey()); //fixme + statement.setAccount(sdf01.getAccount()); + statement.setInOutDirection(InOutDirection.in.getKey()); statement.setSettlementDate(TimeUtil.localDateToInstant(LocalDate.parse(sdf01.getDat(), datFormatter))); - statement.setAmount(null); //fixme sdf01.getRemainder() + statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf01.getId()); @@ -174,10 +175,10 @@ public class StatementService extends QueueConsumer implements InitializingBean private void updateFlow(Statement statement, SDf01 sdf01, Account account) { statement.setUpdated(Instant.now()); statement.setAccountId(account.getId()); - statement.setAccount(sdf01.getAccount()); //fixme - statement.setInOutDirection(InOutDirection.in.getKey()); //fixme + statement.setAccount(sdf01.getAccount()); + statement.setInOutDirection(InOutDirection.in.getKey()); statement.setSettlementDate(TimeUtil.localDateToInstant(LocalDate.parse(sdf01.getDat(), datFormatter))); - statement.setAmount(null); //fixme sdf01.getRemainder() + statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statementImdg.update(statement); } diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java new file mode 100644 index 000000000..f4f822c5c --- /dev/null +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java @@ -0,0 +1,18 @@ +package ru.spcex.platform.enumeration; + +import ru.spcex.platform.utils.enumeration.IEnumId; + +public enum Sender implements IEnumId { + Prc(2L); + + private final Long key; + + Sender(Long key) { + this.key = key; + } + + @Override + public Long getId() { + return key; + } +} diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/number/BigDecimalUtil.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/number/BigDecimalUtil.java new file mode 100644 index 000000000..b30f30f12 --- /dev/null +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/number/BigDecimalUtil.java @@ -0,0 +1,20 @@ +package ru.spcex.platform.utils.number; + +import java.math.BigDecimal; + +public class BigDecimalUtil { + +// private final Pattern numberPattern = Pattern.compile("\\d+([.,]\\d+)?"); + + public static BigDecimal parse(String number) { + if (number == null) { + return null; + } + number = number.trim().replace(",", "."); + try { + return new BigDecimal(number); + } catch (Exception e) { + return null; + } + } +}