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;
|
||||||
import ru.spcex.clearing.session.stage.task.FinishingSessionPayload;
|
import ru.spcex.clearing.session.stage.task.FinishingSessionPayload;
|
||||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||||
|
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||||
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
import ru.spcex.platform.enumeration.RegistryTradingParams;
|
||||||
import ru.spcex.platform.enumeration.Section;
|
import ru.spcex.platform.enumeration.Section;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
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.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError;
|
import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError;
|
||||||
|
|
@ -77,6 +79,14 @@ public class FinishingSession implements ISessionStage {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected StageResult<?> finishingSession(Long sessionId, String pr) {
|
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. Отправка сообщений
|
// 2. Отправка сообщений
|
||||||
Collection<Registry> forRegistries = selectRegistry(sessionId);
|
Collection<Registry> forRegistries = selectRegistry(sessionId);
|
||||||
log.debug("Found {} registries for sessionId={}", forRegistries.size(), 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);
|
log.trace("Selected {} registry's by sql: {}", result.size(), condition);
|
||||||
return result;
|
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 {
|
public enum RegistryStatus implements IEnumKey {
|
||||||
OK("OK"),
|
OK("OK"),
|
||||||
|
CLRD("CLRD"),
|
||||||
PROC("PROC"),
|
PROC("PROC"),
|
||||||
NACK("NACK"),
|
NACK("NACK"),
|
||||||
NACC("NACC"),
|
NACC("NACC"),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue