CLRD статус регистров для всех сессий
This commit is contained in:
parent
bdc4f3fb67
commit
523d5b4bc1
2 changed files with 29 additions and 0 deletions
|
|
@ -20,6 +20,7 @@ import ru.spcex.clearing.session.stage.StageResult;
|
|||
import ru.spcex.clearing.session.stage.Task;
|
||||
import ru.spcex.clearing.session.stage.task.FinishingSessionPayload;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||
import ru.spcex.platform.enumeration.Section;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
|
@ -30,6 +31,7 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
|||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Collection;
|
||||
|
||||
import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError;
|
||||
|
|
@ -77,6 +79,14 @@ public class FinishingSession implements ISessionStage {
|
|||
}
|
||||
|
||||
protected StageResult<?> finishingSession(Long sessionId, String pr) {
|
||||
Instant now = Instant.now();
|
||||
//установка CLRD для обработанных регистров
|
||||
Collection<Registry> claimsAndLiabilities = selectClaimsAndLiabilities(sessionId);
|
||||
claimsAndLiabilities.forEach(rgs -> {
|
||||
rgs.setRegistryStatus(RegistryStatus.CLRD.getKey());
|
||||
rgs.setUpdated(now);
|
||||
registryImdg.update(rgs);
|
||||
});
|
||||
// 2. Отправка сообщений
|
||||
Collection<Registry> forRegistries = selectRegistry(sessionId);
|
||||
log.debug("Found {} registries for sessionId={}", forRegistries.size(), sessionId);
|
||||
|
|
@ -145,4 +155,22 @@ public class FinishingSession implements ISessionStage {
|
|||
log.trace("Selected {} registry's by sql: {}", result.size(), condition);
|
||||
return result;
|
||||
}
|
||||
|
||||
protected Collection<Registry> selectClaimsAndLiabilities(Long sessionId) {
|
||||
ImdgPredicateBuilder pb = registryImdg.predicateBuilder();
|
||||
ImdgPredicate prdct = pb.and(
|
||||
pb.equals("sessionId", sessionId),
|
||||
pb.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
pb.or(
|
||||
pb.equals("registryDesignation", RegistryDesignation.O.getKey()),
|
||||
pb.equals("registryDesignation", RegistryDesignation.T.getKey()),
|
||||
pb.equals("registryDesignation", RegistryDesignation.C.getKey()),
|
||||
pb.equals("registryDesignation", RegistryDesignation.L.getKey())
|
||||
)
|
||||
);
|
||||
log.debug("searching claims and liabilities by predicate: {}...", prdct);
|
||||
Collection<Registry> result = registryImdg.getCollectionObjectsByPredicate(prdct);
|
||||
log.debug("found {} claims and liabilities", result.size());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey;
|
|||
|
||||
public enum RegistryStatus implements IEnumKey {
|
||||
OK("OK"),
|
||||
CLRD("CLRD"),
|
||||
PROC("PROC"),
|
||||
NACK("NACK"),
|
||||
NACC("NACC"),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue