возврат депозитов шаг 5: DM*X/DM*T
This commit is contained in:
parent
cca5991bd6
commit
9f046ae383
1 changed files with 28 additions and 6 deletions
|
|
@ -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.company.ClearingMemberCategory;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.service.registry.RegistryManager;
|
||||
|
|
@ -34,12 +35,14 @@ import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
|||
public class InspectionObligationsDepositReturn implements ISessionStage {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<Registry> registryImdg;
|
||||
private final Imdg<ClearingMemberCategory> categoryImdg;
|
||||
private SessionType sessionType;
|
||||
private final RegistryManager rgsMng;
|
||||
|
||||
@Autowired
|
||||
public InspectionObligationsDepositReturn(ImdgProvider imdgProvider, RegistryManager rgsMng) {
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.categoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
||||
this.rgsMng = rgsMng;
|
||||
}
|
||||
|
||||
|
|
@ -128,7 +131,7 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
|
|||
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
|
||||
// updateStatus(dmtInfo.get(), RegistryStatus.POOL);
|
||||
} else {
|
||||
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
|
||||
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed(rgs)));
|
||||
updateStatus(dmtInfo.get(), RegistryStatus.UNCV);
|
||||
}
|
||||
continue;
|
||||
|
|
@ -143,20 +146,39 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
|
|||
);
|
||||
if (dmtBalance.compareTo(omtBalance) >= 0 && amfBalance.compareTo(omtBalance) >= 0) {
|
||||
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
|
||||
// updateStatus(dmtClnr.get(), RegistryStatus.POOL);
|
||||
} else {
|
||||
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
|
||||
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed(rgs)));
|
||||
updateStatus(dmtClnr.get(), RegistryStatus.UNCV);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
log.info("OM*T.id={} -> no DM*X/DM*T(INFO/CLRN) registry found. setting {} status to group",
|
||||
omtRgs.getId(), registryStatusFailed());
|
||||
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed()));
|
||||
|
||||
if (SessionType.FINL.equals(sessionType)
|
||||
&& amfBalance.compareTo(omtBalance) >= 0
|
||||
&& initiatorV(omtRgs)) {
|
||||
log.debug("OM*T.id={} -> no DM*X/DM*T(INFO/CLRN) registry found. " +
|
||||
"FINL, initiator.category='V' and am*f > om*t: setting OK status to group",
|
||||
omtRgs.getId());
|
||||
group.forEach(rgs -> updateStatus(rgs, RegistryStatus.OK));
|
||||
} else {
|
||||
log.info("OM*T.id={} -> no DM*X/DM*T(INFO/CLRN) registry found. setting {} status to group",
|
||||
omtRgs.getId(), registryStatusFailed());
|
||||
group.forEach(rgs -> updateStatus(rgs, registryStatusFailed(rgs)));
|
||||
}
|
||||
}
|
||||
return new StageResult<>(null, true);
|
||||
}
|
||||
|
||||
private boolean initiatorV(Registry omtRgs) {
|
||||
if (omtRgs.getCounterPartyId() == null) {
|
||||
return false;
|
||||
}
|
||||
ClearingMemberCategory ctgr = categoryImdg.getFirstObjectBySQL(
|
||||
"companyId = %d and clearingMemberCategory = '%s'"
|
||||
.formatted(omtRgs.getCounterPartyId(), ClearingCategory.V.getKey()));
|
||||
return ctgr != null;
|
||||
}
|
||||
|
||||
private void updateStatus(Registry registry, RegistryStatus registryStatus) {
|
||||
log.trace("Update registry.id: {} to {}", registry.getId(), registryStatus.getKey());
|
||||
registry.setRegistryStatus(registryStatus.getKey());
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue