SDF57 executor balance из statement

финальная сессия МКР 5 шаг UNCV/FAIL
This commit is contained in:
ialbert 2023-06-30 19:05:47 +03:00
parent 61332c5b73
commit 7f9d8badec
2 changed files with 27 additions and 11 deletions

View file

@ -241,7 +241,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
dm__.getId());
} else if (om_tFound.isPresent()) {
Registry om_t = om_tFound.get();
Registry registryD = copyRegD(om_t, RegistryUnit.T);
Registry registryD = copyRegD(om_t, stmt, RegistryUnit.T);
registryImdg.insert(registryD);
log.debug("stmt.id={}, sdf57.specif={}, found OM*T.id={} new DM*T.id={}",
stmt.getId(),
@ -250,7 +250,7 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
registryD.getId());
} else if (tm_tFound.isPresent()) {
Registry tm_t = tm_tFound.get();
Registry registryD = copyRegD(tm_t, RegistryUnit.X);
Registry registryD = copyRegD(tm_t, stmt, RegistryUnit.X);
registryImdg.insert(registryD);
log.debug("stmt.id={}, sdf57.specif={} found TM*T.id={} new DM*X.id={}. Return money identification for Initiator account based on TM*T registry searchin on companyId, accountId, contract and registry_status=PROC|MGN",
stmt.getId(),
@ -298,11 +298,12 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
return rgsF;
}
private Registry copyRegD(Registry rgs, RegistryUnit unit) {
private Registry copyRegD(Registry rgs, Statement stmt, RegistryUnit unit) {
Registry rgsD = rgs.clone();
rgsD.setRegistryDesignation(RegistryDesignation.D.getKey());
rgsD.setRegistryUnit(unit.getKey());
rgsD.setRegistryCode(RegistryUtil.clearingCode(rgsD));
rgsD.setBalance(stmt.getAmount());
return rgsD;
}

View file

@ -105,7 +105,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
Optional<Registry> omtInGroupO = group.stream().filter(registry -> equalByRgs(OM_T, registry)).findFirst();
if (omtInGroupO.isEmpty()) {
log.error("groupId {} failed to find OM*T registry", entry.getKey());
group.forEach(rgs -> updateStatus(rgs, registryStatusForDmxCheckFailed()));
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
continue;
}
Registry omtRgs = omtInGroupO.get();
@ -130,8 +130,11 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
);
if (dmxBalance.compareTo(omtBalance) >= 0) {
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
updateStatus(dmx.get(), RegistryStatus.OK);
} else {
group.forEach(rgs -> updateStatus(rgs, registryStatusForDmxCheckFailed()));
//для OM*T uncovered остальным фейл
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed(rgs)));
updateStatus(dmx.get(), RegistryStatus.UNCV);
}
continue;
}
@ -139,7 +142,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
Optional<Registry> amfAssetO = searchAssetByOMT(omtRgs);
if (amfAssetO.isEmpty()) {
log.error("OM*T register.id={} groupId={} failed to find AM*F asset", omtRgs.getId(), entry.getKey());
group.forEach(rgs -> updateStatus(rgs, registryStatusForDmxCheckFailed()));
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
continue;
}
@ -157,7 +160,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
if (dmtBalance.compareTo(omtBalance) >= 0 && amfBalance.compareTo(omtBalance) >=0) {
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
} else {
group.forEach(rgs -> updateStatus(rgs, registryStatusForDmxCheckFailed()));
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
}
continue;
}
@ -172,13 +175,13 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
if (dmtBalance.compareTo(omtBalance) >= 0 && amfBalance.compareTo(omtBalance) >= 0) {
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
} else {
group.forEach(rgs -> updateStatus(rgs, registryStatusForDmxCheckFailed()));
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
}
continue;
}
log.info("OM*T.id={} -> no DM*X/DM*T(INFO/CLRN) registry found. setting {} status to group",
omtRgs.getId(), registryStatusForDmxCheckFailed());
group.forEach(rgs -> updateStatus(rgs, registryStatusForDmxCheckFailed()));
omtRgs.getId(), registryStatusFailed());
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
}
return new StageResult<>(null, true);
}
@ -247,7 +250,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
);
}
private RegistryStatus registryStatusForDmxCheckFailed() {
private RegistryStatus registryStatusFailed() {
if (SessionType.FINL.equals(sessionType)) {
return RegistryStatus.FAIL;
} else {
@ -255,6 +258,18 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
}
}
private RegistryStatus registryStatusFailed(Registry registry) {
if (SessionType.FINL.equals(sessionType)) {
if (equalByRgs(OM_T, registry)) {
return RegistryStatus.UNCV;
} else {
return RegistryStatus.FAIL;
}
} else {
return RegistryStatus.MNG;
}
}
public void setSessionType(SessionType sessionType) {
this.sessionType = sessionType;
}