session step 5 inspection obligation notification error text: difference
This commit is contained in:
parent
33e0bb5047
commit
b7144dfd99
3 changed files with 38 additions and 12 deletions
|
|
@ -33,6 +33,7 @@ import ru.spcex.clearing.session.stage.impl.PlanBalanceCalc;
|
|||
import ru.spcex.clearing.session.state.DataEnum;
|
||||
import ru.spcex.clearing.session.state.SsnEvent;
|
||||
import ru.spcex.clearing.session.state.model.RgsErr;
|
||||
import static ru.spcex.clearing.util.ClearingUtil.biErr;
|
||||
import ru.spcex.platform.enumeration.ClearingCategory;
|
||||
import ru.spcex.platform.enumeration.RegistryCapacity;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
|
|
@ -135,7 +136,7 @@ public class InspectionObligationsDepositReturnAction extends ReviseStage1Action
|
|||
//для OM*T uncovered остальным фейл
|
||||
group.forEach(rgs -> updateRegistryStatus(rgs, registryStatusFailed(rgs), rgssToStore));
|
||||
updateRegistryStatus(dmx.get(), RegistryStatus.UNCV, rgssToStore);
|
||||
errs.add(new RgsErr(dmx.get(), biErr(dmx.get())));
|
||||
errs.add(new RgsErr(dmx.get(), biErr(dmx.get(), omtRgs)));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
|
@ -185,7 +186,7 @@ public class InspectionObligationsDepositReturnAction extends ReviseStage1Action
|
|||
continue;
|
||||
} else if (SessionType.XDEP.equals(sessionType)) {
|
||||
group.forEach(rgs -> updateRegistryStatus(rgs, registryStatusFailed(rgs), rgssToStore)); // для финальной UNCV or FAIL ; другие MNG
|
||||
errs.add(new RgsErr(omtRgs, biErr(omtRgs)));
|
||||
errs.add(new RgsErr(omtRgs, biErr(omtRgs, amfAsset, dmtInfo.get())));
|
||||
// updateStatus(dmtInfo.get(), RegistryStatus.UNCV); не меняет статус, статус определяется OM*T
|
||||
continue;
|
||||
}
|
||||
|
|
@ -205,7 +206,7 @@ public class InspectionObligationsDepositReturnAction extends ReviseStage1Action
|
|||
continue;
|
||||
} else if (SessionType.XDEP.equals(sessionType)) {
|
||||
group.forEach(rgs -> updateRegistryStatus(rgs, registryStatusFailed(rgs), rgssToStore));
|
||||
errs.add(new RgsErr(omtRgs, biErr(omtRgs)));
|
||||
errs.add(new RgsErr(omtRgs, biErr(omtRgs, dmtClnr.get(), amfAsset)));
|
||||
// updateStatus(dmtClnr.get(), RegistryStatus.UNCV); не меняет статус, статус определяется OM*T
|
||||
continue;
|
||||
}
|
||||
|
|
@ -235,10 +236,6 @@ public class InspectionObligationsDepositReturnAction extends ReviseStage1Action
|
|||
// planBalanceCalc.stageRevision2(sessionId);
|
||||
}
|
||||
|
||||
private static String biErr(Registry rgs) {
|
||||
return "Недостаточно средств по инструменту " + rgs.getSecuritySymbol();
|
||||
}
|
||||
|
||||
private static boolean equalByRgs(RegistryTradingParams rgsParams, Registry rgs) {
|
||||
return rgsParams.equalByRegistry(
|
||||
IEnumKey.getEnumByKey(RegistryDesignation.class, rgs.getRegistryDesignation()),
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
|||
import ru.spcex.clearing.session.state.DataEnum;
|
||||
import ru.spcex.clearing.session.state.SsnEvent;
|
||||
import ru.spcex.clearing.session.state.model.RgsErr;
|
||||
import static ru.spcex.clearing.util.ClearingUtil.biErr;
|
||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
|
|
@ -169,7 +170,7 @@ public class InspectionObligationsV2Action extends ReviseStage1Action {
|
|||
msgResolver.resolve(new EnumMessage(ClearingError.InsecurityObligation, obligation.getCompanyId())));
|
||||
isUncovered = true;
|
||||
}
|
||||
if (isUncovered) errs.add(new RgsErr(obligation, biErr(obligation)));
|
||||
if (isUncovered) errs.add(new RgsErr(obligation, biErr(obligation, asset)));
|
||||
checkResults.add(new CheckResult(obligation, isUncovered));
|
||||
isUncovered = false;
|
||||
}
|
||||
|
|
@ -285,10 +286,6 @@ public class InspectionObligationsV2Action extends ReviseStage1Action {
|
|||
ctx.getExtendedState().getVariables().put(DataEnum.inspectionObligationStashedRgs, rgssToStore);
|
||||
}
|
||||
|
||||
private static String biErr(Registry rgs) {
|
||||
return "Недостаточно средств по инструменту " + rgs.getSecuritySymbol();
|
||||
}
|
||||
|
||||
private Registry copyF(Registry rgs) {
|
||||
Registry rgsF = rgs.clone();
|
||||
RegistryManager.zeroState(rgsF);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
package ru.spcex.clearing.util;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import ru.clearing.classes.statics.data.execution.ExecutionCommon;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||
|
||||
public class ClearingUtil {
|
||||
public static <T extends ExecutionCommon> Map<Long, T> castMap(Map<Long, ExecutionCommon> m) {
|
||||
|
|
@ -19,4 +23,32 @@ public class ClearingUtil {
|
|||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
public static String biErr(Registry rgs) {
|
||||
return "Недостаточно средств по инструменту " + rgs.getSecuritySymbol();
|
||||
}
|
||||
|
||||
public static String biErr(Registry obligation, Registry asset) {
|
||||
if (asset == null) return biErr(obligation);
|
||||
BigDecimal difference = safeBD(obligation.getBalance())
|
||||
.subtract(asset.getBalance())
|
||||
.abs();
|
||||
return "Недостаточно средств по инструменту "
|
||||
+ obligation.getSecuritySymbol()
|
||||
+ ", разница: " + difference;
|
||||
}
|
||||
|
||||
public static String biErr(Registry obligation, Registry asset1, Registry asset2) {
|
||||
Function<BigDecimal, String> printErr = bd -> "Недостаточно средств по инструменту "
|
||||
+ obligation.getSecuritySymbol()
|
||||
+ ", разница: " + bd;
|
||||
BigDecimal obligationBalance = safeBD(obligation.getBalance());
|
||||
Function<Registry, BigDecimal> diff = r -> obligationBalance.subtract(r.getBalance()).abs();
|
||||
BigDecimal assetBalance1 = safeBD(asset1.getBalance());
|
||||
if (assetBalance1.compareTo(obligationBalance) < 0) {
|
||||
return printErr.apply(diff.apply(asset1));
|
||||
} else {
|
||||
return printErr.apply(diff.apply(asset2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue