This commit is contained in:
parent
fd900e27b6
commit
da8adbd052
1 changed files with 19 additions and 3 deletions
|
|
@ -139,19 +139,20 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
|||
Company company = searchCompany(sdf08.getDepoCode()); // validator.getStored(ValidationStored.Sdf08Company);
|
||||
Long companyId = company == null ? null : company.getId(); // account == null сегда, т.к. кейс AccountNotPresent
|
||||
if (companyId == null) {
|
||||
SDf09 errSdf = createErrorSdf09(sdf08, generationIdForGroup, new EnumMessage(ClearingError.AccountNotFoundB, sdf08.getDepoCode()));
|
||||
sdf09Imdg.insert(errSdf);
|
||||
log.warn("account {} for sdf08.id={} not found. Can not send request for creation, cause company not found too", sdf08.getDepoCode(), sdf08.getId());
|
||||
} else {
|
||||
result.getAccountRequests().add(createAccountRequestPart(sdf08.getId(), sdf08.getDepoCode(), companyId));
|
||||
log.info("account {} for sdf08.id={} not found - send request for creation", sdf08.getDepoCode(), sdf08.getId());
|
||||
}
|
||||
continue;
|
||||
} else if (ClearingErrorInternal.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) {
|
||||
log.error("fatal error: resumed processing after generating accounts, but no account found for sdf01.id={}", sdf08.getId());
|
||||
}
|
||||
if (error.isPresent() && !ClearingError.SecurityNotFound.equals(error.get().getSubject())) {
|
||||
log.error("sdf01.id={} error: {}", sdf08.getId(), messageResolver.resolve(error.get()));
|
||||
//fixme инициировать = команда для другого сервиса? sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup));
|
||||
// sdf02Imdg.insert(createErrorSdf02(sdf01, error.get(), generationIdForGroup));
|
||||
SDf09 errSdf = createErrorSdf09(sdf08, generationIdForGroup, error.get());
|
||||
sdf09Imdg.insert(errSdf);
|
||||
continue;
|
||||
}
|
||||
stmt = createSdf08Statement(sdf08, account);
|
||||
|
|
@ -198,6 +199,8 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
|||
} else {
|
||||
stmt.setErrorCodeId(error.get().getSubject().getId()); // fixme ErrorText insert
|
||||
stmt.setOperationStatus(OperationStatus.Rejected.getKey());
|
||||
sdf09New.setResult("");
|
||||
sdf09Imdg.update(sdf09New);
|
||||
statementImdg.update(stmt);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
@ -302,6 +305,19 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
|||
return sDf09;
|
||||
}
|
||||
|
||||
private SDf09 createErrorSdf09(SDf08 sdf08, Long generationIdForGroup, EnumMessage err) {
|
||||
SDf09 sDf09 = new SDf09();
|
||||
sDf09.setInDocument(sdf08.getOutDocument());
|
||||
sDf09.setDepoCode(sdf08.getDepoCode());
|
||||
sDf09.setQuantity(sdf08.getQuantity());
|
||||
sDf09.setSecurityCode(sdf08.getSecurityCode());
|
||||
sDf09.setClientName(sdf08.getClientName());
|
||||
sDf09.setGenerationId(generationIdForGroup);
|
||||
sDf09.setGenerationTime(Instant.now());
|
||||
sDf09.setResult("");
|
||||
return sDf09;
|
||||
}
|
||||
|
||||
private Registry createRegistryByStatement(Statement statement, Company company, Account account) {
|
||||
Registry rgs = new Registry();
|
||||
rgs.setCompanyId(statement.getAddresseeId());
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue