fix statement service

This commit is contained in:
ialbert 2022-10-06 10:13:07 +03:00
parent 63e54ae918
commit 7800b5cdab
3 changed files with 47 additions and 8 deletions

View file

@ -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);
}

View file

@ -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;
}
}

View file

@ -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;
}
}
}