clearing-service http://jira.mfd.msk:8088/browse/CLS-307 SPLT улучшил валидацию
This commit is contained in:
parent
a448a78415
commit
38916cdeb1
2 changed files with 15 additions and 1 deletions
|
|
@ -359,6 +359,7 @@ public class ValidationConfig {
|
||||||
DictionaryPresentRule.instance("direction", RegistrySplitDepositActionRequest::getDirection,
|
DictionaryPresentRule.instance("direction", RegistrySplitDepositActionRequest::getDirection,
|
||||||
IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class,
|
IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class,
|
||||||
ClearingError.RequiredFieldEmpty, ClearingError.DictionaryNotFound, false),
|
ClearingError.RequiredFieldEmpty, ClearingError.DictionaryNotFound, false),
|
||||||
|
SplitDepositRequestValidationRule.PositiveAmount,
|
||||||
SplitDepositRequestValidationRule.CrossvalidateByRegistry
|
SplitDepositRequestValidationRule.CrossvalidateByRegistry
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,19 @@ import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public enum SplitDepositRequestValidationRule implements IValidationRule<ImdgValidationContext<RegistrySplitDepositActionRequest>> {
|
public enum SplitDepositRequestValidationRule implements IValidationRule<ImdgValidationContext<RegistrySplitDepositActionRequest>> {
|
||||||
|
PositiveAmount() {
|
||||||
|
@Override
|
||||||
|
public Optional<EnumMessage> validate(ImdgValidationContext<RegistrySplitDepositActionRequest> context) {
|
||||||
|
RegistrySplitDepositActionRequest request = context.getValidatedObject();
|
||||||
|
if (request.getOutboundAmount() == null) {
|
||||||
|
return of(ClearingError.RequiredFieldEmpty, "outboundAmount");
|
||||||
|
}
|
||||||
|
if (request.getOutboundAmount().compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
|
return of(ClearingError.WrongFieldValue, "outboundAmount");
|
||||||
|
}
|
||||||
|
return empty();
|
||||||
|
}
|
||||||
|
},
|
||||||
CrossvalidateByRegistry() {
|
CrossvalidateByRegistry() {
|
||||||
@Override
|
@Override
|
||||||
public Optional<EnumMessage> validate(ImdgValidationContext<RegistrySplitDepositActionRequest> context) {
|
public Optional<EnumMessage> validate(ImdgValidationContext<RegistrySplitDepositActionRequest> context) {
|
||||||
|
|
@ -39,7 +52,7 @@ public enum SplitDepositRequestValidationRule implements IValidationRule<ImdgVal
|
||||||
);
|
);
|
||||||
Collection<Registry> registrys = registryImdg.getCollectionObjectsByPredicate(query);
|
Collection<Registry> registrys = registryImdg.getCollectionObjectsByPredicate(query);
|
||||||
registrys = registrys.stream()
|
registrys = registrys.stream()
|
||||||
.filter(r->r.getValueDate()!=null && r.getSettlementDate()!=null && r.getValueDate().isBefore(r.getSettlementDate()))
|
.filter(r -> r.getValueDate() != null && r.getSettlementDate() != null && r.getValueDate().isBefore(r.getSettlementDate()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
Registry registryO = registrys.stream()
|
Registry registryO = registrys.stream()
|
||||||
.filter(r -> RegistryDesignation.O.equalsByKey(r.getRegistryDesignation()))
|
.filter(r -> RegistryDesignation.O.equalsByKey(r.getRegistryDesignation()))
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue