http://jira.mfd.msk:8088/browse/CLS-293 meta 4: правка кода, чтобы компилировалось.

This commit is contained in:
AKurakin 2023-05-11 14:31:24 +03:00
parent c752efceec
commit 457f051588
30 changed files with 761 additions and 763 deletions

View file

@ -36,7 +36,7 @@ class NotificationControllerTest extends AbstractControllerTest {
profileDocument.setSenderId(1000L); profileDocument.setSenderId(1000L);
profileDocument.setAddresseeId(1000L); profileDocument.setAddresseeId(1000L);
profileDocument.setObjectType("ObjectType"); profileDocument.setObjectType("ObjectType");
profileDocument.setObjectId(Instant.now()); profileDocument.setObjectId(1111122222L);
profileDocument.setNotificationStatus("Status"); profileDocument.setNotificationStatus("Status");
profileDocument.setId(currentId.get()); profileDocument.setId(currentId.get());

View file

@ -9,6 +9,7 @@ import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest;
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import java.math.BigDecimal;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Collection; import java.util.Collection;
@ -32,6 +33,7 @@ class PaymentInstructionControllerTest extends AbstractControllerTest {
void getAll() throws Exception { void getAll() throws Exception {
//ARRANGE //ARRANGE
PaymentInstruction paymentInstruction = new PaymentInstruction(); PaymentInstruction paymentInstruction = new PaymentInstruction();
paymentInstruction.setSenderId(1010L); paymentInstruction.setSenderId(1010L);
paymentInstruction.setAddresseeId(1010L); paymentInstruction.setAddresseeId(1010L);
paymentInstruction.setAdresseeBic("123456789"); paymentInstruction.setAdresseeBic("123456789");
@ -41,21 +43,24 @@ class PaymentInstructionControllerTest extends AbstractControllerTest {
paymentInstruction.setPaymentDate(Instant.now()); paymentInstruction.setPaymentDate(Instant.now());
paymentInstruction.setPaymentPurpose("Purpose"); paymentInstruction.setPaymentPurpose("Purpose");
paymentInstruction.setSettlementDate(LocalDate.now()); paymentInstruction.setSettlementDate(LocalDate.now());
paymentInstruction.setCreditLegAmount(2020L); paymentInstruction.setCreditLeg_amount(BigDecimal.valueOf(123.456));
paymentInstruction.setDebitLegAmount(2020L); paymentInstruction.setDebitLeg_amount(BigDecimal.valueOf(123.256));
paymentInstruction.setCreditLegAccountId(2020L); paymentInstruction.setCreditLeg_accountId(currentId.get());
paymentInstruction.setCreditCsAccount("Ok"); paymentInstruction.setCredit_csAccount("ACCT1");
paymentInstruction.setCreditLegAccount("123456789"); paymentInstruction.setCreditLeg_account("ACCT2");
paymentInstruction.setDebitLegAccountId(3030L); paymentInstruction.setDebitLeg_accountId(222L);
paymentInstruction.setDebitCsAccount("123456789"); paymentInstruction.setDebit_csAccount("ACCC3");
paymentInstruction.setDebitLegAccount("123456789"); paymentInstruction.setDebitLeg_account("AC-1");
paymentInstruction.setCreditLegDirection(3030L); paymentInstruction.setCreditLeg_direction("BUY");
paymentInstruction.setDebitLegDirection(3030L); paymentInstruction.setDebitLeg_direction("SELL");
paymentInstruction.setCreditLegCurrencyCode("123456789"); paymentInstruction.setCreditLeg_currencyCode("RUB");
paymentInstruction.setDebitLegCurrencyCode("123456789"); paymentInstruction.setDebitLeg_currencyCode("RUB");
paymentInstruction.setClearingDate(LocalDate.now()); paymentInstruction.setCreditLeg_securityId(12L);
paymentInstruction.setDebitLeg_securityId(15L);
paymentInstruction.setTransactionStatus("Status"); paymentInstruction.setTransactionStatus("Status");
paymentInstruction.setDocumentNumber("123456789"); paymentInstruction.setDocumentNumber("123456789");
paymentInstruction.setClearingDate(LocalDate.now());
paymentInstruction.setSessionId(555L);
paymentInstruction.setId(currentId.get()); paymentInstruction.setId(currentId.get());
IMap<Long, PaymentInstruction> iMap = hazelcastServiceTest.getHazelcast().getMap(IMDGDistributedNames.Map_PaymentInstruction); IMap<Long, PaymentInstruction> iMap = hazelcastServiceTest.getHazelcast().getMap(IMDGDistributedNames.Map_PaymentInstruction);

View file

@ -24,7 +24,7 @@ class ContractRegisterControllerTest extends AbstractControllerTest {
contractRegister.setName("code"); contractRegister.setName("code");
contractRegister.setNumber("com"); contractRegister.setNumber("com");
contractRegister.setIssueDate(LocalDate.now()); contractRegister.setIssueDate(LocalDate.now());
contractRegister.setCompanyFullName(currentId.get()); contractRegister.setCompanyFullName("CF name C");
contractRegister.setCompanyId(currentId.get()); contractRegister.setCompanyId(currentId.get());
contractRegister.setDocumentType("symb"); contractRegister.setDocumentType("symb");
contractRegister.setIssuePlace("name"); contractRegister.setIssuePlace("name");

View file

@ -77,10 +77,9 @@ class StatementControllerTest extends AbstractControllerTest {
statement.setInOutDirection("direction"); statement.setInOutDirection("direction");
statement.setSettlementDate(LocalDate.now()); statement.setSettlementDate(LocalDate.now());
statement.setAmount(new BigDecimal(0)); statement.setAmount(new BigDecimal(0));
statement.setCashMovementCurrencyCode("cash");
statement.setOperationStatus("status"); statement.setOperationStatus("status");
statement.setErrorCode("error"); statement.setErrorCodeId(122L);
statement.setErrorText("name"); statement.setErrorTextId(123L);
statement.setInSDfId(currentId.get()); statement.setInSDfId(currentId.get());
statement.setOutSDfId(currentId.get()); statement.setOutSDfId(currentId.get());
statement.setInOutSDfType("type"); statement.setInOutSDfType("type");

View file

@ -4,7 +4,6 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import ru.spcex.clearing.balance.service.AbstractExecutor; import ru.spcex.clearing.balance.service.AbstractExecutor;
import ru.spcex.clearing.balance.service.Sdf01Executor; import ru.spcex.clearing.balance.service.Sdf01Executor;
import ru.spcex.clearing.balance.service.Sdf09Executor;
import ru.spcex.clearing.balance.service.Sdf16Executor; import ru.spcex.clearing.balance.service.Sdf16Executor;
import ru.spcex.platform.classes.base.interfaces.WithAccount; import ru.spcex.platform.classes.base.interfaces.WithAccount;
import ru.spcex.platform.enumeration.SdfTable; import ru.spcex.platform.enumeration.SdfTable;
@ -17,11 +16,11 @@ public class SdfExecutorsConfig {
@Bean("sdfExecutors") @Bean("sdfExecutors")
public Map<SdfTable, AbstractExecutor<? extends WithAccount>> executorsMap(Sdf01Executor sdf01Executor, public Map<SdfTable, AbstractExecutor<? extends WithAccount>> executorsMap(Sdf01Executor sdf01Executor,
Sdf09Executor sdf09Executor, //Sdf09Executor sdf09Executor,
Sdf16Executor sdf16Executor) { Sdf16Executor sdf16Executor) {
Map<SdfTable, AbstractExecutor<? extends WithAccount>> executors = new HashMap<>(); Map<SdfTable, AbstractExecutor<? extends WithAccount>> executors = new HashMap<>();
executors.put(SdfTable.SDF_01, sdf01Executor); executors.put(SdfTable.SDF_01, sdf01Executor);
executors.put(SdfTable.SDF_09, sdf09Executor); // todo возможно удалят или переделают: executors.put(SdfTable.SDF_09, sdf09Executor);
executors.put(SdfTable.SDF_16, sdf16Executor); executors.put(SdfTable.SDF_16, sdf16Executor);
return executors; return executors;
} }

View file

@ -94,8 +94,8 @@ public class ValidationConfig {
return new ValidatorImpl<>(context, return new ValidatorImpl<>(context,
Sdf09ValidationRule.CompanyPresent, Sdf09ValidationRule.CompanyPresent,
Sdf09ValidationRule.AccountPresent, Sdf09ValidationRule.AccountPresent,
MarketIsUValidationRule.instance, MarketIsUValidationRule.instance
AccountBalanceFreeAmountEnough.instance(SDf09.class) //,AccountBalanceFreeAmountEnough.instance(SDf09.class)
); );
}; };
} }

View file

@ -101,10 +101,11 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
SDf02 sdf02New = createSuccessSdf02(sdf01, generationIdForGroup); SDf02 sdf02New = createSuccessSdf02(sdf01, generationIdForGroup);
sdf02Imdg.insert(sdf02New); sdf02Imdg.insert(sdf02New);
statement.setOutSDfId(sdf02New.getId()); statement.setOutSDfId(sdf02New.getId());
AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(),
null/*statement.getCashMovementCurrencyCode()*/);
if (accountResult.getError() != null) { if (accountResult.getError() != null) {
statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); statement.setErrorCodeId(accountResult.getError().getSubject().getId());
statement.setErrorText(errorResolver.resolve(accountResult.getError())); // todo statement.setErrorText(errorResolver.resolve(accountResult.getError()));
} else { } else {
accountBalanceImdg.insert(accountResult.getAccount()); //insert == update? accountBalanceImdg.insert(accountResult.getAccount()); //insert == update?
statement.setOperationStatus(OperationStatus.Executed.getKey()); statement.setOperationStatus(OperationStatus.Executed.getKey());
@ -126,7 +127,6 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
statement.setInOutDirection(InOutDirection.in.getKey()); statement.setInOutDirection(InOutDirection.in.getKey());
statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter));
statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder()));
statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey());
statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey());
statement.setInSDfId(sdf01.getId()); statement.setInSDfId(sdf01.getId());
statement.setInOutSDfType(InOutSDfType.type1.getKey()); statement.setInOutSDfType(InOutSDfType.type1.getKey());
@ -141,7 +141,6 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
statement.setInOutDirection(InOutDirection.in.getKey()); statement.setInOutDirection(InOutDirection.in.getKey());
statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter));
statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder()));
statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey());
statementImdg.update(statement); statementImdg.update(statement);
} }
@ -169,7 +168,7 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumengage(sdf01.getSumengage());
sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setSumunblock(sdf01.getSumunblock());
sDf02.setFile_type(sdf01.getFile_type()); sDf02.setFile_type(sdf01.getFile_type());
sDf02.setInSDf01Id(sdf01.getId()); sDf02.setInSDfId(sdf01.getId());
String errorId = error.getSubject().getId().toString(); String errorId = error.getSubject().getId().toString();
sDf02.setResult(errorId.substring(errorId.length() - 3)); sDf02.setResult(errorId.substring(errorId.length() - 3));
sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationId(generationIdForGroup);
@ -191,7 +190,7 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumengage(sdf01.getSumengage());
sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setSumunblock(sdf01.getSumunblock());
sDf02.setFile_type(sdf01.getFile_type()); sDf02.setFile_type(sdf01.getFile_type());
sDf02.setInSDf01Id(sdf01.getId()); sDf02.setInSDfId(sdf01.getId());
sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationId(generationIdForGroup);
sDf02.setGenerationTime(Instant.now()); sDf02.setGenerationTime(Instant.now());
sDf02.setResult("OK!"); sDf02.setResult("OK!");

View file

@ -45,9 +45,9 @@ public class Sdf08Service extends QueueConsumer implements InitializingBean {
private void newSDf08(BaseRequest<Object> userRequest) { private void newSDf08(BaseRequest<Object> userRequest) {
log.debug("getAllBalance request received"); log.debug("getAllBalance request received");
SDf08 sDf08 = new SDf08(); SDf08 sDf08 = new SDf08();
sDf08.setNumber(idGenerator.nextId().toString()); // sDf08.setNumber(idGenerator.nextId().toString());
Instant now = Instant.now(); Instant now = Instant.now();
sDf08.setDatetime(String.valueOf(now.toEpochMilli())); // sDf08.setDatetime(String.valueOf(now.toEpochMilli()));
sDf08.setGenerationTime(now); sDf08.setGenerationTime(now);
sDf08.setGenerationId(idGenerator.nextId()); sDf08.setGenerationId(idGenerator.nextId());
sdf8Map.insert(sDf08); sdf8Map.insert(sDf08);

View file

@ -1,175 +1,176 @@
package ru.spcex.clearing.balance.service; //package ru.spcex.clearing.balance.service;
//
import org.slf4j.Logger; //import org.slf4j.Logger;
import org.slf4j.LoggerFactory; //import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; //import org.springframework.stereotype.Service;
import ru.clearing.classes.statics.data.account.Account; //import ru.clearing.classes.statics.data.account.Account;
import ru.clearing.classes.statics.data.account.AccountBalance; //import ru.clearing.classes.statics.data.account.AccountBalance;
import ru.clearing.classes.statics.data.company.Company; //import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.sdf.SDf09; //import ru.clearing.classes.statics.data.sdf.SDf09;
import ru.clearing.classes.statics.data.sdf.SDf10; //import ru.clearing.classes.statics.data.sdf.SDf10;
import ru.clearing.classes.statics.data.statement.Statement; //import ru.clearing.classes.statics.data.statement.Statement;
import ru.spcex.clearing.balance.errors.BalanceError; //import ru.spcex.clearing.balance.errors.BalanceError;
import ru.spcex.clearing.balance.validation.ValidationStored; //import ru.spcex.clearing.balance.validation.ValidationStored;
import ru.spcex.clearing.imdg.IMDGDistributedNames; //import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; //import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart;
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; //import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
import ru.spcex.platform.enumeration.*; //import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg; //import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider; //import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.EnumMessage; //import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IMessageResolver; //import ru.spcex.platform.utils.enumeration.IMessageResolver;
import ru.spcex.platform.utils.validation.IValidator; //import ru.spcex.platform.utils.validation.IValidator;
//
import java.time.Instant; //import java.time.Instant;
import java.time.LocalDate; //import java.time.LocalDate;
import java.time.format.DateTimeFormatter; //import java.time.format.DateTimeFormatter;
import java.util.Collection; //import java.util.Collection;
import java.util.Map; //import java.util.Map;
import java.util.Optional; //import java.util.Optional;
import java.util.function.Function; //import java.util.function.Function;
//
@Service ////todo SDf09 был изменён. Sdf09Executor теперь не работает.
public class Sdf09Executor extends AbstractExecutor<SDf09> { //@Service
private final Logger log = LoggerFactory.getLogger(getClass()); //public class Sdf09Executor extends AbstractExecutor<SDf09> {
private final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy"); // private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<Statement> statementImdg; // private final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy");
private final Function<SDf09, IValidator> sDf09Validator; // private final Imdg<Statement> statementImdg;
private final LoggingService errorLogger; // private final Function<SDf09, IValidator> sDf09Validator;
private final Imdg<SDf10> sdf10Imdg; // private final LoggingService errorLogger;
private final ImdgProvider imdgProvider; // private final Imdg<SDf10> sdf10Imdg;
private final AccountBalanceService accountBalanceService; // private final ImdgProvider imdgProvider;
private final IMessageResolver errorResolver; // private final AccountBalanceService accountBalanceService;
private final Imdg<AccountBalance> accountBalanceImdg; // private final IMessageResolver errorResolver;
// private final Imdg<AccountBalance> accountBalanceImdg;
public Sdf09Executor(Function<SDf09, IValidator> sDf09Validator, //
LoggingService errorLogger, // public Sdf09Executor(Function<SDf09, IValidator> sDf09Validator,
ImdgProvider imdgProvider, // LoggingService errorLogger,
AccountBalanceService accountBalanceService, // ImdgProvider imdgProvider,
IMessageResolver errorResolver) { // AccountBalanceService accountBalanceService,
this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); // IMessageResolver errorResolver) {
this.sdf10Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf10, SDf10.class); // this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);; // this.sdf10Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf10, SDf10.class);
this.sDf09Validator = sDf09Validator; // this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);;
this.errorLogger = errorLogger; // this.sDf09Validator = sDf09Validator;
this.imdgProvider = imdgProvider; // this.errorLogger = errorLogger;
this.accountBalanceService = accountBalanceService; // this.imdgProvider = imdgProvider;
this.errorResolver = errorResolver; // this.accountBalanceService = accountBalanceService;
} // this.errorResolver = errorResolver;
// }
@Override //
String exportTableName() { // @Override
return "DF-10"; // String exportTableName() {
} // return "DF-10";
// }
public Result execute(Collection<SDf09> sdf, StatementRequest statementRequest){ //
Result result = new Result(); // public Result execute(Collection<SDf09> sdf, StatementRequest statementRequest){
Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId(); // Result result = new Result();
result.setGenerationId(generationIdForGroup); // Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId();
for (SDf09 sdf09 : sdf) { // result.setGenerationId(generationIdForGroup);
IValidator validator = sDf09Validator.apply(sdf09); // for (SDf09 sdf09 : sdf) {
Optional<EnumMessage> error = validator.tillFirstError(); // IValidator validator = sDf09Validator.apply(sdf09);
Company company = validator.getStored(ValidationStored.Company); // Optional<EnumMessage> error = validator.tillFirstError();
if (statementRequest.getAccountCreationResults().size() == 0 // Company company = validator.getStored(ValidationStored.Company);
&& BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { // if (statementRequest.getAccountCreationResults().size() == 0
//на данном шаге company существует -> getId ok // && BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) {
//формируем пакетный запрос на добавление account // //на данном шаге company существует -> getId ok
//ответ придет в этот же метод, process // //формируем пакетный запрос на добавление account
result.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); // //ответ придет в этот же метод, process
log.info("account {} for sdf01.id={} not found - send request for creation", sdf09.getAccount(), sdf09.getId()); // result.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId()));
continue; // log.info("account {} for sdf01.id={} not found - send request for creation", sdf09.getAccount(), sdf09.getId());
} else if (BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { // continue;
log.error("fatal error: resumed processing after generating accounts, but no account found for sdf01.id={}", sdf09.getId()); // } else if (BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) {
} // log.error("fatal error: resumed processing after generating accounts, but no account found for sdf01.id={}", sdf09.getId());
if (error.isPresent()) { // }
errorLogger.logError("sdf01.id={}", error.get(), sdf09.getId()); // if (error.isPresent()) {
sdf10Imdg.insert(createErrorSdf10(sdf09, error.get(), generationIdForGroup)); // errorLogger.logError("sdf01.id={}", error.get(), sdf09.getId());
continue; // sdf10Imdg.insert(createErrorSdf10(sdf09, error.get(), generationIdForGroup));
} // continue;
Statement statement = statementImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount())); // }
if (statement == null) { // Statement statement = statementImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount()));
statement = createFlow(sdf09, // if (statement == null) {
company, // statement = createFlow(sdf09,
validator.getStored(ValidationStored.Account)); // company,
} else { // validator.getStored(ValidationStored.Account));
updateFlow(statement, sdf09, // } else {
validator.getStored(ValidationStored.Account)); // updateFlow(statement, sdf09,
} // validator.getStored(ValidationStored.Account));
SDf10 sdf10New = createSuccessSdf10(sdf09, generationIdForGroup); // }
sdf10Imdg.insert(sdf10New); // SDf10 sdf10New = createSuccessSdf10(sdf09, generationIdForGroup);
statement.setOutSDfId(sdf10New.getId()); // sdf10Imdg.insert(sdf10New);
AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); // statement.setOutSDfId(sdf10New.getId());
if (accountResult.getError() != null) { // AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode());
statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); // if (accountResult.getError() != null) {
statement.setErrorText(errorResolver.resolve(accountResult.getError())); // statement.setErrorCode(accountResult.getError().getSubject().getId().toString());
} else { // statement.setErrorText(errorResolver.resolve(accountResult.getError()));
accountBalanceImdg.insert(accountResult.getAccount()); //insert == update? // } else {
statement.setOperationStatus(OperationStatus.Executed.getKey()); // accountBalanceImdg.insert(accountResult.getAccount()); //insert == update?
} // statement.setOperationStatus(OperationStatus.Executed.getKey());
statementImdg.update(statement); // }
} // statementImdg.update(statement);
return result; // }
} // return result;
// }
private Statement createFlow(SDf09 sdf09, Company company, Account account) { //
Statement statement = new Statement(); // private Statement createFlow(SDf09 sdf09, Company company, Account account) {
statement.setAddresseeId(company.getId()); // Statement statement = new Statement();
statement.setSenderId(Sender.Prc.getId()); // statement.setAddresseeId(company.getId());
statement.setCreated(Instant.now()); // statement.setSenderId(Sender.Prc.getId());
statement.setClearingDate(LocalDate.now()); // statement.setCreated(Instant.now());
statement.setStatementType(StatementType.incr.getKey()); // statement.setClearingDate(LocalDate.now());
statement.setAccountId(account.getId()); // statement.setStatementType(StatementType.incr.getKey());
statement.setAccount(sdf09.getAccount()); // statement.setAccountId(account.getId());
statement.setInOutDirection(InOutDirection.in.getKey()); // statement.setAccount(sdf09.getAccount());
statement.setAmount(sdf09.getSum()); // statement.setInOutDirection(InOutDirection.in.getKey());
statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); // statement.setAmount(sdf09.getSum());
statement.setOperationStatus(OperationStatus.Pending.getKey()); // statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey());
statement.setInSDfId(sdf09.getId()); // statement.setOperationStatus(OperationStatus.Pending.getKey());
statement.setInOutSDfType(InOutSDfType.type9.getKey()); // statement.setInSDfId(sdf09.getId());
statementImdg.insert(statement); // statement.setInOutSDfType(InOutSDfType.type9.getKey());
return statement; // statementImdg.insert(statement);
} // return statement;
// }
private void updateFlow(Statement statement, SDf09 sdf09, Account account) { //
statement.setUpdated(Instant.now()); // private void updateFlow(Statement statement, SDf09 sdf09, Account account) {
statement.setAccountId(account.getId()); // statement.setUpdated(Instant.now());
statement.setAccount(sdf09.getAccount()); // statement.setAccountId(account.getId());
statement.setInOutDirection(InOutDirection.in.getKey()); // statement.setAccount(sdf09.getAccount());
statement.setAmount(sdf09.getSum()); // statement.setInOutDirection(InOutDirection.in.getKey());
statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); // statement.setAmount(sdf09.getSum());
statement.setInSDfId(sdf09.getId()); // statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey());
// statement.setOutSDfId(sdf10.getId()); заполняется внешним кодом // statement.setInSDfId(sdf09.getId());
statement.setInOutSDfType(InOutSDfType.type9.getKey()); //// statement.setOutSDfId(sdf10.getId()); заполняется внешним кодом
statementImdg.update(statement); // statement.setInOutSDfType(InOutSDfType.type9.getKey());
} // statementImdg.update(statement);
// }
private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { //
AccountSdfRequestPart req = new AccountSdfRequestPart(); // private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) {
req.setAccount(account); // AccountSdfRequestPart req = new AccountSdfRequestPart();
req.setCompanyId(companyId); // req.setAccount(account);
req.setSdfId(sdf09Id); // req.setCompanyId(companyId);
return req; // req.setSdfId(sdf09Id);
} // return req;
// }
private SDf10 createErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { //
SDf10 sDf10 = createSuccessSdf10(sdf09, generationIdForGroup); // private SDf10 createErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) {
String errorId = error.getSubject().getId().toString(); // SDf10 sDf10 = createSuccessSdf10(sdf09, generationIdForGroup);
sDf10.setResult(errorId.substring(errorId.length() - 3)); // String errorId = error.getSubject().getId().toString();
return sDf10; // sDf10.setResult(errorId.substring(errorId.length() - 3));
} // return sDf10;
// }
private SDf10 createSuccessSdf10(SDf09 sdf09, Long generationIdForGroup) { //
SDf10 sDf10 = new SDf10(); // private SDf10 createSuccessSdf10(SDf09 sdf09, Long generationIdForGroup) {
sDf10.setAccount(sdf09.getAccount()); // SDf10 sDf10 = new SDf10();
sDf10.setSum(sdf09.getSum()); // sDf10.setAccount(sdf09.getAccount());
sDf10.setMarket(sdf09.getMarket()); // sDf10.setSum(sdf09.getSum());
sDf10.setType(sdf09.getType()); // sDf10.setMarket(sdf09.getMarket());
sDf10.setNumber(sdf09.getNumber()); // sDf10.setType(sdf09.getType());
sDf10.setInn(sdf09.getInn()); // sDf10.setNumber(sdf09.getNumber());
sDf10.setResult("OK"); // sDf10.setInn(sdf09.getInn());
sDf10.setGenerationId(generationIdForGroup); // sDf10.setResult("OK");
sDf10.setGenerationTime(Instant.now()); // sDf10.setGenerationId(generationIdForGroup);
sDf10.setInSDf09Id(sdf09.getId()); // sDf10.setGenerationTime(Instant.now());
return sDf10; // sDf10.setInSDf09Id(sdf09.getId());
} // return sDf10;
} // }
//}

View file

@ -105,10 +105,10 @@ public class Sdf16Executor extends AbstractExecutor<SDf16> {
sdf17Imdg.insert(sdfNew); sdf17Imdg.insert(sdfNew);
statement.setOutSDfId(sdfNew.getId()); statement.setOutSDfId(sdfNew.getId());
AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(),
statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); statement.getAccountId(), statement.getAmount(), null /*todo statement.getCashMovementCurrencyCode() */);
if (accountResult.getError() != null) { if (accountResult.getError() != null) {
statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); statement.setErrorCodeId(accountResult.getError().getSubject().getId());
statement.setErrorText(errorResolver.resolve(accountResult.getError())); //todo аполнение statement.setErrorTextId(errorResolver.resolve(accountResult.getError()));
} else { } else {
accountBalanceImdg.insert(accountResult.getAccount()); accountBalanceImdg.insert(accountResult.getAccount());
statement.setOperationStatus(OperationStatus.Executed.getKey()); statement.setOperationStatus(OperationStatus.Executed.getKey());
@ -143,7 +143,6 @@ public class Sdf16Executor extends AbstractExecutor<SDf16> {
statement.setAccount(sdf.getAccount()); statement.setAccount(sdf.getAccount());
statement.setInOutDirection(InOutDirection.in.getKey()); statement.setInOutDirection(InOutDirection.in.getKey());
statement.setAmount(sdf.getSum()); statement.setAmount(sdf.getSum());
statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey());
statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey());
statement.setInSDfId(sdf.getId()); statement.setInSDfId(sdf.getId());
statement.setInOutSDfType(InOutSDfType.type16.getKey()); statement.setInOutSDfType(InOutSDfType.type16.getKey());
@ -158,7 +157,6 @@ public class Sdf16Executor extends AbstractExecutor<SDf16> {
statement.setAccount(sdf.getAccount()); statement.setAccount(sdf.getAccount());
statement.setInOutDirection(InOutDirection.in.getKey()); statement.setInOutDirection(InOutDirection.in.getKey());
statement.setAmount(sdf.getSum()); statement.setAmount(sdf.getSum());
statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey());
statement.setInSDfId(sdf.getId()); statement.setInSDfId(sdf.getId());
statement.setInOutSDfType(InOutSDfType.type16.getKey()); statement.setInOutSDfType(InOutSDfType.type16.getKey());
statementImdg.update(statement); statementImdg.update(statement);

View file

@ -54,7 +54,7 @@ public class StatementService extends QueueConsumer implements InitializingBean
this.kafkaReqProducer = kafkaReqProducer; this.kafkaReqProducer = kafkaReqProducer;
this.executorsMap = executorsMap; this.executorsMap = executorsMap;
this.sdfImdgs.put(SdfTable.SDF_01, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class)); this.sdfImdgs.put(SdfTable.SDF_01, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class));
this.sdfImdgs.put(SdfTable.SDF_09, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf09, SDf09.class)); // todo изменение классов. this.sdfImdgs.put(SdfTable.SDF_09, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf09, SDf09.class));
this.sdfImdgs.put(SdfTable.SDF_16, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf16, SDf16.class)); this.sdfImdgs.put(SdfTable.SDF_16, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf16, SDf16.class));
} }

View file

@ -17,6 +17,7 @@ import java.math.RoundingMode;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@Deprecated // связан с Sdf09Executor , он в переработке или удалении.
public enum Sdf09ValidationRule implements IValidationRule<ImdgValidationContext<SDf09>> { public enum Sdf09ValidationRule implements IValidationRule<ImdgValidationContext<SDf09>> {
CompanyPresent() { CompanyPresent() {
@Override @Override
@ -24,48 +25,48 @@ public enum Sdf09ValidationRule implements IValidationRule<ImdgValidationContext
SDf09 sdf09 = context.getValidatedObject(); SDf09 sdf09 = context.getValidatedObject();
Imdg<CompanySymbols> companySymbolImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); Imdg<CompanySymbols> companySymbolImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
Imdg<Company> companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); Imdg<Company> companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class);
if (sdf09.getInn() == null) { // todo изменения классов. if (sdf09.getInn() == null) {
return of(BalanceError.CompanyNotFound, "empty inn"); // return of(BalanceError.CompanyNotFound, "empty inn");
} // }
String innStr = sdf09.getInn().setScale(0, RoundingMode.DOWN).toString(); // String innStr = sdf09.getInn().setScale(0, RoundingMode.DOWN).toString();
CompanySymbols symbol = companySymbolImdg // CompanySymbols symbol = companySymbolImdg
.getSingleObjectByFieldValues(Map.of("companySymbol", CompanySymbol.INN.getKey(), // .getSingleObjectByFieldValues(Map.of("companySymbol", CompanySymbol.INN.getKey(),
"companySymbolValue", innStr)); // "companySymbolValue", innStr));
Company company = null; // Company company = null;
if (symbol != null) { // if (symbol != null) {
company = companyImdg.getSingleObjectByID(symbol.getCompanyId()); // company = companyImdg.getSingleObjectByID(symbol.getCompanyId());
} // }
if (company == null) { // if (company == null) {
return of(BalanceError.CompanyNotFound); return of(BalanceError.CompanyNotFound);
} // }
context.storeObject(ValidationStored.Company, company); // context.storeObject(ValidationStored.Company, company);
return empty(); // return empty();
} }
}, },
AccountPresent() { AccountPresent() {
@Override @Override
public Optional<EnumMessage> validate(ImdgValidationContext<SDf09> context) { public Optional<EnumMessage> validate(ImdgValidationContext<SDf09> context) {
SDf09 sdf09 = context.getValidatedObject(); SDf09 sdf09 = context.getValidatedObject();
if (sdf09.getAccount() == null) { // if (sdf09.getAccount() == null) {
return of(BalanceError.AccountNotPresent); return of(BalanceError.AccountNotPresent);
} // }
Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); // Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class);
Account account = accountImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), // Account account = accountImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(),
"accountType", AccountType.Clrn.getKey())); // "accountType", AccountType.Clrn.getKey()));
if (account == null) { // if (account == null) {
return of(BalanceError.AccountNotPresent); // return of(BalanceError.AccountNotPresent);
} // }
context.storeObject(ValidationStored.Account, account); // context.storeObject(ValidationStored.Account, account);
return empty(); // return empty();
} }
}, },
Market() { Market() {
@Override @Override
public Optional<EnumMessage> validate(ImdgValidationContext<SDf09> context) { public Optional<EnumMessage> validate(ImdgValidationContext<SDf09> context) {
SDf09 sdf09 = context.getValidatedObject(); SDf09 sdf09 = context.getValidatedObject();
if (!"U".equals(sdf09.getMarket())) { // if (!"U".equals(sdf09.getMarket())) {
return of(BalanceError.WrongMarket); // return of(BalanceError.WrongMarket);
} // }
return empty(); return empty();
} }
}; };

View file

@ -34,7 +34,7 @@ import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFields
AccountBalanceService.class, AccountBalanceService.class,
Sdf01Executor.class, Sdf01Executor.class,
Sdf08Service.class, Sdf08Service.class,
Sdf09Executor.class, // Sdf09Executor.class,
Sdf16Executor.class, Sdf16Executor.class,
StatementService.class, StatementService.class,
LoggingService.class, LoggingService.class,

View file

@ -203,7 +203,7 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumengage(sdf01.getSumengage());
sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setSumunblock(sdf01.getSumunblock());
sDf02.setFile_type(sdf01.getFile_type()); sDf02.setFile_type(sdf01.getFile_type());
sDf02.setInSDf01Id(sdf01.getId()); sDf02.setInSDfId(sdf01.getId());
sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationId(generationIdForGroup);
sDf02.setGenerationTime(Instant.now()); sDf02.setGenerationTime(Instant.now());
sDf02.setResult("OK!"); sDf02.setResult("OK!");
@ -223,7 +223,6 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
statement.setInOutDirection(InOutDirection.in.getKey()); statement.setInOutDirection(InOutDirection.in.getKey());
statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter));
statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder()));
statement.setCashMovementCurrencyCode(cashMovementCurrencyCode);
statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey());
statement.setInSDfId(sdf01.getId()); statement.setInSDfId(sdf01.getId());
statement.setInOutSDfType(InOutSDfType.type1.getKey()); statement.setInOutSDfType(InOutSDfType.type1.getKey());
@ -245,7 +244,7 @@ class Sdf01ExecutorTest extends AbstractServiceTest {
sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumengage(sdf01.getSumengage());
sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setSumunblock(sdf01.getSumunblock());
sDf02.setFile_type(sdf01.getFile_type()); sDf02.setFile_type(sdf01.getFile_type());
sDf02.setInSDf01Id(sdf01.getId()); sDf02.setInSDfId(sdf01.getId());
String errorId = error.getSubject().getId().toString(); String errorId = error.getSubject().getId().toString();
sDf02.setResult(errorId.substring(errorId.length() - 3)); sDf02.setResult(errorId.substring(errorId.length() - 3));
sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationId(generationIdForGroup);

View file

@ -1,243 +1,243 @@
package ru.spcex.clearing.balance.service; //package ru.spcex.clearing.balance.service;
//
import org.apache.kafka.clients.producer.MockProducer; //import org.apache.kafka.clients.producer.MockProducer;
import org.junit.jupiter.api.Test; //import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.SpyBean; //import org.springframework.boot.test.mock.mockito.SpyBean;
import ru.clearing.classes.statics.data.account.Account; //import ru.clearing.classes.statics.data.account.Account;
import ru.clearing.classes.statics.data.account.AccountBalance; //import ru.clearing.classes.statics.data.account.AccountBalance;
import ru.clearing.classes.statics.data.company.Company; //import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols; //import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.sdf.SDf09; //import ru.clearing.classes.statics.data.sdf.SDf09;
import ru.clearing.classes.statics.data.sdf.SDf10; //import ru.clearing.classes.statics.data.sdf.SDf10;
import ru.clearing.classes.statics.data.statement.Statement; //import ru.clearing.classes.statics.data.statement.Statement;
import ru.spcex.clearing.balance.errors.BalanceError; //import ru.spcex.clearing.balance.errors.BalanceError;
import ru.spcex.clearing.balance.utils.MatcherFactory; //import ru.spcex.clearing.balance.utils.MatcherFactory;
import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; //import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart;
import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; //import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest;
import ru.spcex.platform.enumeration.*; //import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.utils.enumeration.EnumMessage; //import ru.spcex.platform.utils.enumeration.EnumMessage;
//
import javax.annotation.PostConstruct; //import javax.annotation.PostConstruct;
import java.math.BigDecimal; //import java.math.BigDecimal;
import java.time.Instant; //import java.time.Instant;
import java.time.LocalDate; //import java.time.LocalDate;
import java.util.Collection; //import java.util.Collection;
import java.util.Collections; //import java.util.Collections;
import java.util.Map; //import java.util.Map;
//
import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator; //import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator;
//
class Sdf09ExecutorTest extends AbstractServiceTest { //class Sdf09ExecutorTest extends AbstractServiceTest {
private static final MatcherFactory.Matcher<SDf10> SDF_10_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id"); // private static final MatcherFactory.Matcher<SDf10> SDF_10_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id");
private final Long ID = 2L; // private final Long ID = 2L;
private final String acc = "213456789"; // private final String acc = "213456789";
@Autowired // @Autowired
Sdf09Executor sdf09Executor; // Sdf09Executor sdf09Executor;
private SDf09 sdf09; // private SDf09 sdf09;
private StatementRequest statementRequest; // private StatementRequest statementRequest;
@SpyBean // @SpyBean
private MockProducer<String, Object> producer; // private MockProducer<String, Object> producer;
//
@PostConstruct // @PostConstruct
void init() { // void init() {
super.init(); // super.init();
sdf09 = getTestSdf09(); // sdf09 = getTestSdf09();
statementRequest = new StatementRequest(); // statementRequest = new StatementRequest();
} // }
//
/** // /**
* {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}<br> // * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}<br>
* Тест проверяет генерацию сущностей {@link Result}, {@link Statement}, {@link SDf10}<br> // * Тест проверяет генерацию сущностей {@link Result}, {@link Statement}, {@link SDf10}<br>
* Входные параметры:<br> // * Входные параметры:<br>
* accountId - {@link StatementRequest}: new StatementRequest()<br> // * accountId - {@link StatementRequest}: new StatementRequest()<br>
* addresseeId - {@link Collection<SDf09>}<br> // * addresseeId - {@link Collection<SDf09>}<br>
* addresseeId - {@link SDf09}<br> // * addresseeId - {@link SDf09}<br>
* {@link SDf09#market} - "U"<br> // * {@link SDf09#market} - "U"<br>
* {@link SDf09#account} - "123456789"<br> // * {@link SDf09#account} - "123456789"<br>
* {@link SDf09#inn} - 987654321<br> // * {@link SDf09#inn} - 987654321<br>
* {@link SDf09#sum} - 1000<br> // * {@link SDf09#sum} - 1000<br>
*/ // */
@Test // @Test
void execute() { // void execute() {
//check create statement, SDf10 and AccountBalance // //check create statement, SDf10 and AccountBalance
Company company = getTestCompany(); // Company company = getTestCompany();
companyMap.put(addresseeIdNew, company); // companyMap.put(addresseeIdNew, company);
//
CompanySymbols companySymbols = getTestCompanySymbols(); // CompanySymbols companySymbols = getTestCompanySymbols();
companySymbolsMap.put(addresseeIdNew, companySymbols); // companySymbolsMap.put(addresseeIdNew, companySymbols);
//
Account account = getTestAccount(ID, acc); // Account account = getTestAccount(ID, acc);
accountMap.put(accountIdNew, account); // accountMap.put(accountIdNew, account);
//
Result predictableResult = new Result(); // Result predictableResult = new Result();
predictableResult.setGenerationId(ID); // predictableResult.setGenerationId(ID);
Statement predictableStatement = getTestStatement(currentId.getAndIncrement(), company, account, sdf09); // Statement predictableStatement = getTestStatement(currentId.getAndIncrement(), company, account, sdf09);
predictableStatement.setOperationStatus(OperationStatus.Executed.getKey()); // predictableStatement.setOperationStatus(OperationStatus.Executed.getKey());
SDf10 predictableSdf10 = getTestSdf10(currentId.getAndIncrement(), sdf09, ID); // SDf10 predictableSdf10 = getTestSdf10(currentId.getAndIncrement(), sdf09, ID);
predictableStatement.setOutSDfId(predictableSdf10.getId()); // predictableStatement.setOutSDfId(predictableSdf10.getId());
AccountResult predictableNewResult = getTestAccountResult(currentId.getAndIncrement(), account, company); // AccountResult predictableNewResult = getTestAccountResult(currentId.getAndIncrement(), account, company);
//
Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); // Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest);
Statement resultStatement = statementImdg.getSingleObjectByFieldValues(Map.of("account", acc)); // Statement resultStatement = statementImdg.getSingleObjectByFieldValues(Map.of("account", acc));
SDf10 resultSdf10 = sdf10Imdg.getSingleObjectByFieldValues(Map.of("account", acc)); // SDf10 resultSdf10 = sdf10Imdg.getSingleObjectByFieldValues(Map.of("account", acc));
AccountBalance resultAccountBalance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", acc)); // AccountBalance resultAccountBalance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", acc));
//
RESULT_MATCHER.assertMatch(result, predictableResult); // RESULT_MATCHER.assertMatch(result, predictableResult);
STATEMENT_MATCHER.assertMatch(resultStatement, predictableStatement); // STATEMENT_MATCHER.assertMatch(resultStatement, predictableStatement);
SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); // SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10);
ACCOUNT_BALANCE_MATCHER.assertMatch(resultAccountBalance, predictableNewResult.getAccount()); // ACCOUNT_BALANCE_MATCHER.assertMatch(resultAccountBalance, predictableNewResult.getAccount());
} // }
//
/** // /**
* {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}<br> // * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}<br>
* Тест проверяет валидацию<br> // * Тест проверяет валидацию<br>
* Входные параметры:<br> // * Входные параметры:<br>
* accountId - {@link StatementRequest}: new StatementRequest()<br> // * accountId - {@link StatementRequest}: new StatementRequest()<br>
* addresseeId - {@link Collection<SDf09>}<br> // * addresseeId - {@link Collection<SDf09>}<br>
* addresseeId - {@link SDf09}<br> // * addresseeId - {@link SDf09}<br>
* {@link SDf09#market} - "U"<br> // * {@link SDf09#market} - "U"<br>
* {@link SDf09#account} - "123456789"<br> // * {@link SDf09#account} - "123456789"<br>
* {@link SDf09#inn} - 987654321<br> // * {@link SDf09#inn} - 987654321<br>
* {@link SDf09#sum} - 1000<br> // * {@link SDf09#sum} - 1000<br>
*/ // */
@Test // @Test
void validatedExecute() { // void validatedExecute() {
//CompanyNotFound // //CompanyNotFound
companyMap.delete(addresseeIdNew); // companyMap.delete(addresseeIdNew);
checkError(new EnumMessage(BalanceError.CompanyNotFound)); // checkError(new EnumMessage(BalanceError.CompanyNotFound));
//
Company company = getTestCompany(); // Company company = getTestCompany();
companyMap.put(addresseeIdNew, company); // companyMap.put(addresseeIdNew, company);
companySymbolsMap.delete(addresseeIdNew); // companySymbolsMap.delete(addresseeIdNew);
checkError(new EnumMessage(BalanceError.CompanyNotFound)); // checkError(new EnumMessage(BalanceError.CompanyNotFound));
//
CompanySymbols companySymbols = getTestCompanySymbols(); // CompanySymbols companySymbols = getTestCompanySymbols();
companySymbolsMap.put(addresseeIdNew, companySymbols); // companySymbolsMap.put(addresseeIdNew, companySymbols);
sdf09.setInn(null); // sdf09.setInn(null);
checkError(new EnumMessage(BalanceError.CompanyNotFound)); // checkError(new EnumMessage(BalanceError.CompanyNotFound));
//
//AccountNotPresent // //AccountNotPresent
sdf09.setInn(inn); // sdf09.setInn(inn);
accountMap.delete(accountIdNew); // accountMap.delete(accountIdNew);
checkErrorAccountNotPresent(company); // checkErrorAccountNotPresent(company);
//
//AccountNotPresent // //AccountNotPresent
Account account = new Account(); // Account account = new Account();
account.setAccount(null); // account.setAccount(null);
account.setAccountType(AccountType.Clrn.getKey()); // account.setAccountType(AccountType.Clrn.getKey());
account.setStatus(Status.Active.getKey()); // account.setStatus(Status.Active.getKey());
accountMap.put(accountIdNew, account); // accountMap.put(accountIdNew, account);
checkErrorAccountNotPresent(company); // checkErrorAccountNotPresent(company);
//
//AccountNotPresent // //AccountNotPresent
account = getTestAccount(ID, acc); // account = getTestAccount(ID, acc);
accountMap.put(accountIdNew, account); // accountMap.put(accountIdNew, account);
sdf09.setAccount(null); // sdf09.setAccount(null);
checkErrorAccountNotPresent(company); // checkErrorAccountNotPresent(company);
//
//WrongMarket // //WrongMarket
sdf09.setAccount(acc); // sdf09.setAccount(acc);
sdf09.setMarket(null); // sdf09.setMarket(null);
checkError(new EnumMessage(BalanceError.WrongMarket)); // checkError(new EnumMessage(BalanceError.WrongMarket));
//
//BalanceNotEnough // //BalanceNotEnough
sdf09.setMarket("U"); // sdf09.setMarket("U");
sdf09.setSum(null); // sdf09.setSum(null);
checkError(new EnumMessage(BalanceError.BalanceNotEnough)); // checkError(new EnumMessage(BalanceError.BalanceNotEnough));
//
//BalanceNotEnough // //BalanceNotEnough
sdf09.setSum(new BigDecimal(-1000)); // sdf09.setSum(new BigDecimal(-1000));
AccountBalance balance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), // AccountBalance balance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(),
"accountType", AccountType.Clrn.getKey())); // "accountType", AccountType.Clrn.getKey()));
if (balance != null) accountBalanceImdg.delete(balance); // if (balance != null) accountBalanceImdg.delete(balance);
else balance = getTestAccountBalance(ID, account, company); // else balance = getTestAccountBalance(ID, account, company);
checkError(new EnumMessage(BalanceError.BalanceNotEnough)); // checkError(new EnumMessage(BalanceError.BalanceNotEnough));
//
//BalanceNotEnough // //BalanceNotEnough
balance.setFreeBalanceAmount(new BigDecimal(999)); // balance.setFreeBalanceAmount(new BigDecimal(999));
accountBalanceImdg.insert(balance); // accountBalanceImdg.insert(balance);
checkError(new EnumMessage(BalanceError.BalanceNotEnough)); // checkError(new EnumMessage(BalanceError.BalanceNotEnough));
//
balance.setFreeBalanceAmount(amountNew); // balance.setFreeBalanceAmount(amountNew);
accountBalanceImdg.insert(balance); // accountBalanceImdg.insert(balance);
} // }
//
private void checkError(EnumMessage enumMessage) { // private void checkError(EnumMessage enumMessage) {
SDf10 predictableSdf10 = getTestErrorSdf10(sdf09, enumMessage, ID); // SDf10 predictableSdf10 = getTestErrorSdf10(sdf09, enumMessage, ID);
Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); // Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest);
Collection<SDf10> resultsSdf10 = sdf10Imdg.getCollectionObjectsByFieldValues(Map.of("account", acc)); // Collection<SDf10> resultsSdf10 = sdf10Imdg.getCollectionObjectsByFieldValues(Map.of("account", acc));
SDf10 resultSdf10 = resultsSdf10.stream().max((entry1, entry2) -> entry1.getId() > entry2.getId() ? 1 : -1).get(); // SDf10 resultSdf10 = resultsSdf10.stream().max((entry1, entry2) -> entry1.getId() > entry2.getId() ? 1 : -1).get();
SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); // SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10);
} // }
//
protected Statement getTestStatement(Long id, Company company, Account account, SDf09 sdf09) { // protected Statement getTestStatement(Long id, Company company, Account account, SDf09 sdf09) {
Statement statement = new Statement(); // Statement statement = new Statement();
statement.setId(id); // statement.setId(id);
statement.setAddresseeId(company.getId()); // statement.setAddresseeId(company.getId());
statement.setSenderId(Sender.Prc.getId()); // statement.setSenderId(Sender.Prc.getId());
statement.setCreated(Instant.now()); // statement.setCreated(Instant.now());
statement.setClearingDate(LocalDate.now()); // statement.setClearingDate(LocalDate.now());
statement.setStatementType(StatementType.incr.getKey()); // statement.setStatementType(StatementType.incr.getKey());
statement.setAccountId(account.getId()); // statement.setAccountId(account.getId());
statement.setAccount(sdf09.getAccount()); // statement.setAccount(sdf09.getAccount());
statement.setInOutDirection(InOutDirection.in.getKey()); // statement.setInOutDirection(InOutDirection.in.getKey());
statement.setAmount(sdf09.getSum()); // statement.setAmount(sdf09.getSum());
statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); // statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey());
statement.setOperationStatus(OperationStatus.Pending.getKey()); // statement.setOperationStatus(OperationStatus.Pending.getKey());
statement.setInSDfId(sdf09.getId()); // statement.setInSDfId(sdf09.getId());
statement.setInOutSDfType(InOutSDfType.type9.getKey()); // statement.setInOutSDfType(InOutSDfType.type9.getKey());
statementImdg.insert(statement); // statementImdg.insert(statement);
return statement; // return statement;
} // }
//
private SDf10 getTestSdf10(Long id, SDf09 sdf09, Long generationIdForGroup) { // private SDf10 getTestSdf10(Long id, SDf09 sdf09, Long generationIdForGroup) {
SDf10 sDf10 = new SDf10(); // SDf10 sDf10 = new SDf10();
sDf10.setId(id); // sDf10.setId(id);
sDf10.setAccount(sdf09.getAccount()); // sDf10.setAccount(sdf09.getAccount());
sDf10.setSum(sdf09.getSum()); // sDf10.setSum(sdf09.getSum());
sDf10.setMarket(sdf09.getMarket()); // sDf10.setMarket(sdf09.getMarket());
sDf10.setType(sdf09.getType()); // sDf10.setType(sdf09.getType());
sDf10.setNumber(sdf09.getNumber()); // sDf10.setNumber(sdf09.getNumber());
sDf10.setInn(sdf09.getInn()); // sDf10.setInn(sdf09.getInn());
sDf10.setResult("OK"); // sDf10.setResult("OK");
sDf10.setGenerationId(generationIdForGroup); // sDf10.setGenerationId(generationIdForGroup);
sDf10.setGenerationTime(Instant.now()); // sDf10.setGenerationTime(Instant.now());
sDf10.setInSDf09Id(sdf09.getId()); // sDf10.setInSDf09Id(sdf09.getId());
return sDf10; // return sDf10;
} // }
//
private SDf09 getTestSdf09() { // private SDf09 getTestSdf09() {
SDf09 sdf09 = new SDf09(); // SDf09 sdf09 = new SDf09();
sdf09.setId(ID); // sdf09.setId(ID);
sdf09.setMarket("U"); // sdf09.setMarket("U");
sdf09.setAccount(acc); // sdf09.setAccount(acc);
sdf09.setInn(inn); // sdf09.setInn(inn);
sdf09.setSum(amountNew); // sdf09.setSum(amountNew);
return sdf09; // return sdf09;
} // }
//
private SDf10 getTestErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { // private SDf10 getTestErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) {
SDf10 sDf10 = getTestSdf10(ID, sdf09, generationIdForGroup); // SDf10 sDf10 = getTestSdf10(ID, sdf09, generationIdForGroup);
sDf10.setId(ID); // sDf10.setId(ID);
String errorId = error.getSubject().getId().toString(); // String errorId = error.getSubject().getId().toString();
sDf10.setResult(errorId.substring(errorId.length() - 3)); // sDf10.setResult(errorId.substring(errorId.length() - 3));
return sDf10; // return sDf10;
} // }
//
private void checkErrorAccountNotPresent(Company company) { // private void checkErrorAccountNotPresent(Company company) {
Result predictableResult = new Result(); // Result predictableResult = new Result();
predictableResult.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); // predictableResult.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId()));
Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); // Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest);
RESULT_MATCHER.assertMatch(result, predictableResult); // RESULT_MATCHER.assertMatch(result, predictableResult);
} // }
//
private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { // private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) {
AccountSdfRequestPart req = new AccountSdfRequestPart(); // AccountSdfRequestPart req = new AccountSdfRequestPart();
req.setAccount(account); // req.setAccount(account);
req.setCompanyId(companyId); // req.setCompanyId(companyId);
// req.setAccountType(AccountType.Clrn.getKey()); //// req.setAccountType(AccountType.Clrn.getKey());
req.setSdfId(sdf09Id); // req.setSdfId(sdf09Id);
return req; // return req;
} // }
} //}

View file

@ -211,7 +211,6 @@ class Sdf16ExecutorTest extends AbstractServiceTest {
statement.setAccount(sdf16.getAccount()); statement.setAccount(sdf16.getAccount());
statement.setInOutDirection(InOutDirection.in.getKey()); statement.setInOutDirection(InOutDirection.in.getKey());
statement.setAmount(sdf16.getSum()); statement.setAmount(sdf16.getSum());
statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey());
statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey());
statement.setInSDfId(sdf16.getId()); statement.setInSDfId(sdf16.getId());
statement.setInOutSDfType(InOutSDfType.type16.getKey()); statement.setInOutSDfType(InOutSDfType.type16.getKey());

View file

@ -109,35 +109,35 @@ public class PaymentInstructionCreator {
payment1.setPaymentPurpose(paymentPurpose(liabilitiesClaimsAssets.getContract())); payment1.setPaymentPurpose(paymentPurpose(liabilitiesClaimsAssets.getContract()));
payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue(); BigDecimal amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs();
payment1.setCreditLegAmount(amount); payment1.setCreditLeg_amount(amount);
payment1.setDebitLegAmount(amount); payment1.setDebitLeg_amount(amount);
payment1.setCreditLegAccountId(liabilitiesClaimsAssets.getAccountId()); payment1.setCreditLeg_accountId(liabilitiesClaimsAssets.getAccountId());
payment1.setCreditCsAccount(null); payment1.setCredit_csAccount(null);
{ {
Account acc1 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId()); Account acc1 = accountImdg.getSingleObjectByID(payment1.getCreditLeg_accountId());
if (acc1 != null) { if (acc1 != null) {
payment1.setCreditLegAccount(acc1.getAccount()); payment1.setCreditLeg_account(acc1.getAccount());
} }
} }
{ {
Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
if (acc1 != null) { if (acc1 != null) {
payment1.setDebitLegAccountId(acc1.getId()); payment1.setDebitLeg_accountId(acc1.getId());
payment1.setDebitLegAccount(acc1.getAccount()); payment1.setDebitLeg_account(acc1.getAccount());
} }
} }
payment1.setDebitCsAccount(null); payment1.setDebit_csAccount(null);
// payment1.setCreditLegDirection(InOutDirection.out.getKey()); // payment1.setCreditLeg_direction(InOutDirection.out.getKey());
// payment1.setDebitLegDirection(InOutDirection.in.getKey()); // payment1.setDebitLeg_direction(InOutDirection.in.getKey());
payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency());
payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency());
payment1.setTransactionStatus(TransactionStatus.stld.getKey()); payment1.setTransactionStatus(TransactionStatus.stld.getKey());
@ -399,9 +399,9 @@ public class PaymentInstructionCreator {
payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); BigDecimal amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs();
payment1.setCreditLegAmount(amount); payment1.setCreditLeg_amount(amount);
payment1.setDebitLegAmount(amount); payment1.setDebitLeg_amount(amount);
{ {
Account anotherAcc = selectAccount(payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); Account anotherAcc = selectAccount(payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
@ -409,34 +409,34 @@ public class PaymentInstructionCreator {
log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}",
payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
} else { } else {
payment1.setCreditLegAccountId(anotherAcc.getId()); payment1.setCreditLeg_accountId(anotherAcc.getId());
} }
} }
payment1.setCreditCsAccount(null); payment1.setCredit_csAccount(null);
{ {
Account acc2 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId()); Account acc2 = accountImdg.getSingleObjectByID(payment1.getCreditLeg_accountId());
if (acc2 != null) { if (acc2 != null) {
payment1.setCreditLegAccount(acc2.getAccount()); payment1.setCreditLeg_account(acc2.getAccount());
} }
} }
{ {
Account acc2 = accountImdg.getSingleObjectByID(liabilitiesClaimsAssets.getAccountId()); Account acc2 = accountImdg.getSingleObjectByID(liabilitiesClaimsAssets.getAccountId());
if (acc2 != null) { if (acc2 != null) {
payment1.setDebitLegAccountId(acc2.getId()); payment1.setDebitLeg_accountId(acc2.getId());
payment1.setDebitLegAccount(acc2.getAccount()); payment1.setDebitLeg_account(acc2.getAccount());
} }
} }
payment1.setDebitCsAccount(null); payment1.setDebit_csAccount(null);
// payment2.setCreditLegDirection(InOutDirection.out.getKey()); // payment2.setCreditLeg_direction(InOutDirection.out.getKey());
// payment2.setDebitLegDirection(InOutDirection.in.getKey()); // payment2.setDebitLeg_direction(InOutDirection.in.getKey());
payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency());
payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency());
payment1.setTransactionStatus(TransactionStatus.stld.getKey()); payment1.setTransactionStatus(TransactionStatus.stld.getKey());
@ -483,9 +483,9 @@ public class PaymentInstructionCreator {
payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); BigDecimal amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs();
payment2.setCreditLegAmount(amount); payment2.setCreditLeg_amount(amount);
payment2.setDebitLegAmount(amount); payment2.setDebitLeg_amount(amount);
{ {
Long accountId = liabilitiesClaimsAssets.getAccountId(); Long accountId = liabilitiesClaimsAssets.getAccountId();
@ -493,28 +493,28 @@ public class PaymentInstructionCreator {
if (acc1 == null) { if (acc1 == null) {
log.warn("Account not found: {}", accountId); log.warn("Account not found: {}", accountId);
} else { } else {
payment2.setCreditLegAccountId(acc1.getId()); payment2.setCreditLeg_accountId(acc1.getId());
payment2.setCreditLegAccount(acc1.getAccount()); payment2.setCreditLeg_account(acc1.getAccount());
} }
} }
payment2.setCreditCsAccount(null); payment2.setCredit_csAccount(null);
{ {
Account acc1 = selectAccount(payment2.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED); Account acc1 = selectAccount(payment2.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED);
if (acc1 != null) { if (acc1 != null) {
payment2.setDebitLegAccountId(acc1.getId()); payment2.setDebitLeg_accountId(acc1.getId());
payment2.setDebitLegAccount(acc1.getAccount()); payment2.setDebitLeg_account(acc1.getAccount());
} }
} }
payment2.setDebitCsAccount(null); payment2.setDebit_csAccount(null);
// payment1.setCreditLegDirection(InOutDirection.out.getKey()); // payment1.setCreditLegDirection(InOutDirection.out.getKey());
// payment1.setDebitLegDirection(InOutDirection.in.getKey()); // payment1.setDebitLegDirection(InOutDirection.in.getKey());
payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); payment2.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency());
payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); payment2.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency());
payment2.setTransactionStatus(TransactionStatus.stld.getKey()); payment2.setTransactionStatus(TransactionStatus.stld.getKey());
@ -702,7 +702,7 @@ public class PaymentInstructionCreator {
if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) {
if (isFirstLeg) { if (isFirstLeg) {
BigDecimal amount = safeBD(liabilitiesClaimsMoney.getLiabilitiesAmount()).subtract(bdFromLongSafe(paymentIAny.getCreditLegAmount())); BigDecimal amount = safeBD(liabilitiesClaimsMoney.getLiabilitiesAmount()).subtract(safeBD(paymentIAny.getCreditLeg_amount()));
liabilitiesClaimsMoney.setLiabilitiesAmount(amount); liabilitiesClaimsMoney.setLiabilitiesAmount(amount);
modified = true; modified = true;
} }
@ -713,7 +713,7 @@ public class PaymentInstructionCreator {
if (clearingCategory.contains(ClearingCategory.B)) { if (clearingCategory.contains(ClearingCategory.B)) {
if (isFirstLeg) { if (isFirstLeg) {
BigDecimal amount = safeBD(liabilitiesClaimsMoney.getClaimsAmount()).subtract(bdFromLongSafe(paymentIAny.getDebitLegAmount())); BigDecimal amount = safeBD(liabilitiesClaimsMoney.getClaimsAmount()).subtract(safeBD(paymentIAny.getDebitLeg_amount()));
liabilitiesClaimsMoney.setClaimsAmount(amount); liabilitiesClaimsMoney.setClaimsAmount(amount);
modified = true; modified = true;
} }
@ -730,8 +730,4 @@ public class PaymentInstructionCreator {
return modified; return modified;
} }
private BigDecimal bdFromLongSafe(Long l) {
if (l == null) return BigDecimal.ZERO;
return new BigDecimal(l);
}
} }

View file

@ -26,9 +26,9 @@ public class Sdf03Builder {
sDf03.setSeg_type("U"); sDf03.setSeg_type("U");
sDf03.setDoc_type("002"); sDf03.setDoc_type("002");
sDf03.setDocnm_ref(paymentInstruction.getId().toString()); sDf03.setDocnm_ref(paymentInstruction.getId().toString());
sDf03.setPriority("9"); // sDf03.setPriority("9");
sDf03.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); // sDf03.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0");
sDf03.setC_acc_deb(paymentInstruction.getCreditLegAccount()); sDf03.setC_acc_deb(paymentInstruction.getCreditLeg_account());
if (paymentInstruction.getSenderId().equals(Sender.One.getId())) { if (paymentInstruction.getSenderId().equals(Sender.One.getId())) {
sDf03.setSbanknam1(paymentInstruction.getPayeeBankName()); sDf03.setSbanknam1(paymentInstruction.getPayeeBankName());
} else { } else {
@ -60,8 +60,8 @@ public class Sdf03Builder {
} }
// =@00100, если ?; // =@00100, если ?;
// =@00000, если ?. // =@00000, если ?.
sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); // sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0");
sDf03.setC_acc_cred(paymentInstruction.getDebitLegAccount()); sDf03.setC_acc_cred(paymentInstruction.getDebitLeg_account());
if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) {
sDf03.setRbanknam1(paymentInstruction.getAddresseeBankName()); sDf03.setRbanknam1(paymentInstruction.getAddresseeBankName());
} else { } else {
@ -75,23 +75,23 @@ public class Sdf03Builder {
sDf03.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY)); sDf03.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY));
} }
sDf03.setPay_val("RUR"); sDf03.setPay_val("RUR");
sDf03.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null); sDf03.setSum_deb(paymentInstruction.getDebitLeg_amount() != null ? paymentInstruction.getDebitLeg_amount().toString() : null);
//37 sp_code varchar(2) Код назначения платежа //37 sp_code varchar(2) Код назначения платежа
String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose()); String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose());
for (int i = 0; i < splitPaymentPurpose.length; i++) { for (int i = 0; i < splitPaymentPurpose.length; i++) {
String specif = splitPaymentPurpose[i]; String specif = splitPaymentPurpose[i];
if (i == 0) { if (i == 0) {
sDf03.setSpecif_1(specif); sDf03.setSpecif_1(specif);
} else if (i == 1) { // } else if (i == 1) {
sDf03.setSpecif_2(specif); // sDf03.setSpecif_2(specif);
} else if (i == 2) { // } else if (i == 2) {
sDf03.setSpecif_3(specif); // sDf03.setSpecif_3(specif);
} else if (i == 3) { // } else if (i == 3) {
sDf03.setSpecif_4(specif); // sDf03.setSpecif_4(specif);
} else if (i == 4) { // } else if (i == 4) {
sDf03.setSpecif_5(specif); // sDf03.setSpecif_5(specif);
} else if (i == 5) { // } else if (i == 5) {
sDf03.setSpecif_6(specif); // sDf03.setSpecif_6(specif);
} }
} }
sDf03.setGenerationTime(Instant.now()); sDf03.setGenerationTime(Instant.now());

View file

@ -22,78 +22,78 @@ public class Sdf11Builder {
public SDf11 buildSdf11(PaymentInstruction paymentInstruction, Long generationId) { public SDf11 buildSdf11(PaymentInstruction paymentInstruction, Long generationId) {
SDf11 sDf11 = new SDf11(); SDf11 sDf11 = new SDf11();
sDf11.setSeg_type("U"); // todo поменялись классы sDf11.setSeg_type("U");
sDf11.setDoc_type("002"); // sDf11.setDoc_type("002");
sDf11.setDocnm_ref(paymentInstruction.getId().toString()); // sDf11.setDocnm_ref(paymentInstruction.getId().toString());
sDf11.setPriority("9"); // sDf11.setPriority("9");
sDf11.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); // sDf11.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0");
sDf11.setC_acc_deb(paymentInstruction.getCreditLegAccount()); // sDf11.setC_acc_deb(paymentInstruction.getCreditLegAccount());
if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { // if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) {
sDf11.setSbanknam1(paymentInstruction.getAddresseeBankName()); // sDf11.setSbanknam1(paymentInstruction.getAddresseeBankName());
//(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5). // //(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5).
sDf11.setSbanknam2(sDf11.getSbanknam1().substring(35)); // sDf11.setSbanknam2(sDf11.getSbanknam1().substring(35));
sDf11.setSbanknam1(sDf11.getSbanknam1().substring(0, 35)); // sDf11.setSbanknam1(sDf11.getSbanknam1().substring(0, 35));
if (sDf11.getSbanknam2().length() > 35) { // if (sDf11.getSbanknam2().length() > 35) {
sDf11.setSbanknam3(sDf11.getSbanknam2().substring(35)); // sDf11.setSbanknam3(sDf11.getSbanknam2().substring(35));
sDf11.setSbanknam2(sDf11.getSbanknam2().substring(0, 35)); // sDf11.setSbanknam2(sDf11.getSbanknam2().substring(0, 35));
if (sDf11.getSbanknam3().length() > 35) { // if (sDf11.getSbanknam3().length() > 35) {
sDf11.setSbanknam4(sDf11.getSbanknam3().substring(35)); // sDf11.setSbanknam4(sDf11.getSbanknam3().substring(35));
sDf11.setSbanknam3(sDf11.getSbanknam3().substring(0, 35)); // sDf11.setSbanknam3(sDf11.getSbanknam3().substring(0, 35));
if (sDf11.getSbanknam4().length() > 35) { // if (sDf11.getSbanknam4().length() > 35) {
sDf11.setSbanknam5(sDf11.getSbanknam4().substring(35)); // sDf11.setSbanknam5(sDf11.getSbanknam4().substring(35));
sDf11.setSbanknam4(sDf11.getSbanknam4().substring(0, 35)); // sDf11.setSbanknam4(sDf11.getSbanknam4().substring(0, 35));
if (sDf11.getSbanknam5().length() > 35) { // if (sDf11.getSbanknam5().length() > 35) {
//warn: too large for all field // //warn: too large for all field
//sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35)); // //sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35));
} // }
} // }
} // }
} // }
} else { // } else {
Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); // Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId());
if (company != null) { // if (company != null) {
sDf11.setSbanknam1(company.getShortName()); // sDf11.setSbanknam1(company.getShortName());
} // }
} // }
// =@00100, если ?; // // =@00100, если ?;
// =@00000, если ?. // // =@00000, если ?.
sDf11.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); // sDf11.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0");
sDf11.setC_acc_cred(paymentInstruction.getDebitLegAccount()); // sDf11.setC_acc_cred(paymentInstruction.getDebitLegAccount());
if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { // if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) {
sDf11.setRbanknam1(paymentInstruction.getAddresseeBankName()); // sDf11.setRbanknam1(paymentInstruction.getAddresseeBankName());
} else { // } else {
Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); // Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId());
if (company != null) { // if (company != null) {
sDf11.setRbanknam1(company.getShortName()); // sDf11.setRbanknam1(company.getShortName());
} // }
} // }
LocalDate paymtDt = TimeUtil.toLocalDate(paymentInstruction.getPaymentDate()); // LocalDate paymtDt = TimeUtil.toLocalDate(paymentInstruction.getPaymentDate());
if (paymtDt != null) { // if (paymtDt != null) {
sDf11.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY)); // sDf11.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY));
} // }
sDf11.setPay_val("RUR"); // sDf11.setPay_val("RUR");
sDf11.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null); // sDf11.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null);
//37 sp_code varchar(2) Код назначения платежа // //37 sp_code varchar(2) Код назначения платежа
String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose()); // String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose());
for (int i = 0; i < splitPaymentPurpose.length; i++) { // for (int i = 0; i < splitPaymentPurpose.length; i++) {
String specif = splitPaymentPurpose[i]; // String specif = splitPaymentPurpose[i];
if (i == 0) { // if (i == 0) {
sDf11.setSpecif_1(specif); // sDf11.setSpecif_1(specif);
} else if (i == 1) { // } else if (i == 1) {
sDf11.setSpecif_2(specif); // sDf11.setSpecif_2(specif);
} else if (i == 2) { // } else if (i == 2) {
sDf11.setSpecif_3(specif); // sDf11.setSpecif_3(specif);
} else if (i == 3) { // } else if (i == 3) {
sDf11.setSpecif_4(specif); // sDf11.setSpecif_4(specif);
} else if (i == 4) { // } else if (i == 4) {
sDf11.setSpecif_5(specif); // sDf11.setSpecif_5(specif);
} else if (i == 5) { // } else if (i == 5) {
sDf11.setSpecif_6(specif); // sDf11.setSpecif_6(specif);
} // }
} // }
sDf11.setGenerationTime(Instant.now()); // sDf11.setGenerationTime(Instant.now());
sDf11.setGenerationId(generationId); // sDf11.setGenerationId(generationId);
sDf11.setPaymentInstructionId(paymentInstruction.getId()); // sDf11.setPaymentInstructionId(paymentInstruction.getId());
return sDf11; return sDf11;
} }
} }

View file

@ -18,6 +18,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IEnumKey;
import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.enumeration.IMessageResolver;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -59,10 +60,10 @@ public class PaymentInstructionSorter {
List<PaymentInstruction> aList = new ArrayList<>(); List<PaymentInstruction> aList = new ArrayList<>();
List<PaymentInstruction> bList = new ArrayList<>(); List<PaymentInstruction> bList = new ArrayList<>();
for (PaymentInstruction payment : payments) { for (PaymentInstruction payment : payments) {
Account creditLegAcc = accImdg.getSingleObjectByID(payment.getCreditLegAccountId()); Account creditLegAcc = accImdg.getSingleObjectByID(payment.getCreditLeg_accountId());
Account debitLegAcc = accImdg.getSingleObjectByID(payment.getDebitLegAccountId()); Account debitLegAcc = accImdg.getSingleObjectByID(payment.getDebitLeg_accountId());
if (creditLegAcc == null || debitLegAcc == null) { if (creditLegAcc == null || debitLegAcc == null) {
String message = String.format("cannot find account CreditLegAccountId/DebitLegAccountId %d/%d", payment.getCreditLegAccountId(), payment.getDebitLegAccountId()); String message = String.format("cannot find account CreditLegAccountId/DebitLegAccountId %d/%d", payment.getCreditLeg_accountId(), payment.getDebitLeg_accountId());
log.error("generationId={}, senderId={} payment.id={} {}", log.error("generationId={}, senderId={} payment.id={} {}",
generationId, senderId, payment.getId(), message); generationId, senderId, payment.getId(), message);
continue; continue;
@ -80,18 +81,18 @@ public class PaymentInstructionSorter {
//continue; //continue;
} }
} }
Function<List<PaymentInstruction>, Long> creditAmountSum = paymentInstructions -> paymentInstructions Function<List<PaymentInstruction>, BigDecimal> creditAmountSum = paymentInstructions -> paymentInstructions
.stream() .stream()
.map(PaymentInstruction::getCreditLegAmount) .map(PaymentInstruction::getCreditLeg_amount)
.reduce(0L, Long::sum); .reduce(BigDecimal.ZERO, BigDecimal::add);
Function<List<PaymentInstruction>, Long> debitAmountSum = paymentInstructions -> paymentInstructions Function<List<PaymentInstruction>, BigDecimal> debitAmountSum = paymentInstructions -> paymentInstructions
.stream() .stream()
.map(PaymentInstruction::getDebitLegAmount) .map(PaymentInstruction::getDebitLeg_amount)
.reduce(0L, Long::sum); .reduce(BigDecimal.ZERO, BigDecimal::add);
Long fromClearingToBankCreditAmount = creditAmountSum.apply(aList); BigDecimal fromClearingToBankCreditAmount = creditAmountSum.apply(aList);
Long fromBankToClearingCreditAmount = creditAmountSum.apply(bList); BigDecimal fromBankToClearingCreditAmount = creditAmountSum.apply(bList);
Long fromClearingToBankDebitAmount = debitAmountSum.apply(aList); BigDecimal fromClearingToBankDebitAmount = debitAmountSum.apply(aList);
Long fromBankToClearingDebitAmount = debitAmountSum.apply(bList); BigDecimal fromBankToClearingDebitAmount = debitAmountSum.apply(bList);
if (!fromClearingToBankCreditAmount.equals(fromBankToClearingCreditAmount)) { if (!fromClearingToBankCreditAmount.equals(fromBankToClearingCreditAmount)) {
error = new EnumMessage(ClearingError.CompanyCreditCheck, senderId.toString()); error = new EnumMessage(ClearingError.CompanyCreditCheck, senderId.toString());
} else if (!fromClearingToBankDebitAmount.equals(fromBankToClearingDebitAmount)) { } else if (!fromClearingToBankDebitAmount.equals(fromBankToClearingDebitAmount)) {

View file

@ -17,15 +17,15 @@ public class S_DF03_Converter extends DFConverter<SDf03> {
values.add(typeMatch(entity.getDoc_type())); values.add(typeMatch(entity.getDoc_type()));
values.add(typeMatch(entity.getDocnm_ref())); values.add(typeMatch(entity.getDocnm_ref()));
values.add(typeMatch(entity.getDocnmprev())); values.add(typeMatch(entity.getDocnmprev()));
values.add(typeMatch(entity.getPriority())); // values.add(typeMatch(entity.getPriority()));
values.add(typeMatch(entity.getSbankcode())); // values.add(typeMatch(entity.getSbankcode()));
values.add(typeMatch(entity.getC_acc_deb())); values.add(typeMatch(entity.getC_acc_deb()));
values.add(typeMatch(entity.getSbanknam1())); values.add(typeMatch(entity.getSbanknam1()));
values.add(typeMatch(entity.getSbanknam2())); values.add(typeMatch(entity.getSbanknam2()));
values.add(typeMatch(entity.getSbanknam3())); values.add(typeMatch(entity.getSbanknam3()));
values.add(typeMatch(entity.getSbanknam4())); values.add(typeMatch(entity.getSbanknam4()));
values.add(typeMatch(entity.getSbanknam5())); values.add(typeMatch(entity.getSbanknam5()));
values.add(typeMatch(entity.getRbankcode())); // values.add(typeMatch(entity.getRbankcode()));
values.add(typeMatch(entity.getC_acc_cred())); values.add(typeMatch(entity.getC_acc_cred()));
values.add(typeMatch(entity.getRbanknam1())); values.add(typeMatch(entity.getRbanknam1()));
values.add(typeMatch(entity.getRbanknam2())); values.add(typeMatch(entity.getRbanknam2()));
@ -33,31 +33,31 @@ public class S_DF03_Converter extends DFConverter<SDf03> {
values.add(typeMatch(entity.getRbanknam4())); values.add(typeMatch(entity.getRbanknam4()));
values.add(typeMatch(entity.getRbanknam5())); values.add(typeMatch(entity.getRbanknam5()));
values.add(typeMatch(entity.getPay_date())); values.add(typeMatch(entity.getPay_date()));
values.add(typeMatch(entity.getExt_date())); // values.add(typeMatch(entity.getExt_date()));
values.add(typeMatch(entity.getPay_val())); values.add(typeMatch(entity.getPay_val()));
values.add(typeMatch(entity.getSum_deb())); values.add(typeMatch(entity.getSum_deb()));
values.add(typeMatch(entity.getSclientn1())); // values.add(typeMatch(entity.getSclientn1()));
values.add(typeMatch(entity.getSclientn2())); // values.add(typeMatch(entity.getSclientn2()));
values.add(typeMatch(entity.getSclientn3())); // values.add(typeMatch(entity.getSclientn3()));
values.add(typeMatch(entity.getSclientn4())); // values.add(typeMatch(entity.getSclientn4()));
values.add(typeMatch(entity.getSc_code())); // values.add(typeMatch(entity.getSc_code()));
values.add(typeMatch(entity.getAcc_deb())); // values.add(typeMatch(entity.getAcc_deb()));
values.add(typeMatch(entity.getRclientn1())); // values.add(typeMatch(entity.getRclientn1()));
values.add(typeMatch(entity.getRclientn2())); // values.add(typeMatch(entity.getRclientn2()));
values.add(typeMatch(entity.getRclientn3())); // values.add(typeMatch(entity.getRclientn3()));
values.add(typeMatch(entity.getRclientn4())); // values.add(typeMatch(entity.getRclientn4()));
values.add(typeMatch(entity.getAcc_kr_1())); // values.add(typeMatch(entity.getAcc_kr_1()));
values.add(typeMatch(entity.getAcc_kr_2())); // values.add(typeMatch(entity.getAcc_kr_2()));
values.add(typeMatch(entity.getSp_code())); // values.add(typeMatch(entity.getSp_code()));
values.add(typeMatch(entity.getSpecif_1())); values.add(typeMatch(entity.getSpecif_1()));
values.add(typeMatch(entity.getSpecif_2())); // values.add(typeMatch(entity.getSpecif_2()));
values.add(typeMatch(entity.getSpecif_3())); // values.add(typeMatch(entity.getSpecif_3()));
values.add(typeMatch(entity.getSpecif_4())); // values.add(typeMatch(entity.getSpecif_4()));
values.add(typeMatch(entity.getSpecif_5())); // values.add(typeMatch(entity.getSpecif_5()));
values.add(typeMatch(entity.getSpecif_6())); // values.add(typeMatch(entity.getSpecif_6()));
values.add(typeMatch(entity.getSend_type())); // values.add(typeMatch(entity.getSend_type()));
values.add(typeMatch(entity.getServdate())); // values.add(typeMatch(entity.getServdate()));
values.add(typeMatch(entity.getDoc_result())); // values.add(typeMatch(entity.getDoc_result()));
values.add(typeMatch(entity.getImp_result())); values.add(typeMatch(entity.getImp_result()));
return values.toArray(Object[]::new); return values.toArray(Object[]::new);
} }

View file

@ -14,8 +14,8 @@ public class S_DF08_Converter extends DFConverter<SDf08> {
@Override @Override
public Object[] toObjectArray(SDf08 entity) { public Object[] toObjectArray(SDf08 entity) {
List<Object> values = new LinkedList<>(); List<Object> values = new LinkedList<>();
values.add(convertStrToLong(entity.getNumber())); // values.add(convertStrToLong(entity.getNumber()));
values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME // values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME
return values.toArray(Object[]::new); return values.toArray(Object[]::new);
} }

View file

@ -13,13 +13,13 @@ public class S_DF10_Converter extends DFConverter<SDf10> {
@Override @Override
public Object[] toObjectArray(SDf10 entity) { public Object[] toObjectArray(SDf10 entity) {
List<Object> values = new LinkedList<>(); List<Object> values = new LinkedList<>();
values.add(typeMatch(entity.getAccount())); // values.add(typeMatch(entity.getAccount()));
values.add(typeMatch(entity.getSum())); // values.add(typeMatch(entity.getSum()));
values.add(typeMatch(entity.getMarket())); // values.add(typeMatch(entity.getMarket()));
values.add(typeMatch(entity.getType())); // values.add(typeMatch(entity.getType()));
values.add(typeMatch(entity.getNumber())); // values.add(typeMatch(entity.getNumber()));
values.add(typeMatch(entity.getInn())); // values.add(typeMatch(entity.getInn()));
values.add(typeMatch(entity.getResult())); // values.add(typeMatch(entity.getResult()));
return values.toArray(Object[]::new); return values.toArray(Object[]::new);
} }

View file

@ -13,51 +13,51 @@ public class S_DF11_Converter extends DFConverter<SDf11> {
@Override @Override
public Object[] toObjectArray(SDf11 entity) { public Object[] toObjectArray(SDf11 entity) {
List<Object> values = new LinkedList<>(); List<Object> values = new LinkedList<>();
values.add(typeMatch(entity.getSeg_type())); // values.add(typeMatch(entity.getSeg_type()));
values.add(typeMatch(entity.getDoc_type())); // values.add(typeMatch(entity.getDoc_type()));
values.add(typeMatch(entity.getDocnm_ref())); // values.add(typeMatch(entity.getDocnm_ref()));
values.add(typeMatch(entity.getDocnmprev())); // values.add(typeMatch(entity.getDocnmprev()));
values.add(typeMatch(entity.getPriority())); // values.add(typeMatch(entity.getPriority()));
values.add(typeMatch(entity.getSbankcode())); // values.add(typeMatch(entity.getSbankcode()));
values.add(typeMatch(entity.getC_acc_deb())); // values.add(typeMatch(entity.getC_acc_deb()));
values.add(typeMatch(entity.getSbanknam1())); // values.add(typeMatch(entity.getSbanknam1()));
values.add(typeMatch(entity.getSbanknam2())); // values.add(typeMatch(entity.getSbanknam2()));
values.add(typeMatch(entity.getSbanknam3())); // values.add(typeMatch(entity.getSbanknam3()));
values.add(typeMatch(entity.getSbanknam4())); // values.add(typeMatch(entity.getSbanknam4()));
values.add(typeMatch(entity.getSbanknam5())); // values.add(typeMatch(entity.getSbanknam5()));
values.add(typeMatch(entity.getRbankcode())); // values.add(typeMatch(entity.getRbankcode()));
values.add(typeMatch(entity.getC_acc_cred())); // values.add(typeMatch(entity.getC_acc_cred()));
values.add(typeMatch(entity.getRbanknam1())); // values.add(typeMatch(entity.getRbanknam1()));
values.add(typeMatch(entity.getRbanknam2())); // values.add(typeMatch(entity.getRbanknam2()));
values.add(typeMatch(entity.getRbanknam3())); // values.add(typeMatch(entity.getRbanknam3()));
values.add(typeMatch(entity.getRbanknam4())); // values.add(typeMatch(entity.getRbanknam4()));
values.add(typeMatch(entity.getRbanknam5())); // values.add(typeMatch(entity.getRbanknam5()));
values.add(typeMatch(entity.getPay_date())); // values.add(typeMatch(entity.getPay_date()));
values.add(typeMatch(entity.getExt_date())); // values.add(typeMatch(entity.getExt_date()));
values.add(typeMatch(entity.getPay_val())); // values.add(typeMatch(entity.getPay_val()));
values.add(typeMatch(entity.getSum_deb())); // values.add(typeMatch(entity.getSum_deb()));
values.add(typeMatch(entity.getSclientn1())); // values.add(typeMatch(entity.getSclientn1()));
values.add(typeMatch(entity.getSclientn2())); // values.add(typeMatch(entity.getSclientn2()));
values.add(typeMatch(entity.getSclientn3())); // values.add(typeMatch(entity.getSclientn3()));
values.add(typeMatch(entity.getSclientn4())); // values.add(typeMatch(entity.getSclientn4()));
values.add(typeMatch(entity.getSc_code())); // values.add(typeMatch(entity.getSc_code()));
values.add(typeMatch(entity.getAcc_deb())); // values.add(typeMatch(entity.getAcc_deb()));
values.add(typeMatch(entity.getRclientn1())); // values.add(typeMatch(entity.getRclientn1()));
values.add(typeMatch(entity.getRclientn2())); // values.add(typeMatch(entity.getRclientn2()));
values.add(typeMatch(entity.getRclientn3())); // values.add(typeMatch(entity.getRclientn3()));
values.add(typeMatch(entity.getRclientn4())); // values.add(typeMatch(entity.getRclientn4()));
values.add(typeMatch(entity.getAcc_kr_1())); // values.add(typeMatch(entity.getAcc_kr_1()));
values.add(typeMatch(entity.getAcc_kr_2())); // values.add(typeMatch(entity.getAcc_kr_2()));
values.add(typeMatch(entity.getSp_code())); // values.add(typeMatch(entity.getSp_code()));
values.add(typeMatch(entity.getSpecif_1())); // values.add(typeMatch(entity.getSpecif_1()));
values.add(typeMatch(entity.getSpecif_2())); // values.add(typeMatch(entity.getSpecif_2()));
values.add(typeMatch(entity.getSpecif_3())); // values.add(typeMatch(entity.getSpecif_3()));
values.add(typeMatch(entity.getSpecif_4())); // values.add(typeMatch(entity.getSpecif_4()));
values.add(typeMatch(entity.getSpecif_5())); // values.add(typeMatch(entity.getSpecif_5()));
values.add(typeMatch(entity.getSpecif_6())); // values.add(typeMatch(entity.getSpecif_6()));
values.add(typeMatch(entity.getSend_type())); // values.add(typeMatch(entity.getSend_type()));
values.add(typeMatch(entity.getServdate())); // values.add(typeMatch(entity.getServdate()));
values.add(typeMatch(entity.getDoc_result())); // values.add(typeMatch(entity.getDoc_result()));
return values.toArray(Object[]::new); return values.toArray(Object[]::new);
} }

View file

@ -23,15 +23,15 @@ public class SDf04Table extends AbstractTable<SDf04> {
result.setDoc_type((String) entity[1]); result.setDoc_type((String) entity[1]);
result.setDocnm_ref((String) entity[2]); result.setDocnm_ref((String) entity[2]);
result.setDocnmprev((String) entity[3]); result.setDocnmprev((String) entity[3]);
result.setPriority((String) entity[4]); // result.setPriority((String) entity[4]);
result.setSbankcode((String) entity[5]); // result.setSbankcode((String) entity[5]);
result.setC_acc_deb((String) entity[6]); result.setC_acc_deb((String) entity[6]);
result.setSbanknam1((String) entity[7]); result.setSbanknam1((String) entity[7]);
result.setSbanknam2((String) entity[8]); result.setSbanknam2((String) entity[8]);
result.setSbanknam3((String) entity[9]); result.setSbanknam3((String) entity[9]);
result.setSbanknam4((String) entity[10]); result.setSbanknam4((String) entity[10]);
result.setSbanknam5((String) entity[11]); result.setSbanknam5((String) entity[11]);
result.setRbankcode((String) entity[12]); // result.setRbankcode((String) entity[12]);
result.setC_acc_cred((String) entity[13]); result.setC_acc_cred((String) entity[13]);
result.setRbanknam1((String) entity[14]); result.setRbanknam1((String) entity[14]);
result.setRbanknam2((String) entity[15]); result.setRbanknam2((String) entity[15]);
@ -39,33 +39,33 @@ public class SDf04Table extends AbstractTable<SDf04> {
result.setRbanknam4((String) entity[17]); result.setRbanknam4((String) entity[17]);
result.setRbanknam5((String) entity[18]); result.setRbanknam5((String) entity[18]);
result.setPay_date((String) entity[19]); result.setPay_date((String) entity[19]);
result.setExt_date((String) entity[20]); // result.setExt_date((String) entity[20]);
result.setPay_val((String) entity[21]); result.setPay_val((String) entity[21]);
result.setSum_deb((String) entity[22]); result.setSum_deb((String) entity[22]);
result.setSclientn1((String) entity[23]); // result.setSclientn1((String) entity[23]);
result.setSclientn2((String) entity[24]); // result.setSclientn2((String) entity[24]);
result.setSclientn3((String) entity[25]); // result.setSclientn3((String) entity[25]);
result.setSclientn4((String) entity[26]); // result.setSclientn4((String) entity[26]);
result.setSc_code((String) entity[27]); // result.setSc_code((String) entity[27]);
result.setAcc_deb((String) entity[28]); // result.setAcc_deb((String) entity[28]);
result.setRclientn1((String) entity[29]); // result.setRclientn1((String) entity[29]);
result.setRclientn2((String) entity[30]); // result.setRclientn2((String) entity[30]);
result.setRclientn3((String) entity[31]); // result.setRclientn3((String) entity[31]);
result.setRclientn4((String) entity[32]); // result.setRclientn4((String) entity[32]);
result.setAcc_kr_1((String) entity[33]); // result.setAcc_kr_1((String) entity[33]);
result.setAcc_kr_2((String) entity[34]); // result.setAcc_kr_2((String) entity[34]);
result.setSp_code((String) entity[35]); // result.setSp_code((String) entity[35]);
result.setSpecif_1((String) entity[36]); result.setSpecif_1((String) entity[36]);
result.setSpecif_2((String) entity[37]); // result.setSpecif_2((String) entity[37]);
result.setSpecif_3((String) entity[38]); // result.setSpecif_3((String) entity[38]);
result.setSpecif_4((String) entity[39]); // result.setSpecif_4((String) entity[39]);
result.setSpecif_5((String) entity[40]); // result.setSpecif_5((String) entity[40]);
result.setSpecif_6((String) entity[41]); // result.setSpecif_6((String) entity[41]);
result.setSend_type((String) entity[42]); // result.setSend_type((String) entity[42]);
result.setServdate((String) entity[43]); // result.setServdate((String) entity[43]);
result.setDoc_result((String) entity[44]); // result.setDoc_result((String) entity[44]);
result.setImp_result((String) entity[45]); result.setImp_result((String) entity[45]);
result.setFile_name(filename); result.setFileName(filename);
result.setGenerationTime(Instant.now()); result.setGenerationTime(Instant.now());
result.setGenerationId(fileId); result.setGenerationId(fileId);
return result; return result;

View file

@ -21,13 +21,13 @@ public class SDf09Table extends AbstractTable<SDf09> {
public SDf09 getEntity(Object[] entity) { public SDf09 getEntity(Object[] entity) {
SDf09 result = new SDf09(); SDf09 result = new SDf09();
result.setAccount((String) entity[0]); // result.setAccount((String) entity[0]);
result.setSum((BigDecimal) entity[1]); // result.setSum((BigDecimal) entity[1]);
result.setMarket((String) entity[2]); // result.setMarket((String) entity[2]);
result.setType((String) entity[3]); // result.setType((String) entity[3]);
result.setNumber((BigDecimal) entity[4]); // result.setNumber((BigDecimal) entity[4]);
result.setInn((BigDecimal) entity[5]); // result.setInn((BigDecimal) entity[5]);
result.setFileName(filename); // result.setFileName(filename);
result.setGenerationTime(Instant.now()); result.setGenerationTime(Instant.now());
result.setGenerationId(fileId); result.setGenerationId(fileId);
return result; return result;

View file

@ -20,11 +20,11 @@ public class SDf12Table extends AbstractTable<SDf12> {
@Override @Override
public SDf12 getEntity(Object[] entity) { public SDf12 getEntity(Object[] entity) {
SDf12 result = new SDf12(); SDf12 result = new SDf12();
result.setAccount((String) entity[0]); // result.setAccount((String) entity[0]);
result.setDeal((String) entity[1]); // result.setDeal((String) entity[1]);
BigDecimal status = (BigDecimal) entity[2]; BigDecimal status = (BigDecimal) entity[2];
result.setStatus(status != null ? status.longValue() : null); // result.setStatus(status != null ? status.longValue() : null);
result.setFileName(filename); // result.setFileName(filename);
result.setGenerationTime(Instant.now()); result.setGenerationTime(Instant.now());
result.setGenerationId(fileId); result.setGenerationId(fileId);
return result; return result;

View file

@ -71,7 +71,7 @@ class ContractRegisterServiceTest {
contractRegisterNewRequest.setName("name"); contractRegisterNewRequest.setName("name");
contractRegisterNewRequest.setNumber("number"); contractRegisterNewRequest.setNumber("number");
contractRegisterNewRequest.setIssueDate(LocalDate.now()); contractRegisterNewRequest.setIssueDate(LocalDate.now());
contractRegisterNewRequest.setCompanyFullName(1651656L); contractRegisterNewRequest.setCompanyFullName("CMP FN");
contractRegisterNewRequest.setCompanyId(companyId); contractRegisterNewRequest.setCompanyId(companyId);
contractRegisterNewRequest.setDocumentType("documentType"); contractRegisterNewRequest.setDocumentType("documentType");
contractRegisterNewRequest.setIssuePlace("issuePlace"); contractRegisterNewRequest.setIssuePlace("issuePlace");

View file

@ -17,6 +17,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.math.BigDecimal;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Collection; import java.util.Collection;
@ -94,16 +95,16 @@ public class ReportBR_0420314_P2_Collector extends ReportWithPeriodCollector<Rep
} }
} }
Long paymentInstruction_creditLeg_amount = paymentInstructionsByCompany.stream() BigDecimal paymentInstruction_creditLeg_amount = paymentInstructionsByCompany.stream()
.map(PaymentInstruction::getCreditLegAmount) .map(PaymentInstruction::getCreditLeg_amount)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.reduce(Long::sum) .reduce(BigDecimal::add)
.orElse(0L); .orElse(BigDecimal.ZERO);
Long paymentInstructiont_debitLeg_amount = paymentInstructionsByCompany.stream() BigDecimal paymentInstructiont_debitLeg_amount = paymentInstructionsByCompany.stream()
.map(PaymentInstruction::getDebitLegAmount) .map(PaymentInstruction::getDebitLeg_amount)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.reduce(Long::sum) .reduce(BigDecimal::add)
.orElse(0L); .orElse(BigDecimal.ZERO);
ReportBR_0420314_P2.Info_0420314_P2 info_0420314P2 = new ReportBR_0420314_P2.Info_0420314_P2( ReportBR_0420314_P2.Info_0420314_P2 info_0420314P2 = new ReportBR_0420314_P2.Info_0420314_P2(

View file

@ -25,7 +25,7 @@ public class ContractRegisterNewRequest {
private LocalDate issueDate; private LocalDate issueDate;
@JsonProperty @JsonProperty
private Long companyFullName; private String companyFullName;
@JsonProperty @JsonProperty
private Long companyId; private Long companyId;
@ -140,11 +140,11 @@ public class ContractRegisterNewRequest {
this.issueDate = issueDate; this.issueDate = issueDate;
} }
public Long getCompanyFullName() { public String getCompanyFullName() {
return companyFullName; return companyFullName;
} }
public void setCompanyFullName(Long companyFullName) { public void setCompanyFullName(String companyFullName) {
this.companyFullName = companyFullName; this.companyFullName = companyFullName;
} }