clearing-service account-service правки связей счетов и s_df 01, 08.
This commit is contained in:
parent
29ecf18e2e
commit
7b6a74fd0a
3 changed files with 20 additions and 2 deletions
|
|
@ -28,6 +28,7 @@ import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
|||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.enumeration.SdfTable;
|
||||
import ru.spcex.platform.enumeration.ServiceStatus;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
|
@ -278,6 +279,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin
|
|||
StatementRequest request = new StatementRequest();
|
||||
request.setGroupId(groupingSdf01Id);
|
||||
request.setAccountCreationResults(results);
|
||||
request.setTable(SdfTable.SDF_01); // по нему запрос получили
|
||||
log.debug("Send message to kafka \"{}\": {}", Consts.STATEMENT_PROCESS, LogFormatter.toStringWrapper(request));
|
||||
kafkaSender.sendRequestToQueue(Consts.STATEMENT_PROCESS, request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,11 +68,13 @@ public class StatementService extends QueueConsumer implements InitializingBean
|
|||
}
|
||||
|
||||
private void process(BaseRequest<StatementRequest> systemRequest) {
|
||||
log.debug("Receiving StatementRequest id={}", systemRequest.getId());
|
||||
StatementRequest statementRequest = systemRequest.getRequestPayload();
|
||||
SdfTable table = statementRequest.getTable();
|
||||
|
||||
Optional<Long> completePairKey = saveRequest(statementRequest);
|
||||
if (completePairKey.isPresent()) {
|
||||
boolean doSomeone = false;
|
||||
if (List.of(SdfTable.SDF_01, SdfTable.SDF_57).contains(table)) {
|
||||
{
|
||||
//всегда сначала обработаем sdf57
|
||||
|
|
@ -86,6 +88,7 @@ public class StatementService extends QueueConsumer implements InitializingBean
|
|||
ContinueSessionBnRequest continueSessionBn = new ContinueSessionBnRequest();
|
||||
kafkaSender.sendRequestToQueue(Consts.CONTINUE_SESSION_BN_FIRST_PART, continueSessionBn);
|
||||
pairOfSdfRequest.remove(key);
|
||||
doSomeone = true;
|
||||
}
|
||||
} else if (List.of(SdfTable.SDF_08, SdfTable.SDF_04).contains(table)) {
|
||||
if (table == SdfTable.SDF_08) {
|
||||
|
|
@ -94,6 +97,7 @@ public class StatementService extends QueueConsumer implements InitializingBean
|
|||
Pair<StatementRequest, StatementRequest> pair = pairOfSdfRequest.get(key);
|
||||
processSdf08(pair.getFirst());
|
||||
pairOfSdfRequest.remove(key);
|
||||
doSomeone = true;
|
||||
}
|
||||
} else if (table == SdfTable.SDF_04) {
|
||||
{
|
||||
|
|
@ -101,9 +105,14 @@ public class StatementService extends QueueConsumer implements InitializingBean
|
|||
Pair<StatementRequest, StatementRequest> pair = pairOfSdfRequest.get(key);
|
||||
processSdf04(pair.getFirst());
|
||||
pairOfSdfRequest.remove(key);
|
||||
doSomeone = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!doSomeone) {
|
||||
log.warn("No operation for request.id={}; statementRequest GroupId={}, table={}",
|
||||
systemRequest.getId(), statementRequest.getGroupId(), statementRequest.getTable());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -99,8 +99,15 @@ public class Sdf08Executor extends AbstractExecutor<SDf08> {
|
|||
Account account = validator.getStored(ValidationStored.Sdf08Account);
|
||||
if (statementRequest.getAccountCreationResults().size() == 0
|
||||
&& ClearingErrorInternal.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) {
|
||||
result.getAccountRequests().add(createAccountRequestPart(sdf08.getId(), sdf08.getDepoCode(), account.getCompanyId()));
|
||||
log.info("account {} for sdf08.id={} not found - send request for creation", sdf08.getDepoCode(), sdf08.getId());
|
||||
|
||||
Company company = validator.getStored(ValidationStored.Sdf08Company);
|
||||
Long companyId = company == null ? null : company.getId(); // account == null сегда, т.к. кейс AccountNotPresent
|
||||
if (companyId == null) {
|
||||
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());
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue