обработка SDF57 проставление баланса при создании DMAU
проставление SessionType на шаге включения в пул апдейт статуса DM*T(clnr) в fail/manage
This commit is contained in:
parent
cb03a62265
commit
79e1867e7f
3 changed files with 21 additions and 5 deletions
|
|
@ -318,7 +318,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
searchResult.getCompany().getId());
|
||||
createRegistryIfNeeded.accept(new StmtCmpAcc(stmt, searchResult.getCompany(), searchResult.getAccount()));
|
||||
} else {
|
||||
log.debug("stmt.id={} comment='{}' error: {}. Creating DMAU registry",
|
||||
log.debug("stmt.id={} comment='{}' error: {}. Operating through DMAU registry",
|
||||
stmt.getId(),
|
||||
stmt.getComment(),
|
||||
messageResolver.resolve(searchResult.getError()));
|
||||
|
|
@ -341,6 +341,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
|||
.build();
|
||||
newDmau.setRegistryUnit(RegistryUnit.U.getKey());
|
||||
newDmau.setRegistryCode(RegistryUtil.clearingCode(newDmau));
|
||||
newDmau.setBalance(safeBD(stmt.getAmount()));
|
||||
registryImdg.insert(newDmau);
|
||||
log.debug("stmt.id={} created DMAU.id={}", stmt.getId(), newDmau.getId());
|
||||
});
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.misc.Session;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
|
|
@ -19,12 +20,10 @@ import ru.spcex.platform.imdg.api.ImdgId;
|
|||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
|
|
@ -36,6 +35,7 @@ public class InclusionObligations implements ISessionStage {
|
|||
private ImdgProvider imdgProvider;
|
||||
private ImdgId idGenerator;
|
||||
private Imdg<Registry> registryImdg;
|
||||
private Imdg<Session> sessionImdg;
|
||||
private KafkaSender kafkaSender;
|
||||
private final List<ImdgPredicate> registryConditions = new ArrayList<>();
|
||||
private SessionType sessionType;
|
||||
|
|
@ -46,6 +46,7 @@ public class InclusionObligations implements ISessionStage {
|
|||
this.imdgProvider = imdgProvider;
|
||||
this.idGenerator = imdgProvider.getImdgIdGenerator();
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.rgsPb = registryImdg.predicateBuilder();
|
||||
}
|
||||
|
||||
|
|
@ -110,6 +111,7 @@ public class InclusionObligations implements ISessionStage {
|
|||
for (Registry registry : entrySet.getValue()) {
|
||||
registry.setRegistryStatus("POOL");
|
||||
registry.setSessionId(sessionId);
|
||||
obtainSessionType(sessionId).ifPresent(st -> registry.setSessionType(st.getKey()));
|
||||
registryImdg.update(registry);
|
||||
}
|
||||
}
|
||||
|
|
@ -117,6 +119,18 @@ public class InclusionObligations implements ISessionStage {
|
|||
return new StageResult(null, true);
|
||||
}
|
||||
|
||||
private Optional<SessionType> obtainSessionType(Long sessionId) {
|
||||
if (this.sessionType != null) {
|
||||
return Optional.of(this.sessionType);
|
||||
}
|
||||
if (sessionId == null) {
|
||||
return Optional.empty();
|
||||
}
|
||||
Session session = sessionImdg.getSingleObjectByID(sessionId);
|
||||
SessionType sessionType = IEnumKey.getEnumByKey(SessionType.class, session.getSessionType());
|
||||
return Optional.ofNullable(sessionType);
|
||||
}
|
||||
|
||||
public void setSessionType(SessionType sessionType) {
|
||||
this.sessionType = sessionType;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
|
|||
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
|
||||
} else {
|
||||
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
|
||||
updateStatus(dmtClnr.get(), registryStatusFailed());
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue