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 c216dde57..d2c475738 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 @@ -123,11 +123,13 @@ public class Sdf57Executor extends AbstractExecutor { //create by companyDeb Company companyDeb = validator.getStored(ValidationStored.Sdf57CompanyDeb); Account accountDeb = validator.getStored(ValidationStored.Sdf57AccountDeb); - Optional statementDeb = createStatementIfNeeded.apply(companyDeb, accountDeb, InOutDirection.out); - //create by companyCred Company companyCred = validator.getStored(ValidationStored.Sdf57CompanyCred); Account accountCred = validator.getStored(ValidationStored.Sdf57AccountCred); - Optional statementCred = createStatementIfNeeded.apply(companyCred, accountCred, InOutDirection.in); + + //адресат CREDIT / владелец DEBIT + Optional statementDeb = createStatementIfNeeded.apply(companyCred, accountDeb, InOutDirection.out); + //адресат DEBIT / владелец CREDIT + Optional statementCred = createStatementIfNeeded.apply(companyDeb, accountCred, InOutDirection.in); Consumer createRegistryIfNeeded = stmtCmpAcc -> { Statement stmt = stmtCmpAcc.statement(); @@ -180,7 +182,7 @@ public class Sdf57Executor extends AbstractExecutor { statement.setAccountId(accountDeb.getId()); statement.setAccount(accountDeb.getAccount()); statement.setInOutDirection(inOutDirection.getKey()); - statement.setSettlementDate(payDate(sdf57.getPay_date())); //fixme ! pay_date format + statement.setSettlementDate(payDate(sdf57.getPay_date())); statement.setAmount(TextUtil.isEmpty(sdf57.getSum_deb()) ? null : new BigDecimal(sdf57.getSum_deb())); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf57.getId()); @@ -212,7 +214,7 @@ public class Sdf57Executor extends AbstractExecutor { rgs.setSecuritySymbol(security.getSecuritySymbol()); } InOutDirection inOutDirection = IEnumKey.getEnumByKey(InOutDirection.class, statement.getInOutDirection()); - //fixme ! считаю balance при создании нулевым и исхожу из этого + //считаю balance при создании нулевым и исхожу из этого //При добавлении (на базе изменения statement по sDf57): //Если значение statement.inOutDirection=IN, то: //= текущее значение registry.balance + statement.amount @@ -230,10 +232,8 @@ public class Sdf57Executor extends AbstractExecutor { //fixme rgs.setRefundDate(); //fixme rgs.setValueDate(); rgs.setContract(statement.getContract()); - //FIXME !!! я думал что создается на базе stmt, companyDeb, accountDeb - //получается на самом деле создается по четверке stmt, companyDeb, accountDeb, companyCred, accountCred - //половинка идет в CompanyId AccountId, вторая идет в counterPartyId??? - rgs.setCounterPartyId(statement.getAccountId()); + //создается на базе stmt, companyCred, accountDeb + rgs.setCounterPartyId(statement.getAddresseeId()); rgs.setCreated(Instant.now()); return rgs; } @@ -263,7 +263,7 @@ public class Sdf57Executor extends AbstractExecutor { return Optional.ofNullable(registryImdg.getSingleObjectByPredicate(rgstrPredicate)); } - DateTimeFormatter payDateFormatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + DateTimeFormatter payDateFormatter = DateTimeFormatter.ofPattern("yy.MM.dd"); private LocalDate payDate(String payDate) { if (TextUtil.isEmpty(payDate)) {